From 2ae89f10e087d62b971c4f87b86c51d98e922399 Mon Sep 17 00:00:00 2001 From: vasilito Date: Sat, 1 Aug 2026 04:44:26 +0300 Subject: [PATCH] kf6-ktexteditor: vendor as full-fork recipe (path=source, patches baked) --- local/recipes/kde/kf6-ktexteditor/recipe.toml | 9 +- local/recipes/kde/kf6-ktexteditor/source.tar | Bin 0 -> 2975420 bytes .../source/.git-blame-ignore-revs | 13 + .../kde/kf6-ktexteditor/source/.gitignore | 29 + .../kde/kf6-ktexteditor/source/.gitlab-ci.yml | 12 + .../kde/kf6-ktexteditor/source/.kateconfig | 1 + .../kde/kf6-ktexteditor/source/.kateproject | 5 + .../kde/kf6-ktexteditor/source/.kde-ci.yml | 27 + .../source/.redbear-src-version | 1 + .../kde/kf6-ktexteditor/source/CMakeLists.txt | 139 + .../kf6-ktexteditor/source/ExtraDesktop.sh | 4 + .../source/KF6TextEditorConfig.cmake.in | 8 + .../source/LICENSES/BSD-2-Clause.txt | 22 + .../source/LICENSES/CC0-1.0.txt | 121 + .../source/LICENSES/LGPL-2.0-only.txt | 446 + .../source/LICENSES/LGPL-2.0-or-later.txt | 446 + .../kf6-ktexteditor/source/LICENSES/MIT.txt | 19 + .../kde/kf6-ktexteditor/source/README.md | 65 + .../source/autotests/CMakeLists.txt | 204 + .../source/autotests/input/.clang-format | 2 + .../source/autotests/input/.gitignore | 1 + .../source/autotests/input/bug205447.txt | 1 + .../source/autotests/input/bug311866.cpp | 6 + .../source/autotests/input/bug313759.js | 10 + .../source/autotests/input/bug313759.txt | 503 + .../source/autotests/input/bug313769.cpp | 74 + .../input/bug404713_line_height_issue.xml | 190 + .../source/autotests/input/commands/utils.js | 336 + .../autotests/input/encoding/cp1251.txt | 2 + .../input/encoding/cyrillic_utf8.txt | 2 + .../autotests/input/encoding/koi8-r.txt | 2 + .../input/encoding/latin15-with-utf8-bom.txt | 1 + .../autotests/input/encoding/latin15.txt | 7 + .../input/encoding/one-char-latin-15.txt | 1 + .../source/autotests/input/encoding/utf16.txt | Bin 0 -> 110 bytes .../autotests/input/encoding/utf16be.txt | Bin 0 -> 110 bytes .../source/autotests/input/encoding/utf32.txt | Bin 0 -> 220 bytes .../autotests/input/encoding/utf32be.txt | Bin 0 -> 220 bytes .../input/encoding/utf8-bom-only.txt | 1 + .../source/autotests/input/encoding/utf8.txt | 7 + .../autotests/input/indent/R/.kateconfig | 1 + .../input/indent/R/bracketsBreak/expected | 3 + .../input/indent/R/bracketsBreak/input.js | 3 + .../input/indent/R/bracketsBreak/origin | 1 + .../input/indent/R/closeBracket/expected | 3 + .../input/indent/R/closeBracket/input.js | 3 + .../input/indent/R/closeBracket/origin | 2 + .../input/indent/R/indentAssign/expected | 5 + .../input/indent/R/indentAssign/input.js | 8 + .../input/indent/R/indentAssign/origin | 1 + .../input/indent/R/indentBracket/expected | 3 + .../input/indent/R/indentBracket/input.js | 6 + .../input/indent/R/indentBracket/origin | 1 + .../input/indent/R/indentFormula/expected | 4 + .../input/indent/R/indentFormula/input.js | 7 + .../input/indent/R/indentFormula/origin | 1 + .../input/indent/R/indentOperator/expected | 4 + .../input/indent/R/indentOperator/input.js | 6 + .../input/indent/R/indentOperator/origin | 1 + .../input/indent/R/indentpaste1/expected | 5 + .../input/indent/R/indentpaste1/input.js | 2 + .../input/indent/R/indentpaste1/origin | 3 + .../input/indent/R/indentpaste2/expected | 6 + .../input/indent/R/indentpaste2/input.js | 2 + .../input/indent/R/indentpaste2/origin | 3 + .../input/indent/R/skipComment/expected | 6 + .../input/indent/R/skipComment/input.js | 4 + .../input/indent/R/skipComment/origin | 4 + .../autotests/input/indent/ada/.kateconfig | 2 + .../input/indent/ada/closepar2/expected | 4 + .../input/indent/ada/closepar2/input.js | 5 + .../input/indent/ada/closepar2/origin | 3 + .../input/indent/ada/longtest/expected | 628 + .../input/indent/ada/longtest/input.js | 8 + .../input/indent/ada/longtest/origin | 628 + .../input/indent/ada/newline/expected | 3 + .../input/indent/ada/newline/input.js | 5 + .../autotests/input/indent/ada/newline/origin | 2 + .../input/indent/ada/openpar2/expected | 4 + .../input/indent/ada/openpar2/input.js | 5 + .../input/indent/ada/openpar2/origin | 2 + .../autotests/input/indent/ada/prep1/expected | 3 + .../autotests/input/indent/ada/prep1/input.js | 7 + .../autotests/input/indent/ada/prep1/origin | 1 + .../autotests/input/indent/ada/trig1/expected | 4 + .../autotests/input/indent/ada/trig1/input.js | 8 + .../autotests/input/indent/ada/trig1/origin | 2 + .../autotests/input/indent/cmake/.kateconfig | 1 + .../input/indent/cmake/enter1/expected | 7 + .../input/indent/cmake/enter1/input.js | 7 + .../input/indent/cmake/enter1/origin | 3 + .../input/indent/cmake/enter2/expected | 2 + .../input/indent/cmake/enter2/input.js | 3 + .../input/indent/cmake/enter2/origin | 1 + .../input/indent/cmake/enter3/expected | 20 + .../input/indent/cmake/enter3/input.js | 39 + .../input/indent/cmake/enter3/origin | 10 + .../input/indent/cmake/paren1/expected | 8 + .../input/indent/cmake/paren1/input.js | 11 + .../input/indent/cmake/paren1/origin | 8 + .../input/indent/cmake/quot1/expected | 7 + .../input/indent/cmake/quot1/input.js | 19 + .../autotests/input/indent/cmake/quot1/origin | 7 + .../input/indent/cmake/var1/expected | 4 + .../input/indent/cmake/var1/input.js | 15 + .../autotests/input/indent/cmake/var1/origin | 4 + .../input/indent/cppstyle/.kateconfig | 1 + .../indent/cppstyle/autobrackets1/expected | 7 + .../indent/cppstyle/autobrackets1/input.js | 6 + .../indent/cppstyle/autobrackets1/origin | 4 + .../indent/cppstyle/autobrackets2/expected | 10 + .../indent/cppstyle/autobrackets2/input.js | 9 + .../indent/cppstyle/autobrackets2/origin | 6 + .../indent/cppstyle/autobrackets3/expected | 9 + .../indent/cppstyle/autobrackets3/input.js | 8 + .../indent/cppstyle/autobrackets3/origin | 7 + .../input/indent/cppstyle/colon1/expected | 2 + .../input/indent/cppstyle/colon1/input.js | 3 + .../input/indent/cppstyle/colon1/origin | 1 + .../input/indent/cppstyle/colon10/expected | 3 + .../input/indent/cppstyle/colon10/input.js | 11 + .../input/indent/cppstyle/colon10/origin | 3 + .../input/indent/cppstyle/colon2/expected | 17 + .../input/indent/cppstyle/colon2/input.js | 20 + .../input/indent/cppstyle/colon2/origin | 4 + .../input/indent/cppstyle/colon3/expected | 11 + .../input/indent/cppstyle/colon3/input.js | 12 + .../input/indent/cppstyle/colon3/origin | 4 + .../input/indent/cppstyle/colon4/expected | 11 + .../input/indent/cppstyle/colon4/input.js | 12 + .../input/indent/cppstyle/colon4/origin | 4 + .../input/indent/cppstyle/colon5/expected | 1 + .../input/indent/cppstyle/colon5/input.js | 3 + .../input/indent/cppstyle/colon5/origin | 1 + .../input/indent/cppstyle/colon6/expected | 7 + .../input/indent/cppstyle/colon6/input.js | 5 + .../input/indent/cppstyle/colon6/origin | 4 + .../input/indent/cppstyle/colon7/expected | 2 + .../input/indent/cppstyle/colon7/input.js | 10 + .../input/indent/cppstyle/colon7/origin | 2 + .../input/indent/cppstyle/colon8/expected | 2 + .../input/indent/cppstyle/colon8/input.js | 7 + .../input/indent/cppstyle/colon8/origin | 2 + .../input/indent/cppstyle/colon9/expected | 1 + .../input/indent/cppstyle/colon9/input.js | 3 + .../input/indent/cppstyle/colon9/origin | 1 + .../input/indent/cppstyle/comma1/expected | 4 + .../input/indent/cppstyle/comma1/input.js | 3 + .../input/indent/cppstyle/comma1/origin | 4 + .../input/indent/cppstyle/comma2/expected | 1 + .../input/indent/cppstyle/comma2/input.js | 3 + .../input/indent/cppstyle/comma2/origin | 1 + .../input/indent/cppstyle/comma3/expected | 3 + .../input/indent/cppstyle/comma3/input.js | 4 + .../input/indent/cppstyle/comma3/origin | 2 + .../input/indent/cppstyle/comma4/expected | 3 + .../input/indent/cppstyle/comma4/input.js | 11 + .../input/indent/cppstyle/comma4/origin | 3 + .../input/indent/cppstyle/comma5/expected | 3 + .../input/indent/cppstyle/comma5/input.js | 11 + .../input/indent/cppstyle/comma5/origin | 3 + .../input/indent/cppstyle/comment1/expected | 1 + .../input/indent/cppstyle/comment1/input.js | 4 + .../input/indent/cppstyle/comment1/origin | 1 + .../input/indent/cppstyle/comment10/expected | 3 + .../input/indent/cppstyle/comment10/input.js | 6 + .../input/indent/cppstyle/comment10/origin | 3 + .../input/indent/cppstyle/comment11/expected | 1 + .../input/indent/cppstyle/comment11/input.js | 6 + .../input/indent/cppstyle/comment11/origin | 1 + .../input/indent/cppstyle/comment12/expected | 2 + .../input/indent/cppstyle/comment12/input.js | 3 + .../input/indent/cppstyle/comment12/origin | 1 + .../input/indent/cppstyle/comment13/expected | 3 + .../input/indent/cppstyle/comment13/input.js | 3 + .../input/indent/cppstyle/comment13/origin | 1 + .../input/indent/cppstyle/comment14/expected | 4 + .../input/indent/cppstyle/comment14/input.js | 3 + .../input/indent/cppstyle/comment14/origin | 3 + .../input/indent/cppstyle/comment15/expected | 5 + .../input/indent/cppstyle/comment15/input.js | 3 + .../input/indent/cppstyle/comment15/origin | 4 + .../input/indent/cppstyle/comment16/expected | 1 + .../input/indent/cppstyle/comment16/input.js | 4 + .../input/indent/cppstyle/comment16/origin | 1 + .../input/indent/cppstyle/comment17/expected | 1 + .../input/indent/cppstyle/comment17/input.js | 4 + .../input/indent/cppstyle/comment17/origin | 1 + .../input/indent/cppstyle/comment18/expected | 2 + .../input/indent/cppstyle/comment18/input.js | 4 + .../input/indent/cppstyle/comment18/origin | 1 + .../input/indent/cppstyle/comment19/expected | 1 + .../input/indent/cppstyle/comment19/input.js | 4 + .../input/indent/cppstyle/comment19/origin | 1 + .../input/indent/cppstyle/comment2/expected | 1 + .../input/indent/cppstyle/comment2/input.js | 5 + .../input/indent/cppstyle/comment2/origin | 1 + .../input/indent/cppstyle/comment20/expected | 1 + .../input/indent/cppstyle/comment20/input.js | 7 + .../input/indent/cppstyle/comment20/origin | 0 .../input/indent/cppstyle/comment3/expected | 2 + .../input/indent/cppstyle/comment3/input.js | 3 + .../input/indent/cppstyle/comment3/origin | 1 + .../input/indent/cppstyle/comment4/expected | 2 + .../input/indent/cppstyle/comment4/input.js | 2 + .../input/indent/cppstyle/comment4/origin | 1 + .../input/indent/cppstyle/comment5/expected | 2 + .../input/indent/cppstyle/comment5/input.js | 2 + .../input/indent/cppstyle/comment5/origin | 1 + .../input/indent/cppstyle/comment6/expected | 2 + .../input/indent/cppstyle/comment6/input.js | 2 + .../input/indent/cppstyle/comment6/origin | 1 + .../input/indent/cppstyle/comment7/expected | 3 + .../input/indent/cppstyle/comment7/input.js | 3 + .../input/indent/cppstyle/comment7/origin | 1 + .../input/indent/cppstyle/comment8/expected | 3 + .../input/indent/cppstyle/comment8/input.js | 3 + .../input/indent/cppstyle/comment8/origin | 1 + .../input/indent/cppstyle/comment9/expected | 4 + .../input/indent/cppstyle/comment9/input.js | 3 + .../input/indent/cppstyle/comment9/origin | 3 + .../input/indent/cppstyle/do1/expected | 2 + .../input/indent/cppstyle/do1/input.js | 3 + .../input/indent/cppstyle/do1/origin | 1 + .../input/indent/cppstyle/dot1/expected | 3 + .../input/indent/cppstyle/dot1/input.js | 8 + .../input/indent/cppstyle/dot1/origin | 3 + .../input/indent/cppstyle/dot2/expected | 11 + .../input/indent/cppstyle/dot2/input.js | 30 + .../input/indent/cppstyle/dot2/origin | 11 + .../input/indent/cppstyle/dot3/expected | 3 + .../input/indent/cppstyle/dot3/input.js | 17 + .../input/indent/cppstyle/dot3/origin | 3 + .../input/indent/cppstyle/doxygen1/expected | 3 + .../input/indent/cppstyle/doxygen1/input.js | 3 + .../input/indent/cppstyle/doxygen1/origin | 1 + .../input/indent/cppstyle/doxygen2/expected | 3 + .../input/indent/cppstyle/doxygen2/input.js | 3 + .../input/indent/cppstyle/doxygen2/origin | 1 + .../input/indent/cppstyle/doxygen3/expected | 4 + .../input/indent/cppstyle/doxygen3/input.js | 3 + .../input/indent/cppstyle/doxygen3/origin | 3 + .../input/indent/cppstyle/doxygen4/expected | 1 + .../input/indent/cppstyle/doxygen4/input.js | 3 + .../input/indent/cppstyle/doxygen4/origin | 1 + .../input/indent/cppstyle/doxygen5/expected | 4 + .../input/indent/cppstyle/doxygen5/input.js | 2 + .../input/indent/cppstyle/doxygen5/origin | 3 + .../input/indent/cppstyle/doxygen6/expected | 1 + .../input/indent/cppstyle/doxygen6/input.js | 3 + .../input/indent/cppstyle/doxygen6/origin | 1 + .../input/indent/cppstyle/doxygen7/expected | 1 + .../input/indent/cppstyle/doxygen7/input.js | 3 + .../input/indent/cppstyle/doxygen7/origin | 1 + .../input/indent/cppstyle/doxygen8/expected | 1 + .../input/indent/cppstyle/doxygen8/input.js | 3 + .../input/indent/cppstyle/doxygen8/origin | 1 + .../input/indent/cppstyle/doxygen9/expected | 3 + .../input/indent/cppstyle/doxygen9/input.js | 3 + .../input/indent/cppstyle/doxygen9/origin | 1 + .../input/indent/cppstyle/equal1/expected | 2 + .../input/indent/cppstyle/equal1/input.js | 3 + .../input/indent/cppstyle/equal1/origin | 1 + .../input/indent/cppstyle/equal2/expected | 2 + .../input/indent/cppstyle/equal2/input.js | 2 + .../input/indent/cppstyle/equal2/origin | 1 + .../input/indent/cppstyle/equal3/expected | 10 + .../input/indent/cppstyle/equal3/input.js | 50 + .../input/indent/cppstyle/equal3/origin | 10 + .../input/indent/cppstyle/equal4/expected | 1 + .../input/indent/cppstyle/equal4/input.js | 4 + .../input/indent/cppstyle/equal4/origin | 1 + .../input/indent/cppstyle/equal5/expected | 3 + .../input/indent/cppstyle/equal5/input.js | 18 + .../input/indent/cppstyle/equal5/origin | 3 + .../input/indent/cppstyle/equal6/expected | 2 + .../input/indent/cppstyle/equal6/input.js | 9 + .../input/indent/cppstyle/equal6/origin | 2 + .../indent/cppstyle/exclamation1/expected | 1 + .../indent/cppstyle/exclamation1/input.js | 3 + .../input/indent/cppstyle/exclamation1/origin | 1 + .../indent/cppstyle/exclamation2/expected | 1 + .../indent/cppstyle/exclamation2/input.js | 3 + .../input/indent/cppstyle/exclamation2/origin | 1 + .../indent/cppstyle/exclamation3/expected | 1 + .../indent/cppstyle/exclamation3/input.js | 3 + .../input/indent/cppstyle/exclamation3/origin | 1 + .../indent/cppstyle/exclamation4/expected | 1 + .../indent/cppstyle/exclamation4/input.js | 3 + .../input/indent/cppstyle/exclamation4/origin | 1 + .../indent/cppstyle/exclamation5/expected | 1 + .../indent/cppstyle/exclamation5/input.js | 3 + .../input/indent/cppstyle/exclamation5/origin | 1 + .../input/indent/cppstyle/for1/expected | 2 + .../input/indent/cppstyle/for1/input.js | 4 + .../input/indent/cppstyle/for1/origin | 1 + .../input/indent/cppstyle/for2/expected | 3 + .../input/indent/cppstyle/for2/input.js | 4 + .../input/indent/cppstyle/for2/origin | 2 + .../input/indent/cppstyle/lab1/expected | 1 + .../input/indent/cppstyle/lab1/input.js | 3 + .../input/indent/cppstyle/lab1/origin | 1 + .../input/indent/cppstyle/lab10/expected | 1 + .../input/indent/cppstyle/lab10/input.js | 3 + .../input/indent/cppstyle/lab10/origin | 1 + .../input/indent/cppstyle/lab2/expected | 1 + .../input/indent/cppstyle/lab2/input.js | 3 + .../input/indent/cppstyle/lab2/origin | 1 + .../input/indent/cppstyle/lab3/expected | 1 + .../input/indent/cppstyle/lab3/input.js | 3 + .../input/indent/cppstyle/lab3/origin | 1 + .../input/indent/cppstyle/lab4/expected | 1 + .../input/indent/cppstyle/lab4/input.js | 3 + .../input/indent/cppstyle/lab4/origin | 1 + .../input/indent/cppstyle/lab5/expected | 1 + .../input/indent/cppstyle/lab5/input.js | 3 + .../input/indent/cppstyle/lab5/origin | 1 + .../input/indent/cppstyle/lab6/expected | 1 + .../input/indent/cppstyle/lab6/input.js | 3 + .../input/indent/cppstyle/lab6/origin | 1 + .../input/indent/cppstyle/lab7/expected | 1 + .../input/indent/cppstyle/lab7/input.js | 2 + .../input/indent/cppstyle/lab7/origin | 1 + .../input/indent/cppstyle/lab8/expected | 1 + .../input/indent/cppstyle/lab8/input.js | 3 + .../input/indent/cppstyle/lab8/origin | 1 + .../input/indent/cppstyle/lab9/expected | 1 + .../input/indent/cppstyle/lab9/input.js | 4 + .../input/indent/cppstyle/lab9/origin | 1 + .../input/indent/cppstyle/normal1/expected | 3 + .../input/indent/cppstyle/normal1/input.js | 3 + .../input/indent/cppstyle/normal1/origin | 2 + .../input/indent/cppstyle/normal10/expected | 1 + .../input/indent/cppstyle/normal10/input.js | 6 + .../input/indent/cppstyle/normal10/origin | 1 + .../input/indent/cppstyle/normal11/expected | 1 + .../input/indent/cppstyle/normal11/input.js | 4 + .../input/indent/cppstyle/normal11/origin | 1 + .../input/indent/cppstyle/normal12/expected | 2 + .../input/indent/cppstyle/normal12/input.js | 3 + .../input/indent/cppstyle/normal12/origin | 1 + .../input/indent/cppstyle/normal13/expected | 6 + .../input/indent/cppstyle/normal13/input.js | 3 + .../input/indent/cppstyle/normal13/origin | 5 + .../input/indent/cppstyle/normal14/expected | 4 + .../input/indent/cppstyle/normal14/input.js | 3 + .../input/indent/cppstyle/normal14/origin | 3 + .../input/indent/cppstyle/normal15/expected | 4 + .../input/indent/cppstyle/normal15/input.js | 3 + .../input/indent/cppstyle/normal15/origin | 3 + .../input/indent/cppstyle/normal16/expected | 4 + .../input/indent/cppstyle/normal16/input.js | 3 + .../input/indent/cppstyle/normal16/origin | 3 + .../input/indent/cppstyle/normal17/expected | 4 + .../input/indent/cppstyle/normal17/input.js | 3 + .../input/indent/cppstyle/normal17/origin | 3 + .../input/indent/cppstyle/normal18/expected | 6 + .../input/indent/cppstyle/normal18/input.js | 3 + .../input/indent/cppstyle/normal18/origin | 5 + .../input/indent/cppstyle/normal19/expected | 5 + .../input/indent/cppstyle/normal19/input.js | 3 + .../input/indent/cppstyle/normal19/origin | 4 + .../input/indent/cppstyle/normal2/expected | 3 + .../input/indent/cppstyle/normal2/input.js | 2 + .../input/indent/cppstyle/normal2/origin | 2 + .../input/indent/cppstyle/normal20/expected | 4 + .../input/indent/cppstyle/normal20/input.js | 3 + .../input/indent/cppstyle/normal20/origin | 3 + .../input/indent/cppstyle/normal21/expected | 1 + .../input/indent/cppstyle/normal21/input.js | 2 + .../input/indent/cppstyle/normal21/origin | 1 + .../input/indent/cppstyle/normal22/expected | 6 + .../input/indent/cppstyle/normal22/input.js | 3 + .../input/indent/cppstyle/normal22/origin | 5 + .../input/indent/cppstyle/normal23/expected | 4 + .../input/indent/cppstyle/normal23/input.js | 7 + .../input/indent/cppstyle/normal23/origin | 2 + .../input/indent/cppstyle/normal24/expected | 4 + .../input/indent/cppstyle/normal24/input.js | 3 + .../input/indent/cppstyle/normal24/origin | 1 + .../input/indent/cppstyle/normal25/expected | 8 + .../input/indent/cppstyle/normal25/input.js | 3 + .../input/indent/cppstyle/normal25/origin | 5 + .../input/indent/cppstyle/normal3/expected | 3 + .../input/indent/cppstyle/normal3/input.js | 2 + .../input/indent/cppstyle/normal3/origin | 2 + .../input/indent/cppstyle/normal4/expected | 5 + .../input/indent/cppstyle/normal4/input.js | 4 + .../input/indent/cppstyle/normal4/origin | 4 + .../input/indent/cppstyle/normal5/expected | 4 + .../input/indent/cppstyle/normal5/input.js | 4 + .../input/indent/cppstyle/normal5/origin | 3 + .../input/indent/cppstyle/normal6/expected | 7 + .../input/indent/cppstyle/normal6/input.js | 5 + .../input/indent/cppstyle/normal6/origin | 5 + .../input/indent/cppstyle/normal7/expected | 1 + .../input/indent/cppstyle/normal7/input.js | 3 + .../input/indent/cppstyle/normal7/origin | 1 + .../input/indent/cppstyle/normal8/expected | 3 + .../input/indent/cppstyle/normal8/input.js | 3 + .../input/indent/cppstyle/normal8/origin | 2 + .../input/indent/cppstyle/normal9/expected | 1 + .../input/indent/cppstyle/normal9/input.js | 4 + .../input/indent/cppstyle/normal9/origin | 1 + .../input/indent/cppstyle/parens1/expected | 2 + .../input/indent/cppstyle/parens1/input.js | 3 + .../input/indent/cppstyle/parens1/origin | 1 + .../input/indent/cppstyle/pipe1/expected | 9 + .../input/indent/cppstyle/pipe1/input.js | 36 + .../input/indent/cppstyle/pipe1/origin | 9 + .../input/indent/cppstyle/plist1/expected | 3 + .../input/indent/cppstyle/plist1/input.js | 3 + .../input/indent/cppstyle/plist1/origin | 1 + .../input/indent/cppstyle/plist2/expected | 4 + .../input/indent/cppstyle/plist2/input.js | 3 + .../input/indent/cppstyle/plist2/origin | 3 + .../input/indent/cppstyle/plist3/expected | 3 + .../input/indent/cppstyle/plist3/input.js | 3 + .../input/indent/cppstyle/plist3/origin | 1 + .../indent/cppstyle/preprocessor1/expected | 1 + .../indent/cppstyle/preprocessor1/input.js | 3 + .../indent/cppstyle/preprocessor1/origin | 1 + .../indent/cppstyle/preprocessor2/expected | 2 + .../indent/cppstyle/preprocessor2/input.js | 3 + .../indent/cppstyle/preprocessor2/origin | 2 + .../indent/cppstyle/preprocessor3/expected | 5 + .../indent/cppstyle/preprocessor3/input.js | 3 + .../indent/cppstyle/preprocessor3/origin | 5 + .../indent/cppstyle/preprocessor4/expected | 2 + .../indent/cppstyle/preprocessor4/input.js | 4 + .../indent/cppstyle/preprocessor4/origin | 1 + .../indent/cppstyle/preprocessor5/expected | 3 + .../indent/cppstyle/preprocessor5/input.js | 4 + .../indent/cppstyle/preprocessor5/origin | 2 + .../indent/cppstyle/preprocessor6/expected | 3 + .../indent/cppstyle/preprocessor6/input.js | 4 + .../indent/cppstyle/preprocessor6/origin | 2 + .../input/indent/cppstyle/quote1/expected | 2 + .../input/indent/cppstyle/quote1/input.js | 5 + .../input/indent/cppstyle/quote1/origin | 2 + .../input/indent/cppstyle/quote2/expected | 1 + .../input/indent/cppstyle/quote2/input.js | 3 + .../input/indent/cppstyle/quote2/origin | 1 + .../input/indent/cppstyle/quote3/expected | 1 + .../input/indent/cppstyle/quote3/input.js | 3 + .../input/indent/cppstyle/quote3/origin | 1 + .../input/indent/cppstyle/quote4/expected | 3 + .../input/indent/cppstyle/quote4/input.js | 11 + .../input/indent/cppstyle/quote4/origin | 3 + .../input/indent/cppstyle/semicolon1/expected | 2 + .../input/indent/cppstyle/semicolon1/input.js | 3 + .../input/indent/cppstyle/semicolon1/origin | 2 + .../input/indent/cppstyle/semicolon2/expected | 3 + .../input/indent/cppstyle/semicolon2/input.js | 3 + .../input/indent/cppstyle/semicolon2/origin | 3 + .../input/indent/cppstyle/semicolon3/expected | 4 + .../input/indent/cppstyle/semicolon3/input.js | 3 + .../input/indent/cppstyle/semicolon3/origin | 4 + .../input/indent/cppstyle/semicolon4/expected | 1 + .../input/indent/cppstyle/semicolon4/input.js | 3 + .../input/indent/cppstyle/semicolon4/origin | 1 + .../input/indent/cppstyle/semicolon5/expected | 1 + .../input/indent/cppstyle/semicolon5/input.js | 3 + .../input/indent/cppstyle/semicolon5/origin | 1 + .../input/indent/cppstyle/semicolon6/expected | 1 + .../input/indent/cppstyle/semicolon6/input.js | 3 + .../input/indent/cppstyle/semicolon6/origin | 1 + .../input/indent/cppstyle/semicolon7/expected | 1 + .../input/indent/cppstyle/semicolon7/input.js | 4 + .../input/indent/cppstyle/semicolon7/origin | 1 + .../input/indent/cppstyle/semicolon8/expected | 1 + .../input/indent/cppstyle/semicolon8/input.js | 3 + .../input/indent/cppstyle/semicolon8/origin | 1 + .../input/indent/cppstyle/shortcut1/expected | 1 + .../input/indent/cppstyle/shortcut1/input.js | 3 + .../input/indent/cppstyle/shortcut1/origin | 1 + .../input/indent/cppstyle/shortcut10/expected | 1 + .../input/indent/cppstyle/shortcut10/input.js | 3 + .../input/indent/cppstyle/shortcut10/origin | 1 + .../input/indent/cppstyle/shortcut11/expected | 1 + .../input/indent/cppstyle/shortcut11/input.js | 3 + .../input/indent/cppstyle/shortcut11/origin | 1 + .../input/indent/cppstyle/shortcut12/expected | 1 + .../input/indent/cppstyle/shortcut12/input.js | 3 + .../input/indent/cppstyle/shortcut12/origin | 1 + .../input/indent/cppstyle/shortcut2/expected | 2 + .../input/indent/cppstyle/shortcut2/input.js | 7 + .../input/indent/cppstyle/shortcut2/origin | 2 + .../input/indent/cppstyle/shortcut3/expected | 1 + .../input/indent/cppstyle/shortcut3/input.js | 3 + .../input/indent/cppstyle/shortcut3/origin | 1 + .../input/indent/cppstyle/shortcut4/expected | 1 + .../input/indent/cppstyle/shortcut4/input.js | 3 + .../input/indent/cppstyle/shortcut4/origin | 1 + .../input/indent/cppstyle/shortcut6/expected | 6 + .../input/indent/cppstyle/shortcut6/input.js | 23 + .../input/indent/cppstyle/shortcut6/origin | 6 + .../input/indent/cppstyle/shortcut7/expected | 1 + .../input/indent/cppstyle/shortcut7/input.js | 3 + .../input/indent/cppstyle/shortcut7/origin | 1 + .../input/indent/cppstyle/shortcut8/expected | 1 + .../input/indent/cppstyle/shortcut8/input.js | 3 + .../input/indent/cppstyle/shortcut8/origin | 1 + .../input/indent/cppstyle/shortcut9/expected | 1 + .../input/indent/cppstyle/shortcut9/input.js | 3 + .../input/indent/cppstyle/shortcut9/origin | 1 + .../input/indent/cppstyle/space1/expected | 1 + .../input/indent/cppstyle/space1/input.js | 3 + .../input/indent/cppstyle/space1/origin | 1 + .../input/indent/cppstyle/space2/expected | 1 + .../input/indent/cppstyle/space2/input.js | 4 + .../input/indent/cppstyle/space2/origin | 1 + .../input/indent/cppstyle/string1/expected | 2 + .../input/indent/cppstyle/string1/input.js | 3 + .../input/indent/cppstyle/string1/origin | 1 + .../input/indent/cppstyle/string2/expected | 3 + .../input/indent/cppstyle/string2/input.js | 7 + .../input/indent/cppstyle/string2/origin | 1 + .../input/indent/cppstyle/string3/expected | 2 + .../input/indent/cppstyle/string3/input.js | 3 + .../input/indent/cppstyle/string3/origin | 1 + .../input/indent/cppstyle/string4/expected | 3 + .../input/indent/cppstyle/string4/input.js | 7 + .../input/indent/cppstyle/string4/origin | 1 + .../input/indent/cppstyle/string5/expected | 2 + .../input/indent/cppstyle/string5/input.js | 3 + .../input/indent/cppstyle/string5/origin | 1 + .../input/indent/cppstyle/string6/expected | 5 + .../input/indent/cppstyle/string6/input.js | 8 + .../input/indent/cppstyle/string6/origin | 3 + .../indent/cppstyle/ternary_op1/expected | 4 + .../indent/cppstyle/ternary_op1/input.js | 4 + .../input/indent/cppstyle/ternary_op1/origin | 3 + .../indent/cppstyle/ternary_op2/expected | 1 + .../indent/cppstyle/ternary_op2/input.js | 3 + .../input/indent/cppstyle/ternary_op2/origin | 1 + .../indent/cppstyle/ternary_op3/expected | 5 + .../indent/cppstyle/ternary_op3/input.js | 4 + .../input/indent/cppstyle/ternary_op3/origin | 4 + .../autotests/input/indent/cstyle/.kateconfig | 1 + .../input/indent/cstyle/137157/expected | 6 + .../input/indent/cstyle/137157/input.js | 3 + .../input/indent/cstyle/137157/origin | 5 + .../input/indent/cstyle/360456/expected | 4 + .../input/indent/cstyle/360456/input.js | 3 + .../input/indent/cstyle/360456/origin | 3 + .../input/indent/cstyle/385472/expected | 8 + .../input/indent/cstyle/385472/input.js | 3 + .../input/indent/cstyle/385472/origin | 7 + .../input/indent/cstyle/alignbrace/expected | 3 + .../input/indent/cstyle/alignbrace/input.js | 2 + .../input/indent/cstyle/alignbrace/origin | 3 + .../input/indent/cstyle/aplist1/expected | 3 + .../input/indent/cstyle/aplist1/input.js | 3 + .../input/indent/cstyle/aplist1/origin | 2 + .../input/indent/cstyle/aplist10/expected | 3 + .../input/indent/cstyle/aplist10/input.js | 3 + .../input/indent/cstyle/aplist10/origin | 2 + .../input/indent/cstyle/aplist11/expected | 4 + .../input/indent/cstyle/aplist11/input.js | 3 + .../input/indent/cstyle/aplist11/origin | 3 + .../input/indent/cstyle/aplist12/expected | 5 + .../input/indent/cstyle/aplist12/input.js | 4 + .../input/indent/cstyle/aplist12/origin | 4 + .../input/indent/cstyle/aplist13/expected | 4 + .../input/indent/cstyle/aplist13/input.js | 2 + .../input/indent/cstyle/aplist13/origin | 3 + .../input/indent/cstyle/aplist14/expected | 4 + .../input/indent/cstyle/aplist14/input.js | 2 + .../input/indent/cstyle/aplist14/origin | 3 + .../input/indent/cstyle/aplist15/expected | 5 + .../input/indent/cstyle/aplist15/input.js | 2 + .../input/indent/cstyle/aplist15/origin | 4 + .../input/indent/cstyle/aplist16/expected | 5 + .../input/indent/cstyle/aplist16/input.js | 2 + .../input/indent/cstyle/aplist16/origin | 4 + .../input/indent/cstyle/aplist17/expected | 4 + .../input/indent/cstyle/aplist17/input.js | 2 + .../input/indent/cstyle/aplist17/origin | 3 + .../input/indent/cstyle/aplist18/expected | 4 + .../input/indent/cstyle/aplist18/input.js | 2 + .../input/indent/cstyle/aplist18/origin | 3 + .../input/indent/cstyle/aplist19/expected | 5 + .../input/indent/cstyle/aplist19/input.js | 2 + .../input/indent/cstyle/aplist19/origin | 4 + .../input/indent/cstyle/aplist2/expected | 4 + .../input/indent/cstyle/aplist2/input.js | 3 + .../input/indent/cstyle/aplist2/origin | 3 + .../input/indent/cstyle/aplist20/expected | 5 + .../input/indent/cstyle/aplist20/input.js | 2 + .../input/indent/cstyle/aplist20/origin | 4 + .../input/indent/cstyle/aplist3/expected | 5 + .../input/indent/cstyle/aplist3/input.js | 4 + .../input/indent/cstyle/aplist3/origin | 4 + .../input/indent/cstyle/aplist4/expected | 4 + .../input/indent/cstyle/aplist4/input.js | 3 + .../input/indent/cstyle/aplist4/origin | 3 + .../input/indent/cstyle/aplist5/expected | 5 + .../input/indent/cstyle/aplist5/input.js | 4 + .../input/indent/cstyle/aplist5/origin | 4 + .../input/indent/cstyle/aplist6/expected | 5 + .../input/indent/cstyle/aplist6/input.js | 4 + .../input/indent/cstyle/aplist6/origin | 4 + .../input/indent/cstyle/aplist8/expected | 3 + .../input/indent/cstyle/aplist8/input.js | 3 + .../input/indent/cstyle/aplist8/origin | 2 + .../input/indent/cstyle/aplist9/expected | 4 + .../input/indent/cstyle/aplist9/input.js | 4 + .../input/indent/cstyle/aplist9/origin | 3 + .../input/indent/cstyle/brace1/expected | 3 + .../input/indent/cstyle/brace1/input.js | 3 + .../input/indent/cstyle/brace1/origin | 2 + .../input/indent/cstyle/brace2/expected | 5 + .../input/indent/cstyle/brace2/input.js | 2 + .../input/indent/cstyle/brace2/origin | 5 + .../input/indent/cstyle/clospar1/expected | 3 + .../input/indent/cstyle/clospar1/input.js | 3 + .../input/indent/cstyle/clospar1/origin | 2 + .../input/indent/cstyle/clospar2/expected | 4 + .../input/indent/cstyle/clospar2/input.js | 3 + .../input/indent/cstyle/clospar2/origin | 3 + .../input/indent/cstyle/clospar3/expected | 4 + .../input/indent/cstyle/clospar3/input.js | 2 + .../input/indent/cstyle/clospar3/origin | 2 + .../input/indent/cstyle/clospar4/expected | 5 + .../input/indent/cstyle/clospar4/input.js | 2 + .../input/indent/cstyle/clospar4/origin | 3 + .../input/indent/cstyle/clospar5/expected | 6 + .../input/indent/cstyle/clospar5/input.js | 4 + .../input/indent/cstyle/clospar5/origin | 4 + .../input/indent/cstyle/comma1/expected | 3 + .../input/indent/cstyle/comma1/input.js | 3 + .../input/indent/cstyle/comma1/origin | 2 + .../input/indent/cstyle/comma2/expected | 3 + .../input/indent/cstyle/comma2/input.js | 2 + .../input/indent/cstyle/comma2/origin | 2 + .../input/indent/cstyle/comma3/expected | 3 + .../input/indent/cstyle/comma3/input.js | 3 + .../input/indent/cstyle/comma3/origin | 2 + .../input/indent/cstyle/comma4/expected | 3 + .../input/indent/cstyle/comma4/input.js | 2 + .../input/indent/cstyle/comma4/origin | 2 + .../input/indent/cstyle/comma5/expected | 2 + .../input/indent/cstyle/comma5/input.js | 3 + .../input/indent/cstyle/comma5/origin | 1 + .../input/indent/cstyle/comma6/expected | 2 + .../input/indent/cstyle/comma6/input.js | 2 + .../input/indent/cstyle/comma6/origin | 1 + .../input/indent/cstyle/comment1/expected | 4 + .../input/indent/cstyle/comment1/input.js | 3 + .../input/indent/cstyle/comment1/origin | 3 + .../input/indent/cstyle/comment2/expected | 2 + .../input/indent/cstyle/comment2/input.js | 3 + .../input/indent/cstyle/comment2/origin | 1 + .../input/indent/cstyle/dart1/expected | 6 + .../input/indent/cstyle/dart1/input.js | 3 + .../input/indent/cstyle/dart1/origin | 5 + .../input/indent/cstyle/do1/expected | 3 + .../input/indent/cstyle/do1/input.js | 3 + .../autotests/input/indent/cstyle/do1/origin | 2 + .../input/indent/cstyle/do2/expected | 4 + .../input/indent/cstyle/do2/input.js | 3 + .../autotests/input/indent/cstyle/do2/origin | 3 + .../input/indent/cstyle/do3/expected | 3 + .../input/indent/cstyle/do3/input.js | 3 + .../autotests/input/indent/cstyle/do3/origin | 2 + .../input/indent/cstyle/doxygen1/expected | 3 + .../input/indent/cstyle/doxygen1/input.js | 3 + .../input/indent/cstyle/doxygen1/origin | 2 + .../input/indent/cstyle/doxygen10/expected | 4 + .../input/indent/cstyle/doxygen10/input.js | 3 + .../input/indent/cstyle/doxygen10/origin | 3 + .../input/indent/cstyle/doxygen11/expected | 5 + .../input/indent/cstyle/doxygen11/input.js | 7 + .../input/indent/cstyle/doxygen11/origin | 5 + .../input/indent/cstyle/doxygen2/expected | 4 + .../input/indent/cstyle/doxygen2/input.js | 3 + .../input/indent/cstyle/doxygen2/origin | 3 + .../input/indent/cstyle/doxygen3/expected | 5 + .../input/indent/cstyle/doxygen3/input.js | 3 + .../input/indent/cstyle/doxygen3/origin | 4 + .../input/indent/cstyle/doxygen4/expected | 6 + .../input/indent/cstyle/doxygen4/input.js | 3 + .../input/indent/cstyle/doxygen4/origin | 5 + .../input/indent/cstyle/doxygen5/expected | 2 + .../input/indent/cstyle/doxygen5/input.js | 2 + .../input/indent/cstyle/doxygen5/origin | 2 + .../input/indent/cstyle/doxygen6/expected | 3 + .../input/indent/cstyle/doxygen6/input.js | 3 + .../input/indent/cstyle/doxygen6/origin | 2 + .../input/indent/cstyle/doxygen7/expected | 3 + .../input/indent/cstyle/doxygen7/input.js | 3 + .../input/indent/cstyle/doxygen7/origin | 2 + .../input/indent/cstyle/doxygen8/expected | 2 + .../input/indent/cstyle/doxygen8/input.js | 3 + .../input/indent/cstyle/doxygen8/origin | 1 + .../input/indent/cstyle/doxygen9/expected | 3 + .../input/indent/cstyle/doxygen9/input.js | 3 + .../input/indent/cstyle/doxygen9/origin | 2 + .../input/indent/cstyle/elsething/expected | 5 + .../input/indent/cstyle/elsething/input.js | 2 + .../input/indent/cstyle/elsething/origin | 5 + .../input/indent/cstyle/for1/expected | 3 + .../input/indent/cstyle/for1/input.js | 3 + .../autotests/input/indent/cstyle/for1/origin | 2 + .../input/indent/cstyle/for2/expected | 5 + .../input/indent/cstyle/for2/input.js | 4 + .../autotests/input/indent/cstyle/for2/origin | 4 + .../input/indent/cstyle/for3/expected | 3 + .../input/indent/cstyle/for3/input.js | 3 + .../autotests/input/indent/cstyle/for3/origin | 2 + .../input/indent/cstyle/for4/expected | 4 + .../input/indent/cstyle/for4/input.js | 3 + .../autotests/input/indent/cstyle/for4/origin | 3 + .../input/indent/cstyle/for5/expected | 3 + .../input/indent/cstyle/for5/input.js | 3 + .../autotests/input/indent/cstyle/for5/origin | 2 + .../input/indent/cstyle/foreign1/expected | 3 + .../input/indent/cstyle/foreign1/input.js | 3 + .../input/indent/cstyle/foreign1/origin | 2 + .../input/indent/cstyle/foreign2/expected | 4 + .../input/indent/cstyle/foreign2/input.js | 3 + .../input/indent/cstyle/foreign2/origin | 3 + .../input/indent/cstyle/foreign3/expected | 3 + .../input/indent/cstyle/foreign3/input.js | 3 + .../input/indent/cstyle/foreign3/origin | 2 + .../input/indent/cstyle/fork/expected | 3 + .../input/indent/cstyle/fork/input.js | 2 + .../autotests/input/indent/cstyle/fork/origin | 3 + .../indent/cstyle/func_in_param/expected | 4 + .../indent/cstyle/func_in_param/input.js | 3 + .../input/indent/cstyle/func_in_param/origin | 3 + .../input/indent/cstyle/if1/expected | 3 + .../input/indent/cstyle/if1/input.js | 3 + .../autotests/input/indent/cstyle/if1/origin | 2 + .../input/indent/cstyle/if10/expected | 2 + .../input/indent/cstyle/if10/input.js | 2 + .../autotests/input/indent/cstyle/if10/origin | 1 + .../input/indent/cstyle/if11/expected | 6 + .../input/indent/cstyle/if11/input.js | 2 + .../autotests/input/indent/cstyle/if11/origin | 5 + .../input/indent/cstyle/if2/expected | 4 + .../input/indent/cstyle/if2/input.js | 3 + .../autotests/input/indent/cstyle/if2/origin | 3 + .../input/indent/cstyle/if3/expected | 5 + .../input/indent/cstyle/if3/input.js | 3 + .../autotests/input/indent/cstyle/if3/origin | 4 + .../input/indent/cstyle/if4/expected | 6 + .../input/indent/cstyle/if4/input.js | 3 + .../autotests/input/indent/cstyle/if4/origin | 5 + .../input/indent/cstyle/if5/expected | 5 + .../input/indent/cstyle/if5/input.js | 3 + .../autotests/input/indent/cstyle/if5/origin | 4 + .../input/indent/cstyle/if6/expected | 3 + .../input/indent/cstyle/if6/input.js | 3 + .../autotests/input/indent/cstyle/if6/origin | 2 + .../input/indent/cstyle/if7/expected | 5 + .../input/indent/cstyle/if7/input.js | 3 + .../autotests/input/indent/cstyle/if7/origin | 4 + .../input/indent/cstyle/if8/expected | 6 + .../input/indent/cstyle/if8/input.js | 3 + .../autotests/input/indent/cstyle/if8/origin | 5 + .../input/indent/cstyle/if9/expected | 5 + .../input/indent/cstyle/if9/input.js | 3 + .../autotests/input/indent/cstyle/if9/origin | 4 + .../input/indent/cstyle/indentpaste1/expected | 4 + .../input/indent/cstyle/indentpaste1/input.js | 2 + .../input/indent/cstyle/indentpaste1/origin | 4 + .../input/indent/cstyle/indentpaste2/expected | 4 + .../input/indent/cstyle/indentpaste2/input.js | 2 + .../input/indent/cstyle/indentpaste2/origin | 4 + .../input/indent/cstyle/indentpaste3/expected | 6 + .../input/indent/cstyle/indentpaste3/input.js | 2 + .../input/indent/cstyle/indentpaste3/origin | 4 + .../input/indent/cstyle/indentpaste4/expected | 10 + .../input/indent/cstyle/indentpaste4/input.js | 3 + .../input/indent/cstyle/indentpaste4/origin | 5 + .../input/indent/cstyle/indentpaste5/expected | 11 + .../input/indent/cstyle/indentpaste5/input.js | 2 + .../input/indent/cstyle/indentpaste5/origin | 6 + .../input/indent/cstyle/indentpaste6/expected | 14 + .../input/indent/cstyle/indentpaste6/input.js | 2 + .../input/indent/cstyle/indentpaste6/origin | 12 + .../input/indent/cstyle/jsarray/expected | 4 + .../input/indent/cstyle/jsarray/input.js | 3 + .../input/indent/cstyle/jsarray/origin | 3 + .../input/indent/cstyle/normal1/expected | 3 + .../input/indent/cstyle/normal1/input.js | 3 + .../input/indent/cstyle/normal1/origin | 2 + .../input/indent/cstyle/normal2/expected | 3 + .../input/indent/cstyle/normal2/input.js | 2 + .../input/indent/cstyle/normal2/origin | 2 + .../input/indent/cstyle/normal3/expected | 3 + .../input/indent/cstyle/normal3/input.js | 2 + .../input/indent/cstyle/normal3/origin | 2 + .../input/indent/cstyle/openpar1/expected | 2 + .../input/indent/cstyle/openpar1/input.js | 3 + .../input/indent/cstyle/openpar1/origin | 1 + .../input/indent/cstyle/openpar10/expected | 5 + .../input/indent/cstyle/openpar10/input.js | 4 + .../input/indent/cstyle/openpar10/origin | 4 + .../input/indent/cstyle/openpar11/expected | 7 + .../input/indent/cstyle/openpar11/input.js | 5 + .../input/indent/cstyle/openpar11/origin | 6 + .../input/indent/cstyle/openpar12/expected | 7 + .../input/indent/cstyle/openpar12/input.js | 6 + .../input/indent/cstyle/openpar12/origin | 4 + .../input/indent/cstyle/openpar13/expected | 13 + .../input/indent/cstyle/openpar13/input.js | 4 + .../input/indent/cstyle/openpar13/origin | 11 + .../input/indent/cstyle/openpar2/expected | 3 + .../input/indent/cstyle/openpar2/input.js | 5 + .../input/indent/cstyle/openpar2/origin | 1 + .../input/indent/cstyle/openpar3/expected | 2 + .../input/indent/cstyle/openpar3/input.js | 2 + .../input/indent/cstyle/openpar3/origin | 1 + .../input/indent/cstyle/openpar4/expected | 2 + .../input/indent/cstyle/openpar4/input.js | 2 + .../input/indent/cstyle/openpar4/origin | 1 + .../input/indent/cstyle/openpar5/expected | 2 + .../input/indent/cstyle/openpar5/input.js | 2 + .../input/indent/cstyle/openpar5/origin | 1 + .../input/indent/cstyle/openpar6/expected | 3 + .../input/indent/cstyle/openpar6/input.js | 2 + .../input/indent/cstyle/openpar6/origin | 2 + .../input/indent/cstyle/openpar7/expected | 3 + .../input/indent/cstyle/openpar7/input.js | 2 + .../input/indent/cstyle/openpar7/origin | 2 + .../input/indent/cstyle/openpar8/expected | 3 + .../input/indent/cstyle/openpar8/input.js | 2 + .../input/indent/cstyle/openpar8/origin | 2 + .../input/indent/cstyle/openpar9/expected | 5 + .../input/indent/cstyle/openpar9/input.js | 4 + .../input/indent/cstyle/openpar9/origin | 4 + .../input/indent/cstyle/plist1/expected | 2 + .../input/indent/cstyle/plist1/input.js | 3 + .../input/indent/cstyle/plist1/origin | 1 + .../input/indent/cstyle/plist10/expected | 2 + .../input/indent/cstyle/plist10/input.js | 2 + .../input/indent/cstyle/plist10/origin | 1 + .../input/indent/cstyle/plist11/expected | 3 + .../input/indent/cstyle/plist11/input.js | 2 + .../input/indent/cstyle/plist11/origin | 2 + .../input/indent/cstyle/plist12/expected | 4 + .../input/indent/cstyle/plist12/input.js | 2 + .../input/indent/cstyle/plist12/origin | 3 + .../input/indent/cstyle/plist13/expected | 5 + .../input/indent/cstyle/plist13/input.js | 2 + .../input/indent/cstyle/plist13/origin | 4 + .../input/indent/cstyle/plist14/expected | 4 + .../input/indent/cstyle/plist14/input.js | 2 + .../input/indent/cstyle/plist14/origin | 3 + .../input/indent/cstyle/plist15/expected | 4 + .../input/indent/cstyle/plist15/input.js | 2 + .../input/indent/cstyle/plist15/origin | 3 + .../input/indent/cstyle/plist16/expected | 3 + .../input/indent/cstyle/plist16/input.js | 2 + .../input/indent/cstyle/plist16/origin | 2 + .../input/indent/cstyle/plist17/expected | 4 + .../input/indent/cstyle/plist17/input.js | 2 + .../input/indent/cstyle/plist17/origin | 3 + .../input/indent/cstyle/plist18/expected | 7 + .../input/indent/cstyle/plist18/input.js | 2 + .../input/indent/cstyle/plist18/origin | 6 + .../input/indent/cstyle/plist19/expected | 6 + .../input/indent/cstyle/plist19/input.js | 2 + .../input/indent/cstyle/plist19/origin | 5 + .../input/indent/cstyle/plist2/expected | 2 + .../input/indent/cstyle/plist2/input.js | 2 + .../input/indent/cstyle/plist2/origin | 2 + .../input/indent/cstyle/plist20/expected | 7 + .../input/indent/cstyle/plist20/input.js | 2 + .../input/indent/cstyle/plist20/origin | 6 + .../input/indent/cstyle/plist21/expected | 6 + .../input/indent/cstyle/plist21/input.js | 2 + .../input/indent/cstyle/plist21/origin | 5 + .../input/indent/cstyle/plist22/expected | 5 + .../input/indent/cstyle/plist22/input.js | 2 + .../input/indent/cstyle/plist22/origin | 4 + .../input/indent/cstyle/plist24/expected | 5 + .../input/indent/cstyle/plist24/input.js | 2 + .../input/indent/cstyle/plist24/origin | 4 + .../input/indent/cstyle/plist25/expected | 5 + .../input/indent/cstyle/plist25/input.js | 2 + .../input/indent/cstyle/plist25/origin | 4 + .../input/indent/cstyle/plist26/expected | 5 + .../input/indent/cstyle/plist26/input.js | 2 + .../input/indent/cstyle/plist26/origin | 4 + .../input/indent/cstyle/plist3/expected | 3 + .../input/indent/cstyle/plist3/input.js | 3 + .../input/indent/cstyle/plist3/origin | 2 + .../input/indent/cstyle/plist4/expected | 4 + .../input/indent/cstyle/plist4/input.js | 3 + .../input/indent/cstyle/plist4/origin | 3 + .../input/indent/cstyle/plist5/expected | 4 + .../input/indent/cstyle/plist5/input.js | 4 + .../input/indent/cstyle/plist5/origin | 3 + .../input/indent/cstyle/plist6/expected | 2 + .../input/indent/cstyle/plist6/input.js | 3 + .../input/indent/cstyle/plist6/origin | 1 + .../input/indent/cstyle/plist7/expected | 3 + .../input/indent/cstyle/plist7/input.js | 3 + .../input/indent/cstyle/plist7/origin | 2 + .../input/indent/cstyle/plist8/expected | 2 + .../input/indent/cstyle/plist8/input.js | 2 + .../input/indent/cstyle/plist8/origin | 1 + .../input/indent/cstyle/plist9/expected | 3 + .../input/indent/cstyle/plist9/input.js | 2 + .../input/indent/cstyle/plist9/origin | 2 + .../input/indent/cstyle/prep1/expected | 3 + .../input/indent/cstyle/prep1/input.js | 4 + .../input/indent/cstyle/prep1/origin | 2 + .../input/indent/cstyle/prep2/expected | 4 + .../input/indent/cstyle/prep2/input.js | 3 + .../input/indent/cstyle/prep2/origin | 3 + .../input/indent/cstyle/prep3/expected | 3 + .../input/indent/cstyle/prep3/input.js | 3 + .../input/indent/cstyle/prep3/origin | 2 + .../input/indent/cstyle/prep4/expected | 3 + .../input/indent/cstyle/prep4/input.js | 3 + .../input/indent/cstyle/prep4/origin | 2 + .../input/indent/cstyle/prep5/expected | 3 + .../input/indent/cstyle/prep5/input.js | 2 + .../input/indent/cstyle/prep5/origin | 3 + .../input/indent/cstyle/prep6/expected | 3 + .../input/indent/cstyle/prep6/input.js | 2 + .../input/indent/cstyle/prep6/origin | 3 + .../input/indent/cstyle/string1/expected | 6 + .../input/indent/cstyle/string1/input.js | 3 + .../input/indent/cstyle/string1/origin | 5 + .../input/indent/cstyle/string2/expected | 7 + .../input/indent/cstyle/string2/input.js | 3 + .../input/indent/cstyle/string2/origin | 6 + .../input/indent/cstyle/string3/expected | 9 + .../input/indent/cstyle/string3/input.js | 3 + .../input/indent/cstyle/string3/origin | 8 + .../input/indent/cstyle/string4/expected | 9 + .../input/indent/cstyle/string4/input.js | 2 + .../input/indent/cstyle/string4/origin | 8 + .../input/indent/cstyle/switch1/expected | 3 + .../input/indent/cstyle/switch1/input.js | 3 + .../input/indent/cstyle/switch1/origin | 2 + .../input/indent/cstyle/switch10/expected | 3 + .../input/indent/cstyle/switch10/input.js | 2 + .../input/indent/cstyle/switch10/origin | 3 + .../input/indent/cstyle/switch11/expected | 3 + .../input/indent/cstyle/switch11/input.js | 2 + .../input/indent/cstyle/switch11/origin | 3 + .../input/indent/cstyle/switch12/expected | 3 + .../input/indent/cstyle/switch12/input.js | 3 + .../input/indent/cstyle/switch12/origin | 2 + .../input/indent/cstyle/switch13/expected | 4 + .../input/indent/cstyle/switch13/input.js | 3 + .../input/indent/cstyle/switch13/origin | 3 + .../input/indent/cstyle/switch14/expected | 3 + .../input/indent/cstyle/switch14/input.js | 3 + .../input/indent/cstyle/switch14/origin | 2 + .../input/indent/cstyle/switch2/expected | 4 + .../input/indent/cstyle/switch2/input.js | 3 + .../input/indent/cstyle/switch2/origin | 3 + .../input/indent/cstyle/switch3/expected | 5 + .../input/indent/cstyle/switch3/input.js | 3 + .../input/indent/cstyle/switch3/origin | 4 + .../input/indent/cstyle/switch4/expected | 6 + .../input/indent/cstyle/switch4/input.js | 4 + .../input/indent/cstyle/switch4/origin | 5 + .../input/indent/cstyle/switch5/expected | 4 + .../input/indent/cstyle/switch5/input.js | 3 + .../input/indent/cstyle/switch5/origin | 3 + .../input/indent/cstyle/switch6/expected | 4 + .../input/indent/cstyle/switch6/input.js | 2 + .../input/indent/cstyle/switch6/origin | 4 + .../input/indent/cstyle/switch7/expected | 7 + .../input/indent/cstyle/switch7/input.js | 5 + .../input/indent/cstyle/switch7/origin | 5 + .../input/indent/cstyle/switch8/expected | 5 + .../input/indent/cstyle/switch8/input.js | 3 + .../input/indent/cstyle/switch8/origin | 4 + .../input/indent/cstyle/switch9/expected | 5 + .../input/indent/cstyle/switch9/input.js | 2 + .../input/indent/cstyle/switch9/origin | 5 + .../input/indent/cstyle/tabindent/expected | 8 + .../input/indent/cstyle/tabindent/input.js | 6 + .../input/indent/cstyle/tabindent/origin | 7 + .../input/indent/cstyle/top1/expected | 2 + .../input/indent/cstyle/top1/input.js | 3 + .../autotests/input/indent/cstyle/top1/origin | 1 + .../input/indent/cstyle/top10/expected | 3 + .../input/indent/cstyle/top10/input.js | 3 + .../input/indent/cstyle/top10/origin | 2 + .../input/indent/cstyle/top11/expected | 3 + .../input/indent/cstyle/top11/input.js | 3 + .../input/indent/cstyle/top11/origin | 2 + .../input/indent/cstyle/top12/expected | 4 + .../input/indent/cstyle/top12/input.js | 3 + .../input/indent/cstyle/top12/origin | 3 + .../input/indent/cstyle/top13/expected | 4 + .../input/indent/cstyle/top13/input.js | 3 + .../input/indent/cstyle/top13/origin | 3 + .../input/indent/cstyle/top14/expected | 4 + .../input/indent/cstyle/top14/input.js | 3 + .../input/indent/cstyle/top14/origin | 3 + .../input/indent/cstyle/top15/expected | 4 + .../input/indent/cstyle/top15/input.js | 3 + .../input/indent/cstyle/top15/origin | 3 + .../input/indent/cstyle/top16/expected | 4 + .../input/indent/cstyle/top16/input.js | 3 + .../input/indent/cstyle/top16/origin | 3 + .../input/indent/cstyle/top17/expected | 4 + .../input/indent/cstyle/top17/input.js | 3 + .../input/indent/cstyle/top17/origin | 3 + .../input/indent/cstyle/top18/expected | 4 + .../input/indent/cstyle/top18/input.js | 3 + .../input/indent/cstyle/top18/origin | 3 + .../input/indent/cstyle/top19/expected | 2 + .../input/indent/cstyle/top19/input.js | 3 + .../input/indent/cstyle/top19/origin | 1 + .../input/indent/cstyle/top2/expected | 3 + .../input/indent/cstyle/top2/input.js | 3 + .../autotests/input/indent/cstyle/top2/origin | 2 + .../input/indent/cstyle/top3/expected | 3 + .../input/indent/cstyle/top3/input.js | 3 + .../autotests/input/indent/cstyle/top3/origin | 2 + .../input/indent/cstyle/top4/expected | 4 + .../input/indent/cstyle/top4/input.js | 3 + .../autotests/input/indent/cstyle/top4/origin | 3 + .../input/indent/cstyle/top5/expected | 3 + .../input/indent/cstyle/top5/input.js | 3 + .../autotests/input/indent/cstyle/top5/origin | 2 + .../input/indent/cstyle/top6/expected | 3 + .../input/indent/cstyle/top6/input.js | 3 + .../autotests/input/indent/cstyle/top6/origin | 2 + .../input/indent/cstyle/top7/expected | 3 + .../input/indent/cstyle/top7/input.js | 3 + .../autotests/input/indent/cstyle/top7/origin | 2 + .../input/indent/cstyle/top8/expected | 3 + .../input/indent/cstyle/top8/input.js | 3 + .../autotests/input/indent/cstyle/top8/origin | 2 + .../input/indent/cstyle/top9/expected | 3 + .../input/indent/cstyle/top9/input.js | 3 + .../autotests/input/indent/cstyle/top9/origin | 2 + .../input/indent/cstyle/triggerchars/expected | 3 + .../input/indent/cstyle/triggerchars/input.js | 2 + .../input/indent/cstyle/triggerchars/origin | 3 + .../input/indent/cstyle/usestrict/expected | 4 + .../input/indent/cstyle/usestrict/input.js | 3 + .../input/indent/cstyle/usestrict/origin | 3 + .../input/indent/cstyle/using1/expected | 2 + .../input/indent/cstyle/using1/input.js | 3 + .../input/indent/cstyle/using1/origin | 1 + .../input/indent/cstyle/using2/expected | 3 + .../input/indent/cstyle/using2/input.js | 3 + .../input/indent/cstyle/using2/origin | 2 + .../input/indent/cstyle/using3/expected | 2 + .../input/indent/cstyle/using3/input.js | 3 + .../input/indent/cstyle/using3/origin | 1 + .../input/indent/cstyle/visib1/expected | 3 + .../input/indent/cstyle/visib1/input.js | 3 + .../input/indent/cstyle/visib1/origin | 2 + .../input/indent/cstyle/visib2/expected | 4 + .../input/indent/cstyle/visib2/input.js | 3 + .../input/indent/cstyle/visib2/origin | 3 + .../input/indent/cstyle/visib3/expected | 3 + .../input/indent/cstyle/visib3/input.js | 3 + .../input/indent/cstyle/visib3/origin | 2 + .../input/indent/cstyle/visib4/expected | 2 + .../input/indent/cstyle/visib4/input.js | 2 + .../input/indent/cstyle/visib4/origin | 2 + .../input/indent/cstyle/visib5/expected | 2 + .../input/indent/cstyle/visib5/input.js | 2 + .../input/indent/cstyle/visib5/origin | 2 + .../input/indent/cstyle/visib6/expected | 2 + .../input/indent/cstyle/visib6/input.js | 2 + .../input/indent/cstyle/visib6/origin | 2 + .../input/indent/cstyle/visib7/expected | 2 + .../input/indent/cstyle/visib7/input.js | 2 + .../input/indent/cstyle/visib7/origin | 2 + .../input/indent/cstyle/visib8/expected | 2 + .../input/indent/cstyle/visib8/input.js | 2 + .../input/indent/cstyle/visib8/origin | 2 + .../input/indent/cstyle/while1/expected | 3 + .../input/indent/cstyle/while1/input.js | 3 + .../input/indent/cstyle/while1/origin | 2 + .../input/indent/cstyle/while2/expected | 4 + .../input/indent/cstyle/while2/input.js | 3 + .../input/indent/cstyle/while2/origin | 3 + .../input/indent/cstyle/while3/expected | 3 + .../input/indent/cstyle/while3/input.js | 3 + .../input/indent/cstyle/while3/origin | 2 + .../input/indent/haskell/.kateconfig | 1 + .../input/indent/haskell/afterComma1/expected | 2 + .../input/indent/haskell/afterComma1/input.js | 3 + .../input/indent/haskell/afterComma1/origin | 1 + .../input/indent/haskell/dontIndent1/expected | 6 + .../input/indent/haskell/dontIndent1/input.js | 3 + .../input/indent/haskell/dontIndent1/origin | 5 + .../input/indent/haskell/if1/expected | 2 + .../input/indent/haskell/if1/input.js | 3 + .../autotests/input/indent/haskell/if1/origin | 1 + .../input/indent/haskell/if2/expected | 3 + .../input/indent/haskell/if2/input.js | 3 + .../autotests/input/indent/haskell/if2/origin | 2 + .../input/indent/haskell/parsec1/expected | 3 + .../input/indent/haskell/parsec1/input.js | 3 + .../input/indent/haskell/parsec1/origin | 2 + .../autotests/input/indent/julia/.kateconfig | 1 + .../input/indent/julia/beginblock1/expected | 4 + .../input/indent/julia/beginblock1/input.js | 7 + .../input/indent/julia/beginblock1/origin | 1 + .../input/indent/julia/beginblock2/expected | 2 + .../input/indent/julia/beginblock2/input.js | 2 + .../input/indent/julia/beginblock2/origin | 1 + .../input/indent/julia/doblock/expected | 3 + .../input/indent/julia/doblock/input.js | 5 + .../input/indent/julia/doblock/origin | 1 + .../input/indent/julia/else1/expected | 3 + .../input/indent/julia/else1/input.js | 3 + .../autotests/input/indent/julia/else1/origin | 2 + .../input/indent/julia/else2/expected | 6 + .../input/indent/julia/else2/input.js | 5 + .../autotests/input/indent/julia/else2/origin | 4 + .../input/indent/julia/elseif1/expected | 3 + .../input/indent/julia/elseif1/input.js | 4 + .../input/indent/julia/elseif1/origin | 2 + .../input/indent/julia/elseif2/expected | 6 + .../input/indent/julia/elseif2/input.js | 5 + .../input/indent/julia/elseif2/origin | 4 + .../input/indent/julia/function_args/expected | 4 + .../input/indent/julia/function_args/input.js | 7 + .../input/indent/julia/function_args/origin | 1 + .../autotests/input/indent/julia/if1/expected | 2 + .../autotests/input/indent/julia/if1/input.js | 3 + .../autotests/input/indent/julia/if1/origin | 1 + .../autotests/input/indent/julia/if2/expected | 3 + .../autotests/input/indent/julia/if2/input.js | 3 + .../autotests/input/indent/julia/if2/origin | 2 + .../input/indent/julia/indentComment/expected | 2 + .../input/indent/julia/indentComment/input.js | 3 + .../input/indent/julia/indentComment/origin | 1 + .../input/indent/julia/indentpaste1/expected | 9 + .../input/indent/julia/indentpaste1/input.js | 2 + .../input/indent/julia/indentpaste1/origin | 5 + .../input/indent/julia/indentpaste2/expected | 17 + .../input/indent/julia/indentpaste2/input.js | 2 + .../input/indent/julia/indentpaste2/origin | 5 + .../input/indent/julia/keepIndent1/expected | 4 + .../input/indent/julia/keepIndent1/input.js | 3 + .../input/indent/julia/keepIndent1/origin | 3 + .../input/indent/julia/keepIndent2/expected | 5 + .../input/indent/julia/keepIndent2/input.js | 3 + .../input/indent/julia/keepIndent2/origin | 4 + .../input/indent/julia/keepIndent3/expected | 4 + .../input/indent/julia/keepIndent3/input.js | 3 + .../input/indent/julia/keepIndent3/origin | 3 + .../input/indent/julia/keepIndent4/expected | 4 + .../input/indent/julia/keepIndent4/input.js | 3 + .../input/indent/julia/keepIndent4/origin | 3 + .../julia/keepIndent5_argparse/expected | 6 + .../julia/keepIndent5_argparse/input.js | 3 + .../indent/julia/keepIndent5_argparse/origin | 5 + .../input/indent/julia/list1/expected | 4 + .../input/indent/julia/list1/input.js | 7 + .../autotests/input/indent/julia/list1/origin | 1 + .../input/indent/julia/list2/expected | 4 + .../input/indent/julia/list2/input.js | 7 + .../autotests/input/indent/julia/list2/origin | 1 + .../input/indent/julia/nested1/expected | 14 + .../input/indent/julia/nested1/input.js | 15 + .../input/indent/julia/nested1/origin | 7 + .../input/indent/julia/nested2/expected | 19 + .../input/indent/julia/nested2/input.js | 15 + .../input/indent/julia/nested2/origin | 12 + .../input/indent/julia/parametrics/expected | 3 + .../input/indent/julia/parametrics/input.js | 5 + .../input/indent/julia/parametrics/origin | 1 + .../input/indent/julia/subsetting/expected | 4 + .../input/indent/julia/subsetting/input.js | 9 + .../input/indent/julia/subsetting/origin | 1 + .../input/indent/julia/triggerchars/expected | 3 + .../input/indent/julia/triggerchars/input.js | 4 + .../input/indent/julia/triggerchars/origin | 2 + .../input/indent/julia/tuple1/expected | 4 + .../input/indent/julia/tuple1/input.js | 7 + .../input/indent/julia/tuple1/origin | 1 + .../input/indent/julia/tuple2/expected | 4 + .../input/indent/julia/tuple2/input.js | 7 + .../input/indent/julia/tuple2/origin | 1 + .../input/indent/julia/using1/expected | 4 + .../input/indent/julia/using1/input.js | 7 + .../input/indent/julia/using1/origin | 1 + .../input/indent/julia/using2/expected | 5 + .../input/indent/julia/using2/input.js | 8 + .../input/indent/julia/using2/origin | 1 + .../input/indent/julia/using3/expected | 4 + .../input/indent/julia/using3/input.js | 7 + .../input/indent/julia/using3/origin | 1 + .../input/indent/julia/using4/expected | 5 + .../input/indent/julia/using4/input.js | 8 + .../input/indent/julia/using4/origin | 1 + .../input/indent/julia/using5/expected | 5 + .../input/indent/julia/using5/input.js | 9 + .../input/indent/julia/using5/origin | 1 + .../input/indent/julia/wrapped_line/expected | 3 + .../input/indent/julia/wrapped_line/input.js | 5 + .../input/indent/julia/wrapped_line/origin | 1 + .../autotests/input/indent/latex/.kateconfig | 2 + .../input/indent/latex/env1/expected | 2 + .../input/indent/latex/env1/input.js | 3 + .../autotests/input/indent/latex/env1/origin | 1 + .../input/indent/latex/env2/expected | 2 + .../input/indent/latex/env2/input.js | 2 + .../autotests/input/indent/latex/env2/origin | 2 + .../input/indent/latex/env3/expected | 4 + .../input/indent/latex/env3/input.js | 7 + .../autotests/input/indent/latex/env3/origin | 1 + .../autotests/input/indent/normal/.kateconfig | 1 + .../input/indent/normal/cascade1/expected | 3 + .../input/indent/normal/cascade1/input.js | 3 + .../input/indent/normal/cascade1/origin | 2 + .../input/indent/normal/emptyline1/expected | 3 + .../input/indent/normal/emptyline1/input.js | 3 + .../input/indent/normal/emptyline1/origin | 2 + .../input/indent/normal/emptyline2/expected | 3 + .../input/indent/normal/emptyline2/input.js | 3 + .../input/indent/normal/emptyline2/origin | 2 + .../input/indent/normal/emptyline3/expected | 4 + .../input/indent/normal/emptyline3/input.js | 4 + .../input/indent/normal/emptyline3/origin | 2 + .../input/indent/normal/midbreak1/expected | 2 + .../input/indent/normal/midbreak1/input.js | 2 + .../input/indent/normal/midbreak1/origin | 1 + .../input/indent/normal/midbreak2/expected | 2 + .../input/indent/normal/midbreak2/input.js | 2 + .../input/indent/normal/midbreak2/origin | 1 + .../input/indent/normal/normal1/expected | 2 + .../input/indent/normal/normal1/input.js | 3 + .../input/indent/normal/normal1/origin | 1 + .../input/indent/normal/normal2/expected | 2 + .../input/indent/normal/normal2/input.js | 3 + .../input/indent/normal/normal2/origin | 1 + .../input/indent/normal/normal3/expected | 3 + .../input/indent/normal/normal3/input.js | 3 + .../input/indent/normal/normal3/origin | 2 + .../autotests/input/indent/pascal/.kateconfig | 3 + .../input/indent/pascal/case1/expected | 10 + .../input/indent/pascal/case1/input.js | 17 + .../input/indent/pascal/case1/origin | 3 + .../input/indent/pascal/case2/expected | 4 + .../input/indent/pascal/case2/input.js | 5 + .../input/indent/pascal/case2/origin | 3 + .../input/indent/pascal/case3/expected | 8 + .../input/indent/pascal/case3/input.js | 14 + .../input/indent/pascal/case3/origin | 3 + .../input/indent/pascal/case4/expected | 10 + .../input/indent/pascal/case4/input.js | 17 + .../input/indent/pascal/case4/origin | 3 + .../input/indent/pascal/case5/expected | 4 + .../input/indent/pascal/case5/input.js | 5 + .../input/indent/pascal/case5/origin | 3 + .../input/indent/pascal/case6/expected | 8 + .../input/indent/pascal/case6/input.js | 14 + .../input/indent/pascal/case6/origin | 3 + .../input/indent/pascal/closepar1/expected | 5 + .../input/indent/pascal/closepar1/input.js | 5 + .../input/indent/pascal/closepar1/origin | 4 + .../input/indent/pascal/closepar2/expected | 4 + .../input/indent/pascal/closepar2/input.js | 5 + .../input/indent/pascal/closepar2/origin | 3 + .../input/indent/pascal/comment1/expected | 3 + .../input/indent/pascal/comment1/input.js | 3 + .../input/indent/pascal/comment1/origin | 2 + .../input/indent/pascal/comment2/expected | 3 + .../input/indent/pascal/comment2/input.js | 3 + .../input/indent/pascal/comment2/origin | 2 + .../input/indent/pascal/comment3/expected | 3 + .../input/indent/pascal/comment3/input.js | 3 + .../input/indent/pascal/comment3/origin | 2 + .../input/indent/pascal/if1/expected | 8 + .../input/indent/pascal/if1/input.js | 10 + .../autotests/input/indent/pascal/if1/origin | 4 + .../input/indent/pascal/label1/expected | 3 + .../input/indent/pascal/label1/input.js | 8 + .../input/indent/pascal/label1/origin | 1 + .../input/indent/pascal/longtest1/expected | 336 + .../input/indent/pascal/longtest1/input.js | 8 + .../input/indent/pascal/longtest1/origin | 335 + .../input/indent/pascal/longtest2/expected | 277 + .../input/indent/pascal/longtest2/input.js | 8 + .../input/indent/pascal/longtest2/origin | 277 + .../input/indent/pascal/longtest3/expected | 418 + .../input/indent/pascal/longtest3/input.js | 8 + .../input/indent/pascal/longtest3/origin | 418 + .../input/indent/pascal/longtest4/expected | 534 + .../input/indent/pascal/longtest4/input.js | 8 + .../input/indent/pascal/longtest4/origin | 534 + .../input/indent/pascal/openpar1/expected | 4 + .../input/indent/pascal/openpar1/input.js | 5 + .../input/indent/pascal/openpar1/origin | 2 + .../input/indent/pascal/openpar2/expected | 4 + .../input/indent/pascal/openpar2/input.js | 5 + .../input/indent/pascal/openpar2/origin | 2 + .../input/indent/pascal/prep1/expected | 3 + .../input/indent/pascal/prep1/input.js | 7 + .../input/indent/pascal/prep1/origin | 1 + .../input/indent/pascal/trig1/expected | 4 + .../input/indent/pascal/trig1/input.js | 8 + .../input/indent/pascal/trig1/origin | 2 + .../autotests/input/indent/python/.kateconfig | 1 + .../input/indent/python/dedentBreak/expected | 3 + .../input/indent/python/dedentBreak/input.js | 3 + .../input/indent/python/dedentBreak/origin | 2 + .../indent/python/dedentComment/expected | 3 + .../indent/python/dedentComment/input.js | 3 + .../input/indent/python/dedentComment/origin | 2 + .../indent/python/dedentContinue/expected | 3 + .../indent/python/dedentContinue/input.js | 3 + .../input/indent/python/dedentContinue/origin | 2 + .../input/indent/python/dedentElif1/expected | 3 + .../input/indent/python/dedentElif1/input.js | 3 + .../input/indent/python/dedentElif1/origin | 2 + .../input/indent/python/dedentElif2/expected | 3 + .../input/indent/python/dedentElif2/input.js | 3 + .../input/indent/python/dedentElif2/origin | 2 + .../input/indent/python/dedentElse1/expected | 3 + .../input/indent/python/dedentElse1/input.js | 3 + .../input/indent/python/dedentElse1/origin | 2 + .../input/indent/python/dedentElse2/expected | 3 + .../input/indent/python/dedentElse2/input.js | 3 + .../input/indent/python/dedentElse2/origin | 2 + .../input/indent/python/dedentElse3/expected | 7 + .../input/indent/python/dedentElse3/input.js | 3 + .../input/indent/python/dedentElse3/origin | 6 + .../input/indent/python/dedentElse4/expected | 6 + .../input/indent/python/dedentElse4/input.js | 3 + .../input/indent/python/dedentElse4/origin | 4 + .../input/indent/python/dedentElse5/expected | 6 + .../input/indent/python/dedentElse5/input.js | 3 + .../input/indent/python/dedentElse5/origin | 5 + .../input/indent/python/dedentElse6/expected | 3 + .../input/indent/python/dedentElse6/input.js | 3 + .../input/indent/python/dedentElse6/origin | 2 + .../indent/python/dedentExcept1/expected | 3 + .../indent/python/dedentExcept1/input.js | 3 + .../input/indent/python/dedentExcept1/origin | 2 + .../indent/python/dedentExcept2/expected | 3 + .../indent/python/dedentExcept2/input.js | 3 + .../input/indent/python/dedentExcept2/origin | 2 + .../indent/python/dedentFinally1/expected | 3 + .../indent/python/dedentFinally1/input.js | 3 + .../input/indent/python/dedentFinally1/origin | 2 + .../indent/python/dedentFinally2/expected | 3 + .../indent/python/dedentFinally2/input.js | 3 + .../input/indent/python/dedentFinally2/origin | 2 + .../input/indent/python/dedentPass/expected | 3 + .../input/indent/python/dedentPass/input.js | 3 + .../input/indent/python/dedentPass/origin | 2 + .../input/indent/python/dedentRaise/expected | 3 + .../input/indent/python/dedentRaise/input.js | 3 + .../input/indent/python/dedentRaise/origin | 2 + .../input/indent/python/dedentReturn/expected | 3 + .../input/indent/python/dedentReturn/input.js | 3 + .../input/indent/python/dedentReturn/origin | 2 + .../indent/python/dedentReturn2/expected | 4 + .../indent/python/dedentReturn2/input.js | 5 + .../input/indent/python/dedentReturn2/origin | 2 + .../indent/python/dedentReturn3/expected | 6 + .../indent/python/dedentReturn3/input.js | 7 + .../input/indent/python/dedentReturn3/origin | 3 + .../input/indent/python/dict1/expected | 4 + .../input/indent/python/dict1/input.js | 7 + .../input/indent/python/dict1/origin | 1 + .../input/indent/python/dict2/expected | 3 + .../input/indent/python/dict2/input.js | 5 + .../input/indent/python/dict2/origin | 1 + .../indent/python/function_args/expected | 3 + .../indent/python/function_args/input.js | 5 + .../input/indent/python/function_args/origin | 1 + .../python/function_args_indent/expected | 2 + .../python/function_args_indent/input.js | 3 + .../indent/python/function_args_indent/origin | 1 + .../input/indent/python/indentColon/expected | 2 + .../input/indent/python/indentColon/input.js | 3 + .../input/indent/python/indentColon/origin | 1 + .../indent/python/indentComment/expected | 2 + .../indent/python/indentComment/input.js | 3 + .../input/indent/python/indentComment/origin | 1 + .../input/indent/python/indentpaste1/expected | 4 + .../input/indent/python/indentpaste1/input.js | 3 + .../input/indent/python/indentpaste1/origin | 2 + .../input/indent/python/indentpaste2/expected | 13 + .../input/indent/python/indentpaste2/input.js | 3 + .../input/indent/python/indentpaste2/origin | 4 + .../input/indent/python/indentpaste3/expected | 11 + .../input/indent/python/indentpaste3/input.js | 3 + .../input/indent/python/indentpaste3/origin | 4 + .../input/indent/python/keepIndent1/expected | 4 + .../input/indent/python/keepIndent1/input.js | 3 + .../input/indent/python/keepIndent1/origin | 3 + .../input/indent/python/keepIndent2/expected | 5 + .../input/indent/python/keepIndent2/input.js | 3 + .../input/indent/python/keepIndent2/origin | 4 + .../input/indent/python/keepIndent3/expected | 4 + .../input/indent/python/keepIndent3/input.js | 3 + .../input/indent/python/keepIndent3/origin | 3 + .../input/indent/python/keepIndent4/expected | 4 + .../input/indent/python/keepIndent4/input.js | 3 + .../input/indent/python/keepIndent4/origin | 2 + .../input/indent/python/keepIndent5/expected | 6 + .../input/indent/python/keepIndent5/input.js | 3 + .../input/indent/python/keepIndent5/origin | 5 + .../input/indent/python/keepIndent6/expected | 6 + .../input/indent/python/keepIndent6/input.js | 3 + .../input/indent/python/keepIndent6/origin | 5 + .../input/indent/python/list1/expected | 4 + .../input/indent/python/list1/input.js | 7 + .../input/indent/python/list1/origin | 1 + .../input/indent/python/list2/expected | 4 + .../input/indent/python/list2/input.js | 7 + .../input/indent/python/list2/origin | 1 + .../input/indent/python/triggerchars/expected | 3 + .../input/indent/python/triggerchars/input.js | 4 + .../input/indent/python/triggerchars/origin | 2 + .../input/indent/python/tuple1/expected | 4 + .../input/indent/python/tuple1/input.js | 7 + .../input/indent/python/tuple1/origin | 1 + .../input/indent/python/tuple2/expected | 4 + .../input/indent/python/tuple2/input.js | 7 + .../input/indent/python/tuple2/origin | 1 + .../input/indent/python/wrapped_line/expected | 3 + .../input/indent/python/wrapped_line/input.js | 5 + .../input/indent/python/wrapped_line/origin | 1 + .../input/indent/replicode/.kateconfig | 1 + .../input/indent/replicode/return/expected | 2 + .../input/indent/replicode/return/input.js | 2 + .../input/indent/replicode/return/origin | 1 + .../autotests/input/indent/ruby/.kateconfig | 1 + .../input/indent/ruby/array-comment1/expected | 3 + .../input/indent/ruby/array-comment1/input.js | 3 + .../input/indent/ruby/array-comment1/origin | 2 + .../input/indent/ruby/array-comment2/expected | 2 + .../input/indent/ruby/array-comment2/input.js | 3 + .../input/indent/ruby/array-comment2/origin | 1 + .../input/indent/ruby/array-comment3/expected | 3 + .../input/indent/ruby/array-comment3/input.js | 3 + .../input/indent/ruby/array-comment3/origin | 2 + .../input/indent/ruby/array-comment4/expected | 4 + .../input/indent/ruby/array-comment4/input.js | 3 + .../input/indent/ruby/array-comment4/origin | 3 + .../input/indent/ruby/array-comment5/expected | 5 + .../input/indent/ruby/array-comment5/input.js | 4 + .../input/indent/ruby/array-comment5/origin | 3 + .../input/indent/ruby/array1/expected | 2 + .../input/indent/ruby/array1/input.js | 3 + .../autotests/input/indent/ruby/array1/origin | 1 + .../input/indent/ruby/array10/expected | 4 + .../input/indent/ruby/array10/input.js | 3 + .../input/indent/ruby/array10/origin | 3 + .../input/indent/ruby/array11/expected | 5 + .../input/indent/ruby/array11/input.js | 3 + .../input/indent/ruby/array11/origin | 4 + .../input/indent/ruby/array12/expected | 5 + .../input/indent/ruby/array12/input.js | 3 + .../input/indent/ruby/array12/origin | 4 + .../input/indent/ruby/array16/expected | 4 + .../input/indent/ruby/array16/input.js | 3 + .../input/indent/ruby/array16/origin | 3 + .../input/indent/ruby/array17/expected | 2 + .../input/indent/ruby/array17/input.js | 3 + .../input/indent/ruby/array17/origin | 1 + .../input/indent/ruby/array18/expected | 3 + .../input/indent/ruby/array18/input.js | 3 + .../input/indent/ruby/array18/origin | 2 + .../input/indent/ruby/array19/expected | 4 + .../input/indent/ruby/array19/input.js | 4 + .../input/indent/ruby/array19/origin | 3 + .../input/indent/ruby/array2/expected | 2 + .../input/indent/ruby/array2/input.js | 3 + .../autotests/input/indent/ruby/array2/origin | 1 + .../input/indent/ruby/array20/expected | 4 + .../input/indent/ruby/array20/input.js | 3 + .../input/indent/ruby/array20/origin | 3 + .../input/indent/ruby/array21/expected | 5 + .../input/indent/ruby/array21/input.js | 3 + .../input/indent/ruby/array21/origin | 4 + .../input/indent/ruby/array22/expected | 5 + .../input/indent/ruby/array22/input.js | 3 + .../input/indent/ruby/array22/origin | 4 + .../input/indent/ruby/array3/expected | 3 + .../input/indent/ruby/array3/input.js | 3 + .../autotests/input/indent/ruby/array3/origin | 2 + .../input/indent/ruby/array4/expected | 4 + .../input/indent/ruby/array4/input.js | 3 + .../autotests/input/indent/ruby/array4/origin | 3 + .../input/indent/ruby/array5/expected | 5 + .../input/indent/ruby/array5/input.js | 4 + .../autotests/input/indent/ruby/array5/origin | 3 + .../input/indent/ruby/array6/expected | 4 + .../input/indent/ruby/array6/input.js | 3 + .../autotests/input/indent/ruby/array6/origin | 3 + .../input/indent/ruby/array7/expected | 2 + .../input/indent/ruby/array7/input.js | 3 + .../autotests/input/indent/ruby/array7/origin | 1 + .../input/indent/ruby/array8/expected | 3 + .../input/indent/ruby/array8/input.js | 3 + .../autotests/input/indent/ruby/array8/origin | 2 + .../input/indent/ruby/array9/expected | 4 + .../input/indent/ruby/array9/input.js | 4 + .../autotests/input/indent/ruby/array9/origin | 3 + .../input/indent/ruby/basic1/expected | 8 + .../input/indent/ruby/basic1/input.js | 15 + .../autotests/input/indent/ruby/basic1/origin | 1 + .../input/indent/ruby/basic2/expected | 13 + .../input/indent/ruby/basic2/input.js | 19 + .../autotests/input/indent/ruby/basic2/origin | 2 + .../input/indent/ruby/basic3/expected | 5 + .../input/indent/ruby/basic3/input.js | 5 + .../autotests/input/indent/ruby/basic3/origin | 3 + .../input/indent/ruby/basic4/expected | 5 + .../input/indent/ruby/basic4/input.js | 5 + .../autotests/input/indent/ruby/basic4/origin | 3 + .../input/indent/ruby/basic5/expected | 15 + .../input/indent/ruby/basic5/input.js | 21 + .../autotests/input/indent/ruby/basic5/origin | 4 + .../input/indent/ruby/block-comment1/expected | 2 + .../input/indent/ruby/block-comment1/input.js | 3 + .../input/indent/ruby/block-comment1/origin | 1 + .../input/indent/ruby/block-comment2/expected | 3 + .../input/indent/ruby/block-comment2/input.js | 4 + .../input/indent/ruby/block-comment2/origin | 1 + .../input/indent/ruby/block-comment3/expected | 3 + .../input/indent/ruby/block-comment3/input.js | 3 + .../input/indent/ruby/block-comment3/origin | 2 + .../input/indent/ruby/block-comment4/expected | 4 + .../input/indent/ruby/block-comment4/input.js | 4 + .../input/indent/ruby/block-comment4/origin | 2 + .../input/indent/ruby/block-comment5/expected | 3 + .../input/indent/ruby/block-comment5/input.js | 3 + .../input/indent/ruby/block-comment5/origin | 2 + .../input/indent/ruby/block-comment6/expected | 4 + .../input/indent/ruby/block-comment6/input.js | 4 + .../input/indent/ruby/block-comment6/origin | 2 + .../input/indent/ruby/block-comment7/expected | 4 + .../input/indent/ruby/block-comment7/input.js | 3 + .../input/indent/ruby/block-comment7/origin | 3 + .../input/indent/ruby/block-comment8/expected | 5 + .../input/indent/ruby/block-comment8/input.js | 4 + .../input/indent/ruby/block-comment8/origin | 3 + .../input/indent/ruby/block01/expected | 3 + .../input/indent/ruby/block01/input.js | 3 + .../input/indent/ruby/block01/origin | 2 + .../input/indent/ruby/block02/expected | 3 + .../input/indent/ruby/block02/input.js | 3 + .../input/indent/ruby/block02/origin | 2 + .../input/indent/ruby/comment1/expected | 4 + .../input/indent/ruby/comment1/input.js | 3 + .../input/indent/ruby/comment1/origin | 3 + .../input/indent/ruby/comment2/expected | 5 + .../input/indent/ruby/comment2/input.js | 5 + .../input/indent/ruby/comment2/origin | 3 + .../input/indent/ruby/comment3/expected | 6 + .../input/indent/ruby/comment3/input.js | 7 + .../input/indent/ruby/comment3/origin | 3 + .../input/indent/ruby/comment4/expected | 5 + .../input/indent/ruby/comment4/input.js | 5 + .../input/indent/ruby/comment4/origin | 3 + .../input/indent/ruby/comment5/expected | 5 + .../input/indent/ruby/comment5/input.js | 5 + .../input/indent/ruby/comment5/origin | 3 + .../input/indent/ruby/comment6/expected | 5 + .../input/indent/ruby/comment6/input.js | 5 + .../input/indent/ruby/comment6/origin | 3 + .../autotests/input/indent/ruby/do1/expected | 3 + .../autotests/input/indent/ruby/do1/input.js | 3 + .../autotests/input/indent/ruby/do1/origin | 2 + .../autotests/input/indent/ruby/do2/expected | 4 + .../autotests/input/indent/ruby/do2/input.js | 5 + .../autotests/input/indent/ruby/do2/origin | 2 + .../autotests/input/indent/ruby/do3/expected | 4 + .../autotests/input/indent/ruby/do3/input.js | 5 + .../autotests/input/indent/ruby/do3/origin | 2 + .../autotests/input/indent/ruby/do4/expected | 4 + .../autotests/input/indent/ruby/do4/input.js | 5 + .../autotests/input/indent/ruby/do4/origin | 2 + .../autotests/input/indent/ruby/do5/expected | 3 + .../autotests/input/indent/ruby/do5/input.js | 3 + .../autotests/input/indent/ruby/do5/origin | 2 + .../autotests/input/indent/ruby/do6/expected | 4 + .../autotests/input/indent/ruby/do6/input.js | 5 + .../autotests/input/indent/ruby/do6/origin | 2 + .../autotests/input/indent/ruby/do7/expected | 4 + .../autotests/input/indent/ruby/do7/input.js | 5 + .../autotests/input/indent/ruby/do7/origin | 2 + .../input/indent/ruby/empty-file1/expected | 6 + .../input/indent/ruby/empty-file1/input.js | 10 + .../input/indent/ruby/empty-file1/origin | 1 + .../input/indent/ruby/endless01/expected | 4 + .../input/indent/ruby/endless01/input.js | 6 + .../input/indent/ruby/endless01/origin | 1 + .../input/indent/ruby/endless02/expected | 34 + .../input/indent/ruby/endless02/input.js | 62 + .../input/indent/ruby/endless02/origin | 5 + .../input/indent/ruby/hash1/expected | 2 + .../input/indent/ruby/hash1/input.js | 3 + .../autotests/input/indent/ruby/hash1/origin | 1 + .../input/indent/ruby/hash10/expected | 4 + .../input/indent/ruby/hash10/input.js | 3 + .../autotests/input/indent/ruby/hash10/origin | 3 + .../input/indent/ruby/hash11/expected | 5 + .../input/indent/ruby/hash11/input.js | 3 + .../autotests/input/indent/ruby/hash11/origin | 4 + .../input/indent/ruby/hash12/expected | 5 + .../input/indent/ruby/hash12/input.js | 3 + .../autotests/input/indent/ruby/hash12/origin | 4 + .../input/indent/ruby/hash16/expected | 4 + .../input/indent/ruby/hash16/input.js | 3 + .../autotests/input/indent/ruby/hash16/origin | 3 + .../input/indent/ruby/hash17/expected | 2 + .../input/indent/ruby/hash17/input.js | 3 + .../autotests/input/indent/ruby/hash17/origin | 1 + .../input/indent/ruby/hash18/expected | 3 + .../input/indent/ruby/hash18/input.js | 3 + .../autotests/input/indent/ruby/hash18/origin | 2 + .../input/indent/ruby/hash19/expected | 4 + .../input/indent/ruby/hash19/input.js | 4 + .../autotests/input/indent/ruby/hash19/origin | 3 + .../input/indent/ruby/hash2/expected | 2 + .../input/indent/ruby/hash2/input.js | 3 + .../autotests/input/indent/ruby/hash2/origin | 1 + .../input/indent/ruby/hash20/expected | 4 + .../input/indent/ruby/hash20/input.js | 3 + .../autotests/input/indent/ruby/hash20/origin | 3 + .../input/indent/ruby/hash21/expected | 5 + .../input/indent/ruby/hash21/input.js | 3 + .../autotests/input/indent/ruby/hash21/origin | 4 + .../input/indent/ruby/hash22/expected | 5 + .../input/indent/ruby/hash22/input.js | 3 + .../autotests/input/indent/ruby/hash22/origin | 4 + .../input/indent/ruby/hash3/expected | 3 + .../input/indent/ruby/hash3/input.js | 3 + .../autotests/input/indent/ruby/hash3/origin | 2 + .../input/indent/ruby/hash4/expected | 4 + .../input/indent/ruby/hash4/input.js | 3 + .../autotests/input/indent/ruby/hash4/origin | 3 + .../input/indent/ruby/hash5/expected | 5 + .../input/indent/ruby/hash5/input.js | 4 + .../autotests/input/indent/ruby/hash5/origin | 3 + .../input/indent/ruby/hash6/expected | 4 + .../input/indent/ruby/hash6/input.js | 3 + .../autotests/input/indent/ruby/hash6/origin | 3 + .../input/indent/ruby/hash7/expected | 2 + .../input/indent/ruby/hash7/input.js | 3 + .../autotests/input/indent/ruby/hash7/origin | 1 + .../input/indent/ruby/hash8/expected | 3 + .../input/indent/ruby/hash8/input.js | 3 + .../autotests/input/indent/ruby/hash8/origin | 2 + .../input/indent/ruby/hash9/expected | 4 + .../input/indent/ruby/hash9/input.js | 4 + .../autotests/input/indent/ruby/hash9/origin | 3 + .../input/indent/ruby/heredoc1/expected | 2 + .../input/indent/ruby/heredoc1/input.js | 3 + .../input/indent/ruby/heredoc1/origin | 1 + .../input/indent/ruby/heredoc2/expected | 3 + .../input/indent/ruby/heredoc2/input.js | 4 + .../input/indent/ruby/heredoc2/origin | 1 + .../input/indent/ruby/heredoc3/expected | 3 + .../input/indent/ruby/heredoc3/input.js | 3 + .../input/indent/ruby/heredoc3/origin | 2 + .../input/indent/ruby/heredoc4/expected | 4 + .../input/indent/ruby/heredoc4/input.js | 4 + .../input/indent/ruby/heredoc4/origin | 2 + .../input/indent/ruby/heredoc5/expected | 3 + .../input/indent/ruby/heredoc5/input.js | 3 + .../input/indent/ruby/heredoc5/origin | 2 + .../input/indent/ruby/heredoc6/expected | 4 + .../input/indent/ruby/heredoc6/input.js | 4 + .../input/indent/ruby/heredoc6/origin | 2 + .../autotests/input/indent/ruby/if10/expected | 2 + .../autotests/input/indent/ruby/if10/input.js | 3 + .../autotests/input/indent/ruby/if10/origin | 1 + .../autotests/input/indent/ruby/if11/expected | 3 + .../autotests/input/indent/ruby/if11/input.js | 3 + .../autotests/input/indent/ruby/if11/origin | 2 + .../autotests/input/indent/ruby/if20/expected | 2 + .../autotests/input/indent/ruby/if20/input.js | 3 + .../autotests/input/indent/ruby/if20/origin | 1 + .../autotests/input/indent/ruby/if21/expected | 3 + .../autotests/input/indent/ruby/if21/input.js | 3 + .../autotests/input/indent/ruby/if21/origin | 2 + .../autotests/input/indent/ruby/if22/expected | 2 + .../autotests/input/indent/ruby/if22/input.js | 3 + .../autotests/input/indent/ruby/if22/origin | 1 + .../autotests/input/indent/ruby/if30/expected | 2 + .../autotests/input/indent/ruby/if30/input.js | 3 + .../autotests/input/indent/ruby/if30/origin | 1 + .../autotests/input/indent/ruby/if31/expected | 2 + .../autotests/input/indent/ruby/if31/input.js | 3 + .../autotests/input/indent/ruby/if31/origin | 1 + .../input/indent/ruby/indentpaste1/expected | 6 + .../input/indent/ruby/indentpaste1/input.js | 3 + .../input/indent/ruby/indentpaste1/origin | 3 + .../input/indent/ruby/indentpaste2/expected | 6 + .../input/indent/ruby/indentpaste2/input.js | 3 + .../input/indent/ruby/indentpaste2/origin | 3 + .../input/indent/ruby/multiline1/expected | 4 + .../input/indent/ruby/multiline1/input.js | 3 + .../input/indent/ruby/multiline1/origin | 3 + .../input/indent/ruby/multiline10/expected | 4 + .../input/indent/ruby/multiline10/input.js | 3 + .../input/indent/ruby/multiline10/origin | 3 + .../input/indent/ruby/multiline2/expected | 5 + .../input/indent/ruby/multiline2/input.js | 5 + .../input/indent/ruby/multiline2/origin | 3 + .../input/indent/ruby/multiline3/expected | 4 + .../input/indent/ruby/multiline3/input.js | 5 + .../input/indent/ruby/multiline3/origin | 2 + .../input/indent/ruby/multiline4/expected | 5 + .../input/indent/ruby/multiline4/input.js | 5 + .../input/indent/ruby/multiline4/origin | 3 + .../input/indent/ruby/multiline5/expected | 5 + .../input/indent/ruby/multiline5/input.js | 5 + .../input/indent/ruby/multiline5/origin | 3 + .../input/indent/ruby/multiline6/expected | 4 + .../input/indent/ruby/multiline6/input.js | 4 + .../input/indent/ruby/multiline6/origin | 2 + .../input/indent/ruby/multiline7/expected | 2 + .../input/indent/ruby/multiline7/input.js | 3 + .../input/indent/ruby/multiline7/origin | 1 + .../input/indent/ruby/multiline8/expected | 5 + .../input/indent/ruby/multiline8/input.js | 5 + .../input/indent/ruby/multiline8/origin | 3 + .../input/indent/ruby/multiline9/expected | 4 + .../input/indent/ruby/multiline9/input.js | 3 + .../input/indent/ruby/multiline9/origin | 3 + .../input/indent/ruby/no-do1/expected | 4 + .../input/indent/ruby/no-do1/input.js | 3 + .../autotests/input/indent/ruby/no-do1/origin | 3 + .../input/indent/ruby/no-do2/expected | 5 + .../input/indent/ruby/no-do2/input.js | 5 + .../autotests/input/indent/ruby/no-do2/origin | 3 + .../input/indent/ruby/no-do3/expected | 4 + .../input/indent/ruby/no-do3/input.js | 3 + .../autotests/input/indent/ruby/no-do3/origin | 3 + .../input/indent/ruby/no-do4/expected | 5 + .../input/indent/ruby/no-do4/input.js | 5 + .../autotests/input/indent/ruby/no-do4/origin | 3 + .../autotests/input/indent/ruby/ops1/expected | 2 + .../autotests/input/indent/ruby/ops1/input.js | 3 + .../autotests/input/indent/ruby/ops1/origin | 1 + .../input/indent/ruby/ops11/expected | 3 + .../input/indent/ruby/ops11/input.js | 3 + .../autotests/input/indent/ruby/ops11/origin | 2 + .../input/indent/ruby/ops12/expected | 3 + .../input/indent/ruby/ops12/input.js | 3 + .../autotests/input/indent/ruby/ops12/origin | 2 + .../input/indent/ruby/ops13/expected | 3 + .../input/indent/ruby/ops13/input.js | 3 + .../autotests/input/indent/ruby/ops13/origin | 2 + .../input/indent/ruby/ops14/expected | 3 + .../input/indent/ruby/ops14/input.js | 3 + .../autotests/input/indent/ruby/ops14/origin | 2 + .../input/indent/ruby/ops15/expected | 3 + .../input/indent/ruby/ops15/input.js | 3 + .../autotests/input/indent/ruby/ops15/origin | 2 + .../input/indent/ruby/ops16/expected | 3 + .../input/indent/ruby/ops16/input.js | 3 + .../autotests/input/indent/ruby/ops16/origin | 2 + .../input/indent/ruby/ops17/expected | 3 + .../input/indent/ruby/ops17/input.js | 3 + .../autotests/input/indent/ruby/ops17/origin | 2 + .../input/indent/ruby/ops18/expected | 3 + .../input/indent/ruby/ops18/input.js | 3 + .../autotests/input/indent/ruby/ops18/origin | 2 + .../autotests/input/indent/ruby/ops2/expected | 2 + .../autotests/input/indent/ruby/ops2/input.js | 3 + .../autotests/input/indent/ruby/ops2/origin | 1 + .../input/indent/ruby/ops21/expected | 3 + .../input/indent/ruby/ops21/input.js | 3 + .../autotests/input/indent/ruby/ops21/origin | 2 + .../input/indent/ruby/ops22/expected | 3 + .../input/indent/ruby/ops22/input.js | 3 + .../autotests/input/indent/ruby/ops22/origin | 2 + .../input/indent/ruby/ops23/expected | 3 + .../input/indent/ruby/ops23/input.js | 3 + .../autotests/input/indent/ruby/ops23/origin | 2 + .../input/indent/ruby/ops24/expected | 3 + .../input/indent/ruby/ops24/input.js | 3 + .../autotests/input/indent/ruby/ops24/origin | 2 + .../input/indent/ruby/ops25/expected | 3 + .../input/indent/ruby/ops25/input.js | 3 + .../autotests/input/indent/ruby/ops25/origin | 2 + .../input/indent/ruby/ops26/expected | 3 + .../input/indent/ruby/ops26/input.js | 3 + .../autotests/input/indent/ruby/ops26/origin | 2 + .../input/indent/ruby/ops27/expected | 3 + .../input/indent/ruby/ops27/input.js | 3 + .../autotests/input/indent/ruby/ops27/origin | 2 + .../input/indent/ruby/ops28/expected | 3 + .../input/indent/ruby/ops28/input.js | 3 + .../autotests/input/indent/ruby/ops28/origin | 2 + .../autotests/input/indent/ruby/ops3/expected | 2 + .../autotests/input/indent/ruby/ops3/input.js | 3 + .../autotests/input/indent/ruby/ops3/origin | 1 + .../autotests/input/indent/ruby/ops4/expected | 2 + .../autotests/input/indent/ruby/ops4/input.js | 3 + .../autotests/input/indent/ruby/ops4/origin | 1 + .../autotests/input/indent/ruby/ops5/expected | 2 + .../autotests/input/indent/ruby/ops5/input.js | 3 + .../autotests/input/indent/ruby/ops5/origin | 1 + .../autotests/input/indent/ruby/ops6/expected | 2 + .../autotests/input/indent/ruby/ops6/input.js | 3 + .../autotests/input/indent/ruby/ops6/origin | 1 + .../autotests/input/indent/ruby/ops7/expected | 2 + .../autotests/input/indent/ruby/ops7/input.js | 3 + .../autotests/input/indent/ruby/ops7/origin | 1 + .../autotests/input/indent/ruby/ops8/expected | 2 + .../autotests/input/indent/ruby/ops8/input.js | 3 + .../autotests/input/indent/ruby/ops8/origin | 1 + .../input/indent/ruby/plist-comment1/expected | 2 + .../input/indent/ruby/plist-comment1/input.js | 3 + .../input/indent/ruby/plist-comment1/origin | 1 + .../indent/ruby/plist-comment10/expected | 6 + .../indent/ruby/plist-comment10/input.js | 3 + .../input/indent/ruby/plist-comment10/origin | 5 + .../input/indent/ruby/plist-comment2/expected | 2 + .../input/indent/ruby/plist-comment2/input.js | 3 + .../input/indent/ruby/plist-comment2/origin | 1 + .../input/indent/ruby/plist-comment3/expected | 4 + .../input/indent/ruby/plist-comment3/input.js | 3 + .../input/indent/ruby/plist-comment3/origin | 3 + .../input/indent/ruby/plist-comment4/expected | 4 + .../input/indent/ruby/plist-comment4/input.js | 3 + .../input/indent/ruby/plist-comment4/origin | 3 + .../input/indent/ruby/plist-comment5/expected | 4 + .../input/indent/ruby/plist-comment5/input.js | 3 + .../input/indent/ruby/plist-comment5/origin | 3 + .../input/indent/ruby/plist-comment6/expected | 4 + .../input/indent/ruby/plist-comment6/input.js | 3 + .../input/indent/ruby/plist-comment6/origin | 3 + .../input/indent/ruby/plist-comment7/expected | 3 + .../input/indent/ruby/plist-comment7/input.js | 3 + .../input/indent/ruby/plist-comment7/origin | 2 + .../input/indent/ruby/plist-comment8/expected | 4 + .../input/indent/ruby/plist-comment8/input.js | 3 + .../input/indent/ruby/plist-comment8/origin | 3 + .../input/indent/ruby/plist-comment9/expected | 5 + .../input/indent/ruby/plist-comment9/input.js | 3 + .../input/indent/ruby/plist-comment9/origin | 4 + .../input/indent/ruby/plist1/expected | 2 + .../input/indent/ruby/plist1/input.js | 3 + .../autotests/input/indent/ruby/plist1/origin | 1 + .../input/indent/ruby/plist10/expected | 4 + .../input/indent/ruby/plist10/input.js | 3 + .../input/indent/ruby/plist10/origin | 3 + .../input/indent/ruby/plist11/expected | 2 + .../input/indent/ruby/plist11/input.js | 3 + .../input/indent/ruby/plist11/origin | 1 + .../input/indent/ruby/plist12/expected | 2 + .../input/indent/ruby/plist12/input.js | 3 + .../input/indent/ruby/plist12/origin | 1 + .../input/indent/ruby/plist13/expected | 3 + .../input/indent/ruby/plist13/input.js | 3 + .../input/indent/ruby/plist13/origin | 2 + .../input/indent/ruby/plist14/expected | 3 + .../input/indent/ruby/plist14/input.js | 3 + .../input/indent/ruby/plist14/origin | 2 + .../input/indent/ruby/plist15/expected | 3 + .../input/indent/ruby/plist15/input.js | 3 + .../input/indent/ruby/plist15/origin | 2 + .../input/indent/ruby/plist16/expected | 4 + .../input/indent/ruby/plist16/input.js | 3 + .../input/indent/ruby/plist16/origin | 3 + .../input/indent/ruby/plist17/expected | 2 + .../input/indent/ruby/plist17/input.js | 3 + .../input/indent/ruby/plist17/origin | 1 + .../input/indent/ruby/plist18/expected | 3 + .../input/indent/ruby/plist18/input.js | 3 + .../input/indent/ruby/plist18/origin | 2 + .../input/indent/ruby/plist19/expected | 4 + .../input/indent/ruby/plist19/input.js | 3 + .../input/indent/ruby/plist19/origin | 3 + .../input/indent/ruby/plist2/expected | 2 + .../input/indent/ruby/plist2/input.js | 3 + .../autotests/input/indent/ruby/plist2/origin | 1 + .../input/indent/ruby/plist20/expected | 4 + .../input/indent/ruby/plist20/input.js | 3 + .../input/indent/ruby/plist20/origin | 3 + .../input/indent/ruby/plist3/expected | 3 + .../input/indent/ruby/plist3/input.js | 3 + .../autotests/input/indent/ruby/plist3/origin | 2 + .../input/indent/ruby/plist4/expected | 3 + .../input/indent/ruby/plist4/input.js | 3 + .../autotests/input/indent/ruby/plist4/origin | 2 + .../input/indent/ruby/plist5/expected | 3 + .../input/indent/ruby/plist5/input.js | 3 + .../autotests/input/indent/ruby/plist5/origin | 2 + .../input/indent/ruby/plist6/expected | 4 + .../input/indent/ruby/plist6/input.js | 3 + .../autotests/input/indent/ruby/plist6/origin | 3 + .../input/indent/ruby/plist7/expected | 2 + .../input/indent/ruby/plist7/input.js | 3 + .../autotests/input/indent/ruby/plist7/origin | 1 + .../input/indent/ruby/plist8/expected | 3 + .../input/indent/ruby/plist8/input.js | 3 + .../autotests/input/indent/ruby/plist8/origin | 2 + .../input/indent/ruby/plist9/expected | 4 + .../input/indent/ruby/plist9/input.js | 3 + .../autotests/input/indent/ruby/plist9/origin | 3 + .../input/indent/ruby/regexp1/expected | 2 + .../input/indent/ruby/regexp1/input.js | 3 + .../input/indent/ruby/regexp1/origin | 1 + .../input/indent/ruby/singleline01/expected | 2 + .../input/indent/ruby/singleline01/input.js | 3 + .../input/indent/ruby/singleline01/origin | 1 + .../input/indent/ruby/singleline02/expected | 2 + .../input/indent/ruby/singleline02/input.js | 3 + .../input/indent/ruby/singleline02/origin | 1 + .../input/indent/ruby/singleline03/expected | 2 + .../input/indent/ruby/singleline03/input.js | 3 + .../input/indent/ruby/singleline03/origin | 1 + .../input/indent/ruby/singleline04/expected | 3 + .../input/indent/ruby/singleline04/input.js | 3 + .../input/indent/ruby/singleline04/origin | 2 + .../input/indent/ruby/wordlist01/expected | 2 + .../input/indent/ruby/wordlist01/input.js | 3 + .../input/indent/ruby/wordlist01/origin | 1 + .../input/indent/ruby/wordlist02/expected | 3 + .../input/indent/ruby/wordlist02/input.js | 3 + .../input/indent/ruby/wordlist02/origin | 2 + .../input/indent/ruby/wordlist11/expected | 2 + .../input/indent/ruby/wordlist11/input.js | 3 + .../input/indent/ruby/wordlist11/origin | 1 + .../input/indent/ruby/wordlist12/expected | 3 + .../input/indent/ruby/wordlist12/input.js | 3 + .../input/indent/ruby/wordlist12/origin | 2 + .../input/indent/ruby/wordlist21/expected | 2 + .../input/indent/ruby/wordlist21/input.js | 3 + .../input/indent/ruby/wordlist21/origin | 1 + .../input/indent/ruby/wordlist22/expected | 3 + .../input/indent/ruby/wordlist22/input.js | 3 + .../input/indent/ruby/wordlist22/origin | 2 + .../autotests/input/indent/xml/.kateconfig | 1 + .../input/indent/xml/arguments1/expected | 2 + .../input/indent/xml/arguments1/input.js | 3 + .../input/indent/xml/arguments1/origin | 1 + .../input/indent/xml/arguments2/expected | 3 + .../input/indent/xml/arguments2/input.js | 3 + .../input/indent/xml/arguments2/origin | 2 + .../input/indent/xml/arguments3/expected | 3 + .../input/indent/xml/arguments3/input.js | 3 + .../input/indent/xml/arguments3/origin | 2 + .../input/indent/xml/arguments4/expected | 3 + .../input/indent/xml/arguments4/input.js | 3 + .../input/indent/xml/arguments4/origin | 2 + .../input/indent/xml/closing1/expected | 3 + .../input/indent/xml/closing1/input.js | 3 + .../input/indent/xml/closing1/origin | 2 + .../input/indent/xml/closing2/expected | 3 + .../input/indent/xml/closing2/input.js | 3 + .../input/indent/xml/closing2/origin | 2 + .../input/indent/xml/closing3/expected | 3 + .../input/indent/xml/closing3/input.js | 4 + .../input/indent/xml/closing3/origin | 2 + .../input/indent/xml/comment1/README | 1 + .../input/indent/xml/comment1/expected | 3 + .../input/indent/xml/comment1/input.js | 3 + .../input/indent/xml/comment1/origin | 2 + .../input/indent/xml/comment2/expected | 4 + .../input/indent/xml/comment2/input.js | 11 + .../input/indent/xml/comment2/origin | 4 + .../input/indent/xml/empty_lines/expected | 15 + .../input/indent/xml/empty_lines/input.js | 19 + .../input/indent/xml/empty_lines/origin | 15 + .../input/indent/xml/keep_indent/expected | 2 + .../input/indent/xml/keep_indent/input.js | 3 + .../input/indent/xml/keep_indent/origin | 1 + .../input/indent/xml/opening1/expected | 3 + .../input/indent/xml/opening1/input.js | 5 + .../input/indent/xml/opening1/origin | 1 + .../input/indent/xml/self_closing1/expected | 2 + .../input/indent/xml/self_closing1/input.js | 4 + .../input/indent/xml/self_closing1/origin | 1 + .../input/indent/xml/self_closing2/expected | 5 + .../input/indent/xml/self_closing2/input.js | 8 + .../input/indent/xml/self_closing2/origin | 5 + .../autotests/input/indent/xml/text1/expected | 2 + .../autotests/input/indent/xml/text1/input.js | 3 + .../autotests/input/indent/xml/text1/origin | 1 + .../autotests/input/indent/xml/text2/expected | 2 + .../autotests/input/indent/xml/text2/input.js | 3 + .../autotests/input/indent/xml/text2/origin | 1 + .../input/indent/xml/xhtml1/expected | 35 + .../input/indent/xml/xhtml1/input.js | 66 + .../autotests/input/indent/xml/xhtml1/origin | 1 + .../autotests/input/indent_detect/.kateconfig | 1 + .../autotests/input/indent_detect/2space.js | 10 + .../autotests/input/indent_detect/4space.cpp | 13 + .../autotests/input/indent_detect/a.xml | 66 + .../input/indent_detect/bogus7spaces.md | 402 + .../input/indent_detect/indentdetect_test.cpp | 66 + .../input/indent_detect/main_bad_1_space.cpp | 12 + .../autotests/input/indent_detect/tab.c | 18 + .../source/autotests/input/modelines.txt | 1 + .../autotests/input/scripting/bug_317111.js | 11 + .../autotests/input/scripting/bug_317892.js | 53 + .../autotests/input/scripting/bug_513898.js | 27 + .../autotests/src/benchmarks/bench_search.cpp | 58 + .../source/autotests/src/bugs_test.cpp | 267 + .../source/autotests/src/bugs_test.h | 34 + .../source/autotests/src/camelcursortest.cpp | 325 + .../source/autotests/src/camelcursortest.h | 43 + .../autotests/src/codecompletiontestmodel.cpp | 203 + .../autotests/src/codecompletiontestmodel.h | 64 + .../src/codecompletiontestmodels.cpp | 10 + .../autotests/src/codecompletiontestmodels.h | 161 + .../source/autotests/src/completion_test.cpp | 568 + .../source/autotests/src/completion_test.h | 67 + .../autotests/src/configinterface_test.cpp | 188 + .../autotests/src/configinterface_test.h | 26 + .../source/autotests/src/cursorwords_test.cpp | 185 + .../source/autotests/src/cursorwords_test.h | 26 + .../source/autotests/src/encodingtest.cpp | 115 + .../source/autotests/src/encodingtest.h | 25 + .../autotests/src/evaluate_script_test.cpp | 123 + .../autotests/src/evaluate_script_test.h | 27 + .../source/autotests/src/example.cpp | 62 + .../autotests/src/indentdetect_test.cpp | 71 + .../source/autotests/src/indentdetect_test.h | 20 + .../source/autotests/src/indenttest.cpp | 200 + .../source/autotests/src/indenttest.h | 62 + .../source/autotests/src/inlinenote_test.cpp | 212 + .../source/autotests/src/inlinenote_test.h | 25 + .../autotests/src/katedocument_test.cpp | 1131 ++ .../source/autotests/src/katedocument_test.h | 109 + .../source/autotests/src/kateencodingtest.cpp | 51 + .../source/autotests/src/katefoldingtest.cpp | 181 + .../source/autotests/src/katefoldingtest.h | 28 + .../src/katemodemanager_benchmark.cpp | 52 + .../autotests/src/katemodemanager_benchmark.h | 22 + .../autotests/src/katemodemanager_test.cpp | 42 + .../autotests/src/katemodemanager_test.h | 22 + .../src/katemodemanager_test_base.cpp | 134 + .../autotests/src/katemodemanager_test_base.h | 26 + .../autotests/src/katetextbuffertest.cpp | 677 + .../source/autotests/src/katetextbuffertest.h | 42 + .../source/autotests/src/kateview_test.cpp | 962 ++ .../source/autotests/src/kateview_test.h | 52 + .../autotests/src/kte_documentcursor.cpp | 342 + .../source/autotests/src/kte_documentcursor.h | 31 + .../source/autotests/src/messagetest.cpp | 364 + .../source/autotests/src/messagetest.h | 32 + .../autotests/src/modificationsystem_test.cpp | 738 + .../autotests/src/modificationsystem_test.h | 44 + .../autotests/src/movingcursor_test.cpp | 328 + .../source/autotests/src/movingcursor_test.h | 28 + .../source/autotests/src/movingrange_test.cpp | 928 ++ .../source/autotests/src/movingrange_test.h | 44 + .../source/autotests/src/multicursortest.cpp | 1014 ++ .../source/autotests/src/multicursortest.h | 67 + .../autotests/src/plaintextsearch_test.cpp | 157 + .../autotests/src/plaintextsearch_test.h | 51 + .../source/autotests/src/range_test.cpp | 314 + .../source/autotests/src/range_test.h | 39 + .../autotests/src/regexpsearch_test.cpp | 323 + .../source/autotests/src/regexpsearch_test.h | 45 + .../source/autotests/src/revision_test.cpp | 140 + .../source/autotests/src/revision_test.h | 26 + .../source/autotests/src/script_test_base.cpp | 194 + .../source/autotests/src/script_test_base.h | 51 + .../autotests/src/scriptdocument_test.cpp | 116 + .../autotests/src/scriptdocument_test.h | 51 + .../autotests/src/scripttester_test.cpp | 340 + .../source/autotests/src/scripttester_test.h | 28 + .../source/autotests/src/searchbar_test.cpp | 868 + .../source/autotests/src/searchbar_test.h | 75 + .../source/autotests/src/swapfiletest.cpp | 58 + .../source/autotests/src/swapfiletest.h | 33 + .../autotests/src/templatehandler_test.cpp | 902 + .../autotests/src/templatehandler_test.h | 94 + .../source/autotests/src/test.uc | 266 + .../source/autotests/src/testutils.cpp | 322 + .../source/autotests/src/testutils.h | 193 + .../source/autotests/src/undomanager_test.cpp | 281 + .../source/autotests/src/undomanager_test.h | 31 + .../source/autotests/src/variable_test.cpp | 300 + .../source/autotests/src/variable_test.h | 30 + .../autotests/src/vimode/CMakeLists.txt | 35 + .../source/autotests/src/vimode/base.cpp | 353 + .../source/autotests/src/vimode/base.h | 156 + .../autotests/src/vimode/completion.cpp | 578 + .../source/autotests/src/vimode/completion.h | 50 + .../src/vimode/emulatedcommandbar.cpp | 3349 ++++ .../autotests/src/vimode/emulatedcommandbar.h | 80 + .../emulatedcommandbarsetupandteardown.cpp | 73 + .../emulatedcommandbarsetupandteardown.h | 57 + .../vimode/fakecodecompletiontestmodel.cpp | 183 + .../src/vimode/fakecodecompletiontestmodel.h | 88 + .../source/autotests/src/vimode/hlsearch.cpp | 696 + .../source/autotests/src/vimode/hlsearch.h | 36 + .../source/autotests/src/vimode/keys.cpp | 1631 ++ .../source/autotests/src/vimode/keys.h | 26 + .../source/autotests/src/vimode/modes.cpp | 1682 ++ .../source/autotests/src/vimode/modes.h | 45 + .../source/autotests/src/vimode/view.cpp | 370 + .../source/autotests/src/vimode/view.h | 32 + .../autotests/src/wordcompletiontest.cpp | 106 + .../source/autotests/src/wordcompletiontest.h | 31 + .../source/cmake/FindEditorConfig.cmake | 44 + .../kde/kf6-ktexteditor/source/config.h.cmake | 12 + .../source/docs/apidocs-groups.qdoc | 196 + .../source/docs/coding-guidelines.qdoc | 40 + .../kf6-ktexteditor/source/docs/design.qdoc | 57 + .../source/docs/pics/inlinenote.png | Bin 0 -> 16287 bytes .../source/docs/pics/ktexteditorhierarchy.png | Bin 0 -> 4058 bytes .../source/docs/pics/texthint.png | Bin 0 -> 5456 bytes .../source/docs/plugin_hosting.qdoc | 125 + .../kf6-ktexteditor/source/docs/porting.qdoc | 218 + .../source/docs/porting_kf6.md | 20 + .../kde/kf6-ktexteditor/source/metainfo.yaml | 18 + .../source/po/af/ktexteditor6.po | 11580 +++++++++++++ .../source/po/ar/ktexteditor6.po | 10234 ++++++++++++ .../source/po/ast/ktexteditor6.po | 7830 +++++++++ .../source/po/az/ktexteditor6.po | 9135 ++++++++++ .../source/po/be/ktexteditor6.po | 10756 ++++++++++++ .../source/po/bg/ktexteditor6.po | 8497 ++++++++++ .../source/po/bn/ktexteditor6.po | 10193 ++++++++++++ .../source/po/br/ktexteditor6.po | 10024 +++++++++++ .../source/po/bs/ktexteditor6.po | 10624 ++++++++++++ .../source/po/ca/ktexteditor6.po | 8588 ++++++++++ .../source/po/ca@valencia/ktexteditor6.po | 8585 ++++++++++ .../source/po/cs/ktexteditor6.po | 8223 +++++++++ .../source/po/cy/ktexteditor6.po | 9242 +++++++++++ .../source/po/da/ktexteditor6.po | 11666 +++++++++++++ .../source/po/de/ktexteditor6.po | 12153 ++++++++++++++ .../source/po/el/ktexteditor6.po | 11905 +++++++++++++ .../source/po/en_GB/ktexteditor6.po | 11405 +++++++++++++ .../source/po/eo/ktexteditor6.po | 8479 ++++++++++ .../source/po/es/ktexteditor6.po | 8593 ++++++++++ .../source/po/et/ktexteditor6.po | 11563 +++++++++++++ .../source/po/eu/ktexteditor6.po | 10902 ++++++++++++ .../source/po/fa/ktexteditor6.po | 11335 +++++++++++++ .../source/po/fi/ktexteditor6.po | 11160 +++++++++++++ .../source/po/fr/ktexteditor6.po | 11618 +++++++++++++ .../source/po/fy/ktexteditor6.po | 11326 +++++++++++++ .../source/po/ga/ktexteditor6.po | 7872 +++++++++ .../source/po/gl/ktexteditor6.po | 11104 +++++++++++++ .../source/po/gu/ktexteditor6.po | 10104 ++++++++++++ .../source/po/he/ktexteditor6.po | 8996 ++++++++++ .../source/po/hi/ktexteditor6.po | 12154 ++++++++++++++ .../source/po/hr/ktexteditor6.po | 10979 ++++++++++++ .../source/po/hsb/ktexteditor6.po | 8332 ++++++++++ .../source/po/hu/ktexteditor6.po | 11413 +++++++++++++ .../source/po/ia/ktexteditor6.po | 11469 +++++++++++++ .../source/po/id/ktexteditor6.po | 9372 +++++++++++ .../source/po/is/ktexteditor6.po | 10896 ++++++++++++ .../source/po/it/ktexteditor6.po | 11574 +++++++++++++ .../source/po/ja/ktexteditor6.po | 8654 ++++++++++ .../source/po/ka/ktexteditor6.po | 8545 ++++++++++ .../source/po/kk/ktexteditor6.po | 11651 +++++++++++++ .../source/po/km/ktexteditor6.po | 10937 ++++++++++++ .../source/po/ko/ktexteditor6.po | 10115 ++++++++++++ .../source/po/ku/ktexteditor6.po | 8693 ++++++++++ .../source/po/lb/ktexteditor6.po | 10012 +++++++++++ .../source/po/lo/ktexteditor6.po | 8224 +++++++++ .../source/po/lt/ktexteditor6.po | 10471 ++++++++++++ .../source/po/lv/ktexteditor6.po | 10810 ++++++++++++ .../source/po/mai/ktexteditor6.po | 10590 ++++++++++++ .../source/po/mk/ktexteditor6.po | 10638 ++++++++++++ .../source/po/ml/ktexteditor6.po | 8769 ++++++++++ .../source/po/mr/ktexteditor6.po | 8973 ++++++++++ .../source/po/ms/ktexteditor6.po | 10719 ++++++++++++ .../source/po/nb/ktexteditor6.po | 8312 ++++++++++ .../source/po/nds/ktexteditor6.po | 11946 ++++++++++++++ .../source/po/ne/ktexteditor6.po | 11570 +++++++++++++ .../source/po/nl/ktexteditor6.po | 10549 ++++++++++++ .../source/po/nn/ktexteditor6.po | 8386 ++++++++++ .../source/po/oc/ktexteditor6.po | 8641 ++++++++++ .../source/po/pa/ktexteditor6.po | 10467 ++++++++++++ .../source/po/pl/ktexteditor6.po | 11531 +++++++++++++ .../source/po/pt/ktexteditor6.po | 8804 ++++++++++ .../source/po/pt_BR/ktexteditor6.po | 9155 ++++++++++ .../source/po/ro/ktexteditor6.po | 10776 ++++++++++++ .../source/po/ru/ktexteditor6.po | 11559 +++++++++++++ .../source/po/sa/ktexteditor6.po | 8376 ++++++++++ .../source/po/se/ktexteditor6.po | 8017 +++++++++ .../source/po/si/ktexteditor6.po | 10775 ++++++++++++ .../source/po/sk/ktexteditor6.po | 10384 ++++++++++++ .../source/po/sl/ktexteditor6.po | 8642 ++++++++++ .../source/po/sq/ktexteditor6.po | 8915 ++++++++++ .../source/po/sr/ktexteditor6.po | 9427 +++++++++++ .../source/po/sr@ijekavian/ktexteditor6.po | 9432 +++++++++++ .../po/sr@ijekavianlatin/ktexteditor6.po | 9438 +++++++++++ .../source/po/sr@latin/ktexteditor6.po | 9435 +++++++++++ .../source/po/sv/ktexteditor6.po | 11478 +++++++++++++ .../source/po/ta/ktexteditor6.po | 10697 ++++++++++++ .../source/po/tg/ktexteditor6.po | 11226 +++++++++++++ .../source/po/th/ktexteditor6.po | 10682 ++++++++++++ .../source/po/tr/ktexteditor6.po | 8526 ++++++++++ .../source/po/ug/ktexteditor6.po | 10134 ++++++++++++ .../source/po/uk/ktexteditor6.po | 9148 ++++++++++ .../source/po/uz/ktexteditor6.po | 9804 +++++++++++ .../source/po/uz@cyrillic/ktexteditor6.po | 9804 +++++++++++ .../source/po/vi/ktexteditor6.po | 8940 ++++++++++ .../source/po/wa/ktexteditor6.po | 10014 +++++++++++ .../source/po/xh/ktexteditor6.po | 10364 ++++++++++++ .../source/po/zh_CN/ktexteditor6.po | 8185 +++++++++ .../source/po/zh_TW/ktexteditor6.po | 8737 ++++++++++ .../kf6-ktexteditor/source/src/CMakeLists.txt | 410 + .../kf6-ktexteditor/source/src/Messages.sh | 7 + .../kde/kf6-ktexteditor/source/src/README.md | 183 + .../kde/kf6-ktexteditor/source/src/TODO | 9 + .../src/buffer/katesecuretextbuffer.cpp | 139 + .../src/buffer/katesecuretextbuffer_p.h | 55 + .../source/src/buffer/katetextblock.cpp | 634 + .../source/src/buffer/katetextblock.h | 211 + .../source/src/buffer/katetextbuffer.cpp | 1118 ++ .../source/src/buffer/katetextbuffer.h | 659 + .../source/src/buffer/katetextcursor.cpp | 122 + .../source/src/buffer/katetextcursor.h | 226 + .../source/src/buffer/katetextfolding.cpp | 794 + .../source/src/buffer/katetextfolding.h | 403 + .../source/src/buffer/katetexthistory.cpp | 486 + .../source/src/buffer/katetexthistory.h | 242 + .../source/src/buffer/katetextline.cpp | 201 + .../source/src/buffer/katetextline.h | 385 + .../source/src/buffer/katetextloader.h | 429 + .../source/src/buffer/katetextrange.cpp | 303 + .../source/src/buffer/katetextrange.h | 409 + ...rg.kde.ktexteditor6.katetextbuffer.actions | 161 + .../src/completion/documentation_tip.cpp | 94 + .../source/src/completion/documentation_tip.h | 31 + .../expandingtree/expandingwidgetmodel.cpp | 168 + .../expandingtree/expandingwidgetmodel.h | 58 + .../src/completion/kateargumenthintmodel.cpp | 167 + .../src/completion/kateargumenthintmodel.h | 46 + .../src/completion/kateargumenthinttree.cpp | 201 + .../src/completion/kateargumenthinttree.h | 43 + .../src/completion/katecompletiondelegate.cpp | 153 + .../src/completion/katecompletiondelegate.h | 39 + .../src/completion/katecompletionmodel.cpp | 1817 ++ .../src/completion/katecompletionmodel.h | 325 + .../src/completion/katecompletiontree.cpp | 430 + .../src/completion/katecompletiontree.h | 60 + .../src/completion/katecompletionwidget.cpp | 1442 ++ .../src/completion/katecompletionwidget.h | 257 + .../src/completion/katekeywordcompletion.cpp | 168 + .../src/completion/katekeywordcompletion.h | 45 + .../src/completion/katemodelinecompletion.cpp | 112 + .../src/completion/katemodelinecompletion.h | 34 + .../src/completion/katewordcompletion.cpp | 544 + .../src/completion/katewordcompletion.h | 93 + .../kf6-ktexteditor/source/src/data/kate.svg | 57 + .../source/src/data/katemoderc | 20 + .../source/src/data/katepart5ui.rc | 199 + .../source/src/data/ktexteditor.qrc | 12 + .../dialogs/bordersappearanceconfigwidget.ui | 335 + .../src/dialogs/clipboardhistorydialog.cpp | 382 + .../src/dialogs/clipboardhistorydialog.h | 72 + .../source/src/dialogs/completionconfigtab.ui | 192 + .../source/src/dialogs/editconfigwidget.ui | 285 + .../src/dialogs/filetypeconfigwidget.ui | 241 + .../src/dialogs/indentationconfigwidget.ui | 327 + .../source/src/dialogs/kateconfigpage.cpp | 87 + .../source/src/dialogs/kateconfigpage.h | 56 + .../source/src/dialogs/katedialogs.cpp | 1595 ++ .../source/src/dialogs/katedialogs.h | 366 + .../src/dialogs/navigationconfigwidget.ui | 230 + .../src/dialogs/opensaveconfigadvwidget.ui | 259 + .../src/dialogs/opensaveconfigwidget.ui | 315 + .../src/dialogs/spellcheckconfigwidget.ui | 29 + .../src/dialogs/statusbarconfigwidget.ui | 84 + .../dialogs/textareaappearanceconfigwidget.ui | 483 + .../source/src/document/editorconfig.cpp | 155 + .../source/src/document/editorconfig.h | 49 + .../source/src/document/katebuffer.cpp | 687 + .../source/src/document/katebuffer.h | 303 + .../source/src/document/katedocument.cpp | 6572 ++++++++ .../source/src/document/katedocument.h | 1461 ++ .../source/src/draft/foldinginterface.h | 189 + .../source/src/export/abstractexporter.h | 60 + .../source/src/export/exporter.cpp | 110 + .../source/src/export/exporter.h | 33 + .../source/src/export/htmlexporter.cpp | 132 + .../source/src/export/htmlexporter.h | 24 + .../source/src/include/CMakeLists.txt | 21 + .../abstractannotationitemdelegate.h | 257 + .../include/ktexteditor/annotationinterface.h | 115 + .../src/include/ktexteditor/application.h | 216 + .../src/include/ktexteditor/attribute.h | 354 + .../include/ktexteditor/codecompletionmodel.h | 571 + .../codecompletionmodelcontrollerinterface.h | 217 + .../source/src/include/ktexteditor/command.h | 206 + .../src/include/ktexteditor/configpage.h | 118 + .../source/src/include/ktexteditor/cursor.h | 454 + .../source/src/include/ktexteditor/document.h | 2092 +++ .../src/include/ktexteditor/documentcursor.h | 476 + .../source/src/include/ktexteditor/editor.h | 409 + .../src/include/ktexteditor/inlinenote.h | 102 + .../include/ktexteditor/inlinenoteprovider.h | 176 + .../src/include/ktexteditor/linerange.h | 540 + .../src/include/ktexteditor/mainwindow.h | 507 + .../source/src/include/ktexteditor/message.h | 413 + .../src/include/ktexteditor/movingcursor.h | 426 + .../src/include/ktexteditor/movingrange.h | 599 + .../include/ktexteditor/movingrangefeedback.h | 113 + .../source/src/include/ktexteditor/plugin.h | 145 + .../source/src/include/ktexteditor/range.h | 652 + .../ktexteditor/sessionconfiginterface.h | 122 + .../include/ktexteditor/texthintinterface.h | 81 + .../source/src/include/ktexteditor/view.h | 1604 ++ .../src/inputmode/kateabstractinputmode.cpp | 34 + .../src/inputmode/kateabstractinputmode.h | 96 + .../kateabstractinputmodefactory.cpp | 15 + .../inputmode/kateabstractinputmodefactory.h | 34 + .../src/inputmode/katenormalinputmode.cpp | 256 + .../src/inputmode/katenormalinputmode.h | 106 + .../inputmode/katenormalinputmodefactory.cpp | 30 + .../inputmode/katenormalinputmodefactory.h | 24 + .../source/src/inputmode/kateviinputmode.cpp | 319 + .../source/src/inputmode/kateviinputmode.h | 102 + .../src/inputmode/kateviinputmodefactory.cpp | 39 + .../src/inputmode/kateviinputmodefactory.h | 38 + .../source/src/ktexteditor-index.qdoc | 29 + .../source/src/ktexteditor.qdoc | 18 + .../source/src/ktexteditor.qdocconf | 36 + .../source/src/mode/katemodeconfigpage.cpp | 313 + .../source/src/mode/katemodeconfigpage.h | 49 + .../source/src/mode/katemodemanager.cpp | 317 + .../source/src/mode/katemodemanager.h | 101 + .../source/src/mode/katemodemenu.cpp | 129 + .../source/src/mode/katemodemenu.h | 50 + .../source/src/mode/katemodemenulist.cpp | 1200 ++ .../source/src/mode/katemodemenulist.h | 520 + .../source/src/part/CMakeLists.txt | 10 + .../source/src/part/katepart.cpp | 55 + .../source/src/part/katepart.json.in | 133 + .../source/src/printing/kateprinter.cpp | 161 + .../source/src/printing/kateprinter.h | 34 + .../src/printing/printconfigwidgets.cpp | 652 + .../source/src/printing/printconfigwidgets.h | 143 + .../source/src/printing/printpainter.cpp | 726 + .../source/src/printing/printpainter.h | 167 + .../source/src/render/katelayoutcache.cpp | 517 + .../source/src/render/katelayoutcache.h | 160 + .../source/src/render/katelinelayout.cpp | 162 + .../source/src/render/katelinelayout.h | 103 + .../source/src/render/katerenderer.cpp | 1448 ++ .../source/src/render/katerenderer.h | 496 + .../source/src/render/katerenderrange.cpp | 177 + .../source/src/render/katerenderrange.h | 55 + .../source/src/render/katetextlayout.cpp | 229 + .../source/src/render/katetextlayout.h | 93 + .../source/src/script/data/CMakeLists.txt | 24 + .../source/src/script/data/commands/emmet.js | 199 + .../data/commands/jumpMatchingIndent.js | 119 + .../src/script/data/commands/navigation.js | 78 + .../source/src/script/data/commands/utils.js | 541 + .../source/src/script/data/indentation/ada.js | 784 + .../src/script/data/indentation/cmake.js | 745 + .../data/indentation/cppstyle.README.md | 80 + .../src/script/data/indentation/cppstyle.js | 2804 ++++ .../src/script/data/indentation/cstyle.js | 964 ++ .../src/script/data/indentation/haskell.js | 380 + .../src/script/data/indentation/julia.js | 340 + .../src/script/data/indentation/latex.js | 75 + .../src/script/data/indentation/lilypond.js | 115 + .../src/script/data/indentation/lisp.js | 103 + .../src/script/data/indentation/pascal.js | 1491 ++ .../src/script/data/indentation/python.js | 297 + .../source/src/script/data/indentation/r.js | 422 + .../src/script/data/indentation/replicode.js | 19 + .../src/script/data/indentation/ruby.js | 366 + .../source/src/script/data/indentation/xml.js | 179 + .../src/script/data/indentation_template.js | 52 + .../data/libraries/cmake_indenter_config.js | 17 + .../src/script/data/libraries/cursor.js | 93 + .../script/data/libraries/documentcursor.js | 193 + .../data/libraries/emmet/editor_interface.js | 239 + .../src/script/data/libraries/emmet/lib.js | 13743 ++++++++++++++++ .../source/src/script/data/libraries/range.js | 107 + .../src/script/data/libraries/string.js | 99 + .../src/script/data/libraries/underscore.js | 1695 ++ .../source/src/script/data/libraries/utils.js | 178 + .../src/script/data/test_selectioniface.js | 27 + .../src/script/katecommandlinescript.cpp | 129 + .../source/src/script/katecommandlinescript.h | 75 + .../source/src/script/kateindentscript.cpp | 78 + .../source/src/script/kateindentscript.h | 126 + .../source/src/script/katescript.cpp | 311 + .../source/src/script/katescript.h | 218 + .../source/src/script/katescriptaction.cpp | 165 + .../source/src/script/katescriptaction.h | 61 + .../source/src/script/katescriptdocument.cpp | 788 + .../source/src/script/katescriptdocument.h | 188 + .../source/src/script/katescripteditor.cpp | 37 + .../source/src/script/katescripteditor.h | 37 + .../source/src/script/katescripthelpers.cpp | 161 + .../source/src/script/katescripthelpers.h | 47 + .../source/src/script/katescriptmanager.cpp | 326 + .../source/src/script/katescriptmanager.h | 126 + .../source/src/script/katescriptview.cpp | 226 + .../source/src/script/katescriptview.h | 85 + .../source/src/script/scriptcursor.h | 29 + .../source/src/script/scriptrange.h | 32 + .../source/src/scripttester/README.md | 424 + .../scripttester/ktexteditorscripttester.cpp | 1235 ++ .../scripttester/ktexteditorscripttester.qrc | 6 + .../source/src/scripttester/scripttester.cpp | 2742 +++ .../source/src/scripttester/scripttester_p.h | 666 + .../source/src/scripttester/testframework.js | 1350 ++ .../source/src/search/katematch.cpp | 77 + .../source/src/search/katematch.h | 49 + .../source/src/search/kateplaintextsearch.cpp | 125 + .../source/src/search/kateplaintextsearch.h | 54 + .../source/src/search/kateregexpsearch.cpp | 900 + .../source/src/search/kateregexpsearch.h | 119 + .../source/src/search/katesearchbar.cpp | 1814 ++ .../source/src/search/katesearchbar.h | 257 + .../source/src/search/searchbarincremental.ui | 172 + .../source/src/search/searchbarpower.ui | 344 + .../source/src/spellcheck/ontheflycheck.cpp | 860 + .../source/src/spellcheck/ontheflycheck.h | 128 + .../source/src/spellcheck/prefixstore.cpp | 162 + .../source/src/spellcheck/prefixstore.h | 73 + .../source/src/spellcheck/spellcheck.cpp | 385 + .../source/src/spellcheck/spellcheck.h | 76 + .../source/src/spellcheck/spellcheckbar.cpp | 440 + .../source/src/spellcheck/spellcheckbar.h | 145 + .../source/src/spellcheck/spellcheckbar.ui | 256 + .../src/spellcheck/spellcheckdialog.cpp | 295 + .../source/src/spellcheck/spellcheckdialog.h | 110 + .../source/src/spellcheck/spellingmenu.cpp | 290 + .../source/src/spellcheck/spellingmenu.h | 84 + .../src/swapfile/kateswapdiffcreator.cpp | 157 + .../source/src/swapfile/kateswapdiffcreator.h | 40 + .../source/src/swapfile/kateswapfile.cpp | 667 + .../source/src/swapfile/kateswapfile.h | 97 + .../source/src/syntax/katecategorydrawer.cpp | 220 + .../source/src/syntax/katecategorydrawer.h | 31 + .../source/src/syntax/katecolortreewidget.cpp | 385 + .../source/src/syntax/katecolortreewidget.h | 66 + .../source/src/syntax/kateextendedattribute.h | 40 + .../source/src/syntax/katehighlight.cpp | 451 + .../source/src/syntax/katehighlight.h | 379 + .../src/syntax/katehighlightingcmds.cpp | 45 + .../source/src/syntax/katehighlightingcmds.h | 52 + .../source/src/syntax/katehighlightmenu.cpp | 100 + .../source/src/syntax/katehighlightmenu.h | 52 + .../source/src/syntax/katestyletreewidget.cpp | 757 + .../source/src/syntax/katestyletreewidget.h | 61 + .../source/src/syntax/katesyntaxmanager.cpp | 95 + .../source/src/syntax/katesyntaxmanager.h | 88 + .../source/src/syntax/katethemeconfig.cpp | 1501 ++ .../source/src/syntax/katethemeconfig.h | 174 + .../source/src/undo/kateundo.cpp | 422 + .../source/src/undo/kateundo.h | 208 + .../source/src/undo/kateundomanager.cpp | 579 + .../source/src/undo/kateundomanager.h | 229 + .../source/src/utils/application.cpp | 103 + .../source/src/utils/attribute.cpp | 211 + .../source/src/utils/codecompletionmodel.cpp | 106 + ...codecompletionmodelcontrollerinterface.cpp | 125 + .../source/src/utils/document.cpp | 116 + .../source/src/utils/documentcursor.cpp | 198 + .../source/src/utils/kateautoindent.cpp | 492 + .../source/src/utils/kateautoindent.h | 251 + .../source/src/utils/katebookmarks.cpp | 295 + .../source/src/utils/katebookmarks.h | 79 + .../source/src/utils/katecmd.cpp | 230 + .../source/src/utils/katecmd.h | 94 + .../source/src/utils/katecmds.cpp | 718 + .../source/src/utils/katecmds.h | 227 + .../katecommandrangeexpressionparser.cpp | 166 + .../utils/katecommandrangeexpressionparser.h | 57 + .../source/src/utils/kateconfig.cpp | 1537 ++ .../source/src/utils/kateconfig.h | 1598 ++ .../source/src/utils/kateglobal.cpp | 617 + .../source/src/utils/kateglobal.h | 597 + .../source/src/utils/kateindentdetecter.cpp | 212 + .../source/src/utils/kateindentdetecter.h | 39 + .../source/src/utils/katesedcmd.cpp | 303 + .../source/src/utils/katesedcmd.h | 138 + .../source/src/utils/katetemplatehandler.cpp | 791 + .../source/src/utils/katetemplatehandler.h | 259 + .../utils/katevariableexpansionhelpers.cpp | 362 + .../src/utils/katevariableexpansionhelpers.h | 82 + .../utils/katevariableexpansionmanager.cpp | 442 + .../src/utils/katevariableexpansionmanager.h | 64 + .../source/src/utils/ktexteditor.cpp | 495 + .../source/src/utils/mainwindow.cpp | 265 + .../source/src/utils/messageinterface.cpp | 160 + .../source/src/utils/movingapi.cpp | 200 + .../source/src/utils/range.cpp | 180 + .../source/src/utils/variable.cpp | 44 + .../source/src/utils/variable.h | 117 + .../src/variableeditor/variableeditor.cpp | 367 + .../src/variableeditor/variableeditor.h | 163 + .../src/variableeditor/variableitem.cpp | 349 + .../source/src/variableeditor/variableitem.h | 217 + .../src/variableeditor/variablelineedit.cpp | 368 + .../src/variableeditor/variablelineedit.h | 44 + .../src/variableeditor/variablelistview.cpp | 123 + .../src/variableeditor/variablelistview.h | 48 + .../source/src/view/inlinenotedata.h | 45 + .../source/src/view/kateanimation.cpp | 85 + .../source/src/view/kateanimation.h | 85 + .../src/view/kateannotationitemdelegate.cpp | 149 + .../src/view/kateannotationitemdelegate.h | 39 + .../source/src/view/katefadeeffect.cpp | 100 + .../source/src/view/katefadeeffect.h | 94 + .../source/src/view/katemessagewidget.cpp | 288 + .../source/src/view/katemessagewidget.h | 106 + .../source/src/view/katestatusbar.cpp | 651 + .../source/src/view/katestatusbar.h | 126 + .../source/src/view/katetextanimation.cpp | 104 + .../source/src/view/katetextanimation.h | 57 + .../source/src/view/katetextpreview.cpp | 143 + .../source/src/view/katetextpreview.h | 93 + .../source/src/view/kateview.cpp | 5314 ++++++ .../source/src/view/kateview.h | 1286 ++ .../source/src/view/kateviewaccessible.h | 392 + .../source/src/view/kateviewhelpers.cpp | 3211 ++++ .../source/src/view/kateviewhelpers.h | 662 + .../source/src/view/kateviewinternal.cpp | 4962 ++++++ .../source/src/view/kateviewinternal.h | 517 + .../source/src/view/screenshotdialog.cpp | 451 + .../source/src/view/screenshotdialog.h | 61 + .../source/src/view/wordcounter.cpp | 173 + .../source/src/view/wordcounter.h | 49 + .../source/src/vimode/appcommands.cpp | 557 + .../source/src/vimode/appcommands.h | 104 + .../source/src/vimode/cmds.cpp | 263 + .../kf6-ktexteditor/source/src/vimode/cmds.h | 127 + .../source/src/vimode/command.cpp | 52 + .../source/src/vimode/command.h | 86 + .../vimode/commandrangeexpressionparser.cpp | 249 + .../src/vimode/commandrangeexpressionparser.h | 57 + .../source/src/vimode/completion.cpp | 36 + .../source/src/vimode/completion.h | 38 + .../source/src/vimode/completionrecorder.cpp | 58 + .../source/src/vimode/completionrecorder.h | 39 + .../source/src/vimode/completionreplayer.cpp | 139 + .../source/src/vimode/completionreplayer.h | 47 + .../source/src/vimode/config/configtab.cpp | 238 + .../source/src/vimode/config/configtab.h | 54 + .../source/src/vimode/config/configwidget.ui | 250 + .../source/src/vimode/definitions.h | 56 + .../vimode/emulatedcommandbar/activemode.cpp | 78 + .../vimode/emulatedcommandbar/activemode.h | 72 + .../vimode/emulatedcommandbar/commandmode.cpp | 405 + .../vimode/emulatedcommandbar/commandmode.h | 91 + .../vimode/emulatedcommandbar/completer.cpp | 245 + .../src/vimode/emulatedcommandbar/completer.h | 96 + .../emulatedcommandbar/emulatedcommandbar.cpp | 428 + .../emulatedcommandbar/emulatedcommandbar.h | 116 + .../interactivesedreplacemode.cpp | 100 + .../interactivesedreplacemode.h | 50 + .../emulatedcommandbar/matchhighlighter.cpp | 51 + .../emulatedcommandbar/matchhighlighter.h | 39 + .../vimode/emulatedcommandbar/searchmode.cpp | 382 + .../vimode/emulatedcommandbar/searchmode.h | 70 + .../source/src/vimode/globalstate.cpp | 69 + .../source/src/vimode/globalstate.h | 73 + .../source/src/vimode/history.cpp | 34 + .../source/src/vimode/history.h | 37 + .../source/src/vimode/inputmodemanager.cpp | 468 + .../source/src/vimode/inputmodemanager.h | 278 + .../source/src/vimode/jumps.cpp | 80 + .../kf6-ktexteditor/source/src/vimode/jumps.h | 41 + .../source/src/vimode/keyevent.cpp | 38 + .../source/src/vimode/keyevent.h | 37 + .../source/src/vimode/keymapper.cpp | 157 + .../source/src/vimode/keymapper.h | 63 + .../source/src/vimode/keyparser.cpp | 700 + .../source/src/vimode/keyparser.h | 63 + .../source/src/vimode/lastchangerecorder.cpp | 105 + .../source/src/vimode/lastchangerecorder.h | 52 + .../source/src/vimode/macrorecorder.cpp | 93 + .../source/src/vimode/macrorecorder.h | 48 + .../source/src/vimode/macros.cpp | 137 + .../source/src/vimode/macros.h | 48 + .../source/src/vimode/mappings.cpp | 188 + .../source/src/vimode/mappings.h | 78 + .../source/src/vimode/marks.cpp | 311 + .../kf6-ktexteditor/source/src/vimode/marks.h | 71 + .../source/src/vimode/modes/insertvimode.cpp | 588 + .../source/src/vimode/modes/insertvimode.h | 104 + .../source/src/vimode/modes/modebase.cpp | 1388 ++ .../source/src/vimode/modes/modebase.h | 161 + .../source/src/vimode/modes/normalvimode.cpp | 4186 +++++ .../source/src/vimode/modes/normalvimode.h | 400 + .../source/src/vimode/modes/replacevimode.cpp | 238 + .../source/src/vimode/modes/replacevimode.h | 74 + .../source/src/vimode/modes/visualvimode.cpp | 392 + .../source/src/vimode/modes/visualvimode.h | 109 + .../source/src/vimode/motion.cpp | 20 + .../source/src/vimode/motion.h | 34 + .../source/src/vimode/range.cpp | 90 + .../kf6-ktexteditor/source/src/vimode/range.h | 71 + .../source/src/vimode/registers.cpp | 163 + .../source/src/vimode/registers.h | 87 + .../source/src/vimode/searcher.cpp | 381 + .../source/src/vimode/searcher.h | 94 + .../source/templates/.clang-format | 2 + .../source/templates/CMakeLists.txt | 5 + .../ktexteditor6-plugin/CMakeLists.txt | 21 + .../LICENSES/LGPL-2.0-or-later.txt | 446 + .../templates/ktexteditor6-plugin/README.md | 38 + .../ktexteditor6-plugin.kdevtemplate | 91 + .../ktexteditor6-plugin.png | Bin 0 -> 35013 bytes .../ktexteditor6-plugin/src/%{APPNAMELC}.json | 16 + .../src/%{APPNAMELC}plugin.cpp | 38 + .../src/%{APPNAMELC}plugin.h | 29 + .../src/%{APPNAMELC}view.cpp | 29 + .../src/%{APPNAMELC}view.h | 28 + .../ktexteditor6-plugin/src/CMakeLists.txt | 15 + .../ktexteditor6-plugin/src/Messages.sh | 2 + 2616 files changed, 1071202 insertions(+), 2 deletions(-) create mode 100644 local/recipes/kde/kf6-ktexteditor/source.tar create mode 100644 local/recipes/kde/kf6-ktexteditor/source/.git-blame-ignore-revs create mode 100644 local/recipes/kde/kf6-ktexteditor/source/.gitignore create mode 100644 local/recipes/kde/kf6-ktexteditor/source/.gitlab-ci.yml create mode 100644 local/recipes/kde/kf6-ktexteditor/source/.kateconfig create mode 100644 local/recipes/kde/kf6-ktexteditor/source/.kateproject create mode 100644 local/recipes/kde/kf6-ktexteditor/source/.kde-ci.yml create mode 100644 local/recipes/kde/kf6-ktexteditor/source/.redbear-src-version create mode 100644 local/recipes/kde/kf6-ktexteditor/source/CMakeLists.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/ExtraDesktop.sh create mode 100644 local/recipes/kde/kf6-ktexteditor/source/KF6TextEditorConfig.cmake.in create mode 100644 local/recipes/kde/kf6-ktexteditor/source/LICENSES/BSD-2-Clause.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/LICENSES/CC0-1.0.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/LICENSES/LGPL-2.0-only.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/LICENSES/LGPL-2.0-or-later.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/LICENSES/MIT.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/README.md create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/CMakeLists.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/.clang-format create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/.gitignore create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/bug205447.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/bug311866.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/bug313759.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/bug313759.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/bug313769.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/bug404713_line_height_issue.xml create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/commands/utils.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/cp1251.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/cyrillic_utf8.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/koi8-r.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/latin15-with-utf8-bom.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/latin15.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/one-char-latin-15.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/utf16.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/utf16be.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/utf32.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/utf32be.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/utf8-bom-only.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/utf8.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/.kateconfig create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/bracketsBreak/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/bracketsBreak/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/bracketsBreak/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/closeBracket/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/closeBracket/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/closeBracket/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentAssign/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentAssign/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentAssign/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentBracket/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentBracket/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentBracket/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentFormula/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentFormula/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentFormula/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentOperator/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentOperator/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentOperator/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentpaste1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentpaste1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentpaste1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentpaste2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentpaste2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentpaste2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/skipComment/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/skipComment/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/skipComment/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/.kateconfig create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/closepar2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/closepar2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/closepar2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/longtest/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/longtest/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/longtest/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/newline/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/newline/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/newline/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/openpar2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/openpar2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/openpar2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/prep1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/prep1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/prep1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/trig1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/trig1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/trig1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cmake/.kateconfig create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cmake/enter1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cmake/enter1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cmake/enter1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cmake/enter2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cmake/enter2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cmake/enter2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cmake/enter3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cmake/enter3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cmake/enter3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cmake/paren1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cmake/paren1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cmake/paren1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cmake/quot1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cmake/quot1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cmake/quot1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cmake/var1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cmake/var1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cmake/var1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/.kateconfig create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/autobrackets1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/autobrackets1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/autobrackets1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/autobrackets2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/autobrackets2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/autobrackets2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/autobrackets3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/autobrackets3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/autobrackets3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon10/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon10/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon10/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon7/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon7/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon7/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon8/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon8/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon8/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon9/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon9/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/colon9/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comma1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comma1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comma1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comma2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comma2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comma2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comma3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comma3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comma3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comma4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comma4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comma4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comma5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comma5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comma5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment10/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment10/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment10/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment11/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment11/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment11/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment12/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment12/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment12/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment13/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment13/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment13/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment14/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment14/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment14/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment15/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment15/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment15/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment16/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment16/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment16/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment17/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment17/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment17/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment18/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment18/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment18/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment19/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment19/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment19/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment20/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment20/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment20/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment7/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment7/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment7/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment8/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment8/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment8/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment9/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment9/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/comment9/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/do1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/do1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/do1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/dot1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/dot1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/dot1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/dot2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/dot2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/dot2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/dot3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/dot3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/dot3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/doxygen1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/doxygen1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/doxygen1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/doxygen2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/doxygen2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/doxygen2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/doxygen3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/doxygen3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/doxygen3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/doxygen4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/doxygen4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/doxygen4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/doxygen5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/doxygen5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/doxygen5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/doxygen6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/doxygen6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/doxygen6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/doxygen7/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/doxygen7/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/doxygen7/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/doxygen8/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/doxygen8/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/doxygen8/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/doxygen9/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/doxygen9/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/doxygen9/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/equal1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/equal1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/equal1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/equal2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/equal2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/equal2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/equal3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/equal3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/equal3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/equal4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/equal4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/equal4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/equal5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/equal5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/equal5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/equal6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/equal6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/equal6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/exclamation1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/exclamation1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/exclamation1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/exclamation2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/exclamation2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/exclamation2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/exclamation3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/exclamation3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/exclamation3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/exclamation4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/exclamation4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/exclamation4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/exclamation5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/exclamation5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/exclamation5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/for1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/for1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/for1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/for2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/for2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/for2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab10/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab10/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab10/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab7/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab7/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab7/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab8/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab8/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab8/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab9/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab9/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/lab9/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal10/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal10/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal10/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal11/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal11/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal11/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal12/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal12/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal12/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal13/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal13/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal13/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal14/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal14/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal14/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal15/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal15/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal15/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal16/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal16/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal16/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal17/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal17/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal17/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal18/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal18/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal18/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal19/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal19/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal19/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal20/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal20/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal20/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal21/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal21/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal21/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal22/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal22/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal22/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal23/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal23/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal23/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal24/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal24/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal24/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal25/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal25/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal25/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal7/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal7/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal7/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal8/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal8/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal8/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal9/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal9/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/normal9/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/parens1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/parens1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/parens1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/pipe1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/pipe1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/pipe1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/plist1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/plist1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/plist1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/plist2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/plist2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/plist2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/plist3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/plist3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/plist3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/preprocessor1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/preprocessor1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/preprocessor1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/preprocessor2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/preprocessor2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/preprocessor2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/preprocessor3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/preprocessor3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/preprocessor3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/preprocessor4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/preprocessor4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/preprocessor4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/preprocessor5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/preprocessor5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/preprocessor5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/preprocessor6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/preprocessor6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/preprocessor6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/quote1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/quote1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/quote1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/quote2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/quote2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/quote2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/quote3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/quote3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/quote3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/quote4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/quote4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/quote4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/semicolon1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/semicolon1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/semicolon1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/semicolon2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/semicolon2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/semicolon2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/semicolon3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/semicolon3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/semicolon3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/semicolon4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/semicolon4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/semicolon4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/semicolon5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/semicolon5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/semicolon5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/semicolon6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/semicolon6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/semicolon6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/semicolon7/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/semicolon7/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/semicolon7/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/semicolon8/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/semicolon8/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/semicolon8/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut10/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut10/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut10/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut11/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut11/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut11/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut12/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut12/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut12/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut7/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut7/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut7/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut8/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut8/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut8/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut9/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut9/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/shortcut9/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/space1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/space1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/space1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/space2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/space2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/space2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/string1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/string1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/string1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/string2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/string2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/string2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/string3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/string3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/string3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/string4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/string4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/string4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/string5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/string5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/string5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/string6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/string6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/string6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/ternary_op1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/ternary_op1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/ternary_op1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/ternary_op2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/ternary_op2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/ternary_op2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/ternary_op3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/ternary_op3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cppstyle/ternary_op3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/.kateconfig create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/137157/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/137157/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/137157/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/360456/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/360456/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/360456/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/385472/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/385472/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/385472/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/alignbrace/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/alignbrace/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/alignbrace/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist10/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist10/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist10/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist11/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist11/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist11/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist12/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist12/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist12/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist13/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist13/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist13/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist14/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist14/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist14/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist15/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist15/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist15/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist16/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist16/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist16/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist17/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist17/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist17/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist18/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist18/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist18/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist19/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist19/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist19/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist20/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist20/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist20/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist8/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist8/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist8/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist9/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist9/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/aplist9/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/brace1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/brace1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/brace1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/brace2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/brace2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/brace2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/clospar1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/clospar1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/clospar1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/clospar2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/clospar2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/clospar2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/clospar3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/clospar3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/clospar3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/clospar4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/clospar4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/clospar4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/clospar5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/clospar5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/clospar5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/comma1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/comma1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/comma1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/comma2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/comma2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/comma2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/comma3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/comma3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/comma3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/comma4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/comma4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/comma4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/comma5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/comma5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/comma5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/comma6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/comma6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/comma6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/comment1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/comment1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/comment1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/comment2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/comment2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/comment2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/dart1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/dart1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/dart1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/do1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/do1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/do1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/do2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/do2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/do2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/do3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/do3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/do3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen10/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen10/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen10/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen11/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen11/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen11/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen7/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen7/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen7/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen8/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen8/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen8/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen9/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen9/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/doxygen9/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/elsething/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/elsething/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/elsething/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/for1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/for1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/for1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/for2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/for2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/for2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/for3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/for3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/for3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/for4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/for4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/for4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/for5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/for5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/for5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/foreign1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/foreign1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/foreign1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/foreign2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/foreign2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/foreign2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/foreign3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/foreign3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/foreign3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/fork/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/fork/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/fork/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/func_in_param/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/func_in_param/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/func_in_param/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if10/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if10/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if10/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if11/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if11/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if11/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if7/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if7/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if7/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if8/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if8/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if8/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if9/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if9/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/if9/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/indentpaste1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/indentpaste1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/indentpaste1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/indentpaste2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/indentpaste2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/indentpaste2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/indentpaste3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/indentpaste3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/indentpaste3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/indentpaste4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/indentpaste4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/indentpaste4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/indentpaste5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/indentpaste5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/indentpaste5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/indentpaste6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/indentpaste6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/indentpaste6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/jsarray/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/jsarray/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/jsarray/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/normal1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/normal1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/normal1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/normal2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/normal2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/normal2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/normal3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/normal3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/normal3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar10/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar10/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar10/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar11/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar11/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar11/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar12/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar12/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar12/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar13/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar13/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar13/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar7/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar7/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar7/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar8/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar8/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar8/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar9/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar9/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/openpar9/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist10/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist10/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist10/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist11/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist11/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist11/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist12/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist12/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist12/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist13/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist13/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist13/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist14/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist14/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist14/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist15/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist15/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist15/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist16/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist16/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist16/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist17/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist17/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist17/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist18/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist18/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist18/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist19/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist19/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist19/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist20/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist20/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist20/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist21/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist21/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist21/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist22/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist22/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist22/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist24/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist24/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist24/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist25/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist25/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist25/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist26/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist26/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist26/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist7/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist7/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist7/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist8/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist8/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist8/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist9/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist9/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/plist9/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/prep1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/prep1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/prep1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/prep2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/prep2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/prep2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/prep3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/prep3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/prep3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/prep4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/prep4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/prep4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/prep5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/prep5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/prep5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/prep6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/prep6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/prep6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/string1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/string1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/string1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/string2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/string2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/string2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/string3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/string3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/string3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/string4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/string4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/string4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch10/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch10/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch10/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch11/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch11/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch11/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch12/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch12/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch12/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch13/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch13/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch13/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch14/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch14/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch14/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch7/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch7/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch7/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch8/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch8/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch8/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch9/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch9/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/switch9/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/tabindent/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/tabindent/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/tabindent/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top10/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top10/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top10/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top11/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top11/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top11/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top12/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top12/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top12/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top13/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top13/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top13/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top14/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top14/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top14/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top15/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top15/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top15/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top16/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top16/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top16/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top17/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top17/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top17/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top18/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top18/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top18/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top19/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top19/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top19/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top7/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top7/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top7/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top8/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top8/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top8/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top9/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top9/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/top9/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/triggerchars/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/triggerchars/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/triggerchars/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/usestrict/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/usestrict/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/usestrict/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/using1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/using1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/using1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/using2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/using2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/using2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/using3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/using3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/using3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/visib1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/visib1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/visib1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/visib2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/visib2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/visib2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/visib3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/visib3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/visib3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/visib4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/visib4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/visib4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/visib5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/visib5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/visib5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/visib6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/visib6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/visib6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/visib7/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/visib7/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/visib7/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/visib8/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/visib8/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/visib8/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/while1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/while1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/while1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/while2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/while2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/while2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/while3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/while3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/cstyle/while3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/haskell/.kateconfig create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/haskell/afterComma1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/haskell/afterComma1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/haskell/afterComma1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/haskell/dontIndent1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/haskell/dontIndent1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/haskell/dontIndent1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/haskell/if1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/haskell/if1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/haskell/if1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/haskell/if2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/haskell/if2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/haskell/if2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/haskell/parsec1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/haskell/parsec1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/haskell/parsec1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/.kateconfig create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/beginblock1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/beginblock1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/beginblock1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/beginblock2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/beginblock2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/beginblock2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/doblock/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/doblock/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/doblock/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/else1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/else1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/else1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/else2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/else2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/else2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/elseif1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/elseif1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/elseif1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/elseif2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/elseif2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/elseif2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/function_args/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/function_args/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/function_args/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/if1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/if1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/if1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/if2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/if2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/if2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/indentComment/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/indentComment/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/indentComment/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/indentpaste1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/indentpaste1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/indentpaste1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/indentpaste2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/indentpaste2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/indentpaste2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/keepIndent1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/keepIndent1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/keepIndent1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/keepIndent2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/keepIndent2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/keepIndent2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/keepIndent3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/keepIndent3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/keepIndent3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/keepIndent4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/keepIndent4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/keepIndent4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/keepIndent5_argparse/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/keepIndent5_argparse/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/keepIndent5_argparse/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/list1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/list1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/list1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/list2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/list2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/list2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/nested1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/nested1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/nested1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/nested2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/nested2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/nested2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/parametrics/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/parametrics/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/parametrics/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/subsetting/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/subsetting/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/subsetting/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/triggerchars/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/triggerchars/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/triggerchars/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/tuple1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/tuple1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/tuple1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/tuple2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/tuple2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/tuple2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/using1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/using1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/using1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/using2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/using2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/using2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/using3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/using3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/using3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/using4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/using4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/using4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/using5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/using5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/using5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/wrapped_line/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/wrapped_line/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/julia/wrapped_line/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/latex/.kateconfig create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/latex/env1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/latex/env1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/latex/env1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/latex/env2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/latex/env2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/latex/env2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/latex/env3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/latex/env3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/latex/env3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/normal/.kateconfig create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/normal/cascade1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/normal/cascade1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/normal/cascade1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/normal/emptyline1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/normal/emptyline1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/normal/emptyline1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/normal/emptyline2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/normal/emptyline2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/normal/emptyline2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/normal/emptyline3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/normal/emptyline3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/normal/emptyline3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/normal/midbreak1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/normal/midbreak1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/normal/midbreak1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/normal/midbreak2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/normal/midbreak2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/normal/midbreak2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/normal/normal1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/normal/normal1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/normal/normal1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/normal/normal2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/normal/normal2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/normal/normal2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/normal/normal3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/normal/normal3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/normal/normal3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/.kateconfig create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/case1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/case1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/case1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/case2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/case2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/case2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/case3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/case3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/case3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/case4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/case4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/case4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/case5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/case5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/case5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/case6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/case6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/case6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/closepar1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/closepar1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/closepar1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/closepar2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/closepar2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/closepar2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/comment1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/comment1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/comment1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/comment2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/comment2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/comment2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/comment3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/comment3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/comment3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/if1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/if1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/if1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/label1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/label1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/label1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/longtest1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/longtest1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/longtest1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/longtest2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/longtest2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/longtest2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/longtest3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/longtest3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/longtest3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/longtest4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/longtest4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/longtest4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/openpar1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/openpar1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/openpar1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/openpar2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/openpar2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/openpar2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/prep1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/prep1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/prep1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/trig1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/trig1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/pascal/trig1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/.kateconfig create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentBreak/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentBreak/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentBreak/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentComment/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentComment/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentComment/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentContinue/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentContinue/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentContinue/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentElif1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentElif1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentElif1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentElif2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentElif2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentElif2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentElse1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentElse1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentElse1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentElse2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentElse2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentElse2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentElse3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentElse3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentElse3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentElse4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentElse4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentElse4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentElse5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentElse5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentElse5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentElse6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentElse6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentElse6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentExcept1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentExcept1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentExcept1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentExcept2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentExcept2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentExcept2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentFinally1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentFinally1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentFinally1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentFinally2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentFinally2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentFinally2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentPass/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentPass/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentPass/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentRaise/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentRaise/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentRaise/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentReturn/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentReturn/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentReturn/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentReturn2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentReturn2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentReturn2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentReturn3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentReturn3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dedentReturn3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dict1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dict1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dict1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dict2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dict2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/dict2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/function_args/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/function_args/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/function_args/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/function_args_indent/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/function_args_indent/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/function_args_indent/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/indentColon/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/indentColon/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/indentColon/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/indentComment/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/indentComment/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/indentComment/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/indentpaste1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/indentpaste1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/indentpaste1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/indentpaste2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/indentpaste2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/indentpaste2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/indentpaste3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/indentpaste3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/indentpaste3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/keepIndent1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/keepIndent1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/keepIndent1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/keepIndent2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/keepIndent2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/keepIndent2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/keepIndent3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/keepIndent3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/keepIndent3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/keepIndent4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/keepIndent4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/keepIndent4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/keepIndent5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/keepIndent5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/keepIndent5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/keepIndent6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/keepIndent6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/keepIndent6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/list1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/list1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/list1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/list2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/list2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/list2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/triggerchars/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/triggerchars/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/triggerchars/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/tuple1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/tuple1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/tuple1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/tuple2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/tuple2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/tuple2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/wrapped_line/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/wrapped_line/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/python/wrapped_line/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/replicode/.kateconfig create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/replicode/return/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/replicode/return/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/replicode/return/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/.kateconfig create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array-comment1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array-comment1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array-comment1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array-comment2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array-comment2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array-comment2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array-comment3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array-comment3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array-comment3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array-comment4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array-comment4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array-comment4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array-comment5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array-comment5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array-comment5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array10/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array10/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array10/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array11/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array11/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array11/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array12/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array12/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array12/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array16/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array16/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array16/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array17/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array17/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array17/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array18/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array18/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array18/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array19/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array19/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array19/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array20/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array20/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array20/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array21/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array21/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array21/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array22/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array22/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array22/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array7/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array7/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array7/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array8/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array8/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array8/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array9/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array9/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/array9/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/basic1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/basic1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/basic1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/basic2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/basic2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/basic2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/basic3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/basic3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/basic3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/basic4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/basic4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/basic4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/basic5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/basic5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/basic5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block-comment1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block-comment1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block-comment1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block-comment2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block-comment2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block-comment2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block-comment3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block-comment3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block-comment3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block-comment4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block-comment4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block-comment4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block-comment5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block-comment5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block-comment5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block-comment6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block-comment6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block-comment6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block-comment7/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block-comment7/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block-comment7/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block-comment8/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block-comment8/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block-comment8/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block01/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block01/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block01/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block02/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block02/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/block02/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/comment1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/comment1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/comment1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/comment2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/comment2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/comment2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/comment3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/comment3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/comment3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/comment4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/comment4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/comment4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/comment5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/comment5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/comment5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/comment6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/comment6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/comment6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/do1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/do1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/do1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/do2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/do2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/do2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/do3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/do3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/do3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/do4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/do4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/do4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/do5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/do5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/do5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/do6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/do6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/do6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/do7/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/do7/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/do7/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/empty-file1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/empty-file1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/empty-file1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/endless01/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/endless01/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/endless01/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/endless02/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/endless02/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/endless02/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash10/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash10/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash10/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash11/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash11/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash11/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash12/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash12/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash12/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash16/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash16/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash16/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash17/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash17/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash17/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash18/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash18/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash18/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash19/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash19/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash19/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash20/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash20/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash20/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash21/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash21/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash21/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash22/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash22/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash22/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash7/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash7/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash7/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash8/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash8/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash8/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash9/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash9/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/hash9/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/heredoc1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/heredoc1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/heredoc1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/heredoc2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/heredoc2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/heredoc2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/heredoc3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/heredoc3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/heredoc3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/heredoc4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/heredoc4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/heredoc4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/heredoc5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/heredoc5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/heredoc5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/heredoc6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/heredoc6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/heredoc6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/if10/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/if10/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/if10/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/if11/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/if11/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/if11/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/if20/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/if20/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/if20/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/if21/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/if21/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/if21/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/if22/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/if22/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/if22/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/if30/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/if30/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/if30/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/if31/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/if31/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/if31/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/indentpaste1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/indentpaste1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/indentpaste1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/indentpaste2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/indentpaste2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/indentpaste2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline10/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline10/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline10/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline7/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline7/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline7/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline8/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline8/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline8/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline9/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline9/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/multiline9/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/no-do1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/no-do1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/no-do1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/no-do2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/no-do2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/no-do2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/no-do3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/no-do3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/no-do3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/no-do4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/no-do4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/no-do4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops11/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops11/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops11/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops12/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops12/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops12/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops13/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops13/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops13/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops14/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops14/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops14/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops15/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops15/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops15/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops16/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops16/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops16/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops17/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops17/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops17/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops18/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops18/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops18/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops21/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops21/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops21/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops22/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops22/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops22/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops23/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops23/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops23/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops24/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops24/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops24/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops25/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops25/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops25/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops26/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops26/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops26/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops27/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops27/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops27/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops28/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops28/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops28/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops7/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops7/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops7/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops8/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops8/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/ops8/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment10/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment10/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment10/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment7/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment7/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment7/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment8/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment8/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment8/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment9/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment9/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist-comment9/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist10/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist10/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist10/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist11/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist11/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist11/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist12/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist12/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist12/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist13/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist13/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist13/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist14/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist14/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist14/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist15/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist15/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist15/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist16/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist16/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist16/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist17/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist17/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist17/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist18/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist18/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist18/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist19/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist19/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist19/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist20/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist20/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist20/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist5/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist5/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist5/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist6/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist6/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist6/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist7/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist7/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist7/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist8/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist8/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist8/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist9/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist9/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/plist9/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/regexp1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/regexp1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/regexp1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/singleline01/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/singleline01/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/singleline01/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/singleline02/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/singleline02/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/singleline02/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/singleline03/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/singleline03/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/singleline03/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/singleline04/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/singleline04/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/singleline04/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/wordlist01/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/wordlist01/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/wordlist01/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/wordlist02/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/wordlist02/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/wordlist02/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/wordlist11/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/wordlist11/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/wordlist11/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/wordlist12/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/wordlist12/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/wordlist12/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/wordlist21/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/wordlist21/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/wordlist21/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/wordlist22/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/wordlist22/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ruby/wordlist22/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/.kateconfig create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/arguments1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/arguments1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/arguments1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/arguments2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/arguments2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/arguments2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/arguments3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/arguments3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/arguments3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/arguments4/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/arguments4/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/arguments4/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/closing1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/closing1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/closing1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/closing2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/closing2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/closing2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/closing3/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/closing3/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/closing3/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/comment1/README create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/comment1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/comment1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/comment1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/comment2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/comment2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/comment2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/empty_lines/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/empty_lines/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/empty_lines/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/keep_indent/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/keep_indent/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/keep_indent/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/opening1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/opening1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/opening1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/self_closing1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/self_closing1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/self_closing1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/self_closing2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/self_closing2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/self_closing2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/text1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/text1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/text1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/text2/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/text2/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/text2/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/xhtml1/expected create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/xhtml1/input.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/xhtml1/origin create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/.kateconfig create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/2space.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/4space.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/a.xml create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/bogus7spaces.md create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/indentdetect_test.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/main_bad_1_space.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/tab.c create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/modelines.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/scripting/bug_317111.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/scripting/bug_317892.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/input/scripting/bug_513898.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/benchmarks/bench_search.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/bugs_test.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/bugs_test.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/camelcursortest.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/camelcursortest.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/codecompletiontestmodel.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/codecompletiontestmodel.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/codecompletiontestmodels.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/codecompletiontestmodels.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/completion_test.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/completion_test.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/configinterface_test.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/configinterface_test.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/cursorwords_test.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/cursorwords_test.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/encodingtest.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/encodingtest.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/evaluate_script_test.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/evaluate_script_test.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/example.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/indentdetect_test.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/indentdetect_test.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/indenttest.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/indenttest.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/inlinenote_test.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/inlinenote_test.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/katedocument_test.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/katedocument_test.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/kateencodingtest.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/katefoldingtest.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/katefoldingtest.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/katemodemanager_benchmark.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/katemodemanager_benchmark.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/katemodemanager_test.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/katemodemanager_test.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/katemodemanager_test_base.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/katemodemanager_test_base.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/katetextbuffertest.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/katetextbuffertest.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/kateview_test.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/kateview_test.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/kte_documentcursor.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/kte_documentcursor.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/messagetest.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/messagetest.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/modificationsystem_test.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/modificationsystem_test.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/movingcursor_test.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/movingcursor_test.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/movingrange_test.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/movingrange_test.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/multicursortest.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/multicursortest.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/plaintextsearch_test.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/plaintextsearch_test.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/range_test.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/range_test.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/regexpsearch_test.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/regexpsearch_test.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/revision_test.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/revision_test.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/script_test_base.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/script_test_base.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/scriptdocument_test.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/scriptdocument_test.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/scripttester_test.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/scripttester_test.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/searchbar_test.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/searchbar_test.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/swapfiletest.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/swapfiletest.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/templatehandler_test.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/templatehandler_test.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/test.uc create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/testutils.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/testutils.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/undomanager_test.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/undomanager_test.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/variable_test.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/variable_test.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/CMakeLists.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/base.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/base.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/completion.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/completion.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/emulatedcommandbar.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/emulatedcommandbar.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/emulatedcommandbarsetupandteardown.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/emulatedcommandbarsetupandteardown.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/fakecodecompletiontestmodel.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/fakecodecompletiontestmodel.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/hlsearch.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/hlsearch.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/keys.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/keys.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/modes.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/modes.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/view.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/view.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/wordcompletiontest.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/autotests/src/wordcompletiontest.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/cmake/FindEditorConfig.cmake create mode 100644 local/recipes/kde/kf6-ktexteditor/source/config.h.cmake create mode 100644 local/recipes/kde/kf6-ktexteditor/source/docs/apidocs-groups.qdoc create mode 100644 local/recipes/kde/kf6-ktexteditor/source/docs/coding-guidelines.qdoc create mode 100644 local/recipes/kde/kf6-ktexteditor/source/docs/design.qdoc create mode 100644 local/recipes/kde/kf6-ktexteditor/source/docs/pics/inlinenote.png create mode 100644 local/recipes/kde/kf6-ktexteditor/source/docs/pics/ktexteditorhierarchy.png create mode 100644 local/recipes/kde/kf6-ktexteditor/source/docs/pics/texthint.png create mode 100644 local/recipes/kde/kf6-ktexteditor/source/docs/plugin_hosting.qdoc create mode 100644 local/recipes/kde/kf6-ktexteditor/source/docs/porting.qdoc create mode 100644 local/recipes/kde/kf6-ktexteditor/source/docs/porting_kf6.md create mode 100644 local/recipes/kde/kf6-ktexteditor/source/metainfo.yaml create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/af/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/ar/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/ast/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/az/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/be/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/bg/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/bn/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/br/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/bs/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/ca/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/ca@valencia/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/cs/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/cy/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/da/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/de/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/el/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/en_GB/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/eo/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/es/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/et/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/eu/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/fa/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/fi/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/fr/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/fy/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/ga/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/gl/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/gu/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/he/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/hi/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/hr/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/hsb/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/hu/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/ia/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/id/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/is/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/it/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/ja/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/ka/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/kk/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/km/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/ko/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/ku/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/lb/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/lo/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/lt/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/lv/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/mai/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/mk/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/ml/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/mr/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/ms/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/nb/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/nds/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/ne/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/nl/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/nn/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/oc/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/pa/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/pl/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/pt/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/pt_BR/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/ro/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/ru/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/sa/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/se/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/si/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/sk/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/sl/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/sq/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/sr/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/sr@ijekavian/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/sr@ijekavianlatin/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/sr@latin/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/sv/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/ta/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/tg/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/th/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/tr/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/ug/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/uk/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/uz/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/uz@cyrillic/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/vi/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/wa/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/xh/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/zh_CN/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/po/zh_TW/ktexteditor6.po create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/CMakeLists.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/Messages.sh create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/README.md create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/TODO create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/buffer/katesecuretextbuffer.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/buffer/katesecuretextbuffer_p.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/buffer/katetextblock.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/buffer/katetextblock.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/buffer/katetextbuffer.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/buffer/katetextbuffer.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/buffer/katetextcursor.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/buffer/katetextcursor.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/buffer/katetextfolding.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/buffer/katetextfolding.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/buffer/katetexthistory.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/buffer/katetexthistory.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/buffer/katetextline.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/buffer/katetextline.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/buffer/katetextloader.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/buffer/katetextrange.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/buffer/katetextrange.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/buffer/org.kde.ktexteditor6.katetextbuffer.actions create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/completion/documentation_tip.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/completion/documentation_tip.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/completion/expandingtree/expandingwidgetmodel.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/completion/expandingtree/expandingwidgetmodel.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/completion/kateargumenthintmodel.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/completion/kateargumenthintmodel.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/completion/kateargumenthinttree.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/completion/kateargumenthinttree.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/completion/katecompletiondelegate.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/completion/katecompletiondelegate.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/completion/katecompletionmodel.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/completion/katecompletionmodel.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/completion/katecompletiontree.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/completion/katecompletiontree.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/completion/katecompletionwidget.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/completion/katecompletionwidget.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/completion/katekeywordcompletion.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/completion/katekeywordcompletion.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/completion/katemodelinecompletion.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/completion/katemodelinecompletion.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/completion/katewordcompletion.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/completion/katewordcompletion.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/data/kate.svg create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/data/katemoderc create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/data/katepart5ui.rc create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/data/ktexteditor.qrc create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/dialogs/bordersappearanceconfigwidget.ui create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/dialogs/clipboardhistorydialog.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/dialogs/clipboardhistorydialog.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/dialogs/completionconfigtab.ui create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/dialogs/editconfigwidget.ui create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/dialogs/filetypeconfigwidget.ui create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/dialogs/indentationconfigwidget.ui create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/dialogs/kateconfigpage.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/dialogs/kateconfigpage.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/dialogs/katedialogs.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/dialogs/katedialogs.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/dialogs/navigationconfigwidget.ui create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/dialogs/opensaveconfigadvwidget.ui create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/dialogs/opensaveconfigwidget.ui create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/dialogs/spellcheckconfigwidget.ui create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/dialogs/statusbarconfigwidget.ui create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/dialogs/textareaappearanceconfigwidget.ui create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/document/editorconfig.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/document/editorconfig.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/document/katebuffer.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/document/katebuffer.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/document/katedocument.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/document/katedocument.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/draft/foldinginterface.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/export/abstractexporter.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/export/exporter.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/export/exporter.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/export/htmlexporter.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/export/htmlexporter.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/include/CMakeLists.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/include/ktexteditor/abstractannotationitemdelegate.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/include/ktexteditor/annotationinterface.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/include/ktexteditor/application.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/include/ktexteditor/attribute.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/include/ktexteditor/codecompletionmodel.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/include/ktexteditor/codecompletionmodelcontrollerinterface.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/include/ktexteditor/command.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/include/ktexteditor/configpage.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/include/ktexteditor/cursor.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/include/ktexteditor/document.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/include/ktexteditor/documentcursor.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/include/ktexteditor/editor.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/include/ktexteditor/inlinenote.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/include/ktexteditor/inlinenoteprovider.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/include/ktexteditor/linerange.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/include/ktexteditor/mainwindow.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/include/ktexteditor/message.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/include/ktexteditor/movingcursor.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/include/ktexteditor/movingrange.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/include/ktexteditor/movingrangefeedback.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/include/ktexteditor/plugin.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/include/ktexteditor/range.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/include/ktexteditor/sessionconfiginterface.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/include/ktexteditor/texthintinterface.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/include/ktexteditor/view.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/inputmode/kateabstractinputmode.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/inputmode/kateabstractinputmode.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/inputmode/kateabstractinputmodefactory.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/inputmode/kateabstractinputmodefactory.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/inputmode/katenormalinputmode.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/inputmode/katenormalinputmode.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/inputmode/katenormalinputmodefactory.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/inputmode/katenormalinputmodefactory.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/inputmode/kateviinputmode.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/inputmode/kateviinputmode.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/inputmode/kateviinputmodefactory.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/inputmode/kateviinputmodefactory.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/ktexteditor-index.qdoc create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/ktexteditor.qdoc create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/ktexteditor.qdocconf create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/mode/katemodeconfigpage.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/mode/katemodeconfigpage.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/mode/katemodemanager.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/mode/katemodemanager.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/mode/katemodemenu.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/mode/katemodemenu.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/mode/katemodemenulist.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/mode/katemodemenulist.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/part/CMakeLists.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/part/katepart.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/part/katepart.json.in create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/printing/kateprinter.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/printing/kateprinter.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/printing/printconfigwidgets.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/printing/printconfigwidgets.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/printing/printpainter.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/printing/printpainter.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/render/katelayoutcache.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/render/katelayoutcache.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/render/katelinelayout.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/render/katelinelayout.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/render/katerenderer.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/render/katerenderer.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/render/katerenderrange.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/render/katerenderrange.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/render/katetextlayout.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/render/katetextlayout.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/CMakeLists.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/commands/emmet.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/commands/jumpMatchingIndent.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/commands/navigation.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/commands/utils.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/indentation/ada.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/indentation/cmake.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/indentation/cppstyle.README.md create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/indentation/cppstyle.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/indentation/cstyle.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/indentation/haskell.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/indentation/julia.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/indentation/latex.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/indentation/lilypond.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/indentation/lisp.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/indentation/pascal.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/indentation/python.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/indentation/r.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/indentation/replicode.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/indentation/ruby.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/indentation/xml.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/indentation_template.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/libraries/cmake_indenter_config.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/libraries/cursor.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/libraries/documentcursor.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/libraries/emmet/editor_interface.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/libraries/emmet/lib.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/libraries/range.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/libraries/string.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/libraries/underscore.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/libraries/utils.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/data/test_selectioniface.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/katecommandlinescript.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/katecommandlinescript.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/kateindentscript.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/kateindentscript.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/katescript.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/katescript.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/katescriptaction.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/katescriptaction.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/katescriptdocument.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/katescriptdocument.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/katescripteditor.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/katescripteditor.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/katescripthelpers.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/katescripthelpers.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/katescriptmanager.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/katescriptmanager.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/katescriptview.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/katescriptview.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/scriptcursor.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/script/scriptrange.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/scripttester/README.md create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/scripttester/ktexteditorscripttester.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/scripttester/ktexteditorscripttester.qrc create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/scripttester/scripttester.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/scripttester/scripttester_p.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/scripttester/testframework.js create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/search/katematch.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/search/katematch.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/search/kateplaintextsearch.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/search/kateplaintextsearch.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/search/kateregexpsearch.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/search/kateregexpsearch.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/search/katesearchbar.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/search/katesearchbar.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/search/searchbarincremental.ui create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/search/searchbarpower.ui create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/spellcheck/ontheflycheck.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/spellcheck/ontheflycheck.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/spellcheck/prefixstore.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/spellcheck/prefixstore.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/spellcheck/spellcheck.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/spellcheck/spellcheck.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/spellcheck/spellcheckbar.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/spellcheck/spellcheckbar.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/spellcheck/spellcheckbar.ui create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/spellcheck/spellcheckdialog.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/spellcheck/spellcheckdialog.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/spellcheck/spellingmenu.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/spellcheck/spellingmenu.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/swapfile/kateswapdiffcreator.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/swapfile/kateswapdiffcreator.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/swapfile/kateswapfile.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/swapfile/kateswapfile.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/syntax/katecategorydrawer.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/syntax/katecategorydrawer.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/syntax/katecolortreewidget.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/syntax/katecolortreewidget.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/syntax/kateextendedattribute.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/syntax/katehighlight.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/syntax/katehighlight.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/syntax/katehighlightingcmds.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/syntax/katehighlightingcmds.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/syntax/katehighlightmenu.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/syntax/katehighlightmenu.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/syntax/katestyletreewidget.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/syntax/katestyletreewidget.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/syntax/katesyntaxmanager.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/syntax/katesyntaxmanager.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/syntax/katethemeconfig.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/syntax/katethemeconfig.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/undo/kateundo.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/undo/kateundo.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/undo/kateundomanager.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/undo/kateundomanager.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/application.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/attribute.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/codecompletionmodel.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/codecompletionmodelcontrollerinterface.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/document.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/documentcursor.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/kateautoindent.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/kateautoindent.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/katebookmarks.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/katebookmarks.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/katecmd.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/katecmd.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/katecmds.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/katecmds.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/katecommandrangeexpressionparser.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/katecommandrangeexpressionparser.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/kateconfig.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/kateconfig.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/kateglobal.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/kateglobal.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/kateindentdetecter.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/kateindentdetecter.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/katesedcmd.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/katesedcmd.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/katetemplatehandler.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/katetemplatehandler.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/katevariableexpansionhelpers.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/katevariableexpansionhelpers.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/katevariableexpansionmanager.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/katevariableexpansionmanager.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/ktexteditor.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/mainwindow.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/messageinterface.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/movingapi.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/range.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/variable.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/utils/variable.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/variableeditor/variableeditor.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/variableeditor/variableeditor.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/variableeditor/variableitem.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/variableeditor/variableitem.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/variableeditor/variablelineedit.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/variableeditor/variablelineedit.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/variableeditor/variablelistview.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/variableeditor/variablelistview.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/view/inlinenotedata.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/view/kateanimation.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/view/kateanimation.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/view/kateannotationitemdelegate.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/view/kateannotationitemdelegate.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/view/katefadeeffect.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/view/katefadeeffect.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/view/katemessagewidget.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/view/katemessagewidget.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/view/katestatusbar.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/view/katestatusbar.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/view/katetextanimation.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/view/katetextanimation.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/view/katetextpreview.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/view/katetextpreview.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/view/kateview.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/view/kateview.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/view/kateviewaccessible.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/view/kateviewhelpers.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/view/kateviewhelpers.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/view/kateviewinternal.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/view/kateviewinternal.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/view/screenshotdialog.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/view/screenshotdialog.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/view/wordcounter.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/view/wordcounter.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/appcommands.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/appcommands.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/cmds.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/cmds.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/command.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/command.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/commandrangeexpressionparser.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/commandrangeexpressionparser.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/completion.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/completion.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/completionrecorder.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/completionrecorder.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/completionreplayer.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/completionreplayer.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/config/configtab.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/config/configtab.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/config/configwidget.ui create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/definitions.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/emulatedcommandbar/activemode.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/emulatedcommandbar/activemode.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/emulatedcommandbar/commandmode.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/emulatedcommandbar/commandmode.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/emulatedcommandbar/completer.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/emulatedcommandbar/completer.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/emulatedcommandbar/emulatedcommandbar.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/emulatedcommandbar/emulatedcommandbar.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/emulatedcommandbar/interactivesedreplacemode.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/emulatedcommandbar/interactivesedreplacemode.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/emulatedcommandbar/matchhighlighter.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/emulatedcommandbar/matchhighlighter.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/emulatedcommandbar/searchmode.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/emulatedcommandbar/searchmode.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/globalstate.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/globalstate.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/history.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/history.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/inputmodemanager.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/inputmodemanager.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/jumps.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/jumps.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/keyevent.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/keyevent.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/keymapper.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/keymapper.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/keyparser.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/keyparser.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/lastchangerecorder.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/lastchangerecorder.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/macrorecorder.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/macrorecorder.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/macros.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/macros.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/mappings.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/mappings.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/marks.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/marks.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/modes/insertvimode.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/modes/insertvimode.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/modes/modebase.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/modes/modebase.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/modes/normalvimode.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/modes/normalvimode.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/modes/replacevimode.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/modes/replacevimode.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/modes/visualvimode.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/modes/visualvimode.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/motion.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/motion.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/range.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/range.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/registers.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/registers.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/searcher.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/src/vimode/searcher.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/templates/.clang-format create mode 100644 local/recipes/kde/kf6-ktexteditor/source/templates/CMakeLists.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/templates/ktexteditor6-plugin/CMakeLists.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/templates/ktexteditor6-plugin/LICENSES/LGPL-2.0-or-later.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/templates/ktexteditor6-plugin/README.md create mode 100644 local/recipes/kde/kf6-ktexteditor/source/templates/ktexteditor6-plugin/ktexteditor6-plugin.kdevtemplate create mode 100644 local/recipes/kde/kf6-ktexteditor/source/templates/ktexteditor6-plugin/ktexteditor6-plugin.png create mode 100644 local/recipes/kde/kf6-ktexteditor/source/templates/ktexteditor6-plugin/src/%{APPNAMELC}.json create mode 100644 local/recipes/kde/kf6-ktexteditor/source/templates/ktexteditor6-plugin/src/%{APPNAMELC}plugin.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/templates/ktexteditor6-plugin/src/%{APPNAMELC}plugin.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/templates/ktexteditor6-plugin/src/%{APPNAMELC}view.cpp create mode 100644 local/recipes/kde/kf6-ktexteditor/source/templates/ktexteditor6-plugin/src/%{APPNAMELC}view.h create mode 100644 local/recipes/kde/kf6-ktexteditor/source/templates/ktexteditor6-plugin/src/CMakeLists.txt create mode 100644 local/recipes/kde/kf6-ktexteditor/source/templates/ktexteditor6-plugin/src/Messages.sh diff --git a/local/recipes/kde/kf6-ktexteditor/recipe.toml b/local/recipes/kde/kf6-ktexteditor/recipe.toml index ba08c85947..c5559e1982 100644 --- a/local/recipes/kde/kf6-ktexteditor/recipe.toml +++ b/local/recipes/kde/kf6-ktexteditor/recipe.toml @@ -4,8 +4,13 @@ version = "6.28" #TODO: KTextEditor — KDE text editor component (KParts-based). Wraps katepart. [source] -tar = "https://download.kde.org/stable/frameworks/6.28/ktexteditor-6.28.0.tar.xz" -blake3 = "02213a950e80a6ae0b11b9fd40c0109617ced4772eee95ac106bf20c39d3277a" +# Vendored local fork (full-fork model): builds from the committed source/ +# tree (offline, reproducible). source/ = pristine upstream + the patches below +# BAKED IN. .patch files kept tracked so a version bump can re-apply them via +# sync-recipe-source.sh. +# upstream: https://download.kde.org/stable/frameworks/6.28/ktexteditor-6.28.0.tar.xz +# blake3: 02213a950e80a6ae0b11b9fd40c0109617ced4772eee95ac106bf20c39d3277a +path = "source" [build] template = "custom" diff --git a/local/recipes/kde/kf6-ktexteditor/source.tar b/local/recipes/kde/kf6-ktexteditor/source.tar new file mode 100644 index 0000000000000000000000000000000000000000..edd210997b8507b2544863132ce06be680d593f1 GIT binary patch literal 2975420 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

uTA`-QBl^MWP(j^6=60y$SRvz>SN2`o3u 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�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


R5hX$YoEDOktcijool3<~utu`E@(T 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 z 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

1*>LPnT56GzIVKwVwRL-Gj!K*zcH%l1 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

^Sxh=Gr$%@@9Ea&I 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

_ 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�niHnN|lw1@e>8w0`5lE^$P-)NvzYn>Z;` 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

;NMVk0t?o)Y@3(oPe= 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%0AZ$-Zi_8=w81q<+43hqK^@2sd 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Ν>OC7y34q-j{n}Lac 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

d1 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%0ARCl3E#oBhM3G-&;iARS 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�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%0DKAN(|w^S@+2 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�?oM*-lxrKmZU1e~r%)#N-!Hw#ia$LegN>+zg!b0K zMr}m|TqjztrW?K=Aj6OYpScbHe&w3lzcv$0w%&F&tWuBPtIgjm;pz+)FTnvJxOO%b zq}0uRS~sks&=YM(roBH8!!{|_Mj`_d?=td`%$@1*C{Xxc|AY%)PBd^C`#cm7#WqD6 z+4K7_c4vX0%O=tc&69GTGppmiOvy6Hyw?VO&2u(+>4*>APA%uPi!>Vp$Ix5rhY~+) zvf3Iz0h>*c2k9n!ENJo}@h&|MvjNJ+Gu_+O{d8eqb`dbGa`8$FwBqX{jD12T6$$3r z_SH!%hSemf;jyJ@dmO&}91Z~vof;5ON0LCEn1oTy+^7tc{v~T+@61h<%)?McWqVki zxqlaBg+(X@s8EnWg9iN;v@@*#sGKdZX89eMb#1vG@HR%MBKz?Kfl3woI%)EC1Cd(x zj-PX!F&&L^4oXs)UN^pAyLMOq2+WN8Cpa2r1p5E{V zqnATiPz%f>R8>~a9Xvk`_+tR-rv%CW5RYB&?e2zM@40Rc>LHb|Zxu6ui2v5;TXGi_ zfgE`r2{YSga)*9I)qTcx;z&tX@m=z+8sRDYwBpMJJZ4r#dQzJ?gxvLO++c_AyS9Xa zq#E6Iq0YDS#fgJkJ`MU{&^N|drPqGjOgP6G6nPL-GK)1Bt6)eu zYDFpu*-mLC%u&>ve zSY*CqJ?9Lz;Id!$YoDoowzBey45EZOQ#aV$iMrx%{WML}#XFg}3S|+^_{f1ue>#Jo z;*a?Ym5r|O&pGZJ{*)@FO`M_7&J$ieEt`BL6BDqKFpG)fmiEgpWw)jke)14mmakMW zR`K%!Jts?4Z}0Qwxp`PDp}?UvQ0N~9JqWLKpFAFP_DN!mt5m+2X{HHlDFmk9?YPy_+Y(NA(3B3rhkzSrVFWEq}XB+ z-2(}kB)QfMGdClNnVG@C9?wTg1(SsO66L5enh-|qJP11nF8ATuzgy1!3*L(68zS*VJ?xPN~ z*$^35tuTpelYB5M_872b2#_C1Ez0NrP6m>=ANU|rdoim?H~m$W>+R9*<>h#`c&c^r z2+9h&QcYoFrm!>&492Fb@JEg~VTF;p+PGLHhISirla6bsiRD2l(BuY7>1Z#qsSNfj z<>-cNbs}U(4a)n0D1#nWu@NGk0?U4TRJdHe!Qf4P8&nc1?J7dME5s? zb3YA*_uT0@R5W&&MR**M%y`Oq3U(!`yl!lg&P9jSqRQ|OOldi~zE*~w`4*{}IU4ax zxOXRULvU0befQED0Dx0>J#(ng%^14Xy-@$j-(n}R(c;i+V#ENxDV1W3r$*W}) zK>AX``5b-v*pk@Dm_f~KNzM0e2|6%Q^}yai97_@P48*6TLOU<3y*K~i`WUeY5X!jn zX}*84IhW&n&bq2644uCIWPvrV&DD}s1AGkuA*s*A?>&C8xQv<9X0ME!dKBCL-_dnC zI))q&J8ij$UQ=)ocPm8|iVBb7NbovN<<@kwIk`0l)y*~7CvDNG zeSLEV1a>J8J6#$6RvAG-LRD!!6UMXt4z}JT%9nMEBF8KMH}r&m$P4F0fZY!9-LL=n z^$C|5V^+ZK`cNDQRV2-X#uLk2B#o(;#MAq3$sX=qPDQI_H#5{3-(hSRzmFAWvFpU* z9Suxi`vA=aAM;xBQh$J~R;iuNVX6fk8p>hD4iq9K+#is&swt!3yE zEM`N;VkpP;;v!crve4OpkcLDKTU1fLTVik=jy_dbL{zh^GbH_@bYBy29TtA8snsw+ zmWd|s@?Yexee1V&bNs0K)9H3J7kH-24g;UtQ6fV+UzUO#Rdd{f$3mZaVK8fdF5%9{iy8W+6D=U(q4>+ICN`y_%TrA9TFnmoOWFqge99>4a(2Z5Vnl6)=`@4ln(hN0WekB{9FKT;!w`roD5|8|II{<|MmZ z_35ttL`&m+bCq#EjPQXoZ*Gix31n<)coDP}OU*(t}#VZKsQ-JCl;R(q=;Wt%P1-7reNw-X% zzd~tGqgIKU;eX~3dG>ptAQIg;ared=99#PGq4aX96qb`ikbP6Yq7YyGj3ZiKkJIP?4530IewrC=c5o~q#r?faGJhnZnbX8=*R}!#Qzmd~fZ}t%; z(*Jj$3lCEA{ZNyu8m1HF-U&R!QQ<$H<@9eb$;=tRY9>bQ>THHVjSEV_nZf7ts`$4d zkYh7|%PaD}Ei`paOk=~a>x(=<4oWUqbt6d;}wsbEjSWT{nNQrK)9ma`F@WTPY z>H(brS<+5va*$B%*Xa?dZ&PibrkIQqJsUfCns=S>%f@Ek^}1vbfB+P-0G)jd-)D+6 zAI{fIJE*Fm=1tNvjU**B!_o57kaIyyws*!T{s3F>e;Qwuf4~OU0M%)@ru$`wW*}`T zGF;u9vHoQPx>4?V7;F{vBH__%Xg|TLg`4l%nlRV!+W7Z1&B_YQnGJOaRz3JwW}Ss8)vLk&!d+-v^uM0fJv?*|Q- zc%aV}u88P%&|INzxm|@n$|H`;yFHFYpWYIah$m$`VM@TIw0!L{Jf#wHjVHg!>aR(9 zAm6~S@gotCYGP^`+($e3W#cF5U;UyFPcxb0t^1I{iVP*aZK98C@Wxay5WlI7UqGX= zycd>!LTWF+ce?n(VY_5Y(Z%!|NH`d(QB+LJ>4d4t-FvUs zVdUs;Sl&9&`K)rnWXe|61%ZBcV~FlMP4wt#7l+xNqHE;oND_Re3r)Aw<>0tt>>Rq12~QVM>by_^!O zm>4QS5;!=I0)n3z!^fyYp5MCCKl&w4#;kMG6?Ov8?Z5tT{&<6>@89g~R+Hdx^!l9a zno-O$^hduNpjQMh+8aQCOpD-YWm_zqbY<8B$edO@`z6AsJ7WZ}2ZKm=+7A*H8#$v8 z{zYUyOqZ+dj-t;AIsueSXD1OXHIXsclZF#|_rhrlF2WF`$i?`CXVkdRtDRndy*Qwh=zgkDwi>{h^&SW+fZBK@%AU?Dd{eEk1-u9 z(l4_6508U2|8k|0mpT8|{15&YNsip{o2;ssc==`JVruvzV1sv_dp7~W z25p*;BKnEs*a%u-c@=D=pbucjr>H2|H8yaz9_;ku<74H>V+L-l*dh|nlFbn)h2Tz- zaIBgB5R`7$o>|R7)9sS`=*1HpxPU`VB^$tyG8BA~T=i*yNU2Y^Ll4gvLI*u6jS!DiIrfvCmr&bfeG>@7MG(V3YD^6xhl2pwd$DWcbccEfIrsj3S7AUCkV}UtI=?Uo^d|$=*WCo^yCWN*05W8* zkbUqhMN&_U6cz-xwrqkJe4V6dOe`4vb`-?lh2$pTs##HaDo3@k;qbCJ0@S%ibEbA_ z0eCWhCYM}+I3kwjSTg8=GT%uwHsIZd_fW{@y-hXrpdf;d7Zbg_osdQWv9yo%|TfrN%BE%S2b1}-0R0; zK`GrXHQ*xQN1<1$9HuQz*`e@24Js862*8aD%Dl8ay6QK^0W+>pP#3qnnw1}^sM675 zO14pDz;1O=e5X$dd5GLexPuIQf2wi@i)NvH1oEUWZCsRtadN3J>J@C`vZyYy;?HG4 z>Osy0|C>QU+OwDkD}Cn^4$e8Yw2xJIeAW}pmxzItrgO9Mr-t~p2V}^X@FF$9F-`C8 zX&b*$`(=RJ!A%ie5|D(R*7w0zhBlIqzJ-zvLUmcaRS! zuHehWBy(9;B{bM9l%iy-rkYSG7VA!-;?!uZx$Hc0*RL?Bgcz1GlPYl=Fgv@{qBY$4 zWPFP;(1)cYV5!y+!`5fpB-c2*QUR#Ax~5;f<%ve{_X#L;e_pakY|_>R@=C7p#U zMwqeaQ?6zK2R~83f zMNQ(IrZXm=!r0(UGd?*chGiAqcQtOrSC^h0l~>O#_PU|qMGgQig4IOD)uXK@z!d-`_jgof0bfP>&JbBHjlj_ zk>NV;(8*~m!ph0|b275Elyu(8C>C_!4}=nnln~3J%DTT2#9y{esW< zb#A2M<2zBUz*zkX@jW6b{ah`+H2uBBwz%E1aKzbMG!#wuZ-&MqzJdi58FZzD`WQru4sBInw9hZ+!bfA$@}yg-hz!e;(E1O!ZnZjFe2NItc+{t&KRURh z;M@I_kNlET-U#R7UY4IBdAo@9z;V#5K5E2M0C;iK$Sy^juOL&~IW6Dhx06|uz!a=H z!=TaK#2UJKT;CB$x<_KB0s2z0rf??;YeNYaW%))JTAm*GUx?u)%gTj;#E-Q=oC*iC z2;2qwWf0G>fL1%Zl&J7wPmZl!KubE{_wUOOa-gqmy_Y@_uuxoPFj9}yU;z*a4ikPs z)hr;-EWWcy{ph4~m3>QK5DZI`#*FSB-@6Q1Nrk}e(uyq1qinj5ND46;` zHgpK-7u-?_glB1GIZX64;((?G9Wm`Uma%K(ymW3H#wSG^hb{s-GcyTa6rfUlCTFb# z$RP9f+JAU3DPA|@QKH$e#A7?}7qEZf$Zf)r>+|!A$?GivZSss)R~Bo=-bWGwciF>34@*Ns%mu7o-L3DqjH9$-J~{(6 zmz?(6jIbFRmR{t!akW%u-twz71Xarv`8NX z@*j%-kpS+64MC_t%4{~)Z9!z5WMdyjQcEaRfhKdI&z%tQZ&!4&rBqkYZ_zm1Sf|?a z)(=7V5a>282>$1}!qR<&$oN`RMvFZLzgo^}c7-ta3N~`6c-5at5W)tpA#iWo135?N zCbP=adN|;wd51Z+s5mlotOpt5pal~_MNRD3Z9v)_VBm{+wPb)5NjSof8c6!(;$(`O zFA1tH-=Ogk4@*0f3wJOErozw4XJ^^y<&fzoTgq8WqPw|83iyr=8Q$H5!C1}lqpiZ( z$uanM{&L7rl@WT8myWmut?ed*?n&oD;@W2VzRE4@d-_Bb1zlldm%S3w;Ua4}u@_zK z$|*+(sc7fk4hm!~2Z{BfD|lz7>p!ECuPopAD5IKXNatfG=BeB&80fCuHsiEM>#$&k{byy_DmHSTVk}FaDe_y#`QKdIS?vI`1g) zFTuiL`eo!W?T0EjF&E{3W)+Ix0%5N9Ei2mxo=ZzPxbL+XzA}?W`8a(>HXvr>N&HJ4 z==c^md(df=4eKlXaFnpN8Kw}>e|8(r6?c(38r^>k(V1w-Oh-E&aqyBmi9+&GmUF_1 zB+%Z1xsFZ}d%ju3jh1fKwl|;6a)&?rAU}{{V%_W4Ethe`Fjr;Lm6Ca-&dgEBv%IBU zMs4c=Rf;n-HWN}x;MYcIxs zZY=h;#=p0Ffy4YzQA+8vsHHgQ1QHZlz&gc52WE4PRCl*u9@Ru`l4l4(2=Tj+Sb2jJ zEff@4&Y}y)Dv95^N?;IGQ#bTE+_C4Q+WcIvA_ukjE3vuTk3F)*HBTgCzoDKxvO|FpVcYK$2#cJA~Db7fv>bg)waaMH=Q^3J>w(E*vm2I&r*Ddw&G>CuE? z^{dKzpGQJ=H*m>XoLh;6$iW#- z6qsfX(&o=X?CMFWqrbNgkbe^RZ|~MC@1=YDGjo%1{vr&VyYpo>T&NI>bG=Q?CK%j5 zuc|^;z6!$5WOYqUP^bICAKH&CB7(fuY7b?^-mYtU8}A@b`LGU1a)_PoCVIh_M{J9^ zgUTs^@dXhmEufjoiGYF&ZG^$(OnIpT42=sE)MSyjH9~g3Rjz!a)}TI|H3KNL_G1Kk zcstS4&5(9au=*c&Tkcn{aVxQdJJ``lGVO}pZY^e>dS`%Aysf%Y6p>tp;Vm`Ldcd>& z@!wDiW%oq~mwSRstn)%=R70G-9FSq`k$OeB^X{;ABZZMC+=UUGxV`s?gzF9YgN&Xf zp{e61N_}J>#_(l}nKD1uwi2zWxi&z}@A%6Nc+ zb&JnSk2*|tH}$rX+|t$ydJ`;G0iF*aQok{~U%{PrLK6rV3=c{F;~S9gQ#qn5!0~td zJAkWE(L>}SpFfyoU5~fe^O`fM{!%e<5sRHjx6#!$eU6~sJT(%8h^g_a`$6*RjnI+1#wa{kz8VsOFaUC3(_R8E| zAX~_wjTfwPI>{wHoplM%-l)ylR{AQNnuz-K6Fkl1aDE@UR|DijeVHCu~M{nNT*LY+=K+v4pV<+sUW5o>@ zWIP2O*;)!@sM(!m<8Za)cmE`ghfbHbt0jWMr@&RmPtQ7T_oydY6XxSk83;8*O6ud$ zXa!vyk2XgMxMh^+N9tbOip>Xxllb9>d|DzmZ*W(;0gc0cwBl0#Se7(%a>>G|+?QPq@>vB8f5Q_m%{Qh$j&g9>DP~RH6x$m!P3q2Yo;Z{sy03=g zN@<`h09};gG5;uDXf<3L(8>&Wa=6G?^vCU~At*dWdMjh6~@LAiU{*4%c=8=p( zT1dH#V}{1nKq34xAFe624uawPT!W+FaBY)k4%nZcU5W5GPd1+8860=;~NEQGdrG@=$(eCq|b3P9l3 z0E3JfElkE8`T(np5f!Fr53HspgIJ}*xq&3FYdBYV_`<3v%~vUUVP# zYD4gH?2v7zT@4%;-l$urp1zi&N?<6;tUpL)@h#b;vDKcQXdFxIu>N5Ptb#Aol}7JY z5j?qZrDQ|qX%SNlxH4OT09|k=;=7yQ_>{kXK91-w9y8l$y!M2eM#9*x&jINWKPcI%$qh8pb)kC$2sVSz17nPfOdr>7!pL!&O6_q`HkQ@ zHGwd1W)+TaOvvp*3n)WyU3eQT3KibFFO{QVfcPN%l@lKbr# z_~$hXl~1w(82h3EP{8PUXy=~NF;I9&0+qK?=gau>|Fp^qA{wZ7c({><{i9oGT^b1)X0!S)Ef2)$FU~42zh^fan@Kn~?ZXE!^+P z7wq`4b6BWU*#8w4Ne9XpMaF4ahV*P{T>sd$bKzjg<~K!p&-o2B=n7fo7#;Z?-N*Xx zZ{Cw;*h-^F=58@2xsBEvw{Mf_AWnl#LJ=aCWUW=)dQ+xkt&|2HWe?w27!hU^18XG0 zTyX0&O(&+HT7e1a8U1yQE}M4$HkQu(5}ve{rg0ODw@IR$&U9$R>&;SW37q?lf0fkbWR$K}XC|TqlvTxHw{+Q^^`iI)zGqKHY zk);chSw9u@sDZHE&}*}8Jz<46cw?;m+et~|4x|JjWpy1e( zncA9HOzw@aK%bu#+OlKj`P#;{DVog1yX7!}6^O|kIK2flI_fJ9t2&bKy0L^(TtQTn z|BD5yd?5qlmQ;gfmon1bE=eIrffX-~x#PSJ?N^9ZZNAA6`!+ zH0A1c%g`D`ZHh>F;JN~n9qW~2_Q=Bq(NZ-$^1BuGK;KvX&#qSOC-f@R@%B0?;KY}Z zoZlP2x+9&YpNDOB`QnO|C3b|NY#l`kxvv#$S*soYZYoWaNY~Y)9W63(z+YKcsogWMXjGik z*ChUy+0v@=%p>BFzQQ}9;Km)4@*vQliM>{klNxs=O6t$KAlLaDL`)>uWWk6?gIw+Z z!R{IHQsgb>dI2I&o-2Ecb~!JDKpE8jl4#VlTK-As)smQH$iL*SC}_cpgBArr9+1&@UHoe zGCz}HGTFJA-hz11&prQqG$n9w8_B%n#LAl5smsCrD2?J+zc>)>)sJ#wCmg4ZU0)DK zM1z3@QOf^&;l|6FTKIoH;naV@c;4v-%<%naQ29kfKuQ)80%>bP6SZ68#WgA`os7;B6f= z$V-smdLFxw_s9#|*fCC1$PSUc{g|=thol%b6Qd#GhdJE~D5wq#wSs6BC>6eJiCVZL zQMWhOaoUkJPczYz|G@}zV9T+8K3z?~54Y2?aIhD{MFKY}(v+MJxLO%N@0}D=pW~=t$H`icpYpzb9Pv9*7uZPH%IE$?vtt31$u4g!x zwXL$?X|Vp1Z*tkm0`?VVHQ%>xCnyInxTmMNj2y3HI#iD@MylG?%y5g2{c5F=V5wqx z>8MKBS?jw#K2!Tm5N2}MOK?lAPi}C_wo5%Rm>y?Y=o;|C^C_oIU>g2cPw-}__M{?p z|2#h=JD0u`T@H-6ld`n}I!oUb2e5xSvF+UsZs%GgqWb+n$%{VP?(J-`V+1pwR_t&NL5H|JMn}E!r=6tUlF$X<|Ej2gxa8H78Nqm z@@ozxx&M>63K_C-FIC80xfB2P>ExQ5r#03nE)M}((`h{~>pV>m&tTA;wxYbpQ*lft zfQ_>x>!OLK-Wv@RHm;i1B#xJ(6|wk@l~(S>pMM9#KQQ%ZPk6nQnPt3;Fay^%uxfK3 z%E9BWvM!kws%m!TmMO3ZaITRN_sH36eEI$D!DKf)W*v>|2rqv9Y>`_<>CPRShHwCz zFu3Hr092c7FUO(N-w9%iSEuT-F2}Bv{&3(^cz~K@Jk1C)Uv*zZB#0V8rZ$van}>zl zdVE=yBkFfi)P;c6HJN>~=tfdGqCeU2cTzcp-Xm0Pqm)7q;!Y|yEP(xuX5sb0)tYfS zYn+>jLb0oY%skLh!LmaD&l|LgEYBSY7XrD^Q^fYnc}(y6}x)6@@cdKYK||guewTK4&do-~@ZY}m66Vy>jdQuNQPB~IOr6! zH&pqNzh^Z&Jo=`zNWFGB$?-8ASTnFv^(dKW+<4Y{VfFWaEfI#-^Cbp|`I3rN>}?SRByK_^gn8 z{P!5PM2^?-m}ggwr~QxUo@?m4*rrMnf{NkJ(%9e3C@t2!rSr~L^$eK{$(-$DlP?t% z*^$$lQBhHFu{UbJNbRa zx72D}mXW~Qph&!TbCvjU7(0P^Zi_gnIQ+twCDm4au#Nm`g4qfY4z?44YUNAS?*^97 z?3&wx!2YLiuwXo%6e{)$Ayw=--?YtT8^DX8o-!xm96%aVRHqbR!J6O&RY)-)8~AGk zTxaiz3QX?amLN&fAqPQ$)cy;9gL*-j)|Lo^u4QYo%_lg}lf^I6fi45DY1IB|&CCbHgO?ngCy-s;_5Fr^ z+;_H8r0aAGCCXM7$Wrukd=i3nMc{Z!C)bj_z&GFDoE8FsI{7HFLF>P?AYV~%pSCVnd#0A)+6@vE0O_-d815K3fm%p@nIVx{A;9+n;LXoQc$ z0?s^5ey)PmLjbHR1A(V#=NrQn4M@WvkolG<}+gRTiIV*KVb7R3`Jm_F;3H?g;e zCKaQ|E6-i1+p3(-=^%*4gW00~vc50eL?%X@8#su;9sY8JLR0tHqz@2)U`C>&OfyTI z-C4u2r%Eyr#>$`&#Uh*JvF?xMkCFSp@{u-cCQ8^}8o&NG_`%^2v5?X(F@<*cYnee- zP7v!3l^t<{r9ePFr!Fys54%!Z$Z3aX38v!a^MHcm=ht+faH*enr#RKZqFJ&uh!9e( zzGs1#(<)1x7UphW$X~keR}-)jnjqsjzkvBBxAL&=XG=YkIKe2l*r#%RUNOO7vs<2! zihoscBZog#D1WZ$oxheGq0+3U1=|OtoFg~i)e5`yra>{C;bQf%5dv#tUnN=%VWT&M zN@YxugYXXMtkO_-teR(-+vvR`nt$M|L@4qep*qumU%xz0@q$iS3ct7Ts9Jbc_;h5N zMV#0M(N_t~~U2y2)IF17zEiX5xOL-spfs zX+*_C6pQ)jf%O96oUikoW_$kD`ONoE2$Z!FiSsH1r8kvU@3k3vizLw%Y%Q1Y-MCF= zgoZXCS-(kC>)EFgx4XM!c;qP1H*y|U;R zlq6%LK_p8{GFbrow_aU&Bsn)_v7iEd##{?FPF5=8RF#YU`6y2(lGFZZN&fuv2ngHN z0s1hgYlz!(-~s~>Idl}cZW)PMxT9H|Fuy3{GSuYOKN7sbyIiCM$ck*qLJ}sYt(se1 zAzVJdGGdCUrTr-jx+vv?&}}}5zQeCNt5`HG6z~qJxyU~uoFN-KZe$FW( zad)YAf`T)H5TgPp0L|n8ElmQzd<9I{q=vcfOz8xAPS9N430a9a)3DWiYSgR^gMqwS z5KP|^t&O$>6Z?rZOpjsG%@ayCPcfI0KSb-8I0NHhWFlApz^R3aDPX4%>S#KgiYlZB z{7&VUCytPUI?E!k>tYm^E0`cciy5MfPc8C60zD?Dm}>acMbjuL_s)p_Fx9Q=)h*~c zZ7EbNNM$A|efpKv{Edp|oPV1FNznxco-*TWbZ%)M?&7PaAE|ikg#pHh-?33R48<~+ zp;h1x!vCp;*rTE{U+a_ZdtuBIHGp__9ucUmwH*LV zCDN}&Cd~p%=BAR9dNH&fEFUtqcV{j@tOX46ZZC##KX<#Hc*f)w{YAEWg0p(OaFf#x>3Ke8X_8C3 zP-a#frr~bn--nd@A8Q>@91-??71IU?8^=cF{Ag_wx6~MR~CCmc< z1QydGsGCd=7L zUvze>Z~sPlk@Df!bwhhFOQootvixvh+x$efww($7Gpt7bFiNi%znqo%94nLFde?t; z@b*eC(?aLh9})tV<$#bkL5xaohz2s$4#z7I9}B?TGak12b7z3hd4`zk0o}-2u=o@6 z>md|A8h^wo`UOBvgvp;THXnlgKNuqU@IaG=q`7SNz3o()8DvR;;{xRs?R#7AVJtI( zdQ3hEz#4B8G>y`kV{atvbWM|nS!F0rsgj_EtkCbXsu$kyC-miG^b6isXMyc|&3j>1 z`XB*#FW-5IVa9d$-%NI^`Q8y&a2YgR;e`qJ5)r#k4z>3jiRaVG!0|oVziHu!tN7s% zB?_R6p8qc*Tf8^5g0!4*?A}nvpI@ipqw>Ca_g-qjq&QdVo%Xnw0XdLJ#!T66R>r17 z)e~54Ms1}wmDu>F7DB(#eOlH_2Iku&l5L9U**L8k1`ZRp)Jl@I3JaV@c+{J|J8-uX z<*qSA;N1i&%B(8fS%Z1jupia(RmwjKB`y+L2NbARi~Ef@)g5@Vr5*^NO}o#o{n`*$ zbMSZd&s-42#bAov8r(~4huG}rlD6;$-Jv|T{PlNQx5h&;ApanyyChEMp9pT1BNOUW zC2TohIe5e?8y9~!eXlq`B^iRF3pbyd)O`G0B+0PvBFXob;0kM~#ai2i+;nZN8b8Am z084RjWHvP37b#$Y6jpj=_d9(6xi`NsCVbBhEx8U)B^g@fE1+e2_xp8|uw@6J)APl3d<1n5^BXqDugp&?bDRjZKvPT1LNV z^zy0>6_$_{$bi^Xt(cS_!;5FD*aJ^ae||%4-_;{?t~BNAKEwO}HPEEC=nKS# z=(CIuM+-ol;(IB^CK-=QpnOatTV}3Zx~JhgD3R4@Z(FC~p^+e{sJE>9%ghnvT$|P7rs9bN$Xy}I30LZyJYA8L_=;CG za+ez8W#yW`V9Hsig$~o3Pqq-nIf=kH2trZhsPw!jP{8punUGCUUoJ|Wh1OcP4wH3jCYVO!M;Wt zkq@1vz|98uEJ)>2o=9}#^^%SnHUAh0v}hF9_Gk7z;5PcpE6toF3q-J?oQDRWaqRK! zKJUlUln`$;EfZncq3-lYmhF*vS4X!E)74v*b%^g}V+Bb6I$rMs#JkS$;OrGy_<^Ug zYDTx#5xsrK!d8xp4Rx3hVkLC}!eA?ZH~&9#@&=(dQ17*U{XeURG*PES@WyBpG!TK%{$&Y@dW5XI|96&5 zRpzw6h{=!lieg_!iY-${#XZ|{NOfo2s$T3jq2MpUgvTwcLX*M_J}dgb@6h}*4vW(d zvhw6M=Ij*=2MFL9#Xi$VzcoPt*37IKI+b)aFYAydiZxXpf(F19;Vl|*x9IOeE&2B< zlx~1cG<^&`)M7=8LZtG7>?JD^)>O@%`Hx0MsHBNJq`!_c9T>XU$<`W&FBB@@neg}4 z=Fg((0UmYqSLU4}qr26Oiq1d0Y|0!El^>e1_h-;;`{wYiNqF&n!Kr?85Lr3utx% zMcrOY2{57MCR|i~Vz<|U{>Dxr^QnnmsOmN8)aDzZYnBRZ#>4m3<@}Npt)t#(o}$b2 zyBk^fR}1Ki~q*j=6Qw7@Auo__{ zAW$WOO}MF4yrU?lL$5qsEP5M7_1EgyMdVUgvmVlO zLtFqi8pcSiqZ#<~Xj0=yI~3-E$(ipZSMGYm1ngR2~RTZ1F-1oBZ?d?wh6G z5{zIhjf_N+zx}OWi#aU$Apq|=U%cx7yY3FdJ@tNIbjEk|Rt<8Y2-(#^<4ouvvw2|p z#GjyoJ1~|-^Yh7B0QfiPhs*1EbY(_U%Bob8XB@m0Ior%qxQXdu_6*67f7`|x!#w0c zX`$}|^&|@6s@#YuuJ%XgfVFplel#tj;wxr#gZl*DM(dkeqyhT(e;Jg(xCiJ9#93Ay zb^a59NY|(Pyfqt_)?rfvsJ6m&yXOtJLqxbeHFnL#{`gFS~qpJ&S}l{8lH9g z8)k$os9@<*7&rJZA@-G~fmFAzjB9GmQJi`Vj0o2>>t4y>3@eP@c>njLJ>_Zv6lHT6 zih}VxYwXw9TX`P`{QM^$YAa@J_{vn8m^}>zjE>D(QIp1Juj6if@C>C7yw=2@iO9LV zr)I9NJjmvUgOi2>ZH%LTz zWK^pAK>I;V9O(B``j!r^)x1{VcOiR#vZiK*+*#QQhtK1(GHeByg8K4V<)DMu@c~Z|d^67~L{KKT9 zZG&4JnPFalV{PK&NPIExY}GKXb0CeG&CzntS5Bl zWz2ih3uz*~KZW|F9jwUt&Fh*Z9!JAJaU$%jLG)G<>=Jt7ocW*L>*A+y%yUMHT`qCstL87fkHop?Vwf{!R{ zK+p5}<-Xu)q`!JQ3C&fhbwY~?pn?e2Pj>UCa!>9UBo6nRiyP4M=h z3#V6S*z;vKeKm`k)p_Z4k8P;b2R(BtZU>-}4XM8E8v5#!T1x&xb6AA}NnuZ?JN}9c za%KaWuj94=tGPU0D+^z{z(GaWlq7Y2POQE3Tr2H^HLF3#{nA;2z+L9Qj|Eti=~K}he|B46Ua*l3wZ4lJS{fxZ^Z=`o{pC8LMS={S&Z zoV5b!m&HznRvqhu{(}K0x?0+A7${T%p!dq}4RHp?r`mFABRz;LFhwC|kfK6sf$NR7w6ZQ)=3i~Y}F}@y1JE5Ve zF&Rrz#74>y#Zomr zYMw350x4A}&fm=ew1%OG~OYpcaV^8#9ma$j=5!m)YFc(^(}jBH!II{qP-l z4y}lW>=siBep+kx{{>J@;Axs!c3<>_?b0;)-J29;0LmIB4IGVuyTH9Lzpu}za80<+ zRABzJRm;>M6BdM5pHm%q*thyJE73#0rst=S1F6C$0_0@ZrMlS9+Vd1DrOC zJpHKtF`W+|gf2Fk#k|w@EB~rXT;|<`DtqJ@^vyD*gq@5uAYEY4Y7+iO5rELjH}AuD zf_=OLfqBMbk+ZhKoEE}vf5^;*#FJEkdzHmrjQ86TzsQj@XR(ZUd(u@;r^#z z&%p_B*gamD`NsG-!caUPTPqCeFAN0$@21e5rE|nvUHh7P|az55lXn}TGwtnva>p11}p~=-f8oAoGT1Jm*aO$ib9*PPDK*# zbRB|_-~{2W$}mfMQKw-$C0DkV)IH=;1-$~yF%mzd1%Ae@xM;HWd3{6+B6~sm@vr{n zHYH_Vz+h>LPz;k!xjEv7wsG)G*DwP=4p+5+;Ml|ak-a>gr330 zJJ<{?86YnYnomU(KFU^p{4dZ_rDV)$ZLMaSE-78akk>ufOUt3+TNAKC2qMxLI?rAd z85jI;uzu6Dyq0KAm0&+8|D6tNlX^cwY)IV#Qt=NZ7WTl_nfTV z-6qQD=xW5(WgKU{Oh=HiuXy+|X}lD$=Nv1vZCCT1LZJyvcY)+X`s+1;xP$fP->kX@ z!d4ysK13lLK_P6L2;(UUxbG`9iaQk@}&)h1XCk2HrxeD1*Vh+GTNweJ|=?1BHK zg0gi7mjB0NP

a^AG8MX99<0Ec6eM!p8{Ez%9;!yC?GNHBvgdI6M=+f;M5RTJV3)iscQNI1ZFdHFdsQ1UXVllMwu zfW@HLIF)`!&61l$$tUoe9|8DQn1XSARl2{1wz^4uBl@Obb*O$RCQ%(NW_Wy+5**oi zZu__F*N}~T#L+?du9nG>WQc+QkUe7hAnKkT`00_0 z@G@rQr^f-UGiRQjQ>~g`)WgxtnOU6p(pcHUS_Wg4jBK*!g5DokzG)s`N z_K>8yT62uFG=kv?qFsYtssO<&YRtL?nD9V@LObEZQ&61bA#=^`o1G0{#L*aK6HirK z`VrM1VOQcxrFDyR6ldSS1OcXo^H@<1`+rA1C4sV4``_RcAhokw5H%ZZM>=c2 z`X^iV)JmNUqB~#PIBbChoS3_P;C$nQQq?dV1!+3q3v$`Q2E{R?iG$i_khYgTQ0su2 zGkRW0Wt7eO_lu^JE#(wOs4*=rM@opKr)-)xXplb)FIVBV}Jn7k9m^~?j1-Ujtog}{Qvr~`)V`hrmRPl z?>SghP9>k(h^(EvIuRyK-bor0j_jC#9E8@pgxgsn3E93caJCL;-e(ytr}(AewY|XY zhu4S?<5@`eIfzDaIWJkxqHfO_!LHU`+U^;{EBF3Hk!ktOMDlD`M%`wY{wp&a=mw!v zx-m{pkJ>G{0L4>y^4YL+KnE2|)7T~Sntr&)hojTs>4rzy8Gavx0K#2fp&4kBG;BTS z1MC8s{gvtRmgwJ5%XBsbhDLFV+DnC_?5s&qcHMYDB4m(r50ybZVP_S*2*4IUiDBCL zD0Cw62fEdJ?Z<)Oa6DkooSr`EKni6%@%?}$DoCqs!W``r7+I8rL+v?z^zA`o9b&rL zEExw0GgK@jp8BclN6UX%(}`9EgWVWc7HyUzyCu`C7>RRxzb=!NjNbeKM}q_~qN6pkC#Zfg_$R)f}an<)TVY&>di3-|3Qd;@1l9z#U zYUwy}0kxti+tAmtqfkXrI}Kw*#OYf!JY1t)S(WWiVF2^UlonTqpd%Fv zmywwQE4>2TJ@}IRHw_`>=_i<3c+&8=qpuv-Tn75s+&%lrKBQ~OMSz6r`OI-#N{P0H zht>2kR7VX%kp`NZqNV@@mbp2HLqq9l(3o^_f^QJ4M~-v=2-M0F+a-}H+c@ds8u*P~ zsuqKNTPaXJszsbhSx|()PIbl-oZwiCS;}g1p^`xU&1qRrh2l{?;ADlWC5;2zAjpa} zih3>ZIRaNUFtdi(FxiVv+|^Fz{2ks_9W)G>a^f!SAo$U5FWm$K;b4_&nn~CB+vJoV zneS_D1@QI^Rx&AC<*r`RE{$2wZ(TBn$3b%0{HmF@8xg!6*>}q0^m-N$j$5WMGcrBt zPQiDXH2Gpx_Yo_OlB89xIVZQa4)q&p%8ONHSzGrP4y~Kk9PUr)HhMTYgIWG$&yN`; zV3j=)|1IngyiTgxc5W%-O0)rkE*4BOI`7AmV33@8fkWALs`Qb)%b zz|KIilesc)v~`<|aWY}@;D2+bT1lqyT9p~kP{JxZ13o{)u#O0RQHG`x*@QDX@i%vAAHOR#4I|Wb07Te05d?$za4c4wI^)IPAQaLm)ss=-o5f9 zxJ*}z&f2z46V`|40RL6^1r>DL-5F5FIDc0fa>mJbAUVCm-wNv5F}uY9zLfb_a6OAq z`n)R#wXV-zXty6r13xz^kORKqd8}`kXf@&5+aV8SGPCP*-7@bGAMRz$%~ zH?Qb2*g5EIXevnut@2IK5_2GRpD;P#y`DjFu$12qdU|}h+(0wEPw3t+ zEa|jP4nym_Af4J83mVub5#jK6_E`0E8nW4nn;k>}BasNvpp-%O@>p~|5&rezmD(i% z`#q*@-8O`&gdC@D%H%CrruOMTn_uM*e}AE9wa;ejDVL&DYzB2YU%ADdK@UEy!zFmX zj0cT>Oa4Kd&PfktzS_9i16i<@kic#m|8|z-U5B(XNEGPOSCYRP8Vrt<`SX-F?7i`I zz_Wg%n{&)kvg8GaiGD#)hw)rYDQT#DXnp_nV-ooL92d#{!cX6c*ICz@!uMzHMXs$P1sn$Kk z#*ekG5RBbhNiNT72)PMiti(}=8232dt6`cB%jESgWv>`J>2_;3`N2$aX*2eDHhuU8 zha7IQ+>~J`kdbe4vIwO`O}U%MB@XcwFdS}I1(Toe1PrKz|=qLfK5&~6T%u)}u?8(N@0WPBf-Tf+~@RL)b8XP>_Cb z3q*;w$*b0)%|JC69AFuleATFx0ip8`I*J!^q<+!+)zq{`>EXPu*a~ER%vAT!Cbw;P z-3KVx_>mDNml}x1Jkjm^_j@2 z;JZ%SaR4$YVsz|g9f~j+OaCg_AZqoU&pZV+Kuow(LAI$clK_VQ#-{_K zd1QfFI<&&i*ya0;$P1sE!!yaczQ`wjV=(!O}c(_+pXectC_aB~pWDWi0x zS|q^1NoVY_Kf5QP|EF7mNDYvXgizVWEs)qCg8G1K%4h8zNdsvh5jYDR_+Qll&Ljt8@$ zKgKOwYkFyrl1UCgOJFMLhza#^-@v0wie29ZcHt4btf@AHkTRR^PVhD~FIu(6xx5Uk z1P|Y1B4@2PuclvnOPn_tBy-b6gDp|njB3`vdSuh(&bXdwg9HnfxFTJSA%okFSmfyH zFXlo{Ju^o$IuC8mJo7}{EbP7-M@4;(5*z$jR>(2s>bpuVBEwi(0bvOVd)ieH69)Y> zRKIHuXpXadWHM<}XRCa+5^7~}fuGKn`JgFC!AH@c%mUvEFVaDVlGK)mag@APHrKyQ zaXrz@OPdpZx3h59{i_ehq6~B(`bm^e_rQ!f4NYUE}xS%L^sr;hEYRhy{G%YksKReX;x@@Pk^9;&q5Q#b}>in$`TDsAGuMj0(!=D z>MlPV2M#F=nbT0o46=rfVn6GcGVp85-(sjo-cgk_3u3o2?(q*S!!x_GK=rL83K)H+ zWOXcjx#;nJRg19P>+#wq6Kf`rWf=aE-HFzKOelB&YP&kxuC8n)Y@5d>#bQEfM}QVM zZ_=o>a{oUJed3B-baJadb(o0S0io=xzksDcfC7xkEc|t%}G6I8A z-XC^acxc0b2+XmmI=eYlsB#PK;UoS1^bKmLtmPuUOG^y+P9f7MGd82kIira70D^Z( zU@<~m_q}bv6~xrEO;fAfk5JG`!ToxXjgf>Zd z-33(sn+?R5nZ(lwa5A1Pxn_&hV@UNPz%*H-%-Uq~w6sj9`j7Y|Iqj{U)TPn_vu1G_ zuvlJSuh5p2{di9C6_841UKpY7sytx+@NxmEBv#=3Eth(SC|$TMB_X*C6KFZovfSs%Gtt9iGPpxIRXMkO^UgS# z-VG?)jBckQLo!-k1Ht}SNW%2y{|q1A{+4t-V8+k+K9-MBW7hV3`tD2w^&TR}pC&;)ZyoqZ0fD*h(sDaLA{O9T#9nU}rfQab z(O{<93HH~#T?sw6`<`D0m8lgns*1dHd?w3|bI3_F&X*6F;WgSpG;oFFg3~RjLjli9 z`jm};-s*F__!4>KUs1u>zQX$cJYAe)>?c!Qchm$z$BNesdY1wcV0rC6>zPdcQ2i2Mk} zxJfP_8or(qKu@7UwDEJDYcR4XP>HUkJtB0hV}rICtU?~BYP*A?Trz2TP~?@Pteic_ z?wPM=unmQyCvIMfAnZEA5^*l4b6CQ>U+p02zIL z80rt^yWJi$2Llz2u!vG4-^=9Q+MD1l1GzY_iC-IR)5XhJ`&hh2PgO2|-Kx0X*Ja3k z2IU5Y`Pc>9Fdp1-T)$lAUP&px#r4Gt(x9{2)lTI`|4Ps+(Na%-1q4di*S8l)7_bJ< zngKjNZX zHc2$;v*PPV$PiXscHWJgKP;`Cd4NOcBYhS|*gAx9l!Ok<0*ryB!r%kkGe4rsA*heS z*IArcB%xA*0YJAuie2*a!R*&RD^&v@l11;Y@cH{X3_W~GX*g#A@6>1?vc?Eu+o`<1 zpfc}xAXZZ9(1!&=!cIy_%%+e&29$!)k!Kf}^w(uqo8*WAym^Fn&Q)`o9l!@*J?n!^ zLPkC@E{n#_&Q4ru%0v_ZOLu-b&jVa`Uq#3hP@WdD7y%+NpsjwI^tQ~lPaV1Mgb*b* z#1M}HRAM=|kr%w>NQS-O#c)>1aPHWEddqiLyJ)d)4_HC)`S}(mD6ap|x<;BdLO^Pz?I+j_y8ARO zX)8yI%vKNSuMung?#(D|+53;yQci>q#+JIAFlLes%BWl@NP=p4tv+o~YL_^`n+g#c zT|=3nDFG%~wDCu5I_csi+TEQ%!XGp(db045dN`r^!aP{9%Whv@%!pexb=nCcDU(Lk^@{x8e;L<;lO;6|Vr;fBLJ3|TkvK_#R7ol9#u2H8m|GMH-6hZa`w@DhT(I%%^`I%h zz)CB*uy@*Jxlk?%XSb$0mu6~<{pG*Hjulw@XBV&l>M^|EOy;8;0+|+b-RcXEh2oJB zpzVqL_y!TMvfLO;Tf&~~R3U)I|I!#ev`TvMB?Sg@b0kj_JX)Oj1jhi1#%vF|jkHey zk%%*CXl@M$n-cnPd3obcP>Y&o;D4sLX^UPI0DLX?J{i#-r;flpkX1Mt7MoSV9ZrGA zBu*D!-U=f{5GPh};b9kv%aASg?29>|{(ToCnTK-^i)S&RbpWnfAffE-)2S}sxy3EH z%8oiejwnb^YYU>b8VTz|SOpSSZ;pl0b>dbYdO+sDJUM6Xf>*vH$qc{q01@?R##)= z;dTw!RtRw@H!rP3(7R0z>&Q9PexK$v)xK#xYnJ|Q6jU8325nN0>i#ymimb|SNyIWf zH9C!P197g*vnIEYjM|26`|FTG7+sYhciZ2N8T2o>qk(LRr<-aWe$fjZdOd?>1tCf`VEyC`gQzcSxT-d<{JeDiVrsgc~mrEJK zOq&P3xG*Ql32@uxlLUfCcrT4D6P`s0=x+vP<>~1ISJ!y7Xg6<#m?nP2KMK?lpwYwQ z$2rrf*3$S)x_o9hu_ zoFxbE)cPW9L4d$_!pZ~0-wkb^d!Nl~G~;CMGX1!Kp=QQW-q8Bb%sd8zYW zdS!9a?@Tt|rWR|A+Ds;uGtg{ZZ~_&A){ur)ISUo-5!fS!@{Q6z(9xtMN?RsZ%72Gh zmzB6kV_c!_BkMhJeE)NxOU_Hod=xC`mI}IQH#j#u1;ofl*##Oh^zzmZ*z#nIPuSnw zQ!l}nYj2l?Yv>3`0Wr2W4O zimYE_6rDxQuq|=8B+uVSg%1Pc5=7PX2HG+zef$fBAr3Pbq8mkNnGiu_scD7 z4I6c#KTbUDR;5^fFo%?32s}%*Wl^K9`R^((l)fL{8T9wyu5)$+shnZ6mSQ0w!rgaRlXf1XUn*r&I{Rk|ADJ7@ zftET+_vi-F0bRJY@8tW&pRwf2;bFaSm`IWnNy78gk2e*Td23v6bS%xWPd`G)US6W`rTwC~8% zHu6Y|PoYnQxC8`MB##H+?b@8kLxjxLDs3^|D*^KHZ$BSX!@Suxwwe|e>8#PA%eb$$ zdCvwtf1jbH;SD2uC+;|<`@u~h3#@!)FOIQ>a^IzgbHNXx$Q=yiWEkh`MEIjvb&uk7 zxb70bRmCN8PLfT6$x+SfSu4@A%oc8GzQMOP4|5|HC5@mr?T`o@CWn9M@8W4@Z=$E^ zQ+qdf{_>UH;Y(v>qgI(F*3Ln=(VDN1{+*dpVnoX_YMN59?ud#5MGV*ewsI^Y{GTW4 zGZYmrFvC{Wwn8a1>!c9Th=S6O7Ld|!bX%EHYjw`KDX`LlDpk0vv&XqF8*87*eEyD3 zjmvKUDhTzn1+DsEXLL7Hd6wh#1?R8l8$&2hS^ZR&T@tqm<(nqGpf5cD6gM$T?%HcG_RqC7CE{{4e&=>FP$4qVAQ9%nw`J)O- z0jpP^lbY7&J@$|S#kCCrLi&O4G2+TdAyk}oWZHc?zc{~R(0}r0N;XPPv!Jc<_i#6W zp}_j90WnqjapvGp*>S8-hDKUIy+p0Ixzwe;;k#7&2DfVx0-5TEX%uVz`$kkU|IvB^ zq~Ti#gkA=`RNxALhx4uJ==Q?iu1eiw61#%6yWBD;(zGGz|25fQI1N=^k4^OI{5TZQ zpCq>&F&JJN_VqhD3cuhST8e+t7j;r4{9}~EwH>%-gF&VJ7-h!kOmC1G6pX8!*H?^avJz0vgO64~LuoJ6(WbJ@W~`L}(|GddsMfLdfUxLt=$d z3|>et0&Q!=L{n-whsY3%RiU;kt;fTg`SWmnN>@#E#dLW~w>b;gPk6_a@p9^d8?(}AiOh<0+v-^{gnI}F|K!3J2}>*1FDASZ=Gu2IaZV-u8jD2dc3*xnI1 z#)&$oIgwQN$vKCYd4~+d54f~wSz6%52Y7H9dJX(%;L5%>NwK~s2* z{n#aZ*|Xk6mrrSFvjDRT&p+=AL%;jcgjU&iY6R1-ob3CXL;H!g@^^b*4Ry}qA&{m^ z$S5$Zv54ru!_RGC!#%qU+;)LX2LPIzcQ5d9GN5wkcZlRA z|L|0ncj0dJ<13F%>(Y4^+Z^ID)}Zd$WXZHG0`7y(-S=b|fCWZNLP zfVAOHr;$AUax*%Vr?pkiW{6&umsqeU+lL5aJ-MW-75?^s^8z;bb~Sy|_ns-81K^OS$Z{u z6b2L*V3A{60Dh7oY=RoF_vpBneC0id+hQgs*YISZ8@pcELt~@=X$$llP8E~mh)qe= zXnyN=-*lJnI$R&W!@9_xOKmB8(TDE0zM~gl{_NV<=R{$JIdeWeu~?RXqM3z&;`0P` zecQ*U>&bsRjI4uy6fhj(w_#sd5>A??AQZTW4z)+jKJP0om&#%bJ|k zk7Rjp^e#594I4tB2aa#vVMd08#&Q@(oL_Gt+W@e8oqnMgiO_S}2pi_+wWAP>=86~o zbPBNb`B)#D)bV6RR4x-r`UO2&b2=du{A@Qyot@m#O2C6Wmk;MC-P#nkDa04xwU%oV z0q3US`v23(u```u17*YzMjQ{nc0a+c5fk2AW@%8%okP{liVb;0zw@~U*71(PU*jl%az?Dua5}?uo8-eWbvJvlewO93q^C|=zzxfRM-=VNK)WVjU zYZZvab3d>`ddSAVXc7}+myekr=x5*zNo^^u+%x@VNaD75Ld0a&*+&y#W^BmdGrtGx zVVD-LhHH5-pFil7HoJut%PyQ{B#1XA>G;0It)2LpHMwY^l1G6|=AxXGi2R=ZQmYHG zC%IX^-ZSi%8Y=jrg(7)r9Ae>4vJ>H_B^6?C2SxFHJ(5SaiQ+V0MXQ}EMF93P8A_r1 zxn93KCs}HY`V?_Q9oZc-jMI-C!LGHxd-_3dTH1Dc)VeJDhQm0+3bsJm*lSqWID05oK%5?n!A23Y+W>ZNR5!Aoo08|Y;@EG%N|GNN< z!Z;;5l?%;(lYGG83<4#urfs9EV|ZQR+v#bb*X5tKE9h3;+-MtULP z%8v_-gwMTj2VsVChCLT{t(~R9Mm#gPjY&C)CKCfvwXqneAO7M$vehY2 z1^KmUjw0xdQ*jmKLC9K)-urwb#4Um;N-F{_YnyRvw70;np8^wHEk^trtk^#{=4GDg z4KuR8kqbf@PS@aXj;lGT4okY0EkH09Pejo-bD;b%a~%ffMK9<7!+7KE*|xx!u{Iu? z5n`w;HQ&9`@C-H*$&M^M1@iyjH^|Ybm{_0@fm#Sre+hqrw$9XgrtbAS152vIf`|X< z^=`*;(yqJs^tp+A54R`gZP^|H8`6jM-J_T^q1(73&cMRG*2|T_fN7artsS|>+197> zvf=W$Xv9?D)drij82Tbbf^(U4Gx#;=XB{?B4#?%~$r}0s@UI;`5P$Zv&En9wV*8!9 zalVfK{KC*7`hDU+6e<_VFqWqvMpic$_haN1q;H0A^XML<-Vg7DTX!_GAD-N{U7x;A zufZB%Y}=5iygQ`N%yNX_WB~H~V6H%o`n^C`XAa%VJ>HZ31AJ^@GLSG; zWhmEV7`jdK-saQ>Gjn!yb*&F?8;XF0Zv>S8xQ-G4fb1o;*pgLXd}@z00YePWLiXp* zS;jdH0no#Jk~T!X`&aX&Mf-C2owa-ijMRt+F;(KQhAu@%)v^G*aBC#5o9t*?wM%MJ zO$m!O2-7MH6i1=fBbYV~u(}iw7}?C8{SKv)dq7pABezf>Y6=Z?A_4-=p|m*!&%A5# z6|1f1_CFg=$|)nVhAXs)Ag^r8Oi;iSWXVtOo`*<^-rz&=vlw6?rc7n`g!yt1lKKoD zj1K|PIJRs_B_g+~LiAT(KFRlh&P$4n)w%Kx_Ynxz55DcR7EL8EU$JU!p2k- zh)qx$0DZK36rRVb7Iugs&0xM8SqNt4(%Nx`SfD*E&|J46+qK>CA?{*Rou`b859zbNHq^IE0t06nZ^W1ZG{so zboV7bc1_Zw6FYDTZr}y%=}m=cia$tN+BPjd)#JMLAVArME*Y;S*%9Z+(eL(}0MlZx zIC2mg(y6^_siJv`1)8b*+zH47VfDncvL;Zu{~zw4{H%{7{}sx%<@z@rm3{VUh&rQA z+UcLdtI)iWaCVXY{3mJEdFH8)wxIlY@~H-`t~OTzBbAPKBI8zn-&=jjvnf`tzyjB5 zpnE*Fm~ngCjkrHQdAm_2=u!kKs23!mX7rCOHW14mc*02tY{uOGun0rIXqpzQODlhV z)Y=gF!DIcLPsKd zurvW6zu|?j6A{<=z24zc*0F=VpCkrTuc8r{O-95LGx`irOMxRfDJy!TbN0Wjd=Jdt z0qP7uJpS|LbYbiOdl^%L3W`ml_a>)S$w9<^UvK}Of-Zj4%J}JvN=|ppLDzx*w((jN z+ux2adiDR&8_dWDTeJ+D>nqAn7h;!lZ~p{xnEMzcV@IXQrJ7fCaOTH&AZ93M+`9=Q z9@@`a&?d~&i$+2s)yYHrI^W#ko8RB?4J&x^{pl6KQs~G7-uSFr{3#VrW~Bv%b_};D zGtE05t_cQJ(D8UJde5m%E4;zwBUEDwhe~jEE9;g{q8;CG{I&3r>ucl_td(DbENPz- zKIvo0ppq#KmzT88mOqlSR{jn!B^N0x)z9^dJ)2gUH@fq4ZJ$xYMPCXFxjQW_{AdH(M4n!C}b<~34NIDCR0Ic z;JlcwuH`qBj&BT z5jbd|zT5_@V^921jIU}l~v zAZlmZ^@09Cr2y4q_uRwAdSh}^q$tBrREamd9HK-Tyb_S!c>ShDI5+mvFLn57L|L4}scDshgFwrx zlshPkJWYoDw;L!k8-vhOkGLc9(|Or{nnA9`qRePn9fUmOvXX+)tHpkX+a3s_b12F` z*k!5o7<-Y3jaBaX(IbTw0>_UMQ)}TA{Jua9{1E%LRT<4!hP#&@Yk#NQ4j{o7$^iTH z(}t+!e>;X#OL(r4WgRHJiyDG!cpAG6ON-hKgw*S7RiI%Jlg8ijfPVwLCNJW zu-82z=DwS#9G~6j4BBldf7K=i?4{f>;3%ICy}be=*p)HcaA$OAToJpj{>OBf$G;;& z5)7@jVvVBVYPys9k>FTB_K6aw3^w+l9{7ruQ6T7C6i#z(1%q-OS7G_MC=!93>qB?q zO{hr#P5bI$DueLf6XdWG@Ct5_0(8-8R!XW#jC8Fnw{-rlSEm^%?d%mJL3nqvYU!f1 zFGD#5fX&1gNRBil2#?fULxWSd9`|6-vuYIm8DHSgd{h}=!{q}yXs*t)-tJ84p&Z~K zDI{IKS9lsEX=XhyHrm%$(U#$!l z9a!e-vH*SJnpK^_iiWOEF<1gRN+@xse{z0-N&A>1I{;aCNe%e)hE~*J z`fqmD{9Ga#fTre%p>_+W_OiVuK)7%sdtz0-_c_%~=HK0~T8N zPb%74Mfk5U{h`O?17(?AU+@wXDK_Z`eugeJLlh4(*l2_uPC4C6!kZAl9ffFlpi1fgR>&&w%oBb%>t(k0asfIqN2uz}@q=1D;E$#B zc&D>wZeHV;jlIz0fA45{E6$#VsTxdPIW9IYfwFmKte3ECA7FCyp9js$e^*)gD}&@X z*%L|a$UPWicKr;ND;emUi@4pIn+_35h`%;=34}f2kjbf>xpc#Kb1(tC?mYD{408Qo zhQB)h8c=mf$r#a+BQdPk3&$@?Bt0xc^^p#%NPqeN$Fz?(aD{80HayLs`mYDpd4SNw z==SMR%SRc?oegmle&9U4sAK2wY1w>4{tfM`XHvBWW&RJADhv3qQ`r|W;NAr!Se3eL zNd~2KH86Qw*!dAP^_-Cn=_j(EzKQ-LB^Cqnl3=OIiF-U6nL1`uv*ahGs z(%7=1)1RUIm}j0F@HwzHe{8|ly9PV>K7pNYu`%@8o-iqHmq?tr?z_C;c5()q`VBj5 z!bH8qNS3ggHL0#UTtd@&$_~22dp#)+`Vtracu&3Gvl%9`2dQpjTo-!xH6C(u_&AXf zYuFlOqouQQS8I4cpm)-^VorDFxS$2|m>gu-El#L@x(~$PS+h6#C)AySz1oV=_EY<} zMWY{9+7Vp9nTPAe1CXR$JvZI9X&*5InUvql-!YP!768?)148q2F?{`i8iU2A#%CIs zpN8kJR%mFA;_f&bE*gR8x2Mw`*!df+Mq7~*3bdb@FtWMs`bOvvC)n^9?u`)$h^wmL z^i(g3>mnAi$2rHOJnP4{63XCgv?{N;v11Vjq*AI`-gpXbI$cB-+$UJ`)3ZmpaAJF! z#r;A(BJ>2t%+>Lm6NKBZsJ+~f^om=IRxFW<2JHRx%1ocK1H)(hoX5G*-hUG_7A-9$ z7Yy*7d5I~_iBFOqh@$9yG@!MlG%w+J-ut%wy`9JWzzn+z-+UMZ6GrWtf1^u@w~P$C zC2h3Aj6zL>F`8q@_b6b$9|Go7*gITlx`QERAS;Q~?RaxHiUEvQ$%)Z_1gMm{fb#=% z^(OC2TSnnIEwU5ATyKczkOdk$Pv;~y%?|hyZ{q>KJ1Aq1b=x8%5(kF&*{)RRrxaMa zXX{qQu+qNhczUVXM+R(dPsJF5^3;=Qhd|pj4L$Pve0C|g{Zz>i6P+2{;2!NFDN=*5 z;sZS`iVYcCU@FODzB)()*n{&JK3^Kxnt>XX^eTinYEJcf?nP7ehdH>CA0}td*`R>$ z->}qb_s%?w!zv*Cw(_ElIZJCzP0c+`)QJuGag+yxr@Q%h611O?|R}SZ+{u zx#RHGPk!#wKMA9`ndUs7!&+z5+7NSME*2Qg&B93*g31Xi2wTB*tO=&A~d90p9>ihsmmy5}ScC+0Axkh~3BK89NQ~j++ zUMVggG0Ws4m{r?ct(z+IPzHX0#7r%*%n<)MLV>noIR({2io1?ydjUVMWrb2q!a&ft ziT{4=Ji-}E&+W11_8$>0@P?*;DBOQ4m`EFo}Q z0^Xv28AUi*zgmFRWQr9GzTu1IJ2x0=V&xl6hZ$Ec9Mx+WOHL_6Pyk1wLjs--$%!^qB=+FAGwi1(i!cOO?MdQ|C;;Q#duUNb% znEgXuix1*|dXLtz@^j)hqWz88qIBiWk!1utXs$Xd%W{LmHk8%|&>`jTKQaP==Of|> zpE_QQ`?^v>I{`+qth4@)F5H<)ok`9{HOmV+bxX#rPG*^L&=H>64qTzmpXi(43>|SGv9(PW#m>W1x&oMEh@@#BKV<+p}?@%cB zpAXuge^clsvY2w&w2AS=#w?xkI7l9#`2sutlj9OX!p5R8&yuwKz0dT7shX0fIlcZX z-ohr^7b_%pS$prlAq(KsNndqxL`0dG#ptiyqZs_uo=OO~3J0@nhQK8R`(n6z63C6fv=RMyowCIM zP<0nSct&ATyS18z-4lD2T%d$$Ncm!#Zxd-&%9Ti0z8lfQ&AJr=-M5mlswp|V`er=@ zCw{XuE;XM-7qm*~t>oAi6f{8KsT}1F{+o+XnHY_V=*;y|YKg?GSZA!SGC7GxDyU9kNX+wj$EgyF96ckEF0|^1lQ(*;HuRZuxK7 zVjeQOQh_WRzIl~HQ<3VPjgHRPA{bk(+60AG9Bg2rI!ZaQm#o%{msQM;Z{+*Xpkr9U zA#p5H5#%hDfzW$Tv`qVGr%atPw5^pf9Ye5srb|noV2<067G8SXEbgd&MP;)tuoZNf zSd1>qRIGyMdeBpf1KFh-u0Epy_=Ye*344%_f|{T-kYe8vG<0oWQ%GG-T`ElNzcUx~ ztR!Iz;b^z4h$I~QP|D-?6M%}2W!0W-RaS$KZG!Fs5$V9tth zUm#Cuzjr-0T$ol}$8vtYF)eF)ql2s;2T_{g$ojE9hEnCuDe$lZB(qOLG5G)0& zu^r@2_E>Zl6zC#D5iBzrLgIUY4|v+3IPEzzIQkf>;Z)f=9%6Hw!CxO6f#t3L%TA=| z-kjn33u?hj3O2Sg)b81I#Q&oZ?sOG) zh7KtI9nK1vuPs#BeD$iR&};otbMP`jE}Nw$J37sfi?t48YTGk$^ZLzqbDIC|KS*eX zFF&O8(uObm9JbfNm-+Kwro8$7-wlqnbo-Skj7tSw-fTko;W@WAAmYy`WS%tPJh`Bfx!PzCS=89WNa0fO z^1hbCLtG&^ATH;BbU3ZdJg~Sk)U^yIAltIxyq2P}KP&{C9;Yr|-9YNGNB(+#2KCEyk;OC*WBkS5)niLYcnY z+#F%xL%G94ExOD@oDse-w;H~21BV>nXA|fYwfQj-3_XP#ar>_mqpD5+Qn08s_3pYN zl$gx=2sn|%lGZx6uKm0YE$u>!f8S}26h>WGYt<$ERK`8O&v_ZWDS<%+ZFaQ?ssJgq z{4*Hb@ZV%tt)IC~%_}7zY7jBC8QaRePp(bhC;nml+j0PH^-)+!_E-ZXbBCX7seQ|} zPW(_}CBmLeEl(2H|x^T3-^t@ghXPIt}C`LI!t=X(>C2=jc zT02D!rj=f{k@)P~?~?M;KXFEk%&Gc9Ac;P5k7bh-z$_&EMEe#`5^|`*)HJwIUsu~X zk1*jh2=s3w$YZ*2(;a;D7Gwx|Yjw_br5V71=FP0TKOeEs>|9=YZRTArM^Dx#i=9xv zR1gGM$XCjq18<9tIG1ZGHFpdc5AD}pMNoCTLh6E((;)7Y3u8642R{6Djq%WOOD08N z57&LfGB_3qo6VwRvT<+AWuPc;82RYV;Od^HK#>&N@m)^}&WH3|qv0A$CSZ~qVIU9k zK=f1_EziLh{0_XRdw+cOWSmd=8$1WPB+$;LvFf&J3_wzcP&xA?aEVYGsqA-UsWq*P zi-tHB>Am|&^eF^%5EkOsdEocV{MP=vicXJHa#tv3EuGVkR1a#VxCNtzo4O^PCO@Pz zo|SZ1mYL3K!A-EWRL}e$4T5pmdmwl6W{EASE?>|#YTUk{8po;P7wA}yYt=VOaC4uNBC$rS8V)mqrJ0vU`FhT@Tpk9Ns zsxm)4u$+byy|eA%6OYNiRxiBOuN&fNV(z;3{a}?pv-Pp};i#jVx{q=68T`IqG_00rA@AM>QtyY|9)Z6PEYHh zB{l$>u^;l8X(=h2!w|?E$TNa`b&<~?ySqw}xsU`)C^U=JkFFASUjOV0^K5fq=FQ34 z3wX0dG)prtSdCDx#Dy1E5bZ?tzxCqO_4;k?4$-Sg zD69QPPZhX58kQ{)Sys(bPW=3R?x}XTvWoQh%HKfu4M)HODbTFMv5T9PfwE@oee#YL zKJ5L{tkLdOpZW51@|$CDs!IAP4p(J;=NIYK^@db<#MBQ67;{rIk zh^Xglp@>b+Nm_xsZ}8ogXS3>VCT;F-rEH_un%NgooJ7EZt-t<;2oR8*3=A&IsuIH9 z!0j5n{6hDYHAZ@#0^IAohs^NK657B5ukl+9IG{ljJD7-iUmzU#*UEV;|4dB56*#3NK+5k@i}Vt=6V)8OZ$J(+FL$i&|7Z(T!Pt3pdjtX@c6f=rEXQi};8ToN`W z0qA`SMBDyAg@r?=0H8mavG}&}Z2+a_DIM%CuCuQ;Z(_vcYt)ro>)D4-q;B*Y_ioYN zFIKsgu0S+;oZ&_Qs2aZ`K6J;p6uaYFi8(Ixh#kYgV@=te>ka$>XiZgn9E~l{i%QZl zkk*NI0p5rfv!=a{Aut%ZRD{Fu3WkB?gf=TYA&w^U&0CF1I-OOrXZXnIWY72iDrmN* zygUu%Wv`ab$I$<&UZT?1_bMwkkoVPEQRx4W2$n+SKUm+%`5lEeIX!jn>@-vU;+^7M zXi5YeYi4^~7aWXEml~mb>3Nc=9c`7|9VI1l+hh5hDwG09mNGV;ZZ_(7By`K{GOk_i z%xP3n{fXDZDD~*AO*O3pN$~Ci(&kk0MF1(->AIKz303T#zLj$t%_E~sfO!6TSD#GE zI0?9!Q;7!F`l0ZPj%h0aNDVnb3HJp{S^X#nxu^JQvn6)$-8!X-xm!k}TMG$2A7Tw& zM$j2z+Oqm5w9@jj91!!MGLwYDA#%QhXP0TZLA#xli28M+aZ9e5F$PA6a_K3&ZKC`^J&rgED_$qbPWfl^- zYmqgPbs-Z??Yk*`q@BaVbK;8GDaPP>q-G_$@z+0nRi0%ZuJWERaN z^H0NbcgPi#7H>-Ve&|+R{KzLl{k584a5<`!TV(L`J3l6PTG!q~u|G2yF7Yc#xMJQG z8{vzwRIO9v)^`@lAuCFTg+sa;+kh%uP+pJMPYz5oz8US~kK0XpAX&RMJ)tn#Cig~b z&TT=`hw@Q;x6*iFS@Yt=Giiu{SF38_bouA>+_FUz^`!=FO+Wa^K1_^1B{u+ z%ZLl;^lw+sUtscx0#G9qDo(9~dl^Fs>0wuo>sVm{5rB|)Ak{yG$q>;86)C3l=kWFS z%AqkQ$doULI(w~n7$G|7vSc45rUcfdp^2!Z7~Jl`!qyrtqNC7eCOO^9@Rkwl4R^)s}E zd5m?=s@-(-ABTNWgZI%+w0Av>BuCVu%Tdj(WN3vmfl|NW^_&~7!smkxF&u4AdxO;K-C~WzU6uc-!8N7q_2OXR&>p61@ z5J}XkAI6twm(V3$QTuTev!hOn+pVEK-9*n=m}p*=Y9JRYcLnv>i?%f9X}g2VcRLw2 zj3fqZ=2$uc#?cNhv8Pm$(gMSqy12_p`c*1kX&=&hT5hyRF(5ZrZIY~uC@z#J;~>vu zACRS*;8=LKn`R+D;AW!iWqmB$hXK+wXbah z(;qUtbT*WIh|<31Ts82Ou4IO6j*JP;^a7?LYhh>I*UDP1*&hcXzgBKZqQ?&N=7Lxt z2H_3ScO(Qz<7M z)Samvp|*=m<>v8PJeC?sAfwa_XUQmibKkIFfsi~+E($RVKrL$FyfU*De^* zL#P5(p2-l!j_~>yq`DMI5bwKAZ2sDQ&#op7P$KNTfaZ9|1$b0Z@Maud*YE~^3$s5| zG#BUb_&P~^4^E2(e${^pZxi9`CU_WX6RH(*?+a@_6Z8vYLYe(@H~XB#AtMFAWuvhOjEUU<@r37AOEOTAw^OjX&Fk0G(2~~#YPsA; zCp!*_sJ7^j@GX327fh>hE1?u^;v{8+Pz7ySOCC8*m;%g|nHlftH+uqiBQ#CQ%#vtT zvDu4Optk zT*_zkjaK8VyzK^xfX?Cuuxo{NJ1mZfEI!!$2<;`YdWPM-18X|OGia*5B1us}78Q@p z4>%QBjA|HR%WbW~Y;D^p6?$qhM(zv?a?MR65H6eXFb_N&?{LB4kYjWP!cB>e!NPf& z;|^wfOfg#^C<11OrERr1Zgb>c!IDxD{!H?_d#zCQ@oOD$FLh7(^8x)A%=KAiWQ-V! zJF+bfpTomI<_8Xy#TaI5XGdSR5rS9F27-pkv!^g#+9$xZ;4Xw( z8AY0){%V%k@htB5qK9L7nAg@CvZp7@L&YIDB{x5^Gf!t5%#PG_c~^%Px4PGAqqFA zub0sk@yYRa{8n=W8ES@#V;moGkm2a?6gdmsLWxtyWT$a>x;;HtvAQ$(?&7sN#9q{eUx?y+7)7b1@aTA(&3uH}YP?Dvin5EhkWxRKUMU>XX5Yx)8|*KRNmwa%qt z;pT#%Bk={vQX^9JM``!6BJ& z>Snj2WH6_zwS%ahR8C@v{v2GDSrX`?JYppXpASznHH&@27^9#?>&LG|BhA5XXSbf< z5g58VX9BbUKQVsyl0$VyNgJNadpp~RoCf6x9YD9*)NO-^&WD5%S#n0`@iuJ^;8E!m zt)cANX<$_;w#YpAh@=4~quJK|NK?rW6*$tQULxUbT=?n3&EX|t0euf3B*DOfh(v$P z`wRAJ<$synl&ePeFmfqzHuA)S8*de(mM4=Vb~%Q9ud4b$+V_j`)Dt}oU0U(h$|g8R z!AQep9fI0SrzdcwnDn{JrQhsix@ahV08PVX;|RubpwPea8QMt;D}cX z%ZA2{^Im*_;$|e_n}N;KD}XV~b!@m@>WycY@*?)g3h=2)$a60i4(lL#@hyf;_M#mV zTns3?)N;5_*$^Lk{xk`l*n)@iY4NdM9(bDI&}l`TzZ0z3Hq;WHd=L{(Q~u#)kivhi z5$Da2n&CQPg(G=VEo@U4u3VLx+lLplv>7e0Y(g!q@C0DpKkd@)9&_v@JdMUOhbIQO z^jMo=D8v7dc|&Kb(01q9)9HiQ$5z75iF@ty3`puQ9SOK=ZS?%8axJIGw&cs#yjuIG zOTC|vc*$$MTPJt-G_QHhOr+KDHeMV^{VbG!{R(s8alwrWx=esvS*mX9TX}~Wr|@j% z(5sM_m^OTXY>qy5h7FJ}f)MeCCoYb)U2c}D z@Ty%3Ix}1kxa1fkJ!D=0?{ez%jh$j`jO+d8od0dtTc3y06jdSk?N3RQ1K+jprilnz zVB@*93Vi4&O(WhsN5V_q@ z(8+)2ZVKyMCJqlyDKWANM8xirHU3+DUfuqwnJcRk>L~()yLV zc2Ur4W(!2U*HKPmvP@u8Bb1Zmhmvg$!+xgCU6uiF!8z;#z)V@-Pd(UR-m^_E8uU;g zVIAR9a?$m0+sb?jZpyfwNL6v1Ev7uR@X0y^p`)Nq?*Mi7x|~15nN};@zT=t0bCuRM zH3_s0UJIkLdVWj*Wg`FqV>^x*v=aq+=3e(VNVnt%|X^gC* zF4(`j&t4t2!le}XwW-7i8FwGS(QI-YvhNOoh3FOqI)V#~rn?WAJe+$oz;$<-h$naM`P?#{=6OYMK#j zAEXk*bfZ1EVB+iRF8VgVO-@m-ZLwg%~b z`Zx2N0>O;GOyHmiM7raApzNc~(LYi!6-`7dDZ80JbSh`N$d$KkAM8cdLvqQF@tN^x@u>ri?g0r$a^av?qh0b&g-S)D(80A@BWh>4!+W53PVck zi+xwc)5XuQOR%=Zph=jKb-EHBw7qt6XZ?2&%;2k6vFWf(LGrdtmIgp@(pi!MD|TvN zKVvG%(GX%5v$}oNNH&pH^ zhbJD>^mpptyiA*_aKHW%TT8IGWWNt}SE=}JJX&{hc!d8GVq7*)fY??;dV*#9-Q-N2Iw)NuMl<}!5D~5Z&&~`AlmAA%ko#z;nYjXx z#dz#ynPi6E{^G5D8geT6{w*M04Xzfm5xK3%z9`iL0(|iGW5bUu=bc1)`08iHDdAo` z1Uu{2UeM!-y|Y?L8C|gpM5>X_hxOR+iaj;-CDUv`P~&x2fc&5hs8GJ8u^&HRba1Gc zk&E=zQGAkgKUwzqm8Vj~1QIF-A1o9W)Yt^m{wxpCH?&e4aLKL1n#VeCrXq{WAo z9@#VQxMsrt6kXYeA4y2EjAEI-W2F`qsdVb68urTykWKTVOa2J4gF2%uQzRFmFLHJ+ zM5F)K_q5iJ9B06EETirjAfT`}AAdg;#AO8o>zSwc?l~}J-|@+-8iyPRwpx4J1@d7+ z{EP^!8XHqID2*CnrArFec5c;fV|9z!t(Is}D)6l2e&dG^%wvSZlISfNlXihfmd=@J z{ay5|%#^?@fG>jJXE}aJ$X<9=@OUiwGQu?#4i)ID>L6QAQk`3q97ivw@DC0ns1srY z;4!jiD?RIeF^PuESp0g;(!M9op&MGT3-J7Ppd|HH*)=i_?$KL&>k#Hfd`Z*_J|jc{ z4EX}6S>1u8h}En6l&0!Jz6A8MA52?T8pZuirX)iEAQ4%dX%|J_H}DeiL*Ej=%novKCKrd5cY#onYY{8L3?n_5>W7VQ;!sj7cgEQn1PJXWk#1V&> znkvw^%1Dab4I2jNzzRf+sCC?2a$e1-r|9B7# zI4F}6v{%RNbt`v2NxsdH(sw8_Yd@243m03GU(qw4wl73XXbNZ#h|O?B^hB#Cs$gOM zDD5^k3Uo|^YJXTyeZZmHRgNAI@NW{8-J9N;UsrQpc8M0?R_ZIufGP(;`BTN?5;|Zy zlKr!r9NT|oh~uhR252;WP_{5M&X?t}IRtOHk1QK^|11EjzRa=#EP1N3Fz^dvKB5F* zu6vhN5}xqL^l01w_?&WQx+%8{EU~=Rv-JWX*eQLfBgEX-w5D>9b(&wBNaiw7-h$L5 z`N;u77s;>~w~cK*XYoh154e{Buy;BxB`jI7fpn&R-#MFimB!ofCiCb{5&wKy6DRNf5{G z+{E!XR7593T9Ff4jsGo_wx*%-Z?l6?U3{jtJI#4(blRbVk{$Bh*Wi-?494M%tgM&~ z>~|RGh6{6O1jE3YQC-GQ+Jt+LlV0lgS~xBKOh+G-_4SR=yvx~s-t=ob@TJ`KYdr_V z47@5@9k+j=je;7RC1S)t9ne^=S$$_V6$iRGDHf+cMA${$*D1H{QD75f z<}

G8l+iD`#}73|et#8Gy7ADZ-1as9U56b`rFxV7+o5+?FFF2ziZqcQnlLbm$J^ zt^?@GjR7TzZ8-Pj?ZTj>(#EP(W;tkMO*9SyH-6_@<%1%Ga(rkeTj}@E3_znQa7F@h zaPJ{!Ni~Sd)vJ<0a{GP9zKFFm3||K3YB~n!3T+mfH+Qhw>`lx68c`Wt89wHvxMh(z z8Fh1ov!MmpEln%7g~f?yFxxZc1`|5O+0M*-mX*SShw&2XF7TMV;r2C`lfW9i6rGv0 zx5=44RZp6fbPtsLaJQAp$nUFIbV5&`A5czd9zJJtz0|+~#NrJOw$f;V8~Ddu0?-Di zPL=^6yBMMPzX?`~&4K71FG57`yvT@VIBsDI`j zqL?#&>#Lrq(HvSY&eTvN?)&D5&A;`P=;>Z7SK%+4k%ftq=AZ_dz#ImN%EfC|BBtvX zIOCz*iM4+U$lmtR?Yz(9lKd{D{9Yt)S!L@Tp@OXI7ehYD{(jG5*Kq;P+SajmIoO&0 zJlpYo(pm|an>WHoiUQ}(isWEsY}GpOB}x3dp0&$z)PxNFZKo&);!C-B)#~C+KbshnrE`p)|*n# zOySnN>^G_?`BCGrI0ZK$v0u`ZI+85^o4r9naiF(I#yybwHXTx0VHd!u!Hg;fOL4jX z1uJqseugs#<#mX6tWBaBQyyt!y7Cl{9MqUOZ{k`M`=_qD8KS5H@Whiyo)~)hi34}U z`GZZUK}oI*SlOsagP4)e$U|C@zWlanZt*I?!Z10`^RM;HcHR=Adhe`%FC7}p zrqPnc z(Sv+>>sy|EC0@nhv2wbvjVeEn%wmf8D9*3-^+D_;LyVo=Due8UXd_O79XDF!4@Q#N zt5*L+47sPz&PQf~9Y5n^S|0kanqMV>@k#>SssmyiWIf)}Qty=$p@x-oLHd0Al8l?E zmv@xVWeC6Q0TLT^g7G_8$}NNbVm7ov(N*q>IYEv)g43IS!!Gl>jO~_vfxG6)!>s>T zk@cs0KP{}G`qcXXEYB-O+Hsd_kTRE53#3Hsc3A4>K& zYy+fwz!RO`{VKWZ->dE>ROx14)I#rnA&mb3l^+e2$Uffcl91YY8`n9Z+>%(c~hx{EXDC100l z++GeF!%Ik7K?dgCpIQvJ05!E?zRa4FgTGNzvkbY}cvxy_ECH8~g^UWe+}(QjJDx3d zaY8B{%U?U7ic1K3|T-ok%iE#2>u5Als zeH;zwIg-rPi$ec*CL4cO&33#J#IUCWG}UPJ#sG#y28IO*sDSpoh(-?%@;`xtX}&d|^DR)kYbEf!hePGzvKD1=fLC<^L0Yv{qXey zKBg&@EsUGn%X6d)2!lrV1O!VT-Bf|Wn1UGKa98dQ0VZCzm$*+bWOsk)b$4ao)oCQo zRM!o^ni~Dzx1~}K625}?{TboF8j(+SUM^B|D4d|`0A~5?tJ6uNa3YHoLqQ2UhJ>b< zbPvHBH^TzwF^c^Co3hByly`Fu0waDg#GBub8`3sC{8Swk$8sE!#ZhM*sF*aIQLull z^m7!qQRO5kdD|f?jqW~F_Pajuh}mqENm9X-(l@<*y^1t_>>aTan!w-L?QJz zOHg1eiPggknh`iybB!UZ>jh(Tm(Ge@%#=LIZkK{(?$%NNmM19oQb$E6brRDw8{OXQ z=>HFF*iFH7nXqqM5YvBKlN@;_)nH3zJ*I1ncYu*h4miC^vIp9d2W4uTZ-2ycB|3&k)QVLT13W?54hphz>=%64omW)6j z4e<$S);%YuZT?Ut`p=u?9;%J-Y^s=hcLT(V+Y0$zsC#YDg$&|UIoSTK?(wa&QM0w$ z=lScZh2k@Nkvz!y%Pp%YizLtsB!&+0v(k52OzbPyWIBF;Txhe9V4JH zbBy?dZyDYxW-SSF#sGb3`-OxMIYt8yYc#(MP9b9cV^YmkIx3VqL_WLz4rs_|Bza8| zEXF-kJdf>2heS90S|H1EY}94(4sY8{I3M}JDjlKBP?|qm z#J!$RF>mo!LIvG8;tvuwmar8Cu?%?LGBPmZ-JunjRR9#FSwFf&3TS)=q}4y+e(avI z6;%3d^fJbwdFHnE_WiE0JzU#d%SaLd{y6+-V=7rv#5wte@aGV&V@R4X;FhAbWj|mrYhB$qxNU02C28f3};9U zw(5#=_;$zYk{7=VMU8evOfAf!cj?BQ<5RRr9nDaAFa>4YVsGYn#^I&srNsyNF!0?mTpLv>jov z{9eZ}##4&QSb0tpXs-bNq~68nnB%hBX9^8GVl~?HACKT844^m;xoP^H#2|maUP(aOvNCkqZ2jX53WA+Gk@#&(~~x2JFG56|LkNAUV!mLBe#f}4v4Z0&*w zTNK2j<2)ks8y1Sa8+_i%hZ%p`4W}>=l}hxgv}LAake!~IguM>}FIF+mk_GW@@6vNh znEqnXAI;VNqo()5FzE0+`r$_{p7b(S7`xsYY5 z`QHe<<(L*qf8z76&0N|~;zmy~0PilYJcKdZI&_Aa(LptYbnoH>-Z6P=gnbZ#jJ1;u zIUFY6vbEE8@UAzn$Q&;-pG#Cov5?wx>CWDjL%bBN4CJF~0OlT=U~v_ivCf(7NbNLJ zi+UdY4uO4O4w=f@mf0#Y-hUi1bop5!=nM`7;uKCym;1GllCQ41kL6g4S zYX}h6mUFivFU<;&4=%PVc0l6Az|UeZ5!+Mi_R#V{dbEY-J6b;v4Ag`XVZ1jKN^k~< zy|o=YFVjY6kNYkx2LB>3LVpri===bOOf1}x|A7R)CxyvMJGpmTk+UmUU}oPhxPzc> z`J^jj6vNi{UVf3RU`;+BXCw*&%78uTwLR1j3>PVgmFlu^vn9#OT>tje8fRjb}abb{R21sDPc@DystF_^9 z+Lolr{WA5=q$Pski>+*t2$zJlDs~Zy0j%(7Z+&Qatx4~hT5~#RR-{qcToX7^PWfQ4 zA?Xn0KK5vMMQNT6&La*eL8`U!<5Q4Ytpjg9sUSr`FeTlEgL~7g!o0-c1&3FO(U@Uq zmse^^RBP}imr{;`y~>ay(@T#bD#pMz?DD|>BhJIn10K8VjaiK$HtYWw7g{X;zN+9` zpN6={Er>Z7b+tn*3r!q!jsLmI5>&!|+1=K24z*A3feOo5@_FTq^^{0drMoD|D~)tFG6~#mId&}L$tN57v6MO5^+G}l}yW+toBy^1GuLTK@Nc%eTEL7U;bPv+F11~7jP1UCQFeqKx7I9{haY*>87y%L&+)_#)C&S0p97NT%i8<)1NI=Lc*^0zBMN6 zCJl?6(?CxXdMobElZqH8%WU_n-a1e^{Fqq}{;OOA3-eQu#S&EowkrxAbj_??m8r1k zn`N(vRzc+qx5K_3Y_%5KGFhS6p(X^g0XZSDm-xC!QX@MDrP?f?{bZ^^ee`2|j_vkU z9Za&ivPDPfXz+Q zQVl5Wr?f~RDR|*2(FQ0|DtNnXHd`(D>TpOnmVfnbX_#}s&2->Zr`f69m{antVdUq& zL1u2LmBpgBa1Q2DffxaS*vpBFJqMctw>V*vZ65L3XXP@MtCjz``%H+TSmUS z=p}@!OhPiEpO^JPZ2~7XDvwSsJ{>vd8{R;OJS~6GS&(@bf1x25hoX9g{(fM54_x%3 z{ZEbNb1H550^9v!TIQ?>cN1J%a^+jq0ZXV5T2ub0s~|4!iJngwB_KS0jzJMgU(bNBIkGKsj=KO*~hFMUwCp= zx6gvrfAuXMwtn?rgj ze-i6i&5dHc(1)x2#?-BOBGBo)c#$uMs2FDD=(SdWK$1IhqnqTZVjFpSm(@mT&_I~6;o|(5G z)Bj0A78`7kN!(sVRTEEJegK?~jg$G)9Qpq8%PgRAofuwB3wAq)%t#DJ3;Z{TleUcV zcm~J3Y`PTU0ff1-=OE3`G2J658`WZhtzY;U|M%?L&I(W}1z+UREqm_?lZe-ndCmJI z;#Ojt{7ki;j^XTiH^aUiC>8C18=kFhrT({A@Qa?HHTQ+KzOh*W!CW|n_n!Vt6s5d} z3~KooCn|cv=-gjO ztX5;LfO&=OPWnNNuDsys23d2dH%7wng&8m+VVW|ytRvJ2duaVT2z+lIpew^W!qyU) zDXS#<>u%xs&dmWaj!bR&1}4l4&sbGW^&7%;_A!0wDD$%1Md$1V z5$bt%AvJ6w$V!5&eoJ1!RSbpsm+t&XOsZ=k-?k}Ki{s3!Zjh%~wl8RljVq7kxvK#l zLOlD&COGX+YI#%2MtN3}B7F^&zi-sF_}qnL>aB-+Cv8?KPw#H?`Phy0Dg)*c=sGFI z(z>$hL8Fkbb%hrJ-L62EkvyOo zlTeC)O)fE50#bVteR8`R$q0_%AlpaK2%77($2^9Kvvz$I_bcWggbjsQ zYU9!3)SmLnN&(enk)|UA`EL0jCOYtYQ0Id{Ivk`XY$m0Z*Ugfj(V8?K#p9RBIa@iY z=x6dpY7st|m7Bd>bAm%4x`X^Ta6N5!Ko@$miAki0v8enw*|D37%Z76KLi!{^X?-zI zH0BsYB&?^q)(Pm>Rs0`@G_Pv(mZ8g9_Of3pfyLIpl?3CDQzGxu%Gh!QBSgF`X2}PQ zyB9jK^MJ4}=RZUEcu-5UP2h%%Z;w$W=;;%_Wt!VxiU1XN2|Ipx4hrzPlFJBG0;J?8 zhsLX2d(=;nY2H#8>%*lPw}Yw!G*dU30SNoq^>^#|;*D{$Gz!5> z@MSKRATJ#9z8Vx^+DcnzoE-Po)xG)Fqn#T~q~`LBw6F?(v3?oOlaro$$=RzOk5R+u zc8*(hc5jNj_nVc7oeRhQT#Y_l)N0sRU@h*BJ8Q``Pf2nRcr>GOOvH zctFz2>gFo&#;+$7P>aFX9Br6(HoRM*R!O2Qa&>zMRLU`A%AHp`w#wGs+xmQ+YXroL z(v*#Ow`+2bT|*M@ztS}!8Wh+sO~1#V&?;jgj&3U3w|d(R(w|@X=39@xn~jJ;xJEKw zO^4+$$fZU%_t;d4jD?jFT=Rm_5PHKki>ibo*{84h3_?a$y< z1Zrcoi2ylEn_~r=VBBuAr<|LK-;cqHl5Y5k9;l0}mA0o>_&m@F7x|Mn433dfjZ9Z}W)_%k5*wLH9 z0bw6OeZ9sL>=Cd-on1k)@JzU&ZDe3D%@3WU@AD$eakX|KwQOE)KHeM+9grXP-{GAq zS>N5e2jSkFuWx;Ly)x|28qt@UwsCo<1?KXZ*+G9Sel8Vb(ZG1itYmibe5GEG`DXw9 ztOP?PXH>1UG3yU#-~3CAOxnJ%t4qp@qcwwZ22zG0@~Oj9a-sv(w*F=W@AeXG2?90L zi|(XDe1i|2r{zdMgwW^JCDwZkaBcB84nCVtOv3yWxzcKk-;r6%GojT5v`^r(_Gt9g z3FSHbU;pyN0`e-&q3Kq3#q~A~bp%D_I-9S}qZZ0fAk11A4{1NTjiSleC*4F#^vItRAm|8!Iz zI1+?Qq@t!4+#Ow{iRq*&S8#>fVL2f&&PUl|9iW zNaz4CwD=A$7a(>?4yDC>NE|*#*6E&Y^g>TJxTjIOX633XUv;2PJ>Vy#7NN4kC)OIU zso1Vf0fWMNBk$<)MZD-LGH>THwt^4e#9sp=%H&GMH=-zx+|q@P`82oNzXJIL>SP)G zd^M_Zm|kalrnd=tsYZSs7Nabwi^ymhexH4G;>=aYzlgr%<$d3CY#S5V9Mvv_m8OiS z?R~xeK&$tz#PU+(r<`VW=QY~bK)7gq0Uy~U{u{2YJvGLOGqN=W6ENQ>U zPnGZ58Sr5TK#UhDx4GzQ!T jT!*6z|1cSAE|rByVagj366GpOMkp`J1=sX|bMp@QN zn98`k37MF6&MaQ{Zf_~MjhX!*qaY4x0)`5DOxjD>stslMYqJABF)$7kZXgX zpL!4G(objZ2>%P{GP4ENEIm1AH*ZC`#(!v*ynX({Hrm*}c90H42=%_VTnM`;9w(~+ z3xm7-Ka|_^x3`#^pubN9WVyg}0FN-+ts1Bn@7i`bPkbjx290orod`7KS*sB^B?M{F z)V^33EVzs$k7TZJ_)KvAuaw^N$Q`?QM)=r4L)}{CjN1Z8F+^%JYn9a77HDoZ1Vf3Z z8~{#i`U%esycR&5Z-5vEpatPEj)~Xi3u?Xnd}gCP*Gq*szs+l?1=(&X;7W96+ab(OVU&jmb;(SjPEYb>!Ymif!YMm1K#TaVBb&h zp?_p~WUlTJ@V@0r@sDn=lgYCXvP|%D5wWN*M%<&u%D5uD@xsR>E8D&l&>3Pn=40cQ z9*tbKW;$8rAJRf}REGG^>SBe7RAoK4rn;PcDLDPenr^O$h%{Y%TIak&3-#wMawkDu04 z2V@B0;L{|wbfnE1h1{@Cf$?&3(9sHS!A7ix?S4UTk6(+7d>e01@uGtMVh}Nyd}hkR-V@)=ysLepVR^iHIx&MoF2yM3 z$}U;h8do9Z1X)L>H!$bN$>uxbChFC;-ZNW?hQjb3%=-INy;pGIA{{?LmNj&;0buq= zt4S<-9`A6piOm1Bi?~>K^4H$>WiDGOOnPJ|X$-X-0Mdm5x0ImFza<2U4$(-qc?&V& zNlMLqy)}3)+|$H^`i4szY#ArEW9F%YFFZyppi4F2bvYKW9cR;syX+3zA|3G=rYbsL zcZar=O&WUIHwJf_FKk5;)SidMY)>c#?ctJumHZN;Qwm652)a{>fg%wa!fKL`xjlhS;VW@ zx2;e_4gDcu-oJ_;)RLtAc32#^&{$wPvU_Qu1TvO-W2wYxxhO_ z#Y-YUH%CRE3eDVr@SwykqzomIW-0eA$lMDfX+~Y+qAtm#ROmxX*EXKL`5T%;_`$|1 zDQO6#lf&_UGVtwAH5N(gUVg#^ZHM0<{#p3~6CJNeA+E&4V_L^67}U%;f(Lv&0`A=( z(0(}OmuiQ>rL3$o%X}GQ=U+Kh{LnqggEbr7P*fGHO1`d898MN;*L0vE^T4ZOLUes# zyKXFAR1b`5D{01#h7MEW}s0jOf3*s$wbt+NPH>TNh#1kU$RWrzj4Dsc5d1l-|mf6!9#o?;MiFNA!Vzg>Au%cWd3o5zTe- z#$cUr(YKb=%gfEMc6!t@?_?Gb95!xUoZhX!cF@agC;TE`G!J%XvGiA*6r75fzRT|} zSlWX0-w0L^pd35Uys1Pw@Jr8-z2AAM51%?0T^iVI3L%zG2F0h$#*uK1; z?|)K3J2E$|`_es&-&)7iuc}qv(vWMdp`u~Vzs?x1U&@6bmeMB4r@Hix4|B!Q#ab;H zxP(M)ay}KmaI4tSXq)STI^m~MOafZb_YI|6&e%cB4Kv3*790=5y@_zgIvd;p|Rn4jXS1xJ+2QeabcXA>521I=@-Fn%#uf*WTEoGnKqT(sL2#32bw9!M!_y0nb%> zVBI-orfxS7h;T6f^i2Aq+`H_JfQ!zvZ1vWdO79Jd$k|og9iOznn#<;#WOb4H8>B@I z4nSv}V=)%V<)6%Lc+PO5wHY>LM=Xx|yE?@9RXIKs6&S(Q%4RhJR!HCINV(!XD5O{oFf=In}*r zWmlP^e$T0|H@l^22%nA@i72j1aAL9-A}k<96&MTtma~!#kCIl)bCqEF*ljwdEd)z{ zxF^(?Kg9eH-lPIovc?^;Q$A_wOYgfgt6NcpauT~==^r@GzYj-grTG(BZJBJw*2_Q_ zXVNgu($H9QfY=|tJacZ!LELc-tEDIYsa9uF{qN(R+VlXgodP>?$HS#)aypr6vHnioD9qb32!Se? z{9L1k=lWikQ)GT)^8zMU)3N*l^NME@D&66MDPJa}cZ#>^9Q4MX^e25Q5)_vL1w(5| zxfFDK7B{ex>s*)Qm@R~zZ>~7#9IXO*G_BZ;UZW37;6s0dA|x!kj^%zjyANNu`(q}@ zgV-E6v6#GG_lvs0k?qE?+r8^8-?eHcB|W!<;nj4U@@z_kS_v1&m|?U;2L6f_bHNkz z+Rs?e)Ms{5H|&V$z+QiT^_M}CZgl3;QX{}cfl^Ft&tWB?&6$Cm832VJ(^g~H0ya57 zn-N}GBxIQyTBHG{P;lRJY~%BF*Xlb03SO&|!i)(CQ!q>+-|dPpYX4v^p?->clrnTZqD$*9KI9w0@2I z6bfts5n!h%@cfP`RSUJM0>+z!?t=Dmj)7w6h35RKMBMWiAt7;Hx{0AaDtOWSvKpXI zynF`g_H!`IrM;GnxpAUMzA4r{Vs#4gyZmgr<{XhRJZ4>8}Sw$#C?rR%{RWh-4W!d>k8dN8%#FICk4AK zC+kKRT5o@bpA1g3n1wJ z8ZDBrSmn?iIz=*ryX0 zgiSIbgwhdxkTKeMik2jBETzE?T#9e97kS0(F0wX?t9lCJgV>V=q8j!W+muM_vt+pY zZmcyHf8zy8CFx|~k`*Sk7@skOOV!RzM3oMND;{>=2Y(|c@ZJs+6y5285&wN6>iilm z5ELMPK!-e_F$IQ?9p=!R(EH8C zh@i+-!5Eam`GyN0!v~r>VWSMH9C(;8{@L*K!yg0uw3_@4WDIW;xQ`(qLSk_VF&b`w zv_ix^F^bhAj6|3;`5^ZGXk9XdRxfEuHh|a-KD3~lCwsJ^xJswT=;zd@xtjS{u<>s@ ztm_*9#!+VoH9 zH0lxE0;Ff920H|pWMy`FiKDSs?vGG9@|KU-10%IR4lomSi_sf~ylmX|sn1}OtC>O# z;13ZzN#Q39niO<;rMX?}hZcv)AEg!mUhb38a{KM-f;E`X2{^{+o(rYwb*kENiu|)G zY+AKktF%q3*C4`)TZ%*EZ%X}J+D6fbcF`Qwm*=%O*RXL{M3wTo3B-aJkj z%fVh^6IuD53hoDxWTUr4L;Tr##CNk4PZHAIlQ}%D_DmYH?4#$VI&!$9Ku&@kj#HN{ z8f!Dcibzr--a{F5#y}!=552?NS2hd@FeY8>ZpK4<5(z;Wbq?+`0DMse)lTWp#psJ} z)b3ql3XNT**$2|xU$Wz66J<7@kV%PsZjR)ZLHXpFjXL2rEz%iWJ*n^rJK(|dj+p|^ z9R!;HKgUQu${>;wwd?!P@Je-=11j1sqYqc~_=Q$Z?qOFcwBo5VS1c=!F7K4P=kq>8 z{9U)g>1qu5D<&ITmL+c*T?Rd+Z*0d!ki+F-anO*>isjLv+O3P9opTiE9nhOl081R= zD%p~+r*ByH>$b53S;xy%u*6Iq*5qYooDVG)0oh|+%KUR1zap2d_>Mv zYy#9HxDN7ChbeK!e8*VgZ6_$QboAgsSvACbOt+i$`R>bP;bHGKgHe_6u?5o7YS5V9 z868!3>U9ok4*2dgF$HIT2;oaP)BrsPmG&RCwGreLNUw^=G_vh;G=CU+{@6Gr+tgoh zOgfu;PCU=!cJAswxs$WHh(P9i_Eh8)F94wDC*8*NlDJ5~>Ev5w&qXR8j+PSXx?{eT z;H4ewrdNjnAh0!$71(-g$_DUAi(gonR?sh@dj01Nw=GTunbvdEd3G4Pq>Hrc0y${E zW7$uv?SvXTB6;oI&LYF)xd3g^e*dR1$&(T|sjJ<^FJZ9_%mzPY?;foozrGZk@OVL* z3>Z6j&Dcw&N!*nRCWci~4}lG*zrMmdw#Bm`rQ9UC035Dw837l%V0s7*5Pp0Z>?eTD295kvZ0K%0ohX1h6SS;Mc93#=tYs3!*s4b6mA zepOK4esv>FKe20&06jp$zYy5`)bDARGLe^3gN1rWENRfXN~&7U1Mn9%SGn)#b46Su zf|?FsvHMms^IZazPJZ5)l&c*Y6R%QI5-2*Bwj6Fx3 z7e!zc8-2>~-aNOUHOf6#tOA<4sBGEad}0vslU}t9$fX@>_8avJ(OAB)LG9pE&{&-e z_GU0b+$0D~43W_`kaTf1!xS{Nnx(!2W0(+TB0?X_p>JG5mQM-)iyp z+^TAOutf>U^4au_9*1-tpU;J?hsdWEIns4Zv zS4}=ttUx(S0@_5f)X9Zaa;(Jx@9!{CLn*0T)LbCQ)kSRJ^ii*)e6_^grtl5aW$7Co z=Nta^h{0+0=21vs?h5n6VvQt#qbq1@NCDToOMmx5umP&pS*VEu2pZE=p1FeNR-p^o z28eO4crXPGPyfOP^V&60PKanlo;G$ZgU}?tMqsGX<(#Ys&Vn*-66)~Dcr;_TnNQKd z=8Q0tDsi>i*6~Ipm|S=6{*d!;Ao(QHj`rgq4X~7#`b1iIgLl?%`5?k6SOKmr(oC>s zcMx_qbbIV#xsQz9pHMUC^Pp;RR(>8If!jU~=y{s(uS@em4}qn6!qMEIVp#~6&Yc{0 z{j3zzfhi%@#+UimmCvtoiF^KxOaZvE9hI; zSHJmJ(B`Wp9%#%0&OkGEdaFw@n7qZNJlB6}Vv$7m-cdJR-dO$SRZ-oFzYRcmm9q-8 z*|OL{aPq+!s=)be*`-O;$n#$*1KK4DBwLME*K84rDnz=j!U+zzckc-?)gR6w(^ALI zr80eaJ_+i+f;Qc5Mk2M`ed0?6U*KB@GhLf)%EQ;}9dV!Hfd$WoaWS#=PF{mQ>ol*A zCnrLOoHYBh4_q&L7`l1Qut_$hkR#y;)Q-8Pd5$qQzIz4fM5YB&%X+6jR5FQ+&j-`U zQcQI#Y2U!5421WIiaG(}#!I3J9`BQoHXSpN;ZDP%7&J?LzYs~P!EyI>>pmj_!I2h5 zSYYF4q!yYw6oF3o-Sr|`VK)%1^_Y7g&JN%fjrGn1f4YLD{UFg2Rnz2a=wSAR1_uN5zeYM;1jW?+eIA(2VG z5~vKxt$PKtgBR^+)#KRJN^hq?S7XepSIzix5ZivO^9I!_6Es%%@N52u>W*VV@#3*g z*-ax0^h9B;44T6gT05pfrV~%dbfI8KM0P0{(qvSn}9R?lRSDl^uPmFN-ESgSZ*>e{L%h|51n3)0(R zK-pYVeNE{zsORE4;n}kVL;@>HoEja8jNx_)jf=f9yfu^#6M++rrUuAz;#!X$lbn24C}Se2 zK?Z&R)Uv;`bpaK$t-seN1Q=1umb&Vw+1L#1{4wXGl7R0we#t^^M^z9pdOty^sbzp0 z73)A%{I4wngO(_-T_~*yvTqdz2c=HVAM?ej8%Am%bh4Gvta7dy;)X=dW8c8;@Oa3+ z`yWw19+E^eC71xnhs6_$GTFoT{tcpX*O)Uuuu@CCV%k}U_*%K$xzOgl7qo&PeupzC}{{kyVf*T4o(; znQ3*n6AM>ngyasH4V|tbCQ(Q=2SLm3xpj7TNU^;_$!{a}Y32yJf%;bwp4})w9!Sy_ za6Kc{w{?F&5<+0iD86an{haSxIMT}Y}NrOd3UW}fFhD26J-Br3P?+8GZc1fn8HOYJ14WhMH<;ru}Ic$ zS7T`;`@Ee1&QLwK#gysm!BVvYm^Kv}R^zuhRw2ZhRJCSB;c}@5G4r< zbUaKY$umF0Z{`GlfcYI-Xp(4PCUVB9SS~}cYpp7w51b7u+g1FE|2QU+#Py!ePYeYi zNA>OqstnTmeb9|tb4SZF;`MTRG?WU{pSJKPqh|Wo4u7|O%-tokDnHyYFLb$MO^W04C4;?v+JvkqQA&wgG$b*h?=K|MqBeWxcmzND2NBNnhZig$a`{I7@i^1Dwfda@@ zVZ8$>4War{KKdl+e?t^R$A||8o}{CM21~wJa`iYvF%I{a79x%0jIS4w8*;kQRSg32KU3Zrx7S0QT*ow83d7TO*mIwmZFWGU}XG_ownX{vG?eUn3){=|47zI z&(0_Z|JUA$tQGWOVR0izZ@`CRLH=K ztfDtXd}}U|yHdsB{@qYm^FLk)mQ6i3FcfT`Wo9}A?(4|pWAHxB6Cj<=o2=#EI&=)r zoQ)Fle{N2Xc;99cnCdx}an%qFX<%cnOTz$=-w~`*1|X5KHe15)FN{J$O@=K53B^xIsC)`nOARxuzcb*4v6Ni= zwHLCz&OE4oU8|MS5v zuRil4E&Hq;*74Ns!G`e~r%xtRrhA^|INubdvE!!0c{4zKigR}-@9M&^y{9nx{A0_~ z;t>9<%<(rA4BMi74~x;-W6aPvdla(0Zv#o>%|!?Z0$?Iha2_*$3NhCKdITZg^XR?= zGTZ3eARF8eBTIu!$&~2%^nPh>YH8gv)M0 z!bt$r#8`aPA~6;oR}sxWrE5Hxv1Pt|#FO$J9Wusn+u`Xut}c+D3y&S1q>>752$k*&pQ?-Tf~ebQ_q#)3Fb$ZBtA zC^|ku+{E1+p^kbCw<@h<4rhq!9&A7fZ=En!YbdFa<6`J9Uf1D*cZxF&X>Y3Zpto7o zb+!E_@aO9ia(2T^pKpkaf;^aBIG=hiO96u(2u}PI@g5$$zwtnMme!`dopxct{QgJ7#p*F{WzcgL`?AX zkEK%yDKBhm!PzjIdl=V11L?7W(@?E&?y=G<3d|1*g4K$$0go$muFd@@EcW7}X{zFd zvgElw^}$%-`rYa%)-91MN(RI$?=o>|k{=3rD@cz5tY`+|et+^WXVX^b6`9mh|9=3p zw9z~m-$cmfb%HFeP6SK42ly`q=^s*9c1W#EDS%Kjhah1+51XkJE<}ZdA5#+0TuW2& zTx<@v83es3t)WA|UUwM20*Dn_OscV%zz_R)VL(niqgm}bJ(W<^qg2ZIyRzgr3B}ht zkxpo4yl`?q_llI=92@fi$zeT54Q^{?ixuY=~Qayz@mySsDhn&8(|1I97+zdEl7S(VFQb26DMWfQX4_&_+H{n?A_F! z6(C$uE0IVDE=@yVj>D`MNYZj^8Lsjat=oTpdnMLHHEaN1IR|Rj1M|yt@~qXnoQ-z} zCrrD(d=oyKzd_9~Bg^X_X7YoNK21bY>A!g0*Q6}P`sy>*wu$^o&1yh7KIyYi_hr@q zY{P#CRk1eG^Jw{cGxO3&@jgkuYd7jFNI}s_c=nU=!XH5i`DI6F;QBC#c;41)2HypRYnp3a30w?-dfs%me|1~ z>ys1gVgZc4btphSc?>tqjT@jLS4nI(W)z`j;8K%?vh09@WQaqL)yvP{^?hVJ2~Q?* z;k}bH-MWo6fmkEJsX?@L0b|R(Y=Hvl<-GMFmw8Ho-Xw=p%u^BO3lnoy3GJMW3+z_# z8S@Z@LqXgbZz<|I##%y%_C2E1Yp?DcEH8NDGILK`M6Lu^1pxJ?pKrny&o!?rf=Kh; z#1oO|pAGPdpFybDi@Z}h?FuFSFeqkKxT26c-|aC7S{JYnn`h@S)fF~oX~o~7fDur& zcR#(VufKL1@II_U_1vUC`l+*pzP{4l2a3FMVL8bP2!%Mk=ep7}VbaIMY%HnSuxVOu zH5+BQGh(~U-D`K%9z6|w=;+~>*KA#b;iW=@L~IvI_T+z;rF2cl48K5dri8&*(kz6SrQzhDH6+>4-udoy!LGfEf%(!@gp_~>4V#0p(GE9~Ub zYq3B{wz^9f!{APPz3%CC;>6Ea>2Q{rsC}d~4kKgjb{SV;$h)~bTa9msk*MYdU|3N; zsib+T+ByQf*6~ZIJK$_fM~3E<=%#GA&j(R#f1QB`6XFW33$F;%5p^vap(WK8XZVQ$ zA6(nVFC$P3KOwLk2_)_`8f(#lVuuOp>Sh_}Tw9(N`_%TmFe!|jUpMTAHw{Muo=m;@1hU_8yG95 zrkYB6`1Y4iJgBh=aQGDbf1bWxJdDiPH|{bzGS*GB33t^5OIF-Y`5`=E$lHJmu~BHM zsbdQ)9>wX{{Wo5!evThwPLeWMUqIkt+3t}&NDQI56r?e>4$1Eq8P@N8uv?a(!$XLm zU0JnH=P((1x(o>r5enjbPxZQ?UrB2=3UChtBXbTo8fQE8UPxB2Mw0#SnxKR9Nv``- zCIgeduxc5vQeuYd=>_@oae~7>wuB>Dsti@^XHXeu;G-h{!phdRsUcDd_(ixy?Lzk{ zVC9J&u{C~GTy+EJ>bAgVl#nlvaA$Pup6@8*?cXl4&DO*0!O&)-AiL3KtIewv!&(lc z4u=mi_O*stlkdNTb=CpnJqJ?P{R_o+QCN#nw1wrh!8C%u;nWLAY={xris2Gp$a_p#*IT#~;F^|QgtadU5 zi8MryzeWup!mkeZyN!_ac4j0zy;doYI-pR8ERt;-%$pg0Fs$M0y3c*Pc3@vH(<~|i zn(#vO=Y&$1NhZ2Ni%6jAFH-@?&kcw-0;iHkr%(>-|Cp1ybw+Dh_d9b#_$IU`xA@9z z|J%WtNUX_#a-bAZC68I}hRop7^U@;Rfkw}%();FL$>>tL_l22KeIz+__tDC5kc%Rs zdngA>OdSOelrVb=*Zv@>b5A!=WC9Jz%)cpG)Umnt@Y`0I3MY=LQ^!Wg)33w3nA{}H1Vuv9fZmXu<)(dPT0@qg} z7fX(S-F=*uv2DsfHjKnLOn3|LqgE#yD5p{^15@H_g9qjg6$E|(qZTq!6R9r_TB590 zGlDq$j=UHCT38)UKV}I7qB!NF<+VxH+b#8RzGt{h?KiVU^w-+siiH0kgeXr!tW4&q z`8y&*EA@*rHjAfp@Ub!%KBiQ}f*gHcKssaHrfOIB9rgr$Q9gtqGj`o&ks*3~@A&(1_sIzM zW7TB7MV^UgC-$KOr2>Hs9%?@!MztjbIFOR8JAXq5GGSpu~=Tw%1%V1+Ge{~q6qM>JP{;Dns47tyPg z*C!CGiz`LI&58_8w>%T~YJ@)N{0xIo;DVzt4NFY-gz;+92r^#0D$PgpYNY5??>ba( z)Oq6ZL$1>Sq5eArfdSULv)s9i4*?DHr^%GLBIZIt93L0`q|0TVNLqO2QeP}89>AxH zi(bF(uB6(8Oj1|DG{IT74~V>D=BmiHmnGo1=vHF0%uCg{#9w;!f;sC@l$GRgWP^jl zH?0|p4-uV-~wt9#U89p+b@CPIst)r&M(-|o_iwz_JULY0f)mUb1>XbmUNQIQO_jyEuLSy z>MPogx0rs;>N`~ohXORqHig*?`b>7Fef7^I(f&K#D5XPu0ml!ayYlQ#)IL{fkDE3( zJxu$Y9p^Np+8P^xD_2B}OOj}XY~4C|m3yz~9!x}j|H^;>%D)dP4w+adSxipMHs>4^ z{g&62?XboCXygmwSuhaWPRXl3rRICVKu#Jzx+5bQAL3~JDI}L2`|yWLw8(G5SdDh& zRh;%qyVJzKJ-;S>)*hY!;F0dg`0z4uGt<5MPF(JGQXkAI51X@tu8ZRZn2_{lX5m@I z!B9B)aEjFb5;1anwOYOb6rI0p^jGX@vKV03w~AG3NCG<$q^E(2#o(_!7g8CMI!?#F z+N|&i@#Aot``IyeY8J;$q+meBaR&rmWvPhsx^J1gJQur;X+2Jq_BtWX3U2ct*Ckgy zjAan0Ui>!{`IhLiwJUrr73SGrg~Q|?qa15pz0XFtD8nVwi<@SZ^;$e8K`OydddQcY znfr>K2}iYdfRU*vf=GL=F18WOn8AG7Q$tv*eE+D);eQ$BO;oL$xG>$J(&=L&vY=I{ z)x(m=5`K=n>1H9_bO}G4|4$W(J{xuS*LhGQP{fPKC}MF54ktBO$PoS)L9jUaC_(g$ z4VA(gF;MZKDjB4fRx(@*9Tu8ukaL^wrlO3(P*0)!4TWmSW_YLhEoT;rhF16TUB#pD z!R^K?bw%DQiC^1VM?O-Tj90Qq5>#OKm6Oi3IS

NSyng6;n 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

8w(**r|~dAOnKi5aUvnT}`pkz-6iM`DhXL5@jI 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ⓈCxWjX`5g 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
3LKOf;He=Ws|v#F?7oUE7w^7MNr>&(J*o z9PbB-eta5yOywuE;p{dl5}{=lL%FW?d5R4{_C?=984(IQ=B~CSN|+>_LojF z=+PPnT)E?o1J|l9`Ef+&4{5SQNT;6i+{n$z|H#2q*->~DgTn;vD#N4_i zFQ+zIr~P6^Q4NL%*QghE#{6-Zg;+mPm7;kl7Bns+=(6nb zOKEo#8F78V;>~#WVzRy<7wTDdcWm~J8+qCmR*g*jPE8*b@^fGY&UDrIER$+HY`!8* zba*oc%tU2V(Qkj_^O8#`D(En|8W5wfQgH}iPsI+m1kn$m&QmQF)`h~bWg3L z%nyc2*oSP8cQi*L6{?RW`|FnU7NbkBj*Rzr79>(NneQv6@V}cxGuZP}I6Z22@g|9v zIZMKAC?a_jQ72uj=7`~`&TM`{b@?1%dL$%hoheA3>G@FMkdoH2Pbh?+cwnezcOeDJ zEE6Q>EyIUQsDm_pg04~PkPXJbGzTT<5OX&?Cx)}-L|Ph!SxW7yy)j4`(=-5%RJbb@ zQgw?|@?Ei4*33@87C?s`*02|K^VO~})*hV~&>tAxPZ_hS|B%7tVYDThx7YuxRZ-Gj zrmHcNuSx0g2V@it+luuE?b|r+LMiLJnb<0z$o;oQE#rj^qSPdJm zV;j|g+IA7pkoW1?9&`~El6e7-cL#dI5l=aG9j5G6#g9g^6FgpxbMSj-x3h#?uF7=E zB6((D%M+s(w8OS^CKegfTJ_aZOUQ(iu~1xGbx2L>$OH;JXc@fq@shp}DDUghs3y>X z{tOIAPwvn0^u!z#DZ16+Luvqh_K5IF$9M0p8k2W2e%U{t3`O4 zgm4K6>_7Tbbp|R`DN-?7aaKW`P;{^|Q zjy$d`O7$Z#_I`p;bQy*R-0sy82ZoLz_hRMvkh>AGoroUqJWw^!X^#9L7wWtA7LdSQ zbpE1gf7jaZsSdpVeR{f+@P^d2*+d%ljS%4H^gHN(K7!}f)rp1 zsA(uX8lc+8lFC|u=nKh^_)JeK?Sdwk=9-bJ#Hvg9o;WOw{Yk-i1SL~B6azs6k*P<3 zcQ+Q9;4m(>@5d+Vb3j}%=^VZcb3VeC@b$aYCQeaakq5P(42xirHlB=@i_m}Kz02D+ zXYDZ8^!wdZzjLCWXedrc$4(F?k#WAC9lX50Cx!i(t8(LyQuMI|U930${DZMOLfBxf zrdZgXDXz2DVw`3fJkkcpg2{PFQNtq+mimZEdm4N84#^N1?sk}bKKuDtTX)JlH-4<+ z$2~5GtdAcFkK|Y%m`?!SQ$6Ti<5~7ajH^#DfiBTiS*%$&2PG~$5m<1#>0fFy-FiW- zd5rj-I_%crIBW^DnEeL7;3;%x1+6(dy|}6m=;}8*t>x4!6)VJ8=$C0mZ`^~N)&vWD zXJ*mQiSg{Rn?c{6=C8QzXjJ2JG+YSSV{VF8O3Lo8eU)=^Z}Tg5k*nE`9;+@xa?pC# zM+LU2YiOl2O^0EPsd3qBVuIVl5lgt(l5nHj z!2Z5~B(w0{PV&4yM{0KDiVP)lZ=s)nsE_xDhAwbvK@dt*TpAkTfCsVuKv}BX7XT1pj)Hr+mX2bgXS*;09U|k+lx^Tqg~d!a zZhk-9vVS7L6nfu(eme>d_9x&|E*~sb?F*dz%Z_?iQ_k!rFHciw4?Jy_TL`Icq)4mn zH9bGV3-(RQ?5*> z)P1iG!18TIiUaLRd4Vp9BV=*#D^D5sL=?hB|4{fZT%qocL5TCU@xAvhK!tHxdcxwr zScd>TK*GPbpqZ40(u>GJit_-1sY(UCLblCfyr3#)fCym-g?3G-YBSSt9 zzq5oj;R|gmmH;^@d^Q0CU2ffa;~6-s1LiI(!^(*+!H!5IRj3}(UwdhcDoe+8Ha<># zo}2Br<8V3ac?<1(qxf0LlwLM^(buop)vT@(=VkZ20TS{?F}(AvPs@`hC4F*8Vsa1j z`}mg;e$@L-)rIRba049b!Rk#Z+M}~oFV;fjF^E+BDn6>xG(1_}Pf0bQ;l|Gu`uafW zdAKU7%SzU+SwpO7^d6L_?r9J-awqYs0jR)RnsJ`2InilJ72P-YQU|E-ERhJkQd|?% z_`ic>L1vtd(jc={w2+HG6kxVNgTz@@Xf1{j~nzQV^y zZGu%5<3;;VVh0{no)u31?@h|B?RRAK$l@@WXpPS?kxpftkB z|4Ziqtv3#&!+|lGA}sdd+dtJL?THd*Kg}_Kp4~;A|M1ma^-GVRdLwTRiY$)zOgkK# zmqU2!dVR0a4lD{mg|$I}6)^nGt_jqjYqk1U!LZd2;DnOga1v5K0wgZV-aSEre;UEV zEPm@GY7;1-hV#Yn<*No_xj6F_*EcdM-wphDGvy$Ajdt0!tw}rD!n*#ny<@s&#|Rf% zr!>(sLbM@l3f=-FC#hpBG8_m`MWh>jSAyh=!-qCcV64Jmt22B&s&3?h$d}-z?rciVf zAW92O8*OcgJ^Xeo^RYMZZ9n*AN%iACB4IbCFjh>z52omt2hI=q6-yq80M+G+J{klJ zo*yB)kY1u|oG7THNXxcJt!ChxGl&`9lF&Yo7JKW@JoCf_D>|#ocY@ZJ4()cU-&~#n zb~!!i_>kse9a!A*V5P}tq-qjFYIWe}O+OMvz8>LtY_XVi8H4|tSQ*dI_8N-FNN}nthOFx3JGDSP>A_Iuie`e$%MuT7v zj^Q$)3;>oNlEA$D(qQ<~=KAv#$!rNlNoh!Ub=(>J|7`8Z#)M0TcMFzOp7fc<93t=XJ_U zh7CNZ$4KXnhk3^EI9<|-=N@mzAKJ$VSBnGx*DKnT^Wfl{zSj=!8)f}*I5%$xL3evJ z?bGDuo|lC(=7|IMs#c%TI`}%L3%)AC?`OryALst>Os`@9tuWs`c=P*hGzhH}Kn-m2sm+C0^ zgzs|A1)=HFJ)yn4fv^dcNC$W^rXPzadBV zE1F0r66oW~XZUI%6}M(31?yTVB~(Km;Vt9M^t{i5;f1&kyq7+WRp|v zBM=g&OE)}#jDfro4^0g9LPar#utrtZC^7Jw-KU}D&vC$Z{J>e52~kqs4(cWsFmmh=Sj8AK+9d$P6RG&JB$_O{TfuK-7B@ z7!wyGf(@M<;FmqxlA?S0IJj2AO&0)&CUf(B-OeqKaWg z7~Fl_JX2K8R~k7OPn{KgYCTnhCM!~1gl8EfHIIW){&ZG=An33vUOLs&4eC0rvu7_D zoYVFJ{>+i-mnR(!^+A0xU_)tSufmrKG3zZF)9)10hbs0;->a|hHycPr7Eqg5N!TDt z;J^1QoM;sAn$VboH>!DxrgHqs%+;?l?Zi-l9ii-_AZ{QDm{c%;FhpKyOZ&v&v71@W zdf-dM&G!A)@2)l@mMj*9Q#sDN6AonGC#iir(NE5;KrcaSMl(RvQpP;ek_K0CKysXT zIcg#?e@u`G{JV@|XeGez%CF1~;F%d16}UEleOJg^ke_Bal%t{S>4&51#se`dJsYdd zha5Pf15MWUU?(aiRm*?^*57)Hs3{o!2~1^*`(4JAmo}<9p#Ye~6$d^HeudQdl@gkP zam@DBAb*(*2kt_|Qq@%F41mO_5IeE$5gx{f*Uz09-1_F{rMQC-oMksEHVO$$(DOaX z$T)C4WcCWh0v5r|+Xc$@JbfKSsV;C6bzqyHH~mT=NG@D2B7{Ej-!xMnbtrE|-l5@P zGZVVPB&ro)2}LEN$N%~e^J-mw9B((V-=d8XkK0jv{d6HMQmJnMZgP>-aU`fKzVgo< zSl4eNoy#A!_j|<3y@l5l+N^TcuyteTEW!WzFlOls&-1_pdhf zpPm$A^?FRH9l46y&`ebA`qzu`E(efC(mIv(ORS$=&NXjPK#P@zkHhf}{P zCKW0P1ozaM;D*!jB|Q2e7-0*=hUl5H3UXm*E0J_X+Ia-^E@@z*aOPaX z_*|mILK^Cxfr4f!G+Eaf&28|r_lM9?b%MDABv`Q6tvrzRIOfI+V=XF|9-@yY0_K(7 ztj)qubc8vC`N=ZjxI~*J&D{j-oEk}nMG=PC`Tb!xxC)s<@&cSEqk|eVBqMIhse}+e z_>eX;KYWO@8oejr&h=gj*!Eot@5y;xx*z}5jtMfLMa*XytQiSR*86XmTF>?i^^x-y zX$6T-f3bcdkb*G71`VpHe@Wg>2hBN@Wz^H_iB$tN$*FGzQe#Z|-E9Hldm|UJ@B{qa zKGm1}mtbs~`^pTWn7-Yg?MIpsQ+`@$2ph|gkD#gR$zIqk%JO|Mup2U zy=WS~o$`V`IpSYSzgzA5z38dr0wx0xR*tX(L}dqrVPnlxndMcsF7mC{T4?rRhEPl= zO*S<6Y^3oaOE5{SD|+g6TN1rN}HAfJ+6%!v1DZOg-a2WaUE$U0h!y7~LH`8>P zynf-K2o%V-lwsGgXp;&y0_ss%K$E=eYZcmGt%L+HqZr4C6g+;JcpMPirj~;5zx&FG zp1N4lJDbbOK%Xk)+UK%EP;*lbn+M0}UN4SnRCCw35xCZpQ@||Wsb`%;(vAu1F#iCV zRTQTF9XBz+t|4gU6Hkcq&5zBpb!-(_-M6f>B4Gknb0j{j65z~J+TSxOUIa;)gF(i~ z^&3*8+E7UYF_TbWzU}0uz6qdwE}^mEB`qkvP97!cJ*9ZhFTvFBA`-`_Bf@U&^`+7w zKG;%Y0~CB+TR4x7!38CGPbm3GVVq#UtdJ}SE#j@1k5^9UTfL(}N)xFKe`k4SO*;c# zYN*QzO2|JGr7jgyk~OX>MzB$_9-TbDyj6QMC*cG-=mZu1B9Tp>C&F-hkKpC&dnX|TXg{JggoRe1gY3{g7n=Q= zhn@n^U;^3(qb)f2+TFKAa#nK8&0-pD_!piCz(`Kf!%*S|IaD(_cLuT$;v0LPY3|@p zUjo(I*0{4*Q9B-{KehRjA8V&|GX^vPycO)%lex;#8Fft+R3UtQY9#$8|1;1-waD$$+hqW@>TU2+Dc(Z@gvYi zmV%i7?bK*?aP(>&>FRG#BT#zlG<{p-o%xej- z%+o*g;xyTh+~uVKLi-Py`N9leM5#mI=o-Rwl8=u>(-TZb@O3Vbr`hJwtc-i^jJv?c z7+O6+V2xBH3YaFD^&X{$6c*;FN_jEgaKe&oR^1J(EaWyAG%?1?UmhYs)nS8V$uVnQ z6!}e}tu@<}J_rZ4A;Uzt&0W_t;URnm*?O@qo^nK1k)Kl)akLjD3wd@HkVGJM!hvL7 z&S6_ccbdIawrYay<8WHATPPR5!885HSEb=4wnlZ;kZ*~Aoisi5Ov9lL8TBB)jOwUr z+M^9hPW6sv9Ce7FQKR$k863G7figatkizP?I7iq9f>+(Py?vbC8Tp$`$aQ{$P_bhn z#HZHhaSJj)l{5)QLYo_5%%hbsv8=m{=;DaH)6@CIQ(KIbDKQAeYepfU>Svn=2g}lQ z7TP*s8!c|&tKx{!!IFz)&adNRiToparR8w~zIkiCEmMnSO$QFegf6~m=wvdv!;iveOjq7aQ0?q= z(%ngvu9P`Qle9+LP810iMn2a%#b&4|cx-!()4Yrg8leaqI@L>8yQSkn+`9NtU|NyM z38D315GH2>CsK~5&h%mSpzeR8I^_OUHdS3qP=RPi8)`m8J0Kpq_c)&icM^ir?m94^ z>Qe2F2wQ{-)YSgQJlpU~l_KZbL4$QC%4&hA68g*_L48t?4p!wY+w5rydHjtIOR;KO z%z9L=TdrPCG+l&rIPevg@ehsE)DQl zp`)viHSeT}besR*HCxfQ7HkTJR^a`9J36YCHG!h--6KlJf(6PW#bXgjeS%akDp!>gSQzUipHu!Tev-WuUp-4M@jf zx-R~MvdYJXGRu;}W^)3l^xQqK;gTN^g(9xWT108_s6?E&h;Qh%<(qIqMP)z!eooPV zwHO+Ql`(Vl&Nx+;{E^C*hbuoOpJfgUjAB)%AP4=+t(=I$_SVUKyj^S3t+n5nK`Tw3 zd(Dw*t-HQ@4`zQN?DIPu`cdNnI(JY_N+g(U17<6v`7vts-Cc)ocaCyWAlW#F@wkg2 zyf!=Lo)~E{zmP7X7j2nBCVj)q976m`W^PRWXEw9j5iXzHzeTiiT+F#S>1g`KD3Rtn zFGw4O{9AsvSnc83OGz>O&LW1iOUh$(xb9LVFc+TeV1FGFJ3SgRnTv`h{SznEWx{7+OqDUP{^}{DH)Aafp~#9s`|906`Y@9dxe^ zhCPnSG;#tG? z0|&+s@?e6|m+q`5ZV*tJ;3wYvP=6v!+R!{8hkgo$G*7fsf|eapje7x+2pA+ffxlf_ zVL5s6Hl*MIC`=pD}ICSMYhGW|JD(1%e&R{|XDA^^JJzc zIOnFCAtRP3)zczM?hc7o*Tna}T?@ZF6C7Z=913^j?uPt+FUq6Q?)=(QJpunn{=QCO zn~2!WbQ@-j+5hyicuQY!hc?LEqrc!8isv=@u}s9H;o4L6NCjsRw{|Q8&M~xG@%4Oh zM(vhZ2`}_}9`IOOPU|qSeSk=#Wqe!6J|JwvhW+sU)sg7{ zAMI2g->lt6Yt-7WAYwCd_(osBZI@!#pHGTi)Y z;(Q@z{TzCzNZ{`JPbJ!V16oWPxRDk&!)o!CJbx=!P^5-DZ4Z`0^Pa+kyZPdA;9T%p z3tH6SH!v%HCN@?htMW?Ix=uv;W>tU~7*duAb>*Gv^R?P1Tzi!=i~4Ug>9mBabe@9Paa|UV?(Q0M z&%zYHMb>Ktu^VQkYWlR>e+Cvh+lIJ7{YKb`AE<8-7l>u;tJubji7Ln0GTw;1!3Z~bcrwfT_R1 z?YZMfHX|T!w@KsG!^&1tj|<{6(CsStM#?o7KV`OEGY!xW$KP!EDexoreJMfa?Id4gw;kcpDqxD+eKW(MPLo@# zI#K0}nWCOb!{qnp2I4|wUFznF=+RcL17flidh7sT5QoeV4Gxhv&1`*6(W165C z+LKD>YUmcM_AbFT4<=qp`wu)cP+{8r)+_-nr1^i*_1`?9xshCM9ERCfE{XI4#|Vm! zzI0%bf$5SPm048dwAv_KsXo;bJ+YT>*q+XV91{orNl_^&ArrQxFYV+YkU|V3VZ?HyO-#O)&S5Vp!e~k$yoe2ey6ry01g8+X z41EYooTV;`mI8i?LSK}#LJOxX4{G?&e47N%;w*U{{1<4u$mIhV4w__SdXxQNa+Z9SBHz>8t0bHf#MUxxkVAL4<;_pUn*I z+G;GAp{QC>bn>b<%;g4il`u&4szx2s7Q``RYVM}cF1R$4P?>)Z#GKcS+_OCvB*hn! zIpmlCl;n5GlKhw{&q^*T%moNXRed5^3o^*{B{8gOSBgU5QLzcToJ=Q%m&cJYuKG&| zmduZWE_yfH&_Xewd}5yL&oRl7E6g&2o&0x=(?sS^C6gx(#w9F^pnv@|2{9ZiPFiK` z<$Xd=@j;;%0BKRSsL1sxT8#*b5!L$79fl^`Cs+EOACT8a5B!neF&>6vGISI>Pv|-3 z0XIJ=M)F@o6J$Aka7JU($1&XXQqF646rjV4CfiW%fIIv9($TiLi8dXjhn-rHN`K?k z`0KJ{iho9&%MP_WS>1Jn{g&T8lQf1i&Q=d>ZznN)?ey@G!D}RZncdR8x>#`r0LWIW zP4oA3Y=i-Iom~{Q8&-u*3?WBJDV?B^Tj&^>wk8L7@s>~2@QJ6iiC!rpIS%mLh3Ao2 zpW=7(gm+2c@?k+}Bzb5;RVa=8XuBjaT2;K_rS>v)KGB#2``D6DOis{FGaIkksCY{C z=<;$9DcoOYf7aaJK7Fc}1jKLlT{i;Hs;PI*enYYDl>cXKAR6%F#4f52@NtTxJT^rX zi{XiLDyWFDZCH-{!Im2@SDLjBiExJd821n?2GEeFaGzWtqNO?lq9Y4;p9928VDu=l z!@TNe?*svIc=>2wk(>+zTJZc)k>hC~{oH*-t;>14 zx5`Dei`!ON7;Xf7p$HkoIiwt~aE}J_sVb1X=)3bA54#S{K@Nm_wBnHr7~?C$QNg7C z3+^!_ha!8;s;LeiLo;EIH>k7A03lB)+sWU3W0ax5QgQQAK9*4iD$%rx*R<&v82!ET zt9qRc#1^~Kj2$8~oWdBeDKWP+*4&2iG6M+w;$V4 zMS-cr(#jOj1DTLoQ%LnJOT|blhW)ecm{jb2GUgqE! z7sq%qKCJ8!dK;|cn50itpuPOS+&&rJwmj)=62x?U*W2rOJv-K5k9mySOb*xaH<}&9 z$=Q)DJfrUENGpOu-^ax61H+I=lw20a*huOrlsSK`=oVoi5(%v%VX=d7TYv$$6bJ$e z?(h{ozOpumJm~=>Yr24!OPf-5iz01KgPo*Vu_--B!iu^DOZmeEk^@d;WKWif%-N~j zg3#6jl}MqKo4Nl-W!YwU_J?wop7M?)WA8Jx5EeyN5MXcjKKBeHM%X0ow4SnxiQ=E} z$Zqu>w-q^r8U--D!Ff3sHgAUlMxSxcSXB;jJar-ogTO{cyzwJ26 zVY!B)y;xVYA7;&TqR0v@CZF3^q#>+XE0Z<`pE$Hzg!|>(&vAS{j3UL(hKv~hT=#l0 zDx^I|T$f@WCf(Ukr1wdPq+u_gh{|-KV5(gmjFojXom1~D!j0>&L`WtVG;*^3Z(0if z0NZG`5_&XbvyMvrsz$sSam=$M69K2VNb$V!x0Z`?YFD+=< z$0sfZr#EQy+cix7DMzuUCE(qZ?Fn$(bd=gVO42vj`W%4v_1n>grnH)hW>#f&Ggj6Q z08^U$BWP{+04GoXOAoi&IprHH-JD z6zidm9TCC%S#mtc2jyg0l1V+^ugZB=0_ggMvW%ln4k z=AY!#oXp+&P}87Ochb&SNQay zke||&mN!C4Di`)!3wmoHpeW&yqh`5-MC0``)TlzU%_kNY&vppKhYLL9{chP`S) z?s&`{pPeSJx-~R#+UI}41}+$aLSw8+sJSwn=xztqfs9yba*e1(daWY0$3?*%CdFsq zpsUFqMPX1_UK8N!Q2z}!XfeYO_Co*oX!F5^IP!@;rLhO}&}kGil;#SD=E$GGcY{Af zK)yr<-&!{};-RFg2eeO8O*}K~@@Lf$?-hEPHLSxJ9h8Wit>yS)iB)yTP_xlc)h0Pu z0cUa4&ZofRqo!rcQp-%FPvAKjif8E=RKP(&6hU&UjbVE!Y}WeFE3JhAE79zTa_FTy z3%srU;pIzY$Qy3wvy+a<Q)rO{okR z?-e^^rwEfPrSkz_{+w!WUv;pe`sDYk+GZM%mI!kqbI5#VMs-Dq~ZYDXs-Rh_TfY&AKtDkjF{oU6dMw z9JQ(MyzOSrfrt9JhB0l=4W|GiItqF`2w#Wyobu}n1itVj0qjznUM58L`-#cM1x?BZLK5H1c(GH_$BeRZIY&6z&Y_Jb&lUe#fUs_DAg~fBD zy~XYh;QoCAa|g=Ixjha@=m}{!{P0?-<+=!fa#XncCR~y5iDr`bLyv;d#hZr~k5d{; zJiz9=p&#R5V*EH4aMG-~Q2@lS3es z)i$Lk=^sVD%9{sr3AysgD@2`45ESVx|5@+~>~A(JUZy*X))$c1DA-i(ao&@a$luy@ z2Q=0)arAo8z^#F#0pFhnaLmU@Fov7M$#_~4caPU(!4#`Q`F{nX=fG8rWK$R;8|4GXrk`Bz&A;4tCa zaDuFqp96G}s(CLHrn@dlps92P*=F#oJ1%*RJs6ZtcJl$!g$q%rPHxkS0&!i^MTu!x zztdM^2Mir4m+tb!Wrs+bOMnh641p%YKK0=8286do0=9A%SNkBq7Z6R^8RcKqX_!wtZ%Ow>9C{XDb( zDq~jX3XoI zk(?Mg0y{I3s&^clG&Jjr7{huY{!}La^xF+HEUV5mq(owvz@5j%thCSs1$0X#3@0it z1oFKFLIw=#+#*b#u}xTA7xT!ZKihG`IQI{cBhQC>wfFYjmE}&wys=ma#JD{pHKMnu znEMf)m%i|+T*<}94R4a)* z3r#=PEYQl9@A(@5lYYo_#5#`!02rGqltU$O9yl++92u4xcYkVb+3eT@I?t9soQpAC zKAylIdYW5uHOQ4LP)WJ9;}piR($D7Jua2XHub)gvy~H4&xm~bu!W_X$Kv$)L3tQE> zeO^)pd>U9w=4vCIs$Wr2{gERe?iwgrk=P@5Yu5J@5S%79h3Ck$XahrvNoZ8Y2P#P* z<`8+2sHM*6v}rfeU3a+OvIqvsV2;;Se2dcM$MNZ*JRNs7@#hnvh+&smafTXIuq1Gj z3R8iSNC}IzOJ3ZI5S@)4@i<{Fzw1OA3VV0lh1m`BVtvC|x9=2)e>AV`qq;8Ka}Zp1 z>!3~twTorra%FRqvouAFWCeBNWHnIYHtd=%%=xuzt*2^^oK!D*?^Kv;j7W@(lqDwe*;-?RsPxZoEh zI^^m3@WNqTeL!J9f<55j{LD)c2*A2orc(9b^7Bs{+&*bTr(0hWU`;H&L?^;_9bRYe zG;CCkd{3~$_hw`+Zx((h~vN(jhkMXJkSWRhTyo#>dNK z8ROU~V~bYLplI$y+RwJDc{{E;1XPud(03OhlP2Jq%yZRkO#3M`B^ME?|232vo^@Si z+KxRSagAYrK&tcd{p!Ga*DV5b ztsB@Yucie}VcP%*&yVOhKm_%kD~z+c=EhN=`pJ-LN3J7)ApfIOl2ZX#!iWrKdHOxw zE>rsD;T6(-8h28Ipo0?f&H*djk88FI0a-4)z$&wA$p>rM3o%B>wt6Nf9lEE@dw|0P z{06;hD9JRhaX{2swF?{&kxH>rmLzLJh8O`${SF8y-4)ym*;kYzC#1^-M@_CcijC%x zY9a^XV%Ty84`Jb1uWA92YtrwyH0U<+0-IFdiYb7I+eD3=3u@rT^#jx+zg(KIA zjs5Vyd#=ryZn5)vQuEM1IXg#&`2HQXqhJ-MXl|2xiEmoC#eg6i#98YMRLZ;A1INTR58+pVm3CG0CYY(sU7~J(D9R(XHE7JV_-Ykk|mA? zyBH1Rl;bh}?vYU`CF2wc{fD!c zr}Yj`&YS16%(2Ba>DyM*vRl(>_{D4Z`jNRIS3pPq^|#r!Om`u6K% z{ccw9Id|$LL@J&kQ`Ju0FuqWW@D5#iwtb3Dq=$Q&J^k-1Gkcb9g1`8Yk6qR00Kal6 zCBu%mZ7VjcxBh@oW3YYM1e}S;ydIiQ0_2tK-J>x)+yL za8^WxI!EN;M6zL2-^I?|@!`ID&lbG+09v*>hJlZT}}RZXO6+dLxd zy#Z(xQu!QZ1k=M|`(Y_iAWm-=(?Arvy7mrj_|^T(rYV3EaLO}8{3_{71o+k^&>(i~ zT&hFCRG{8GOGo$Sx!&JkY=WKmJ?FK5I7C>Ru=}#%VKRa; zCrkrnb$AjuW&t-~c@v@{+lg;lB=;+&zYa(!STy0QgX4HxQ#qG3#kw__}R0ne9OB)zNzU7#`E(%w1byYj?2!_i&j+z`aoIoG&K9Y`GZi#6+2>f$ zF5kTe`T}uE{YHo3!PT;@7t|pND%s`q54|i)zrdkKqFbdmII3|465ClgSETA0|JPh1 zx>AwC&Yo)|GV^gQ#TVnt91hWVe^R*3Z z;177xMO~Wo44U>WuGorg;4;iTp7dsjem&PaqA2oPj>vtPRl1xIt@(7~VkTFZ?;(TLFI|M--hU}1zZ z-v%#5eP}5Xb_*j)GR`vscS>bT{eh>AW-X)Lo>0(_?Rty6i6SEp3vo>KKfEi;J>R^D&YyCXBb#Wi}>6**i@Wgsg_bRg(yP;=K%;Sp-yxKhq zmmo~%y5KHD{GQf)B*bF^yn4?^cx?~n-3tB z1)r$6X7({~H}GX?&0_U<1;h`oP*IC}Zv^oQe3F@@N|ldhuDtLU2a0<7z;wa!HB4lf zf_YTaIS8g}*J3${==N{Cajy%oUdN4)Do1PXD@mdnh>1;JpA!ML1`YoXvo-;T)OVS6 zwT@RcXl;o?x5OmJ6=h{;eq~R+n=fMR0-V)0wK{|OeEmnOni9#M4TN1zNp@acu47j@ ztJnizS`r?rpQ0S{Kqd~NRV~-I!p}BDFq|UX(d?2rpLX=L;^?n&&AXIGlf8OIQN(?= zGUi|P!D|huz*s2*b|Bzv9Gl|JPdXV$-l|K_xNlWt@iHQn9PEbL520bCvrn*Y(;)D* zdF|^Fw(jrBy;zG5`$$ocN%6@pScM;UBL$(4OItaFM<6M3P%PJ^Quiqdp<_Oe!ZTcIIz`Hul?^ zripZ;Y?g$6j18;^P%*3)a*J9PbSP}t;=0@web`y)ZEX5EnfJ1$Ne+oM79RZ|Q^tz) z>(p~zSF#AlMr;pQvmkk5WGHv;<;yS@PLeZa@%2j9pf zya5FKsEJT8YhMi7MFqiyJ9knIn9uzVZWrC0$cyGK(}`fzersLkr<}yaKpPJP>3sRL zYa)fLN9GTo9gS67Esftp;;S4M(sz%hD)L(Uw0dlp~NMxhX*Si(#Ue;!wECl;WB^cq^3AqKB-7cLDbe7UFX!OK|L>Gg{M+$XJz zIk{zkSiu}6%u0O{wTP!!1P)*=T^BCX$~^Byj01GbNGazjVzyk0QBxIBI5#4acX1PB zOlZY)^hqDvBl7r3<1tNBy|lb+q17V;2$l7LQFKbW8|)sn%_m%*l4RzMX@LwlDbp%s z$BZgNh1_2@xiax{^Vn)cbPs8<)s~&De1Nuf=`qYQaY$6bqjIhexiy(N%#;pwg+9lw zX(Bm}47Iz<^auC68<=@jID(C&r48Ym5aH6q58F`h3`E@RqwbaeZ`Rm09JR0sc3Flw zGElVgf5Gi^oq9eMFQ!j*&o`pn7ig_D2Z^KXNnVxDv{{<9Vbko{*&J*&&|CX%=a1Tq zZOnh=ir;^*lGcNTIVd~oy-Lj$n>y=mk^^SBj&|4r+DwB){{KAbnCU)X?Nz1a_fosdCBz+n?W-(pYD*yu<78r zo*_oU>*>qpX%t(+=;FjNn}r?zze|KNCofr*@unb6YDgH}a_LtxN=E`PR%jFs{bQbw zXQy9Z=eBdIoBS%3ob{>RqgQsWjM`r4KGnzdUn|d+2i}29-x4@2eRb+|s%c=li#VYs z9wPE*I#`ly0h{KQn1mXr?SuoQLeEvUjC zy+ldDQy#^)no$Ezm0rdVu-n#&Ap+SzxTgQ`@%2zQJQZ55zE%AUmEP>)p{8$~(Ldca z3=+_31!T*2Xzq9@;C@`Wb248UmntdRhW=eMf$sVlTno}1qG@9gjebq?S$I#hwQ_6c z3O6bZPx=9h_VwH`1?>&BA9FAC0o9T1%Ue8$0t1~oe9>obw|;PE3lfMnNoBrCGk71` z+YNl_`ltT|!{CNVOSTDPe`1OWi}3uJ*f0gUVHs&NmLR=p_uFtwG^KK!Ip}$>V9}$n zD-C|?Fzy`!*~4|9`qfVk-vhXDwAF4Bd4Op}@IQR0A0kzJ%M&kBJ{#j|dM=%X6$6A0~PlTw7*MEGMkjW}CSs(ilQ$xGevZC$~lyoANr?{V~obI=5E zI8RTSn7(esBgS*nA8IzL+QAdlYo)Jj_Ul$1K*?CtK2#9@q*=AfUxHaAye##zVqiT; zm5t9BXb1+>$~wa;Jm+=kLq|k=86rAD5&yB3+So zl_le}KMIaYw0( z(VdoaAdtMD59&1q!wv-wd_@A3VS}?QGiVW^a&~WoB|Y=4S{wroXnZ z5G1(ZY%-Ap_1ziFKFBrWgCN6)$OkPtc(_GL#f;rqrx2EZ6#QRM1d89QP4g6Q!pqwR zv4X%2%G_EmPp*ndlhp*ZBqgW!G^RU4h;`n~^QVi+F#z6~Om{EFpG2d@XX*5v_AL?< z-4Gj@=eic_>=5<-NU2`Iwl#0pFTTq-iRSzDhw*94`^R7$I%y_lgJ**Dv*ws`U1wW$ zLS5~5JFWJr=HIcidBrv&foW~TaRG3=hPV?=@HQbDH4HLWnBXAnuBqGn{p;}upK z3U+h}L4Or9sN>lqPke?s*I{f)vM#o@X|>tJD%0=4+25?jT|*2o_*Z+M)&!O;zysp? z4}|(#L$*luk|$~m;1XKIcvXo{rZxti(9*!e%?*R zpn!@Ey|BTbpjlV053q$zYBwuNCIDZvTQ}qJ`a_LH0tgYb4m>a^bxsp z%l)=IBshyC6Dh2K{RD}NS!aud*iEo>UbpL$l!x?x$ZK6i&kR{XHZSI9$;a2VzqZI` zJwTw^R)Ee1K?{17h=4ICs}2#E!zzaNqI6*rjIr36ZtjMlIEf8ugqjD5ZykT(<-j(A z0k$PwD`!4Ucc-`enrDVqZKuZ?B5SZ-lLG7FIso!!kW>h`M1jADbOiT+PObWlJH>>g zJK}k+9VDDqiyD7P@6Ju`C6m^&VP8G;+ye(hI=&WRpoApYNh>D3R@ zEGR4OtY(5Rf~wc3g^v#d9|na?`*2^FCTflaEdO`-mO*(kN5OreQCMQ@YS3z*{0CyR z&IGY#l7N{j{tyn86$q9<3Y4MjYGxJfH(gm(4=fB>Lx@l3PDI%I=3Aq zy#&l#8yfo=;VbI(`Lbn-1A!9+K9OshUpwqMrb-w%iFQr43?m;Pe;d5eEH!CSSY6Mz z_J7;)p; z1KI0l|CX5M1V8b+fxDlL7wwRAUf)OTm}fewLM%lh`QhTGb#GOsj2%}B6AjPCgu5ZY zdr4s!Ka&h2eb^A_A#E~f39k1D2>)2~sz0=QNZg?cST9Pa66PoT!oW-ZdYIc$*NnHybyVyl81^|PYd<8NnlP3LdBMFfjMxh)F^BFrA6=z*L zFC|4c@Ah4h5AnfzJpnrb4Wu4j z)SpxIGu^PYf^MMzLn1cw3@&o4W;n$TSEQ(4@6XW;`%`Z2%#G_BSnF5)J^lLt-#ekT zF>Aaq?QL#cR-71H`_=vw!&FF0Mgz!apCh>ZSl)I9Gp`7uW?eUoKq5Rk=bdw^8Xk8( zVtd1vw2YWlkxQ^#7NJ^}t{SrgeM}7^@|5L%Fuj+q+nurIp9r(3LY7VVN477ATN34+1`M9oLwdqrZD?ESAX#%NZw#(CjpyC^F9e zvx1L4ufZr^4qL%OQ{k6M9jNkb&(CgdanMyrZ0uPICQrST=0VRw7iSh@+$EeiVXcL}qY;M#s22@pN`{Rss@H|f8SiNXePa+b=4MbJzkQ{3h4AZho`V%D(0~B=PvhVmKbPo z`Xk+a(6u(*9L-3{XBh4hsu3~=wLkNMUgg&^0Z;0Fi-W>BIkr_ujZ_=U8Dn-dqbo@3 zNy_yo$uex3kZPR|gHPcJ=ZB-P53!*@$#Raxbo^H3?j9Tc_AQ&u=Ags`DDzaBtd`nKiH-YoLDf+IjA- zIvG@e@iIeXP@&u*IM%+1&6?2--5~O>~^J9OM(M;&=!hk5wl{|Kl0h z%b)4-;$AL8(6M>r)8a=-nvD_N9u`0Qdk5-j)?54al9yE83)NnAW9_-BI=Zd^}eY2 z$=KgrohSzKIPy~v06I(>pO=nB~UA6q~zoVbVKT&y0>l`NEe*d^K_YCncP1ZWqGns2>m?6UL*8Nw?1+f%N> zX)Kw&qk!*X(qOr?6kh#}j|at!HEire_##q|^T0|;QA4bfbZMv0zm6qK0yeY6U2yyT zhpH6bHvMazs%q27?xOo+rYVG8(qh*?fMvX5)>M2gzN3-P?<@5G3)YYmBCY;YcpJzE zxbl0?k?Dq!TK9!=Kjdwf9Xv~$8rO?`Kszq17i8XO6oannUC1{G#<~8R;T4^7vfknf zfdMd?!j$cmDi(lXN91cAyxTL%KpkUa2~yvZi_8(8u5b@t$M#c`iI0asN*a{VRm4nYDkfp%7gXkWzQ)lfMf=1pyl z`DV{FS>eJ4Mh-QPthJdzr9s}tXDVKC`(FklkTAf1sz$}VJzH2r?Ubm=GWamr+|#@N zX`;Q$8DZGnvJWI0+(t7tzh=6L?ahzWCW_?$-zQt;V$C*gMYMX}n>ZZ&z6brgdMVVp za(%8^I_qgo4}mOEAfrBcpm#~nE3WFBkv}we8oEY&I2a9zWh}HJ-c6E)1g8Bik%yoK z6t|_XAkQe8r5%h?DKQDHA?7TxH4(U5U&XiS(sXW+B4Jx(pqe5LB16sTQXo$~Yk&xt zMf(C4w^V6veuc%^hE>=Q#+w;0R1zapU|UQ}hgRhl>G-^2K!N~w3@2I*DIX|? z|1n^aFxJ6%nFxNlK)$7u&}sr1pI+|rACeSuH}guO2}(s}Ma8O%VBXjiwC%zb1Nnbo zHB9*Q1Y+q7IMZ<2)^=?WGjs#UVVAmDr6XIT;i{nYV}9}ReU58;N|3c;Cai0FyK{<2 zD;;e6_v=a73xLu?1+@5~E`M2YjkPXWgmfTVx2ln)=u{wyCcsCAj;sZdTq1B>3ajzU z>3cU|Z;R6M%%IZyWYG5=AFIEJPVG7g=4dmR`9{1(wS16!(1(X1VUD+~u3UBG@l3*- z39^FIU>hcM{IERuAQxTTPz@ZHFM1}>UOZ0$TGSe;bT)^k{xdCrv9Z0?@*M8UM0wHg zIaI(?hX;{`ywk};?A_Tb8(^#bk;luwE%}>NFKAwuUa^V+eXe7gTu#(TlLybLJr8B_ zg0}dH;g71H5H)oM;Jq2an%vltT3214)Q}KKb4Cu&IY-H}%WSIp zTq?*b_w^OTeh2<2ZFkj%l_w|y9d~1cgYOsJRoMOg>|!EsN&_M4HI~q>;CEn5h5eoe z$WZWQ2oq%n<3>KqH$L$2#pkBxs??rro}htize`d0vMTz9`RvJ!D4UVL&ni2T3f~g9 zRgi1&7m`}gdKAtQEj+^Hw0}d&X@))5HW#<91C2O#3};hXW^| zcchSH2Fr-_UdY?&7B;Bj=kw8f_YitjX|>(-Jx<-pi`CzSPJ9G&3^&*>@*uT=w2PFT#O(dL8jj2Y&1S^`8KU>CC>PR~)__X2nDQh$T( zU^&N1o4k0d5HtPh-bO9wtb9mC7*VT zMVFlF0^4Ox?nDqu=2;TN-b}Lkhk8fNOkj5DxDO55H-L{$P&c_tiGi#Z z)w%c3F{L1$aJJWZ;~-@dU_a}-IFclw(v^;H{fm4~e>&d{;PF$kv?@GiAU}LE91`FO zTHIbuD1V<8F*0M5;xCt>6=|ifcbMY+0=a0X;%?BlC4<*4h1iJCGIU)d zw^AOIP)2C0q=O4OZ^$B}{o1@z~B4O0u(nYP6@Y8u-EVadfbdcv8MmL9wJqu&N zL5|$X^g=BM3xh2LrrL3a*bE_lBtfaz%{vU}uGuc_8bcOkd{E%l?x9;OmfwzuowZ=_ zFz6o=B#4xr|4RPfu=MRAgk`Q7wjV-X$R0?Ara$H~W;tw7VOP~LbW4+d;m%+3Dm~pI zVRO>!D0uMb>E*qvYQAZ-PSh{m*ZTAjb z3~;Z?`N_c8FOdf3vk@ZEbF}@MWIOBG9hA&U>Dvnls4DhFpKUtKGgNiT^Mr7SBMChym4A@!&yFR|CGUwgZsrYq=Ym8WYGNQ?+Vm&cLiK`hTb%2(&3qI= zWY(MHVjB5KGR}P!u746mV%RNbSP>)ttjauaSONCE&^B=aETbpX9fe37l0zt?REEJ_r+VUznLb7>@wEGVT^eZAjU1<&-JsR8OsW+i~*a? zxNWtBKIZlLbtxa)HKF0S97NlQ-$dHGZeHi!%olp;Q6x)+{-loPOX*KsH5fojJAKo3 z&R(7j`Em!>h3#Y%00m`1^Q1`R%JKygo0VT33bubx;$sQUc-|?!N>Qaq2k2Golxkeh zF*DG`s~ELa2xk}7ohYOK@rJ6fz6A*QskSuZMaPx+K1(FrFq^>S=R|P<0RgESr=Zzg= zqk`H1Bs3SgggyCdU4kGa24uQOvG18c`PkmVwoORrf_8<_Gz^7Mpc+{K&{2h6$MXKC zK{mnN5t7pB#nQ=f_j3Z#xV3Ue_p$4zcZ-&@J^ydNo7 z)jumFn7=~9uGyeWlirT$?hFH^0d-mD^z#2SQ|Ol ze|-+0LGby}a$XFAX_O-6zy>08rLm(~C{wW}IaX(Hbm75#7+J!6-kzl0mAEjMUoS5Wfq*14aiapie62 zEb}!c5gx0W@~Sty6}eU`zZo?H@=?^3k;^Lj%dgp`V|Ra2vefM+i&*2=P2qg*JzHO0 z>cwbUb3vMq6|KN(`3U1f$1z=xazi7|**&YtC=GJ|E6q!nK#<>)oZCHdoo~ zBLiLZtLBUmKk!}W@{V~0{4G9cbYB~j#OaEm;&s$_SE5{L}3nh52(Aj2ImNVs<)(i!23TY?>FG#+$8wRo`@(a!(mMs@1Wm!T_;#yXHqp_0LfbRO^{WZeKy6 zIU-0$e}j#AI|BYmgZdej-C*Wo{e&aq^N+Eb3mncCC7};sOe{u+mJOU*?!Z-7Wi0YL zc+R{RKa$(r(p3G+-lPa9uGF&jA$s4%u%!Cxtu(2ZWzqMb;eF;wy&`Yi#t z>PZ?*fG?(+a+!S+1g$dAR>8hU)L|XXl;2vuQo}TrYW;A0aM?tiGyaL7GBy2t*KnKj zj~Ewd90!Apck2A3$aI=vrQE+Ecjva{X~*Oo@jB@NfPo1Qev|u=vg{x)TFKA#;*iH? zOn#M}Mk;9?P!Axs4{km?T=0c(a}KDoD$MC|-v-TBo8UJFBN{w~9@+$jFPI$kMe=ea zoa}T2jJsM}P<uBKJSIpWQ$A9Soe>bqQh_Uscvtis*pu%VvIk^0!S`c*JklLFS-8Shp! z^&Jtor*B+RfSN%4ovuuulY_$mL-OR)^D6|O>p+t_sk&~>nJcw#A=S3n@~{H$&B31! z=?_xSP~-2+5PwwcCa0}Z9*6v!sP{P|Q#&dN_bZpLUAeBZv%um)09+-+P?KnnbB6zO zaZ;Lr&`zPZD&H{X>tk8e3QqMD&|8axgaT|3qe)*q0^+z8J6JTXfDt4UWf>EeqFUs)hFC%h& zC}T-tOj;%&2MMO2ajtEx>vdj*o+J;KSuNQpOb0CRLA_hftl%MSTGEFkbZDsqSn;{k7Mi8V`>6B=VDVJ9-Axa=54J{#sGN5n>73 z0_A7h-bD=}awqsIfpXIqSY&;jbYP*g?=c>f$xP&$+LLoqDWJnN_qv3G(X;d#gCG7VQfEnQ)@D4i5xw3k&Joh|=4#9Np>Xupm9v%+RBZA1Xxd zF?pe^N`HW)`%_E}K&jwQJE$|v@aKk6&$lD7gvLunW@3^!i)GCHV-FyIA63u@ly`!g=g22}iUz4#yVn@3 z>KA69fWOW;9S7@+AG;+6uV}u2_z6G@49pXih9Q1q^xr6=sfkA#JNAaHeZ_&UOzq)= zK_&s8tSNsdH$tvYy4r5kXgtJwKi>*+PdG`zFlA5!aU~J3+XL{gp9-^~l39u|H(m?x% z8cmkWdOO$wgZ7EqloPpt409@xUPSV7BY%;jSNF5v~OLh>?3nqp}icR*emalya zur2VVQw2vhKR~YF4$co#D`x}^mx|>dJX;4b+eU!<+w->B8(LORW44r{B~O! z!2~JUd60(?!TJ%#>mPdl{hzu752Ci~eNjCFiVbW2;WJs}<{}OJ#Z#eSmpk6r=UKKsQudw$)tt}p zP*dB!bY{c{3(}t3e>Gi&_0hhId775Sq=y!o;!)n}n*&30pdTW1l0lrogxNC_M^y-n+1^K}zdOTre zr4Kv2fjfDU3r%^-M(tx7bSH7c&izsjehi*7aN81)$*;K$W! z!8F3l?o$F6S&Y3`oIq(nnERA-#H)p8O?zkKVX~&AJ4f;Kt76sPB~`ZP;zG#=&-5?r z1mFJ>1I#`muEXbjcOZhC)@8)SANX5T5->EhE)d@ZsRoZq$Uc~#*eiS z%+_IKto5vFr|I~7uSd?GEj#?0$ow1AXyyMY;`ou{xH zoSE@p&(`8Xy!WDmnSstGQ2*?z6SZbRU`D`XE`3_IM61|x;a=hhCYmxK4a69oKs5Sk zIStuwIU23*B)tmQ%q2t=k?<$kP%h|lg!S`rpbWyHOV;mb`N`zB3a>%9QMbh;cyQU#5&f=6Pf^z|T0p?3lz_iACo) zhRlT5W~Eg-?ll18v9#OFHU+NhHw0}|SuwTC+(4QNZCsnPdAQRo%H~lDtj)`jCbbce z3zRBOl0ieOhWP?pO#|mqHtRQG#PEP=Y?S)0v(%mc27e;Er|-wYc@2k}@HkUpPK_G| zy0Ev$$K;^iZ{3(sNq>L$q1*Txb4LaNfB+NZ&D((-2-~2FEA3&HcKs2hL#9{ySWqV6 zE<^JwG=5y@E?%HF8N4HW;tf&4iZpP2c}lpSg<0$iP-C81UkMV zUK3%1{F;?K24mZ6=YoEi@52RW%U;hGdd&_0t?&a4yIj-kf#wSGk|XTaoKwR6TVau3 zUdIEiYhUwB64V_ynv>5ptU?-;Li(v!_$iWIfN`4EYjouXf>bCORLJu**M}=4@eAZY zS1AQSYtQL1|E5!&!^YsZaHJr(djvVHe%k!VCT{n?7#$l&u}j1TD&>LGSXvPO5a~fY z^k%MjA1f5$Sop_NyDl=ah{ifZ%uQ9QAwPvFp*~~g22?OkB>{%*H3)o zCu<1<`25q?_UY=STow@WF4j7zlEZt_1c$t=2@DVG|IqNRvxe&mBSowRT$LdNAA)*x z>58_joHEtu)eqY(*f6s3N-C-7p4E9bY4?lOq%mD*3+6&6cZ?OjwaL7u;!KI1IaYX~1PocpkJ6A8;dAolESZWL zGHJ8jr>-H-NG9j$5>SEuGpKW0pk&*{T&k8GQ6-<##zVL_cWOiXZ_poW7L+sgn?NVR zoHHQ&Wsc^tbM+tXf6G!+_Vx1~*l;T48!eU4B@>nb%nVTT=UdKyBBs}t`J+zds_>vG zA2Ok=*|O^iCT@YuUv9Af3~pA3!Psq#AOXNnXksWD?IiwCq`&Le$bmDu1x zoy6h9n5$C-M6pUUgCMPs*%7i(K6{nB$J})tKStZqTh}{kX6VV735is^dkhZBV%!JO z%Ym{tz3IMwLr935r7p_B;Fjx}aNN^om~2m>d#YcjEN(f9a;1-%9k=UDY>>51ji7?w zSIRpKdN)sjLQRP~GRoFz{+lVH%bb&HO0p zS=1#PC6EkaNt$gJol@C`LaPfa;1_amnQnbwJf_07zw&BM;5tbpQz;rCmO}BNpp1W- zuUj8sq9ABXLc|_k(?w`;16yzJaL5_bbgY=cTlKZ4q*<@k6wpdda|A1IM#5COHsDCk zj&$HIob|7TmaiBOdHs;zNN~_WZa!kbHx%DCH91sFgk=Pb*Dqv!zs!^Ip$l;K&n!!@ zX2003<0g=9QmtFQ%;vdiSJ{J7Wi2!!{Hq;ymMg@-{YoY_H6mc7>8YNV1`TG1EBmRC^3BO zOAho@35Sv02jUVWlUisrhj}ODC1VPk4em^4I}(Gcmf0U>7sz3)Pi6>gq0RY}Smw+Z zTf9!Jsay7nx7|ja4=Z8{UJTkb4>*9U0#u2en4av}lbb*C2mg~Vp@gXFoeMV%R`zyY>{M%+UB zYhcr96HS@qpp>w21HIIEZpby#|Z?RvrvT zSF24q2o;0e1O)~OB%YAo0}1L{w->j*dmvDel@?-2mIsK$LX7uCnDCTj^b_(feSk@) zpIOEWb^<-MgKJyb#3$3SnkU&3lHtmtP+R6tw+DzN_BQK@4R%CwRb;h865W9mNi3&v zZYC*fO!qe2p5$E~SHS>OenNiJi)}3k{gHhNl1a~aw@uXKFB1(5yC2%7<|jflkqQ|5 zdy=pRip}`07mu+=M9`y2%D$e(ynNkj_7w&4nGf*e z;QcCeZXRa(AbPxpq?m2}#walM+x}9ji8YeRZ(wZ2GE2GvoW-LsgrIKn7Vrag_~&aS zuhWNzS?39~qmEE~^9f(HIjT@X~XnRk8#5Pn{~9l)lm&GlhC~ zv&Fngke&}wvmg+))A;1F3tw>=6TQJ3smt(FH6gu7+CAe;pWl zk1dx`{>IN3wf1d9!YWz}7XfvG%#@mxFTh~=pk-UcN;hP(87te66a{d4?E`f_ateE$ z71S^O?8MR$VDXTSSuH!GKpZyq|HBq^AMN; zhV#?Ks%WEZL0&09PXpmGjmpb4r#yR&NQ(TcfqvXPtjF14oDm_Ea#wRWUk))lw1=#~ zFL%4^LP=b%oKW%fGK%SMDYV)=+Sy~oS;s;l*83Lr5!{i%MP_Mc37y{A0TI!&9U%$9 zcT7RBYC2tYxU~`6jo=vmH41$MacLHxFjH*wl*4?YIHJW{Z_fTsk7zF|e3Pg~*fPpj z32r(NB$eut&{t*!7l?4}J(=|~ukLm&$%N|WDv6)E`hu#*v9g>;S&Q9ld=>jJh;eY9 z6rC|W75w^EwDOCxY1GGrTM-*UNx0St_T(r+7iEBO!4fBzl%U&q%&*aM<*TZ0w?wnW zCD>#?d$voXIj(OE!KULQuVUoemLi`i42GurH*pd9a*FTScqD*b^At!GYJZ8Zf;ez@ zoLItfSVvat*5aYK?8a{3JXE>yhH8gW3ENUWXEk=cw-8cGVA^hM9CMt9!egXJYGkPo zXA!Ztl6!crw{lLs(2>RFC23}h`la&!%(+8jXcoDXa)oc5u3dJlSJwP@*!v)27w$;R=w_&op=3Ea90FT~VywL>20*w_WrEcO*+Kgjob6C?zQga3 zDUWX58OM$E6MZFY1(K#)V+Ow-BUUZuD(;#f`8SuaXEa}kP}4wkU8hr&D2!1 zzSGSoevgG5m<&IV)A~Jq#|l>_Jcy3DQ14YUfR>8}5mL33xc{;@QNHF8!uHCD)B?s@ zVrkJCWoGR5Fkshy+lryR^tszrNNI=(OC>BMi^AveWInf8Ko?9i3UChLb$f+x#gr4J z*=s@bY!;4z0PO=qSu0gviI&patT>45I^ZUdA~9@mH|CU6@)A5N-o*NagM1Oxs^0Ub z`M4EvB~evUq6a*{sBe{Vty33JVz+9^Nmz2!k~e~_9KTpVfO9d@*_+~$t(h+d@ZZv+ zka04822=K33~NZx*>$5pnFgu$o3BuDsgnm;yU|45!San!@jp%p)HVHY9JT56UHo$| z+hrrc%)gS*ex10Ds+Gta3}}Y1G-99-!s$s)hgben3atiVZ~R+iEgJf*v@JhX&ilA> zcy;T2Q-{9bRDO$%Ba?soEsxMo8$3;UrX!3d%F`e_y*nkL;*bu+2-dVA-P+S%h$X>6 zrW6199p~=-9z;+h$#K6Zp&d)O?7Z@ipRTf{Xx9Pp=l1uBNjQpJ&atge*_J0j(G_k+mob| zL{%u!%}8}{z*8&x?_15#4!EEu72D2jA}826v3FIze^NI|+u#&Yx?qKy*RfQm9>m!g z=+@Nn@5XXXIU%FW>^ondjMTWTpbDnSkuSt#&@B31+P8VTmr2=mFQ)1l~C|*tcC88h3QlLIbfFoTzp*RPIQ8D5B6Ebdp2G}&ezput6A{o71!i*Tz zWr%?wgM?6f{d|Rz$w0)GREK=aVKB;HBRr~W9VOHoRAb=YK}FC}B}2kdp>}sZtKnsp zr>!oUVa>)IzOhEOiN+Kx;+4_(iwMn&!U}nLMsbrdLR+zHovoe*evu1TKkmf4Ylz1E zM^meDcaGIALWrK0OQoqlv@D8E2kB<(3sSb1cn%!`GQ+zdh44u|kHx%pkx%m=R@6pl zo+Z66Y&XRIB9N5@JNGUdk`~S8W62bcB;E$0Sxe}o2)0Wh<_{pHg^2h0U986|Hxac4 zlFQ&>N{-c+dxg#FrK1&|OvTRz4ElSq=r4q<8-^WVD92rM78x=MWc;msZO4+AXHG+A zW=fG9+06wM%R(T%sj1Y7Ki6sGoo{Ik{2(?geaQ2amN&d&Ddp2w05Z+#y_!Z~tFQFB z*l$xTKMAs*x$e!mC%XL-aXTGM#h;dxhLg*Mb_j&h;DOzYBv;n|MLy7apsdDS0rBQ@ zN=;2YpKOSmwm;EagM=j9Q{z~xsuv!Zy>)8Oy7C(_(&xnp5Jd-NyUUO0_qWeA5RUVoynHZXgvQu1D+idJ90v@uA*eIf*<4$cT76HOr1 zC3@y%Q)~{3YQbljOMUK&VO)be9)l3`#Q`|taH92ugI|sV{0E)ezg%Yk+3W+}*ejHf zNh{esVjAFwXx_9dYIj!i`1n+TP+j9Gv(^w&*C$d~YJP&XB1K9K?;`WG!FKG{vLbdB zZ18`RQfwE=4dvBTNAnvE@|K%XBrvsrj^s2#xo?%51j{8yXW(1nT0~6sbTyT#`pqTk zj(6SEyJm~8ibjkd2dE3Ddt#E%E=d_JN91bLizltq{VcW;8+u!O6PK->O!^3T#(!3_ zYf>SfS|AA?@*p+q=3uxo+i|$`zw?IvD$cTR(@hklU@Ccz(5izLywe0qJ?J zsKV?&Wa~V5tx)g|?c-@-*wKM8URSw>q(I$DPDo1oF#ghH15s2#Uo_XKY#*>>}io4;$SFD5EBIU6FCWLJ@lzw5-PQ5O1ldwivVI3HC4Dd+~& zCV6Ky=MEwvV{u2?i73R_3)$@U2@4V&5%xXfCM*%At+ z^<)q@GyXnWn-MU9q%+dhw7!?s7aGHB`&hNJp%1d@*RV>=xFBqpONK8zG_eO2sEuN( zg2uhJxHcco!3rw{WwrLs_!4r!|0ttf>`AKmQVK_;n3^d^EH&`=9S9fl%UlA-KHzPO z>F4p@PJvJA{W}=Ixl|~y5{D(%E+p|z8He7Th{L>zk49K6z6qh41rUpr23>=!{x62b1)*#xKl{35l2AY;NsEYM^ z5TY80X3O;)-JxQI&u}4%5Y;0VB~+)FYPqH6GcJ#E1ceV8{Hh$K$U6)l5h`y!U93Uh zlc=hb{bT#pjQ#144VW08}VufW@O4`AUsaLnUeueB$14=Ng?5Ss{RO_tXz>ul% zxt&DdV&-pbm7DZ|U=i{Vntd|vz&-VMBCKz+8HTeYHvCF>Upb}tDy|CUB*fmL8RG{M zQY^mo)e5NIn&h78?Ru~Yf|5`p_9Y?SJcgyo^LoYU^a-D2nLduxLo)C1FEJ4BLQMMb z1@pYwdz`jRYoF84#w?wt6y2_2({@yQ{!1<^!0u5U7o-~n2V#wjBZBbq?!_u&_NNW$ z*2JUU5@PE)*g58zcJ5ynNPhBvD4s-`QTggVlEN<&B{~z-|LEa2k;?aU7$e4A&GA;J z{?Mk}lrwW|8VTk0`kvHs5j;niRKp$m8 z2PsnGSOAOpmk<}&VxUT@PCCZxJU9%#;q)Sq5Q}t>O(jbH7(2knN%~<$xkE&wPvly7 zue8MD6AltwNP6hRl)=B4iMQM=uk|3~=dWiIB*Vyyo<{Gpw4*;c4UylN-X>L)Qckbi zxv`6XCBi7{Yy1aK|AsJn8`4;;j_AX1s?M0;D4(j1e16}5LiJ5cf^)E!p?ps2ytp}$ z@KxxVLu6>s0y0b@4}Iape9~m-;+6pjmdkHggBdk!{39K^Db5)#YMP#Qx|9yFU+GVV zw+RG1Tf8$7!}3a-J6rMMd^J}dCTSBbeGic^2NNUBbW(D%Shg6kG364Qcs0q;q5`|~ zvgfRaq#8PR?}8j&tdX|#Nl-At6UUqoB(4G^Z9t_c)0mlVntdg_-gN-B%GtkR4+CbM zf|)z1Hc$S2mvgD_ofdtrlW6&1G}17q0O_g))dpCjLPwKQ5UWmj92m48ZRKkTOt3J( z621W1sfPtzO088&cXvQ1{Vny|wc-`PLzMxGdCTpIhXdIMzf#&XLW!_^TGNZZEcZ{E z8WPgw`nP{0<`qYLLz|i5Ijvx#*%*K#5hBVaO;AWhK9cubhI=?Asqk@K3bIz}nZ6%% z-!I`7CD468D>WXg5oBbV{%gwbB}Z;oL@Ddc?lK{XR$^UANu{#v$bppX*!OQO8$(4Hrcdp8vjGUUuL)!5 zUrn!jU;Ne7cqy@2gQ<^-m}y!l*?)i;8-!Eq{Unnj4sgma35$AKHtJ%B%BQ=Z3}bge zFgu^vREIkGnP7x|Fuoho6YEQ+U~ib$%T?Wve@en}p3*b15ykenQwig<)^$$sq@5Zk zS5W%T)n2$YlTvQ)iXJ`VHg`E@I4u?`_@$X+Jh6zAEOYuj*iG64WDe#niPxf+0QO|K zyiqRy`wTpa;#EjyDoZkXHjlO8ny+AM^NxZxgYcX1G+b687y>Raq+{+K|p2=^=k zfQz2_fH-=baM~nap}e<;exYbK9(v!_4j5>Vob0BOhO*H-EnZDRUO<7BbNB9(<)<2y zevR7zU1and59k=hb8QWJH3m}}31^p{?5kO)*!1-{_+yN7^5Q42TxNRU|0e1O)ryA> zLD-)|4;-(%#}{M$A{W0%xFoe>zs4HU+MNzzAvOATAlO*i(XIwd7p9sof;`8;{-VGZ z5B|ia5_KW@25}bte^UctlGBlOEqBsICyan-ho>E^JCh28#B(^>Wm@`zlm84QgP8NR z>@X?Fq~&acQ!FR+T{I-at*hqlV7{ZB?ZwN(2u{Uo#*+*l*dj^6sz>xV-Kr|&HFO9( z;hISL05*|JgF(cg-ss2jn=7A169b!8AM7vEU0uv~$NJ;)G!~;fgcrG9EIIY1lU_4K zEZnR-XhBDXKPCRNa`<7BxQO@_nZSRa*@yi*TQh`dh>u~Ck*=wR-IR!xRMp0?Kr1p2=yIK=gD|BXHY0FB^XJ) zyf%r0lVmuhZVPB|7>EHC44PP5mBNQ!Omu9nG8i-?;Z;9e3b0Al&WYQ33BoZm>$l^8 z_lDTb!T6v*_1Epy3e4LW#9Yo{zRv62MiJgTy7(#9@5`OhT7l?AfjC9-_ zY|HGBg1@?}pM#EXg<5d2j?`N0eGfUX50R+0`$7JkloP;~y*A`;oH|>A{AHTYbVEx` z5xPixL-{-0@tFx2_@79`HT5grNj!1Z?F$B;mAn}p`~2}dpr0HFqn|($SqvZ@Alv5G zS*8ZZkv7!ZTQ+X|GeIGCD@9KB(znRtl_lQkK^&5o`A{Eo3;fG$hi;n%e1I3bnaKCZ zhgh5ENa(Bt!H>9{{TzggU-AEff8cOZoM;2&usyU<)sd8{-U3zc*}-v!4-mw4yK63A zO!vXpK@JD44Wrr$vqpgzd`k8t$ zah|cmVdPH&1fym`&OR!K0UvWXe3ok@?>aN_C8G^7vt;W~64bGzIJlej#~~EOP-otD zUX>=yP@sIV;d&K4i!&lS()}Wh;)7rUQYZIeQ>1lq!_Bb4#F7R=JC2hBV4cbRI=b4N zRU4C6RfK$Tme1-|Ha4PzczzN3BHAJ@T31ew-f{Z$TP$(4xfbWCWF%eL^uQB#>rzlm z!l?FLMxj1uTZ5G7J8TKoe;``t_d^vduk=baj%)JlSCHq$?Owpo&OUrS@= z2_i{wlW)fIK?~=;6AR0cg9Wess}q|(rJ{K0mPjcHPpOX--~9!2Weza7Ddnt=%2X_M zJ$2F3pg87w|Cm0*OubU#boDA6MhV=zzJyiB=|S!77bcei*}6%1HB?&uevUam>GBUC}SxD)gYnS&e{QEQGT%U96MuS6AC(!D3 zo&@iY2lU;rd9J@=xvRxZ+{etUwwdDz+QyC7*)Rt+Q;7GNz0okR_^+*7aC+tB@{Hol zR@X!U^k`Y;5BRvPaxh2sOv@GA4YM)u>JUH5&Eg&^Ra$b|GFN0BAO_E_cjJ9!u|(ep z2KJh6DO-YCV_5|7-e#{>Xnj(*AgNkjz4l_ zt;4=k1qC7|$R9noA>e+C=;ZXh1gOqw8O$;lw651__sf1FPIT?7D|hP04O>SsZn;^w}oQ z^T04G%_TkraP~|F!&+{AG4R0tnHW4)Q-oAHFKS_2n`I@P>F?+5aOTMlkyhD!C4^0q zM3sU!swqc}QB3}+lk8f)3da>|=(!7qG5tXZsRSB)m?omCo-~2j{&CcA_d~IXM6KVb z?uFBu3(`Bbq*=hhz%otQllcA^@}b(C1`j;0?;c_N#2#mqhn12sDn9CGI~WdrDG5mx z^lYI^o?r#LLEe?(AAp|PWei4^;vi1bgzaY#dCUI+!1^b4itm>%dKygz6RVbiGF!I6 zS+WTt$Hedly&1ZT4G$r0A?z}nI`^+d_)`vY@AP3Bf0g7_3z6w?{wZD@^SF$8DnlCn zD34SUQ46%DIKSGJkF3${-D*;Y0o3`A+uJxn96ZWpwEOjkXk$?1MQy>XGZJYWwrgAPs zlvtj~j0!IJ%tjxF5RrQHsO@#8-Bxlxar*es>fM-s($!%r=quKwx8L5NlAXx0>}_dt z4KL!0>qZ~r7W#FyTYUcUyw|97D=r-VzWP&x#p?Oo*q9y}bEwNB3%Yu710!5`vmlFB z?EIB>7ua6NF>UX(1Jf*umzfYs{zcqIBxxVy_A;-N?8coMjuV5eqPawf$^JF$AdZE&>zN!3wD?FvOmWR_| z?y%6mIi=|f*=0h`a{jFQF4gsuHKzy ziCQ}BRve|`_H)m?COnaUkcP1mRi;S=cBMBlZF>MnD5V&p56dC5gk$Scz-@E!ISY7! zfgT|rXBR0RV3f}Bx-zB!h-YZH9|W4fBRpuhyonYlVwx!1D_t9;d;B#zIVk99OclqL5XsrDuh7`>`B=${pXan&Y>q?DCLQ1@ zv8)TwWnJ6pqCQO_f*Rf?Yoa&5Gl3jq1)x#`>0&J^{(TsD$>4%wMU{#T_$|Jdh3Jr% z3_ThgILMxWgs`6GR0I2N22`ucv8`Hr3nYGPQI+?B&}bW*HXrjSmTtqKPk`jvO5i8o zjw?9<2D-ii$r2POWDdzYB{oZd6gcEh$)9~+_W7t+cHzx>!>JsE4E>afm8-VOy7n7; zOMbAkkkkld>5-Nm6z4hc*pq_<=VUpaKg{{@*K(49=;E*H^7Z zv;9nSb62|Oho+Ao`Ni(Nb+a6jET4WjJ|mGV3fxWreB4`|7kF?&Xn&?s9>cmbnLqkO zBWrP~?YbSk@X(#$b!rOiZ3$Icu;6HQX7*6)u^!r(Mp@7b!nLDi^Ug>tP7lWdjB^7R zI(JfVX@W`ovsin=hKe+}U=_wH@^%T-j@|2Dy6L(^hcOJIM@)_LyoKf_c>;4x0;2v$ zAs*=^5njWLyKcKvBties%eJ*Mrk$>5T;PokRg6hBkB9HBy6YRsL}&}@sN&=>8)f8U z)bF_C%_~$%pXY%hy8~qPL=X*jJ_gzTmiMWI7(blX+5v0)$_Ac<2Pw!g&&Z{didc`P zF!n85a!aOgh_5q}z@16LPoO^ktH!E4yL@!@1k`QrMtorFd2?LLS6=Dx7u?# zrK0AT3v||GogXB_HnkmSwL~9TG*`Qbe|*j;YjQyrn~5e4;;I`Shjx)Hp(-=?sQ=Nc zC!k*_v&QIqRI9x1#6Dj_LX*@rQs%0Dz40-p6C9ZN$%>llUe{zb)L{5@Lv}8TJR`gd z%>~<#f{Mm7f6GIWm`T|R(vsXGMYQGX9~RxjufhXeiXuW=fE%ghBeB-JlAxGgkGel90MabJsMQT#W- z9R(N_hufB8ux097371H-xi`pzV>bN29XW@cRwg>ZBv zoI>UM2>$$>%9FzeGb0~XU zo@j?f&Rb7+ah8g4)5|~CmrV-0M-9F#WBa33p^5B?hajnOC;eFJ`if%}3T2Dss{`( z(@40t`5DF{hpUV%*36mFGkickx=D*Z+XaTeeK`I>a5$;zKrGPz`Mb;Xq-Lk)swGI< zB!;dKXPR*Lqq}5Uz!yHtYKh0f1QdrPPrTQiE5`m112#yyW(o|b6f1Pwk%Gh!-qrWS z-^pFq6{FK8(kJ`gSl7xoMZ@A(a@dcDt0)rEDo^X!&N^MfIos@3n*U6;lY7JoIK0Me z2zz|qyTtGFq=J#X8oHrnq^oy4o=mJU{uJfTYTOk#l3jcfrGp3ol|CbVy8;*++f`0A z7tN4V9#W59EVkp;Z0{b{V`+dLPO}#34nDrgMN7^*yaX-eZy@y!KJC2OPyNA>@MVmX z7B&8YRt)wuJ9-B$-I>@sy?IyS@$d6=lObgw))lD;`5AB3YjTWdSl0HVm9ywpn#1TLuhLuHfojQsDUCTeYs4eSV>!;>;6v zC+Xy=T18{QQH^fyO7N&E7&Y_o%Gq>R>JZz)@xxih&Czu;@{1lpK`#k%y%_1}FIBA6 z7#zR1QRL-g9+1F3u61Ktw=P$d|7v#c@%dP#X7yFgu)I%mv}rjLu)M{2j*XHyar)@X{FaC(cay?v;*-C=!?gE{|Oa4 z5D#z2+mktB9${tKj)EfY?C;>ErVLZ7FlK^K;Ej0-*T*NZdJ6D>G_D@yk3m;b)2`$1 z^A;)7V)7gWx*d|I%;_hQ!OCmTaJXN1V14p_gzLH7QQ&DuTl7S4X)<)0X0`Azt$zR8B%@srStPt&@?Jd)Vh&;Cq}D~U zN%mKeutb>}Zl?C}f}qrT97W|^W1V`3zB$~z$oI1-Vwq(b&J+}lPJ?yi9az=2b zL+Z5EmZLojy4VUMdCbrpXYeUH0$v1 zGl_;U2I*Qzz5|f~FK*L0fg%VM-vtblWHyiSUC?7x)vw4+A_&9f{6n2{-FZ3wRmL9u z4zzRb?m#lD6irW~pb!&uynxAdKr{!_J{6yZ;Y6ta7=*kQQK8k++aKA6aeq(STzH8- zEUwm%uYS}o-+v%=w^Uv&uyy;#!W^K#ETJ)~@LAenCkQBtA;vP-f5|GUgO}1{Of8Dr z0Rh!xbiB>gWV5NS3kH$!&9)FZiC3GJwy!u^=W1{u*_*bnW&P_$&5_v;0faB;;`a#( zQ6#VLLzehFltK9*%dnqlKdlqrx<1&}V zjuxU9#56{QaTQ_Tm~bjZan;QlveuEymf#UyTC7GEoz8|Uu4T2Qi0OD6MGk^ zj!m^`6<#e7+v1Ns5v5jDFemWWoDm@K`4G>)0;0hXBY)Yb~QOC zSg@qWVgIs)IWQCfiruW_o;uf7Y9?4}?9NblMmtlefX_dpm#2U|MT(UcWebbFS zdu^jJehJkwqtj{?^SHF}LOGr}xUj;5hYd8y&m*Saz5h}NjV}T9i4x%`yhYYvw~%3l zc}8s~`-zeT=L$cwAiIKLS43fJ4xe7%%~Y~hLE+?}^{&O2@tAsFce7%60o$8>(yyDR z&|)qi&`wSYxR@6^_Jxhk!i>yS>!Q6AiA&y~j)XKm88u8vtY zyGfx)1B6Kfz#*q{gdE=ITU`6QU;l}~R0ZMXT7s_T1*EGV;d%*G)lUJh_bB(}_DXM= z&nQS~Oq==xLgUA6RLrOq!TWk_RyZWrm@7{T_%sYzcdoDgh|LL!9e*$I^VS#+x55*Q zuZ4$|y25?W@INs47ksIuE0bF=RyFzRYzx>*?5XZ^1o_eSka-ZH+L6&+Bz-VpsV|B* zE-3>Zgwpgqu%qrxm&B-ap<20Ar2~EUv}ioM3)5GdUmst%u%6X56ESaP_jHy(h^k;* z!oCSVj2YiHPv_5ZWF>)Go;yGYC@2}I`m|{-n1>z?^dACouB9?MiJzHqDMCajgQ0v< zSyBfzyN!jd)t)pWsO{9*+biJ;(sJ2QdXDc|XjV1)?X573y}*b?{5&(-+r1L{fAb| zVE12q{EWcn5p8>nFX;?+Ni%ppVe?nD2Cr-xajkzAF%-}(38>fIhH#%V=ZH6flLAAV%}1^*z%(0gi1vE0FOaw^w5tbBScp1p>B{#CC_ldQLZdPo&Ik93(wA z!(W$n9^t-aEudTkX$s}!r@5h|SqUmyWfd-I1CALn>8t&UL*d@q{QY^+)#Z8M03Vcw!2kw#OShTZ0 zL=YkPhSffimi&f_!cVPUUHKDr8S9IK`W^1(vK&BH{Xmgp$DUGWX?3joV^7e>H(EZK zEm`N%`%jv7H5jO6e)Km(zV0pwzYm0m(|2E6Tr-njJHDsRNOjF%y)oP0_8hb`F2A)D z0Kt(dPDJLI&F%C@7~ot3yTX(^%=q(plC> zWSl%-CMH-J(5lJfMfDPA{%cq&>i>0#47>SX0Mhd{PRqahT8t}i@dACtntcEh-ZX%=YX3R`01nMS5p@aSb>%fr;|FgbZX zXcG!J7z>b($KRJ6tprppIx7@<#^><0JpB<2GM39hUNP&fAkw3%TdqzK+`0R~i7U2d zKe>9b+`aAFc4%e@a>Swexy8$j&ZCc62n;6oBl3QjR);UHNv;YRSxvJl4W{g&l_@D3p%js~*xPkXC zZ8J+HHjj!F6e?qf2<+fa{QRp4aXHyG05gSjxn5A#zcVOz^OF(^>V9nbl0xuX{)QKT-yq779qDl;0S{hTt2k3S53633_v3ueU(fno{pi0 zH5lF#XSQ5 z2DVx8A1V}MYp0ioLZl=|E4A@QMbI_f11(!Mk=xFvmSj7N6dK(wc$FA?{0x5X7dR@3jo`QO|%(h9yyC8QBuD$P%{ZlW~OnirB92L|gZJM-3Yy&CRh#bzO0n zbf~Mkl(MCz|NGVkK|?B=Y4hh}Y9A1->X8M{T9G3nh;R~GTeS^pGAh)dj;ej50Bb2&$3lLp8*+V2%=aI|#x0>mf8bX71+!(8sb$`wKluokQR@#MY?&I5 zMe0s2g%!R+hpvjKyrZ_kb<7gyf+Y%lGpsHW&RrWBJ&mIjm;9=ZyP>&Anf3l#>2bgF z7)|zP`(9d{fFW0a9!Mzv^N7!DiMa1b3j%xCc&SdeTjQxK^ZE2@B@Jn!k0ukC=Ae8D3<6AYAI5}= zV0zIy$7nT}X<{&Pvyv{O7J6Q{H31k=8;?xjhw3Tq6e{+Q^5RE+R3|j7PNK^kCJ*nS zTvvoTQGkh z?m;O_6iqDfZC-yV(-m@j`X80?u z0%-W2M2#R3L3pl&^2kxDHqOF-G23N>zf&xsK*7;9fHzE>?6=&)baSJ2(1(oLp6o3` z52&Nw1#It>Vd7}EC>jn=!3r9FAwlqC0!c@;HDT@inF-3$Mw1W;DQ7GouU%C^##tOU z4U+v82hTx~(P`l=*?ey$bYv*P#e=>RBC6@E-Hdb^JjoTr$6LW$P4LKU*1hCF#VZFq z7drlNtz>kVn?ywl-NBUbJmS*kQd#9vS7uSoa(`bHT%6lug@1nayZBdcMhW?hT^ zN)~cwXWsRrcE>s^3(+99ZjLi}u0Xgyt!XQ9NsIM5nf9p@;QYND){+g^TkJC>;;KY% zIW!xYM)2@}^^RANz7E&x<@&G>X+2o-`>}|)x9YtmT5WRXL5UZ+s?BnSz$C%?mi8SA zE(XKE35xp>%7^HBT#6(i{s&epAhc1VO3y@^01e7Yt0xf@Hv@TUmQsdM!&5r06Zp)O zJyBP}vSFSy0{vdw_^Dc11{@4vak!M7)KXcdDB~3-x^{zSE$(5aTGXTuJV7)pR0Z^I z{OWWnBa5S1i>|jq(_P}kn{evC(a6HjvYz02#10xIEF1H&?H`*ae^xVc?J9Xq&N`tg zSp-kyswBH@%kjV9O7dE-V;ub|N01551LYKY?J(dT(@_*&fnu5`?|^yRW&h)A9|jOo zVm=>nZ3CP%U>oR9smQR#()pn9fB~`q=^kqhU>GKuMwdkXWA}&vN2_ojj{6M?$$p34 zH7;3h$VOLt;{X4zO*>W`;4S)L>JaHEa&nALXPJ}dYwtgesWRjfaKz5kYYs)DUR>TXlAknf)b(6qdz>Cblado{-zbP0bA2t2{ZtZ zx6YA^Ef^J95^fD%8j>}3^rF`fwLuDb^{CzjZ-rM-Le^~tm2ddj?V4xpI79%xhLhVo zH+qi0d>xY{#T>~4rFPVD%JmRhwqmf4wE~{+fU|^zas9<3Ejp=1dfpn95O2GXPdk-o zyMTy^0;Ef;!NPpHa_0dP6!60=lecySFm)LaI@Jv5^J8DSk^kvzjEkQcPzaM$8O zu~J_q5|+%+fIvU2;DW=?kkC)F8L^J|3lAiR{|tJWISw=?M^(6BebXGBsVm)nAE7zl!9&XNMQlo8Se)4s zyF`grTjn5T_XzF zrcJtfjVVNV85MpU-qY1!Q($xAt!~?q?Y$QheLw#0s7z}gvX9H@#pfh6khdg~n-xN8 zslQ4eWU4x4EPW2R1$6;Sb^MhD%D#q9Q>0A%~Ifx}>ngqvH(e+&6F z%8@Hfy9(yi#e~<8*6dsE!bMeu#0lZYDO=AJTR6Nc0y7iQ2eVWy6~Z@B76C^osZ_+?U42qkqiYWZz!iX#q9z{@(r-?$4Q@ z!O=Xa(XOpmg=Yn*=K(^h+WkP-<1Hp>GhFLm8fZ&wG-LY`~pq8te zLSgdg6Bn*ehY$Aub?=!@+Id-EID@}AP3};o3=O0^_cncwBHOa+awqja1c#76dK*|1 z!cXIIEOb5tZt#v>8%BR5Xfz6;Dc5Dlq1RVTkmDl02YXVFcMx353E*Uu8#3 za2ia$r3cyitTnk-GM{&CZK?MkJYwi0lL8 zuot+0-U5oHNw|o`RFb#)P}a`2W4lWoFyws^U-^Vu_o=h^Be-A`IBsQ|Vibe0rn6!A z`G&wjt02W7Re*!KeGrRYw9Qc$5ksmPT4E&54g3ABk29bR=-8Gtn8I{x!+TD8N_R9~lRHfL5+$POUfeC^F59f~pFNus9&Ej)*=uQu&Ye@~9Ob8953cGkXr zJkLzmxbfPa9bI*TAK71&?J(GOVcH80VOdc(0GS|Z6MtLsud1F$w~>xZjvk>22tnrr z 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 b&=>}`Z<05$WVC6W`xqJBZPqus(OI>5f? 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 B?cDhvg+J=rjY?f9qNR)qUh_pGPF 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
^EWScYgTyYkFMQ<9tq0Ee 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∾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�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�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 2w|}9!LAYB=wU{1W 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‘jZ{CBk>Z zBNzU`dA_pp4eH;6+ov0oD`WD^D0fwE8QO|PYU8b~x1=E}I}GBCOQ7XBj6?n^y4nNF z>@<{3&(-y4hY3?KzM^i_5h(E6wupI-StjN&0{$mX|6lgF^a4vDbdR#!h$7Q1D@G2ZEKIux!Xa(F3^K z7J{qS7JzmE>1*f?3U6k1TKCpDAjDkCu`P)q(3<1ewyGHDDqP;(VtjcNh*^3AQXA_ZqL@ zM(%Yr5ApqyrSp^v=sh~vARYx<9;H!k&|3T`jU`|dMc@lNk5GqZ6pxCL-hD3^JNt$0 z6R2?EPNF{mrt#|J<$cU~r1XX(c&_KcC9esc@ecGXUb+ikjW$1j^N_ZF&aL_(}fY53;Hx*Wg#O zRE1D6IbgKC>pu{VdMv^ILRAf`+^bA;Uc9|D+NdyVV(d`Mkn-SvT>RdH({1=H8Hh*g z62dSF7BMHklD+eUzB$%7F&$(-i`O9lxu_npgZ?%qWlGG$$#|WYN*OpHqv(Qk34DOEol*Sd$bB2jXv2YP|C_9^LpdZ+~edpjX2e#HATjs5b~%}PSs|-+NHnADcuyO z;J)3W$?a``;EIJ8!$c0`R*89VYlh_bW@0v=Vy)B4X~7b8l<5UQ1>&pzkD?zLIY3hd zs~6x_mLZX|e6dJT2yqu-0s{Q+FP*KRL>LBsR*D!Dww2>XpFifUbTvd2PvzuRs5+@4Cjn9x%xB+X@*4A|^vrB4 z@Yz@Jawz`YM&rBuDkrgEO9oKwu*|*mt9Vy7?qjI?vV$-Ab;c z726d_p-XazS{Flyyu^3i$A!^CdFKJ_6&bD^;pYDr^d7=~QSrfQd}qo3Mb(k-Kua@x zmSzjp1&Jk#SlIcd={Lw=j`GIr88h?xDie1@fdyshTl@tgyB{WMqa{ZMx&e^+&UE>G zGmoM3`txsNZb|AiR<4iQ)cxx|r`+#M1%BSTt0>7=Ti|y++t=>4t*0qz#!nK+n_ha3 zS-!69xpq}o#n$UCqOEl$XiVuj>{w=?;=M}B#uR#-V*n~>?zn%?KwsV)b~CMA&&X?) z2baGfm7+kC5ai5$CqLm50JjfUPua(=yI(GFS;7khfO*KAb;4=^Lt14rHOg=w+g#^t zq_Bi5gy}BMVA$e!eY8uiZokqI&r2nV(P^eyd`G<_>r}k;Od5?s+Y15-vNergNG*6* za}SwQzv0uRFItuc) zJp%+hCGk`~0eF=JRA!^B!bCZ^H&$SIH=R8@GUfB>W5NA5uv3^22}|?l_Whe=c$0*d z2gUS;SF@nimLZO}TsRR7bLOaVwVVcsvtfKN&aALFp^Ivou7$jQ6lbM8Mf<`8Hfaa+ zoU;K?W%w>X+^)Y9U&Sv-Uh6)?eGwvOzk@xbbhKs>d zc2T|6!lc~p6>~8niq93BO)@7M(sMDiU*G z{~q{Jdh-9ZdKB?YBT7kx4dCy(1&C)El7-0dJpj(x0M`25cpHPJ$D|~oaV8_-e#fE; zSqkyUca^&wlf;WnpwIgDE78oe*l4jlxNGRHQejEF?m7sis(eT&otiKVw3M^T*FHMh zU`dejeHi|I29xsB10&An?&TGuwCzwzIJ&7nkYXb8MCwlF?6_+W^{rQtHsHMF^-A5? z*gepFsIkE4d4$jnC5wf_Pk{dRaVOPWDux*B_M{*l#J^Dy_Wi|1p*GhuwI*sE3}YPY zMB1iaD27%_`D!)T_mB#Tni6Y@Z2ftEOyjpav1K|cVrXt>2CA9=UJHYE-R@&C(r`79 zpl&C_VZ>q|wF3Q^%WX1@#F<(e_9i%WwBq0HtLVGa3TsG?eeE+*h#a~p%S~G{Ys#g$B#uL8{2eh}6xeX&UmkFJkSe-HH5;Gh)JisW1aR`>C=!R`z{+t-6NWF%-u zyoN~DbTVhioT!gjw-YE4u11>WkOL`W!%rLnpCN+kK%=YkDUFrYx(mdH z5o-4`gs)+uM!WOTB@60}45kKXQ#-5(We9MG;5Yc+ah#!>^7Q*iRhAM;}?y3~2 zvdCO{n=2=cV0ro8$ZnQNsZ@H5lnw9QN7>5(eoa)Wbh}V*KzV(g_uEq)MNGj|1QQF%jOP8GqX4AbuWVta`k!NlA=e%s1|L>Hl-#9 zczu`I&~`dD1m#Y)gxH(k;CE+zEZIg%EGFdowL*ewM&k59XNWJPjlJHzC}xX`N>dsQ zZ~#zo!F$n9i%EIXUA||jaLVmkoM*eTXOmWpLx9)JM-sb8DjFT*t;fe|>-1C#l+Z!5 zG2NbVs%c8h`=Pb(28%758_2~G9Elw$(Ce?JSCiSBJ0}#XpD#*dqTZs~iVKpNaX||J z79CLA`9U$1BkD!&&NC~x!gZU|wU1&&upw{CdJgL;?9A}zv^KwvZVyqE79xNJEpaxL zdyFuFJ!QGaTUa|D#v}UcA_?yvCgh(y4Omd}IG^*@27?{+4Y9yz9^DAcQ=X4GFVZs^ zy>%9TxROfA831hnLcZGKX7A7t08MRtv!~!6IKawcRryu0+<=+i6dq~M9*0fF=lG6O8 zmZf^f#~D&U=3ZhQT&dgwZ1FOan!BVqN&@05zW7?Xs4PQ!#N{E9wYxF`F`dKHRGW%tX}L=8cgNr zz$>yYwoxU8jEd1yHkPho^2(rWUttYy>h%)Mb<45XK8(Tb1EdTR1=%n%>0`!pC9ci; zQBjpslkd9m*-`WyO2jRtm_Yw&H|sN>v}UkT*Cp!-Y|>f)22hTI*T~dVg`+nZXIH-% z%OP$yBOn@WK}Lz+tOI!KQX6|=7@J?5Xo5d z#r+k6$O5jb_RtEP4o$A~4S`&*It_$?!sItL?i3KeyCC6ODg?4?p0_dQ42{Nz0Cf9c!+Lyp|uj^lKGh=bF=cyW2m$urCoQ=B(;*<^18n3%6 z$7%AEUYAB=S(n?mCosNrrwkR*?Z&EQsb`THwy{sCQzUx37JWSG5}o2JT?Mr##c7~W z<@0mne6>z!GdtUoqZ40_D4p()TK5i(lrRJ1z9uPpkA8w#&PRo_01J3C*D73?^@MCVWal^v4Q|I`apUrJ! zhD(2m5bYx>rOK!~>Dq-6i8TD086b3WV`$CfOY)T*h2+p-^7Xn?8%dH>Z{2~mu{o}j zl_dFB;Jt9W519BaX$&W zYL(n9_l6KqttuG(Qc{;@>|$Yz8OXMp?$-N4Pf;Im0C9|~zq6AV zKDJXxIgW*t+g-mnefXiKoL4!o$SoykfkKBEB4TCc1{n(rBnwKKn;7;8l44r zAe|IH+PbX*BPV|-nHLvh0A;39rXgVwegbjBqH1+=KRrn^@C1LeIp}%KGN*fW4rS5+C^om zpb5JR1Rv9dpu^j6jJ{b~K55Zu3(7EaCE&vPQYK{s?nmmnr5I%1)DXVei3NtUjms+6 zAS@1hC%?X8MKSAZs~0X8k#$;HdFnX<`TsX56hIN#wg0IuP@S8AKJi>nygSoExGGZk zlBneypz?%&K+w}grs^06w|sU0QOud!HjtnV*7oJqo}Kw|7lGhy0wkfIRm^}+2!9h` z7%R)9&eao13`?|udxWDu>VYtG&1%?%jz|wb<}tVW!6E4?in>hAoTw03U%8$2(kaB5 z0-1nJ7HZvHH7^M4So>9V`4TnLXMGr7)e3);waiU$fi9S$xClMWrj`VY<(aAP7Xsyo zo2JdD=+aTm5-EJ^pEW-fg{wE3JSG0kCbdIAr(gIQwbbw6Y zJ(nmM4}2d)N84zsX1Xc3j*~6TqvkK#nndOz;}v6`4j%ydBLc@hqnTPMjZ@SA^IdQ+ zZ=jOEVP|m5C!JXFfeTI6_kY|$x~BMnvE+x+tzl(hogue2wT{z3o{=0%($Vc_tnoQ@ zg3Eqd=ks<^tnmVR;}f*m#h7a^n zL6#U7`{WVOKlh@qVV#p?Ox)#*gr~NmkIIe??ATQ0Qqle*Xe6%A(0GMWNpmUk+*N2^ z?1+3(IXm$?Yt;o;KHNsOlbd$aWD=tZ)t<$jHf{+U=_=m#d6&ZKkix<`R*pH>I!(u@ ztt)&@h=l|nJtKF0!7}rMp&&53#a`4yV-L9SkPEa}dMhEIH4no^;MFOZFl9zL0;8^J#V8=&E69f+{m}`{t1AuJz3{ld|(0 z?m4(cM5LXBjwbXu6j!O6`ntlTk&_CJw3f+9EP6x@ktPlA*7i;U%54^Qb#sZh76HN% zZti_0<-_4%FsnNHY|858!g5=S{o_L|lKnkSEEjGpoI-;456$@6C>@LIg=m76Kjom5{En3dH=fm#Ai6?`r3U| z?UNQ{k^f@&rINj*r}g92SpgzNalvKnF=wjT*MM?ArMUy!PiidGPwtqnk$1Aoy<;E3 zYY%bU+D&Xrvu97v8pao`2tIC+fmJMpvCy9I0HXOWd?{~6h!YKi9wQ6vN19i`Yr1cE~_N6t!u4p=IorOK2G zqHODuvNP1=`~%qpEIpSP1ua_&yfEjiRK6fuSnn&M;?TXET)utwC|TM4iKsc#_3CO? zf+3D6OXypcG#C>pUxTsqxItNlCt&Y4GKef3(wDKm~%ue zN(wiTVhK_POQ6ANM$7fSfc2FZ?(;~57KxvDs@6|t$H*g-Zc$UDb}6tXuTA<>LARZ3 z@O~IB*B3>|?c=8dN`Xa%JqYEjx`dW@&AU@AbRP{1Z#fT}QWxW{$Phq1f#d~v8-!H# zL9H-Ry1zk@4|)d*nreN4A>Zd}^e&0nGE+4HQW2cSotDFWvVfvORoVF^l*)rI`=KI; zm=)bj8s5rQsS1`mzb+%y*#Zm(*2z$o9U9&a#W3e&@9J+&Ua-kjeT-*)Sg}PuuQ)G* z!|N>Z$9dREl>%LnSs;Q|D7rXz@cSV)q>h@GGvp0!Up@W&DUu#C#|=-d2D@tx_XCw1 z>AbtDMH25M{rM58>_YE}A-OZz6a`k7xPCd~Kf zYzMdYkHF$;Vw1&{fa>`C9!_OBrp0eBSO6Ta?iSSz=@Q$*v`{)XQa2hF@fh891;&az zqZbe^;!e!KSdF{L*(#YRzmL1grIk3k=M+m*)N6A(O)jxZe|l;AW_s7#DYUtcxKSVP z59%VDF7U;m?PX$7T`eFIZ2%p#kGaagp_u!@j&rLu^w~g2IX?shU0ipSP|Nu?G|BRo zFE$m+HoH~N%Oo=Hm~7TiFFOv?x9m|lSGYBxnyR#=g?oc1U?FX|U?P9Fl9NXSwm=fJWjkv$d2O_+i>gNg>ouE1ri>dp-Ez>0M6E)kjRllIUw> zQz0vtH}|jJqYJ%BcYVo1h#@MYvLKY`IQ#Kkw0W7L!;`=yDIxD-K00oAW_}m);CsJv0Szv+>LR?z?2fAvg@*xBYml+7x7YG&lc~1R;y-l;u4oo1gb0 zAP?h!De9%-Sf!=fX9ZdREQrq^FX_+YREHf_O92VRuKVDOoQ|X7i{}X+2;L;>-*clV zX0rnYG)063f{}vRewCFn1)0J{A4}N!?lUAi1;IfxL84vL(deh0@z$Ui#M^&Nb^C;; z$iE*YI1U7w-39Ns6*=?{<@mT{cxZJU9vf{#s+N;*uS0y$ zpkhy9&wmoAc0y~>g{?ul7OLXR=sH6nRDK zHPgKbUMUu=2wc5>uQOnGy_5usCJLw#@DAQw_&Mw7h$OmJhq7DGPv|HnS+kDkMbjd~ zBMGGx3$)EBt{sZZ5FFlN2=ax2Bpr0$+fmu}&)`mzG`PcS1~{-h8R+qLG3D;BS^Rcj zf1_6bxd$vbq|6)(j=a*fJO!EKW{y}x7gzay=xxOHLTr;}#@d^wj%;yCHz7{8dqmgb zyg$Q~>t0e&Ad=#%Kd~lgrQQbUWaXg9j8w%=TxyE$%f4sOiB6GYt=NJ-cbzcwOwS|} zZr%zlrj%09WD>=hAbqe75Tg})+|7o2yD%bo9?8fBT{K;-^vj=G~N?4;dJ7W*;VV>N=mkiC|L`>~iagY|owoBBE>a<(;#eZ+H%#g0#J>_v zC3}3bKuw&i8&X8%$#}D28{+3c=e$Vlzpm~8P?&k`1r6&*?Il)dozc;ncvk|l?`|}9 zSFyd9@9Qqyic?S>IxxBJPt+|~`41K?5a%o@9^>%h@l?HgW))>H0+#p2@TfL@7m?qL#q+fclX-W^`~~_?1t-b@!idC zVk9us9&7OYQBwaqI1B9!2gKKoZ4JDSYEeWSu8;-35+Q07v#ijGOYnJ1Uq58g$aE+^ zs+!`OFo!u7sh7z2y8BRrp@r*3iuOqg_uJSK8PNf~kAeM2-k5F#xR^>vjY((Po==gb zcaL9hT%eD!1I`q0c@f8l+F;W;L%!QqsQmyaBdnc#4aEf|g{v{JWR~^s%13SdKMU$9 zBMgiavKIvm|c$;NS-YTtv67`#mhaZoL(1KZ#bSJDwtv3mz>eb z?1w+Ej-N7A&I>h}oenFQ{QnD%sMcIV%kP(ieY;A5vlY9++SNjMldUOq>g4Emz|@t}MF(zjS7 zx0^hBTnX4#xVEycaz=fe5JAO+H(RhVPX6%)Ei+i;L>uoJZGbMv=HWIjE;NlIec2jc z1-NQE>@|!tP(;L30aqi?SYQsb7gkOO2EiZ51cpmVy)J58M!w2Z+RK9eQBIuU=)td%m&*N?~hHUSbObuoP8^cm#pC_G)v3d4&50SSj#X3&aA^&fk`ZW1M|YU;xK$ zBwmlKtr2ph%hsyG*5=0|Utl|+Zqum#NZFo6tFD{3caXz_tsuL5~-9EPA)sOTtqYTp70@lP5Mi z=_3~ZS^s^mmDDA-P(SjOhn}B`X+<85B86(Im<(y&1i_%+_IG0yBhidzkXIKm{D&iJ zB+;T4tg4Qsw#d6V|5XClSnW%e{EzhnvpR&-scgeK>0j_a5h$XG*g4+s5ZB40Z}4*{ zvRdxEfqxlq!Fy;EZ*N5mS~NY}bY}<8z}GiLC_r+AUavc4cEP`noH`Zh!`zbqo^Q@U73Kvz`*N76#QIo#7|ods^a&o4o!5|LgB z#qX|>F!P1Mk2#Sjio%Uum2rLLPwZzDFrM?V(-t&dnPU9&PeyD^vqQdM(TnkA$Bw+9 z5^hidBX3DM+wHD^40lcmH-B94hU+CY`$vK-mdMyrZ!rq=(U8T#-Je7}Ir`1Fb8<*{ zzA4{+DgnT)iDJ5y0ZFw6w~e%iua6rzr>rTjf%3c+xwQgyr zmQi)>xND#YqyI2b1K~&|1lR#@s4(`O^kDTP zEY>{GE&WgL6=?fo=03!>U*bg$Vf8kzpTsmLUK;jl{Qfr}sE9c^-tN&rA~RuZ3yZjH zYyNGOz&OA~@D#6^kIU6A6MAI|X_X?Wx{XzG!zQ}}(T~96J#uIcr~ zJ%5JNZ~m4MTW#XvI2C_kN`GHmd?OWkb$6;RZBVs)0=09g>FgwJnXGR7)u)y9E(sQF z8%t>j-@JK0Ef?k?uG{!1?pd8avoxi{bXrU0@_Wxhvg$y`5_f=$1tyKAANdz|lb}A+ zvj7JuBQ(OthX|sQha|}QjEb7)_$W*;S1Y6S5GIx~^iMReoI>U zE6_ZTx)J+pt0GuT0C?>Q40mD-m9Bq%aOTf%pJ;;X#l5BAtaL`(#{Zp=Mdk$|yTOA=-ZvJ%`uYke9|w-?f!U z92-)n`wDkWqq%RBCh*NR7sReWShF#-J&!lq%)4=VjM0upZLXP>YsJyh zS|m|M^E)9l)U9~^%;1=5J;0kP@mpSwlg_z5pYXTti(IG&Ex1~L5ugfXMPTqo4!hL* z(I})y5h9;GwkqwHY5%Cp)7LFSUcGPu2PDFz(VBvm>K+W>moeL@rXH1jGdQ6%y+o<- zos^cw8%TF+*&wC0HkaZpFp$fXNA6*)7A9_Ub=AnHlL&A-%bWH9eeDWei+JS~OX&npRSjR3o#8J9Sm z?v}Bry6(3n7U6f*Kp0R1!qow;?R~R27`$hG?EYtwmZH>=TLJOUj-NYpd;A|qmDk1gEv#|&oN3@GPUDLUEqy2*# z>Y3Wy#Ke`XeZ_De6DKF6tfqoTcaxAZX^t-TJq7q-$P?T5fRkD~-;VMP@d3U^BbyoS zN_6fo8cw`E{PX>1H$^LrUZ9^H%hURR4I>MzEedsckkCXNh5>Y-sfQ9x_bKmxaskVB zi)OVKK2lf) zQSY?0THAu0Dd`x>j}sx(2W%ta{NwT8rgB9hL6$Ml1TZY%Vud_RO-dY1#E!RTw77H}4R2G=Pphyp%@cTEx!aP0{^gtc_M>!%=`?%Mr%L|3pDrsy( zq|o%&|6#f6rFQjI4$(&Df>jyvx~OTbO13M>+|lGc)x@0IxrRxvtpNT9^~l}3V?^ec zoEU<0b>J%(cv=yD2Sh;^7bti?{<0@Zrc%YV|5&ngI(MduBS|A&Ri#yj*(3IPvk5UJ zch{@{ud;MYlw>zxlovp~p73*p`6ClajO&f|#ym?rv7T=a9RZFe!Tg9|!>alCe=Ov< z=p6~EeRvG#AQDR1UChuH+l2ZgeBxUjx=(+YwgPrsWa^PtZnl&McT=tTkXSn%swg^4 z!lZHnAyHtUXTM__@3Lmcp@SKv0E;f;o%}d|Wv=KM_uC#o8A@hyZ~{sdyncxiCKbMX z?;@Y9qWDy)1@G*!I>&2PQ$&(p1FyC?%9PNxm4C5!BMCs>j|g|mo0^33@33^20FxVg zTJh_A*uJ9DkA;)`Fb_yd_*j2`=kmpb_D0(&bz)pwkA`B*siU#u-~ufog1VQc0ISi* z(g@JO@g|8go49v&*=tE>^)6uYnBdHo6!FaudBC;*?udi7gxvs=oyNQFJ^s0$k(cJ} zf}?v((FgNq{~WurQj3+)PrIC6#4{>wXp2mo_Q#YT8Xl9KBUb974SyOE!-vM4tfd@>szM1feY~TbG7zbVZ+zx>Jh%TOSxKSwWG)Dr>tfS-z)_4PT z5VDtD-r&WDGnl{a-g6>PE&u?XjhUex)1Zqq_Fsyh5#7qT>46f`y9W0p<_md}r1L{G zRHV}01aqBnc7r1fSft`}x2A#!DT;y>1bkfAvjaU${j)zs zbFWaDFn;QDlF3B8`mQqjWM()b6EpQ~>~L^fn88kxf|FB;*0h>+(o9B8s1K1&77JqL zf=Yg}-|TC^H9M;WKid$XWTv!PzLFwN$f$b=_W7>3u6C@DEbviN5awng~8vaexj%~XEpUp9FZ|AHqHvn7-7X2U`eHx`;zsk5n zVj`{uIuYvMses5T|qbsX7P4lK3#^R%2?M*gLd|D5AveHhh z-DhZ_oj=b!`_&g=sLheOd?prjh&+Mi3<1FsFr;%E#K=#nEfu_LqGDmETD-8N1$THN zGLg@*D(qr(cQ{LP;Ow3Ocqe!^t8I=1Zo(J*Q8AHv{QYvVp&BF`aUAD>IF^REh25Rc z4CVMr8&A2`BuDWtSnt`jI?+*8=r}fv27;Dg+iD(ca!iXk&|0S8?-r^9Au+1t_wq{~ zMwDmZwPymJquhLL8DA7~$Eh?o@@VOv+FpG$py#@`9OZMQ*NgVyfhp4sBli%o8lH<* zjguXJ0F|C>!OPSQ2Nppqd6}+SJ2Q18^*!nVr^j(@=GVt!$D!A_(L%2fw^(LuExWL? zgAZ$#5ryroC}3q}BL@w1?cSSftmr-kB{Z04eZ?NS<_rCxe;|N$^i&lgcxXc%X7bmw zj2l^jucXVdP<^V_)5Uy>h4Bat?KJr<09rXPzwO|=nXeRFMwbb~A!5wooiGAIfN%`; zNAi>1Dzd6E5M17Zuki#$Pa1!h5qVhbZ2m5|M($dy^eAU&>KQD^{nRGg6q<`unIW5@ zd6Y$RGzXCw;P*|=Anh|$R#}<>ckI4I$S=v|ROf^oN4AI~Vw!kPM4^7^vyu`k%c0dsfU!}_hS2xS>iuzLJQ`9}`qp_r z7{jXAZuuYA_9Y`&GbD7gV+AunbY{*a2>yw1avi>G6HumaDA88iOnqENV>z!tW9t zuPicR4Z7onl7(}_feim7Wq{O3Aj3pjDiokwm?@}JWwktoC2cxP01eyVhc}0Vn)b-M zx0{48N^H1(sLd3?;o7)<_9v<$?eR22(3*oYePd*+wN23QAl*a+ zof&BI9X-Na>fk=SEgMLff-Hmy&LenN9O3h}N;pY;^Ndg(kk*_t9N9M-u775jt^e3f z@6u}6JiwJ|mwRMbwdmkeiH9SlA9KA})C@0G8L2`{GS?z;Fk9!9ZrL*sU~@PB>|&g^ zt-^?Ny}+jg+2(!xTV_j-bG4qz%kpJ{I0u~@OnHjoudCz`snhk)u5HDvlD$?ke(V1; zSr-~pM^cd5)()_Bvb(dbi|Fi^YjM;`Jn?LEqHh&UAdX4h?}}R)BgJL2)RQ*#5gdsn z%v_jgrSS_@R~8URBbX@Liw3~bx}~1aDRq&fOSdaih`UNxy}-K05=^)&AYDL((zO#Z zo&F64mo`?=wsK~&k*n^&=!K^p(023d|DU(Ki^b<)^wk|t1+_hK+wtYpEsVLN(tk$S z=JIl{*TF!vFT0wW;iT;iO5T{ZI7meYK4`<^O*m+@=LfGMfrw)b^6k9_c{WnI5pz^r z?i5MMMPD6OWH-)fJVx#$xhGIpC5Ok1ZKKGNV>%vJW&B5-c@&JDq5}C>67wX7uk;|C z$eFMP0+SfFS(jzE{fPvEq$qW7;sh~jxkXwpDb6)(wGNiN zPwn0@a0hAnPz+~C13M1%c*4KSYQ*aNkdpJJGhAQNxL+7>fYuVQ26;`NNsAXGHgqE~ zmcNYBu_Bw?Uj?*dvjCwY%iFW0h2g7Zu-xJynwz^8a*+(~({a^HL8X-fTXxSNpQo@t zJgnT(E~8bBYC6`X@q-GmPipUF**VYAgElSFR8p?=xYWdY)|K!l)Se&qJsQ=30qJ*N znq7o&f)@}q+?%QEr#f*~YZ&#NnwpN%*=*O?PGC{ymt&$mI3Bvhf(#(w&!BpSB?$z6`SKn`XqhzD}(BuTTzXqIE=!XJWkL* zWaB-kPPhUxtDSP*X-p!F4Eh-Q1R0R;wq79@`y=a4Y*{N>oy;#grr9(1>l7zbSws_9?*lsS{@q|Om33AM8W z#{^h~=i0Ehz$iRkQDZy{B5?Zi3fFcQ%8NJ74g<542AX7x|5U)4C>v!SoS@Sr;*)+? z4p5TqqH8J*?7X|og<}0gZ29LzesMdt?EL7@iGQgF4aSVL66=_*Vk8hqRho>per#r_O+N7I zME={FFOj)p`8C1cdQQY3^1-2hMz6&)8q3A%CIMU`&RFpWH#-yTlb zPZCc>rl0q4ErFF~*;s;YwN&{wZ;91qXIzOMe0Sln;t!M4-UGCoF_M^FX-jW7efP1N z2hoTUd9_iFg0|9p>E>ZbY$;D9+;#hGBHIqFj2l+AVy-z87eezv9-3wn0E z+G|Ff*JKQ*2ofO!O$ke0<1OTywpbf|#osx3ow1MgZloV-i0|U37209xagQ@Q(8|-p zW5~v9v0uPT*9S&Yse+#(X(+^K+<(c!d3kJEq`yvJ1)aSSlz6UA$%+Z>|4`A&nL@xE zK2z$Z>fb0E$_G0y7O@bVK7y1?M|*aI#8)sL#(CPNIrdzcKPFq`e5Ru!Y!c)!8x#Xb z8j&9eNPh3(QtToPHaUzdhFvlt{8bkUpr)?Wm;y=1O6GET9rjKvB$TTuO5nB)kQe!6~PRkE9(6Z5foan zBxG5jOu&NL-(H9>wy5SVBwJ+%v@vjyT}FJ$u}mqK{ni&?wAjUGhZ_OW!N7#P&_v2F z8jqwKlZdicp5wq;hVpAR-W_cSVA$0D;xRH+^yaX!tei8r!gs4c=iT^Fr_;?IgHzsQ z3SdD!39-{K=x|T^kEC)7KMkH5eDVr}L^d6`-B`N8lj_jX*pud#b@P})HV3!Oy+56t zMHg(8(5WELF=gAT(XNrEVx*L8J@8hvS~qqE}|lvcCRB3>7?j2)Yx^MWoj>9 zeq&AZ50=xnkmld_R11w;K_y@(Rt7y02=bTNxY-H%j>9bf6iIkX^hZ-5L3W1%&I9Sf z&w(*8@X>8zC)R9CX@uCkOHWb%zRLZZ=0sC#g`=;roJyOMM1NbcDp45b-d%2Cp_lrJ z(x7NG>1O?){J0kYN79M~y~`0Ms{wRKe_a%hw{@OHVOBI%QT94V1fgxb_Vv(rcNAIb za`|$wqi_SL^xHVyCgoLo63xQ)?WvO|<9TJ358ISh+=r^__G>VY&UllVs~At(*OL$f zW;iJPE>{_DP9C3NMP9G6|J}$!8M|TJ!N*E{nz4+o{*H!cbz$MMd7fQOT#qdgF*yR$ z#6PJWY}ONQt&S2KsM1C}UlHsy*M_i^yk&!=MNGFznz<38Xw7p}b>7O6fe<%-;J%HA zt*G%**>=vag6B!2<}QWe5Ia2qzY@uRA+pKz@Qzkfh1)k0u6Ir1#6{msDC%Z5KC*5W zYY+yv7J9}+3?b=o7gytj&8Wj4?WcGW&{3&YOi?{WPj`}G`UW?uI@NK_>RJWA)05t>@L&rMR@PfUG zk31KBS+B zhuQH!o!b~H<4+#SLRv|FlM7Wu-HXkI{yW@v;6s5;)#+U7&4+O3{2~pVeM(C&-*v-y zDo^*m=#-7EuqeM80s9$4un6q1&s{v`WQ)rEMDg~ITu@___t_KUqF)WN&dM7J4W<VMxYm2eO92Q#yWmSoJ`=$AV3Vav_rqd_X5FGXnGE(zy&hR~ord$70)+RzqqD68K=e&y?F~3IV@}O}adBcYg}j!nzq)#%P=% zDi^)FJ-ON*5#n#eXVZ@bxWmcL%yUu0Rm(yUkKG55 z!mTA3XfRs~Y7F6K@xqWmKq&G=Y32^vC__*;08HTt$C33+7z5cwl(FE#dZ9NrDmWQG zlrJb|e8q^3@W6bC!_otN!E;(v-CU6C@jX@Y9nzEs1;{k`W60aIAp_Q3l>Ve9D7# zdc~MsP2E}qR^@UgLjAPITyzGvgI*7l@S@<TU!~JhG$oz>0Fpr>y_?Yy!3IxBU7oz3(VMdL*I2Pd_(@G_9&BN?iG4BwUpjQ4 zmJyDiYtOX@#9Qq3UU*P#87uWPK@{`noS@RRuMnM+EEuNHSGTJ_gb0-lbezoicCT%C z>gttxBwMS!96jvqT&DeP=W_u$YJ|rzB4!f*F~}2oI>UkGO_xsd16TYc9Z~6J=>WBK z3~PdPvqptfWHH+vW7=5>&&P`4O67bx{E+&2ZbDdLjGK;TU`=hN@_By83(dM>{2s5x zfywTLVK)ZpPLzo9uZb*&Z9lm{v?dnFSZnoz#aG!UyK|^z0#4dz#p>Uq(rhXg1%@W8 zxwEf5BqgebjJ}@BLu`dd=eJ=IBOjC$Ocq6`O%RH5nR^75mNH{!{)!Y^=kjKj@PK4h zpSrEE!zMj2Gvc68CP(E+$^k3oT(Nk}>UN7K$jZk6eRd{rGJF!+7bdrzN4}jqD75^R*;<^z=jDt)TpG^47h2yy(H$V`gqsdpp5ds_g8m4k4rwaK;uVX@|g7kyvKLDe6 zb5NilsdrmDbs585lyOce;+V=s2^}qv*&DVRrcW$giWKofN@Mh#NOZ4hcs%9qAOfA8 zQS#a``~>^leuE+{z6Y2ctoa>wU%8*o_EzZ!J6%q0H{%K^oBb`>48SBe%%n~Nb7 zKQ2H^GW0aT>O=9&#wI)e(H2Fp0=#?LGr0$n8l)A!BCp3dN1|Ls%A}hm6oDkFH32aF z24_!ggX!+V=KOY(8MC6VB=8Hd`kp%d@JU17VkqAUg2f8ZVqF5XbH-BMT#S}@DZ%!7#R!98 zqcYnrdf5m*OM-Yt2n*mqYQ8t~5-a@(fyftc*xJi%g>3Ss(X1IUhJ0woJGPjz@;A10 z(y+d_@vxposIVK7X0n^|d6`UXIOE^ytm1?N`lDmMBiz;)nh)B$Pt4@rSk*DzI zoX--1FeWrJFOGEUwD#QdzSuNls# z(8+WxQSt`RAtz9nRII=ezpQ{Su_5KcDv&bgIFR8Efjm-2ZtmotmBR_+Z3};cBO$jt zE4RrJ6GV?|>0=)uifgpoYa>LZ@+jdR06R`h1c+lG{h9ZPt0k=l$Q2P6piO}g5#tKa|jZcPM3}OYJqro&^X41 zbb2uQ7t1uB&BNI}OtV5kn}r}Bo&LJegd5V|M$YW`ET+H1f<%dw>7^mH_T`q67yfjnpf|XNE*+0q zPE-wDDc>-@RJx+x`PVigZ9?;N3+dcZ5o(S94sfwb+b>5(gkn$dT6 z-f-2zbh{z_8&RYYXoKCL4NrtE7E*Fv`XmHvl|V9JYldnEOBr$t=ti|F?_#aCf017u5pt84)nxdq7t-6rJr7Fad=u=~W&Ern zmqBSqq51_%_#oMYp0^Em5kGRKh!yEXWaxIQ8LnYy#L%@1PQ`57Tu)`fnmki3w3#yf zrYHLxbjud|$ETDPV!T-)k6LO;V+Q(l}6)fznX zCc(SB1YZ7I}nIr zXB|)Min8+n@uD7nF6%@w8ck5vsgE}%&UBXhY#Q+=;fxnK1o3V_k3{r{=mIbx~J>v?pM)4`A71$ew4OI)QHIIYgLs#4ZIe zBM3R!wyE?ee!OiKuKaOI?0o#Plk&P8{hpa*yY1}Fv*-L;~e zzJE%E3&;L}oKml_zQxfBVLf~sAj0>#C;R{pRle2DXOj_!!M7%Ece*3#aAPYfSaTEG z-0ThFU9tlhhNvJ>4Hmke7y&JgWpGbGK-D*RUk<=B>_i&^nlaowEDgXD_W)Nt&Gy|A z73K^UqN$*_HiDDp!0VUwCo^OuGNOGK&xz`JMtxa;JwIu`uo8f?ye@%M>xJHWKb@yh zpcg+<<5|7=A`N(AYnvVbB0^W*^rs2%c#z(uYyM(WcW$k^{Qy8fzrT${oibdss2rM) zi>8lk2UBK;8`}Mam1=d3u;M*?4e}J|eXP60lCySO*?C@YfI)QTBC~KNAKcI)SL*`t zponEuv83F_qR%49Wj&~fmA}2VA-e;NfqqrMpbP?)!X|l{+j#k&Ax(`Bo(UC*o?Ix< zx)D^#qre$Q!5mva1P4wJ2CmY$_*vee+|*c+;;3%D%Em)7?#=!zX5I{f|2R#QyrFOC z7JuxYM`ihvHT{tJIoz-}gclL&d^5q9xAFrefN-*h8u5CtyxO-scsHN4R$YnrOv|KcxO_CO z!ts@q5G1Dpe2^GWF_lsqx%0%8ir|g)s`mwZq>X#)@BRSfVT%Jl{)#3p@iYBC`1qj2 zMtk{^Y`A-6y!RVt&hWTu@Fs>0G}{8+w_&@$L0cQ&CQttMKABkPSG@q?I@435-7@ya zGgD`L#QrKK_Z&Vr&hq)=zV)d4$@UO!x{ca}bLyzd)^kH8Pdq5QyR&hOuYhmJ_i4COuPZI_r8Wo}cfcXv>KXr$ z=eIM{22~qw;p(JbR|zA@fZA2$>XKN5Q27U;1wI&Te5fKAleP$X;fkcX9J@i-WJ%!R z-uD(H5*!yoX_B}seaQzgRyW%WeszU)Ej!ovHWk3S37!>2gDe{?NNP`;G%wI%=&onv ziu-6nn&V2}V)ZL@lQBAXgm30#D(zwjCP4zVuRPlwB1KcrB$SyDk*BF3YKfiHpG_NY zYu(y*w_B-#j;VDwmx7Q+`~A2`tEFu^B?PhNl*|_scm?QPoo%y!E`O*b5jixhz9Oyo zc4Rjt>wA$N%q6<&8RTrIwe;x}f1?k9np;{YpdZA9^|+zvbU3sw!)U7a;u7>0<*M-q zX3BZJssG8P8JO^%LT0*8HbDQWFPL(s^9B+p1OSK0MJ@T#o5K{n?ZzPSYWz(<#p~ii zB?(Y>f&RZOdyUUb_dWJR5fb~G1q>$6=k1kYB&&c9572WcNvKZZW8y35?Vtvnh@&3J@Fd{U2QxUpB2$73|cb6!Pc{q6T8y*z_N*{%r={ zSP|`RK>a@yUbfk)z7N+B(mrUrXv<^rpre~|Yek6-OXL9Pi+Pv)AfqMerMi<&Yo+^`;sxI+}YYB2EG?U1$qK=0uHZ*J2)d_uRr*) z2vH@Stb5h@o*P6OdGay6`dolmoB8K88j4 zANN-nAiQIRy3?_vLm1ncsCNOFPs;vIRK4{jhHshhAR$$KxQhy0dM~0FwZ@i)wJmEW1%Q^aE=r!{6R~ z^4a30#DJVm-IAR)MRRmoc)waG6o<~ffiaPvhh#gH9;BS3VGs!EMo!Z8%K4*-cef#> zsO{&KsfgT_ypbN&7dmYzf^DrYv$18Ms{aukl!^iT#)iv9Hs!i)<3VV@O+eME%h|k} zw@xLc1CoNw5k<`xgZfPYZG%(PTihk6Sh^auHZ+dnf50Ih1{5B;u zc*@G@*gT(~SA%z%G$z4vxL#@OG%4J$V|d(nOteya-Tzw#$Pf&;Lml5U&|HsYT8YWE z#&wpqF3YNP6TlMmVJNZBc%Rd}*!=QNE3eQ)arDx2s!>rH@yqB{&rSi=<67Rwe;sV}DQ^Ye#+$wMuwL2p9r_+@6$VsntPLT^1%En-~E|hH*ymz4Y_@yQ5 zY1*D(jr@%%lA@9c;iUVO9Q$xbxma#`kOxI)IjRTXakQtxZ&C1}kIvXZV|`(|XQmdd z%b5Vb_fLo49UE5xdbzVdE213c>KYmxN0zvPL?{S!-2!(sCkKwmRuP9fRZ zOMsb4Nl*x3O4eRJ5e))EbZh=Z46?%fqICcu-c|`CweQ%Ncd-HWB?r4g#0Ir0H-E-d z3kyFgKZ$J=XY4vpl}0%Ow9pI>JZO-zHXGZJA z=dOXP`sHz1O!Gn!JFJWt4FNUqlD}J~f9DG#+pyZL(SClH$?^q=3VsGwq^(yAQb0`C zW94x>6X^|dRvI->^II>}@i+4FYGXvBrAjc`KBw@YC0~;!OdIHqyd!&jNU=%LE#pKY zWQg2Ij$z-0LuvLI2eo)PX9+}3_jCxSTmesTg<1iQ@K9SHw<4%C&&cdvtL6kdt8#>{`b?I=;Hn z+_)@^w47YOzqn&J(k;{iH>6YR@y!JM03HFOLyScxXP&QZYY#^o@w1;Q*B_u`E!?Nr2#Ln9mV9I4A#ya##`IQM|3cH?mr80)sYJ$N@QKAeRG}Ot`e%j;1MmH#H zvmzmoh!R0wAb=yc=&pD;1pbgdM~hcC?Rm5NMPiKhV6nrHNq1U(Kl^wL*^QS9dOnsj zj5V>cwquKfknK~tE^P^sW@#jTc|U()(pxf!aXpmPgFXthHCyOR1=pYzvzCeEbBvyy zUE+z^-6G+&qp7Th8o;dpiSAdU)+rBall+I+HFHp5FuFW>*Y3#r%k0m_{_`$o=Y??m zSV<7vfz&k6zwQ5*9QTXrr(v?Q)LLMypD;8?^dMWt)|!tuqsDk^w?f3`t+iXl_^f zA==>9_vx4`Q>J{aQgO5W(fTq*=;jWA45n9t&bsuz@R|S-VBTY3ZyROHC9n5K1*(qa zH@1dRBu}cv=tkVMBEmdgv~V(Jc1D~OF6iyXen}?}pp0+G>v}j^AYU2lOw~fU26VGf zWP_(zeqI%)&-bcXDECRf%iLc|Fu>Bo%qR$tvj$PY7=q`62}h$-;a**SvaVHUsuv1h zJqGCNS+~i(=yMqrsrA=6LWQAG%`Nf&jkAy)7MrNIQRKtrt*6?BK2!n07l2LwQ5nKN z_x=XdeW2)y_gLh^`6@W`_4^^Os9ahJ7g)59BPZDf7GDuk=DgjU0S7Gc4f=~9G1|F3 z*^TA17L72}&)spZ5r%*(5%SfRowiRMm@ayTdOvMUgr7?!E$U`llHf+Tnh6g+wLCj- z%3bFfkISbx6bivhNl{T`^BWH!sFi#BQfdmkWz$GeFjUM_CRa`Us`{K2xDx0$PiWW} z=Zks4t}gl0D&`kIg|DwA+4d`HMI#jEeM@=!#&qlHBn3 zpZ1|wO2&EX7FBswTz3_B;+e;WM#cwp=wl_?3Tn zM*c~Sw&TX<*OzOz%k%x0%$5CR(vO6!g194>I&uQnglxZ@q7az!&fvf7XVrVXL)^Cm z6my}NPvfWzu@?@l1_;1ql(tpqdUl%if=xeB8|}97VY+i$ndIRiS}~bthxW)PqU7!5 z)?<$F9EqOaJ`H(p+~874QTo^5`X!5r0K{;QoNyA_nmao{$a%2bK5?u?$;b-1a1c=_ zhZ3NO7ud6~Xv|wZ@?>7vMq8deSmcImAaQ~r+V~TGrF-;^Dz(d4dt+>YlG4@0hD((5 z7jX0cecP#MT>+UOAZoF|WXVLH7XE+(*>QNfhHB(XXwmjV3Sjnd_Tp|ylsOwJkPjZoiU#Xj#)Xv_&$gk5CV z0WyUUp8R+Z-SPw2)EEEojLr)*VqD{)Yom!RL5nB=r^|3P10TRbQQoY)n5w zR?ds~H#?W{a{rlA-I`Fj0Ma-5;&o+aTJjU( z94v~2Bwt=;7cZ0JNj{pu3UPKH%gTSoD75e>@!}JK2d;Cq&ax_jD?YPG61Os{1Lcxc z{ihG$)^Eo)3^@$lXzpybdcLl->ITmnzXD(}7{pn)Vb?5(pk(YUL9&|c%IjdmKPTA+ z==v$d{zCHP2mcCy!&1*!BuuA9! zTmnO(fwkxxX*|Pf*`$z=&7QUYX#FZC&`CA|D&}Hc@=a2~6c567>dzy~o#MEomOo-4 zrQa$kmyZ73r%L!JTV22s)M(>pc_#8`4&E2@Lt z5-&OM02`|UM>YtN0;l2AUJXf2FDV zxw^!6C8jXYCkC&!qr|tVobqLB;z7{=y4m zfPt`_Z~VJz4dLIJZ%qN( z%r*~5t1TgBD=v!z61lB@+NF&rUT&Q#DuNRgKB?*F>!Wo}(^)*AKmL~aV};drfVyTy zTC5Cdh;BDs6}UC!;%u;go#bR~rE-R#a_*xGR#bxeNR}v{z55TdxqKJv;54m(D@$C% zu(oexGBwX*yIX$+R3t->2q<+YhtLxf?nxGWGd+Uzz#SN*DG`g7>sySkQrX~xD3NMhdJe^k+OSNr(XuP#GByFxMyTMLV&un5 zjF<~v9ONH|Pj1?UK}|iK2%N5DK9lP8_3~R!WY#<$(#6P zOf-D_EsVG^l(+9Y>MW|M4K1x3>I8!SO*&biqk^e_Vd9Y~Eu|{AkY6syt^8p`&8t(H z+RwPT)eUxmNlhlkj`8NBmk0%Z*mT@m4cJ#U2hx}_H!SRL@n#A(V3>#zD>C*ut-6wc z6d`y*{Rqd3ztG=a@G!6|v@804of~mku{`E3eU^}I{5;qxbZy;4sAJfN4T9#k=kct* z1AG@~@SO!l0h9yxtiLuDXk5eNB@BbDVp3g4shoBuBqhZG*h%RsPMk>tWC!2E z1j6Y@mmP||XbZRSGUVCsMWyC+#QuE3w{UQwNAGD-A_E^Pp0yxteY8Gkuxx^Dnmn^V zf&B%tN%+6xv{xT@ghe{OKOok7il0=0dD~A*dbn2feLrz3(yRU?7oA*ou?MKCNBdIQ zSLCuGqjK44%gR!C%;h+cT1-O(GmsgGoauO-!?&Z?Dso#lifi|=IZWe1-f6P(o$GN| zUm!dHSi_FM{`Y7w49{$vnTNSg8O-Wv7R)uvyKcC%AKI9tUy~`e2AG&c6TLm2H1Rxo z9J*^J1$t{o_O<=wI$Y*-NI(zj;dy<0N+UiS#0#YiwnA@HxJ}Wox3MEL18#k;6_$FbV{T7S;b9we&_X^?Yc+_o!FYw-fG;Esx* z)UximS-yZxhvPdEqj`9zCQjNz;oU%y@BkpG)DhdbvjMv}fm}GMfCMBQc zzT#1dQ&6pcOa@K`C!H^2PNEQ0cW6kP(zb$PlVun1c)Dbs!})FwmSWD1&KCWVdwm8^ zmO#wAm~he9WjFzomSt#V;%$;Jb6zTeUmaC|chkOZiJnpBlcx-O1`UGJ4vWav8&p8z z5H@Tc_T6d}jMg`eVLjbF&3D{QU_EwNJw*zV@syfi^RH)B9!Go8gH3wL@QNtHojmlv zUaAFqq#n<_4Kp-Dj1g>znZG|(Cupx@hCm(Oi>7*VD}OY_ucbWStDiAQ2ZE`{LkU(t zK8Nsy_FVTId$r^mDmzMoXM2}5^`WV9tb!FB?_Lc`kU44G1R?W&Q2P&Xiv<25XP;k9 ziu5D?207bPuYtgv@7jI|3bLokuitkT-jvuq`nGvH#zq}>z`tA(RjwAMgc$8tqptTi zPaYi{9=xw^8caOANL{-6@i<((f3qP9W^pQtHwyURmuUk|dAC^uj6tA}Cn0|IEqeFe z+F9zeC*C}q%|GHozzP_X484aosYH5Kf(>&RTmK?bN|o~~mf479jC|KU_-0BG*0g7m zS?Fck3}dl3BrtXlJlD&&t61Yd(yR z@A5RL`NEL94C6gwRtOyni+-Z(0N_949D0=UUOE0lzD=62O}-LQw(KS=kTgw{ z6>AG-KoBEe0X)(C(OeSLS)GOhqCU8YQyhJzhS_M|Cp({P1(p1T>g%N?xeHie7C(Px z`VVA(S&1`I?5jp-icQ@KUmW^D)h6e#M*>1(-S|9g?Y+Fm-lRe%3MPOQvYol|0Jc}5 z)^{UG3gx)fKk9rYGn(=NezdPDni4={kh>k&R|?0~2@T~&3mt|ye(+v^*G(?(fK$LE zPM>#eRQp99h7&(EuWDMNY**Oatk^E9=8+~7Wn~a<>viSNiH^Mp?={HGE;JfK!Apld zd-Tys=@XjvxZxHhC#GaUR(vR$J^G(ZkM+;5NN>HNB?o2#6DMipC8Uc%t0e(O1eY7C z=_YKn(x1q)eRwefj7dI5t-6~^zk8APQCPTV5F;x6lF#Sd{B`g8)2cCPK%Bo>&KpKC zGdv_Fto2aSXpPS^J99==JU8{CHK3cVxRgByadM>jWaVh8jO& z0m;|jvX1_uH9hAeUGOoUUg*0#khCCF=xj;v9B8Ev?a@L=#7$!5(Hn1?H^DL)$+x zQA2~G5p8mhhl8E^?m&RwBLPqU($M+~zlvNZWMt_^y(np93_Rx(nb@RDS+kOt{)_&k z%E4?Tj<1zk0xID8QumkEzGM^Gn;V77PkuHcQpru1rYB5SU zQ;lDt1dHkt1XWX)X%rtVMgGKlDQC6&2RBAO*&7xsj#{MoF)^2Nj7@x+R$6Z>IRCBV zSI_lgD#9E?v@n7UKso7n>w+-TNoneMc(rP!U3)wir5X1orv7^Uq1NJBmMbqRytUXQ zs9^1V?O>!SDRs{AEX^ihRj;~`D@SQ)q;|4uOs zkh&xgN5dBz9wmnw^Te@oJRhlg=^HG3uV!d0FH8fa)jb`Iz0|313r06Plc8Qad)K3} z%EHKE^^_|_ptSRsk4>(qAvEs z3GNxt-jXq~Kx!3LiO+=0 zeJ}UhD3pq{S|$MP)9X5=Z+^i09Lz)`m~){HC?u*Z6|m}T-myt~0O)pM|5#j<2FD94 z^g)t$;f(lfk$QKQ`W9&%=aM{NVgAM_-obJ<-!KT5=>UjhIIw9?!Tgc=hI&9l&X`d^ zi2=t*&Wv#*(KsDrH)*UTK7B%A1*FKDuJ}Sk0GR@48_kkETx*leWMTmg)c<9MotOk^ zK}vG!%_vF)B4mKp=`*2IrO7}G_%5(=^ds)ecjo)pkS_?y!-bagwNwwI*!PUaUceT_I_RTs1c(m)2Io%|wAr^K^E#Agg+-bS0g4s2y`o z*V!4ng@$~#yMu&Me_+-{Xm4r9w1Q@cKIfWxCW&y55@5RPyR}?XwfIyiig|1Ri%+TC z>cCE#k#MhNJ4SI{7BT=kBiv$ze*)U;D5!i;tACVyTcG6NN5DoH^)tCmx?+l3tx>hX z@j@G06fAZoQIJn`IGmKiQLxw5VdwgVaxbt4Vg_|!hz8q`77(ljQ&}c}p3%1uCitp- zW{<^)(zH~a;2W3b5ufJKuI^jdg?w(%N~1;7_}^U#>I>j?BmCW9qKOVW+;Srmm<3hq zxbqXc<}lzznP`Y}oLHllq)V6w8A#(0$6eMCz7ZMF-unad6o`M=Lut4={DBgven+Id z^ty%|gQ!oef-=n*)M_6*r2}e3lLH8P$`>3~OF46!>H@uR8?K)A6nV56Sz6Ec zPB_g6Aj9~xUx0;378?4_z5tk+Rh2D|j^w;l)S$c0?6$5YViMvB3tN~@`P~^OxNF>I zgHT%I@aPVVA{$+A#BzU+pH_5RaW&qcpw}Ekvjil-O@V@w;u;CY%mv~e8=HmQ`%;z# z$kjvYmh^>oesm&hNQuF>!dV`A!W1ATmcmOkVoP?1K>)&|eG-XqZ=JR_6tkmzu*5w} z7qJFbajfokd_q$A`k72Y@2yfz*%;NWxXCXf@k1x^bA`)H90sd`;^W{c1j#tCw1WTQ z*&)J^AxWa#6&5Xter9_1T%CGX@c)gqj~zT!B2bNdA;Qdd_+i~b&k%tZ-5se-ff}j# zltDx3$^7ZrYrgsQOZlhVKOvkXP`b|r^{wBc~G@eeG+YE6oPm;8j=ld!UM>b0;*qKxKV6y8kDdvb);zE5ydQK zg7ek|OI`OJmQFY69bT~Qfa1lY1aeiPkszUL0DZZmO+m+1Y&zJs3Ri)g?5_%MVZ%Mh zIJ`g4W(ZNA)Mgph9d;m`IK%;yb1?M?x$_q02q|yRMrCM5OEZW86&EhusnIaS+eJpA9Zgv(FPy5&Q-s~JW zAn#e5WK<~}LS75ICzxNL39`Rh61LykpR=PeT;DO8kpLUD{vioRO0-+_c6YGyb#QP` zlVj;ZWa%^KH(Cw(lSJc(nyXVNkrw>iP+r`1+XnOis!0|#h6N&)+qMVR`<&fr_8

4NvhYGaPE^ewZ@0crpvTUg9-w8++Z7YgsC0}7+A)9ciYgsjcLh= z_6NscaC2sgDA)9;s8HZt)(u_LJxl$_vn9H2U#&NGb{zgbt|v&33u1#j$^&!6<;_uR z#=(IM+vz2arN@$~oPW^8nfS9}Vc_9Zx=kz*bEk|p& zjK+(O|B`k!G?#nd1FdWxH?{*#Y<;e}eqsnI)bXEs=HsL^47pcd5OWQ>IC9+xWKkj# zwblZoF*)oEhI(Nfp^7## z(DcK<$yd);G09g;CVydKA{8H%>*(Iu7D}R&(I#o0)miGs_hUT#4KTe9l)DQ7vSw(1 ze_I%771`(av=|9ryR|^p2#AoEl9E49b!?i&q?XKShU9<~PtTsOmABzlFdxkAFq9-k{7!-^ zbxg!3+wi3)N~?B-kDCVewdF*s zuXseBH2&aV7!1aGt(tR*a&)RFnAJ6y$%wmg1sH)6|p%6=6YmTt8!4ptmeQ*22(0&y#E1PMwc@8)I~I1WoU zZw0mzE7K0Z_R=OmMAGEXg7j}_zvJVqvtEp0ln-7D^3Nbr$QQSd3^aed+52j4ZlpDc z4@^x%fza3VOyO5bNjsa6HPG@RsNdyzFokmp#Hb&ZihDlCQ757EPl`8fs2i?H)DGHB zzCA_wnxlEzI#kWMq-?=}Nme6pit4T!9AbQF3vChxX3m3p*}LSM(*GJ6sXb!&H6233 zWhuC9d6?D7n`7IQ=Ib@7FITHF+3LcCy%`6u1;cP#uuAhZ4fg8)R&gX}!aJz-1E}4D zTsmaf)7fIP<`R$~Nx9Aff0LEowQQP?=ci?Np#dwP`@k(!0I6ZK%%# z3h};2^y&GoGP;V(?0?Sm`@e6`d{5j?6gt_XDcpM_Qgm)u*cQ#3Niszi5H5J+Hl%il z@nE90a68$xbpBPz1n%d`8~3+XV-HUW^Uv$vYyQUTA&h*&KOLVit19=96fX2S-dcH< zrvez&a23%S6%Hc(C(^-1w3^X?fdUyVf~U>o`foW{mWb%gl6U@AnG#})MjA;nZ05~A zO>|+lg?w!UT#fgic?D8wY9`4`| z^*Y{R3JK8j7#V_l;MPf2S~J~l6%F5x_nd^-AY#v8x;OFPy%LF#9X{ASF5*2J<9Bwj z^jVhVSUI@*+>qX@Ei>b--m3bAS5;sK_L8rit#yQV1A9<-c!^FIJKQLJzg}q;78TJ2 zz@gKdEm|~>q~wMW=(ZlxWwEwryuL}|(8Oco__z*LK1}xvi+y7TH@koNSphRf@Let8 zy{lq~te#FQDD8l?THnEZzm53;BsK0^UdPJx3qz#Vx4iV6Ref(9ODY8s1OZL$YBzjw zneLNS*h=AzqKwLtWf-?L99r0-{wnHK(LCk^!itb$=&;oK#vmn6@5SkbW`I%q7`fGKaz_deZH#Iy0jO+Oir3vk;HWW2;0r8p(583N)q$JtyzW271+gI*{G0Hv7p%+y<&`G=0@0 zu{tX?YT^F|iQ-<2sNKGJK?bNx{h{X^2$>;hP3m2jQfTA8m1HAb;q3z=>T@W~yqyq= znH=UK%@qEt@FcC1l0_;EmCDoB(9&QZgonZcvu;)JRzN!vCPvlzCS?QlN!h<(wzW(R zH{;U2*9L`$W40_VsZ4IphMT-Agd@buArYt0!lLAj2c0oc%5Q8#;O#YPO$514$66Et z?j=70z!7=d0g_N}M)*=$Wtf9Wvybpr-m+{7n-=x9Oaezr)RkRs6I((qUQ_E_VZ@RK z=WCh|T|CL(^Q8`I9=`lME)F664YVZJAgr<+dHI{l7IOHpZW@|LR!dD2L3=~{Gwb9G zgE&#F-tt;^v_Vt(QvzoyC~gw7gZc}b)e@<1Q+qJDBB5CyQSNwXli}J|)>@hXz&BCz zuFlfp1&`ecx6tyCq|U%W7OpL+rU;(K&!!qOvvd%BA4eh61-}?Vu;xnsDiw(q1GbAd zQ~i)mjTzQ9ykzaW?y_%w8rRv6O{E-P{W{bO#gsiUB$U{j5a{^N&5WQu_)Pw}P8&jc zk=JSy^o?d{-rv12IO=&ZyJC$o!>+2p`00Wa=>-x^FjHZ%5Hp6AKY^IIG`ZWz+RXZ^ zDF)P8_-1oBm`tPPUVI~A*55Z7j4ygW5GVX(j8F z4@H_*O6^3Ka{t^y!*ODmtd} zqC#eU89f2jY+fp`qk}RL??m?HsI7vZK_KM6`1st*Xli}vNd)t23Eo4E0iY4lCamO4NpBX>UgllZFb z`rZE$+v$*MsYdz)L(vv;VB*Xu6-24e^3!?c-m)$LJ&>ZBC~5>MT5;Qu1JCeO?&ah- zqdsHx$zNc)2r%{}0E)9V%%}p)`iGcrdqnG>mL8@dwgnF&>bo6cFioe}zbqcxOF5Jpq7A=N#%^7Tx)YpLMevy|N@N*O49&v9P4qPmQ^3jMXBM|Aw-9a__?!@c7luOOwrL95uWyh{fyLt7-@-KHj z$7fXgG&ZKPe$TL$p_~{B_i`mYox;MKciS?XC$?(QH+*AaOBp}F5@S~PU!Kc-|K-c+K3p0Wu9SceJ$C?3hoZov zwZ1~do;_w6F;A_8W5HepQN=qoRDb9nP=nfEdJFaEEMu}~zCD&mUdJ!|L_4bcC0U4#-{d-_@o}2l4}@ZzKhQ6!k*JzUGd5U&g0`01&NEsI37duQ-UoKy z&GKZ;$MimRq5&y4PuZy}Fj}CQN7ov3(u-KXH5Wjjw z;w>ki1j;}giss%hDq=T}p+_}M7F_sbZv!Vfw)b`Q_%bA+uYNn(*9#hMZ~My)p;HIo z?F2G>)jv>i4(Tgz%&2T8fZGy|Uy==Sc*#3=l)C|scs5b#c#N3pD)V*T%iaf0OuY8+ ziaUJ&14h;_8ZgjyG*TJMmP*SdRsjQ3YiAli$61B(PXAa>PT&0?%Ee9^w1L(x5E6PW z!c6*B438le#H#-@1JB`+xVx%xb7Emgrgr*-6F)j>)Ft&AUMv4<60|r50`N2sFZx`l z(P#CKj8~SCgL$EiRi}FZ%}XKtaqmi@J{Dg`c524|^<^oyAZg4AR!IYe>rNV#(S0e+ zTdlg+gN~+1?envZ%4cl2t-eVfIb`!IUz4&sT)uUV$|#64w>h%tmr`j1cZOX67DLbY zI@=FyYx2d-}pM=<<8Y&gI}t>@Zhnmz?Q3OL>~9!elrczuFR|AjLv2Hh*BSX(AWsks)*i-(T^@UNSd8r=q&~W_=QE0Zf#v?{5rG&>@H#gsBXLgZ zQ*y6Ux>b=dkw25hnJX-6xt_Q0&y5&4P}{C9MmXE>et1{E#f_#{y=HUjDzw5TSL@8A z75!a)qJV2^E|x4RA004cij{~_02^b=eQYZQ z<=QazAEIINt52U(&1B(~ZXq(i#aflB8M<@|Y!T^er_o2#%a;G5`gA%uy5>Phu`w;9 z=mtK>?^zQi$E_K|%%IXGMDX42<;|j#tY?-^!(EyTNqV55HYPd}OBt4oLMgW6r^PnV zeE|<~Zun+KqF}yp&&uY;VAxgE4mUs(HP6##7}%xc#o%lzwM7K-0iQnplVwYg5% z@)n*T4sxhbUA#YtC}Tg5nfiof5OP-#DVCq7%?Z$L>ktiD_91zW3lXF!xj*%I&+hmz zT1HO3`Fq2SqY833Kkf(rHC^Co$w_@$0tglg+#%Jj0`JUE(FYzWoi!sbqW-daABFu$ zzvCTfr(Ge;7vyiI+&+RMYUTi?d~z|HzI#7Nl`4rokJj#6?Gu}ork*nb?a&JWCZCsM zVRSWPj9OsqqJ*42|MN(1S!H^31}q!@jeRDY`v(;>-^uABo#{VyZVBFZSm*rM#fQA= zTLle)Oi|U&`}vOs;mv9-vG!-%L_(Vh;pm4ZV`~<{z!txSL*sK$PXv`T2ty@I+%Q;3 zULq3jh<>Lz*WzF_dUHsP)_LLkd(lSy(>rJJS9GfQir&CHb*94$^e=Z)jSLbqJ8H>= z+Q3G0H!aBa#)uXz?0-I+%r4~mBVl0a#US|#ty$ENq+s~-?EHcCgo0gP`XFjM#mShOO)0oQY9D}Ti3 z2Wx5b&h6s>EFe;{2=Q{9$Hs5eNwPIe6E07sUKaK-MDBA%}V2cPwKl zF83?&XpVv`rO2x!(#>*~!Q=*MUD-V>uyKLSp1G~O$M4S+jz3m9no=x6aNT^KGE4%Q zde*@!KDW?`e1ut@TMH*V>&Wu3>olucfW~6&*>L? zzlK<3%BfC3Rqi9Ax*@P{=RrQin-XfD$F^#Jrx4@HFpGx7R|vM1_KnLB8GN2JpwnXv zC0_0AHcKBx7b|Z5a_Ut(K_sDl_DX!wC?_1Ctr}s>c(N?ZzuonIr%1(&-fG%<6>?#G9ourx=E#$Iq`Oe%HV!hu#n1%nj3Oi&;)y9pERr?<` z!?fzEZjp92ECN--nOX8`WTefeOxL{(H^A}7Ao04Ho!{k+xLCQxm?+)eLJ-Z>UTy#* zj7POPXK6GhQi7AybG$>&t4KaJjrXmk)pw2|)8?4efcT+f<;BU3B2tNjNC;kwF?<#W zdK>S$X(z8iBOz+inAgc3UKS!?WsyKs>`w5m{#kjjvQWl$Dn}x0o+QhP-7Z;X8hUn; zqYT?Z2NkcuIEjjN7YF(;_2`&2Q-4GN6k5URsceT!Nn`ZY1fv+31)8Fr|PmaJFgXWq%ju�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 (-2`gkM8bo zXG7!U_&E==ixevau9JXGBoApUo$kn&$x)n-pRNd;UV_@jgkm=1x>3V0HnT4C<*{aA z3jZUi!Zn9~b&;HiO=5-H=d9HeZgivQBYvgCFKs_#Kuon-&4-p>Rhf)% zIv;UCl>y8S)r$w62F^eJv~V>BVGx`(=ySgSZ9;QJa%%2oW{@e6QqP;H^#-p&1@kEU zcb}`cT%iOT@%@JWP5^5ygAmv(%^OhL%NQ2X=+0Ct4kU5`2exZia;wV5P^8S1QP0(Q z4Of(8bjOJ4)-rH?AEVFFv1F?UWyABV(6hTDNLrvdH+346ZECM+`(Kw=NU0q`?t8T} zfu2BRloi+|0d(kw@*LH1a4ve~}S}J7IG5-pI>7L_eB~E^@9jFg)#!3+Z zn2%WV-YuhHddN;+UZQ8^(F{Wv7s(rG`+Q?R6y)qsz=UI4Vj?;=!gxvT&7vaK@mNqt zX;k#XIm^-4C9J}|lzu=i<*-JZZHNfL-e;><`He-4Ye;RsNZL^_j^yl=dw?BtY4XHLnbfTHb5#i*CoOmMk3UmOL^E z4>td%=^(%nPpb<9yDRN7jhc}|=s4|&IWgA(m{)4k!#NAld)3_jFx2Adjg=+f zX^p+?W?7EBf!mzmPE-%Gy{r5EA;0y5J?&5Z-q^Vzv^gotyg2#By{wDnBBm%`QF;MK z%Cyi+ir9L=kPo3~uBKK84kuYaH&R2k;9tue3`eoy`FU;{ku#xl-k?a6EZ4aC;MW0boIYW>iDRyoHuSA}Px zYarHitBT*@-C;+oY40O7oc_*}vB3?694cWVt(W$^SMnW{aTRsu$}F?yr~`(k4`||m zJBttl2oQ4sxk{-|ky0@C9~!wEMD_X~9uZ+6s|EvFxVh4Xn1-_Iw5?@s_Y{U5M28~V zNE)3ws?sYN@}R$SjQBn#*zoDzsSX!lYzwjt^aB^Tnn(J1r*-wHk};Y zw)5l`!s{F<5w41Hq!eGsDYsDo#f^tbP&6NFc`^qzn*THd)HohZ%Jk?K<|ys(I_c9jkF6AZXDc0-W$YLOF! zxka4cE{C}7bI>K@vy+v5(HN6Uz;c5+QoL7`VMExjKDut#wDvB?EaD%6%8u4!Yf0*J zYw$`?o$PH)jF7(_MN~euz*B!VN=aqIK>H2NWr!yRdbVs_xQOLZ8^~|rU#&HlLT#Nx zx1s7W;cN_X85w3j} zn<6iYu4da*c(re^i8KlB)2C+&1fqFA8`lz`6m@>ZsAmB2~?8^B|?~hW_~Mb_^HUiL$9(U|x^G ztyf^b@HrX2y(~DqHL&e2{jDsP6>WJKjDg5y876W6_L=N}AN`R=}12SI~;`+MijoaWJPMBmhs^Pn6-q z7BLm}Pv7zT3K2?p_Q|sbSR|0>t-9uw#7&FN9q-vI_NHB3c*n*!A_)X1NoKNc4^1U% zot76S@rf6bR20a`!5arUOOFU^T{Zzvc}7#dKQuDjff<^Chlw zwjouIO`S%nKGnEz?sb~z!LfaH3oo5;zK&-~8v4LJ@Ajwc*AM$xLwTzgs(mhNBum+k zT#)#=EicUOb5B5|@F$XDgAiJW$S++H3h@-~kFrmX(f6W+J9YV1>iud0VH`O_QSW_0 zsg4u!Ipqmb^Yf)=MAh;bMY{okZrsx@Qs!W6u+7o5^_#wf`}8p$rga&9eiJpnQ^LRw z=eou+iu-CHtRi~#{dGe~CNcRo$y=^t4v^f$iYM)G42lwe;v5-8?C4@jq30{U5O|#V z8kUkz>C7E+o(owJSr32mbq5otp@a%0+Nj~M zA3qvlU`CoLOHx@+;`bdk@F4@C{ycZ0Hr@?1g9DXk5nSqmq8{14H{8A0@NzEy`wk=V z;tLwnu)Ub7UjRS-UG8cmiU~wU%`UYX$d+InT4hl9%zxS)CC$&sp&fT8vUk}qB80Cn zFIGym_~w5Mxv@0-4!s3)$=ep!ae2hP!?j(_QWm%z?S?RXs78s!%zWm!4-z_R;ALO$ z^!qOB^M*)YT4sR3M#y|H6b#4LDNzHQ1YQgoC&O4%`WQMCl-V(axF=0szQ zuzx#5xc#)VTQ2)GdLDQ$QNrD*1cq|!@NAIFYTtvC+NYR*+BOQG@Wq23ERB!O%#+C) z&HhN@m>AhSEMeRmZ#VEM{j&CnJ@813ieD1nxN7#8Q_wnULBe2e<$eow+FHq>7y%jt@3seqO9>JEokqf#ART1iO)|3{) z2aF-gq0EQcmKlVJcS%-2$J3X9L98w6__(~s@lCR+^eP>)y@^^=mD_7MGa30gzpBHF zS|gY`th4b}#i4Id@z@sZWYuIW=}h@tJ3l+e=T3{doPkXoKL`qxC^=G4r%ihwsB5Kp zk{lzUXuv;=^x)}%UAO7Z)<6vCcYoL<9v&Xi^meji$VwpSx=PgI=-e?V3CgiJGp;Lx zt~;P>ZQ?cbcx_J6HHwALvn2l_WZcG``U~mUw+D(_m7g(IUaG*KO!K9o2G)t5nTp0- zaE_T-@8MBmfO`)?CG|N6DO_*A`~jW}$|3jh0l{vsU%2LqA*y6S_GQ0gEsM@V z?~5#4M|29tS$l7%21s%T0thu2=8m3&z^e%JYl6OP5r$f|YC$hIB0xx+oRZ~cgDSk4GuVz+XptF4 z5mP%iNP7Ao`2*~-Dl)HZacj@5NQ98a@7yGO9~;xIrNOGZyQ<#(XGxR?+F?G9qbsRV|J6Y0Mk_ z40b5~Uli@@G9Kt?F!jb2cc?68F-RFs$QBgfC?f=~+fw!obspA<{SdTGr z_C{Ev9udOVR#jkqhclCY{zE;rgylQKj(0|-nu`NS$f;*jS_@@g31*tE{FN;MPbf{xNZLRqWA&M|(umrF)|{}UMO@gK!+4YT z{u!`nTxhD}j5&K{S;N=G;8APwil-*HPRQCa55AvM4j4{8XU`XqsP!UlOoe!i1;*}* zJ6dR$zZu(ppIy=Iv6`gBD`WqV`GpU*R=cB@soI3IH9Dvm!i$5TFh#!vmuCw7zS@hc z7qA?^O|%(1sR;durjpoF(dLq1eXdod{eTU5kF|B(Y-r$cMe$3qdWy)tnJHN$k*|Ia zwkT)TQhj2)k3yLxwG0Etul2Wtyy5~V!*F7?{9M~~S4QUFbI4UaDgS$N=eL6?1aEN!<(9+-nrcMq7^D`NIiy*bUzg5iIwHU0CKz2CX)ejrlm9)qH~ckLzUz1KqL5kY820_WqJZlQ^JVxU>?@p&qdPBX<;BT1*Swn z3%NIKI;G@Nc838$;3O7v-;Y-onk{Pm*;QgRMK-< zs3~va&MB9{Q=|w3jbdhIf6GbDiAQAYJQg#7=exd6PJ&DsXVa@lG!%T?0XFagAN3(? z8J^4NAhb12oGxtK(Q+&2E?4tlfKffUqV}JNq~oLiDL~O6RE0 z;p86cIMRi&J@eRI#MYt%YVZx1*~Hv2SL`z-56lDU)klpQh_WkbX1)}(N?BmVPv-5? z+%~AwSNt%hhsU8k{y6(3ze6cCk)tmP{k^?Lx}&7q0=4RQ)As{L$ONVC8RDu9IrlIp zd94uiIO#YdWnx`$Tkp_!=n`?p9{O?yj)1`#ur&3E`h9Kn#dAKf7H_V9yr1_OCZpU7 zf4ZZdz9-|yAjVbwHv*Y1KMIL$6vJOE3l`pjeyin8nksrgR-j_Lsz{j*KKN)h4s?gB zd2^K;(MCbO;xsbcMhJ_Y?Dm@m+Tc^BqJs@jU!83 zMm^YwKl*Fg>i$lVL-P*r_W3twXmQpVJ96pRRZ`>a!iJ>yHLvrRHbA@9vhb^tX8qFC z?0g$Tr`!?&bcIe%AlN>wiypMPEyEDv%wzCK|1`$FuS| zZ5`_m^PrGC5Hm^3Pjl*BRL}A?X8icSvH}oUM04YLxtupB2{m0`{G53O&BqFxoTAJw zK=yI@6MPe>IuZZ;P8#tqZEWM@ z+pq4ZPvSG~p*`2wij#O0OR5?4olwmzCtwQ*MG)b@211MZXEI$ly}*Cv<&bWQH2dywEJDNV+dhr+qY*6_&KIpMuQrG6hZm zfH=J*`Mhgkt>H+n|G;0BnTpmq13^JnE;c5QTg=Y9b=Rl`{7GZB8-b} z#db(fwy(dRA7HeW^fyEzFFamz)n2f1jH+E1uD)6=Q|hLgwqrC% zWOUiWRNyS}+}GA#X2}8N&&AmO!~Ci;SuryNr+B=rqRwAXz$RW4^i4!4Y-c--;^B4O zeVsJnR16LU5W&%wbvDuI@5DRX8OK{Y7ivLtx7)RqfF?=HkmWf-11E^yCfO}Vm$r28`r==n%kr1`zE&5bXV&|G zRD`o0>3d@S0;~aamW5kePpXY~;11zmc};bm=dl0$_HKvTIV#h5U~}W@qL2R?O+5^s z-n{%&G`3~-Qd!^JTg7M$tf3@ErKgOQ93ya^Q4NzF?u{%Wzy#!9FZZA;)j>i3mlt68 zrJ%VEA-MW5AiqJBhr=KR-%bJYTQ1(`onP=3GmA-&0Q5@>m0|DwHfqBIVtwa|+nQ!_ zO84PB3c3n;(lzu!v)`2|7tJwPhBv&){dxuiSci@ED@1kodRgb`OrU zxPzpiAtpL?4433{5lZrt*76B6ZUaw2x*9Rc`+iNuQu4rKDrSl?SJ)~kn4_j~Ze?iM zNUYg~5+~GQ?FGS93K}a|7+VojRo;Q6Cm=Vb9Q`i_QHmrnjz{}OHOf@#xG~6WR1R3f zpDTPMn=%c*KuFvG2&((<8l5moUG4+OvYSwN3Mtz5pH51U5>J0)8ih7zS$@bZeDDMY zRQ)u>6B*|#q;G`>>!l;uUQoKS3;*R?$N9tx`z3$PuP!T zXnp@!!~k(;0!`r#WTrN^DyygyaTC~@hGd_V90mv3svI>BG>_DZX^fBxu zl}uxpLL0S(-E58OS@9`y;6{`MnlSGGWHmdsJ5(25T!}mLd=MW%G~-TEzh7xD?()p) z|6p=2F+g+e4rOm{s@6I@t6t4AcN1pSwUGKbBW$IL+y{q6K0yL=O1>}>BWa-?L^^OS zKf)LK8MGiqwOkqtitF)?hRu^5zrrPDm>EcMmSsT(A9EI{f3YuXm?)1p0ct|91gDRL zt9qPFHTG;ZD?UNh!Gb1aPZb4il?LuG;>8DiJIMAEUi)JW#_i>Npk-K*d$DV{mGZgx z<00PRgmEHjn#8{gf@<6_=joK>Jv6bv>w(#N!66)A^@Y~!pPbx4)vKp4z%$XwPi-o_ zq?IAgzP$Z|DQ5=>K%u*)uj5fZNn+Up4|(s@PPX7BY)IUYpL;4U0l$ypd}E{NQJrSG zYOiz(#yENceYdRTYLk)uC3s({RopU1`PFb2J)^+rv^5T#Gt^~LuQ62-RRZdO z{cG;5+3Ydce2KpSIB=8je6YeU5rcWrQ&dcIMx9s6C|Y>%z;-Nu*ud*Ee70&FkQx8w zOw)+^Uq((jYC1U`+uh3D{x{nU`dx@3#=0+NKr?g`I4X`Q%wiK48-hzhNMFn_=V=vvi;^60t*t3pbI;$4Ktt zIZN3`ADs1OGd{&{${FLcx3}AO)E+`x7JbwaZHV!tl^s;-v+jvw_F|$u)rC@H_8!Tw zBw7{@!!|U%+I;A9goo;tGn|R8P(y3iU|kFV@;5B6B}@BugiPtalGr|@Yvq%sHf^q5 z_l#DFSi6NO&c2iwdH+rmn(^pHc|~yOF+|!p&c{j>0bT2Y8xTVh>D(W~7m3{CS_V@+ zQl~sgkju6S?Iqx7 zySXOU3*eD5_0Un}sR*esk1UU^7;^0H>x#IXGl)-_6Uh&ZPp@uAp~G5g4iGhX10(~g zD48Y%C*E)G>jU;mHciOZ;_H*?zX&$ZvBAZtB)?JQQEOuqo8)4L*L${Na!7+^PK_`O z&K3@1c8q_MoUw^m9U3>hRbW=#wPfK%P!Z!3TWVU?!-m4yfAlFbqmIj&<<>Cv@|R0s z^{XcdusK2>B$0wtiHo%T9nG<{G>&ydFj1Gw_eNcg=v+J@WP_$4TiL*prf}P`?oMr; zXMGRlwoO?&L!djHOY|14VXtFg__?U6)T<%Z7mmTnx!WzEQWNdWU0EXPM@-#b)8Y?c z^YlloHRhqC#Ah8*f(AR7`&cwJf#7u@)ksS0Bx-kwG!(6)qK(tPYo>K+K|ClsR!u&A zOj0c%etzjlp_{CO7QaTaRFWJL{Od<0xbf*oHPmf1L0)`EaD7VD3qxK1c*4ZJ|N-mebuhJKXZPTwe2q|$L9)S_#iwrdK2+vgJ zB%B}Axy5P7CxC8v%-pVC-$twHeTW$eYjb&pR;#82i^Gn9@wC^Mj1edS?z|eEuH$k* zXOst|jV}``<@5Ma7*FiH0P{q>Xc$+JF4_qEpCwGMTDt$t6SPE0-$4bi&$S|gYcoUZ zdtC0Qr*c`K*6_AVEGHGvzY$MYMH-`mwOANnXMu+RG5P+I5r2J})6e3ZVua|CbPS2_ z<_h3K-3hRc!JtAPP2l%Z0(oSe_rb8i9p*;G34i|)3#k~z2XZd#g&5bjN=^xWn}b8R zz$N@5j>e~NJG4E!pIsH8qbpADSVsy;Ec6b zbL$vp$pj^7o}~cLv@Pi|-+Ca!(l4^=R?40UFVRX!_ohTA5!3W{$48(dXMn%TE}gro~YA|E`mak>I!oQug>a-1o#$Jx5y@T`-scI zK|Tyo-%bHOV8!lY1v`ZWqTEJWYn!t>U^)5?dao)rcGsLoNVsgR&1jg#YmjU|jFhUD?}LrB0PPVRn=j>*mU9pRk}4~Sio^X8@7 z92Fp$>{nl>?1F|Q+j`1*=2LWl+;nm6z;=*RXjf?T;O!O{RW9iBr!F+35Y| zjoxN@h76DRi@ScD`wB=WVa}K3_=6g(1z74K|4M`BQyXLiK&g8S%s*o>oyDB7r87LX zpkE99OP_CQ{NNO84hvDvoGv0Re`{u}6erlRgFz);x81AIc^+Z^od?uEOGipjJoA}P zF5Cars^#fgNmz8WIY!-H+}@=-3h^DG zRL)i%po{|H3+kHgxB9?*%iAAXd6EdwViLN!i{_=rnm9O#98AZ0XKmt*M4L7@Qr6IG z2@GG&urp=z&nlD$Q)a=7=^kX7+oW}JeM*n%S|KA#=*USM*(Epx1 zLwhW-7lG&KnZ3YFT>!r~@m92Y&Co8vUA38M`r(*d{v}w1e8x?&QSm<9bH})c1W)tQ zlk5GjJC_AY32)f_qVt1*lqsF)*P+l4NG=4k`@Cp-!g*~}uw40|ee^e~D8jF6IQ~xa zq-13^p!{b>#d0%pX}{YA2~Xe8IopD;9{w@9kb(g?SHpV3E>EJBLBIx2j$t+{kcWV*7VoZ3k5OgGbiE-ILti zp6sYAE?6ulQAa%WK@2$Nk$d~>t#5UiL3QQfVz!(%UGTQ1 zg@fZa*rUwy1f#aENEdPv@ge4;SLdJpC0VFD>S9T2G>C+0wZFrPqn+W!j}rINEg{I?$5i!%0rQ-S*BQ%_aIbHQv_@5`-Y(J^JT4)nwItoNWN zsoFQnANkaw+4o;K!h$j8a|(&VWlA)=^aq%vjDE!h&C~)!@hDhSDV7XLHcO>q z=z8io%{wzF!1@<-<+ka)Nd>_|69l1tZz~=7YNTn&8=xA*+)#x7Ez%cbp@JW{b#D8z zbbS$g52l7dFI$MY$xYjf;d@UnstIhfrq@*81>!~k5~4P3`M62e^Qye4^Yjc2X*hl_ zWZ3;X%<#IV8idZm*)W+aFFLKQmbpCLBi^1(pQn!I5ZSAjjx6KeBGjE8Tt(lT3E-1t zC=}y<{%CCEnw^8I0QlHFHVRo-gp{k338P_QPFVLRy#BFN|xzqF8RW7mGE^{;jzlu*JdM zuI>?kvYev&EkDe8!~k;7PRC$Yhe#EvxZ}0y*Y|FjvJBh2e1+QHH{}-_9|wb*g0~tl z*0nHsTpJi7}#IFPd(|Os^ zOD?mInj2ExY$ghCU%bnmJ@?_44$Bpjtg?KeN^Hn>@>Ym| z3@{%e4dgEc>7vV7QTtxi(UBw7FR^T*y?EW0iGP{{wjZ~=em*TgXFe|7!Yy~wpF>Nu z<$>WVfZ8t59(ZYvbLeLVOdAKYJ$SL8jlV6d zm7XW?8L2lKw}*(+p{ug%A+a@_DE4Mc$7ujT{3c!QdMWZLc#V?XIEEUSHN>VuV~t;= z*NyCqfzEVM3~Jh|q_FpK4PatFPzV2aLDbuJTbOt&uw!B`Y~+nIcxm=)5C!XHqpW%f z10XefmLxZo;AoZ5&c^xfS(?^S=~&Fhq)4hA-&EUS0HC*tzMBJhw3rezjEpS7#hh`( zrHmdSAVnj*ImeoRqoS>_pe^N2Yj;cFx7=BFke)PvP4?Eo7`Q>fre>$Y_Oviv!PbxUPF1fe;i z1@btJQ+4x}RdvSF*HjwuU4jL+xSlwYGg)Apb`5m|=TNJ* z8ZE3yCT);fVWKN6_Can^X$yI}ZvKMC5s(CVQjqEbf z_fk&fFu$^oq{AFP&ea9=Ros1dZilx$k%0*;Ja1`%Lqd#$vg8 zxe=gTQ53g2xbAa2-#VB-Q2JhexadWwA&VA!BT)P+bQ|`pB4wkoHL2a3-r-yxy-1~l zL8Y?7mUP1$Lx!}6{pYe%e&7LSAXOMo`s-rA%=&IDvsCuiefeSpasas!9_t7to+ih> z!b+vGYJ(o|I)(_kfrA+xEbtJri&^WDWS#A({AIurw#3HnIeV}Zi`k~0r!C_mykD>$ z=ZTe)jcw$Mm}O!B%tUU}f6*58(n8d|38X0EErz5Up;xZ)Vtx7KCt=e-a|%h|BXnLB z?-k5uXS9~Z`tM_flhyEfKTWq8RqT8DMEjQZC?hl+_JbcwCDISH>808ve&^Y3`(1C( z!!Cy=i!b9w{Y0AwI*&$Qx;I49K+T5P7^A0nfK`QCj_X5@06hxjc6yh5b4{OgVW8yy z*%bBKBaJ%GoVVD&!)9t*5v--1fswBh@YnQ|#~jhQHdVpfQbboIu`{GUgT7kQxOSyv zhWm60{;(X!KhA;4qzIa);?t1*fS$AnJbHNt4GuUtE0XMDp!b>Z&`YWfd!R7LFR(5) z>wX1MrytnB3rpEEO+dxvn+`m>LASN&7m{2!D+V9_dv5Y8+f@~=R$jja%P zMWkgX082o$zkg{Cnt-hishJZIFf?vSpdrJe)=o^Y+3HsG(Je~MGyzu8b`ZoC%+=3n$gT5Bh zlgqJ3;j9$Mok+(L(7On;=T}k!oYxJ6AmjMr<7c8aL1G4(?fbm_xp`9P3H3ka*^ylZ@@V%wl>3v1Z%UjR|n}QYJtW+c<$sTE6soBuyx3s!(O$Mxjwp1uE8e z;dIuC+CWt(ZF;TiD;v^=glzY%;M@8L{=maAXvu*z4vHhuTkIZw08|C*_~VlgGkJ!V zwQwb7wlzBnMZ7|yWV3ha0c$|z4~3SvscLa@^QFSWE_=BpjP1rYyAICpfo4N0l323Z zC@sTXS3D$+u`M6XvGvN^#!g~_h>FX%(Jy7T{|UCDyPA0gyDmpqP(Um_1)lW{reArT z958^@xBr21PNJ&^K3H*F)feJ$>mgukm)@rEhaSVBs>5*hno)oqdbkZmc4f8jY;In$ z0v-9z3aGSmgMDYPNy#*@qR+GBftm6f|57FdR$D4VS>|1+Rxh14xSW-#LS-w_`v&)S zeNL={@0%c|uB++EMr1&~A}B;-+J#>-KY@KBR|&f)v?f;bO=FnU&zPYKDZ|UcebbBa z3l%Inn-n&uOK4gzw-;52(+|Az0F zhbA_rrMEPE+BYM#h>7O+N1~EJ4BmI)jz_NvKWL%j(0jn11|i%@jSV-Oc>84vaDwGe$js`(iAUE`#BM_cJZ;=_j<#o~P3mVVi!f`wV% zjeG^DwabAJ<%L;$9YJ>!k0lbym?(u2PtD8JRTPQkb3gISL&rrzA!{~|o;L?dvN>B= z4`B@M&1^hbeafSH#t&83stW~hg90qFHHFLECrP?otu%@t^}VU^GSQVo#Fw6{9k zDf|-5V z$bSd1@B7LCC*1La1cZ+xPjiJ|G6VMhFy%_2YMThu#K(y< zikpN9P_Dn%`XC?g#1JvKKN~*3WAqb?VOxe)Ad~1MRc4*ZXlK;#@R+Va>fGr!f&Pj| ziLYQiM_dn7<_T0$zF(m{<39-FuQjcuIG7fT1e>6r7Qreu;vgFHSMy7@=FGcCgW_qA z4Rs!tv7j?Vke--R-4rgaYFrf_niN5sxs>#o9@_0Tv9Y+3+g7)x=#dv7Y(2>r7-99l z6$!I)jUO|v2U@W!xIwL$GnjDM<7|XO&n)T1JLDn>FtEb@m3p+*h<)4!nH2_=s!1Co z6b$FzE>>9Hy*5pSO%{>z-)|IJqpTL6qwOGA>KC4%O+}+@H?j0|><#l%(0`(X<1Lu6 zek7c?SneO76begz19pRdUb|6|1KRD(VNs$b`QkFU7HLEm13S{IID;#)#sU;cDwfQ@ zIOES)EqgpzBoX3%s5M60NxbSSX_IR81<6REwz@o!v7gWr#*;)c;cpGr7AAMy4-_DF zE@N^x?FPWi{${|zh28Ys5Lmqz!Z8S9^=5tzg13eB$l-S_k;0- z^ml~>7{t40y);+tWc1#ck-Q8kVn`61pkbqMPgz~$Yi=2=W-W)lL86z6)H-+g6MZdy zU{d++n%FIKgmiyE{-LVFSZu|YGaMU5D&j_rOSlz%n~m`V=SW)2Sja#3{0Ip}*Xe() zLvT69rhz8&au>95T|wgycEWGeHUY~~e4ThH4s0&h(2koN3(;9`5j*9=S zE}STrh3!4HB*@mp+c)u}7;hai5RWh})~4W&e#IM};}Q#Hg>k`an3!n0LaWy-nP05I zV6o#LecmqI<Z?nNI8WGjfk?69{x9+_Ie3Ajh(`YC28f#pvl%`I_h8Xens=Inz^Ns5QjWv zH~5Pw7Tf+9fpGvE_!I*2v9o0U-&`1Q)m9z}qtp6w5&gE<2Ie_4QNIp$u!nI1-?E0n z2fv6119%hbXn=3_Y8t*(1^iV+x?4+PBx11s7F4dalv}OM_d#qgkF`IG;GZmPpoIex zz9lm#wT|pMAggttQDaCg!y=TQDOk2D5Y4syA@};!KD*nF-Oe2yHBzzo(~9=8@Y6~ z#^iIl<)G2WNl~l7dX%JUS=+rc_vL|=s=aJ@hesN2VtaTb3~F7hrfpzH(jr3l*ecAx zC``hSOp=09n)t|C*vh&Js6er12qZQ>Q!<{GoKV*X98?Sjh*LgXU4hD7f0;(w53h^x z*aQ*Ufj?U*kV2>xauXP99sFl^>IhGa7@o6*B7X{#hqD^oa@uV@{BLSd!GT01@IPE2 zQ!md%$?lZXHB*Hd;SU0$$TWqL7CEp-{S`Ce$81)6Zl{&5r0kI+v=Ek+qZP9AqIp8@{?L6BnsrEw2Ua9 z#4em`QUYlT{qP@1HqaP7{E?TsR;04r7^?;v9d{LmCc!A}40NYSf;7fhNeuiHF|}f8 zxX@Jmp+|MngN{1!hr=Ur;0`u%zVHT+_aIf|CCOG`>dt|_YyPac2gum6P>^{nNXG!F-_DvKaFdQ-$+iXYED^wrYp4Q7RRIRPBD&IsN8b zv;(^u+PIv3(BAQ_MN0yOz`VM>_tjytq|HTK8@5M1Nj!c#5Q68u=c`8*l;`QHpTgqB za?5^l2led9{OpPPHtN-0`vcJG;7$Z-S?!mR3e_Ul2EK_a-ytUbIiTXJx*pxVV3^8q zPLRNz7onfYU`|?nX4u&#BaIn)IE;^D@E^|$AYZoEM9ffHvPi(_@*_S3ISRlQp?QnxiAF8%K@uyw{P7Snv*D_wQ(Q&Jc< zt`+`Th&vB_Q=Au8G9p5kz!KQ!VOr3kzGOvhKYB&mNW9B~JO?>}2u7%=xqyiLRs*_b z7I`Tk9*LP+w2>2P|J@yVYk-eRH$<^wo(RaH5Aql0)i0-SH+J7;vq!Ft+tsBj%tP2@ z4ua8wItEnYcz+bC)@uXju^3a;W16fg={N^f&BP(uBuTy@p*$4hal$51D9}JP6^*zs zV{yPq&ePC*DXrVV4st{G%YP%o24q($64+bSW#F6_$8+T)la+Fy2snN^hWMqZ(^Tx0 zk!FMX$QF@d$Dd68c(gBx3cfxAxkGaHIij}Cd|%!yf3&L|MCUaFx43~Dx3Ag{xsRk@|JU-%o*cm2OpnWQ&u_|l`Ov_ z_sZ@9tHPf~J15q5%|0sen*z;$49W!wlFGXATB@TmbY7dk#*OO!R)qk#yO#9AiYG=O zGhgHN?kBSXY(sSBYvWp(mVI0$#JghEyq%&1eh+!0B;-P|A4iQj#Y^e5IEZbTHi*-BSG@?Oqj=Z+p4>2WoOeDOu1jt9IF>cwyAC&-9Ff%{C*b|55YS z64Ysnj~&z!%iWTlHC_wkI!j5<&V9Tk5q^I`tj-{H?}OTmd!N&jjb2Q8Hpz}~G++@% z<7#dn=Ip8xN_zrU*tplbf3|V%<&dBZ3Wka3Gt(;71j$Cy{$dF0$O0VJN z#xA5k0psp%c8*6V1996OtXO17Fr0LZ;cPqudbHZaq-cqQBv2)Fzs9JP%8E&Cq76|p zgSu5B<|jbdSR^T+{&dibVc2aEZJ{a5B({c`0!e(ligpVARoo;qg?*OD`V-;%`YadT za**qWQX~b033uo++7{&nCr1(tJ$_%35!hpQXa@phToYRPxt%gd2kXMiX@g( zbcN#-+WMja7evyT0l3m{>piLTu;h6=IPut;Z@IHb9v;fqm=XWqbfa)=F32HvIVl}x zp3PRD0UF7H+!^Xz%^aVYz&zGgaSx#Ww?u)Lw zv@fiM980noi)nmAAP7kLXgPr21s7mfZQQ|x$+>jUi!>`m#8IIKsFX4_W<~8*t8BZ`&X$|$1FpxKiNxnJqE}5IMSnMc`>8_as1VUNvMgKF1Y?h&? zv4cu_A*OQpzX%*TAp1?@Se@>2RGuew`(Jdi;a7p-J4cCoZb+yyC!^EqT+?<}il%Ge zPl&vZz4FQ;H1py9M?syQ+``&jxiK)i0sk>K&hcpo%M27muRg`Mj zvDzmY5I3wCmRUD#5Gq}7RnWHN7^o?V0zV*Q(BMbF7dSNRih>D2rFzk70gY>l`e)%^ zt9A!irX0#Wy)^-gD92&iq=&%)=B^3D(MdSj;pR^+Uf$JCpN(o2m*AZh+Q+|`@z#w6 zicnh;aa0xDbt&a$fAAQ&80Ehpn@hsKGSR#Pq zGem%Ye|C4>G=(Kh-o4po?Q$aH4}2Ex6#1dhI&4>f*CVg=pSHZ({hzbI>F4J~lSHHO zX~otld6OTKP)L6wHrF>W6sun+*R>}%?D9{2+3NeB0lJe!Hmj^l0=_iEe!$H+0y&R; zom-lH8I{40BxV4(^*tB(!N+1&JrBN-4)F?p$?e(`D6}AP&L9>9dGW#h z<&aEH4>Q+hW%P4OB4QMzUBB{%ym-}jR%B!WDF51D+z@>2r(T~G{B`SSjPa)ivVwjb z2L!`xo6Mw9VOrE!5j}Xy&CHLx(tlPVN$^{-%&kSA%z9n=p2S$c+IqSEVFyh&JnxoT&VM}5V!iSM2gn9HTxe-!RQ`_J zDv_(X3ld2%5XJr?UuN^|4Sz-`>3PN%%@EYnY9@1o*_nP;0xkAbhzMh)09WIXd)y%l zo2)2p1_7z^cSqj~b0L;40_>6@wZW<=V;#lH0xF#Kta)4d?rMB7TQpI9B;CVI6c#BY z>^VVv+LPv<;N=K8hXsLM%U&TyzS(5RxWdU(e~R>@?&yX*QyKoNv{gT4I0L2rH(2dWQsx7<_6?m5?;m~xKh0U61YsHNHrkpGfp%1^mr|A z`r))9TTQ`K-9Iz(Bxg-T0HTRk^7gbj_|CFN8bID|>pP`z?&O}5^Qk97P5i!KI{?8? zxCm(13sShUU5flZ{2I>yVthd3Hl&Dz-=De7E&Sx1D}jOz{gS>!z*KgeQ9Y{o7f93 zYnG*ll4KdYO7$I}*KEexu+s%BJmvwtAM=A!a=L#^XVTA@r@Id2dXRa8rv7s{3;{Ot zkk%;8`$IHO-qs}3l?*5v2qM7KoJ#O+ing7VO*FbMp%F5eE1SOV)_s^ye)`MZVAemc z5GP>qPr1WqN;nD309Heg@go1ay>G4)XO-Ar%q2ZG-!jMajd2E@mez8R6RYM^nq}m^ z1s3>$-{&I7J7BNm#Q0OGYcg&h-!PFx%DEOFeOB5=Eq;zk?t^nvi+*Lvufq@}gB7*+ z7BvBD;8@uqe+I=5XbVpMF!m!7|DZ7-M~rMFEhar5O<$2=_|z#D_dC0Lc;)x4z3(AS zqe9qNc}?voX|SJQsb#uqhum@dx-e>xysAt)FHC8uw&~sBUe9BaMv&tR=ErVe`BfGi zVV&PDm~`lgLQHI{^B4XGx_E z1I|ounqSzMlxyoh0JCnYhe3QrTl>Uvu*&GDfPRWC4ilIIhbF3=7h)^JG>%%ZqcL+^ z_G$MZSIT=8Y%Q~p zuTR!M@6aB)oPox^XPfq@KWe`1YQS|ETTVKBu3Gw4Culj=oaD(zED*2<5@N)CV#<*_UQE^IOBAUKZQ9JL z(+_&77qgF=4$7}bE;einP26S&7Pn9`_;S||U1F3imK&gzh}snJY=jF%*RUCi^>Gxs zF7<7|coA}uYfK0A@E9IJ9qR zbFscUt2`fkAcFUTikEM9sf037u4&T_Tpb)u2w|6ex4zG7iuay)2pFEd=VCFk8*D3A zI%k`2z7?v3Uf(2RmESq%@r#mm1P3vXHz{JsZ7wFLW1J~oy*)g)e88R%*sW!5nri93 z;JL9p?TJAPVsz|IT)mUtq{bQ{_%y%Iy%K9GIs+)+(vNN_FiKgiPG9UsF<`e&MGGk& zQU?5{n!AlVQx)tITqmZM!EVN=6uSTod7JkJD@GOa!EW&WBze<*f}as((-8}=hu_TQ z2~)`x)PLNYMj|fyhjkELYR(YnIuc~6Vhwd`kNPw5D-ffuNT?vy2v z{)~+~0fYbMk`Sp)yt%my zo$AzdxF(>7rL=k=O>#S9mqq_ln%=b?<31NRyyn)l6j^iWYU4yh;qQmhjSE1kX zp956Kkq}3DsE}2mu4}F`PE8rot$OO<4**?AF{CjG+r5T$^WZ$ zw1Awc$pJa)#SHVH2hsM+0_<8W4gD&9E@!`77m<5cPw_r@JbPbb;~S(ZPM0i6B0>o>n@8rdN{P#sX4Dc9!CejKAKv|Cx@<-{taq{RJ&ISuP3Lj}CE`2=xyaPbONxLnN3&no|D z(}@+-*1^-m=O~b97y!phjz_R&MW|9})8e|>N+N%_q+i=wV=a^Xw~dBlwZZ9Vg0MjB z@bEgoOmOmPR;Jy`66H?k+{YXnZ@fRI0e~$a1LA7+5YYO!Kk#x(YnzhqzPp~38it@# z*Ow?wf9>cu4kr9(okQp(z0Q|oS}6}J0($+}am=8qPIi{YuA+E0iBQINIt>F8Qhi86 zjL3n}p#DIosIs^f-X**&$0RKD_a7XmW&)%mml3}1_Od-hX)$Za=m^*QOAf@KKFABX zP$7ij0h4262dcT z{`%<*1lPD!*W;=gQ50xIO*S&O#Z=wXhFHIDv!cJ}v6>&&dJPDudtcHtQgA`?Q|g`X zJm2hW5yHW71woV`boZ|F8iJsfrMxrtR$m!v(OGsIBIf>VHe-v9qz2X?)aQ=tZ~!}! zBIxzHDnLNH=N=^R=fdzJJ~IB~@q@eVoPK3un6T3kS=MJ!j9f_dZ>`!m4li&nOg*;u zsGDiIrHY8+v*bzhXZ0yl%@PK5hhbq8RE5>89kGY#kFg?WOjQC4_}++IRr5gkrS`0F z71wiqJIsl>3kzf0lJu3iR^%#wx^){4Yb4Fa~kwxbG08!~{LSb5>yWDXxWr)-eYmqXB>KqJF z&*%BMDQ?9EnH6FCxPi5~FE6;Zy;1WHrn#pfHmwV|bk%=*s}KQn44M}8zOb#%Iz&=Z zGD1hwUwF0Z07Lv`wloI?d#5)h#-|Fc-*2#gd~UaoXJl!qfEk5gw!MGw6?X_B`i~EU zqz@$c0kN8pes9G4I>Jom^%~L{dPTrFs>Zgia^&S9qO)hvZcRJ2C~<6L%s_R3P6*KE z#p<%{dPmNPBWCsXs63m(W><;13E@u(R0m%4B67$syHt|V3?SKA%p>lamWMjfp%|vMFmKVmV>0Ezj0$RRcY$-N#Jx6pd_ybHtkVGldyWj`IdOeo| zpFk)&*Sz<#Rh@X}llo&0Ahgw1&<9Zm@KRSa+XWM& zP@DayW@ zYflD%f*HCF!K&s-4V17i=S<0NCTemJ?J970A*2R|tlkXB-p4oSz>iX^`7)v!GQfW! zpu|`Zm@U{-f^!F9G?VfsBsocLdoqPxheH?9o*^feNKj!nsfIv8V_kf z{y#gn1)2qfw;z+gX9>St6H7N8ZIP?%NG7ajOp8jb&grMe4h&S#>nS?{?Ayc_P5hGp zS~`*#S7sc$JDu-UBi&vCAY6mVwI^hE>5-kf?F_JKKE!1-ZYY?eOOtAUWKt_c&Im@h zI82RbOjYue6@oX;`P5i|%Jex#L9mXX${=`_o1?<{+u2AFeOlgRyPi%-bq~Fd&TIwY z+;mL-%Yz~GeQvQS6a2aCBZWqbVWPM|D}&*|Jr8a0 z5vh)LN09&C)p2+BJx2g5oldi8=KyCV_^oL8q#d5o5;qL?o)8042;i%XM9Xd>+5D8R zHQpAlKXKI}yY`oaa+95K#gvgDkJ)$vsS*UW`(@_8dGZ%AjQtE1|KRhT{#DOD&BGyW z{QU-M;=AZ`-WRIzYGZtTrIdUwds|cK45;XDHZ{8v4@{IkySuC*N4~zQ-$u z8cX1$IAOUmB_h{ z75;5@?>xJL%YH2_-&CU=_+H5}*Z2)MURQ3K?&OfGjX~*7gbzC42UgGZb_D6Jt~w2}PClkUCJjXe=@+z7bm378$(dWLO>N!b?fi za6PQ^bpkVdbhORF7U?*Od+mTko5T+`o>$qXi8fuI*Bx^#zS#e4Aa1j2*`p2V_R_^9 z9s5DYLM$AYv+h{=hWEKhA7iHqfbuoYk+QsXSc^H$xc44q5B4fH3mLaL+iqH{V*1do zYXpN)zj{5%@p%DiN8_`KIu5WQepH;MJZ5x2P^qQQ12<`>pK20kF4`cFmyzCJSI-9;%f7_j2-d-G@7 z#FhOu{#?2UF%@rKXTa$Zyvu{zI9rK}8=Th$=2mPDS75Lg!c6?qcc0JRPREe587ZSa zTy7v>sQ7>SI{x$|N5r?bGX5{HCaPZzSenbLP@l?9gkH28c9z+Ld8yOrK;T8SlNGeb zn_*Oqy@bf^di4#5D3HH03ZM_RS8KF zVZ>HA&SZaMD-dp+Xsnrdt4ta}e;PNK_I%Z^ zXwKRIR!xZxv%DyRAjRq)VvZe+5TdlG0g8U;RVG(-q0Va;Xj$%4g~uKL@HC&m$Res~19J=w4d%D@24+5yB(MQ&=ffV=ZwO2N+s8kf5|CQhK?AQSB47hHU0hYtg4J3dyvd&RM>>lQ9FLdBKBt;tpE*RQpKLdyneN+blA#cA zEC_;OA-EzLa49`?4|QUc0YJS@^HF9f;LR%TRPE}T_E#v^SME#2S;zvo_T@+z_@{Dy zFjZ8dK)ud1nIOFz4Fz=0KJq$L05<7sZhF|U~ z$!F()bGnkEEwNt~$}d6YxB-Af<%g3PVV%$%Angfv9`)(@eYooUsx&xidk^8$e;aKQ z>SwI0mIw|{|MgZO$MSUk*R`M&HY)IxO(!T8n&XU(e>v<9pvF6`K%{%zJ46_P5gMz= zxv=mh0Wzwd_6aHBG2SwSB+6p8Ov37 z(;A>&YGq6Zfx=|Yr^LfWksa#Ivr0%#+ZRM`G~)I6jF?juL0U&%p|^<7-sp~G+@7=H z!8CCn3tZQOiM7n_sRSNBzIDCL*15J&Ar|auyp>%~8GufG?&B49j3hQSKGHfELu8`8 zRMb;cvigxm7V2%u!fs`uBTv78&Mc}S3>oRc!{*-03W&!)dda%zmjY=SI7j^IYVaUVUXzxm>-dnw-*h>Vdd7WY61reo&_`EOLUGLY{xQ+^&rJ3qn20TC7%} z=ieiz-)Vk?F;N9-T~N`Nk&$D$>R|>DhbL(Z@P^J@dCLqWR)Xerha(V-+4qZh$)8k9 zqg?q# zgDFr(L|{L+M7HUcaj?hMKVtWpt`=~Y$iDAp;-9%Pb|s}fM;JelI7VarN2!mUu(Y^4 z(i@XP<2nJM{^-hv^3cEGlErcnN8IN%tql0j4*a1cX|vlcN4wPYodQO8XE84V7eg`K z8DPuHpG&+C+6LkHM}n*$C{677i=1assFeDmDO6wILZjul zO-~seE0G%c6&dU9El075yN)pKr@6G3a$X|6oZb9jd?qf}DcO#pj^PdGT43=vYzvo{ zFV~O^9QIRL$t6IhHuG*GTkFWO`OC&x1o^PTP&90zai zlkd2F{Irruyk?~mh-l#>sNs+XImGl+dFs}%rENKBn5z~h9GM1gvUirilog!(Ri!w7 zRd?l@J-sGx*}JB_6ZxMlfF$pUH3}{bCxT6;dVr`TA|3$~(tHu#4V~8egI#F;-l3~9 zVPf@oI&qaer0~XlZnwd8T#6_%Og36ul{&rSJ{lJNgk&`YsWz z>}(IHXWoG72wG`JSWZ>G4GLgRmemMK%Tl4f7+LSO-8Esl9HEp8uGZW4bZizs$P;$q zYI4RFjNQo-_WaDZ{_-Jf=%B>SfbU>tqGScr(DA;lLAw0}o>NoBS_8+Vr4cYp@xqA` zBPML6Xr%CnFc-a&4)0F{%7bH#=66O;cTBgf^)}chnZm7$3haThnM^Pv=(q5pBs4!7 zwh7RXNQzMeo&5zK=8A4SP3-wAyUTbV$1EqNzZOe}V4lT);FOu+QICJ7P7tzyWrsfM zK~S~IUnn0dbg}4w_>ST9BhB^uo<9R2W=Fw7VZMU|psHN$35d-@NS=+U)1*PvgbhjA zO-{)!GE?@&w722&brI>AYRdutUY&=O;3O(=Ir*T_aXn17;pnQg{8&A*=#*{%D0j)O z-b$6Mpbo3F)d*#$U!6nN|fo7@6)~te~I6f_scY^Eygy zC+X1QWO~^e4*3917me36Kwe_$>j%PM0?t?qtkD8~{FSqVlNI4j`QD zcp|URo!jY7QrfN+aZa;_MWfOk`|rT|yg~e)GB&zi#@mPgh6+F^hDSmq4rmBosj!hk z4Z^V4@Ixd1yGue50&HyDZv8o$1zox9%kTLx8LLw+hdNag$$<3^>6R zqY~jBsj&YOrHMUOxrd~!5fFie-8@|*sq=qRx13w>5)T)`thSS(jq=8wScldC%v`Bf z0Fu5$1j)VB{1y{&s~%>g3Y$<-yJLqn{LL=*UVn=$;CZ~HQU{}2bUB0dXm|SIJxRFt z8#e+}!WYYvM8JgG<-D?~^nI}&^{^+Kd6x#)jla;Dt!$UI&pjxtTx1Z2jdbXWk6M-c z)df{93Q#Zhyc{*DjI)TDOnr^w->Z!}D;IfJUvt@B(ut$M$(jgR1H#zb1MV_BcrsXt{{Wy<3jucB>*Q%x+Zfq?`m zy4(Zg#z^-zLuNWATxk79V#BiEas9ir>#35F9{yE*BqjRP(S0@|O2vZ`Ir`PJD|KSr zfs1%f^dkQX@WVU0^xaC>Y5bTOMkm_nSiuC-XbFO#WCP$+4k27oX8`>6V#}yet#>=U zShp8v`g$}mkT#W6MQ?H+3qb~v`DVM>lB>4F6d$GqS1q?r3vM|mSGP5lrxBLwQc!VNWxFoCBY+bD-%dth3+uzBp$GZ-J3x@l$3LFbDV#(%*)G z*COxvW)YH9YsBtm23h5nN~A1KUvK-~n4;dm$Of^Z-9f`Iw8y1)D-k6fo#g-FLb9CQ zH56|W7~kMiTCwJAoX9b1nYGSO^(3IDmnHQS1ZG-U!SRvSw zwHwy9r&q|8Bi|W1wccdrb|faW2AC(O**hQ=9JeH(R@IbI5~~xI;y0xP($_iQg1nkp z?&kSmQyDNM-*Ik(OyZ8aRU7R*00_=TW8PnVYOL0{9+c;!B-j_Afo(H9wh>@MQ1Z3= zRDtZqEvp*1)IIeHiRR)8>wt(}i~>irLQnN-Q6S^Ioet3<6SP08Df*G0csyTnsF;mw0BF`t`T7$xW&;SVmQ~YBL}>%!f%A~ zG4zEM#ffDy4Wt(p`%2xncYwBMC$BSwVw%rjgvsGDD@e`dW+F;cGIAFuM6KyQs7EKN z0@aj?WqZk)+|HejfFRU|wM+=606PV|6)*TUfM}T7=LW@TkmJWuw19AkQ%da@KBCj$ z(AQ0F*2r~Y<97?#@5cRaFha8zW8J&hO)-s(a(xOR`D&TaZRu}DffUV@=Lnb^#Q>Fm zLl2UYDsFDPWKV;u+rZVHK{if*-X<~7Zusv;&O<}EYzYwH<DXnj=0^lT1k02|i%nR0%h|mM?dn<=3<86+>$?dx zS*xo}80dQf9n?)fxx~mwa0`oqRAF2|G==xSo|l4|D5LMbbLp5e*pSnsEr#Q%(H+81 z?>OG(vn%lQo^qWzm;+StlS7yLLEXcPX09p>)Nm3B5si5$(50~$UNfAMs}~04z@XsR z-lf;dUGU2K2SZoWY5k?YSQmK$dBcDo0*W?d+4<4sgecvjL;=UV{)R;?^|q^$}}TuzOm#AjAWRq$mMM;m%@rF1HE zwC0SV4&navr54ISziH^Q8KcZ8pk1;FXu|`NY!ObdbM+ekdj%t1MzVQj5}=gAG^5^6 zxZjataKcJ&Sgl8z;*B+Y4OMNW3HH`#UiMGA@oq@}lYhSET>0Y1TTPp>jJ?)oY4UW( z5hm3_(ee#(&Yq%yF&jzqY*&^7MoH4!`=E%r-v27PbN;V23^sXGMgAogCYZY$lVvRo zX#Z9z!xke>nX6;XZe(O+cEztyrS%h8YI6*b0nY)&NekvgK&p4X+ee0aXqm2OrR7X- z`pZdm0#wQkpX4hw3p}|d5T`bI*t;y=c#*05!0`#7-1okr@S^tvBMfdt_Xm1e!k+Ob z)v&=}@7S9iPbyN)_!aFzy+MD_f`gvN0L&Cx%mn}I5!!L?n-#z`8a8USYDug}O_*ks z1^OWGHG-}Q^%lX8m9|7{ZeiV9%9a01qU|CP_n1U19GNKxa--ZV0yrC2& z6We!|)qK8q&UcEib-H1ZED6uuwb>!1cLcAVvWP_XzdsBD*L1f4c6*D%R>pjkMokKCRk&cMy&=f2gpTnZCFr?8Jo^iQAB`n&%s$CB z%z$L0W%zLXrl5LuWqW06##$zr}~Z5r!pVYUk?I zu2#=dHthSNb3=fOYlH4ge-8iIdv&fc0a!<{X(N9m5gk`A5wz1Z4>?|8uXE!>{=+%f!M}*x5)))s} z|IEb(W9u`P4F`4w<7Dy*eVIg%^$*JNvz?R1c;;ZsOs`mNSb3ingKkuyeAO22D+-ZL@yDR}u4K@h=p=;dS+(6sRrwhWcAMstD5et%Ma2LA=s< zF;W527RQc{*hke~i7Z1%$?^B2d7GJb7+-fL1Gn_5O@Q|V7rv_lEaogZt{bko@s{th z^K{*mNl#7rn;|aiMONU~`|V<6oQVGD0`PD*3v4OnaN51_L&YQtU3;U-dQNQOl^hF0GO+HCUaf zsNu8Lq~aA$;-s5c^VOxM>ch{i5!2=mLPi8VD@PW0{efOnthMhuW$HbkTWtQ!wLD~i ziLLhskCPK$7POH}BW4{#7kI-|-@Mz+8uJh7d_KJl^4Zr1_RpVvc4CxM%q+g&pl zRSr>;6^qvg-_->tGAm1~^t*oJGkoW_EU8Nvhw2ChrVRnyUhzT=qiVHpioHLwa*w z*HT6T;L>(oh6u)aVU}e;F#cD~MV?_Q#^mBPEbFN-GPIocaCE`7a`zVJgO_eX^J@A#K z!pzi9kl#bMt~Pnj^9K6zA-q8yPz5l-eU{5`_?Ej%%sK4-g?cktjvI})Mc=hwx43ps&JB;&|PDodWcWFZ510rg5fzG(H{?k zY#qpAV3VZh#XJ%JEhlWATR#!pj_fbkB!QB`u_7Q8PmHcPId?A<>f=(HDgpLy2A1Cc zFi8`SC@F+DaG4-KfL)w+^x18zIlI}Gr?)WHOf)EV%iyy8*zfc#2C42Yw90uKy#bmD zEBlZ!(V=?UW6zi!4e4*@+z+FXeMVqZsYqvrI2l6LV^S}c$n^Z+yutu(>+hg`sLCuz zk~NqnDhAqtln!IoI;C?=j?$=d5rxubeJQ99AFDC#d~E-u$W2;{ysT zDZW;8{B?xXR>8x55(>nhcVGcenuDMBXmlZkb`J-l|ASG5(rnL@U>>jo?q&|;UMQ@Jq?XywFd4VLu5kv^M9V(bfuiSDsLD{01+@vg zII6WC+4eB_5Vno!IjxWqE7cbx9(^m=>j)W=J*QEVWc_0S)@W=b6+GkJ)@;6??fb_3mQijikhiHq|6)bC)+cX7;rlpuQ6E|v-u6O z@OQ-fax*MW+FtILNVJPPSup*xq({C4K(O+?Q)Wy@#!2OR(D^wf=b}DPG>&x+)`}Ve zPw8e`Ze79=K>1Po2Awi^0e_v^#(Z>wlRi;}+gQljVNBTjK3-z`ubuD;L{YcK9lgTn z{pQsH$ev^%y&L3@om3U%x>ugb)-QYo{(GQ66|g;e!TGfC)s64!dH1j*%@!k*v;i;1 zsz4?-lsWs*e=p^n<)-firnn$HQ$|Y3sngi0{*^D*V#dIb-rE@Ap|BhLFUA?fkh~xL z5s>mc5Y;F6rM{^^+NcWo;>GsHTc@7^za`6$G&vm15tSvxc7knKJS?9^v;L{TTa(T3jVm0J0sG@6QkHQRT6I5E z7no(gKpO2gvY~k7jgtu^pnY_Ojafg~UZ$CxThd*Fn5zQ$(Vtr*mr?3MNC zQt5jyhNX<6z==yQj+>+pQ-HJVPqQQ`_RD@zB3v1P z0CEUhHU1!CYdq*1qbZA=QwSNvC8V*DJ9m>C(JxcP#cXZ~2==W%>~mRaf*A3&4JY#< zf;<98*KHatl_gx9Gzw8la;pJQYGN*}XuBm%dnweJn+LyL1jpo|e3+PJW%0)}$n*-w zoJqV>6&|pZz>k3H2k{F2OSZeCO{F;FpcS<%FC63-H3NA)wk9v6IIi5Jk_OCwmv7$| zgRQxq=I#=Z955{cRJ9uT{4zr0f2qoGZJxUs@}}}J!67V~oHJKfo63L<@`wr_cjbvR zVnws+Q25>?j%h~o8b~NQ&ErWAi{?M~5TD-dfpH+%I9(Ic9Ql|ZPSil*6qhGaG_5J0 zjoC)>T<|Yu7_$wB7gGe2q(2_?k1k0+2V84`vy~5&c3*2!m=UDM;}$M-%A3Cbs_Z-7 zo2}e?X=HZZ-RH>Z=Y%xQYpDfsu8ERxrHZ)-eeLAFhf3e9D3;QvFM+?->hcB0`^ebj zK6jdQ#6#%33_GV&E%=ZnX_;*AU<=Fw711TKe{1AF56IfPc=Bh|M9A8{oqb3Ws)kjO zaPk6F2){%8uuDyg1g}e-v zP?yqmD*VcX$XkK9E|$PD&?k(5A!i(5qG>`i{Z=X(o!bf}j>t1&10*ZMX&6}Dn7ffc zCnT3pL!;izuIKH8Lcb^zZJb8!;6OZ(s#Zgf1U@I1QfLwi$T+wySkPNPCqKb&xhPZ> zj3Y^Xz!d60s7oQ2zd@JyKmwm^e4dz0vK}NLR_aKpMgFJ^uYgMV@~i-%r+hi2@)$+X z6Y$e~E?hJ2@9`_m*ET^eaG@Lg+FK2Iq4=2|_G3R>=YOEp(k+-oL%4edXoVi;5=7Ou zgI!ID+HXdE0620>oQ!^ukf6eq<-zz%H}0CVt}L8#Qapr7P>W+qUmxOszgt#rQ(c4# z7kjI{h3K^xvdCH)DuL&Diac0M@_45Up_$L=>y>tL(Po>s<<3QmBJTt&jm|Q+qT8W) zy>>~}f{8#UFIdUiMMJg$qOLQTxZVNCE{ZCo*~2J-@7v1Z3DU&_Z3Jf$H-Z6~(0kWD zQ6_upF+^QOX^rk9&+rQ)~11SNNROjTo94hklDRC$3zt^R^;W_@>u!glfJ|(^l0bfA;YL_ z?MI+PMvaARy;ncaeMlTsily6-N05nqh zgnE>85BOkLcVp%4s+K+Y_@ zRuW80LPnZE&x^}V9kIdeML_Y?Zwb82XdgEs=7ypnW9h$ySBXP->v5LKukr2X;CSpD zf9Z3AO54FrfuWg}tNe*6qiX&3SDT-bAMaNKmnz6r6c3tZgm(DsEhDZ4C*!*9h{I{p zd3N{RnB>b!Sh9mIDv@M3EeL@H6CUzINPndZY87=qN9?}w0q!4bi>+*It`B=xBc9Vv z6xx>A#orX%v-H(Ep9{3+6LCM!B;!;5(hYiZ+AZY@0eFGO&qzL7?h_ z2)Lv~)gF!2bFNv?p)&oi`%HBndnn)ixuR05O2dSH^~gg0HZ^QQdN2OW+|tO#}F2`CO|P4C)aF-Dc7v$1Ekvt`>{ae}raQU(cmw zRhvHA;p<>i_=Q?Z#2>3GY#Fgnmj~$B>=?oYzZKUr;8%`(laIra8q-C%nRnmpu$_U! z@hZnY66Sm^y`9|B?;s6&@qA)jE4jU>Y<1bD)I|L;hRb{W`It;DH|r4X@0K& zAZJE1dEPd)NEB0%W3QaJ_s@`5D!EgaLBGcLPSB6a{+B(X$vHF{<)4WnI*pn(o|W#a z<%YW!^?hHyAErDbKBS?~aCr}6``kG;ywSLxAPK#weXnn%3R}iUA43cm`1vyRs<1yb z1Way(frPL4U2LA2vVYQITE!jq<@$Z4REA0M9rHM~Y0I^Md@X6lUqBo@cpSIZ7zX9>eN$+tAklbH3QrbZdWG33%q&l;SAVrI@Dn>4r z(&1zz0u_JGGfQHF5({I=Nh!R%qIG|>CCxU5z^BBw* zI)^|k#mvLqryhP^$uF*@{$fc%dw7dijN+Lp$4dQz5OatfSG6Rx`@~j8w`vJM+cDSq z_t$*?>7Y8@YUy{xb{$)!8&Sx2n$8HW{(yS1j)c>R=BwJnSbr*QeWCi$niuaIzNEEz z2d^N%2>~27@xZJ63j{Zin-@;CI0JyFP|mZCtVc+0rxT^iq z8v-gExuVe;oRcBON%P_^5iew;gO1E2Z%yX{F$S#sWm}nld5?RZhdY^(buU@l(lVQc zl{ByXwkqZJhU*f9uAJ@gw&?6xmMz5tAC*?`i?+-M%|Q__oz^>gO~g;j9-dkbr+6Ci zC&i$N-Ks}y` z%?7Sd#{{0qzr&^EWuG576?F;$ASD(V&q@Yiel7+r>n5qQ^@|--UA@>JH}#G-BiFJ6Xyp@M;fsd=x)@IV5Msy}eB=E@ybtgFBZtIivq_A~VCL8a3cCj=N#FidZ-R}BY zoZOl&mHx@3JniYQrwu>{5&weWD9%1)^zY~rT~Aqq9jb|TWs7%v-_M|Z5A+Dk+cOid z5!z+@*3V;rDX8fMt5Ng%ikj0)W-`{eOg9E1Nh>klF=ujLSp8kxBM*yb{KioIhX-3>lQF)|;0OEvnoaz4BE8 zW$5DeVU@SVJB1iL($TxF)|hHjJcVJyf3iJtzj>z5gMtHuFy~b^Rl$M*_NZ6(4uDm36N{LD6YLRXp2cBu$ zzC&D;wY%t#0IRcxQghu&&2J#IU5t_9RfgGAL*vdH=WkWe?QM<=01&)#)~o}dVN!

pL*(yzcRQudwGfp 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
#mr^3ly#f<(*tc{-kAfhdJ8+SL$O~SW@jBh} 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

Mp<)WTQp@Br9@ z{R$HjpWE;%B)~z42S-%Cyz2KH2>0XbmWmr^7}h|Ze7+GrSPUW5f)~+Y-2T7{M7oo- zYajjz8C1(W@M8X}dscoP5-G-g=dU|9Vl~n`imli0Bo~dl$4rj!5EE}-A@Gl2vE~$>73be{OOe0n

2dbm=#duiqnnrR7}TIRh^CV)&oGb5HxEg4xC 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%0A%|l>?e)>}ZNK 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

c3;(p=F@MPLa>_1&IKHx?ySl0z69&GVNRJI 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

ejkN3+#hnBx(TaC5{EoT>K&+0iweD2 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 +# SPDX-License-Identifier: CC0-1.0 + +include: + - project: sysadmin/ci-utilities + file: + - /gitlab-templates/linux-qt6.yml + - /gitlab-templates/linux-qt6-next.yml + - /gitlab-templates/freebsd-qt6.yml + - /gitlab-templates/windows-qt6.yml + - /gitlab-templates/xml-lint.yml + - /gitlab-templates/yaml-lint.yml diff --git a/local/recipes/kde/kf6-ktexteditor/source/.kateconfig b/local/recipes/kde/kf6-ktexteditor/source/.kateconfig new file mode 100644 index 0000000000..6365ea05fc --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/.kateconfig @@ -0,0 +1 @@ +kate: indent-mode cstyle; indent-width 4; replace-tabs on; diff --git a/local/recipes/kde/kf6-ktexteditor/source/.kateproject b/local/recipes/kde/kf6-ktexteditor/source/.kateproject new file mode 100644 index 0000000000..a740941001 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/.kateproject @@ -0,0 +1,5 @@ +{ + "name": "KTextEditor Framework" + + , "files": [ { "git": 1 } ] +} diff --git a/local/recipes/kde/kf6-ktexteditor/source/.kde-ci.yml b/local/recipes/kde/kf6-ktexteditor/source/.kde-ci.yml new file mode 100644 index 0000000000..0abe12fdf7 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/.kde-ci.yml @@ -0,0 +1,27 @@ +Dependencies: + - 'on': ['Linux', 'FreeBSD', 'Windows', 'macOS'] + 'require': + 'frameworks/breeze-icons': '@same' + 'frameworks/extra-cmake-modules': '@same' + 'frameworks/karchive': '@same' + 'frameworks/kconfig': '@same' + 'frameworks/kguiaddons': '@same' + 'frameworks/ki18n': '@same' + 'frameworks/kjobwidgets': '@same' + 'frameworks/kio': '@same' + 'frameworks/kparts': '@same' + 'frameworks/sonnet': '@same' + 'frameworks/kxmlgui': '@same' + 'frameworks/kcolorscheme': '@same' + 'frameworks/syntax-highlighting': '@same' + + - 'on': ['Linux', 'FreeBSD', 'macOS'] + 'require': + 'frameworks/kauth': '@same' + +Options: + test-before-installing: True + require-passing-tests-on: ['Linux', 'FreeBSD', 'Windows'] + cppcheck-ignore-files: ['templates/'] + cmake-options: '-DWARNINGS_AS_ERRORS=ON' + enable-lsan: True diff --git a/local/recipes/kde/kf6-ktexteditor/source/.redbear-src-version b/local/recipes/kde/kf6-ktexteditor/source/.redbear-src-version new file mode 100644 index 0000000000..a6f8c804ce --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/.redbear-src-version @@ -0,0 +1 @@ +ktexteditor-6.28.0.tar.xz diff --git a/local/recipes/kde/kf6-ktexteditor/source/CMakeLists.txt b/local/recipes/kde/kf6-ktexteditor/source/CMakeLists.txt new file mode 100644 index 0000000000..1215ffb88a --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/CMakeLists.txt @@ -0,0 +1,139 @@ +cmake_minimum_required(VERSION 3.29) + +set(KF_VERSION "6.28.0") # handled by release scripts +set(KF_DEP_VERSION "6.28.0") # handled by release scripts +project(KTextEditor VERSION ${KF_VERSION}) + +# ECM setup +include(FeatureSummary) +find_package(ECM 6.28.0 NO_MODULE) +set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://commits.kde.org/extra-cmake-modules") +feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) + +# add own modules to search path, too +set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) + +include(KDEInstallDirs) +include(KDECMakeSettings) +include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE) +include(KDEGitCommitHooks) + +include(ECMSetupVersion) +include(ECMGenerateHeaders) +include(ECMGenerateExportHeader) +include(ECMGenerateQDoc) +include(CMakePackageConfigHelpers) +include(CheckFunctionExists) +include(CheckSymbolExists) +include(KDEPackageAppTemplates) +include(GenerateExportHeader) +include(ECMQtDeclareLoggingCategory) +include(ECMDeprecationSettings) + +option(ENABLE_PCH "Enable Precompiled Headers support" ON) +option(WARNINGS_AS_ERRORS "Warnings are errors -Werror" OFF) + +if (NOT WIN32 AND NOT HAIKU) + set(ENABLE_KAUTH_DEFAULT ON) +else() + set(ENABLE_KAUTH_DEFAULT OFF) +endif() +option(ENABLE_KAUTH "Enable KAuth integration" ${ENABLE_KAUTH_DEFAULT}) +add_feature_info(KAUTH ${ENABLE_KAUTH} "KAuth integration for editing system files") + +set(ktexteditor_version_header "${CMAKE_CURRENT_BINARY_DIR}/src/ktexteditor_version.h") +ecm_setup_version( + PROJECT + VARIABLE_PREFIX KTEXTEDITOR + VERSION_HEADER "${ktexteditor_version_header}" + PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF6TextEditorConfigVersion.cmake" + SOVERSION 6 +) + +# Dependencies +set(REQUIRED_QT_VERSION 6.9.0) + +# Required Qt components to build this framework +find_package(Qt6 ${REQUIRED_QT_VERSION} NO_MODULE REQUIRED Core Widgets Qml PrintSupport TextToSpeech) + +# Required Frameworks +find_package(KF6Archive ${KF_DEP_VERSION} REQUIRED) +find_package(KF6Config ${KF_DEP_VERSION} REQUIRED) +find_package(KF6GuiAddons ${KF_DEP_VERSION} REQUIRED) +find_package(KF6I18n ${KF_DEP_VERSION} REQUIRED) +find_package(KF6KIO ${KF_DEP_VERSION} REQUIRED) +find_package(KF6Parts ${KF_DEP_VERSION} REQUIRED) +find_package(KF6Sonnet ${KF_DEP_VERSION} REQUIRED) +find_package(KF6SyntaxHighlighting ${KF_DEP_VERSION} REQUIRED) +find_package(KF6ColorScheme ${KF_DEP_VERSION} REQUIRED) + +if (ENABLE_KAUTH) + find_package(KF6Auth ${KF_DEP_VERSION} REQUIRED) + set(HAVE_KAUTH ${KF6Auth_FOUND}) +else() + set(HAVE_KAUTH FALSE) +endif() + +# EditorConfig integration +find_package(EditorConfig) + +# forbid some old things +set(EXCLUDE_DEPRECATED_BEFORE_AND_AT 0 CACHE STRING "Control the range of deprecated API excluded from the build [default=0].") +ecm_set_disabled_deprecation_versions( + QT 6.3 + KF 6.27 +) + +# define which offscreen platform plugin to use for tests +set(OFFSCREEN_QPA "-platform" "offscreen") + +# Subdirectories +add_definitions(-DTRANSLATION_DOMAIN=\"ktexteditor6\") +ki18n_install(po) + +add_subdirectory(src) +if (BUILD_TESTING) + add_subdirectory(autotests) +endif() +add_subdirectory(templates) + +# Create a Config.cmake and a ConfigVersion.cmake file and install them +set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF6TextEditor") + +configure_package_config_file( + "${CMAKE_CURRENT_SOURCE_DIR}/KF6TextEditorConfig.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/KF6TextEditorConfig.cmake" + INSTALL_DESTINATION "${CMAKECONFIG_INSTALL_DIR}" +) + +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/KF6TextEditorConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/KF6TextEditorConfigVersion.cmake" + DESTINATION "${CMAKECONFIG_INSTALL_DIR}" + COMPONENT Devel +) + +install(EXPORT + KF6TextEditorTargets + DESTINATION "${CMAKECONFIG_INSTALL_DIR}" + FILE KF6TextEditorTargets.cmake + NAMESPACE KF6:: +) + +install(FILES + "${ktexteditor_version_header}" + DESTINATION "${KDE_INSTALL_INCLUDEDIR_KF}/KTextEditor" + COMPONENT Devel +) + +# config.h +check_symbol_exists (fdatasync unistd.h HAVE_FDATASYNC) +configure_file (config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h) + +# let our config.h be found first in any case +include_directories (BEFORE ${CMAKE_CURRENT_BINARY_DIR}) + +include(ECMFeatureSummary) +ecm_feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) + +kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT) diff --git a/local/recipes/kde/kf6-ktexteditor/source/ExtraDesktop.sh b/local/recipes/kde/kf6-ktexteditor/source/ExtraDesktop.sh new file mode 100644 index 0000000000..0c46ec147b --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/ExtraDesktop.sh @@ -0,0 +1,4 @@ +#! /bin/sh +#This file outputs in a separate line each file with a .desktop syntax +#that needs to be translated but has a non .desktop extension +find -name \*.kdevtemplate -print diff --git a/local/recipes/kde/kf6-ktexteditor/source/KF6TextEditorConfig.cmake.in b/local/recipes/kde/kf6-ktexteditor/source/KF6TextEditorConfig.cmake.in new file mode 100644 index 0000000000..582b662563 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/KF6TextEditorConfig.cmake.in @@ -0,0 +1,8 @@ +@PACKAGE_INIT@ + +# KF6 Deps +include(CMakeFindDependencyMacro) +find_dependency(KF6Parts "@KF_DEP_VERSION@") +find_dependency(KF6SyntaxHighlighting "@KF_DEP_VERSION@") + +include("${CMAKE_CURRENT_LIST_DIR}/KF6TextEditorTargets.cmake") diff --git a/local/recipes/kde/kf6-ktexteditor/source/LICENSES/BSD-2-Clause.txt b/local/recipes/kde/kf6-ktexteditor/source/LICENSES/BSD-2-Clause.txt new file mode 100644 index 0000000000..2d2bab1127 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/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/local/recipes/kde/kf6-ktexteditor/source/LICENSES/CC0-1.0.txt b/local/recipes/kde/kf6-ktexteditor/source/LICENSES/CC0-1.0.txt new file mode 100644 index 0000000000..0e259d42c9 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/LICENSES/CC0-1.0.txt @@ -0,0 +1,121 @@ +Creative Commons Legal Code + +CC0 1.0 Universal + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS + PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM + THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED + HEREUNDER. + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator +and subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for +the purpose of contributing to a commons of creative, cultural and +scientific works ("Commons") that the public can reliably and without fear +of later claims of infringement build upon, modify, incorporate in other +works, reuse and redistribute as freely as possible in any form whatsoever +and for any purposes, including without limitation commercial purposes. +These owners may contribute to the Commons to promote the ideal of a free +culture and the further production of creative, cultural and scientific +works, or to gain reputation or greater distribution for their Work in +part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any +expectation of additional consideration or compensation, the person +associating CC0 with a Work (the "Affirmer"), to the extent that he or she +is an owner of Copyright and Related Rights in the Work, voluntarily +elects to apply CC0 to the Work and publicly distribute the Work under its +terms, with knowledge of his or her Copyright and Related Rights in the +Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not +limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, + communicate, and translate a Work; + ii. moral rights retained by the original author(s) and/or performer(s); +iii. publicity and privacy rights pertaining to a person's image or + likeness depicted in a Work; + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + v. rights protecting the extraction, dissemination, use and reuse of data + in a Work; + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation + thereof, including any amended or successor version of such + directive); and +vii. other similar, equivalent or corresponding rights throughout the + world based on applicable law or treaty, and any national + implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention +of, applicable law, Affirmer hereby overtly, fully, permanently, +irrevocably and unconditionally waives, abandons, and surrenders all of +Affirmer's Copyright and Related Rights and associated claims and causes +of action, whether now known or unknown (including existing as well as +future claims and causes of action), in the Work (i) in all territories +worldwide, (ii) for the maximum duration provided by applicable law or +treaty (including future time extensions), (iii) in any current or future +medium and for any number of copies, and (iv) for any purpose whatsoever, +including without limitation commercial, advertising or promotional +purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each +member of the public at large and to the detriment of Affirmer's heirs and +successors, fully intending that such Waiver shall not be subject to +revocation, rescission, cancellation, termination, or any other legal or +equitable action to disrupt the quiet enjoyment of the Work by the public +as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason +be judged legally invalid or ineffective under applicable law, then the +Waiver shall be preserved to the maximum extent permitted taking into +account Affirmer's express Statement of Purpose. In addition, to the +extent the Waiver is so judged Affirmer hereby grants to each affected +person a royalty-free, non transferable, non sublicensable, non exclusive, +irrevocable and unconditional license to exercise Affirmer's Copyright and +Related Rights in the Work (i) in all territories worldwide, (ii) for the +maximum duration provided by applicable law or treaty (including future +time extensions), (iii) in any current or future medium and for any number +of copies, and (iv) for any purpose whatsoever, including without +limitation commercial, advertising or promotional purposes (the +"License"). The License shall be deemed effective as of the date CC0 was +applied by Affirmer to the Work. Should any part of the License for any +reason be judged legally invalid or ineffective under applicable law, such +partial invalidity or ineffectiveness shall not invalidate the remainder +of the License, and in such case Affirmer hereby affirms that he or she +will not (i) exercise any of his or her remaining Copyright and Related +Rights in the Work or (ii) assert any associated claims and causes of +action with respect to the Work, in either case contrary to Affirmer's +express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + b. Affirmer offers the Work as-is and makes no representations or + warranties of any kind concerning the Work, express, implied, + statutory or otherwise, including without limitation warranties of + title, merchantability, fitness for a particular purpose, non + infringement, or the absence of latent or other defects, accuracy, or + the present or absence of errors, whether or not discoverable, all to + the greatest extent permissible under applicable law. + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without + limitation any person's Copyright and Related Rights in the Work. + Further, Affirmer disclaims responsibility for obtaining any necessary + consents, permissions or other rights required for any use of the + Work. + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to + this CC0 or use of the Work. diff --git a/local/recipes/kde/kf6-ktexteditor/source/LICENSES/LGPL-2.0-only.txt b/local/recipes/kde/kf6-ktexteditor/source/LICENSES/LGPL-2.0-only.txt new file mode 100644 index 0000000000..5c96471aaf --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/LICENSES/LGPL-2.0-only.txt @@ -0,0 +1,446 @@ +GNU LIBRARY GENERAL PUBLIC LICENSE + +Version 2, June 1991 Copyright (C) 1991 Free Software Foundation, Inc. + +51 Franklin St, 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. + +[This is the first released version of the library GPL. It is numbered 2 because +it goes with version 2 of the ordinary GPL.] + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public Licenses are intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. + +This license, the Library General Public License, applies to some specially +designated Free Software Foundation software, and to any other libraries whose +authors decide to use it. You can use it for your libraries, 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 library, or if you modify it. + +For example, if you distribute copies of the library, whether gratis or for +a fee, you must give the recipients all the rights that we gave you. You must +make sure that they, too, receive or can get the source code. If you link +a program with the library, you must provide complete object files to the +recipients so that they can relink them with the library, after making changes +to the library and recompiling it. And you must show them these terms so they +know their rights. + +Our method of protecting your rights has two steps: (1) copyright the library, +and (2) offer you this license which gives you legal permission to copy, distribute +and/or modify the library. + +Also, for each distributor's protection, we want to make certain that everyone +understands that there is no warranty for this free library. If the library +is modified by someone else and passed on, we want its recipients to know +that what they have is not the original version, 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 companies distributing free software will individually +obtain patent licenses, thus in effect transforming the program into proprietary +software. To prevent this, we have made it clear that any patent must be licensed +for everyone's free use or not licensed at all. + +Most GNU software, including some libraries, is covered by the ordinary GNU +General Public License, which was designed for utility programs. This license, +the GNU Library General Public License, applies to certain designated libraries. +This license is quite different from the ordinary one; be sure to read it +in full, and don't assume that anything in it is the same as in the ordinary +license. + +The reason we have a separate public license for some libraries is that they +blur the distinction we usually make between modifying or adding to a program +and simply using it. Linking a program with a library, without changing the +library, is in some sense simply using the library, and is analogous to running +a utility program or application program. However, in a textual and legal +sense, the linked executable is a combined work, a derivative of the original +library, and the ordinary General Public License treats it as such. + +Because of this blurred distinction, using the ordinary General Public License +for libraries did not effectively promote software sharing, because most developers +did not use the libraries. We concluded that weaker conditions might promote +sharing better. + +However, unrestricted linking of non-free programs would deprive the users +of those programs of all benefit from the free status of the libraries themselves. +This Library General Public License is intended to permit developers of non-free +programs to use free libraries, while preserving your freedom as a user of +such programs to change the free libraries that are incorporated in them. +(We have not seen how to achieve this as regards changes in header files, +but we have achieved it as regards changes in the actual functions of the +Library.) The hope is that this will lead to faster development of free libraries. + +The precise terms and conditions for copying, distribution and modification +follow. Pay close attention to the difference between a "work based on the +library" and a "work that uses the library". The former contains code derived +from the library, while the latter only works together with the library. + +Note that it is possible for a library to be covered by the ordinary General +Public License rather than by this special one. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License Agreement applies to any software library which contains a +notice placed by the copyright holder or other authorized party saying it +may be distributed under the terms of this Library General Public License +(also called "this License"). Each licensee is addressed as "you". + +A "library" means a collection of software functions and/or data prepared +so as to be conveniently linked with application programs (which use some +of those functions and data) to form executables. + +The "Library", below, refers to any such software library or work which has +been distributed under these terms. A "work based on the Library" means either +the Library or any derivative work under copyright law: that is to say, a +work containing the Library or a portion of it, either verbatim or with modifications +and/or translated straightforwardly into another language. (Hereinafter, translation +is included without limitation in the term "modification".) + +"Source code" for a work means the preferred form of the work for making modifications +to it. For a library, 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 library. + +Activities other than copying, distribution and modification are not covered +by this License; they are outside its scope. The act of running a program +using the Library is not restricted, and output from such a program is covered +only if its contents constitute a work based on the Library (independent of +the use of the Library in a tool for writing it). Whether that is true depends +on what the Library does and what the program that uses the Library does. + +1. You may copy and distribute verbatim copies of the Library's complete 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 distribute a copy of this License along with +the Library. + +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 Library or any portion of it, +thus forming a work based on the Library, 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) The modified work must itself be a software library. + +b) You must cause the files modified to carry prominent notices stating that +you changed the files and the date of any change. + +c) You must cause the whole of the work to be licensed at no charge to all +third parties under the terms of this License. + +d) If a facility in the modified Library refers to a function or a table of +data to be supplied by an application program that uses the facility, other +than as an argument passed when the facility is invoked, then you must make +a good faith effort to ensure that, in the event an application does not supply +such function or table, the facility still operates, and performs whatever +part of its purpose remains meaningful. + +(For example, a function in a library to compute square roots has a purpose +that is entirely well-defined independent of the application. Therefore, Subsection +2d requires that any application-supplied function or table used by this function +must be optional: if the application does not supply it, the square root function +must still compute square roots.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Library, 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 Library, 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 Library. + +In addition, mere aggregation of another work not based on the Library with +the Library (or with a work based on the Library) on a volume of a storage +or distribution medium does not bring the other work under the scope of this +License. + +3. You may opt to apply the terms of the ordinary GNU General Public License +instead of this License to a given copy of the Library. To do this, you must +alter all the notices that refer to this License, so that they refer to the +ordinary GNU General Public License, version 2, instead of to this License. +(If a newer version than version 2 of the ordinary GNU General Public License +has appeared, then you can specify that version instead if you wish.) Do not +make any other change in these notices. + +Once this change is made in a given copy, it is irreversible for that copy, +so the ordinary GNU General Public License applies to all subsequent copies +and derivative works made from that copy. + +This option is useful when you wish to copy part of the code of the Library +into a program that is not a library. + +4. You may copy and distribute the Library (or a portion or derivative of +it, under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you 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. + +If distribution of 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 satisfies the requirement to distribute the source code, even though +third parties are not compelled to copy the source along with the object code. + +5. A program that contains no derivative of any portion of the Library, but +is designed to work with the Library by being compiled or linked with it, +is called a "work that uses the Library". Such a work, in isolation, is not +a derivative work of the Library, and therefore falls outside the scope of +this License. + +However, linking a "work that uses the Library" with the Library creates an +executable that is a derivative of the Library (because it contains portions +of the Library), rather than a "work that uses the library". The executable +is therefore covered by this License. Section 6 states terms for distribution +of such executables. + +When a "work that uses the Library" uses material from a header file that +is part of the Library, the object code for the work may be a derivative work +of the Library even though the source code is not. Whether this is true is +especially significant if the work can be linked without the Library, or if +the work is itself a library. The threshold for this to be true is not precisely +defined by law. + +If such an object file uses only numerical parameters, data structure layouts +and accessors, and small macros and small inline functions (ten lines or less +in length), then the use of the object file is unrestricted, regardless of +whether it is legally a derivative work. (Executables containing this object +code plus portions of the Library will still fall under Section 6.) + +Otherwise, if the work is a derivative of the Library, you may distribute +the object code for the work under the terms of Section 6. Any executables +containing that work also fall under Section 6, whether or not they are linked +directly with the Library itself. + +6. As an exception to the Sections above, you may also compile or link a "work +that uses the Library" with the Library to produce a work containing portions +of the Library, and distribute that work under terms of your choice, provided +that the terms permit modification of the work for the customer's own use +and reverse engineering for debugging such modifications. + +You must give prominent notice with each copy of the work that the Library +is used in it and that the Library and its use are covered by this License. +You must supply a copy of this License. If the work during execution displays +copyright notices, you must include the copyright notice for the Library among +them, as well as a reference directing the user to the copy of this License. +Also, you must do one of these things: + +a) Accompany the work with the complete corresponding machine-readable source +code for the Library including whatever changes were used in the work (which +must be distributed under Sections 1 and 2 above); and, if the work is an +executable linked with the Library, with the complete machine-readable "work +that uses the Library", as object code and/or source code, so that the user +can modify the Library and then relink to produce a modified executable containing +the modified Library. (It is understood that the user who changes the contents +of definitions files in the Library will not necessarily be able to recompile +the application to use the modified definitions.) + +b) Accompany the work with a written offer, valid for at least three years, +to give the same user the materials specified in Subsection 6a, above, for +a charge no more than the cost of performing this distribution. + +c) If distribution of the work is made by offering access to copy from a designated +place, offer equivalent access to copy the above specified materials from +the same place. + +d) Verify that the user has already received a copy of these materials or +that you have already sent this user a copy. + +For an executable, the required form of the "work that uses the Library" must +include any data and utility programs needed for reproducing the executable +from it. 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. + +It may happen that this requirement contradicts the license restrictions of +other proprietary libraries that do not normally accompany the operating system. +Such a contradiction means you cannot use both them and the Library together +in an executable that you distribute. + +7. You may place library facilities that are a work based on the Library side-by-side +in a single library together with other library facilities not covered by +this License, and distribute such a combined library, provided that the separate +distribution of the work based on the Library and of the other library facilities +is otherwise permitted, and provided that you do these two things: + +a) Accompany the combined library with a copy of the same work based on the +Library, uncombined with any other library facilities. This must be distributed +under the terms of the Sections above. + +b) Give prominent notice with the combined library of the fact that part of +it is a work based on the Library, and explaining where to find the accompanying +uncombined form of the same work. + +8. You may not copy, modify, sublicense, link with, or distribute the Library +except as expressly provided under this License. Any attempt otherwise to +copy, modify, sublicense, link with, or distribute the Library 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. + +9. 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 +Library or its derivative works. These actions are prohibited by law if you +do not accept this License. Therefore, by modifying or distributing the Library +(or any work based on the Library), you indicate your acceptance of this License +to do so, and all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + +10. Each time you redistribute the Library (or any work based on the Library), +the recipient automatically receives a license from the original licensor +to copy, distribute, link with or modify the Library 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. + +11. 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 Library at all. For example, if a +patent license would not permit royalty-free redistribution of the Library +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 Library. + +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. + +12. If the distribution and/or use of the Library is restricted in certain +countries either by patents or by copyrighted interfaces, the original copyright +holder who places the Library 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. + +13. The Free Software Foundation may publish revised and/or new versions of +the Library 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 Library 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 +Library does not specify a license version number, you may choose any version +ever published by the Free Software Foundation. + +14. If you wish to incorporate parts of the Library into other free programs +whose distribution conditions are incompatible with these, 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 + +15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY +"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 LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +16. 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 LIBRARY 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 LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), 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 Libraries + +If you develop a new library, and you want it to be of the greatest possible +use to the public, we recommend making it free software that everyone can +redistribute and change. You can do so by permitting redistribution under +these terms (or, alternatively, under the terms of the ordinary General Public +License). + +To apply these terms, attach the following notices to the library. It is safest +to attach them to the start of each source file to most effectively convey +the exclusion of warranty; and each file should have at least the "copyright" +line and a pointer to where the full notice is found. + +one line to give the library's name and an idea of what it does. + +Copyright (C) year name of author + +This library is free software; you can redistribute it and/or modify it under +the terms of the GNU Library General Public License as published by the Free +Software Foundation; either version 2 of the License, or (at your option) +any later version. + +This library is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more +details. + +You should have received a copy of the GNU Library General Public License +along with this library; if not, write to the Free Software Foundation, Inc., +51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the library, if necessary. Here +is a sample; alter the names: + +Yoyodyne, Inc., hereby disclaims all copyright interest in + +the library `Frob' (a library for tweaking knobs) written + +by James Random Hacker. + +signature of Ty Coon, 1 April 1990 + +Ty Coon, President of Vice + +That's all there is to it! diff --git a/local/recipes/kde/kf6-ktexteditor/source/LICENSES/LGPL-2.0-or-later.txt b/local/recipes/kde/kf6-ktexteditor/source/LICENSES/LGPL-2.0-or-later.txt new file mode 100644 index 0000000000..5c96471aaf --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/LICENSES/LGPL-2.0-or-later.txt @@ -0,0 +1,446 @@ +GNU LIBRARY GENERAL PUBLIC LICENSE + +Version 2, June 1991 Copyright (C) 1991 Free Software Foundation, Inc. + +51 Franklin St, 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. + +[This is the first released version of the library GPL. It is numbered 2 because +it goes with version 2 of the ordinary GPL.] + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public Licenses are intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. + +This license, the Library General Public License, applies to some specially +designated Free Software Foundation software, and to any other libraries whose +authors decide to use it. You can use it for your libraries, 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 library, or if you modify it. + +For example, if you distribute copies of the library, whether gratis or for +a fee, you must give the recipients all the rights that we gave you. You must +make sure that they, too, receive or can get the source code. If you link +a program with the library, you must provide complete object files to the +recipients so that they can relink them with the library, after making changes +to the library and recompiling it. And you must show them these terms so they +know their rights. + +Our method of protecting your rights has two steps: (1) copyright the library, +and (2) offer you this license which gives you legal permission to copy, distribute +and/or modify the library. + +Also, for each distributor's protection, we want to make certain that everyone +understands that there is no warranty for this free library. If the library +is modified by someone else and passed on, we want its recipients to know +that what they have is not the original version, 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 companies distributing free software will individually +obtain patent licenses, thus in effect transforming the program into proprietary +software. To prevent this, we have made it clear that any patent must be licensed +for everyone's free use or not licensed at all. + +Most GNU software, including some libraries, is covered by the ordinary GNU +General Public License, which was designed for utility programs. This license, +the GNU Library General Public License, applies to certain designated libraries. +This license is quite different from the ordinary one; be sure to read it +in full, and don't assume that anything in it is the same as in the ordinary +license. + +The reason we have a separate public license for some libraries is that they +blur the distinction we usually make between modifying or adding to a program +and simply using it. Linking a program with a library, without changing the +library, is in some sense simply using the library, and is analogous to running +a utility program or application program. However, in a textual and legal +sense, the linked executable is a combined work, a derivative of the original +library, and the ordinary General Public License treats it as such. + +Because of this blurred distinction, using the ordinary General Public License +for libraries did not effectively promote software sharing, because most developers +did not use the libraries. We concluded that weaker conditions might promote +sharing better. + +However, unrestricted linking of non-free programs would deprive the users +of those programs of all benefit from the free status of the libraries themselves. +This Library General Public License is intended to permit developers of non-free +programs to use free libraries, while preserving your freedom as a user of +such programs to change the free libraries that are incorporated in them. +(We have not seen how to achieve this as regards changes in header files, +but we have achieved it as regards changes in the actual functions of the +Library.) The hope is that this will lead to faster development of free libraries. + +The precise terms and conditions for copying, distribution and modification +follow. Pay close attention to the difference between a "work based on the +library" and a "work that uses the library". The former contains code derived +from the library, while the latter only works together with the library. + +Note that it is possible for a library to be covered by the ordinary General +Public License rather than by this special one. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License Agreement applies to any software library which contains a +notice placed by the copyright holder or other authorized party saying it +may be distributed under the terms of this Library General Public License +(also called "this License"). Each licensee is addressed as "you". + +A "library" means a collection of software functions and/or data prepared +so as to be conveniently linked with application programs (which use some +of those functions and data) to form executables. + +The "Library", below, refers to any such software library or work which has +been distributed under these terms. A "work based on the Library" means either +the Library or any derivative work under copyright law: that is to say, a +work containing the Library or a portion of it, either verbatim or with modifications +and/or translated straightforwardly into another language. (Hereinafter, translation +is included without limitation in the term "modification".) + +"Source code" for a work means the preferred form of the work for making modifications +to it. For a library, 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 library. + +Activities other than copying, distribution and modification are not covered +by this License; they are outside its scope. The act of running a program +using the Library is not restricted, and output from such a program is covered +only if its contents constitute a work based on the Library (independent of +the use of the Library in a tool for writing it). Whether that is true depends +on what the Library does and what the program that uses the Library does. + +1. You may copy and distribute verbatim copies of the Library's complete 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 distribute a copy of this License along with +the Library. + +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 Library or any portion of it, +thus forming a work based on the Library, 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) The modified work must itself be a software library. + +b) You must cause the files modified to carry prominent notices stating that +you changed the files and the date of any change. + +c) You must cause the whole of the work to be licensed at no charge to all +third parties under the terms of this License. + +d) If a facility in the modified Library refers to a function or a table of +data to be supplied by an application program that uses the facility, other +than as an argument passed when the facility is invoked, then you must make +a good faith effort to ensure that, in the event an application does not supply +such function or table, the facility still operates, and performs whatever +part of its purpose remains meaningful. + +(For example, a function in a library to compute square roots has a purpose +that is entirely well-defined independent of the application. Therefore, Subsection +2d requires that any application-supplied function or table used by this function +must be optional: if the application does not supply it, the square root function +must still compute square roots.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Library, 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 Library, 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 Library. + +In addition, mere aggregation of another work not based on the Library with +the Library (or with a work based on the Library) on a volume of a storage +or distribution medium does not bring the other work under the scope of this +License. + +3. You may opt to apply the terms of the ordinary GNU General Public License +instead of this License to a given copy of the Library. To do this, you must +alter all the notices that refer to this License, so that they refer to the +ordinary GNU General Public License, version 2, instead of to this License. +(If a newer version than version 2 of the ordinary GNU General Public License +has appeared, then you can specify that version instead if you wish.) Do not +make any other change in these notices. + +Once this change is made in a given copy, it is irreversible for that copy, +so the ordinary GNU General Public License applies to all subsequent copies +and derivative works made from that copy. + +This option is useful when you wish to copy part of the code of the Library +into a program that is not a library. + +4. You may copy and distribute the Library (or a portion or derivative of +it, under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you 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. + +If distribution of 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 satisfies the requirement to distribute the source code, even though +third parties are not compelled to copy the source along with the object code. + +5. A program that contains no derivative of any portion of the Library, but +is designed to work with the Library by being compiled or linked with it, +is called a "work that uses the Library". Such a work, in isolation, is not +a derivative work of the Library, and therefore falls outside the scope of +this License. + +However, linking a "work that uses the Library" with the Library creates an +executable that is a derivative of the Library (because it contains portions +of the Library), rather than a "work that uses the library". The executable +is therefore covered by this License. Section 6 states terms for distribution +of such executables. + +When a "work that uses the Library" uses material from a header file that +is part of the Library, the object code for the work may be a derivative work +of the Library even though the source code is not. Whether this is true is +especially significant if the work can be linked without the Library, or if +the work is itself a library. The threshold for this to be true is not precisely +defined by law. + +If such an object file uses only numerical parameters, data structure layouts +and accessors, and small macros and small inline functions (ten lines or less +in length), then the use of the object file is unrestricted, regardless of +whether it is legally a derivative work. (Executables containing this object +code plus portions of the Library will still fall under Section 6.) + +Otherwise, if the work is a derivative of the Library, you may distribute +the object code for the work under the terms of Section 6. Any executables +containing that work also fall under Section 6, whether or not they are linked +directly with the Library itself. + +6. As an exception to the Sections above, you may also compile or link a "work +that uses the Library" with the Library to produce a work containing portions +of the Library, and distribute that work under terms of your choice, provided +that the terms permit modification of the work for the customer's own use +and reverse engineering for debugging such modifications. + +You must give prominent notice with each copy of the work that the Library +is used in it and that the Library and its use are covered by this License. +You must supply a copy of this License. If the work during execution displays +copyright notices, you must include the copyright notice for the Library among +them, as well as a reference directing the user to the copy of this License. +Also, you must do one of these things: + +a) Accompany the work with the complete corresponding machine-readable source +code for the Library including whatever changes were used in the work (which +must be distributed under Sections 1 and 2 above); and, if the work is an +executable linked with the Library, with the complete machine-readable "work +that uses the Library", as object code and/or source code, so that the user +can modify the Library and then relink to produce a modified executable containing +the modified Library. (It is understood that the user who changes the contents +of definitions files in the Library will not necessarily be able to recompile +the application to use the modified definitions.) + +b) Accompany the work with a written offer, valid for at least three years, +to give the same user the materials specified in Subsection 6a, above, for +a charge no more than the cost of performing this distribution. + +c) If distribution of the work is made by offering access to copy from a designated +place, offer equivalent access to copy the above specified materials from +the same place. + +d) Verify that the user has already received a copy of these materials or +that you have already sent this user a copy. + +For an executable, the required form of the "work that uses the Library" must +include any data and utility programs needed for reproducing the executable +from it. 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. + +It may happen that this requirement contradicts the license restrictions of +other proprietary libraries that do not normally accompany the operating system. +Such a contradiction means you cannot use both them and the Library together +in an executable that you distribute. + +7. You may place library facilities that are a work based on the Library side-by-side +in a single library together with other library facilities not covered by +this License, and distribute such a combined library, provided that the separate +distribution of the work based on the Library and of the other library facilities +is otherwise permitted, and provided that you do these two things: + +a) Accompany the combined library with a copy of the same work based on the +Library, uncombined with any other library facilities. This must be distributed +under the terms of the Sections above. + +b) Give prominent notice with the combined library of the fact that part of +it is a work based on the Library, and explaining where to find the accompanying +uncombined form of the same work. + +8. You may not copy, modify, sublicense, link with, or distribute the Library +except as expressly provided under this License. Any attempt otherwise to +copy, modify, sublicense, link with, or distribute the Library 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. + +9. 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 +Library or its derivative works. These actions are prohibited by law if you +do not accept this License. Therefore, by modifying or distributing the Library +(or any work based on the Library), you indicate your acceptance of this License +to do so, and all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + +10. Each time you redistribute the Library (or any work based on the Library), +the recipient automatically receives a license from the original licensor +to copy, distribute, link with or modify the Library 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. + +11. 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 Library at all. For example, if a +patent license would not permit royalty-free redistribution of the Library +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 Library. + +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. + +12. If the distribution and/or use of the Library is restricted in certain +countries either by patents or by copyrighted interfaces, the original copyright +holder who places the Library 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. + +13. The Free Software Foundation may publish revised and/or new versions of +the Library 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 Library 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 +Library does not specify a license version number, you may choose any version +ever published by the Free Software Foundation. + +14. If you wish to incorporate parts of the Library into other free programs +whose distribution conditions are incompatible with these, 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 + +15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY +"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 LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +16. 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 LIBRARY 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 LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), 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 Libraries + +If you develop a new library, and you want it to be of the greatest possible +use to the public, we recommend making it free software that everyone can +redistribute and change. You can do so by permitting redistribution under +these terms (or, alternatively, under the terms of the ordinary General Public +License). + +To apply these terms, attach the following notices to the library. It is safest +to attach them to the start of each source file to most effectively convey +the exclusion of warranty; and each file should have at least the "copyright" +line and a pointer to where the full notice is found. + +one line to give the library's name and an idea of what it does. + +Copyright (C) year name of author + +This library is free software; you can redistribute it and/or modify it under +the terms of the GNU Library General Public License as published by the Free +Software Foundation; either version 2 of the License, or (at your option) +any later version. + +This library is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more +details. + +You should have received a copy of the GNU Library General Public License +along with this library; if not, write to the Free Software Foundation, Inc., +51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the library, if necessary. Here +is a sample; alter the names: + +Yoyodyne, Inc., hereby disclaims all copyright interest in + +the library `Frob' (a library for tweaking knobs) written + +by James Random Hacker. + +signature of Ty Coon, 1 April 1990 + +Ty Coon, President of Vice + +That's all there is to it! diff --git a/local/recipes/kde/kf6-ktexteditor/source/LICENSES/MIT.txt b/local/recipes/kde/kf6-ktexteditor/source/LICENSES/MIT.txt new file mode 100644 index 0000000000..204b93da48 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/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/local/recipes/kde/kf6-ktexteditor/source/README.md b/local/recipes/kde/kf6-ktexteditor/source/README.md new file mode 100644 index 0000000000..b1f0246700 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/README.md @@ -0,0 +1,65 @@ +# KTextEditor + +Full text editor component + +## Introduction + +KTextEditor provides a powerful text editor component that you can embed in your +application, either as a KPart or using the KF6::TextEditor library (if you need +more control). + +The text editor component contains many useful features, from syntax +highlighting and automatic indentation to advanced scripting support, making it +suitable for everything from a simple embedded text-file editor to an advanced +IDE. + +## Usage + +If you are using CMake, you need to have + +```cmake +find_package(KF6TextEditor) +``` + +(or similar) in your CMakeLists.txt file, and you need to link to KF6::TextEditor. + +After that, you can use KTextEditor::Editor to create an editor instance, and +use that to manage KTextEditor::Document instances. + +```cpp +#include +#include +#include + +// get access to the global editor singleton +auto editor = KTextEditor::Editor::instance(); + +// create a new document +auto doc = editor->createDocument(this); + +// create a widget to display the document +auto view = doc->createView(yourWidgetParent); +``` + +See the documentation for these classes for more information. + +## Licensing + +Contributions to KTextEditor shall be licensed under [LGPLv2+](LICENSES/LGPL-2.0-or-later.txt). + +All files shall contain a proper "SPDX-License-Identifier: LGPL-2.0-or-later" identifier inside a header like: + +```cpp +/* + SPDX-FileCopyrightText: 2021 Christoph Cullmann + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ +``` + +## Further Documentation + +- @ref kte_design +- @ref kte_port_to_5 +- @ref kte_guidelines + diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/CMakeLists.txt b/local/recipes/kde/kf6-ktexteditor/source/autotests/CMakeLists.txt new file mode 100644 index 0000000000..f2ee225f91 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/CMakeLists.txt @@ -0,0 +1,204 @@ +find_package(Qt6 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Test) +add_definitions(-DQT_FORCE_ASSERTS=1) + +include(ECMMarkAsTest) +include(ECMAddTests) + +set( EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR} ) + +include_directories( + # for config.h + ${CMAKE_BINARY_DIR} + + # for generated ktexteditor headers + ${CMAKE_BINARY_DIR}/src/include + + # for normal sources + ${CMAKE_SOURCE_DIR}/src + ${CMAKE_SOURCE_DIR}/src/include + ${CMAKE_SOURCE_DIR}/src/buffer + ${CMAKE_SOURCE_DIR}/src/completion + ${CMAKE_SOURCE_DIR}/src/dialogs + ${CMAKE_SOURCE_DIR}/src/document + ${CMAKE_SOURCE_DIR}/src/script + ${CMAKE_SOURCE_DIR}/src/mode + ${CMAKE_SOURCE_DIR}/src/render + ${CMAKE_SOURCE_DIR}/src/search + ${CMAKE_SOURCE_DIR}/src/syntax + ${CMAKE_SOURCE_DIR}/src/undo + ${CMAKE_SOURCE_DIR}/src/utils + ${CMAKE_SOURCE_DIR}/src/view +) + +add_definitions(-DTEST_DATA_DIR=\"${CMAKE_SOURCE_DIR}/autotests/input/\") +add_definitions(-DJS_DATA_DIR=\"${CMAKE_SOURCE_DIR}/src/script/data/\") +add_definitions(-DJS_SCRIPTTESTER_DATA_DIR=\"${CMAKE_SOURCE_DIR}/src/scripttester/\") + +set (KTEXTEDITOR_TEST_LINK_LIBS KF6TextEditor + KF6::I18n + KF6::GuiAddons + KF6::SyntaxHighlighting + KF6::Codecs + KF6::Completion + Qt6::Qml +) + +if(ENABLE_PCH) + file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/pch.cpp "/*empty file*/") + file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/pch.h + "#pragma once\n" + "#include \n" + "#include \n" + "#include \n" + ) + add_library(kte_test_pch STATIC ${CMAKE_CURRENT_BINARY_DIR}/pch.cpp) + target_link_libraries(kte_test_pch ${KTEXTEDITOR_TEST_LINK_LIBS} Qt6::Test) + target_precompile_headers(kte_test_pch PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/pch.h) +endif() + +include(ECMMarkAsTest) + +# test executable for encoding +add_executable(kateencodingtest src/kateencodingtest.cpp) +target_link_libraries(kateencodingtest ${KTEXTEDITOR_TEST_LINK_LIBS}) +ecm_mark_as_test(kateencodingtest) + +# test macro for encoding tests +MACRO(KTEXTEDITOR_ENCODING_TEST _encoding _testname) + ADD_TEST (NAME encoding_${_testname}_create COMMAND kateencodingtest ${_encoding} ${CMAKE_SOURCE_DIR}/autotests/input/encoding/${_testname} ${CMAKE_CURRENT_BINARY_DIR}/${_testname} ) + ADD_TEST (NAME encoding_${_testname}_diff COMMAND ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/autotests/input/encoding/${_testname} ${CMAKE_CURRENT_BINARY_DIR}/${_testname} ) +ENDMACRO(KTEXTEDITOR_ENCODING_TEST) + +# add tests + +# this file is utf-8, simple +KTEXTEDITOR_ENCODING_TEST ("utf-8" "utf8.txt") + +# this file is latin15, but fallback should work! +KTEXTEDITOR_ENCODING_TEST ("utf-8" "latin15.txt") + +# this file is utf32, little endian, but fallback should work! +KTEXTEDITOR_ENCODING_TEST ("utf-8" "utf32.txt") + +# this file is utf16, little endian, but fallback should work! +KTEXTEDITOR_ENCODING_TEST ("utf-8" "utf16.txt") + +# this file is utf32, big endian, but fallback should work! +KTEXTEDITOR_ENCODING_TEST ("utf-8" "utf32be.txt") + +# this file is utf16, big endian, but fallback should work! +KTEXTEDITOR_ENCODING_TEST ("utf-8" "utf16be.txt") + +# cyrillic utf-8 +KTEXTEDITOR_ENCODING_TEST ("utf-8" "cyrillic_utf8.txt") + +# cyrillic cp1251 +KTEXTEDITOR_ENCODING_TEST ("utf-8" "cp1251.txt") + +# cyrillic koi8-r +KTEXTEDITOR_ENCODING_TEST ("utf-8" "koi8-r.txt") + +# one character latin-15 test, segfaulted +KTEXTEDITOR_ENCODING_TEST ("utf-8" "one-char-latin-15.txt") + +# utf8 bom only, shouldn't produce error +KTEXTEDITOR_ENCODING_TEST ("utf-8" "utf8-bom-only.txt") + +# latin15, but coincidentally contains utf8 bom. The "bom" should be treated as normal text +KTEXTEDITOR_ENCODING_TEST ("ISO 8859-15" "latin15-with-utf8-bom.txt") + +# test executable for indentation +add_executable(kateindenttest src/indenttest.cpp src/script_test_base.cpp src/testutils.cpp) +target_link_libraries(kateindenttest ${KTEXTEDITOR_TEST_LINK_LIBS} Qt6::Test) +ecm_mark_as_test(kateindenttest) +if(ENABLE_PCH) + target_precompile_headers(kateindenttest REUSE_FROM kte_test_pch) +endif() + +# test macro for indentation tests +MACRO(KTEXTEDITOR_INDENT_TEST _testname) + ADD_TEST (NAME kateindenttest_${_testname} COMMAND kateindenttest ${OFFSCREEN_QPA} ${_testname}) +ENDMACRO(KTEXTEDITOR_INDENT_TEST) + +# test different indenters separately to have smaller test chunks, that takes LONG +KTEXTEDITOR_INDENT_TEST ("testPython") +KTEXTEDITOR_INDENT_TEST ("testJulia") +KTEXTEDITOR_INDENT_TEST ("testCstyle") +KTEXTEDITOR_INDENT_TEST ("testCppstyle") +KTEXTEDITOR_INDENT_TEST ("testCMake") +KTEXTEDITOR_INDENT_TEST ("testRuby") +KTEXTEDITOR_INDENT_TEST ("testHaskell") +KTEXTEDITOR_INDENT_TEST ("testLatex") +KTEXTEDITOR_INDENT_TEST ("testPascal") +KTEXTEDITOR_INDENT_TEST ("testAda") +KTEXTEDITOR_INDENT_TEST ("testXml") +KTEXTEDITOR_INDENT_TEST ("testNormal") +KTEXTEDITOR_INDENT_TEST ("testReplicode") + +add_test( + NAME scripts_test + COMMAND ktexteditor_script_tester + ${CMAKE_CURRENT_SOURCE_DIR}/input/commands/ + ${CMAKE_CURRENT_SOURCE_DIR}/input/scripting/ +) + +macro(ktexteditor_unit_test_offscreen testname) + add_executable(${testname} src/${testname}.cpp ${ARGN}) + target_link_libraries(${testname} ${KTEXTEDITOR_TEST_LINK_LIBS} Qt6::Test) + ecm_mark_as_test(${testname}) + if(ENABLE_PCH) + target_precompile_headers(${testname} REUSE_FROM kte_test_pch) + endif() + ADD_TEST (NAME ${testname} COMMAND ${testname} ${OFFSCREEN_QPA}) +endmacro() + +ktexteditor_unit_test_offscreen(katetextbuffertest) +ktexteditor_unit_test_offscreen(range_test) +ktexteditor_unit_test_offscreen(cursorwords_test) +ktexteditor_unit_test_offscreen(undomanager_test) +ktexteditor_unit_test_offscreen(plaintextsearch_test) +ktexteditor_unit_test_offscreen(regexpsearch_test) +ktexteditor_unit_test_offscreen(scriptdocument_test) +ktexteditor_unit_test_offscreen(scripttester_test ../src/scripttester/scripttester.cpp) +ktexteditor_unit_test_offscreen(wordcompletiontest) +ktexteditor_unit_test_offscreen(searchbar_test) +ktexteditor_unit_test_offscreen(movingcursor_test) +ktexteditor_unit_test_offscreen(configinterface_test) +ktexteditor_unit_test_offscreen(kte_documentcursor) +ktexteditor_unit_test_offscreen(katedocument_test) +ktexteditor_unit_test_offscreen(movingrange_test) +ktexteditor_unit_test_offscreen(revision_test) +ktexteditor_unit_test_offscreen(modificationsystem_test) +ktexteditor_unit_test_offscreen(variable_test) +ktexteditor_unit_test_offscreen(templatehandler_test) +ktexteditor_unit_test_offscreen(evaluate_script_test) +ktexteditor_unit_test_offscreen(camelcursortest) +ktexteditor_unit_test_offscreen(encodingtest) +ktexteditor_unit_test_offscreen(indentdetect_test) +ktexteditor_unit_test_offscreen(multicursortest) +ktexteditor_unit_test_offscreen(katemodemanager_test src/katemodemanager_test_base.cpp) +ktexteditor_unit_test_offscreen(kateview_test) +ktexteditor_unit_test_offscreen(inlinenote_test) +ktexteditor_unit_test_offscreen(completion_test src/codecompletiontestmodel.cpp src/codecompletiontestmodels.cpp) +ktexteditor_unit_test_offscreen(bugs_test src/testutils.cpp) +ktexteditor_unit_test_offscreen(katefoldingtest) +ktexteditor_unit_test_offscreen(messagetest) +ktexteditor_unit_test_offscreen(swapfiletest) + +add_subdirectory(src/vimode) + + +# +# benchmarks, don't execute during normal testing +# they don't test additional stuff but only hang the CI +# +add_executable(katemodemanager_benchmark src/katemodemanager_test_base.cpp src/katemodemanager_benchmark.cpp) +ecm_mark_nongui_executable(katemodemanager_benchmark) +add_test(NAME katemodemanager_benchmark COMMAND katemodemanager_benchmark CONFIGURATIONS BENCHMARK) +target_link_libraries(katemodemanager_benchmark ${KTEXTEDITOR_TEST_LINK_LIBS} Qt6::Test) + +add_executable(bench_search src/benchmarks/bench_search.cpp) +target_link_libraries(bench_search PRIVATE ${KTEXTEDITOR_TEST_LINK_LIBS}) + +add_executable(example src/example.cpp) +target_link_libraries(example PRIVATE ${KTEXTEDITOR_TEST_LINK_LIBS}) diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/.clang-format b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/.clang-format new file mode 100644 index 0000000000..9d159247d5 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/.clang-format @@ -0,0 +1,2 @@ +DisableFormat: true +SortIncludes: false diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/.gitignore b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/.gitignore new file mode 100644 index 0000000000..508061b4ec --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/.gitignore @@ -0,0 +1 @@ +actual diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/bug205447.txt b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/bug205447.txt new file mode 100644 index 0000000000..b0d12705e2 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/bug205447.txt @@ -0,0 +1 @@ +𝐽 a 𝐽a 𝐽𝐽 a𝐽 aa a𝐽a 𝐽a𝐽 diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/bug311866.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/bug311866.cpp new file mode 100644 index 0000000000..d9b74126d7 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/bug311866.cpp @@ -0,0 +1,6 @@ +int main() +{ + int this_line_is_safe=1; + int that_line_will_cause_havoc=1; +} + diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/bug313759.js b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/bug313759.js new file mode 100644 index 0000000000..efaeb25eef --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/bug313759.js @@ -0,0 +1,10 @@ +view.setCursorPosition(0, 0); +var count = document.lines() - 3; +for (var i = 0; i < count; ++i) + moveLinesDown(); +for (var i = 0; i < count; ++i) + moveLinesUp(); +for (var i = 0; i < count; ++i) + moveLinesDown(); +//for (var i = 0; i < count; ++i) +// moveLinesUp(); diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/bug313759.txt b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/bug313759.txt new file mode 100644 index 0000000000..88361355fe --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/bug313759.txt @@ -0,0 +1,503 @@ +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/bug313769.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/bug313769.cpp new file mode 100644 index 0000000000..9b67d6a2ed --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/bug313769.cpp @@ -0,0 +1,74 @@ +/* This file is part of the KDE libraries + SPDX-FileCopyrightText: 1999 Jochen Wilhelmy +*/ +//BEGIN includes +#include "kateview.h" +#include "kateview.moc" + +//#define VIEW_RANGE_DEBUG + +//END includes + +void KateView::blockFix(KTextEditor::Range& range) +{ + if (range.start().column() > range.end().column()) + { + int tmp = range.start().column(); + range.start().setColumn(range.end().column()); + range.end().setColumn(tmp); + } +} + +KateView::KateView( KateDocument *doc, QWidget *parent ) +{ + setComponentData ( KateGlobal::self()->componentData () ); + + // selection if for this view only and will invalidate if becoming empty + m_selection.setView (this); + + // use z depth defined in moving ranges interface + m_selection.setZDepth (-100000.0); + + KateGlobal::self()->registerView( this ); + + KTextEditor::ViewBarContainer *viewBarContainer=qobject_cast( KateGlobal::self()->container() ); + QWidget *bottomBarParent=viewBarContainer?viewBarContainer->getViewBarParent(this,KTextEditor::ViewBarContainer::BottomBar):0; + QWidget *topBarParent=viewBarContainer?viewBarContainer->getViewBarParent(this,KTextEditor::ViewBarContainer::TopBar):0; + + m_bottomViewBar=new KateViewBar (bottomBarParent!=0,KTextEditor::ViewBarContainer::BottomBar,bottomBarParent?bottomBarParent:this,this); + m_topViewBar=new KateViewBar (topBarParent!=0,KTextEditor::ViewBarContainer::TopBar,topBarParent?topBarParent:this,this); + + // ugly workaround: + // Force the layout to be left-to-right even on RTL desktop, as discussed + // on the mailing list. This will cause the lines and icons panel to be on + // the left, even for Arabic/Hebrew/Farsi/whatever users. + setLayoutDirection ( Qt::LeftToRight ); + + // layouting ;) + m_vBox = new QVBoxLayout (this); + m_vBox->setContentsMargins(0, 0, 0, 0); + m_vBox->setSpacing (0); + + // add top viewbar... + if (topBarParent) + viewBarContainer->addViewBarToLayout(this,m_topViewBar,KTextEditor::ViewBarContainer::TopBar); + else + m_vBox->addWidget(m_topViewBar); + + m_bottomViewBar->installEventFilter(m_viewInternal); + + // add KateMessageWidget for KTE::MessageInterface immediately above view + m_topMessageWidget = new KateMessageWidget(this); + m_vBox->addWidget(m_topMessageWidget); + m_topMessageWidget->hide(); + + // add hbox: KateIconBorder | KateViewInternal | KateScrollBar + QHBoxLayout *hbox = new QHBoxLayout (); + m_vBox->addLayout (hbox, 100); + hbox->setContentsMargins(0, 0, 0, 0); + hbox->setSpacing (0); + + QStyleOption option; + option.initFrom(this); + + if (style()->styleHint(QStyle::SH_ScrollView_FrameOnlyAroundContents, &option, this)) { diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/bug404713_line_height_issue.xml b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/bug404713_line_height_issue.xml new file mode 100644 index 0000000000..00a87ff446 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/bug404713_line_height_issue.xml @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]> + + + Atari 2600 + + + + + Atari 7800 + + + + + + + + ATK inset + شكل ATK + Ustaŭka ATK + Сбор — ATK + ATK inset + vložka ATK + ATK-indsættelse + ATK-Inset + Ένθετο ATK + ATK inset + inserción ATK + ATK sartzapena + ATK-osio + ATK innskot + encart ATK + intlis ATK + conxunto ATK + תוספת ATK + ATK umetak + ATK betét + Folio intercalari ATK + Inset ATK + Inset ATK + ATK インセット + ATK беті + ATK inset + ATK inset + ATK ielaidums + ATK-innsats + ATK-invoegsel + ATK-innskot + encart ATK + Wstawka ATK + Suplemento ATK + Conjunto de entrada do ATK + Inset ATK + вкладка ATK + Vložka ATK + Vložka ATK + Inset ATK + АТК уметак + ATK-inlägg + ATK iç metni + вкладка ATK + Bộ dát ATK + ATK 嵌入对象 + ATK 內嵌 + ATK + Andrew Toolkit + + + + + electronic book document + مستند كتاب إلكتروني + elektronnaja kniha + Документ — електронна книга + document de llibre electrònic + dokument elektronické knihy + elektronisk bogdokument + Elektronisches Buch + Έγγραφο ηλεκτρονικού βιβλίου + electronic book document + documento de libro electrónico + liburu elektronikoaren dokumentua + elektroninen kirja + elektroniskbóka skjal + document livre électronique + leabhar leictreonach + documento de libro electrónico + מסמך מסוג ספר אלקטרוני + dokument elektroničke knjige + elektronikus könyvdokumentum + Documento de libro electronic + dokumen buku elektronik + Documento libro elettronico + 電子ブックドキュメント + электронды кітабы + 전자책 문서 + elektroninės knygos dokumentas + elektroniskās grāmatas dokuments + elektronisch boek + elektronisk bok-dokument + document libre electronic + Dokument książki elektronicznej + documento de livro eletrónico + Documento de livro eletrônico + document carte electronică + электронная книга + Dokument elektronickej knihy + dokument elektronske knjige + Dokument libri elektronik + документ електронске књиге + elektroniskt bokdokument + elektronik kitap belgesi + документ електронної книги + tài liệu cuốn sách điện tử + 电子书文档 + 電子書文件 + + + + + + + + + + + + + diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/commands/utils.js b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/commands/utils.js new file mode 100644 index 0000000000..36e59fc8a7 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/commands/utils.js @@ -0,0 +1,336 @@ +loadScript(":/ktexteditor/script/commands/utils.js"); + +testCase("alignon", () => { + withInput( ' - foobar: lala, lili, lolo, lulu\n' + + '- baz: a, b, c, d\n' + + ' - quux: this, is, an, automated test\n' + + 'x - hello: world!', () => { + cmd(fn(view.alignOn, fn(document.documentRange)) + , ' - foobar: lala, lili, lolo, lulu\n' + + ' - baz: a, b, c, d\n' + + ' - quux: this, is, an, automated test\n' + + ' x - hello: world!'); + cmd(fn(view.alignOn, fn(document.documentRange), '-') + , ' - foobar: lala, lili, lolo, lulu\n' + + ' - baz: a, b, c, d\n' + + ' - quux: this, is, an, automated test\n' + + 'x - hello: world!'); + }); + + sequence(REUSE_LAST_EXPECTED_OUTPUT, () => { + cmd(fn(view.alignOn, fn(document.documentRange), ':\\s(.)') + , ' - foobar: lala, lili, lolo, lulu\n' + + ' - baz: a, b, c, d\n' + + ' - quux: this, is, an, automated test\n' + + 'x - hello: world!'); + + config({blockSelection: true}); + + cmd(fn(view.alignOn, new Range(1, 14, 2, 30), ',\\s(.)') + , ' - foobar: lala, lili, lolo, lulu\n' + + ' - baz: a, b, c, d\n' + + ' - quux: this, is, an, automated test\n' + + 'x - hello: world!'); + cmd(fn(view.alignOn, new Range(1, 19, 2, 30), ',\\s(.)') + , ' - foobar: lala, lili, lolo, lulu\n' + + ' - baz: a, b, c, d\n' + + ' - quux: this, is, an, automated test\n' + + 'x - hello: world!'); + cmd(fn(view.alignOn, new Range(1, 24, 2, 30), ',\\s(.)') + , ' - foobar: lala, lili, lolo, lulu\n' + + ' - baz: a, b, c, d\n' + + ' - quux: this, is, an, automated test\n' + + 'x - hello: world!'); + }) +}); + +testCase("block_selection", () => { + config({blockSelection: true}); + sequence( 'abc[defghijklm\n' + + 'nopqrs]tuvwxyz\n', () => { + cmd(view.removeSelectedText + , 'abc|[ghijklm\n' + + 'nop]tuvwxyz\n'); + type("PASS" + , 'abcPASS|[ghijklm\n' + + 'nopPASS]tuvwxyz\n'); + }) +}); + +testCase("moveLinesDown", () => { + config({blockSelection: false}); + + sequence( '1|\n2\n3', () => { + cmd(moveLinesDown, '2\n1|\n3'); + // bug_309977 + cmd(moveLinesDown, '2\n3\n1|', "Tests if it is possible to move a line to the last line of the document (if the last line is empty)."); + cmd(moveLinesDown, '2\n3\n1|'); + }); + + sequence( '1|\n2\n3\n', () => { + cmd(moveLinesDown, '2\n1|\n3\n'); + cmd(moveLinesDown, '2\n3\n1|\n'); + cmd(moveLinesDown, '2\n3\n\n1|'); + cmd(moveLinesDown, '2\n3\n\n1|'); + }); + + sequence( '|1\n2\n3\n', () => { + cmd(moveLinesDown, '2\n|1\n3\n'); + cmd(moveLinesDown, '2\n3\n|1\n'); + // bug_309977 + cmd(moveLinesDown, '2\n3\n\n|1'); + cmd(moveLinesDown, '2\n3\n\n|1'); + }); + + sequence( '[1]\n2\n3', () => { + cmd(moveLinesDown, '2\n[1]\n3'); + cmd(moveLinesDown, '2\n3\n[1]'); + cmd(moveLinesDown, '2\n3\n[1]'); + }); + + // bug_309978 + sequence( '[1]\n2\n3\n', () => { + cmd(moveLinesDown, '2\n[1]\n3\n'); + cmd(moveLinesDown, '2\n3\n[1]\n'); + cmd(moveLinesDown, '2\n3\n\n[1]'); + cmd(moveLinesDown, '2\n3\n\n[1]'); + }); + + sequence( '[1\n]2\n3', () => { + cmd(moveLinesDown, '2\n[1\n]3'); + cmd(moveLinesDown, '2\n3\n[1]'); + cmd(moveLinesDown, '2\n3\n[1]'); + }); + + sequence( '[1\n]2\n3\n', () => { + cmd(moveLinesDown, '2\n[1\n]3\n'); + cmd(moveLinesDown, '2\n3\n[1\n]'); + cmd(moveLinesDown, '2\n3\n\n[1]'); + cmd(moveLinesDown, '2\n3\n\n[1]'); + }); + + sequence( '1[\n]2\n3', () => { + cmd(moveLinesDown, '2\n1[\n]3'); + cmd(moveLinesDown, '2\n3\n1[]'); // TODO empty selection ! + cmd(moveLinesDown, '2\n3\n1|'); // empty selection is ignored in input... + cmd(moveLinesDown, '2\n3\n1|'); + }); + xcmd(moveLinesDown, '2\n1[\n]3', '2\n3\n1|'); // see above + + sequence( '1[\n]2\n3\n', () => { + cmd(moveLinesDown, '2\n1[\n]3\n'); + cmd(moveLinesDown, '2\n3\n1[\n]'); + cmd(moveLinesDown, '2\n3\n\n1[]'); // TODO empty selection ! + cmd(moveLinesDown, '2\n3\n\n1|'); // empty selection is ignored in input... + cmd(moveLinesDown, '2\n3\n\n1|'); + }); + xcmd(moveLinesDown, '2\n3\n1[\n]', '2\n3\n\n1|'); // see above + + + sequence( '[1\n2]\n3\n', () => { + cmd(moveLinesDown, '3\n[1\n2]\n'); + cmd(moveLinesDown, '3\n\n[1\n2]'); + cmd(moveLinesDown, '3\n\n[1\n2]'); + }); + + sequence( '1[S]\n2\n3\n', () => { + cmd(moveLinesDown, '2\n1[S]\n3\n'); + cmd(moveLinesDown, '2\n3\n1[S]\n'); + cmd(moveLinesDown, '2\n3\n\n1[S]'); + cmd(moveLinesDown, '2\n3\n\n1[S]'); + }); +}); + +testCase("moveLinesUp", () => { + config({blockSelection: false}); + + sequence( '2\n3\n1|', () => { + cmd(moveLinesUp, '2\n1|\n3'); + cmd(moveLinesUp, '1|\n2\n3'); + cmd(moveLinesUp, '1|\n2\n3'); + }); + + sequence( '2\n3\n1|\n', () => { + cmd(moveLinesUp, '2\n1|\n3\n'); + cmd(moveLinesUp, '1|\n2\n3\n'); + cmd(moveLinesUp, '1|\n2\n3\n'); + }); + + sequence( '2\n3\n|1', () => { + cmd(moveLinesUp, '2\n|1\n3'); + cmd(moveLinesUp, '|1\n2\n3'); + cmd(moveLinesUp, '|1\n2\n3'); + }); + + sequence( '2\n3\n|1\n', () => { + cmd(moveLinesUp, '2\n|1\n3\n'); + cmd(moveLinesUp, '|1\n2\n3\n'); + cmd(moveLinesUp, '|1\n2\n3\n'); + }); + + sequence( '2\n3\n[1]', () => { + cmd(moveLinesUp, '2\n[1]\n3'); + cmd(moveLinesUp, '[1]\n2\n3'); + cmd(moveLinesUp, '[1]\n2\n3'); + }); + + sequence( '2\n3\n[1]\n', () => { + cmd(moveLinesUp, '2\n[1]\n3\n'); + cmd(moveLinesUp, '[1]\n2\n3\n'); + cmd(moveLinesUp, '[1]\n2\n3\n'); + }); + + sequence( '2\n3[\n1]', () => { + cmd(moveLinesUp, '3[\n1]\n2'); + cmd(moveLinesUp, '3[\n1]\n2'); + }); + + sequence( '2\n3[\n1]\n', () => { + cmd(moveLinesUp, '3[\n1]\n2\n'); + cmd(moveLinesUp, '3[\n1]\n2\n'); + }); + + sequence( '2\n3\n[1\n]', () => { + cmd(moveLinesUp, '2\n[1\n]3\n'); + cmd(moveLinesUp, '[1\n]2\n3\n'); + cmd(moveLinesUp, '[1\n]2\n3\n'); + }); + + sequence( '2\n1[\n]3', () => { + cmd(moveLinesUp, '1[\n]2\n3'); + cmd(moveLinesUp, '1[\n]2\n3'); + }); + + sequence( '2\n1\n3[\n]', () => { + cmd(moveLinesUp, '2\n3[\n]1\n'); + cmd(moveLinesUp, '3[\n]2\n1\n'); + cmd(moveLinesUp, '3[\n]2\n1\n'); + }); + + sequence( '3\n\n[1\n2]', () => { + cmd(moveLinesUp, '3\n[1\n2]\n'); + cmd(moveLinesUp, '[1\n2]\n3\n'); + cmd(moveLinesUp, '[1\n2]\n3\n'); + }); + + sequence( '2\n3\n\n1[S]', () => { + cmd(moveLinesUp, '2\n3\n1[S]\n'); + cmd(moveLinesUp, '2\n1[S]\n3\n'); + cmd(moveLinesUp, '1[S]\n2\n3\n'); + cmd(moveLinesUp, '1[S]\n2\n3\n'); + }); +}); + +testCase("duplicateLinesDown", () => { + for (const [input, expectedOutput] of [ + ['|[1]\n2', '1\n|[1]\n2'], + ['|[1]\n2\n', '1\n|[1]\n2\n'], + ['|[1]\n2\n3', '1\n|[1]\n2\n3'], + + ['[1]|\n2', '1\n[1]|\n2'], + ['[1]|\n2\n', '1\n[1]|\n2\n'], + ['[1]|\n2\n3', '1\n[1]|\n2\n3'], + + ['1\n|[2]', '1\n2\n|[2]'], + ['1\n|[2]\n', '1\n2\n|[2]\n'], + ['1\n|[2]\n3', '1\n2\n|[2]\n3'], + + ['1\n[2]|', '1\n2\n[2]|'], + ['1\n[2]|\n', '1\n2\n[2]|\n'], + + ['1\n[2]|S', '1\n2S\n[2]|S'], + ['1\n[2]|S\n', '1\n2S\n[2]|S\n'], + ['1\n[2]|S\n3', '1\n2S\n[2]|S\n3'], + + ['1\n2|[S]', '1\n2S\n2|[S]'], + ['1\n2|[S]\n', '1\n2S\n2|[S]\n'], + ['1\n2|[S]\n3', '1\n2S\n2|[S]\n3'], + ]) { + cmd(duplicateLinesDown, input, expectedOutput); + cmd(duplicateLinesDown, + input.replace('[', '').replace(']', ''), + expectedOutput.replace('[', '').replace(']', '')); + } + + cmd(duplicateLinesDown, '[1\n]\n2', '1\n[1\n]\n2'); + cmd(duplicateLinesDown, '[1\n\n]2', '1\n\n[1\n\n]2'); + cmd(duplicateLinesDown, '[1\n\n2]', '1\n\n2\n[1\n\n2]'); + + cmd(duplicateLinesDown, '[1\n]\n2\n', '1\n[1\n]\n2\n'); + cmd(duplicateLinesDown, '[1\n\n]2\n', '1\n\n[1\n\n]2\n'); + cmd(duplicateLinesDown, '[1\n\n2]\n', '1\n\n2\n[1\n\n2]\n'); + cmd(duplicateLinesDown, '[1\n\n2\n]', '1\n\n2\n[1\n\n2\n]'); + + cmd(duplicateLinesDown, '1\n[2\n]3\n', '1\n2\n[2\n]3\n'); + + cmd(duplicateLinesDown, '1[\n]\n2', '1\n1[\n]\n2'); + cmd(duplicateLinesDown, '1[\n\n]2', '1\n\n1[\n\n]2'); + cmd(duplicateLinesDown, '1[\n\n2]', '1\n\n2\n1[\n\n2]'); + + cmd(duplicateLinesDown, '1[\n]\n2\n', '1\n1[\n]\n2\n'); + cmd(duplicateLinesDown, '1[\n\n]2\n', '1\n\n1[\n\n]2\n'); + cmd(duplicateLinesDown, '1[\n\n2]\n', '1\n\n2\n1[\n\n2]\n'); + cmd(duplicateLinesDown, '1[\n\n2\n]', '1\n\n2\n1[\n\n2\n]'); + + cmd(duplicateLinesDown, '1[\n2]\n3\n', '1\n2\n1[\n2]\n3\n'); + + cmd(duplicateLinesDown, '[1\n2\n3]\n4\n', '1\n2\n3\n[1\n2\n3]\n4\n'); + cmd(duplicateLinesDown, '[1\n2\n3\n]4\n', '1\n2\n3\n[1\n2\n3\n]4\n'); +}); + +testCase("duplicateLinesUp", () => { + for (const [input, expectedOutput] of [ + ['|[1]\n2', '|[1]\n1\n2'], + ['|[1]\n2\n', '|[1]\n1\n2\n'], + ['|[1]\n2\n3', '|[1]\n1\n2\n3'], + + ['[1]|\n2', '[1]|\n1\n2'], + ['[1]|\n2\n', '[1]|\n1\n2\n'], + ['[1]|\n2\n3', '[1]|\n1\n2\n3'], + + ['1\n|[2]', '1\n|[2]\n2'], + ['1\n|[2]\n', '1\n|[2]\n2\n'], + ['1\n|[2]\n3', '1\n|[2]\n2\n3'], + + ['1\n[2]|', '1\n[2]|\n2'], + ['1\n[2]|\n', '1\n[2]|\n2\n'], + + ['1\n[2]|S', '1\n[2]|S\n2S'], + ['1\n[2]|S\n', '1\n[2]|S\n2S\n'], + ['1\n[2]|S\n3', '1\n[2]|S\n2S\n3'], + + ['1\n2|[S]', '1\n2|[S]\n2S'], + ['1\n2|[S]\n', '1\n2|[S]\n2S\n'], + ['1\n2|[S]\n3', '1\n2|[S]\n2S\n3'], + ]) { + cmd(duplicateLinesUp, input, expectedOutput); + cmd(duplicateLinesUp, + input.replace('[', '').replace(']', ''), + expectedOutput.replace('[', '').replace(']', '')); + } + + cmd(duplicateLinesUp, '[1\n]\n2', '[1\n]1\n\n2'); + cmd(duplicateLinesUp, '[1\n\n]2', '[1\n\n]1\n\n2'); + cmd(duplicateLinesUp, '[1\n\n2]', '[1\n\n2]\n1\n\n2'); + + cmd(duplicateLinesUp, '[1\n]\n2\n', '[1\n]1\n\n2\n'); + cmd(duplicateLinesUp, '[1\n\n]2\n', '[1\n\n]1\n\n2\n'); + cmd(duplicateLinesUp, '[1\n\n2]\n', '[1\n\n2]\n1\n\n2\n'); + cmd(duplicateLinesUp, '[1\n\n2\n]', '[1\n\n2\n]1\n\n2\n'); + + cmd(duplicateLinesUp, '1\n[2\n]3\n', '1\n[2\n]2\n3\n'); + + cmd(duplicateLinesUp, '1[\n]\n2', '1[\n]1\n\n2'); + cmd(duplicateLinesUp, '1[\n\n]2', '1[\n\n]1\n\n2'); + cmd(duplicateLinesUp, '1[\n\n2]', '1[\n\n2]\n1\n\n2'); + + cmd(duplicateLinesUp, '1[\n]\n2\n', '1[\n]1\n\n2\n'); + cmd(duplicateLinesUp, '1[\n\n]2\n', '1[\n\n]1\n\n2\n'); + cmd(duplicateLinesUp, '1[\n\n2]\n', '1[\n\n2]\n1\n\n2\n'); + cmd(duplicateLinesUp, '1[\n\n2\n]', '1[\n\n2\n]1\n\n2\n'); + + cmd(duplicateLinesUp, '1[\n2]\n3\n', '1[\n2]\n1\n2\n3\n'); + + cmd(duplicateLinesUp, '[1\n2\n3]\n4\n', '[1\n2\n3]\n1\n2\n3\n4\n'); + cmd(duplicateLinesUp, '[1\n2\n3\n]4\n', '[1\n2\n3\n]1\n2\n3\n4\n'); +}); diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/cp1251.txt b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/cp1251.txt new file mode 100644 index 0000000000..eaac632856 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/cp1251.txt @@ -0,0 +1,2 @@ +Testing + \ No newline at end of file diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/cyrillic_utf8.txt b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/cyrillic_utf8.txt new file mode 100644 index 0000000000..51888b2eb4 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/cyrillic_utf8.txt @@ -0,0 +1,2 @@ +Testing +Тестовый текст раз два три \ No newline at end of file diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/koi8-r.txt b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/koi8-r.txt new file mode 100644 index 0000000000..eb61ad70e0 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/koi8-r.txt @@ -0,0 +1,2 @@ +Testing + \ No newline at end of file diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/latin15-with-utf8-bom.txt b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/latin15-with-utf8-bom.txt new file mode 100644 index 0000000000..e71bfebd80 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/latin15-with-utf8-bom.txt @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/latin15.txt b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/latin15.txt new file mode 100644 index 0000000000..974d9ab086 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/latin15.txt @@ -0,0 +1,7 @@ +Test +Strae +Christoph +uerung +berall +Khler +$perlvar \ No newline at end of file diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/one-char-latin-15.txt b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/one-char-latin-15.txt new file mode 100644 index 0000000000..92a39f398b --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/one-char-latin-15.txt @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/utf16.txt b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/utf16.txt new file mode 100644 index 0000000000000000000000000000000000000000..9c4a0eccd4e3d0d26c95d60a584e87d7b815bcef GIT binary patch literal 110 zcmW-Y%L#x$5JTU2>aY`!9<>1lQDJdq{Zwcff?ar2v%^4!aY`!9<>1lQDJdq{Zwcff?ar2v%^4!kwZ;j1%u4hydm`@*)FaI7+p!|=+VB324)z>q;OutPjz|Mvi-konfnPq;*0q=A#du9cEFZaw> H_`mZH;F=fz literal 0 HcmV?d00001 diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/utf8-bom-only.txt b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/utf8-bom-only.txt new file mode 100644 index 0000000000..5f282702bb --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/utf8-bom-only.txt @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/utf8.txt b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/utf8.txt new file mode 100644 index 0000000000..73c6f28d7f --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/encoding/utf8.txt @@ -0,0 +1,7 @@ +Test +Straße +Christoph +Äußerung +Überall +Köhler +$perlvar \ No newline at end of file diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/.kateconfig b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/.kateconfig new file mode 100644 index 0000000000..ea7a563066 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/.kateconfig @@ -0,0 +1 @@ +kate: indent-mode r; replace-tabs true; indent-width 4; dynamic-word-wrap off; hl R Script; remove-trailing-spaces off; diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/bracketsBreak/expected b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/bracketsBreak/expected new file mode 100644 index 0000000000..abd6e9f746 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/bracketsBreak/expected @@ -0,0 +1,3 @@ +test( + text +) diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/bracketsBreak/input.js b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/bracketsBreak/input.js new file mode 100644 index 0000000000..b8f5e4b2fe --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/bracketsBreak/input.js @@ -0,0 +1,3 @@ +v.setCursorPosition(0,5); +v.enter(); +v.type("text"); diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/bracketsBreak/origin b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/bracketsBreak/origin new file mode 100644 index 0000000000..8be63798f7 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/bracketsBreak/origin @@ -0,0 +1 @@ +test() diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/closeBracket/expected b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/closeBracket/expected new file mode 100644 index 0000000000..abd6e9f746 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/closeBracket/expected @@ -0,0 +1,3 @@ +test( + text +) diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/closeBracket/input.js b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/closeBracket/input.js new file mode 100644 index 0000000000..34cbccb372 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/closeBracket/input.js @@ -0,0 +1,3 @@ +v.setCursorPosition(1,8); +v.enter(); +v.type(")"); diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/closeBracket/origin b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/closeBracket/origin new file mode 100644 index 0000000000..caf0815ab3 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/closeBracket/origin @@ -0,0 +1,2 @@ +test( + text diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentAssign/expected b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentAssign/expected new file mode 100644 index 0000000000..745dd72c3d --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentAssign/expected @@ -0,0 +1,5 @@ +tmp <- + Thisisaverylongvariablename +test <- NA +test <- 'String' + diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentAssign/input.js b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentAssign/input.js new file mode 100644 index 0000000000..66f00db6a8 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentAssign/input.js @@ -0,0 +1,8 @@ +v.setCursorPosition(0,6); +v.enter(); +v.type("Thisisaverylongvariablename"); +v.enter(); +v.type("test <- NA"); +v.enter(); +v.type("test <- 'String'"); +v.enter(); diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentAssign/origin b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentAssign/origin new file mode 100644 index 0000000000..ab62f32467 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentAssign/origin @@ -0,0 +1 @@ +tmp <- diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentBracket/expected b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentBracket/expected new file mode 100644 index 0000000000..6b3f078f8f --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentBracket/expected @@ -0,0 +1,3 @@ +plot(y ~ x, + data = data) +somevariable diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentBracket/input.js b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentBracket/input.js new file mode 100644 index 0000000000..a0887b42fb --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentBracket/input.js @@ -0,0 +1,6 @@ +v.setCursorPosition(0,11); +v.enter(); +v.type("data = data"); +v.setCursorPosition(1,17); +v.enter(); +v.type("somevariable"); diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentBracket/origin b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentBracket/origin new file mode 100644 index 0000000000..71e2d99025 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentBracket/origin @@ -0,0 +1 @@ +plot(y ~ x,) diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentFormula/expected b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentFormula/expected new file mode 100644 index 0000000000..cd2b22cc79 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentFormula/expected @@ -0,0 +1,4 @@ +lm(Response ~ Var1 + + Var2 + + Var3, + anotherargument diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentFormula/input.js b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentFormula/input.js new file mode 100644 index 0000000000..c451d4cf11 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentFormula/input.js @@ -0,0 +1,7 @@ +v.setCursorPosition(0,20); +v.enter(); +v.type("Var2 +") +v.enter(); +v.type("Var3,") +v.enter(); +v.type("anotherargument") diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentFormula/origin b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentFormula/origin new file mode 100644 index 0000000000..a026e91293 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentFormula/origin @@ -0,0 +1 @@ +lm(Response ~ Var1 + diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentOperator/expected b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentOperator/expected new file mode 100644 index 0000000000..db0ecae1e9 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentOperator/expected @@ -0,0 +1,4 @@ +ggplot(data = data) + + geom_line(aes(x = something, y = otherstuff)) + + coord_flip() + diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentOperator/input.js b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentOperator/input.js new file mode 100644 index 0000000000..bb4d9e4a94 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentOperator/input.js @@ -0,0 +1,6 @@ +v.setCursorPosition(0,21); +v.enter(); +v.type("geom_line(aes(x = something, y = otherstuff)) +"); +v.enter(); +v.type("coord_flip()"); +v.enter(); diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentOperator/origin b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentOperator/origin new file mode 100644 index 0000000000..676ac05cd7 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentOperator/origin @@ -0,0 +1 @@ +ggplot(data = data) + diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentpaste1/expected b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentpaste1/expected new file mode 100644 index 0000000000..17040fe9f4 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentpaste1/expected @@ -0,0 +1,5 @@ +if(1) { + ggplot(data = data) + + geom_line(aes(x = something, y = otherstuff)) + + coord_flip() +} diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentpaste1/input.js b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentpaste1/input.js new file mode 100644 index 0000000000..60f37abf5c --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentpaste1/input.js @@ -0,0 +1,2 @@ +v.setCursorPosition(1, 4); +v.paste("ggplot(data = data) +\n geom_line(aes(x = something, y = otherstuff)) +\n coord_flip()"); diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentpaste1/origin b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentpaste1/origin new file mode 100644 index 0000000000..35acd0080f --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentpaste1/origin @@ -0,0 +1,3 @@ +if(1) { + +} diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentpaste2/expected b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentpaste2/expected new file mode 100644 index 0000000000..edfab9b04c --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentpaste2/expected @@ -0,0 +1,6 @@ +if(1) { + mult <- function(a,b) { + a*b + + } +} diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentpaste2/input.js b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentpaste2/input.js new file mode 100644 index 0000000000..567f22a864 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentpaste2/input.js @@ -0,0 +1,2 @@ +v.setCursorPosition(1, 4); +v.paste("mult <- function(a,b) {\n a*b\n\n}"); diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentpaste2/origin b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentpaste2/origin new file mode 100644 index 0000000000..35acd0080f --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/indentpaste2/origin @@ -0,0 +1,3 @@ +if(1) { + +} diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/skipComment/expected b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/skipComment/expected new file mode 100644 index 0000000000..f40e80a062 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/skipComment/expected @@ -0,0 +1,6 @@ +data %>% + select(-Column) %>% + #filter(ID == "id2") %>% + gather() %>% + drop_na() + diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/skipComment/input.js b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/skipComment/input.js new file mode 100644 index 0000000000..21738ef2b4 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/skipComment/input.js @@ -0,0 +1,4 @@ +v.setCursorPosition(3,16); +v.enter(); +v.type("drop_na()"); +v.enter(); diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/skipComment/origin b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/skipComment/origin new file mode 100644 index 0000000000..3827ea386c --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/R/skipComment/origin @@ -0,0 +1,4 @@ +data %>% + select(-Column) %>% + #filter(ID == "id2") %>% + gather() %>% diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/.kateconfig b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/.kateconfig new file mode 100644 index 0000000000..a21afbc413 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/.kateconfig @@ -0,0 +1,2 @@ +kate: replace-tabs on; remove-trailing-spaces all; +kate: hl ada; indent-mode ada; indent-width 3; diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/closepar2/expected b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/closepar2/expected new file mode 100644 index 0000000000..021cc5c5e7 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/closepar2/expected @@ -0,0 +1,4 @@ +begin + f( + arg1 + ) diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/closepar2/input.js b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/closepar2/input.js new file mode 100644 index 0000000000..fa46c403d4 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/closepar2/input.js @@ -0,0 +1,5 @@ + +v.setCursorPosition(2,d.lineLength(2)); +v.enter(); +v.type(")"); + diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/closepar2/origin b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/closepar2/origin new file mode 100644 index 0000000000..f4ec0a36b3 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/closepar2/origin @@ -0,0 +1,3 @@ +begin + f( + arg1 diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/longtest/expected b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/longtest/expected new file mode 100644 index 0000000000..5dda54ec13 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/ada/longtest/expected @@ -0,0 +1,628 @@ +-- +-- + + +-- + +with text_io; +use text_io; + +with Ada.Integer_Text_IO; +use Ada.Integer_Text_IO; + + +package Package_With_Private is + + type Private_Type is private; + +private + + type Private_Type is array (1 .. 10) of Integer; + +end Package_With_Private; + + +procedure Range_1( i : integer ); -- forward declaration + + +Block_Name : -- CHECK: block labels are handled sensibly +declare + A_Variable : The_Type; +begin + Use A_Variable +end Block_Name; + +generic + Max: Positive; + type Element_T is private; +package Generic_Stack is + procedure Push (E: Element_T); + function Pop return Element_T; +end Generic_Stack; + + +procedure Generic_Swap is + generic + type Item is private; + procedure Exchange(X, Y: in out Item); + procedure Exchange(X, Y: in out Item) is + Temp: Item; + begin + Temp := X; + Result.Elements (i, Result.Elements'Last (2)) + := 3 + Right.Elements (i); + a := long_expression + + another_long_expression; -- CHECK: this should be indented + func + ( a, + b + ); + Y := func + ( a, + b + ); + Y := + func + ( a, + b + ); + end; + + A, B : Integer; + procedure Swap is new Exchange(integer); + +begin + A := 1; + B := 2; + Swap(A,B); + Ada.Float_Text_IO.put -- Float literal + (Item => gamma(i), Fore => 1, Aft => 1, Exp => 0); + new_line; + Ada.Float_Text_IO.put( -- Float literal + Item => gamma(i), Fore => 1, Aft => 1, Exp => 0); + new_line; + return( a+b ); + return( + a+b ); + return + ( a + +b); + +end Generic_Swap; + + +function SUBSTRING (DSTR: DYN_STRING; -- this is a forward reference + START : natural; + LENGTH : natural := 0) + return DYN_STRING; + +function SUBSTRING (DSTR: DYN_STRING; + LENGTH : natural := 0) + return DYN_STRING is + DS: DYN_STRING; + L : natural := LENGTH; + + type Degrees is new Float range -273.15 .. Float'Last; + Temperature : Degrees; + + type Car is record + Identity : Long_Long_Integer; + Number_Wheels : Positive range 1 .. 10; + Paint : Color; + Horse_Power_kW : Float range 0.0 .. 2_000.0; + Consumption : Float range 0.0 .. 100.0; + end record; + + BMW : Car := + (Identity => 2007_752_83992434, + Number_Wheels => 5, + Horse_Power_kW => 190.0, + Consumption => 10.1, + Paint => Blue); + + type Directions is (North, South, East, West); + Heading : Directions; + +begin + put_line("It works!"); + + case long_expression + + Another_long_expression is + when 89 ==> + s1; + s2; +<> -- CHECK: label should be aligned with begin +# + when 1 => + Walk_The_Dog; + + when 16#5# ==> + a := 5; + a := 9; + f(18); + s1; + +#include "fred" + + when 5 => + case Heading is + when North => + Y := Y + 1; + when South => + Y := Y - 1; + when East => + X := X + 1; + when West => + X := X - 1; + end case; + + when 8 | 10 => + + Sell_All_Stock; + + when others => + + if Temperature >= 40.0 then + Put_Line ("Wow!"); + Put_Line ("It's extremely hot"); + elsif Temperature >= 30.0 then + Put_Line ("It's hot"); + elsif Temperature >= 20.0 then + Put_Line ("It's warm"); + elsif Temperature >= 10.0 then + Put_Line ("It's cool"); + elsif Temperature >= 0.0 then + Put_Line ("It's cold"); + else + Put_Line ("It's freezing"); + end if; + + end case; + + DS3.DATA(1..DS3.SIZE):= DS1.DATA(1..DS1.SIZE) + & DS2.DATA(1..DS2.SIZE); + return DS3; -- CHECK: should align with DS3 above +end main; + + +procedure Quadratic_Equation + (A, B, C : Float; -- By default it is "in". + R1, R2 : out Float; + Valid : out Boolean) +is + Z : Float; + + type Discriminated_Record (Size : Natural) is + record + A : String (1 .. Size); + B : Integer; + end record; + +begin + Z := B**2 - 4.0 * A * C; + + if At_Location > In_Text'Last + or else At_Location + Pattern'Length - 1 > + In_Text'Last + or else Slided_Text_T (In_Text ( + At_Location .. At_Location + Pattern'Length - 1)) /= + Slided_Pattern + then + Valid := False; -- Being out parameter, it should be modified at least once. + R1 := 0.0; + R2 := 0.0; +<> + else + Valid := True; + R1 := (-B + Sqrt (Z)) / (2.0 * A); + R2 := (-B - Sqrt (Z)) / (2.0 * A); + end if; +end Quadratic_Equation; + + +procedure Error_Handling_4 is + + Float_Error : exception; + + type DEVICE is (PRINTER, DISK, DRUM); + type STATE is (OPEN, CLOSED); + + type PERIPHERAL(UNIT : DEVICE := DISK) is + record + STATUS : STATE; + case UNIT is + when PRINTER => + LINE_COUNT : INTEGER range 1 .. PAGE_SIZE; + when others => + CYLINDER : CYLINDER_INDEX; + TRACK : TRACK_NUMBER; + end case; + end record; + + + function Square_Root (X : in Float) return Float is + use Ada.Numerics.Elementary_Functions; + begin + if (X < 0.0) then + raise Float_Error; + else + return Sqrt (X); + end if; + end Square_Root; + +begin + + begin + C := Square_Root (A ** 2 + B ** 2); + + T_IO.Put ("C is "); + F_IO.Put + (Item => C, + Fore => (F_IO.Default_Fore + + 1 ), + Aft => F_IO.Default_Aft, + Exp => F_IO.Default_Exp); + exception + when Constraint_Error => + T_IO.Put ("C cannot be calculated!"); + end; + + return; +end Error_Handling_4; + + +procedure Range_1 is + type Range_Type is range -5 .. 10; + + Default_String : constant String := "This is the long string returned by" & + " default. It is broken into multiple" & + " Ada source lines for convenience."; + + Another_Default_String : constant String := + "This is the long string returned by" & + " default. It is broken into multiple" & + " Ada source lines for convenience."; + + type Op_Codes_In_Column is + ( Push, + Pop, + Add ); + + package T_IO renames Ada.Text_IO; + package I_IO is + new Ada.Text_IO.Integer_IO (Range_Type); + + a: real; + + +begin + for A in Range_Type loop + I_IO.Put (Item => A, + Width => 3, -- CHECK: params should line up + Base => 10); + + if A < Range_Type'Last then + Process_Each_Page: + loop + + declare + package Float_100_Stack is new Generic_Stack (100, Float); + use Float_100_Stack; + begin + Push (45.8); + end; + + Process_All_The_Lines_On_This_Page: + loop + s1; + exit Process_All_The_Lines_On_This_Page when Line_Number = Max_Lines_On_Page; + s2; + Look_For_Sentinel_Value: + loop + s3; + exit Look_For_Sentinel_Value when Current_Symbol = Sentinel; + s4; + end loop Look_For_Sentinel_Value; + s5; + end loop Process_All_The_Lines_On_This_Page; + s6; + exit Process_Each_Page when Page_Number = Maximum_Pages; + s7; + end loop Process_Each_Page; + else + T_IO.New_Line; + + -- comment below scans back to here !!?? + for I in A'Range (1) loop + for J in A'Range (2) loop + Sum := 0.0; + for R in A'Range (2) loop + Sum := Sum + A.all (I, R) * B.all (R, J); + end loop; + C.all (I, J) := Sum + + second_part_of_long_expression + + third_part_of_long_expression; + if Input_Found then + Count_Characters; + + else --not Input_Found + Reset_State; + Character_Total := + First_Part_Total * First_Part_Scale_Factor + + Second_Part_Total * Second_Part_Scale_Factor + + Default_String'Length + Delimiter_Size; + end if; + + end loop; + end loop; + end if; + end loop; +end Range_1; + +-- generic instantiation -- TODO: wrong, ... +-- ... statementIndent() scans back to for R in A'Range ... ??? ... +-- ... because it skips over the ends + +package Day_Of_Month_IO is -- TODO: scans back to beginning of file: generic? should have stopped at 'procedure' + new Ada.Text_IO.Integer_IO (Day_Of_Month); + +procedure f; + +-- CHECK: these should be recognised as forward procedures ... +procedure Day_Of (Day, Month, Year : in Integer; + Result : out Integer); +procedure x; +procedure x1; + +procedure TRAVERSE_TREE; +procedure INCREMENT(X : in out INTEGER); +procedure RIGHT_INDENT(MARGIN : out LINE_SIZE); -- see 3.5.4 +procedure SWITCH(FROM, TO : in out LINK); -- see 3.8.1 + +function RANDOM return PROBABILITY; -- see 3.5.7 + +function MIN_CELL(X : LINK) return CELL; -- see 3.8.1 +function NEXT_FRAME(K : POSITIVE) return FRAME; -- see 3.8 +function DOT_PRODUCT(LEFT,RIGHT: VECTOR) return REAL; -- see 3.6 + +function "*"(LEFT,RIGHT : MATRIX) return MATRIX; -- see 3.6 + +procedure Nesting is + + procedure Triple is + + procedure Second_Layer(Persistence : in out Persistence_View; + Stream : not null access Root_Stream_Type'Class) + is + + procedure Bottom_Layer is + begin + Put_Line("This is the Bottom Layer talking."); + Do_Something; + + if Test then + goto Exit_Use_Goto; + end if; + Do_Something_Else; + <

+ + diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/empty_lines/input.js b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/empty_lines/input.js new file mode 100644 index 0000000000..e057e24b50 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/empty_lines/input.js @@ -0,0 +1,19 @@ +v.setCursorPosition(0,0); +v.align(new Range(new Cursor(0, 0), new Cursor(0, 0))); +v.setCursorPosition(1,0); +v.align(new Range(new Cursor(1, 0), new Cursor(1, 0))); +v.setCursorPosition(2,0); +v.align(new Range(new Cursor(2, 0), new Cursor(2, 0))); +v.setCursorPosition(3,0); +v.align(new Range(new Cursor(3, 0), new Cursor(3, 0))); +v.setCursorPosition(4,0); +v.align(new Range(new Cursor(4, 0), new Cursor(4, 0))); + +v.setCursorPosition(7,0); +v.align(new Range(new Cursor(7, 0), new Cursor(7, 0))); +v.setCursorPosition(8,0); +v.align(new Range(new Cursor(8, 0), new Cursor(8, 0))); +v.setCursorPosition(9,0); +v.align(new Range(new Cursor(9, 0), new Cursor(9, 0))); +v.setCursorPosition(12,0); +v.align(new Range(new Cursor(12, 0), new Cursor(12, 0))); diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/empty_lines/origin b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/empty_lines/origin new file mode 100644 index 0000000000..4131bff517 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/empty_lines/origin @@ -0,0 +1,15 @@ +
    +
  • a
  • +
  • b
  • + +
+ + +
    +
  • a
  • +
  • b
  • + + +
+ + diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/keep_indent/expected b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/keep_indent/expected new file mode 100644 index 0000000000..c1f2f7fae6 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/keep_indent/expected @@ -0,0 +1,2 @@ + + PASS diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/keep_indent/input.js b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/keep_indent/input.js new file mode 100644 index 0000000000..1f8c4e50b1 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/keep_indent/input.js @@ -0,0 +1,3 @@ +v.setCursorPosition(0, document.lineLength(0)); +v.enter(); +v.type("PASS"); diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/keep_indent/origin b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/keep_indent/origin new file mode 100644 index 0000000000..1a4baf536d --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/keep_indent/origin @@ -0,0 +1 @@ + diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/opening1/expected b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/opening1/expected new file mode 100644 index 0000000000..f6b1d8dfae --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/opening1/expected @@ -0,0 +1,3 @@ + + PASS + PASS2 diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/opening1/input.js b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/opening1/input.js new file mode 100644 index 0000000000..e52519ea11 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/opening1/input.js @@ -0,0 +1,5 @@ +v.setCursorPosition(0, document.lineLength(0)); +v.enter(); +v.type("PASS"); +v.enter(); +v.type("PASS2"); diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/opening1/origin b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/opening1/origin new file mode 100644 index 0000000000..49a695eba0 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/opening1/origin @@ -0,0 +1 @@ + diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/self_closing1/expected b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/self_closing1/expected new file mode 100644 index 0000000000..e2a0b525f7 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/self_closing1/expected @@ -0,0 +1,2 @@ + text
+ text2 diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/self_closing1/input.js b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/self_closing1/input.js new file mode 100644 index 0000000000..1af35eddbf --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/self_closing1/input.js @@ -0,0 +1,4 @@ +v.setCursorPosition(0, document.lineLength(0)); +v.type("
"); +v.enter(); +v.type("text2"); diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/self_closing1/origin b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/self_closing1/origin new file mode 100644 index 0000000000..ee6b125d02 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/self_closing1/origin @@ -0,0 +1 @@ + text diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/self_closing2/expected b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/self_closing2/expected new file mode 100644 index 0000000000..f58e74b52a --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/self_closing2/expected @@ -0,0 +1,5 @@ + + + + + diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/self_closing2/input.js b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/self_closing2/input.js new file mode 100644 index 0000000000..064dc07075 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/self_closing2/input.js @@ -0,0 +1,8 @@ +v.setCursorPosition(0,0); +v.selectAll(); + +var r = v.selection(); +if( r.isValid() ) { + v.align( r ); +} + diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/self_closing2/origin b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/self_closing2/origin new file mode 100644 index 0000000000..228d0b48bf --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/self_closing2/origin @@ -0,0 +1,5 @@ + + + + + diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/text1/expected b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/text1/expected new file mode 100644 index 0000000000..ddc4f4ce1c --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/text1/expected @@ -0,0 +1,2 @@ +text +PASS diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/text1/input.js b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/text1/input.js new file mode 100644 index 0000000000..1f8c4e50b1 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/text1/input.js @@ -0,0 +1,3 @@ +v.setCursorPosition(0, document.lineLength(0)); +v.enter(); +v.type("PASS"); diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/text1/origin b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/text1/origin new file mode 100644 index 0000000000..8e27be7d61 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/text1/origin @@ -0,0 +1 @@ +text diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/text2/expected b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/text2/expected new file mode 100644 index 0000000000..8674737f81 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/text2/expected @@ -0,0 +1,2 @@ + text + PASS diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/text2/input.js b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/text2/input.js new file mode 100644 index 0000000000..1f8c4e50b1 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/text2/input.js @@ -0,0 +1,3 @@ +v.setCursorPosition(0, document.lineLength(0)); +v.enter(); +v.type("PASS"); diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/text2/origin b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/text2/origin new file mode 100644 index 0000000000..ee6b125d02 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/text2/origin @@ -0,0 +1 @@ + text diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/xhtml1/expected b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/xhtml1/expected new file mode 100644 index 0000000000..7d3ff39b05 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/xhtml1/expected @@ -0,0 +1,35 @@ + + + + + + + title + + + + + + + +

+ XHTML is fun. +

+

And so is Open Source.

+
    +
  • test
  • +
  • test2
  • +
+ + + diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/xhtml1/input.js b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/xhtml1/input.js new file mode 100644 index 0000000000..3addb3436b --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/xhtml1/input.js @@ -0,0 +1,66 @@ +v.setCursorPosition(0, document.lineLength(0)); +v.enter(); +v.type(''); +v.enter(); +v.enter(); +v.type(''); +v.enter(); +v.type(''); +v.enter(); +v.type(''); +v.enter(); +v.type('title'); +v.enter(); +v.type(''); +v.enter(); +v.type(''); +v.enter(); +v.type(''); +v.enter(); +v.type(''); +v.enter(); +v.type(''); +v.enter(); +v.enter(); +v.type(''); +v.enter(); +v.type('

'); +v.enter(); +v.type('XHTML is fun.'); +v.enter(); +v.type('

'); +v.enter(); +v.type('

And so is Open Source.

'); +v.enter(); +v.type('
    '); +v.enter(); +v.type('
  • test
  • '); +v.enter(); +v.type('
  • test2
  • '); +v.enter(); +v.type('
'); +v.enter(); +v.type(''); +v.enter(); +v.enter(); +v.type(''); diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/xhtml1/origin b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/xhtml1/origin new file mode 100644 index 0000000000..12bbf745ce --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent/xml/xhtml1/origin @@ -0,0 +1 @@ + diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/.kateconfig b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/.kateconfig new file mode 100644 index 0000000000..cfec13be6f --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/.kateconfig @@ -0,0 +1 @@ +// dummy to avoid picking repository global one diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/2space.js b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/2space.js new file mode 100644 index 0000000000..07c52aa806 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/2space.js @@ -0,0 +1,10 @@ +function check_sum(a, b, sum) { + if (a + b == sum) + return 1; + else if (a + b != sum) + return 2; + else + for (let i = 0; i < 10; ++i) { + break; + } +} diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/4space.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/4space.cpp new file mode 100644 index 0000000000..1918d96630 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/4space.cpp @@ -0,0 +1,13 @@ +#include + +int main() { + std::cout << "This is a test program for detecting indent, blah blah"; + for (int i = 0; i < 10; ++i) { + if (i == 2) { + i++; + } else { + i--; + } + } + return 1; +} diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/a.xml b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/a.xml new file mode 100644 index 0000000000..4a9a04235b --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/a.xml @@ -0,0 +1,66 @@ + + + ExternalToolsConfigWidget + + + + 0 + 0 + 433 + 296 + + + + + + + This list shows all the configured tools, represented by their menu text. + + + true + + + + + + + + + &Add + + + + + + + &Edit... + + + + + + + &Remove + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/bogus7spaces.md b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/bogus7spaces.md new file mode 100644 index 0000000000..99844a27aa --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/bogus7spaces.md @@ -0,0 +1,402 @@ +# xxxxxxxxxxxx xxxxxx xxxx + +0000-00-00 00:00-00:00 0:00 xxxx xxxxxxx + xxxxxxxx xxx/xxxx/xxxxxxx + 00:00-00:00 0:00 " + xxxxxxxx xxx/xxxx/xxxxxxx + xxxxx xxxx xxxxxxx xxxx +0:00 + +0000-00-00 00:00-00:00 0:00 xxxx xxxxxxx + xxxxx xxx xx_xxx_xxxxx +0:00 + +0:00 +0:00 +-> 0:00 + +--- + +0000-00-00 00:00-00:00 0:00 xxxx xxxxxxx + xxx xxx xxxxx xxxxxxxxxxxxxx + 00:00-00:00 0:00 " + xxxxx xxxxxxx xxx xxxxxx +0:00 + +0000-00-00 00:00-00:00 0:00 xxxx xxxxxxx + xxxx xxxxxxx xxxxxxxx + 00:00-00:00 0:00 " + xxxxx xxxxxxx xxxxxxxx + 00:00-00:00 0:00 " + 00:00-00:00 0:00 " + 00:00-00:00 0:00 " +0:00 + +0000-00-00 00:00-00:00 0:00 xxxx xxxxxxx + xxx xxxxxx/xxxxxxx xxxxxxxx xxx xxx xxxxxxx + xxxxx xxxx xxxxxxx xx xxxxxxx + 00:00-00:00 0:00 xxxx xxxxxxx + xxx xx +0:00 + +0000-00-00 00:00-00:00 0:00 xxxx xxxxxxx + xxxxxxxxxx xxx xxxxxxxx + 00:00-00:00 0:00 " + 00:00-00:00 0:00 " + xxxxx + 00:00-00:00 0:00 " +0:00 + +0000-00-00 00:00-00:00 0:00 xxxx xxxxxxx + 00:00-00:00 0:00 " + xxxxxxxx xxx xxxxxx xxxxxxx + 00:00-00:00 0:00 " + xxxx xxxxxxxx xxxx xxxxxx xxxx + 00:00-00:00 0:00 " + xxxx xxxxxx xx xxx +0:00 + +0:00 +0:00 +0:00 +0:00 +0:00 +-> 00:00 + +--- + +0000-00-00 00:00-00:00 0:00 xxxxxxxxx: xxxxx xxxxxxxxxxx xx xxxxxx xxxxxx + xxxxx://xxxxxx.xxx/xxxxxx/xxxxxxxxx/xxxx/514 +0:00 + +0000-00-00 00:00-00:00 0:00 xxxxxxxx: xxxxxxxxx xxxxxxx xx xxxxxxxxx xxxxx xxx xxxxxxx + xxxxx://xxxxxx.xxx.xxx/xxxxxxxxxx/xxxxxxxx/-/xxxxxx/1692 + 00:00-00:00 0:00 xxxx xxxxxxx + xxxxxx xxxxxxxxxxx xx xx xxxx + 00:00-00:00 0:00 xxxxxxxxx: xxxxx xxxxxxxxxxx xx xxxxxx xxxxxx + xxxxx://xxxxxx.xxx/xxxxxx/xxxxxxxxx/xxxx/514 +0:00 + +0000-00-00 00:00-00:00 0:00 xxxxxxxxx xxxxx/xxxxxxx xxxxxxx: xxxxxxxx +0:00 + +0000-00-00 00:00-00:00 0:00 xxxxxxxx: xxxxxxxxx xxxxxxx xx xxxxxxxxx xxxxx xxx xxxxxxx + 00:00-00:00 0:00 " + xxxxx xx #xxx-xxxxx + 00:00-00:00 0:00 xxxx xxxxxxx + xxxx xxxx xxx xxxx xxxxxx + 00:00-00:00 0:00 xxxxxxx: xxxxxxxxx xxxxxxx xx xxxxxxxxx xxxxx xxx xxxxxxx + 00:00-00:00 0:00 xxxx xxxxxxx + xxxx xxxx xxx xxxx xxxxxx + 00:00-00:00 0:00 " + 00:00-00:00 0:00 " +0:00 + +0:00 +0:00 +0:00 +0:00 +-> 00:00 + +--- + +0000-00-00 00:00-00:00 0:00 xxxxxxxxx: xxxxx xxxxxxxxxxx xx xxxxxx xxxxxx + xxxxx://xxxxxx.xxx/xxxxxx/xxxxxxxxx/xxxx/514 + 00:00-00:00 0:00 " + 00:00-00:00 0:00 xxxx xxxxxxx + xxxx xxxx xxx xxxxxxxxxxxxxx xxxxxx + 00:00-00:00 0:00 " + 00:00-00:00 0:00 xxxxxx +0:00 + +0000-00-00 00:00-00:00 0:00 xxxxxxxxx: xxx x-xxx-xx xxxxxxxxx + xx xx-xxxxxxxxx: xxxxxxx xxxxxxxxxxx xxxx xxxxxx x-xxx-xx xxxxxxxxx + xxxxx://xxxxxx.xxx/xxxxx/xx-xxxxxxxxx/xxxx/13 + xx xxxxxxx: xxx xxxxxxx-xxxxxxxx xxxxxxxxxxx xx xxxxxxxxxxx xxxx xxxxxx xxxxxxxxx + xxxxx://xxxxxx.xxx.xxx/xxxxxxx/xxxxxxx/-/xxxxx_xxxxxxxx/1163 + xxxxxx xxxxxx-xx-xxxxxxxxx-xxxxx.xx +0:00 + +0000-00-00 00:00-00:00 0:00 xxxxx: xxxxxxxx xxxxxxxxx xxxxx xxx xxxxxxx xxxxx + xxxxxx xx: xxxx xxxxxx 7x xx xxxxxx + xxxxx://xxxxxx.xxx.xxx/xxxxxxxxx/xxxxx/-/xxxxx_xxxxxxxx/147 + 00:00-00:00 0:00 " + 00:00-00:00 0:00 " + 00:00-00:00 0:00 " +0:00 + +0:00 +0:00 +0:00 +-> 0:00 + +--- + +0000-00-00 00:00-00:00 0:00 xxxxxxxxx / xxxxxxx xxxxx (xxxxxxx xxxxx xxxxxx) + 00:00-00:00 0:00 xxxxx: xxxxxxxx (xxxxxxx xxxxx xxxxxx) + 00:00-00:00 0:00 xxxx xxxxxxx + xxxx xxxx xxx xxxxxxxxxxxxxx xxxxxx +0:00 + +0000-00-00 00:00-00:00 0:00 xxxxxxxxx / xxxxxxx xxxxx + xxxxxx xx xxxx.xxx.xxx xxxxxx :/ + 00:00-00:00 0:00 xxxxxxxx: xxxxxxxxx xxxxxxx xx xxxxxxxxx xxxxx xxx xxxxxxx + xxxxx://xxxxxx.xxx.xxx/xxxxxxxxxx/xxxxxxxx/-/xxxxxx/1692 + xxxxxxxx 7xx.xxx xx xxx xxxxxx + 00:00-00:00 0:00 xxxxxxxxx / xxxxxxx xxxxx + xxxxxxxx xxx.xxx.xxxxxxx.xxxx xx xxxx.xxx.xxx + 00:00-00:00 0:00 xxxxxx + 00:00-00:00 0:00 xxxxxxxxx / xxxxxxx xxxxx + xxxxxxxx xxx.xxx.xxxxxxx.xxxx xx xxxx.xxx.xxx +0:00 + +0000-00-00 00:00-00:00 0:00 xxxxxxxxx / xxxxxxx xxxxx + xxxxxxx xxxxxxx + xxxxxx xxxx-xx515 xxxxx + xxxxx://xxxxxx.xxx.xxx/xxxxxxxx/xx-xxxxxx/-/xxxxx_xxxxxxxx/159 +0:00 + +0:00 +0:00 +0:00 +-> 0:00 + +## xxxxx + +0000-00-00 +[x] xxxxxxxxx -> xxx x-xxx-... xxxxxxx xx xxxxxxxxxx xxxxxx xxxxxx xxxx + [ ] xxxxxxx xxxxxxx xxxxx xxxxx xxxx xxxxxxxxx xxxx + [ ] xxxxxxx xx xxx xxxx-xx515 xxxxx + [ ] xxxxxxx xx xxxxxxxxxx xxxxxxx xxxxxxx xxxxxxxx + [ ] xxxx xxxxx xx +[ ] xxxx xxxxxxx xxxxx; xxxxx xxxxxxxxxxx xxxx + +xxx +[x] xxxx xxxxxxx xxxxxxx + [x] xxxxxxxxx xxxx + [x] xxxxx xxxxxxxxx/xxxxxxxxxxx + [x] xxxxxxx xxxx xx xxxxxxx + [x] xxxxxxx xxxx xxxx xxx/xxxx xxxx xxxx + [x] xxxxxx -> xxxxxxx (xxxxxxx) + [x] xxxxxxx -> xxxxxx (xxxxxxxx) + [x] xxxxxxxx xxx/xxxx/xxxxxxx + [x] xxxxxxxxx/xxxxxxxxxxxxxx xxxxxxxx: xxxxxx xxxxxx xxx xx_xxx_xxxxx xx x xxxxx xxxx xxxx (xxxxx://xxxxxx.xxx.xxx/xxxx/xx/xxxx/xxxxx.xx#xx_xxxxxx, xxxxx://xxxxxx.xxx.xxx/xxxx/xx/xxxxxxx/xx_xxxxx_xxxxxxxxxxxxxx.xxxx) + [ ] xx xxxxx xxxx xx xxxxxxx xx xxxxx xxxxxx xxx xxxxxxxxxxxx - xx xxx xxx'x xxxxxx xxxx xxxxxx xxx xxxxx'x xxxx xx xx xxxxxxx xxxxxx xxxxx - xxx xxxx xxxx xxx xxxxxxx xxxx xx xxx xxxxxxxxxxx xxxxxx xx xxxxxx xxxx xxxxxxxx xxxxxx'x xx xxxxxx xxxxxx. xxxx xxxxx xxxx xxxxx xx xx xxxxxxx xxxxxx xxxx x xxx256 xxxx xx xxx xxxxxxxx xxxxx xx xxxx. + [-] xxx xxxxxx xx xxxxx + [ ] xxxxxx xxxx + [x] xxxx xx xxxxx xxxxxxxxx xxxx xx_xxxxxx xxx xxx + "xxx xx xxxxx xx xxxxxxx xx xxxxx xx256 xxx xxxxxx xxxx x xxxxxxxxx xxxxxxx xxx. xxx xxxxxx xxxx xxx xxx xxxxx xx xxx xx xxx xxx'x xxxxxxx xx xxxxxxxxx, xx 5 xxxxxxx xx xx xxxxxxx xx xxxxxxxxx." + [ ] xxxxxxx xxx xxxxx xxxx xxxxxxx'x xxxxxx xxx + [ ] xxxxxxx xxxx + [ ] xxxxxxx xxx xxxxx xxxx xxxxxxx'x xxxxxx xxx + [x] xxxxxx & xxxxxx xxx xxxx xxxxxx xxx (xxxxx://xxxxxx.xxx.xxx/xxxxx/xxxxxxxxx/xxxx) + xxxxx://xxxx.xxx/xxxxxxx/xxxxx/ (-> xxxxx[xxxxxx]) + xx + xxxxx://xxxx.xxx/xxxxxxx/xxx/ + [x] xxxxxxxx xxxxxxxx xxxxxxx xx xxxx + [ ] xxxxxxxx xxxxxxxxxxx (xxx, xxx) xxxx + [x] xxx xx_xxx_xxxxx + [x] xxxxxx xxxx + [-] xxxxxxx xx_xxx_xxxxx xxxx xxxxxx xxx xx xxxxxxx xxx xxxxx xx xx xxxxxxx + [x] xxx xx_xxx_xxxxx xx xxxxxxx + [ ] xxx xxxx xx xxxxxxxx xxxxx xxxx xxx256 xxxxxx xx xxxxxxx + [-] xxx xxxx-xxxxxxxxx xx xxxxxxx xxxx xx_xxx_xxxxx xx xxx xx xxxxxxx + [x] xxxxxxx xxxx + [-] xxxxxxx xx_xxx_xxxxx + [x] xxxx xx_xxx_xxxxx + [-] xxxxx xxxxxxxxx xx xxxxxxx + [x] xxxxxxxx xxx xxx xxx'x xxxxxxx xxxx xxxxxx xxxxx xxx xx_xxx_xxxxx (xxxxx://xxxxxx.xxx.xxx/xxxx/xxx/xxxx.xx#xxx-xxx-xxxxxx-xxx) + [x] xxxxxx xxx xxxxxxxxxxx xx xx xxx xxx + [ ] xxxxx xxx xxx xxxxxxxxxxx? + +[ ] xxxxxxx -> xxx xxxxx xxx xxxxxx + [x] xxxxxxxx xx xxxxxxxxx xxxx xxxxxxxxx xxxx xx xxxxxxxx-xxxxxxxx-xxxxxxxx.xx xxxxx xx xxx xx xxxxxx xxxx xxxxxx xxxxxx-xxx (xxxx xx xxxxxxx xxxxxxxxx xx xxx) + [ ] xx xxxxxx xxxx xxx xxxxxxxx-*.xxx xxxx xx xxxxxxxx + [ ] xxxxxxx xx xxx x-xxxxx xxxxx (xxxxx://x-xxxxx.xxx/xx/xxxx/xxxxx_xx_x-xxxxx_xxx_xxxx/) + [ ] xxxxxxx xx xxxxxxx xxx xxxx + [x] xxxxx xxx xxxxxx xxxxxxx: + * xxxx xxxxx xxxxxx xx xxx xxxxx xx xxx xxxxx xxxxxxx xxxxx xxx xxxxx'xx (xx xxx xxxxxx xxxx) xx xxx xxxxxxxxx + [ ] xxxxxx: xxxx xxx xxx xx x xxxx -> xxx x xxxxxx xxxxxx + [ ] xxxxxx: xxxxxx xxx xxxxx xxxx (xx xxxxxxx xxxxxxx xxxx xxxx xxxxxxxxx?) + [ ] xxxxxx: xxx xxxxxxxx xxxxxxxxx xxx xxxxxxx `xxxxxxxxxxxx.xx` (xxx `xxxxxx-xxxxxxx-xxxxxxx/xxxxxxx`) + [ ] xxxxxxx xx xxxxxx xxxx + [ ] xxxxxxx xx xxxxxxx xxx xxxx + [x] xxxxx xxx xxxxxx xxxxxxx: + * xxxx xxxxxxxx xxxx xxxx + [ ] xxxxxx: xxx xxxxxxxx xxxxxxxxx xxx xxxxxxx `xxxxxx-xxxx-xxxx.xx` (xx xx `xxxxxx-xxxxxxx-xxxxxxx/xxxxxxx`) + [ ] xxxxx xxx xxxxxxx xxxxxxxxxxx xxxxxxx (xxxxx://xxxxxxxxx.xxxxxxx.xxx/xxxxx/xxx-xxxxxx) -> xxx xxxxxx + [x] xxxxx xxx xxxxx + [x] xxx xxxxxxxx xxx xxx xxxxxxxxx + [ ] xxx xxxxxxx xxxxxx xxxx xxxxx xxxx (xxxxxxx xx xxx'x xxxx xx xxxx xxxxxx xxx xxxxxxx xxx?) + [x] xxxx xx xxxxxxxx xxxxx xxxxxx xxxxxx xxx xxx xxxxxxx xxx + [ ] xxxxx xxx xxxxxx xxxxx://xxxxxxxxxx.xxxxxx.xxx/xxxxxxx-xxxxxxxxx/xxxxxxx_xxxxxxx?xx=xx + [x] xxx xxx xxxxxxxx (xxxxxxx xxxxxx xx xxx xxxx xxxxxxxx) + [ ] xxx xxx xxxxxxxxxx + [ ] xxx xxx xxxxxxxx (xxx xxx xxxxxxxxx xx xxxxxx xxxx) + [x] xxxxxx xxx + [x] xxxxxx xxx xx xxxxxx xxxx + +[ ] xxx xxxxxxx xxxxx xx xxxxxxxxx + [x] xxxx xxxxxxxx xxxx. xxxx xxxxxxx xxx xxxxx-xxxxxxxx xxxxxxxx + [ ] xxxxx xxxxx://xxxxxx.xxx/xxxxxx/xxxxxxxxx/xxxxxx/467 + [x] xxxx xx xxx xxxxxx xxxxxxxxx xxxxxxxxxx xxxxxx xxxxxx + [x] xxxxxxx xxxxx://xxxxxx.xxx/xxxxxx/xxxxxxxxx/xxxx/514 + [x] xxxxxxx xxx xxxxxxxx + +[ ] xxx xx xxxxxx xxx xxxxxx + [x] xxxxxxxxx xxxxxx-xxxxx xx + [ ] xxx xxxxxxxx + +[ ] xxx xx xxxxxx xxx xxxxxxx + +[ ] xxxxxxxxxx + [ ] xxxx xxx xx xx xxxxxxxx xxxxxxxxx + [ ] xxxxxxx xx xxxx + +[ ] xxxxxxxxxxxx xxxxxx + [x] xxx xxxxxxx + [ ] xxx xxxxxxx + +## xxxx + +[x] xxxxxx 5 xxx xxx xxxxxxx + [x] xxxxx xxxxx xxxxxx xxx xxx xxxxxx + [x] xxx xxxxx (xxxxx) xxxxx xx + [x] xxxx xxx xxx x.x. xx xxxxxxxx xxx xxxxxxxxxxxxxx xxxxx (xxx xxxxxx xxxxxxx, xxx xxx xxxxxxx, xxxx xx xxx xxxxxxxxxxx) + [x] xx xx xxx xxxxxxx + + +--- + +## xxxxxxx (xxxxx) + +### xxxxxxx xxxxxxxxxxxx xx xxxxxxxxx xxxxx +0:00 xxxxxxxxx: xxxxx xxxxxxxxxxx xx xxxxxx xxxxxx + xxxxx://xxxxxx.xxx/xxxxxx/xxxxxxxxx/xxxx/514 +0:00 xxxxxxxx: xxxxxxxxx xxxxxxx xx xxxxxxxxx xxxxx xxx xxxxxxx + xxxxx://xxxxxx.xxx.xxx/xxxxxxxxxx/xxxxxxxx/-/xxxxxx/1692 +0:00 xxxxxxxxx: xxxxx xxxxxxxxxxx xx xxxxxx xxxxxx + xxxxx://xxxxxx.xxx/xxxxxx/xxxxxxxxx/xxxx/514 +0:00 xxxxxxxxx xxxxx/xxxxxxx xxxxxxx: xxxxxxxx +0:00 xxxxxxxx: xxxxxxxxx xxxxxxx xx xxxxxxxxx xxxxx xxx xxxxxxx +0:00 " + xxxxx xx #xxx-xxxxx +0:00 xxxxxxx: xxxxxxxxx xxxxxxx xx xxxxxxxxx xxxxx xxx xxxxxxx + + +0:00 xxxxxxxxx: xxxxx xxxxxxxxxxx xx xxxxxx xxxxxx + xxxxx://xxxxxx.xxx/xxxxxx/xxxxxxxxx/xxxx/514 +0:00 " +0:00 xxxxxxxxx: xxx x-xxx-xx xxxxxxxxx + xx xx-xxxxxxxxx: xxxxxxx xxxxxxxxxxx xxxx xxxxxx x-xxx-xx xxxxxxxxx + xxxxx://xxxxxx.xxx/xxxxx/xx-xxxxxxxxx/xxxx/13 + xx xxxxxxx: xxx xxxxxxx-xxxxxxxx xxxxxxxxxxx xx xxxxxxxxxxx xxxx xxxxxx xxxxxxxxx + xxxxx://xxxxxx.xxx.xxx/xxxxxxx/xxxxxxx/-/xxxxx_xxxxxxxx/1163 + xxxxxx xxxxxx-xx-xxxxxxxxx-xxxxx.xx +0:00 xxxxx: xxxxxxxx xxxxxxxxx xxxxx xxx xxxxxxx xxxxx + xxxxxx xx: xxxx xxxxxx 7x xx xxxxxx + xxxxx://xxxxxx.xxx.xxx/xxxxxxxxx/xxxxx/-/xxxxx_xxxxxxxx/147 +0:00 " +0:00 " +0:00 " +0:00 xxxxxxxxx / xxxxxxx xxxxx (xxxxxxx xxxxx xxxxxx) +0:00 xxxxx: xxxxxxxx (xxxxxxx xxxxx xxxxxx) +0:00 xxxxxxxxx / xxxxxxx xxxxx + xxxxxx xx xxxx.xxx.xxx xxxxxx :/ +0:00 xxxxxxxx: xxxxxxxxx xxxxxxx xx xxxxxxxxx xxxxx xxx xxxxxxx + xxxxx://xxxxxx.xxx.xxx/xxxxxxxxxx/xxxxxxxx/-/xxxxxx/1692 + xxxxxxxx 7xx.xxx xx xxx xxxxxx +0:00 xxxxxxxxx / xxxxxxx xxxxx + xxxxxxxx xxx.xxx.xxxxxxx.xxxx xx xxxx.xxx.xxx +0:00 xxxxxx +0:00 xxxxxxxxx / xxxxxxx xxxxx + xxxxxxxx xxx.xxx.xxxxxxx.xxxx xx xxxx.xxx.xxx +0:00 xxxxxxxxx / xxxxxxx xxxxx + xxxxxxx xxxxxxx + xxxxxx xxxx-xx515 xxxxx + xxxxx://xxxxxx.xxx.xxx/xxxxxxxx/xx-xxxxxx/-/xxxxx_xxxxxxxx/159 + +----- +00:00 + +### xxxxxxx xxxxxxxxxxxx xx xxxxxx xxxx + + +----- +00:00 + +### xxxx xxxxxxx +0:00 xxxx xxxxxxx + xxxxxxxx xxx/xxxx/xxxxxxx +0:00 " + xxxxxxxx xxx/xxxx/xxxxxxx + xxxxx xxxx xxxxxxx xxxx +0:00 xxxx xxxxxxx + xxxxx xxx xx_xxx_xxxxx +0:00 xxxx xxxxxxx + xxx xxx xxxxx xxxxxxxxxxxxxx +0:00 " + xxxxx xxxxxxx xxx xxxxxx +0:00 xxxx xxxxxxx + xxxx xxxxxxx xxxxxxxx +0:00 " + xxxxx xxxxxxx xxxxxxxx +0:00 " +0:00 " +0:00 " +0:00 xxxx xxxxxxx + xxx xxxxxx/xxxxxxx xxxxxxxx xxx xxx xxxxxxx + xxxxx xxxx xxxxxxx xx xxxxxxx +0:00 xxxx xxxxxxx + xxx xx +0:00 xxxx xxxxxxx + xxxxxxxxxx xxx xxxxxxxx +0:00 " +0:00 " + xxxxx +0:00 " +0:00 xxxx xxxxxxx +0:00 " + xxxxxxxx xxx xxxxxx xxxxxxx +0:00 " + xxxx xxxxxxxx xxxx xxxxxx xxxx +0:00 " + xxxx xxxxxx xx xxx +0:00 xxxx xxxxxxx + xxxxxx xxxxxxxxxxx xx xx xxxx +0:00 xxxx xxxxxxx + xxxx xxxx xxx xxxx xxxxxx +0:00 xxxx xxxxxxx + xxxx xxxx xxx xxxx xxxxxx +0:00 " +0:00 " +0:00 xxxx xxxxxxx + xxxx xxxx xxx xxxxxxxxxxxxxx xxxxxx +0:00 " +0:00 xxxxxx +0:00 xxxx xxxxxxx + xxxx xxxx xxx xxxxxxxxxxxxxx xxxxxx + +----- +00:00 + +### xxxxxxxxx xx xxxxxx xxxxxxx xxxx xxxxxxx xx xxxxxx/xxxxxx + + +----- +00:00 + +### xxxxxxxxx + + +----- +00:00 + +### xxxxx + +00:00 -> 00:00 +00:00 -> 00:00 + +----- +00:00 -> 00:00 +===== diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/indentdetect_test.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/indentdetect_test.cpp new file mode 100644 index 0000000000..65cd80f8e1 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/indentdetect_test.cpp @@ -0,0 +1,66 @@ +/* + SPDX-FileCopyrightText: 2022 Waqar Ahmed + SPDX-License-Identifier: LGPL-2.0-or-later +*/ +#include "indentdetect_test.h" +#include "kateconfig.h" +#include "katedocument.h" +#include "kateindentdetecter.cpp" // HACK +#include "kateindentdetecter.h" + +#include +#include + +using namespace KTextEditor; + +QTEST_MAIN(IndentDetectTest) + +void IndentDetectTest::test_data() +{ + QString dir = QLatin1String(TEST_DATA_DIR) + QStringLiteral("/indent_detect/"); + + // The document + QTest::addColumn("docPath"); + QTest::addColumn("expected_useTabs"); + QTest::addColumn("expected_indentWidth"); + + QTest::addRow("2space") << QString(dir + QStringLiteral("2space.js")) << false << 2; + QTest::addRow("4space") << QString(dir + QStringLiteral("4space.cpp")) << false << 4; + QTest::addRow("tabs") << QString(dir + QStringLiteral("tab.c")) << true << 4; + QTest::addRow("this_file") << QString::fromUtf8(__FILE__) << false << 4; +} + +void IndentDetectTest::test() +{ + QFETCH(QString, docPath); + QFETCH(bool, expected_useTabs); + QFETCH(int, expected_indentWidth); + + DocumentPrivate doc; + doc.config()->setAutoDetectIndent(true); + doc.openUrl(QUrl::fromLocalFile(docPath)); + QVERIFY(!doc.isEmpty()); + + int actualIndentWidth = doc.config()->indentationWidth(); + bool actual_useTabs = !doc.config()->replaceTabsDyn(); + + QCOMPARE(actual_useTabs, expected_useTabs); + if (!expected_useTabs) { + QCOMPARE(actualIndentWidth, expected_indentWidth); + } +} + +void IndentDetectTest::bench() +{ + // kate document is fairly large, lets use it for benchmarking + const QString file = QString::fromLatin1(TEST_DATA_DIR) + QStringLiteral("../../src/document/katedocument.cpp"); + DocumentPrivate doc; + doc.openUrl(QUrl::fromLocalFile(file)); + QVERIFY(!doc.isEmpty()); + QVERIFY(QUrl::fromLocalFile(file).isValid()); + + QBENCHMARK { + KateIndentDetecter d(&doc); + d.detect(doc.config()->indentationWidth(), doc.config()->replaceTabsDyn()); + } +} diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/main_bad_1_space.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/main_bad_1_space.cpp new file mode 100644 index 0000000000..cd9ebe80e0 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/main_bad_1_space.cpp @@ -0,0 +1,12 @@ +int main(int argc, char **argv) +{ + /** + * function call + */ + exit(0); + + /** + * assignment + */ + int test = 4; +} diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/tab.c b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/tab.c new file mode 100644 index 0000000000..7744f0eb28 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/indent_detect/tab.c @@ -0,0 +1,18 @@ +#include + +typedef struct indent_result { + int use_spaces; + int indent_width; +} indent_result_t; + +int main() { + int i; + indent_result_t ir; + for (i = 0; i < 100; ++i) { + if (i == 4) + return ir.use_spaces; + else + return ir.indent_width; + } + return 0; +} diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/modelines.txt b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/modelines.txt new file mode 100644 index 0000000000..6872d541fa --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/modelines.txt @@ -0,0 +1 @@ +modeline test, see katedocument_test.cpp testModelines() diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/scripting/bug_317111.js b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/scripting/bug_317111.js new file mode 100644 index 0000000000..171030cfff --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/scripting/bug_317111.js @@ -0,0 +1,11 @@ +testCase('bug_317111', () => { + function defStyleNumWithInvalideCoordinate() { + document.defStyleNum(-1,0); + document.defStyleNum(0,-1); + document.defStyleNum(1000,0); + document.defStyleNum(0,1000); + document.defStyleNum(0,0); + } + config({blockSelection: false}); + cmd(defStyleNumWithInvalideCoordinate, 'blah blah\n', 'blah blah\n'); +}); diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/input/scripting/bug_317892.js b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/scripting/bug_317892.js new file mode 100644 index 0000000000..6b98b67b3d --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/input/scripting/bug_317892.js @@ -0,0 +1,53 @@ +/* + * Mark text to indicate which part is a comment or code. + */ +const labelize = function() { + const a = []; + const lines = document.lines(); + + let isComment = document.isComment(0, 0); + let isCode = document.isCode(0, 0); + + if (isCode) a.push('[Code]'); + if (isComment) a.push('[Comment]'); + + for (let line = 0; line < lines; ++line) { + const textLine = document.line(line); + const columns = document.lineLength(line); + for (let column = 0; column <= columns; ++column) { + if (isCode !== document.isCode(line, column)) { + a.push(isCode ? '[/Code]' : '[Code]'); + isCode = !isCode; + } + if (isComment !== document.isComment(line, column)) { + a.push(isComment ? '[/Comment]' : '[Comment]'); + isComment = !isComment; + } + a.push(textLine[column]); + } + a.push('\n'); + } + + if (isComment) a.push('[/Comment]'); + if (isCode) a.push('[/Code]'); + + document.setText(a.join('')); +}; + +testCase('bug_317892', () => { + config({ + syntax: 'xml', + selection: '', + blockSelection: false, + }); + cmd(labelize, `\ + + + + if this test passes, KateViewInternal's m_displayCursor is properly adapted. +void KateFoldingTest::testCrash367466() +{ + KTextEditor::DocumentPrivate doc; + + // we use only x to have equal width characters, else we fail for non-fixed width fonts + QString text = QStringLiteral( + "xxxx xxxx\n" + "\n" + "\n" + "xxxx xxx\n" + "xxxxx\n" + "xxxxx\n"); + doc.setText(text); + + // view must be visible... + const std::unique_ptr view{static_cast(doc.createView(nullptr))}; + view->show(); + view->resize(400, 300); + view->setCursorPosition(KTextEditor::Cursor(5, 2)); + QCOMPARE(view->cursorPosition(), KTextEditor::Cursor(5, 2)); + qint64 foldId = view->textFolding().newFoldingRange(KTextEditor::Range(0, 0, 3, 8)); + + view->textFolding().foldRange(foldId); + QVERIFY(view->textFolding().isLineVisible(0)); + QVERIFY(!view->textFolding().isLineVisible(1)); + QVERIFY(!view->textFolding().isLineVisible(2)); + QVERIFY(!view->textFolding().isLineVisible(3)); + QVERIFY(view->textFolding().isLineVisible(4)); + QVERIFY(view->textFolding().isLineVisible(5)); + + QCOMPARE(view->cursorPosition(), KTextEditor::Cursor(5, 2)); + view->up(); + QCOMPARE(view->cursorPosition(), KTextEditor::Cursor(4, 2)); +} + +void KateFoldingTest::testUnfoldingInImportFoldingRanges() +{ + DocumentPrivate doc; + const auto text = QStringLiteral( + "int f(bool one) {\n" + " if (one) {\n" + " return 1;\n" + " } else {\n" + " return 0;\n" + " }\n" + "}\n" + "\n" + "int g() {\n" + " return 123;\n" + "}\n"); + doc.setText(text); + + // view must be visible... + const std::unique_ptr view{static_cast(doc.createView(nullptr))}; + view->show(); + view->resize(400, 300); + + auto &textFolding = view->textFolding(); + + const auto addFoldedRange = [&textFolding](Range range, Kate::TextFolding::FoldingRangeFlags extraFlags = {}) { + textFolding.newFoldingRange(range, Kate::TextFolding::Folded | extraFlags); + }; + addFoldedRange(Range(0, 16, 6, 1)); // f() + addFoldedRange(Range(8, 8, 10, 1)); // g() + addFoldedRange(Range(1, 13, 3, 5), Kate::TextFolding::Persistent); // if + addFoldedRange(Range(3, 11, 5, 5)); // else + + textFolding.importFoldingRanges(QJsonDocument{}); + // TextFolding::importFoldingRanges() should remove all existing folding ranges + // - both top-level and nested - before importing new ones. + QCOMPARE(textFolding.debugDump(), QLatin1String("tree - folded ")); +} + +#include "moc_katefoldingtest.cpp" diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/katefoldingtest.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/katefoldingtest.h new file mode 100644 index 0000000000..dc4f280863 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/katefoldingtest.h @@ -0,0 +1,28 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2013 Dominik Haumann + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef KATE_FOLDING_TEST_H +#define KATE_FOLDING_TEST_H + +#include + +class KateFoldingTest : public QObject +{ + Q_OBJECT + +public Q_SLOTS: + void initTestCase(); + void cleanupTestCase(); + +private Q_SLOTS: + void testCrash311866(); + void testBug295632(); + void testCrash367466(); + void testUnfoldingInImportFoldingRanges(); +}; + +#endif // KATE_FOLDING_TEST_H diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/katemodemanager_benchmark.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/katemodemanager_benchmark.cpp new file mode 100644 index 0000000000..9c64464c34 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/katemodemanager_benchmark.cpp @@ -0,0 +1,52 @@ +/* + SPDX-FileCopyrightText: 2021 Igor Kushnir + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "katemodemanager_benchmark.h" + +#include + +#include +#include + +void KateModeManagerBenchmark::benchmarkWildcardsFind_data() +{ + wildcardsFindTestData(); +} + +void KateModeManagerBenchmark::benchmarkWildcardsFind() +{ + QFETCH(QString, fileName); + QFETCH(QString, fileTypeName); + + // Warm up and check correctness. + QCOMPARE(m_modeManager->wildcardsFind(fileName), fileTypeName); + + QBENCHMARK { + m_modeManager->wildcardsFind(fileName); + } +} + +void KateModeManagerBenchmark::benchmarkMimeTypesFind_data() +{ + mimeTypesFindTestData(); +} + +void KateModeManagerBenchmark::benchmarkMimeTypesFind() +{ + QFETCH(QString, mimeTypeName); + QFETCH(QString, fileTypeName); + + // Warm up and check correctness. + QCOMPARE(m_modeManager->mimeTypesFind(mimeTypeName), fileTypeName); + + QBENCHMARK { + m_modeManager->mimeTypesFind(mimeTypeName); + } +} + +QTEST_MAIN(KateModeManagerBenchmark) + +#include "moc_katemodemanager_benchmark.cpp" diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/katemodemanager_benchmark.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/katemodemanager_benchmark.h new file mode 100644 index 0000000000..602aebbe9e --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/katemodemanager_benchmark.h @@ -0,0 +1,22 @@ +/* + SPDX-FileCopyrightText: 2021 Igor Kushnir + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef KTEXTEDITOR_KATEMODEMANAGER_BENCHMARK_H +#define KTEXTEDITOR_KATEMODEMANAGER_BENCHMARK_H + +#include "katemodemanager_test_base.h" + +class KateModeManagerBenchmark : public KateModeManagerTestBase +{ + Q_OBJECT +private Q_SLOTS: + void benchmarkWildcardsFind_data(); + void benchmarkWildcardsFind(); + void benchmarkMimeTypesFind_data(); + void benchmarkMimeTypesFind(); +}; + +#endif // KTEXTEDITOR_KATEMODEMANAGER_BENCHMARK_H diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/katemodemanager_test.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/katemodemanager_test.cpp new file mode 100644 index 0000000000..480681dbcc --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/katemodemanager_test.cpp @@ -0,0 +1,42 @@ +/* + SPDX-FileCopyrightText: 2021 Igor Kushnir + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "katemodemanager_test.h" + +#include + +#include +#include + +void KateModeManagerTest::testWildcardsFind_data() +{ + wildcardsFindTestData(); +} + +void KateModeManagerTest::testWildcardsFind() +{ + QFETCH(QString, fileName); + QFETCH(QString, fileTypeName); + + QCOMPARE(m_modeManager->wildcardsFind(fileName), fileTypeName); +} + +void KateModeManagerTest::testMimeTypesFind_data() +{ + mimeTypesFindTestData(); +} + +void KateModeManagerTest::testMimeTypesFind() +{ + QFETCH(QString, mimeTypeName); + QFETCH(QString, fileTypeName); + + QCOMPARE(m_modeManager->mimeTypesFind(mimeTypeName), fileTypeName); +} + +QTEST_MAIN(KateModeManagerTest) + +#include "moc_katemodemanager_test.cpp" diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/katemodemanager_test.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/katemodemanager_test.h new file mode 100644 index 0000000000..7ba006997a --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/katemodemanager_test.h @@ -0,0 +1,22 @@ +/* + SPDX-FileCopyrightText: 2021 Igor Kushnir + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef KTEXTEDITOR_KATEMODEMANAGER_TEST_H +#define KTEXTEDITOR_KATEMODEMANAGER_TEST_H + +#include "katemodemanager_test_base.h" + +class KateModeManagerTest : public KateModeManagerTestBase +{ + Q_OBJECT +private Q_SLOTS: + void testWildcardsFind_data(); + void testWildcardsFind(); + void testMimeTypesFind_data(); + void testMimeTypesFind(); +}; + +#endif // KTEXTEDITOR_KATEMODEMANAGER_TEST_H diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/katemodemanager_test_base.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/katemodemanager_test_base.cpp new file mode 100644 index 0000000000..2c791716f0 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/katemodemanager_test_base.cpp @@ -0,0 +1,134 @@ +/* + SPDX-FileCopyrightText: 2021 Igor Kushnir + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "katemodemanager_test_base.h" + +#include + +#include +#include + +namespace +{ +struct FileTypeDataRow { + const char *dataTag; + const char *m_inputString; + const char *m_fileTypeName; + + QString inputString() const + { + return QString::fromUtf8(m_inputString); + } + QString fileTypeName() const + { + return QString::fromUtf8(m_fileTypeName); + } +}; +// The two tables below have been copied from syntax-highlighting:autotests/repository_test_base.cpp and adjusted: +// removed all except first definition/fileType names because only the first name is used in KTextEditor. +// The two versions of the tables should be kept in sync. + +// Additional adjustments to the syntax-highlighting version of fileTypesForFileNames table: +// 1) used the second, not first, definition/fileType name in the QRPG.ninja row because +// "ILERPG" < "Ninja" in KSyntaxHighlighting but "Sources/ILERPG" > "Other/Ninja" in KTextEditor. +// 2) used the second, not first, definition/fileType name in the qrpg*.tt row because +// "ILERPG" < "TT2" in KSyntaxHighlighting but "Sources/ILERPG" > "Markup/TT2" in KTextEditor. +constexpr FileTypeDataRow fileTypesForFileNames[] = { + {.dataTag = "empty", .m_inputString = "", .m_fileTypeName = ""}, + + {.dataTag = "*.tar.gz", .m_inputString = "noMatch.tar.gz", .m_fileTypeName = ""}, + {.dataTag = "No match", .m_inputString = "a_random#filename", .m_fileTypeName = ""}, + {.dataTag = "Long path, no match", .m_inputString = "/this/is/a/moderately/long/path/to/no-match", .m_fileTypeName = ""}, + {.dataTag = "Prefix in dir name", .m_inputString = "Kconfig/no_match", .m_fileTypeName = ""}, + + {.dataTag = "*.qml", .m_inputString = "/bla/foo.qml", .m_fileTypeName = "QML"}, + {.dataTag = "*.frag", .m_inputString = "flat.frag", .m_fileTypeName = "GLSL"}, + {.dataTag = "*.md", .m_inputString = "highPriority.md", .m_fileTypeName = "Markdown"}, + {.dataTag = "*.octave", .m_inputString = "lowPriority.octave", .m_fileTypeName = "Octave"}, + {.dataTag = "*.hats", .m_inputString = "sameLastLetterPattern.hats", .m_fileTypeName = "ATS"}, + + {.dataTag = "*.c", .m_inputString = "test.c", .m_fileTypeName = "C"}, + {.dataTag = "*.fs", .m_inputString = "test.fs", .m_fileTypeName = "FSharp"}, + {.dataTag = "*.m", .m_inputString = "/bla/foo.m", .m_fileTypeName = "Objective-C"}, + + {.dataTag = "Makefile", .m_inputString = "Makefile", .m_fileTypeName = "Makefile"}, + {.dataTag = "Path to Makefile", .m_inputString = "/some/path/to/Makefile", .m_fileTypeName = "Makefile"}, + {.dataTag = "Makefile.*", .m_inputString = "Makefile.am", .m_fileTypeName = "Makefile"}, + + {.dataTag = "not-Makefile.dic", .m_inputString = "not-Makefile.dic", .m_fileTypeName = "Hunspell Dictionary File"}, + {.dataTag = "*qmakefile.cpp", .m_inputString = "test_qmakefile.cpp", .m_fileTypeName = "C++"}, + {.dataTag = "*_makefile.mm", .m_inputString = "bench_makefile.mm", .m_fileTypeName = "Objective-C++"}, + + {.dataTag = "xorg.conf", .m_inputString = "/etc/literal-pattern/xorg.conf", .m_fileTypeName = "x.org Configuration"}, + {.dataTag = ".profile", .m_inputString = "2-literal-patterns/.profile", .m_fileTypeName = "Bash"}, + + {.dataTag = "Config.*", .m_inputString = "Config.beginning", .m_fileTypeName = "Kconfig"}, + {.dataTag = "usr.libexec.*", .m_inputString = "usr.libexec.", .m_fileTypeName = "AppArmor Security Profile"}, + {.dataTag = "Jam*", .m_inputString = "Jam-beginning-no-dot", .m_fileTypeName = "Jam"}, + {.dataTag = "usr.li-*.ch", .m_inputString = "usr.li-many-partial-prefix-matches.ch", .m_fileTypeName = "xHarbour"}, + {.dataTag = "QRPG*.*", .m_inputString = "QRPG1u4[+.unusual", .m_fileTypeName = "ILERPG"}, + + {.dataTag = "*patch", .m_inputString = "no-dot-before-ending~patch", .m_fileTypeName = "Diff"}, + {.dataTag = "*.cmake.in", .m_inputString = "two-dots-after-asterisk.cmake.in", .m_fileTypeName = "CMake"}, + {.dataTag = "*.html.mst", .m_inputString = "two-dots-priority!=0.html.mst", .m_fileTypeName = "Mustache/Handlebars (HTML)"}, + + {.dataTag = "*.desktop.cmake", .m_inputString = "2_suffixes.desktop.cmake", .m_fileTypeName = ".desktop"}, + {.dataTag = "*.per.err", .m_inputString = "2_suffixes-but-one-a-better-match.per.err", .m_fileTypeName = "4GL"}, + {.dataTag = "*.xml.eex", .m_inputString = "2_suffixes-one-lang.xml.eex", .m_fileTypeName = "Elixir/EEx"}, + {.dataTag = "fishd.*.fish", .m_inputString = "fishd.prefix,suffix=one-lang.fish", .m_fileTypeName = "Fish"}, + + {.dataTag = "usr.bin.*.ftl", .m_inputString = "usr.bin.heterogenousPatternMatch.ftl", .m_fileTypeName = "AppArmor Security Profile"}, + {.dataTag = "Doxyfile.*.pro", .m_inputString = "Doxyfile.heterogenous.Pattern-Match.pro", .m_fileTypeName = "QMake"}, + {.dataTag = "Kconfig*.ml", .m_inputString = "KconfigHeterogenous_pattern_match.ml", .m_fileTypeName = "Objective Caml"}, + {.dataTag = "snap-confine.*.html.rac", .m_inputString = "snap-confine.2.-higher-priority.html.rac", .m_fileTypeName = "Mustache/Handlebars (HTML)"}, + {.dataTag = "file_contexts_*.fq.gz", .m_inputString = "file_contexts_prefix-higher-priority.fq.gz", .m_fileTypeName = "SELinux File Contexts"}, + {.dataTag = "QRPG*.ninja", .m_inputString = "QRPG.ninja", .m_fileTypeName = "Ninja"}, + {.dataTag = "qrpg*.tt", .m_inputString = "qrpgTwoUnusualPatterns.tt", .m_fileTypeName = "TT2"}, + {.dataTag = "qrpg*.cl", .m_inputString = "qrpg$heterogenous~pattern&match.cl", .m_fileTypeName = "OpenCL"}, + {.dataTag = ".gitignore*.tt*.textile", .m_inputString = ".gitignoreHeterogenous3.tt.textile", .m_fileTypeName = "Textile"}, +}; + +constexpr FileTypeDataRow fileTypesForMimeTypeNames[] = { + {.dataTag = "empty", .m_inputString = "", .m_fileTypeName = ""}, + + {.dataTag = "Nonexistent MIME type", .m_inputString = "text/nonexistent-mt", .m_fileTypeName = ""}, + {.dataTag = "No match", .m_inputString = "application/x-bzip-compressed-tar", .m_fileTypeName = ""}, + + {.dataTag = "High priority", .m_inputString = "text/rust", .m_fileTypeName = "Rust"}, + {.dataTag = "Negative priority", .m_inputString = "text/octave", .m_fileTypeName = "Octave"}, + + {.dataTag = "Multiple types match", .m_inputString = "text/x-chdr", .m_fileTypeName = "C++"}, +}; + +template +void addFileTypeDataRows(const FileTypeDataRow (&array)[size]) +{ + for (const auto &row : array) { + QTest::newRow(row.dataTag) << row.inputString() << row.fileTypeName(); + } +} +} // unnamed namespace + +KateModeManagerTestBase::KateModeManagerTestBase() + : m_modeManager{KTextEditor::EditorPrivate::self()->modeManager()} +{ +} + +void KateModeManagerTestBase::wildcardsFindTestData() +{ + QTest::addColumn("fileName"); + QTest::addColumn("fileTypeName"); + addFileTypeDataRows(fileTypesForFileNames); +} + +void KateModeManagerTestBase::mimeTypesFindTestData() +{ + QTest::addColumn("mimeTypeName"); + QTest::addColumn("fileTypeName"); + addFileTypeDataRows(fileTypesForMimeTypeNames); +} + +#include "moc_katemodemanager_test_base.cpp" diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/katemodemanager_test_base.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/katemodemanager_test_base.h new file mode 100644 index 0000000000..87070f0685 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/katemodemanager_test_base.h @@ -0,0 +1,26 @@ +/* + SPDX-FileCopyrightText: 2021 Igor Kushnir + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef KTEXTEDITOR_KATEMODEMANAGER_TEST_BASE_H +#define KTEXTEDITOR_KATEMODEMANAGER_TEST_BASE_H + +#include + +class KateModeManager; + +class KateModeManagerTestBase : public QObject +{ + Q_OBJECT +protected: + KateModeManagerTestBase(); + + void wildcardsFindTestData(); + void mimeTypesFindTestData(); + + const KateModeManager *const m_modeManager; +}; + +#endif // KTEXTEDITOR_KATEMODEMANAGER_TEST_BASE_H diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/katetextbuffertest.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/katetextbuffertest.cpp new file mode 100644 index 0000000000..903e96ebb6 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/katetextbuffertest.cpp @@ -0,0 +1,677 @@ +/* + This file is part of the Kate project. + SPDX-FileCopyrightText: 2010 Christoph Cullmann + SPDX-FileCopyrightText: 2010-2018 Dominik Haumann + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include + +#include "katetextbuffertest.h" +#include "katebuffer.h" +#include "katedocument.h" +#include "katetextfolding.h" +#include + +#include + +QTEST_MAIN(KateTextBufferTest) + +KateTextBufferTest::KateTextBufferTest() + : QObject() +{ + QStandardPaths::setTestModeEnabled(true); +} + +KateTextBufferTest::~KateTextBufferTest() +{ +} + +void KateTextBufferTest::basicBufferTest() +{ + // construct an empty text buffer + KTextEditor::DocumentPrivate doc; + Kate::TextBuffer &buffer = doc.buffer(); + + // one line per default + QVERIFY(buffer.lines() == 1); + QVERIFY(buffer.text() == QString()); + + // FIXME: use QTestLib macros for checking the correct state + // start editing + buffer.startEditing(); + + // end editing + buffer.finishEditing(); +} + +void KateTextBufferTest::wrapLineTest() +{ + // construct an empty text buffer + KTextEditor::DocumentPrivate doc; + Kate::TextBuffer &buffer = doc.buffer(); + + // wrap first empty line -> we should have two empty lines + buffer.startEditing(); + buffer.wrapLine(KTextEditor::Cursor(0, 0)); + buffer.finishEditing(); + buffer.debugPrint(QStringLiteral("Two empty lines")); + QVERIFY(buffer.text() == QLatin1String("\n")); + + // unwrap again -> only one empty line + buffer.startEditing(); + buffer.unwrapLine(1); + buffer.finishEditing(); + + // print debug + buffer.debugPrint(QStringLiteral("Empty Buffer")); + QVERIFY(buffer.text() == QString()); +} + +void KateTextBufferTest::insertRemoveTextTest() +{ + // construct an empty text buffer + KTextEditor::DocumentPrivate doc; + Kate::TextBuffer &buffer = doc.buffer(); + + // wrap first line + buffer.startEditing(); + buffer.wrapLine(KTextEditor::Cursor(0, 0)); + buffer.finishEditing(); + buffer.debugPrint(QStringLiteral("Two empty lines")); + QVERIFY(buffer.text() == QLatin1String("\n")); + + // remember second line + Kate::TextLine second = buffer.line(1); + + // unwrap second line + buffer.startEditing(); + buffer.unwrapLine(1); + buffer.finishEditing(); + buffer.debugPrint(QStringLiteral("One empty line")); + QVERIFY(buffer.text() == QString()); + + // second text line should be still there + // const QString &secondText = second->text (); + // QVERIFY (secondText == "") + + // insert text + buffer.startEditing(); + buffer.insertText(KTextEditor::Cursor(0, 0), QStringLiteral("testremovetext")); + buffer.finishEditing(); + buffer.debugPrint(QStringLiteral("One line")); + QVERIFY(buffer.text() == QLatin1String("testremovetext")); + + // remove text + buffer.startEditing(); + buffer.removeText(KTextEditor::Range(KTextEditor::Cursor(0, 4), KTextEditor::Cursor(0, 10))); + buffer.finishEditing(); + buffer.debugPrint(QStringLiteral("One line")); + QVERIFY(buffer.text() == QLatin1String("testtext")); + + // wrap text + buffer.startEditing(); + buffer.wrapLine(KTextEditor::Cursor(0, 2)); + buffer.finishEditing(); + buffer.debugPrint(QStringLiteral("Two line")); + QVERIFY(buffer.text() == QLatin1String("te\nsttext")); + + // unwrap text + buffer.startEditing(); + buffer.unwrapLine(1); + buffer.finishEditing(); + buffer.debugPrint(QStringLiteral("One line")); + QVERIFY(buffer.text() == QLatin1String("testtext")); +} + +void KateTextBufferTest::cursorTest() +{ + // last buffer content, for consistence checks + QString lastBufferContent; + + // construct an empty text buffer + KTextEditor::DocumentPrivate doc; + Kate::TextBuffer &buffer = doc.buffer(); + + // wrap first line + buffer.startEditing(); + buffer.insertText(KTextEditor::Cursor(0, 0), QStringLiteral("sfdfjdsklfjlsdfjlsdkfjskldfjklsdfjklsdjkfl")); + buffer.wrapLine(KTextEditor::Cursor(0, 8)); + buffer.wrapLine(KTextEditor::Cursor(1, 8)); + buffer.wrapLine(KTextEditor::Cursor(2, 8)); + buffer.finishEditing(); + buffer.debugPrint(QStringLiteral("Cursor buffer")); + + // construct cursor + std::unique_ptr cursor1{doc.newMovingCursor(KTextEditor::Cursor(0, 0), KTextEditor::MovingCursor::MoveOnInsert)}; + QVERIFY(cursor1->toCursor() == KTextEditor::Cursor(0, 0)); + // printf ("cursor %d, %d\n", cursor1->line(), cursor1->column()); + + // insert text + buffer.startEditing(); + buffer.insertText(KTextEditor::Cursor(0, 0), QStringLiteral("hallo")); + buffer.finishEditing(); + buffer.debugPrint(QStringLiteral("Cursor buffer")); + + // printf ("cursor %d, %d\n", cursor1->line(), cursor1->column()); + QVERIFY(cursor1->toCursor() == KTextEditor::Cursor(0, 5)); + + // remove text + buffer.startEditing(); + buffer.removeText(KTextEditor::Range(KTextEditor::Cursor(0, 4), KTextEditor::Cursor(0, 10))); + buffer.finishEditing(); + buffer.debugPrint(QStringLiteral("Cursor buffer")); + + // printf ("cursor %d, %d\n", cursor1->line(), cursor1->column()); + QVERIFY(cursor1->toCursor() == KTextEditor::Cursor(0, 4)); + + // wrap line + buffer.startEditing(); + buffer.wrapLine(KTextEditor::Cursor(0, 3)); + buffer.finishEditing(); + buffer.debugPrint(QStringLiteral("Cursor buffer")); + + // printf ("cursor %d, %d\n", cursor1->line(), cursor1->column()); + QVERIFY(cursor1->toCursor() == KTextEditor::Cursor(1, 1)); + + // unwrap line + buffer.startEditing(); + buffer.unwrapLine(1); + buffer.finishEditing(); + buffer.debugPrint(QStringLiteral("Cursor buffer")); + + // printf ("cursor %d, %d\n", cursor1->line(), cursor1->column()); + QVERIFY(cursor1->toCursor() == KTextEditor::Cursor(0, 4)); + + // remember content + lastBufferContent = buffer.text(); + // verify content + QVERIFY(lastBufferContent == buffer.text()); +} + +void KateTextBufferTest::foldingTest() +{ + // construct an empty text buffer & folding info + KTextEditor::DocumentPrivate doc; + KateBuffer &buffer = doc.buffer(); + Kate::TextFolding folding(buffer); + + // insert some text + buffer.startEditing(); + for (int i = 0; i < 100; ++i) { + buffer.insertText(KTextEditor::Cursor(i, 0), QStringLiteral("1234567890")); + if (i < 99) { + buffer.wrapLine(KTextEditor::Cursor(i, 10)); + } + } + buffer.finishEditing(); + QVERIFY(buffer.lines() == 100); + + // starting with empty folding! + folding.debugPrint(QStringLiteral("Empty Folding")); + QVERIFY(folding.debugDump() == QLatin1String("tree - folded ")); + + // check visibility + QVERIFY(folding.isLineVisible(0)); + QVERIFY(folding.isLineVisible(99)); + + // all visible + QVERIFY(folding.visibleLines() == 100); + + // we shall be able to insert new range + QVERIFY(folding.newFoldingRange(KTextEditor::Range(KTextEditor::Cursor(5, 0), KTextEditor::Cursor(10, 0))) == 0); + + // we shall have now exactly one range toplevel, that is not folded! + folding.debugPrint(QStringLiteral("One Toplevel Fold")); + QVERIFY(folding.debugDump() == QLatin1String("tree [5:0 10:0] - folded ")); + + // fold the range! + QVERIFY(folding.foldRange(0)); + + folding.debugPrint(QStringLiteral("One Toplevel Fold - Folded")); + QVERIFY(folding.debugDump() == QLatin1String("tree [5:0 f 10:0] - folded [5:0 f 10:0]")); + + // check visibility + QVERIFY(folding.isLineVisible(5)); + for (int i = 6; i <= 10; ++i) { + QVERIFY(!folding.isLineVisible(i)); + } + QVERIFY(folding.isLineVisible(11)); + + // 5 lines are hidden + QVERIFY(folding.visibleLines() == (100 - 5)); + + // check line mapping + QVERIFY(folding.visibleLineToLine(5) == 5); + for (int i = 6; i <= 50; ++i) { + QVERIFY(folding.visibleLineToLine(i) == (i + 5)); + } + + // there shall be one range starting at 5 + QList forLine = folding.foldingRangesStartingOnLine(5); + QVERIFY(forLine.size() == 1); + QVERIFY(forLine[0].id == 0); + QVERIFY(forLine[0].flags & Kate::TextFolding::Folded); + + // we shall be able to insert new range + QVERIFY(folding.newFoldingRange(KTextEditor::Range(KTextEditor::Cursor(20, 0), KTextEditor::Cursor(30, 0)), Kate::TextFolding::Folded) == 1); + + // we shall have now exactly two range toplevel + folding.debugPrint(QStringLiteral("Two Toplevel Folds")); + QVERIFY(folding.debugDump() == QLatin1String("tree [5:0 f 10:0] [20:0 f 30:0] - folded [5:0 f 10:0] [20:0 f 30:0]")); + + // check visibility + QVERIFY(folding.isLineVisible(5)); + for (int i = 6; i <= 10; ++i) { + QVERIFY(!folding.isLineVisible(i)); + } + QVERIFY(folding.isLineVisible(11)); + + QVERIFY(folding.isLineVisible(20)); + for (int i = 21; i <= 30; ++i) { + QVERIFY(!folding.isLineVisible(i)); + } + QVERIFY(folding.isLineVisible(31)); + + // 15 lines are hidden + QVERIFY(folding.visibleLines() == (100 - 5 - 10)); + + // check line mapping + QVERIFY(folding.visibleLineToLine(5) == 5); + for (int i = 6; i <= 15; ++i) { + QVERIFY(folding.visibleLineToLine(i) == (i + 5)); + } + for (int i = 16; i <= 50; ++i) { + QVERIFY(folding.visibleLineToLine(i) == (i + 15)); + } + + // check line mapping + QVERIFY(folding.lineToVisibleLine(5) == 5); + for (int i = 11; i <= 20; ++i) { + QVERIFY(folding.lineToVisibleLine(i) == (i - 5)); + } + for (int i = 31; i <= 40; ++i) { + QVERIFY(folding.lineToVisibleLine(i) == (i - 15)); + } + + // there shall be one range starting at 20 + forLine = folding.foldingRangesStartingOnLine(20); + QVERIFY(forLine.size() == 1); + QVERIFY(forLine[0].id == 1); + QVERIFY(forLine[0].flags & Kate::TextFolding::Folded); + + // this shall fail to be inserted, as it badly overlaps with the first range! + QVERIFY(folding.newFoldingRange(KTextEditor::Range(KTextEditor::Cursor(6, 0), KTextEditor::Cursor(15, 0)), Kate::TextFolding::Folded) == -1); + + // this shall fail to be inserted, as it badly overlaps with the second range! + QVERIFY(folding.newFoldingRange(KTextEditor::Range(KTextEditor::Cursor(15, 0), KTextEditor::Cursor(25, 0)), Kate::TextFolding::Folded) == -1); + + // we shall still have now exactly two range toplevel + folding.debugPrint(QStringLiteral("Still Two Toplevel Folds")); + QVERIFY(folding.debugDump() == QLatin1String("tree [5:0 f 10:0] [20:0 f 30:0] - folded [5:0 f 10:0] [20:0 f 30:0]")); + + // still 15 lines are hidden + QVERIFY(folding.visibleLines() == (100 - 5 - 10)); + + // we shall be able to insert new range, should lead to nested folds! + QVERIFY(folding.newFoldingRange(KTextEditor::Range(KTextEditor::Cursor(15, 0), KTextEditor::Cursor(35, 0)), Kate::TextFolding::Folded) == 2); + + // we shall have now exactly two range toplevel and one embedded fold + folding.debugPrint(QStringLiteral("Two Toplevel Folds, One Nested Fold")); + QVERIFY(folding.debugDump() == QLatin1String("tree [5:0 f 10:0] [15:0 f [20:0 f 30:0] 35:0] - folded [5:0 f 10:0] [15:0 f 35:0]")); + + // 25 lines are hidden + QVERIFY(folding.visibleLines() == (100 - 5 - 20)); + + // check line mapping + QVERIFY(folding.lineToVisibleLine(5) == 5); + for (int i = 11; i <= 15; ++i) { + QVERIFY(folding.lineToVisibleLine(i) == (i - 5)); + } + + // special case: hidden lines, should fall ack to last visible one! + for (int i = 16; i <= 35; ++i) { + QVERIFY(folding.lineToVisibleLine(i) == 10); + } + + for (int i = 36; i <= 40; ++i) { + QVERIFY(folding.lineToVisibleLine(i) == (i - 25)); + } + + // we shall be able to insert new range, should lead to nested folds! + QVERIFY(folding.newFoldingRange(KTextEditor::Range(KTextEditor::Cursor(0, 0), KTextEditor::Cursor(50, 0)), Kate::TextFolding::Folded) == 3); + + // we shall have now exactly one range toplevel and many embedded fold + folding.debugPrint(QStringLiteral("One Toplevel + Embedded Folds")); + QVERIFY(folding.debugDump() == QLatin1String("tree [0:0 f [5:0 f 10:0] [15:0 f [20:0 f 30:0] 35:0] 50:0] - folded [0:0 f 50:0]")); + + // there shall still be one range starting at 20 + forLine = folding.foldingRangesStartingOnLine(20); + QVERIFY(forLine.size() == 1); + QVERIFY(forLine[0].id == 1); + QVERIFY(forLine[0].flags & Kate::TextFolding::Folded); + + // add more regions starting at 20 + QVERIFY(folding.newFoldingRange(KTextEditor::Range(KTextEditor::Cursor(20, 5), KTextEditor::Cursor(24, 0)), Kate::TextFolding::Folded) == 4); + QVERIFY(folding.newFoldingRange(KTextEditor::Range(KTextEditor::Cursor(20, 3), KTextEditor::Cursor(25, 0)), Kate::TextFolding::Folded) == 5); + folding.debugPrint(QStringLiteral("More ranges at 20")); + + // there shall still be three ranges starting at 20 + forLine = folding.foldingRangesStartingOnLine(20); + QVERIFY(forLine.size() == 3); + QVERIFY(forLine[0].id == 1); + QVERIFY(forLine[0].flags & Kate::TextFolding::Folded); + QVERIFY(forLine[1].id == 5); + QVERIFY(forLine[1].flags & Kate::TextFolding::Folded); + QVERIFY(forLine[2].id == 4); + QVERIFY(forLine[2].flags & Kate::TextFolding::Folded); + + // 50 lines are hidden + QVERIFY(folding.visibleLines() == (100 - 50)); + + // save state + QJsonDocument folds = folding.exportFoldingRanges(); + QString textDump = folding.debugDump(); + + // clear folds + folding.clear(); + QVERIFY(folding.debugDump() == QLatin1String("tree - folded ")); + + // restore state + folding.importFoldingRanges(folds); + QCOMPARE(folding.debugDump(), textDump); +} + +void KateTextBufferTest::nestedFoldingTest() +{ + // construct an empty text buffer & folding info + KTextEditor::DocumentPrivate doc; + Kate::TextBuffer &buffer = doc.buffer(); + Kate::TextFolding folding(buffer); + + // insert two nested folds in 5 lines + buffer.startEditing(); + for (int i = 0; i < 4; ++i) { + buffer.wrapLine(KTextEditor::Cursor(0, 0)); + } + buffer.finishEditing(); + + QVERIFY(buffer.lines() == 5); + + // folding for line 1 + QVERIFY(folding.newFoldingRange(KTextEditor::Range(KTextEditor::Cursor(0, 0), KTextEditor::Cursor(3, 0)), Kate::TextFolding::Folded) == 0); + QVERIFY(folding.newFoldingRange(KTextEditor::Range(KTextEditor::Cursor(1, 0), KTextEditor::Cursor(2, 0)), Kate::TextFolding::Folded) == 1); + + QVERIFY(folding.foldRange(1)); + QVERIFY(folding.foldRange(0)); + + QVERIFY(folding.unfoldRange(0)); + QVERIFY(folding.unfoldRange(1)); +} + +void KateTextBufferTest::saveFileInUnwritableFolder() +{ + // create temp dir and get file name inside + QTemporaryDir dir; + QVERIFY(dir.isValid()); + const QString folder_name = dir.path(); + const QString file_path = folder_name + QLatin1String("/foo"); + + QFile f(file_path); + QVERIFY(f.open(QIODevice::WriteOnly | QIODevice::Truncate)); + f.write("1234567890"); + QVERIFY(f.flush()); + f.close(); + + QFile::setPermissions(folder_name, QFile::ExeOwner); + + KTextEditor::DocumentPrivate doc; + Kate::TextBuffer &buffer = doc.buffer(); + buffer.setTextCodec(QStringLiteral("UTF-8")); + buffer.setFallbackTextCodec(QStringLiteral("UTF-8")); + bool a; + bool b; + int c; + buffer.load(file_path, a, b, c, true); + buffer.clear(); + buffer.startEditing(); + buffer.insertText(KTextEditor::Cursor(0, 0), QStringLiteral("ABC")); + buffer.finishEditing(); + buffer.save(file_path); + + f.open(QIODevice::ReadOnly); + QCOMPARE(f.readAll(), QByteArray("ABC")); + f.close(); + + QFile::setPermissions(folder_name, QFile::WriteOwner | QFile::ExeOwner); + QVERIFY(f.remove()); + QVERIFY(dir.remove()); +} + +void KateTextBufferTest::lineLengthLimit() +{ + // create temp dir and get file name inside + QTemporaryDir dir; + QVERIFY(dir.isValid()); + const QString file_path = dir.path() + QLatin1String("/foo"); + + { + { + // create some 'long' lines + QFile f(file_path); + QVERIFY(f.open(QIODevice::WriteOnly | QIODevice::Truncate)); + f.write("0123456789\n0123456 789\n01234 56789"); + QVERIFY(f.flush()); + } + + // load with long line limit 8 and inspect results + KTextEditor::DocumentPrivate doc; + Kate::TextBuffer buffer(&doc, true); + buffer.setTextCodec(QStringLiteral("UTF-8")); + buffer.setFallbackTextCodec(QStringLiteral("UTF-8")); + buffer.setLineLengthLimit(8); + bool encodingErrors = false; + bool tooLongLinesWrapped = false; + int longestLineLoaded = 0; + buffer.load(file_path, encodingErrors, tooLongLinesWrapped, longestLineLoaded, true); + QVERIFY(!encodingErrors); + QVERIFY(tooLongLinesWrapped); + QCOMPARE(longestLineLoaded, 11); + QCOMPARE(buffer.lines(), 6); + QCOMPARE(buffer.line(0).text(), QLatin1String("01234567")); + QCOMPARE(buffer.line(1).text(), QLatin1String("89")); + QCOMPARE(buffer.line(2).text(), QLatin1String("0123456 ")); + QCOMPARE(buffer.line(3).text(), QLatin1String("789")); + QCOMPARE(buffer.line(4).text(), QLatin1String("01234 56")); + QCOMPARE(buffer.line(5).text(), QLatin1String("789")); + } + + { + { + // create one 'long' lines that are larger then the KATE_FILE_LOADER_BS size + QFile f(file_path); + QVERIFY(f.open(QIODevice::WriteOnly | QIODevice::Truncate)); + f.write(QByteArray(256 * 1024 * 10, 'C')); + f.write("AAA"); + QVERIFY(f.flush()); + } + + // load with long line limit 8 and inspect results + KTextEditor::DocumentPrivate doc; + Kate::TextBuffer buffer(&doc, true); + buffer.setTextCodec(QStringLiteral("UTF-8")); + buffer.setFallbackTextCodec(QStringLiteral("UTF-8")); + buffer.setLineLengthLimit(8); + bool encodingErrors = false; + bool tooLongLinesWrapped = false; + int longestLineLoaded = 0; + buffer.load(file_path, encodingErrors, tooLongLinesWrapped, longestLineLoaded, true); + QVERIFY(!encodingErrors); + QVERIFY(tooLongLinesWrapped); + QCOMPARE(buffer.lines(), 327681); + for (int i = 0; i < 327680; ++i) { + QCOMPARE(buffer.line(i).text(), QLatin1String("CCCCCCCC")); + } + QCOMPARE(buffer.line(327680).text(), QLatin1String("AAA")); + } + + { + { + // create some 'long' lines that are larger then the KATE_FILE_LOADER_BS size + QFile f(file_path); + QVERIFY(f.open(QIODevice::WriteOnly | QIODevice::Truncate)); + f.write("0123456789\n0123456 789\n"); + f.write(QByteArray(256 * 1024 * 10, 'C')); + f.write("AAA"); + QVERIFY(f.flush()); + } + + // load with long line limit 8 and inspect results + KTextEditor::DocumentPrivate doc; + Kate::TextBuffer buffer(&doc, true); + buffer.setTextCodec(QStringLiteral("UTF-8")); + buffer.setFallbackTextCodec(QStringLiteral("UTF-8")); + buffer.setLineLengthLimit(8); + bool encodingErrors = false; + bool tooLongLinesWrapped = false; + int longestLineLoaded = 0; + buffer.load(file_path, encodingErrors, tooLongLinesWrapped, longestLineLoaded, true); + QVERIFY(!encodingErrors); + QVERIFY(tooLongLinesWrapped); + QCOMPARE(buffer.lines(), 327685); + QCOMPARE(buffer.line(0).text(), QLatin1String("01234567")); + QCOMPARE(buffer.line(1).text(), QLatin1String("89")); + QCOMPARE(buffer.line(2).text(), QLatin1String("0123456 ")); + QCOMPARE(buffer.line(3).text(), QLatin1String("789")); + for (int i = 4; i < 327684; ++i) { + QCOMPARE(buffer.line(i).text(), QLatin1String("CCCCCCCC")); + } + QCOMPARE(buffer.line(327684).text(), QLatin1String("AAA")); + } + + { + { + // create file that did trigger hang of bug 486195 + QFile f(file_path); + QVERIFY(f.open(QIODevice::WriteOnly | QIODevice::Truncate)); + f.write(QByteArray(256 * 1000, (char)-1)); + QVERIFY(f.flush()); + } + + // load with long line limit and inspect results + KTextEditor::DocumentPrivate doc; + Kate::TextBuffer buffer(&doc, true); + buffer.setTextCodec(QStringLiteral("UTF-8")); + buffer.setFallbackTextCodec(QString::fromUtf8(QStringConverter::nameForEncoding(QStringConverter::Latin1))); + buffer.setLineLengthLimit(10000); + bool encodingErrors = false; + bool tooLongLinesWrapped = false; + int longestLineLoaded = 0; + buffer.load(file_path, encodingErrors, tooLongLinesWrapped, longestLineLoaded, false); + QVERIFY(!encodingErrors); + QVERIFY(tooLongLinesWrapped); + } + + { + { + // create file that did trigger hang of bug 486134 + QFile f(file_path); + QVERIFY(f.open(QIODevice::WriteOnly | QIODevice::Truncate)); + for (int i = 0; i < 10000; ++i) { + f.putChar('\x00'); + f.putChar('\x02'); + f.putChar('\x3b'); + f.putChar('\xae'); + } + QVERIFY(f.flush()); + } + + // load with long line limit and inspect results + KTextEditor::DocumentPrivate doc; + Kate::TextBuffer buffer(&doc, true); + buffer.setTextCodec(QStringLiteral("UTF-8")); + buffer.setFallbackTextCodec(QString::fromUtf8(QStringConverter::nameForEncoding(QStringConverter::Latin1))); + buffer.setLineLengthLimit(10000); + bool encodingErrors = false; + bool tooLongLinesWrapped = false; + int longestLineLoaded = 0; + buffer.load(file_path, encodingErrors, tooLongLinesWrapped, longestLineLoaded, false); + QVERIFY(!encodingErrors); + QVERIFY(tooLongLinesWrapped); + } +} + +void KateTextBufferTest::testBlockSplittingWithMovingRanges() +{ + // construct an empty text buffer + KTextEditor::DocumentPrivate doc; + // Kate::TextBuffer &buffer = doc.buffer(); + doc.setText(QStringLiteral("First line\nSecondLine\nThirdLine")); + std::unique_ptr range{doc.newMovingRange(KTextEditor::Range(1, 0, 1, 7))}; + QCOMPARE(doc.text(range->toRange()), QStringLiteral("SecondL")); + + doc.editStart(); + for (int i = 0; i < 128; ++i) { + doc.insertLine(1, QString()); + } + doc.editEnd(); + + QCOMPARE(doc.text(range->toRange()), QStringLiteral("SecondL")); +} + +void KateTextBufferTest::testGetTextWithEmptyFirstBlock() +{ + KTextEditor::DocumentPrivate doc; + doc.setText(QStringLiteral("First line\nSecondLine\nThirdLine")); + // add enough text so that we have at least 2 blocks + doc.editStart(); + for (int i = 0; i < 128; ++i) { + doc.insertLine(1, QStringLiteral("asdf")); + } + doc.editEnd(); + // remove enough text so that first block will have 0 lines + doc.removeText({0, 0, 80, 0}); + // check if we have correct amount of text + QCOMPARE(doc.text().size(), 265); +} + +#if HAVE_KAUTH +void KateTextBufferTest::saveFileWithElevatedPrivileges() +{ + // create temp dir and get file name inside + QTemporaryDir dir; + QVERIFY(dir.isValid()); + const QString file_path = dir.path() + QLatin1String("/foo"); + + QFile f(file_path); + QVERIFY(f.open(QIODevice::WriteOnly | QIODevice::Truncate)); + f.write("1234567890"); + QVERIFY(f.flush()); + f.close(); + + KTextEditor::DocumentPrivate doc; + Kate::TextBuffer buffer(&doc, true); + buffer.setTextCodec(QStringLiteral("UTF-8")); + buffer.setFallbackTextCodec(QStringLiteral("UTF-8")); + bool a; + bool b; + int c; + buffer.load(file_path, a, b, c, true); + buffer.clear(); + buffer.startEditing(); + buffer.insertText(KTextEditor::Cursor(0, 0), QStringLiteral("ABC")); + buffer.finishEditing(); + qDebug() << buffer.text(); + buffer.save(file_path); + + f.open(QIODevice::ReadOnly); + QCOMPARE(f.readAll(), QByteArray("ABC")); + f.close(); + + QVERIFY(f.remove()); + QVERIFY(dir.remove()); +} +#endif + +#include "moc_katetextbuffertest.cpp" diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/katetextbuffertest.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/katetextbuffertest.h new file mode 100644 index 0000000000..045455318d --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/katetextbuffertest.h @@ -0,0 +1,42 @@ +/* + This file is part of the Kate project. + + SPDX-FileCopyrightText: 2010 Christoph Cullmann + SPDX-FileCopyrightText: 2010-2018 Dominik Haumann + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef KATETEXTBUFFERTEST_H +#define KATETEXTBUFFERTEST_H + +#include +#include + +#include + +class KateTextBufferTest : public QObject +{ + Q_OBJECT + +public: + KateTextBufferTest(); + ~KateTextBufferTest() override; + +private Q_SLOTS: + void basicBufferTest(); + void wrapLineTest(); + void insertRemoveTextTest(); + void cursorTest(); + void foldingTest(); + void nestedFoldingTest(); + void saveFileInUnwritableFolder(); + void lineLengthLimit(); + void testBlockSplittingWithMovingRanges(); + void testGetTextWithEmptyFirstBlock(); + +#if HAVE_KAUTH + void saveFileWithElevatedPrivileges(); +#endif +}; + +#endif // KATETEXTBUFFERTEST_H diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/kateview_test.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/kateview_test.cpp new file mode 100644 index 0000000000..4cdca92207 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/kateview_test.cpp @@ -0,0 +1,962 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2010 Milian Wolff + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "kateview_test.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#define testNewRow() (QTest::newRow(QStringLiteral("line %1").arg(__LINE__).toLatin1().data())) + +using namespace KTextEditor; + +QTEST_MAIN(KateViewTest) + +KateViewTest::KateViewTest() + : QObject() +{ + QStandardPaths::setTestModeEnabled(true); +} + +KateViewTest::~KateViewTest() +{ +} + +void KateViewTest::testEditorWidget() +{ + QCOMPARE_EQ(View::fromEditorWidget(nullptr), nullptr); + KTextEditor::DocumentPrivate doc(false, false); + + auto *const view1 = doc.createView(nullptr); + auto *const editorWidget1 = view1->editorWidget(); + QVERIFY(editorWidget1); + QCOMPARE(editorWidget1->metaObject()->className(), "KateViewInternal"); + QCOMPARE_EQ(View::fromEditorWidget(editorWidget1), view1); + + auto *const view2 = doc.createView(nullptr); + auto *const editorWidget2 = view2->editorWidget(); + QVERIFY(editorWidget2); + QCOMPARE(editorWidget2->metaObject()->className(), "KateViewInternal"); + QCOMPARE_EQ(View::fromEditorWidget(editorWidget2), view2); + + QCOMPARE_NE(editorWidget1, editorWidget2); + QCOMPARE_EQ(view1->editorWidget(), editorWidget1); + QCOMPARE_EQ(View::fromEditorWidget(nullptr), nullptr); +} + +void KateViewTest::testCoordinatesToCursor_data() +{ + using Flags = KTextEditor::View::CoordinatesToCursorFlags; + QTest::addColumn("flags"); + + QTest::newRow("ClosestCursorOutsideText") << Flags{}; + QTest::newRow("InvalidCursorOutsideText") << Flags{KTextEditor::View::InvalidCursorOutsideText}; +} + +void KateViewTest::testCoordinatesToCursor() +{ + KTextEditor::DocumentPrivate doc(false, false); + doc.setText(QStringLiteral("Hi World!\nHi\n")); + + constexpr KTextEditor::Cursor beginningOfFirstLine(0, 0); + constexpr KTextEditor::Cursor endOfFirstLine(0, 9); + + KTextEditor::View *view1 = static_cast(doc.createView(nullptr)); + view1->resize(400, 300); + view1->show(); + + QFETCH(const KTextEditor::View::CoordinatesToCursorFlags, flags); + const auto coordinatesToCursor = [view1, flags](QPoint coords) { + return view1->coordinatesToCursor(coords, flags); + }; + + QCOMPARE(coordinatesToCursor(view1->cursorToCoordinate(KTextEditor::Cursor(0, 2))), KTextEditor::Cursor(0, 2)); + QCOMPARE(coordinatesToCursor(view1->cursorToCoordinate(KTextEditor::Cursor(1, 1))), KTextEditor::Cursor(1, 1)); + // behind end of line should give an invalid cursor + QCOMPARE(coordinatesToCursor(view1->cursorToCoordinate(KTextEditor::Cursor(1, 5))), KTextEditor::Cursor::invalid()); + QCOMPARE(view1->cursorToCoordinate(KTextEditor::Cursor(3, 1)), QPoint(-1, -1)); + + // check consistency between cursorToCoordinate(view->cursorPosition() and cursorPositionCoordinates() + // random position + view1->setCursorPosition(KTextEditor::Cursor(0, 3)); + QCOMPARE(coordinatesToCursor(view1->cursorToCoordinate(view1->cursorPosition())), KTextEditor::Cursor(0, 3)); + QCOMPARE(coordinatesToCursor(view1->cursorPositionCoordinates()), KTextEditor::Cursor(0, 3)); + // end of line + view1->setCursorPosition(endOfFirstLine); + QCOMPARE(coordinatesToCursor(view1->cursorToCoordinate(endOfFirstLine)), endOfFirstLine); + QCOMPARE(coordinatesToCursor(view1->cursorPositionCoordinates()), endOfFirstLine); + // empty line + view1->setCursorPosition(KTextEditor::Cursor(2, 0)); + QCOMPARE(coordinatesToCursor(view1->cursorToCoordinate(KTextEditor::Cursor(2, 0))), KTextEditor::Cursor(2, 0)); + QCOMPARE(coordinatesToCursor(view1->cursorPositionCoordinates()), KTextEditor::Cursor(2, 0)); + + // same test again, but with message widget on top visible + KTextEditor::Message *message = new KTextEditor::Message(QStringLiteral("Jo World!"), KTextEditor::Message::Information); + doc.postMessage(message); + + // wait 500ms until show animation is finished, so the message widget is visible + QTest::qWait(500); + + QCOMPARE(coordinatesToCursor(view1->cursorToCoordinate(KTextEditor::Cursor(0, 2))), KTextEditor::Cursor(0, 2)); + QCOMPARE(coordinatesToCursor(view1->cursorToCoordinate(KTextEditor::Cursor(1, 1))), KTextEditor::Cursor(1, 1)); + // behind end of line should give an invalid cursor + QCOMPARE(coordinatesToCursor(view1->cursorToCoordinate(KTextEditor::Cursor(1, 5))), KTextEditor::Cursor::invalid()); + QCOMPARE(view1->cursorToCoordinate(KTextEditor::Cursor(3, 1)), QPoint(-1, -1)); + + const auto leftmostCoordinates = view1->cursorToCoordinate(beginningOfFirstLine); + const auto rightmostCoordinates = view1->cursorToCoordinate(endOfFirstLine); + + const auto adjusted = [](QPoint coordinates, int xOffset) { + auto ret = coordinates; + ret.rx() += xOffset; + return ret; + }; + + const auto expectedCursorToTheLeftOfText = flags & KTextEditor::View::InvalidCursorOutsideText ? KTextEditor::Cursor::invalid() : beginningOfFirstLine; + const auto expectedCursorToTheRightOfText = flags & KTextEditor::View::InvalidCursorOutsideText ? KTextEditor::Cursor::invalid() : endOfFirstLine; + + QCOMPARE(coordinatesToCursor(adjusted(leftmostCoordinates, 0)), beginningOfFirstLine); + QCOMPARE(coordinatesToCursor(adjusted(leftmostCoordinates, 1)), beginningOfFirstLine); // the width of a character should be greater than 2 pixels + QCOMPARE(coordinatesToCursor(adjusted(leftmostCoordinates, -1000)), expectedCursorToTheLeftOfText); + QCOMPARE(coordinatesToCursor(adjusted(leftmostCoordinates, -1)), expectedCursorToTheLeftOfText); + + QCOMPARE(coordinatesToCursor(adjusted(rightmostCoordinates, 0)), endOfFirstLine); + QCOMPARE(coordinatesToCursor(adjusted(rightmostCoordinates, -1)), endOfFirstLine); // the width of a character should be greater than 2 pixels + QCOMPARE(coordinatesToCursor(adjusted(rightmostCoordinates, 500)), expectedCursorToTheRightOfText); + QCOMPARE(coordinatesToCursor(adjusted(rightmostCoordinates, 1)), expectedCursorToTheRightOfText); +} + +void KateViewTest::testCursorToCoordinates() +{ + KTextEditor::DocumentPrivate doc(false, false); + doc.setText(QStringLiteral("int a;")); + + KTextEditor::ViewPrivate *view = new KTextEditor::ViewPrivate(&doc, nullptr); + view->config()->setDynWordWrap(true); + view->show(); + + // don't crash, see https://bugs.kde.org/show_bug.cgi?id=337863 + view->cursorToCoordinate(Cursor(0, 0)); + view->cursorToCoordinate(Cursor(1, 0)); + view->cursorToCoordinate(Cursor(-1, 0)); +} + +void KateViewTest::testReloadMultipleViews() +{ + QTemporaryFile file(QStringLiteral("XXXXXX.cpp")); + file.open(); + QTextStream stream(&file); + const QString line = QStringLiteral("const char* foo = \"asdf\"\n"); + for (int i = 0; i < 200; ++i) { + stream << line; + } + stream << Qt::flush; + file.close(); + + KTextEditor::DocumentPrivate doc; + QVERIFY(doc.openUrl(QUrl::fromLocalFile(file.fileName()))); + QCOMPARE(doc.highlightingMode(), QStringLiteral("C++")); + + KTextEditor::ViewPrivate *view1 = new KTextEditor::ViewPrivate(&doc, nullptr); + KTextEditor::ViewPrivate *view2 = new KTextEditor::ViewPrivate(&doc, nullptr); + view1->show(); + view2->show(); + QCOMPARE(doc.views().count(), 2); + + QVERIFY(doc.documentReload()); +} + +void KateViewTest::testTabCursorOnReload() +{ + // testcase for https://bugs.kde.org/show_bug.cgi?id=258480 + QTemporaryFile file(QStringLiteral("XXXXXX.cpp")); + file.open(); + QTextStream stream(&file); + stream << "\tfoo\n"; + file.close(); + + KTextEditor::DocumentPrivate doc; + QVERIFY(doc.openUrl(QUrl::fromLocalFile(file.fileName()))); + + KTextEditor::ViewPrivate *view = new KTextEditor::ViewPrivate(&doc, nullptr); + const KTextEditor::Cursor cursor(0, 4); + view->setCursorPosition(cursor); + QCOMPARE(view->cursorPosition(), cursor); + QVERIFY(doc.documentReload()); + QCOMPARE(view->cursorPosition(), cursor); +} + +void KateViewTest::testLowerCaseBlockSelection() +{ + // testcase for https://bugs.kde.org/show_bug.cgi?id=258480 + KTextEditor::DocumentPrivate doc; + doc.setText(QStringLiteral("nY\nnYY\n")); + + KTextEditor::ViewPrivate *view1 = new KTextEditor::ViewPrivate(&doc, nullptr); + view1->setBlockSelection(true); + view1->setSelection(Range(0, 1, 1, 3)); + view1->lowercase(); + + QCOMPARE(doc.text(), QStringLiteral("ny\nnyy\n")); +} + +void KateViewTest::testIndentBlockSelection() +{ + KTextEditor::DocumentPrivate doc; + doc.setText(QStringLiteral("nY\nnYY\n")); + + KTextEditor::ViewPrivate *view1 = new KTextEditor::ViewPrivate(&doc, nullptr); + view1->setSelection(Range(0, 0, 2, 0)); + view1->setBlockSelection(true); + view1->indent(); + QCOMPARE(doc.text(), QStringLiteral(" nY\n nYY\n ")); + view1->unIndent(); + QCOMPARE(doc.text(), QStringLiteral("nY\nnYY\n")); +} + +void KateViewTest::testSelection() +{ + // see also: https://bugs.kde.org/show_bug.cgi?id=277422 + // wrong behavior before: + // Open file with text + // click at end of some line (A) and drag to right, i.e. without selecting anything + // click somewhere else (B) + // shift click to another place (C) + // => expected: selection from B to C + // => actual: selection from A to C + + QTemporaryFile file(QStringLiteral("XXXXXX.txt")); + file.open(); + QTextStream stream(&file); + stream << "A\n" + << "B\n" + << "C"; + stream << Qt::flush; + file.close(); + + KTextEditor::DocumentPrivate doc; + QVERIFY(doc.openUrl(QUrl::fromLocalFile(file.fileName()))); + + KTextEditor::ViewPrivate *view = new KTextEditor::ViewPrivate(&doc, nullptr); + view->resize(100, 200); + view->show(); + + auto *const internalView = view->editorWidget(); + QVERIFY(internalView); + + const QPoint afterA = view->cursorToCoordinate(Cursor(0, 1)); + const QPoint afterB = view->cursorToCoordinate(Cursor(1, 1)); + const QPoint afterC = view->cursorToCoordinate(Cursor(2, 1)); + + // click after A + auto me = QMouseEvent(QEvent::MouseButtonPress, afterA, internalView->mapToGlobal(afterA), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier); + QCoreApplication::sendEvent(internalView, &me); + + auto me1 = QMouseEvent(QEvent::MouseButtonRelease, afterA, internalView->mapToGlobal(afterA), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier); + QCoreApplication::sendEvent(internalView, &me1); + QCOMPARE(view->cursorPosition(), Cursor(0, 1)); + + // drag to right + auto me2 = QMouseEvent(QEvent::MouseButtonPress, afterA, internalView->mapToGlobal(afterA), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier); + QCoreApplication::sendEvent(internalView, &me2); + + auto me3 = QMouseEvent(QEvent::MouseMove, + afterA + QPoint(50, 0), + internalView->mapToGlobal(afterA + QPoint(50, 0)), + Qt::LeftButton, + Qt::LeftButton, + Qt::NoModifier); + QCoreApplication::sendEvent(internalView, &me3); + + auto me4 = QMouseEvent(QEvent::MouseButtonRelease, + afterA + QPoint(50, 0), + internalView->mapToGlobal(afterA + QPoint(50, 0)), + Qt::LeftButton, + Qt::LeftButton, + Qt::NoModifier); + QCoreApplication::sendEvent(internalView, &me4); + + QCOMPARE(view->cursorPosition(), Cursor(0, 1)); + QVERIFY(!view->selection()); + + // click after C + auto me5 = QMouseEvent(QEvent::MouseButtonPress, afterC, internalView->mapToGlobal(afterC), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier); + QCoreApplication::sendEvent(internalView, &me5); + + auto me6 = QMouseEvent(QEvent::MouseButtonRelease, afterC, internalView->mapToGlobal(afterC), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier); + QCoreApplication::sendEvent(internalView, &me6); + + QCOMPARE(view->cursorPosition(), Cursor(2, 1)); + // shift+click after B + auto me7 = QMouseEvent(QEvent::MouseButtonPress, afterB, internalView->mapToGlobal(afterB), Qt::LeftButton, Qt::LeftButton, Qt::ShiftModifier); + QCoreApplication::sendEvent(internalView, &me7); + + auto me8 = QMouseEvent(QEvent::MouseButtonRelease, afterB, internalView->mapToGlobal(afterB), Qt::LeftButton, Qt::LeftButton, Qt::ShiftModifier); + QCoreApplication::sendEvent(internalView, &me8); + + QCOMPARE(view->cursorPosition(), Cursor(1, 1)); + QCOMPARE(view->selectionRange(), Range(1, 1, 2, 1)); +} + +void KateViewTest::testDeselectByArrowKeys_data() +{ + QTest::addColumn("text"); + + testNewRow() << QStringLiteral("foobarhaz"); + testNewRow() << QStringLiteral("كلسشمن يتبكسب"); // We all win, translates Google +} + +void KateViewTest::testDeselectByArrowKeys() +{ + QFETCH(QString, text); + + KTextEditor::DocumentPrivate doc; + doc.setText(text); + KTextEditor::ViewPrivate *view = new KTextEditor::ViewPrivate(&doc, nullptr); + KTextEditor::Cursor cur1(0, 3); // Start of bar: foo|barhaz + KTextEditor::Cursor cur2(0, 6); // End of bar: foobar|haz + KTextEditor::Cursor curDelta(0, 1); + Range range(cur1, cur2); // Select "bar" + + // RTL drives me nuts! + KTextEditor::Cursor help; + if (text.isRightToLeft()) { + help = cur1; + cur1 = cur2; + cur2 = help; + } + + view->setSelection(range); + view->setCursorPositionInternal(cur1); + view->cursorLeft(); + QCOMPARE(view->cursorPosition(), cur1); // Be at begin: foo|barhaz + QCOMPARE(view->selection(), false); + + view->setSelection(range); + view->setCursorPositionInternal(cur1); + view->cursorRight(); + QCOMPARE(view->cursorPosition(), cur2); // Be at end: foobar|haz + QCOMPARE(view->selection(), false); + + view->config()->setValue(KateViewConfig::PersistentSelection, true); + + view->setSelection(range); + view->setCursorPositionInternal(cur1); + view->cursorLeft(); + // RTL drives me nuts! + help = text.isRightToLeft() ? (cur1 + curDelta) : (cur1 - curDelta); + QCOMPARE(view->cursorPosition(), help); // Be one left: fo|obarhaz + QCOMPARE(view->selection(), true); + + view->setSelection(range); + view->setCursorPositionInternal(cur1); + view->cursorRight(); + // RTL drives me nuts! + help = text.isRightToLeft() ? (cur1 - curDelta) : (cur1 + curDelta); + QCOMPARE(view->cursorPosition(), help); // Be one right: foob|arhaz + QCOMPARE(view->selection(), true); +} + +void KateViewTest::testKillline() +{ + KTextEditor::DocumentPrivate doc; + doc.insertLines(0, {QStringLiteral("foo"), QStringLiteral("bar"), QStringLiteral("baz")}); + + KTextEditor::ViewPrivate *view = new KTextEditor::ViewPrivate(&doc, nullptr); + + view->setCursorPositionInternal(KTextEditor::Cursor(1, 2)); + view->killLine(); + + QCOMPARE(doc.text(), QLatin1String("foo\nbaz\n")); + + doc.clear(); + QVERIFY(doc.isEmpty()); + + doc.insertLines(0, {QStringLiteral("foo"), QStringLiteral("bar"), QStringLiteral("baz"), QStringLiteral("xxx")}); + + view->setCursorPositionInternal(KTextEditor::Cursor(1, 2)); + view->shiftDown(); + view->killLine(); + + QCOMPARE(doc.text(), QLatin1String("foo\nxxx\n")); +} + +void KateViewTest::testKeyDeleteBlockSelection() +{ + KTextEditor::DocumentPrivate doc; + doc.insertLines(0, {QStringLiteral("foo"), QStringLiteral("12345"), QStringLiteral("bar"), QStringLiteral("baz")}); + + KTextEditor::ViewPrivate *view = new KTextEditor::ViewPrivate(&doc, nullptr); + + view->setBlockSelection(true); + view->setSelection(Range(0, 1, 2, 1)); + QCOMPARE(view->selectionRange(), Range(0, 1, 2, 1)); + + view->keyDelete(); + QCOMPARE(doc.text(), QLatin1String("fo\n1345\nbr\nbaz\n")); + view->keyDelete(); + QCOMPARE(doc.text(), QLatin1String("f\n145\nb\nbaz\n")); + view->keyDelete(); + QCOMPARE(doc.text(), QLatin1String("f\n15\nb\nbaz\n")); + view->keyDelete(); + QCOMPARE(doc.text(), QLatin1String("f\n1\nb\nbaz\n")); + view->keyDelete(); + QCOMPARE(doc.text(), QLatin1String("f\n1\nb\nbaz\n")); + + doc.clear(); + QVERIFY(doc.isEmpty()); + + doc.insertLines(0, {QStringLiteral("foo"), QStringLiteral("12345"), QStringLiteral("bar"), QStringLiteral("baz")}); + + view->setSelection(Range(0, 1, 2, 3)); + + view->keyDelete(); + QCOMPARE(doc.text(), QLatin1String("f\n145\nb\nbaz\n")); +} + +void KateViewTest::testScrollPastEndOfDocument() +{ + // bug 306745 + KTextEditor::DocumentPrivate doc; + doc.setText( + QStringLiteral("0000000000\n" + "1111111111\n" + "2222222222\n" + "3333333333\n" + "4444444444")); + QCOMPARE(doc.lines(), 5); + + KTextEditor::ViewPrivate *view = new KTextEditor::ViewPrivate(&doc, nullptr); + view->setCursorPosition({3, 5}); + view->resize(400, 300); + view->show(); + // resize() debounces events, wait for timer to finish + QTRY_VERIFY_WITH_TIMEOUT(!view->getViewInternal()->m_resizeTimer.isActive(), 100ms); + + // enable "[x] Scroll past end of document" + view->config()->setValue(KateViewConfig::ScrollPastEnd, true); + QCOMPARE(view->config()->scrollPastEnd(), true); + + // disable dynamic word wrap + view->config()->setDynWordWrap(false); + QCOMPARE(view->config()->dynWordWrap(), false); + + view->scrollDown(); + view->scrollDown(); + view->scrollDown(); + // at this point, only lines 3333333333 and 4444444444 are visible. + view->down(); + QCOMPARE(view->cursorPosition(), KTextEditor::Cursor(4, 5)); + // verify, that only lines 3333333333 and 4444444444 are still visible. + QCOMPARE(view->firstDisplayedLineInternal(KTextEditor::View::RealLine), 3); +} + +void KateViewTest::testFoldFirstLine() +{ + QTemporaryFile file(QStringLiteral("XXXXXX.cpp")); + file.open(); + QTextStream stream(&file); + stream << "/**\n" + << " * foo\n" + << " */\n" + << "\n" + << "int main() {}\n"; + file.close(); + + KTextEditor::DocumentPrivate doc; + QVERIFY(doc.openUrl(QUrl::fromLocalFile(file.fileName()))); + QCOMPARE(doc.highlightingMode(), QStringLiteral("C++")); + + KTextEditor::ViewPrivate *view = new KTextEditor::ViewPrivate(&doc, nullptr); + view->config()->setValue(KateViewConfig::FoldFirstLine, false); + view->setCursorPosition({4, 0}); + + // initially, nothing is folded + QVERIFY(view->textFolding().isLineVisible(1)); + + // now change the config, and expect the header to be folded + view->config()->setValue(KateViewConfig::FoldFirstLine, true); + qint64 foldedRangeId = 0; + QVERIFY(!view->textFolding().isLineVisible(1, &foldedRangeId)); + + // now unfold the range + QVERIFY(view->textFolding().unfoldRange(foldedRangeId)); + QVERIFY(view->textFolding().isLineVisible(1)); + + // and save the file, we do not expect the folding to change then + doc.setModified(true); + doc.saveFile(); + QVERIFY(view->textFolding().isLineVisible(1)); + + // now reload the document, nothing should change + doc.setModified(false); + QVERIFY(doc.documentReload()); + QVERIFY(view->textFolding().isLineVisible(1)); +} + +// test for bug https://bugs.kde.org/374163 +void KateViewTest::testDragAndDrop() +{ + // mouse move only on X11 + if (qApp->platformName() != QLatin1String("xcb")) { + QSKIP("mouse moving only on X11"); + } + + KTextEditor::DocumentPrivate doc(false, false); + doc.setText( + QStringLiteral("line0\n" + "line1\n" + "line2\n" + "\n" + "line4")); + + KTextEditor::View *view = static_cast(doc.createView(nullptr)); + view->show(); + view->resize(400, 300); + + auto *const internalView = view->editorWidget(); + QVERIFY(internalView); + + // select "line1\n" + view->setSelection(Range(1, 0, 2, 0)); + QCOMPARE(view->selectionRange(), Range(1, 0, 2, 0)); + + QVERIFY(QTest::qWaitForWindowExposed(view)); + + const QPoint startDragPos = internalView->mapFrom(view, view->cursorToCoordinate(KTextEditor::Cursor(1, 2))); + const QPoint endDragPos = internalView->mapFrom(view, view->cursorToCoordinate(KTextEditor::Cursor(3, 0))); + const QPoint gStartDragPos = internalView->mapToGlobal(startDragPos); + const QPoint gEndDragPos = internalView->mapToGlobal(endDragPos); + + // now drag and drop selected text to Cursor(3, 0) + QMouseEvent pressEvent(QEvent::MouseButtonPress, startDragPos, gStartDragPos, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier); + QCoreApplication::sendEvent(internalView, &pressEvent); + + // ugly workaround: Drag & Drop has own blocking event queue. Therefore, we need a single-shot timer to + // break out of the blocking event queue, see (*) + QTimer::singleShot(50, [&]() { + QMouseEvent moveEvent(QEvent::MouseMove, endDragPos + QPoint(5, 0), gEndDragPos + QPoint(5, 0), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier); + QMouseEvent releaseEvent(QEvent::MouseButtonRelease, endDragPos, gEndDragPos, Qt::LeftButton, Qt::NoButton, Qt::NoModifier); + QCoreApplication::sendEvent(internalView, &moveEvent); + QCoreApplication::sendEvent(internalView, &releaseEvent); + }); + + // (*) this somehow blocks... + QMouseEvent moveEvent1(QEvent::MouseMove, endDragPos + QPoint(10, 0), gEndDragPos + QPoint(10, 0), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier); + QCoreApplication::sendEvent(internalView, &moveEvent1); + + QTest::qWait(100); + + // final tests of dragged text + QCOMPARE(doc.text(), + QStringLiteral("line0\n" + "line2\n" + "line1\n" + "\n" + "line4")); + + QCOMPARE(view->cursorPosition(), KTextEditor::Cursor(3, 0)); + QCOMPARE(view->selectionRange(), Range(2, 0, 3, 0)); +} + +// test for bug https://bugs.kde.org/402594 +void KateViewTest::testGotoMatchingBracket() +{ + KTextEditor::DocumentPrivate doc(false, false); + doc.setText(QStringLiteral("foo(bar)baz[]")); + // 0123456789 + + KTextEditor::ViewPrivate *view = new KTextEditor::ViewPrivate(&doc, nullptr); + const KTextEditor::Cursor cursor1(0, 3); // Starting point on open ( + const KTextEditor::Cursor cursor2(0, 8); // Insert Mode differ slightly from... + const KTextEditor::Cursor cursor3(0, 7); // Overwrite Mode + const KTextEditor::Cursor cursor4(0, 11); // Test adjacents brackets (start at [) + + doc.config()->setOvr(false); // Insert Mode + + view->setCursorPosition(cursor1); + view->toMatchingBracket(); + QCOMPARE(view->cursorPosition(), cursor2); + view->toMatchingBracket(); + QCOMPARE(view->cursorPosition(), cursor1); + + // Currently has it in Insert Mode also to work when the cursor is placed inside the parentheses + view->setCursorPosition(cursor1 + KTextEditor::Cursor(0, 1)); + view->toMatchingBracket(); + QCOMPARE(view->cursorPosition(), cursor2); + view->setCursorPosition(cursor2 + KTextEditor::Cursor(0, -1)); + view->toMatchingBracket(); + QCOMPARE(view->cursorPosition(), cursor1); + + view->setCursorPosition(cursor4 + KTextEditor::Cursor(0, 1)); + view->toMatchingBracket(); + QCOMPARE(view->cursorPosition(), cursor4); + view->toMatchingBracket(); + view->setCursorPosition(view->cursorPosition() + KTextEditor::Cursor(0, 1)); + view->toMatchingBracket(); + QCOMPARE(view->cursorPosition(), cursor4); + + doc.config()->setOvr(true); // Overwrite Mode + + view->setCursorPosition(cursor1); + view->toMatchingBracket(); + QCOMPARE(view->cursorPosition(), cursor3); + view->toMatchingBracket(); + QCOMPARE(view->cursorPosition(), cursor1); +} + +void KateViewTest::testFindSelected() +{ + KTextEditor::DocumentPrivate doc(false, false); + doc.setText( + QStringLiteral("foo\n" + "bar\n" + "foo\n" + "bar\n")); + // 0123456789 + + KTextEditor::ViewPrivate *view = new KTextEditor::ViewPrivate(&doc, nullptr); + const KTextEditor::Cursor cursor1(0, 0); // before 1. foo + const KTextEditor::Cursor cursor2(0, 3); // after 1. foo + const KTextEditor::Range range1({0, 0}, {0, 3}); // 1. foo range + const KTextEditor::Cursor cursor3(2, 3); // after 2. foo + const KTextEditor::Range range2({2, 0}, {2, 3}); // 2. foo range + + QVERIFY(!view->selection()); + QCOMPARE(view->cursorPosition(), cursor1); + + // first time we call this without a selection, just select the word under the cursor + view->findSelectedForwards(); + QVERIFY(view->selection()); + QCOMPARE(view->selectionRange(), range1); + // cursor jumps to the end of the word + QCOMPARE(view->cursorPosition(), cursor2); + + // second time we call this it actually jumps to the next occurrence + view->findSelectedForwards(); + QCOMPARE(view->selectionRange(), range2); + QCOMPARE(view->cursorPosition(), cursor3); + + // wrap around + view->findSelectedForwards(); + QCOMPARE(view->selectionRange(), range1); + QCOMPARE(view->cursorPosition(), cursor2); + + // search backwards, wrap again + view->findSelectedBackwards(); + QCOMPARE(view->selectionRange(), range2); + QCOMPARE(view->cursorPosition(), cursor3); +} + +void KateViewTest::testTransposeWord() +{ + KTextEditor::DocumentPrivate doc(false, false); + doc.setText( + QStringLiteral("swaps forward\n" + "wordAbove\n" + "wordLeft (_skips]Spaces.__And___}Sym_bols)))) wordRight)\n" + "wordBelow anotherWord yetAnotherWord\n")); + + KTextEditor::ViewPrivate *view = new KTextEditor::ViewPrivate(&doc, nullptr); + const KTextEditor::Cursor swaps(0, 2); // swa|ps + const KTextEditor::Cursor wordAbove(1, 4); // wordA|bove + const KTextEditor::Cursor wordLeft(2, 1); // wo|rdLeft + const KTextEditor::Cursor skips(2, 10); // |_skips + const KTextEditor::Cursor And(2, 27); // __A|nd___ + const KTextEditor::Cursor wordBelow(3, 0); // w|ordBelow + + view->setCursorPosition(swaps); + QCOMPARE(view->cursorPosition(), swaps); + QCOMPARE(view->doc()->characterAt(view->cursorPosition()), QLatin1Char('a')); + view->transposeWord(); + QCOMPARE(view->cursorPosition(), swaps + KTextEditor::Cursor(0, 8)); // " forward" has 8 characters + QCOMPARE(view->doc()->characterAt(view->cursorPosition()), QLatin1Char('a')); // retain relative position inside the word + + view->transposeWord(); + QCOMPARE(view->cursorPosition(), swaps); // when the word is already last in line, swap backwards instead + + view->setCursorPosition(wordAbove); + view->transposeWord(); + QCOMPARE(view->cursorPosition(), wordAbove); // when there is no other word in the line, do nothing + QCOMPARE(view->doc()->characterAt(view->cursorPosition()), QLatin1Char('A')); + + view->setCursorPosition(wordLeft); + view->transposeWord(); + QCOMPARE(view->cursorPosition(), wordLeft); // when next word is invalid (made up of only symbols, in this case "(") do nothing + QCOMPARE(view->doc()->characterAt(view->cursorPosition()), QLatin1Char('o')); + + view->setCursorPosition(skips); + view->transposeWord(); + QCOMPARE(view->cursorPosition(), skips + KTextEditor::Cursor(0, 7)); // transpose word beginning with a symbol + QCOMPARE(view->doc()->characterAt(view->cursorPosition()), QLatin1Char('_')); + + view->setCursorPosition(And); + view->transposeWord(); + // skip multiple symbols if there is no space between current word and the symbols (in contrast to the case of wordLeft). + // Can be useful for e.g. transposing function arguments + QCOMPARE(view->cursorPosition(), And + KTextEditor::Cursor(0, 9)); + + view->transposeWord(); + QCOMPARE(view->cursorPosition(), And + KTextEditor::Cursor(0, 9 + 17)); // next "word" is invalid as it is only a single "(", so do nothing + + view->setCursorPosition(wordBelow); + view->transposeWord(); + QCOMPARE(view->cursorPosition(), wordBelow + KTextEditor::Cursor(0, 12)); + view->transposeWord(); + QCOMPARE(view->cursorPosition(), wordBelow + KTextEditor::Cursor(0, 12 + 15)); + view->transposeWord(); + QCOMPARE(view->cursorPosition(), wordBelow + KTextEditor::Cursor(0, 12)); // end of line, transpose backwards instead +} + +void KateViewTest::testFindMatchingFoldingMarker() +{ + KTextEditor::DocumentPrivate doc(false, false); + doc.setMode(QStringLiteral("Bash")); + doc.setHighlightingMode(QStringLiteral("Bash")); + + doc.setText( + QStringLiteral("for i in 0 1 2; do\n" + " if [[ i -lt 1 ]]; then echo $i; fi\n" + " if [[ i -eq 2 ]]; then\n" + " echo 'hello :)'\n" + " fi\n" + "done\n")); + + const auto ifvalue = doc.buffer().computeFoldings(1)[0].foldingRegion; + const auto dovalue = doc.buffer().computeFoldings(0)[0].foldingRegion; + + const KTextEditor::Range firstDo(0, 16, 0, 18); + const KTextEditor::Range firstDoMatching(5, 0, 5, 4); + const KTextEditor::Range firstIf(1, 4, 1, 6); + const KTextEditor::Range firstIfMatching(1, 36, 1, 38); + + // first test the do folding marker with cursor above first position of the word. + QCOMPARE(doc.buffer().findMatchingFoldingMarker(firstDo.start(), dovalue, 2000), firstDoMatching); + // with cursor above last position of the word + QCOMPARE(doc.buffer().findMatchingFoldingMarker(firstDo.end(), dovalue, 2000), firstDoMatching); + // now to test the maxLines param. + QCOMPARE(doc.buffer().findMatchingFoldingMarker(firstDo.start(), dovalue, 2), KTextEditor::Range::invalid()); + + // it must work from end folding to start folding too. + QCOMPARE(doc.buffer().findMatchingFoldingMarker(firstDoMatching.start(), dovalue.sibling(), 2000), firstDo); + QCOMPARE(doc.buffer().findMatchingFoldingMarker(firstDoMatching.start(), dovalue.sibling(), 2), KTextEditor::Range::invalid()); + + // folding in the same line + QCOMPARE(doc.buffer().findMatchingFoldingMarker(firstIf.start(), ifvalue, 2000), firstIfMatching); + QCOMPARE(doc.buffer().findMatchingFoldingMarker(firstIfMatching.start(), ifvalue.sibling(), 2000), firstIf); +} + +void KateViewTest::testUpdateFoldingMarkersHighlighting() +{ + KTextEditor::DocumentPrivate doc(false, false); + doc.setMode(QStringLiteral("Bash")); + doc.setHighlightingMode(QStringLiteral("Bash")); + + doc.setText( + QStringLiteral("for i in 0 1 2; do\n" + " if [[ i -lt 1 ]]; then echo $i; fi\n" + " if [[ i -eq 2 ]]; then\n" + " echo 'hello :)'\n" + " fi\n" + "done\n")); + + KTextEditor::ViewPrivate *view = new KTextEditor::ViewPrivate(&doc, nullptr); + auto viewInternal = view->getViewInternal(); + + const KTextEditor::Cursor positionWithoutMarker(0, 4); + const KTextEditor::Range firstDo(0, 16, 0, 18); + const KTextEditor::Range firstDoMatching(5, 0, 5, 4); + + KTextEditor::MovingRange *foldingMarkerStart = viewInternal->m_fmStart.get(); + KTextEditor::MovingRange *foldingMarkerEnd = viewInternal->m_fmEnd.get(); + + // If the cursor is not above any folding marker, the highlighting range is invalid + view->setCursorPosition(positionWithoutMarker); + QCOMPARE(foldingMarkerStart->toRange(), KTextEditor::Range::invalid()); + QCOMPARE(foldingMarkerEnd->toRange(), KTextEditor::Range::invalid()); + + // If the cursor is above a opening folding marker, the highlighting range is the range of both opening and end folding markers words + view->setCursorPosition(firstDo.start()); + QCOMPARE(foldingMarkerStart->toRange(), firstDo); + QCOMPARE(foldingMarkerEnd->toRange(), firstDoMatching); + + // If the cursor is above a ending folding marker, then same rule above + view->setCursorPosition(firstDoMatching.start()); + QCOMPARE(foldingMarkerStart->toRange(), firstDo); + QCOMPARE(foldingMarkerEnd->toRange(), firstDoMatching); +} + +void KateViewTest::testDdisplayRangeChangedEmitted() +{ + KTextEditor::DocumentPrivate doc(false, false); + doc.setText(QStringList(250, QStringLiteral("Hello world"))); + KTextEditor::ViewPrivate *view = new KTextEditor::ViewPrivate(&doc, nullptr); + view->resize(300, 300); + QSignalSpy spy(view, &KTextEditor::View::displayRangeChanged); + view->setCursorPosition({180, 0}); + QVERIFY(spy.count() == 1); +} + +void KateViewTest::testCrashOnPasteInOverwriteMode() +{ + // create doc with a few lines + KTextEditor::DocumentPrivate doc(false, false); + const QString testText(QStringLiteral("test1\ntest2\ntest3\n")); + doc.setText(testText); + + // create view in overwrite mode + KTextEditor::ViewPrivate *view = new KTextEditor::ViewPrivate(&doc, nullptr); + view->doc()->config()->setOvr(true); + + // simulate paste at end of document that did crash, bug 496612 + view->setCursorPosition(KTextEditor::Cursor(2, 0)); + view->paste(&testText); + + // check result is ok + QCOMPARE(doc.text(), QStringLiteral("test1\ntest2\ntest1\ntest2\ntest3\n")); +} + +void KateViewTest::testCommandBarSearchReplace() +{ + KTextEditor::DocumentPrivate doc(false, false); + const QString testText(QStringLiteral("hello\nhello\nabc\nhello")); + doc.setText(testText); + + KTextEditor::ViewPrivate *view = new KTextEditor::ViewPrivate(&doc, nullptr); + view->switchToCmdLine(); + const auto childs = view->findChildren(); + KLineEdit *lineEdit = nullptr; + for (auto c : childs) { + if (strcmp("KateCmdLineEdit", c->metaObject()->className()) == 0) { + lineEdit = qobject_cast(c); + break; + } + } + QVERIFY(lineEdit); + lineEdit->returnKeyPressed(QStringLiteral("%s/hell/bell")); + QCOMPARE(doc.text(), QStringLiteral("bello\nbello\nabc\nbello")); +} + +void KateViewTest::testSelectedTextFormats() +{ + KTextEditor::DocumentPrivate doc(false, false); + const QString testText(QStringLiteral("- []KOrganizer: add more new stuff to the Whatsnew dialog\n")); + QVERIFY(doc.setHighlightingMode(QStringLiteral("Markdown"))); + doc.setText(testText); + + KTextEditor::ViewPrivate *view = new KTextEditor::ViewPrivate(&doc, nullptr); + view->setCursorPosition({0, 6}); + view->setSelection({0, 3, 0, 6}); + QCOMPARE(view->selectionRange(), KTextEditor::Range(0, 3, 0, 6)); + + const QTextLayout *layout = view->textLayout({0, 0}); + QVERIFY(layout); + const auto formats = layout->formats(); + QCOMPARE(formats.size(), 4); + + auto verifyFormat = [](const QTextLayout::FormatRange &f, int start, int length, bool bg, bool fg) { + QCOMPARE(f.start, start); + QCOMPARE(f.length, length); + QCOMPARE(f.format.hasProperty(QTextFormat::BackgroundBrush), bg); + QCOMPARE(f.format.hasProperty(QTextFormat::ForegroundBrush), fg); + }; + + verifyFormat(formats[0], 0, 2, /*hasBg=*/false, /*hasFg=*/true); + verifyFormat(formats[1], 2, 1, /*hasBg=*/false, /*hasFg=*/true); + verifyFormat(formats[2], 3, 3, /*hasBg=*/false, /*hasFg=*/true); + verifyFormat(formats[3], 6, 51, /*hasBg=*/false, /*hasFg=*/true); + + // Test with block selection + + const auto &repository = KTextEditor::Editor::instance()->repository(); + auto lightTheme = repository.defaultTheme(KSyntaxHighlighting::Repository::LightTheme); + view->setConfigValue(QStringLiteral("theme"), lightTheme.name()); + + doc.setText(QStringLiteral("* hello\n* hello\n* hello\n")); + view->show(); + view->setBlockSelection(true); + view->setCursorPosition({1, 4}); + view->setSelection({0, 2, 1, 4}); + + // this test will break if someone removes "selected color" format normal textstyle + const QColor normalSelColor = lightTheme.selectedTextColor(KSyntaxHighlighting::Theme::TextStyle::Normal); + + { + const QTextLayout *layoutLine0 = view->textLayout({0, 0}); + + auto fmt = layoutLine0->formats()[0]; + QVERIFY(fmt.start == 0 && fmt.length == 2); + + fmt = layoutLine0->formats()[1]; + QVERIFY(fmt.start == 2 && fmt.length == 2 && fmt.format.foreground() == normalSelColor); + + fmt = layoutLine0->formats()[2]; + QVERIFY(fmt.start == 4 && fmt.length == 3 && fmt.format.foreground() != normalSelColor); + + const QTextLayout *layoutLine1 = view->textLayout({1, 0}); + fmt = layoutLine1->formats()[1]; + QVERIFY(fmt.start == 2 && fmt.length == 2 && fmt.format.foreground() == normalSelColor); + + fmt = layoutLine1->formats()[2]; + QVERIFY(fmt.start == 4 && fmt.length == 3 && fmt.format.foreground() != normalSelColor); + } +} + +void KateViewTest::testPasteDifferentLineSeparators() +{ + // we shall handle several new line variants in the paste text + for (const auto &pasteText : QStringList{QStringLiteral("a\nb\n"), + QStringLiteral("a\r\nb\r\n"), + QStringLiteral("a\rb\r"), + QStringLiteral("a\nb\r"), + QStringLiteral("a\u2028b\u2028"), + QStringLiteral("a\u2029b\u2029")}) { + KTextEditor::DocumentPrivate doc(false, false); + KTextEditor::ViewPrivate *view = new KTextEditor::ViewPrivate(&doc, nullptr); + view->setCursorPosition({0, 0}); + + // paste and check result + doc.paste(view, pasteText); + QCOMPARE(doc.text(), QStringLiteral("a\nb\n")); + } +} + +void KateViewTest::testMinimapScrollbarWidth() +{ + KTextEditor::DocumentPrivate doc(false, false); + auto *view = new KTextEditor::ViewPrivate(&doc, nullptr); + view->show(); + + view->config()->setValue(KateViewConfig::ShowScrollBarMiniMap, true); + + int withMinimap = 0; + QTRY_VERIFY_WITH_TIMEOUT((withMinimap = view->getViewInternal()->m_lineScroll->width()) > 0, 5000); + + view->config()->setValue(KateViewConfig::ShowScrollBarMiniMap, false); + + int withoutMinimap = 0; + QTRY_VERIFY_WITH_TIMEOUT((withoutMinimap = view->getViewInternal()->m_lineScroll->width()) < withMinimap, 5000); +} +// kate: indent-mode cstyle; indent-width 4; replace-tabs on; +#include "moc_kateview_test.cpp" diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/kateview_test.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/kateview_test.h new file mode 100644 index 0000000000..351b89b03f --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/kateview_test.h @@ -0,0 +1,52 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2010 Milian Wolff + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef KATE_VIEW_TEST_H +#define KATE_VIEW_TEST_H + +#include + +class KateViewTest : public QObject +{ + Q_OBJECT + +public: + KateViewTest(); + ~KateViewTest() override; + +private Q_SLOTS: + void testReloadMultipleViews(); + void testTabCursorOnReload(); + void testLowerCaseBlockSelection(); + + void testEditorWidget(); + void testCoordinatesToCursor_data(); + void testCoordinatesToCursor(); + void testCursorToCoordinates(); + void testSelection(); + void testDeselectByArrowKeys_data(); + void testDeselectByArrowKeys(); + void testKillline(); + void testKeyDeleteBlockSelection(); + void testScrollPastEndOfDocument(); + void testFoldFirstLine(); + void testDragAndDrop(); + void testGotoMatchingBracket(); + void testFindSelected(); + void testTransposeWord(); + void testIndentBlockSelection(); + void testFindMatchingFoldingMarker(); + void testUpdateFoldingMarkersHighlighting(); + void testDdisplayRangeChangedEmitted(); + void testCrashOnPasteInOverwriteMode(); + void testCommandBarSearchReplace(); + void testSelectedTextFormats(); + void testPasteDifferentLineSeparators(); + void testMinimapScrollbarWidth(); +}; + +#endif // KATE_VIEW_TEST_H diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/kte_documentcursor.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/kte_documentcursor.cpp new file mode 100644 index 0000000000..a5c46f9427 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/kte_documentcursor.cpp @@ -0,0 +1,342 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2012-2018 Dominik Haumann + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "kte_documentcursor.h" + +#include +#include +#include + +#include +#include + +QTEST_MAIN(DocumentCursorTest) + +using namespace KTextEditor; + +DocumentCursorTest::DocumentCursorTest() + : QObject() +{ +} + +DocumentCursorTest::~DocumentCursorTest() +{ +} + +void DocumentCursorTest::initTestCase() +{ + QStandardPaths::setTestModeEnabled(true); +} + +void DocumentCursorTest::cleanupTestCase() +{ +} + +// tests: +// - atStartOfDocument +// - atStartOfLine +// - atEndOfDocument +// - atEndOfLine +// - move forward with Wrap +// - move forward with NoWrap +// - move backward +// - gotoNextLine +// - gotoPreviousLine +void DocumentCursorTest::testConvenienceApi() +{ + KTextEditor::DocumentPrivate doc; + doc.setText( + QStringLiteral("\n" + "1\n" + "22\n" + "333\n" + "4444\n" + "55555")); + + // check start and end of document + DocumentCursor startOfDoc(&doc); + startOfDoc.setPosition(Cursor(0, 0)); + DocumentCursor endOfDoc(&doc); + endOfDoc.setPosition(Cursor(5, 5)); + QVERIFY(startOfDoc.atStartOfDocument()); + QVERIFY(startOfDoc.atStartOfLine()); + QVERIFY(endOfDoc.atEndOfDocument()); + QVERIFY(endOfDoc.atEndOfLine()); + + // set cursor to (2, 2) and then move to the left two times + DocumentCursor moving(&doc); + moving.setPosition(Cursor(2, 2)); + QVERIFY(moving.atEndOfLine()); // at 2, 2 + QVERIFY(moving.move(-1)); // at 2, 1 + QCOMPARE(moving.toCursor(), Cursor(2, 1)); + QVERIFY(!moving.atEndOfLine()); + QVERIFY(moving.move(-1)); // at 2, 0 + QCOMPARE(moving.toCursor(), Cursor(2, 0)); + QVERIFY(moving.atStartOfLine()); + + // now move again to the left, should wrap to (1, 1) + QVERIFY(moving.move(-1)); // at 1, 1 + QCOMPARE(moving.toCursor(), Cursor(1, 1)); + QVERIFY(moving.atEndOfLine()); + + // advance 7 characters to position (3, 3) + QVERIFY(moving.move(7)); // at 3, 3 + QCOMPARE(moving.toCursor(), Cursor(3, 3)); + + // advance 20 characters in NoWrap mode, then go back 10 characters + QVERIFY(moving.move(20, DocumentCursor::NoWrap)); // at 3, 23 + QCOMPARE(moving.toCursor(), Cursor(3, 23)); + QVERIFY(moving.move(-10)); // at 3, 13 + QCOMPARE(moving.toCursor(), Cursor(3, 13)); + + // still at invalid text position. move one char to wrap around + QVERIFY(!moving.isValidTextPosition()); // at 3, 13 + QVERIFY(moving.move(1)); // at 4, 0 + QCOMPARE(moving.toCursor(), Cursor(4, 0)); + + // moving 11 characters in wrap mode moves to (5, 6), which is not a valid + // text position anymore. Hence, moving should be rejected. + QVERIFY(!moving.move(11)); + QVERIFY(moving.move(10)); + QVERIFY(moving.atEndOfDocument()); + + // try to move to next line, which fails. then go to previous line + QVERIFY(!moving.gotoNextLine()); + QVERIFY(moving.gotoPreviousLine()); + QCOMPARE(moving.toCursor(), Cursor(4, 0)); +} + +void DocumentCursorTest::testOperators() +{ + KTextEditor::DocumentPrivate doc; + doc.setText( + QStringLiteral("--oo--\n" + "--oo--\n" + "--oo--")); + + // create lots of cursors for comparison + Cursor invalid = Cursor::invalid(); + Cursor c02(0, 2); + Cursor c04(0, 4); + Cursor c14(1, 4); + + DocumentCursor m02(&doc); + DocumentCursor m04(&doc); + DocumentCursor m14(&doc); + + QVERIFY(m02 == invalid); + QVERIFY(m04 == invalid); + QVERIFY(m14 == invalid); + + m02.setPosition(Cursor(0, 2)); + m04.setPosition(Cursor(0, 4)); + m14.setPosition(Cursor(1, 4)); + + // invalid comparison + // cppcheck-suppress duplicateExpression + QVERIFY(invalid == invalid); + QVERIFY(invalid <= c02); + QVERIFY(invalid < c02); + QVERIFY(!(invalid > c02)); + QVERIFY(!(invalid >= c02)); + + QVERIFY(!(invalid == m02)); + QVERIFY(invalid <= m02); + QVERIFY(invalid < m02); + QVERIFY(!(invalid > m02)); + QVERIFY(!(invalid >= m02)); + + QVERIFY(!(m02 == invalid)); + QVERIFY(!(m02 <= invalid)); + QVERIFY(!(m02 < invalid)); + QVERIFY(m02 > invalid); + QVERIFY(m02 >= invalid); + + // DocumentCursor <-> DocumentCursor + // cppcheck-suppress duplicateExpression + QVERIFY(m02 == m02); + // cppcheck-suppress duplicateExpression + QVERIFY(m02 <= m02); + // cppcheck-suppress duplicateExpression + QVERIFY(m02 >= m02); + // cppcheck-suppress duplicateExpression + QVERIFY(!(m02 < m02)); + // cppcheck-suppress duplicateExpression + QVERIFY(!(m02 > m02)); + // cppcheck-suppress duplicateExpression + QVERIFY(!(m02 != m02)); + + QVERIFY(!(m02 == m04)); + QVERIFY(m02 <= m04); + QVERIFY(!(m02 >= m04)); + QVERIFY(m02 < m04); + QVERIFY(!(m02 > m04)); + QVERIFY(m02 != m04); + + QVERIFY(!(m04 == m02)); + QVERIFY(!(m04 <= m02)); + QVERIFY(m04 >= m02); + QVERIFY(!(m04 < m02)); + QVERIFY(m04 > m02); + QVERIFY(m04 != m02); + + QVERIFY(!(m02 == m14)); + QVERIFY(m02 <= m14); + QVERIFY(!(m02 >= m14)); + QVERIFY(m02 < m14); + QVERIFY(!(m02 > m14)); + QVERIFY(m02 != m14); + + QVERIFY(!(m14 == m02)); + QVERIFY(!(m14 <= m02)); + QVERIFY(m14 >= m02); + QVERIFY(!(m14 < m02)); + QVERIFY(m14 > m02); + QVERIFY(m14 != m02); + + // DocumentCursor <-> Cursor + QVERIFY(m02 == c02); + QVERIFY(m02 <= c02); + QVERIFY(m02 >= c02); + QVERIFY(!(m02 < c02)); + QVERIFY(!(m02 > c02)); + QVERIFY(!(m02 != c02)); + + QVERIFY(!(m02 == c04)); + QVERIFY(m02 <= c04); + QVERIFY(!(m02 >= c04)); + QVERIFY(m02 < c04); + QVERIFY(!(m02 > c04)); + QVERIFY(m02 != c04); + + QVERIFY(!(m04 == c02)); + QVERIFY(!(m04 <= c02)); + QVERIFY(m04 >= c02); + QVERIFY(!(m04 < c02)); + QVERIFY(m04 > c02); + QVERIFY(m04 != c02); + + QVERIFY(!(m02 == c14)); + QVERIFY(m02 <= c14); + QVERIFY(!(m02 >= c14)); + QVERIFY(m02 < c14); + QVERIFY(!(m02 > c14)); + QVERIFY(m02 != c14); + + QVERIFY(!(m14 == c02)); + QVERIFY(!(m14 <= c02)); + QVERIFY(m14 >= c02); + QVERIFY(!(m14 < c02)); + QVERIFY(m14 > c02); + QVERIFY(m14 != c02); + + // Cursor <-> DocumentCursor + QVERIFY(c02 == m02); + QVERIFY(c02 <= m02); + QVERIFY(c02 >= m02); + QVERIFY(!(c02 < m02)); + QVERIFY(!(c02 > m02)); + QVERIFY(!(c02 != m02)); + + QVERIFY(!(c02 == m04)); + QVERIFY(c02 <= m04); + QVERIFY(!(c02 >= m04)); + QVERIFY(c02 < m04); + QVERIFY(!(c02 > m04)); + QVERIFY(c02 != m04); + + QVERIFY(!(c04 == m02)); + QVERIFY(!(c04 <= m02)); + QVERIFY(c04 >= m02); + QVERIFY(!(c04 < m02)); + QVERIFY(c04 > m02); + QVERIFY(c04 != m02); + + QVERIFY(!(c02 == m14)); + QVERIFY(c02 <= m14); + QVERIFY(!(c02 >= m14)); + QVERIFY(c02 < m14); + QVERIFY(!(c02 > m14)); + QVERIFY(c02 != m14); + + QVERIFY(!(c14 == m02)); + QVERIFY(!(c14 <= m02)); + QVERIFY(c14 >= m02); + QVERIFY(!(c14 < m02)); + QVERIFY(c14 > m02); + QVERIFY(c14 != m02); +} + +void DocumentCursorTest::testValidTextPosition() +{ + // test: utf-32 characters that are visually only one single character (Unicode surrogates) + // Inside such a utf-32 character, the text position is not valid. + KTextEditor::DocumentPrivate doc; + DocumentCursor c(&doc); + + // 0xfffe: byte-order-mark (BOM) + // 0x002d: '-' + // 0x3dd8, 0x38de: an utf32-surrogate, see https://www.fileformat.info/info/unicode/char/1f638/browsertest.htm + const char16_t line0[] = {0xfffe, 0x2d00, 0x3dd8, 0x38de, 0x2d00}; // -xx- where xx is one utf32 char + const char16_t line1[] = {0xfffe, 0x2d00, 0x3dd8, 0x2d00, 0x2d00}; // -x-- where x is a high surrogate (broken utf32) + const char16_t line2[] = {0xfffe, 0x2d00, 0x2d00, 0x38de, 0x2d00}; // --x- where x is a low surrogate (broken utf32) + doc.setText(QString::fromUtf16(line0, 5)); + doc.insertLine(1, QString::fromUtf16(line1, 5)); + doc.insertLine(2, QString::fromUtf16(line2, 5)); + + // line 0: invalid in utf-32 char + c.setPosition(0, 0); + QVERIFY(c.isValidTextPosition()); + c.setPosition(0, 1); + QVERIFY(c.isValidTextPosition()); + c.setPosition(0, 2); + QVERIFY(!c.isValidTextPosition()); + c.setPosition(0, 3); + QVERIFY(c.isValidTextPosition()); + c.setPosition(0, 4); + QVERIFY(c.isValidTextPosition()); + c.setPosition(0, 5); + QVERIFY(!c.isValidTextPosition()); + + // line 1, valid in broken utf-32 char (2nd part missing) + c.setPosition(1, 0); + QVERIFY(c.isValidTextPosition()); + c.setPosition(1, 1); + QVERIFY(c.isValidTextPosition()); + c.setPosition(1, 2); + QVERIFY(c.isValidTextPosition()); + c.setPosition(1, 3); + QVERIFY(c.isValidTextPosition()); + c.setPosition(1, 4); + QVERIFY(c.isValidTextPosition()); + c.setPosition(1, 5); + QVERIFY(!c.isValidTextPosition()); + + // line 2, valid in broken utf-32 char (1st part missing) + c.setPosition(2, 0); + QVERIFY(c.isValidTextPosition()); + c.setPosition(2, 1); + QVERIFY(c.isValidTextPosition()); + c.setPosition(2, 2); + QVERIFY(c.isValidTextPosition()); + c.setPosition(2, 3); + QVERIFY(c.isValidTextPosition()); + c.setPosition(2, 4); + QVERIFY(c.isValidTextPosition()); + c.setPosition(2, 5); + QVERIFY(!c.isValidTextPosition()); + + // test out-of-range + c.setPosition(-1, 0); + QVERIFY(!c.isValidTextPosition()); + c.setPosition(3, 0); + QVERIFY(!c.isValidTextPosition()); + c.setPosition(0, -1); + QVERIFY(!c.isValidTextPosition()); +} + +#include "moc_kte_documentcursor.cpp" diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/kte_documentcursor.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/kte_documentcursor.h new file mode 100644 index 0000000000..3afbe347ba --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/kte_documentcursor.h @@ -0,0 +1,31 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2012-2018 Dominik Haumann + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef KTE_DOCUMENTCURSOR_TEST_H +#define KTE_DOCUMENTCURSOR_TEST_H + +#include + +class DocumentCursorTest : public QObject +{ + Q_OBJECT + +public: + DocumentCursorTest(); + ~DocumentCursorTest() override; + +private Q_SLOTS: + void initTestCase(); + void cleanupTestCase(); + + void testConvenienceApi(); + void testOperators(); + + void testValidTextPosition(); +}; + +#endif diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/messagetest.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/messagetest.cpp new file mode 100644 index 0000000000..d51276cbcd --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/messagetest.cpp @@ -0,0 +1,364 @@ +/* + This file is part of the Kate project. + SPDX-FileCopyrightText: 2013 Dominik Haumann + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "messagetest.h" + +#include +#include +#include +#include + +#include +#include + +using namespace KTextEditor; + +QTEST_MAIN(MessageTest) + +void MessageTest::initTestCase() +{ + QStandardPaths::setTestModeEnabled(true); +} + +void MessageTest::cleanupTestCase() +{ +} + +void MessageTest::testPostMessage() +{ + KTextEditor::DocumentPrivate doc; + + KTextEditor::ViewPrivate *view = static_cast(doc.createView(nullptr)); + view->show(); + view->resize(400, 300); + + QPointer message = new Message(QStringLiteral("Message text"), Message::Information); + message->setPosition(Message::TopInView); + + // posing message should succeed + QVERIFY(doc.postMessage(message)); + + // + // show message for one second, then delete again + // + QTRY_VERIFY_WITH_TIMEOUT(view->messageWidget(), 500); + QTRY_VERIFY_WITH_TIMEOUT(view->messageWidget()->isVisible(), 500); + + QVERIFY(message != nullptr); + delete message; + // fadeout animation takes 500 ms + QTRY_VERIFY_WITH_TIMEOUT(!view->messageWidget()->isVisible(), 1000); +} + +void MessageTest::testAutoHide() +{ + KTextEditor::DocumentPrivate doc; + + KTextEditor::ViewPrivate *view = static_cast(doc.createView(nullptr)); + view->show(); + view->resize(400, 300); + + // + // show a message with autoHide. Check, if it's deleted correctly + // auto hide mode: Message::Immediate + // + QPointer message = new Message(QStringLiteral("Message text"), Message::Information); + message->setPosition(Message::TopInView); + message->setAutoHide(100); + message->setAutoHideMode(Message::Immediate); + + doc.postMessage(message); + + QTRY_VERIFY_WITH_TIMEOUT(view->messageWidget()->isVisible(), 40); + + // should be deleted after 140ms + QTRY_VERIFY_WITH_TIMEOUT(message.data() == nullptr, 500); + + // message widget should be hidden after a second + QTRY_VERIFY_WITH_TIMEOUT(!view->messageWidget()->isVisible(), 1000); +} + +void MessageTest::testAutoHideAfterUserInteraction() +{ + KTextEditor::DocumentPrivate doc; + + KTextEditor::ViewPrivate *view = static_cast(doc.createView(nullptr)); + view->show(); + view->resize(400, 300); + + // + // show a message with autoHide. Check, if it's deleted correctly + // auto hide mode: Message::AfterUserInteraction + // + QPointer message = new Message(QStringLiteral("Message text"), Message::Information); + message->setPosition(Message::TopInView); + message->setAutoHide(100); + QVERIFY(message->autoHideMode() == Message::AfterUserInteraction); + doc.postMessage(message); + QTRY_VERIFY_WITH_TIMEOUT(view->messageWidget()->isVisible(), 2000); + + // now trigger user interaction + view->insertText(QStringLiteral("Hello world")); + view->setCursorPosition(Cursor(0, 5)); + + // should still be there after deleted after another 1.8 seconds + QTRY_VERIFY_WITH_TIMEOUT(message.data() != nullptr, 1800); + QVERIFY(view->messageWidget()->isVisible()); + + // another 300ms later: 3.2 seconds are gone, message should be deleted + // and fade animation should be active + QTRY_VERIFY_WITH_TIMEOUT(message.data() == nullptr, 500); + QVERIFY(view->messageWidget()->isVisible()); + + // after a total of 3.7 seconds, widget should be hidden + QTRY_VERIFY_WITH_TIMEOUT(!view->messageWidget()->isVisible(), 700); +} + +void MessageTest::testMessageQueue() +{ + KTextEditor::DocumentPrivate doc; + + KTextEditor::ViewPrivate *view = static_cast(doc.createView(nullptr)); + view->show(); + view->resize(400, 300); + + // + // add two messages, both with autoHide to 1 second, and check that the queue is processed correctly + // auto hide mode: Message::Immediate + // + QPointer m1 = new Message(QStringLiteral("Info text"), Message::Information); + m1->setPosition(Message::TopInView); + m1->setAutoHide(1000); + m1->setAutoHideMode(Message::Immediate); + + QPointer m2 = new Message(QStringLiteral("Error text"), Message::Error); + m2->setPosition(Message::TopInView); + m2->setAutoHide(1000); + m2->setAutoHideMode(Message::Immediate); + + // post both messages + QVERIFY(doc.postMessage(m1)); + QVERIFY(doc.postMessage(m2)); + + // after 0.5s, first message should be visible, (timer of m1 triggered) + QTRY_VERIFY_WITH_TIMEOUT(view->messageWidget()->isVisible() && m1.data() && m2.data(), 500); + + // after 1.0s, first message is deleted, and hide animation is active + QTRY_VERIFY_WITH_TIMEOUT(view->messageWidget()->isVisible() && !m1.data() && m2.data(), 1200); + + // timer of m2 triggered after 1.5s, i.e. after hide animation if finished + + // after 2.1s, second message should be visible + QTRY_VERIFY_WITH_TIMEOUT(view->messageWidget()->isVisible() && !m1.data() && m2.data(), 1000); + + // after 2.6s, second message is deleted, and hide animation is active + QTRY_VERIFY_WITH_TIMEOUT(view->messageWidget()->isVisible() && !m1.data() && !m2.data(), 2000); + + // after a total of 3.1s, animation is finished and widget is hidden + QTRY_VERIFY_WITH_TIMEOUT(!view->messageWidget()->isVisible() && !m1.data() && !m2.data(), 1000); +} + +void MessageTest::testPriority() +{ + KTextEditor::DocumentPrivate doc; + + KTextEditor::ViewPrivate *view = static_cast(doc.createView(nullptr)); + view->show(); + view->resize(400, 300); + + // + // add two messages + // - m1: no auto hide timer, priority 0 + // - m2: auto hide timer of 1 second, priority 1 + // test: + // - m1 should be hidden in favour of m2 + // - changing text of m1 while m2 is displayed should not change the displayed text + // + QPointer m1 = new Message(QStringLiteral("m1"), Message::Positive); + m1->setPosition(Message::TopInView); + QVERIFY(m1->priority() == 0); + + QPointer m2 = new Message(QStringLiteral("m2"), Message::Error); + m2->setPosition(Message::TopInView); + m2->setAutoHide(100); + m2->setAutoHideMode(Message::Immediate); + m2->setPriority(1); + QVERIFY(m2->priority() == 1); + + // post m1 + QVERIFY(doc.postMessage(m1)); + + // after 1s, message should be displayed + QTRY_VERIFY_WITH_TIMEOUT(view->messageWidget()->isVisible(), 1000); + QCOMPARE(view->messageWidget()->text(), QStringLiteral("m1")); + QVERIFY(m1.data() != nullptr); + + // post m2, m1 should be hidden, and m2 visible + QVERIFY(doc.postMessage(m2)); + QTRY_VERIFY_WITH_TIMEOUT(m2.data(), 1000); + + // alter text of m1 when m2 is visible, shouldn't influence m2 + QTest::qWait(60); + m1->setText(QStringLiteral("m1 changed")); + + // after 70 ms, m2 is visible + QTest::qWait(10); + QCOMPARE(view->messageWidget()->text(), QStringLiteral("m2")); + QVERIFY(m2.data() != nullptr); + + // after 160 ms, m2 is hidden again and m1 is visible again + QTest::qWait(90); + QVERIFY(view->messageWidget()->isVisible()); + QVERIFY(m1.data() != nullptr); + QVERIFY(m2.data() == nullptr); + + // finally check m1 again + QTRY_COMPARE_WITH_TIMEOUT(view->messageWidget()->text(), QStringLiteral("m1 changed"), 1000); +} + +void MessageTest::testCreateView() +{ + KTextEditor::DocumentPrivate doc; + + // + // - first post a message + // - then create two views + // + // test: + // - verify that both views get the message + // - verify that, once the message is deleted, both views hide the message + // + QPointer m1 = new Message(QStringLiteral("message"), Message::Positive); + m1->setPosition(Message::TopInView); + QVERIFY(m1->priority() == 0); + + // first post message to doc without views + QVERIFY(doc.postMessage(m1)); + + // now create views + KTextEditor::ViewPrivate *v1 = static_cast(doc.createView(nullptr)); + KTextEditor::ViewPrivate *v2 = static_cast(doc.createView(nullptr)); + v1->show(); + v2->show(); + v1->resize(400, 300); + v2->resize(400, 300); + + // make sure both views show the message + QVERIFY(v1->messageWidget()->isVisible()); + QVERIFY(v2->messageWidget()->isVisible()); + QCOMPARE(v1->messageWidget()->text(), QStringLiteral("message")); + QCOMPARE(v2->messageWidget()->text(), QStringLiteral("message")); + QVERIFY(m1.data() != nullptr); + + // delete message, then check after fadeout time 0f 0.5s whether message is gone + delete m1; + QTest::qWait(600); + QVERIFY(!v1->messageWidget()->isVisible()); + QVERIFY(!v2->messageWidget()->isVisible()); +} + +void MessageTest::testHideView() +{ + KTextEditor::DocumentPrivate doc; + + KTextEditor::ViewPrivate *view = static_cast(doc.createView(nullptr)); + view->show(); + view->resize(400, 300); + + // create message that hides after 100ms immediately + QPointer message = new Message(QStringLiteral("Message text"), Message::Information); + message->setAutoHide(100); + message->setAutoHideMode(Message::Immediate); + message->setPosition(Message::TopInView); + + // posting message should succeed + QVERIFY(doc.postMessage(message)); + + // + // test: + // - show the message for 50ms, then hide the view + // - the auto hide timer will continue, no matter what + // - showing the view again after the auto hide timer is finished + animation time really hide the widget + // + QTest::qWait(50); + QVERIFY(view->messageWidget()->isVisible()); + QCOMPARE(view->messageWidget()->text(), QStringLiteral("Message text")); + + // hide view + view->hide(); + + // wait 1s, message should be null (after total of 2200 ms) + QTRY_VERIFY_WITH_TIMEOUT(message.data() == nullptr, 1100); + + // show view again, message contents should be fading for the lasting 300 ms + view->show(); + QVERIFY(view->messageWidget()->isVisible()); + QCOMPARE(view->messageWidget()->text(), QStringLiteral("Message text")); + + // wait another 0.5s, then message widget should be hidden + QTRY_VERIFY_WITH_TIMEOUT(message.data() == nullptr, 50); + QTRY_VERIFY_WITH_TIMEOUT(!view->messageWidget()->isVisible(), 1000); +} + +void MessageTest::testHideViewAfterUserInteraction() +{ + KTextEditor::DocumentPrivate doc; + + KTextEditor::ViewPrivate *view = static_cast(doc.createView(nullptr)); + view->show(); + view->resize(400, 300); + + // create message that hides after 100ms immediately + QPointer message = new Message(QStringLiteral("Message text"), Message::Information); + message->setAutoHide(100); + QVERIFY(message->autoHideMode() == Message::AfterUserInteraction); + message->setPosition(Message::TopInView); + + // posting message should succeed + QVERIFY(doc.postMessage(message)); + + // + // test: + // - show the message for 50ms, then hide the view + // - this should stop the autoHide timer + // - showing the view again should restart the autoHide timer (again 2s) + // + QTest::qWait(50); + QVERIFY(view->messageWidget()->isVisible()); + QCOMPARE(view->messageWidget()->text(), QStringLiteral("Message text")); + + // hide view + view->hide(); + + // wait 100ms, check that message is still valid + QTest::qWait(100); + QVERIFY(message.data() != nullptr); + + // + // show view again, and trigger user interaction through resize: + // should retrigger the autoHide timer + // + view->show(); + QTest::qWait(500); + view->insertText(QStringLiteral("Hello world")); + view->setCursorPosition(Cursor(0, 5)); + + // wait 50ms and check that message is still displayed + QTest::qWait(50); + QVERIFY(message.data() != nullptr); + QVERIFY(view->messageWidget()->isVisible()); + QCOMPARE(view->messageWidget()->text(), QStringLiteral("Message text")); + + // wait another 100ms, then the message is deleted + QTRY_VERIFY_WITH_TIMEOUT(message.data() == nullptr, 100); + QVERIFY(view->messageWidget()->isVisible()); + + // another 0.5s, and the message widget should be hidden + QTRY_VERIFY_WITH_TIMEOUT(!view->messageWidget()->isVisible(), 600); +} + +#include "moc_messagetest.cpp" diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/messagetest.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/messagetest.h new file mode 100644 index 0000000000..91703eceae --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/messagetest.h @@ -0,0 +1,32 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2013 Dominik Haumann + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef KTEXTEDITOR_MESSAGE_TEST_H +#define KTEXTEDITOR_MESSAGE_TEST_H + +#include + +class MessageTest : public QObject +{ + Q_OBJECT + +public Q_SLOTS: + void initTestCase(); + void cleanupTestCase(); + +private Q_SLOTS: + void testPostMessage(); + void testAutoHide(); + void testAutoHideAfterUserInteraction(); + void testMessageQueue(); + void testPriority(); + void testCreateView(); + void testHideView(); + void testHideViewAfterUserInteraction(); +}; + +#endif // KTEXTEDITOR_MESSAGE_TEST_H diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/modificationsystem_test.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/modificationsystem_test.cpp new file mode 100644 index 0000000000..779e700659 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/modificationsystem_test.cpp @@ -0,0 +1,738 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2011-2018 Dominik Haumann + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "modificationsystem_test.h" +#include "moc_modificationsystem_test.cpp" + +#include +#include +#include + +#include +#include + +QTEST_MAIN(ModificationSystemTest) + +using namespace KTextEditor; + +void ModificationSystemTest::initTestCase() +{ + QStandardPaths::setTestModeEnabled(true); +} + +void ModificationSystemTest::cleanupTestCase() +{ +} + +static void clearModificationFlags(KTextEditor::DocumentPrivate *doc) +{ + for (int i = 0; i < doc->lines(); ++i) { + Kate::TextLine line = doc->plainKateTextLine(i); + line.markAsModified(false); + line.markAsSavedOnDisk(false); + doc->buffer().setLineMetaData(i, line); + } +} + +static void markModifiedLinesAsSaved(KTextEditor::DocumentPrivate *doc) +{ + for (int i = 0; i < doc->lines(); ++i) { + Kate::TextLine textLine = doc->plainKateTextLine(i); + if (textLine.markedAsModified()) { + textLine.markAsSavedOnDisk(true); + doc->buffer().setLineMetaData(i, textLine); + } + } +} + +void ModificationSystemTest::testInsertText() +{ + KTextEditor::DocumentPrivate doc; + + const QString content(QStringLiteral("first line\n")); + doc.setText(content); + + // now all lines should have state "Modified" + QVERIFY(doc.isLineModified(0)); + QVERIFY(!doc.isLineSaved(0)); + + // clear all modification flags, forces no flags + doc.setModified(false); + doc.undoManager()->updateLineModifications(); + clearModificationFlags(&doc); + + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineSaved(0)); + + // now we have an a unmodified file, start real tests + // insert text in line 0, then undo and redo + doc.insertText(Cursor(0, 2), QStringLiteral("_")); + QVERIFY(doc.isLineModified(0)); + QVERIFY(!doc.isLineSaved(0)); + + doc.undo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(doc.isLineSaved(0)); + + doc.redo(); + QVERIFY(doc.isLineModified(0)); + QVERIFY(!doc.isLineSaved(0)); + + // + // now simulate "save", then do the undo/redo tests again + // + doc.setModified(false); + markModifiedLinesAsSaved(&doc); + doc.undoManager()->updateLineModifications(); + + // now no line should have state "Modified" + QVERIFY(!doc.isLineModified(0)); + QVERIFY(doc.isLineSaved(0)); + + // undo the text insertion + doc.undo(); + QVERIFY(doc.isLineModified(0)); + QVERIFY(!doc.isLineSaved(0)); + + doc.redo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(doc.isLineSaved(0)); +} + +void ModificationSystemTest::testRemoveText() +{ + KTextEditor::DocumentPrivate doc; + + const QString content(QStringLiteral("first line\n")); + doc.setText(content); + + // now all lines should have state "Modified" + QVERIFY(doc.isLineModified(0)); + QVERIFY(!doc.isLineSaved(0)); + + // clear all modification flags, forces no flags + doc.setModified(false); + doc.undoManager()->updateLineModifications(); + clearModificationFlags(&doc); + + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineSaved(0)); + + // now we have an a unmodified file, start real tests + // remove text in line 0, then undo and redo + doc.removeText(Range(Cursor(0, 1), Cursor(0, 2))); + QVERIFY(doc.isLineModified(0)); + QVERIFY(!doc.isLineSaved(0)); + + doc.undo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(doc.isLineSaved(0)); + + doc.redo(); + QVERIFY(doc.isLineModified(0)); + QVERIFY(!doc.isLineSaved(0)); + + // + // now simulate "save", then do the undo/redo tests again + // + doc.setModified(false); + markModifiedLinesAsSaved(&doc); + doc.undoManager()->updateLineModifications(); + + // now no line should have state "Modified" + QVERIFY(!doc.isLineModified(0)); + QVERIFY(doc.isLineSaved(0)); + + // undo the text insertion + doc.undo(); + QVERIFY(doc.isLineModified(0)); + QVERIFY(!doc.isLineSaved(0)); + + doc.redo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(doc.isLineSaved(0)); +} + +void ModificationSystemTest::testInsertLine() +{ + KTextEditor::DocumentPrivate doc; + + const QString content( + QStringLiteral("0\n" + "2")); + doc.setText(content); + + // clear all modification flags, forces no flags + doc.setModified(false); + doc.undoManager()->updateLineModifications(); + clearModificationFlags(&doc); + + // insert at line 1 + doc.insertLine(1, QStringLiteral("1")); + + QVERIFY(!doc.isLineModified(0)); + QVERIFY(doc.isLineModified(1)); + QVERIFY(!doc.isLineModified(2)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + QVERIFY(!doc.isLineSaved(2)); + + doc.undo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + + doc.redo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(doc.isLineModified(1)); + QVERIFY(!doc.isLineModified(2)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + QVERIFY(!doc.isLineSaved(2)); + + // + // now simulate "save", then do the undo/redo tests again + // + doc.setModified(false); + markModifiedLinesAsSaved(&doc); + doc.undoManager()->updateLineModifications(); + + // now no line should have state "Modified" + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineModified(2)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(doc.isLineSaved(1)); + QVERIFY(!doc.isLineSaved(2)); + + // undo the text insertion + doc.undo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + + doc.redo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineModified(2)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(doc.isLineSaved(1)); + QVERIFY(!doc.isLineSaved(2)); +} + +void ModificationSystemTest::testRemoveLine() +{ + KTextEditor::DocumentPrivate doc; + + const QString content( + QStringLiteral("0\n" + "1\n" + "2")); + doc.setText(content); + + // clear all modification flags, forces no flags + doc.setModified(false); + doc.undoManager()->updateLineModifications(); + clearModificationFlags(&doc); + + // remove at line 1 + doc.removeLine(1); + + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + + doc.undo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineModified(2)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(doc.isLineSaved(1)); + QVERIFY(!doc.isLineSaved(2)); + + doc.redo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + + // + // now simulate "save", then do the undo/redo tests again + // + doc.setModified(false); + markModifiedLinesAsSaved(&doc); + doc.undoManager()->updateLineModifications(); + + // now no line should have state "Modified" + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + + // undo the text insertion + doc.undo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(doc.isLineModified(1)); + QVERIFY(!doc.isLineModified(2)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + QVERIFY(!doc.isLineSaved(2)); + + doc.redo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); +} + +void ModificationSystemTest::testWrapLineMid() +{ + for (int i = 0; i < 2; ++i) { + bool insertNewLine = (i == 1); + KTextEditor::DocumentPrivate doc; + + const QString content( + QStringLiteral("aaaa\n" + "bbbb\n" + "cccc")); + doc.setText(content); + + // clear all modification flags, forces no flags + doc.setModified(false); + doc.undoManager()->updateLineModifications(); + clearModificationFlags(&doc); + + // wrap line 1 at |: bb|bb + doc.editWrapLine(1, 2, insertNewLine); + + QVERIFY(!doc.isLineModified(0)); + QVERIFY(doc.isLineModified(1)); + QVERIFY(doc.isLineModified(2)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + QVERIFY(!doc.isLineSaved(2)); + + doc.undo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(doc.isLineSaved(1)); + + doc.redo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(doc.isLineModified(1)); + QVERIFY(doc.isLineModified(2)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + QVERIFY(!doc.isLineSaved(2)); + + // + // now simulate "save", then do the undo/redo tests again + // + doc.setModified(false); + markModifiedLinesAsSaved(&doc); + doc.undoManager()->updateLineModifications(); + + // now no line should have state "Modified" + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineModified(2)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(doc.isLineSaved(1)); + QVERIFY(doc.isLineSaved(2)); + + // undo the text insertion + doc.undo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(doc.isLineModified(1)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + + doc.redo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineModified(2)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(doc.isLineSaved(1)); + QVERIFY(doc.isLineSaved(2)); + } +} + +void ModificationSystemTest::testWrapLineAtEnd() +{ + KTextEditor::DocumentPrivate doc; + + const QString content( + QStringLiteral("aaaa\n" + "bbbb")); + doc.setText(content); + + // clear all modification flags, forces no flags + doc.setModified(false); + doc.undoManager()->updateLineModifications(); + clearModificationFlags(&doc); + + // wrap line 0 at end + doc.editWrapLine(0, 4); + + QVERIFY(!doc.isLineModified(0)); + QVERIFY(doc.isLineModified(1)); + QVERIFY(!doc.isLineModified(2)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + QVERIFY(!doc.isLineSaved(2)); + + doc.undo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + + doc.redo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(doc.isLineModified(1)); + QVERIFY(!doc.isLineModified(2)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + QVERIFY(!doc.isLineSaved(2)); + + // + // now simulate "save", then do the undo/redo tests again + // + doc.setModified(false); + markModifiedLinesAsSaved(&doc); + doc.undoManager()->updateLineModifications(); + + // now no line should have state "Modified" + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineModified(2)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(doc.isLineSaved(1)); + QVERIFY(!doc.isLineSaved(2)); + + // undo the text insertion + doc.undo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + + doc.redo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineModified(2)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(doc.isLineSaved(1)); + QVERIFY(!doc.isLineSaved(2)); +} + +void ModificationSystemTest::testWrapLineAtStart() +{ + KTextEditor::DocumentPrivate doc; + + const QString content( + QStringLiteral("aaaa\n" + "bbbb")); + doc.setText(content); + + // clear all modification flags, forces no flags + doc.setModified(false); + doc.undoManager()->updateLineModifications(); + clearModificationFlags(&doc); + + // wrap line 0 at end + doc.editWrapLine(0, 0); + + QVERIFY(doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineModified(2)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + QVERIFY(!doc.isLineSaved(2)); + + doc.undo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + + doc.redo(); + QVERIFY(doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineModified(2)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + QVERIFY(!doc.isLineSaved(2)); + + // + // now simulate "save", then do the undo/redo tests again + // + doc.setModified(false); + markModifiedLinesAsSaved(&doc); + doc.undoManager()->updateLineModifications(); + + // now no line should have state "Modified" + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineModified(2)); + QVERIFY(doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + QVERIFY(!doc.isLineSaved(2)); + + // undo the text insertion + doc.undo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + + doc.redo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineModified(2)); + QVERIFY(doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + QVERIFY(!doc.isLineSaved(2)); +} + +void ModificationSystemTest::testUnWrapLine() +{ + KTextEditor::DocumentPrivate doc; + + const QString content( + QStringLiteral("aaaa\n" + "bbbb\n" + "cccc")); + doc.setText(content); + + // clear all modification flags, forces no flags + doc.setModified(false); + doc.undoManager()->updateLineModifications(); + clearModificationFlags(&doc); + + // join line 0 and 1 + doc.editUnWrapLine(0); + + QVERIFY(doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + + doc.undo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineModified(2)); + QVERIFY(doc.isLineSaved(0)); + QVERIFY(doc.isLineSaved(1)); + QVERIFY(!doc.isLineSaved(2)); + + doc.redo(); + QVERIFY(doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + + // + // now simulate "save", then do the undo/redo tests again + // + doc.setModified(false); + markModifiedLinesAsSaved(&doc); + doc.undoManager()->updateLineModifications(); + + // now no line should have state "Modified" + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + + // undo the text insertion + doc.undo(); + QVERIFY(doc.isLineModified(0)); + QVERIFY(doc.isLineModified(1)); + QVERIFY(!doc.isLineModified(2)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + QVERIFY(!doc.isLineSaved(2)); + + doc.redo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); +} + +void ModificationSystemTest::testUnWrapLine1Empty() +{ + KTextEditor::DocumentPrivate doc; + + const QString content( + QStringLiteral("aaaa\n" + "\n" + "bbbb")); + doc.setText(content); + + // clear all modification flags, forces no flags + doc.setModified(false); + doc.undoManager()->updateLineModifications(); + clearModificationFlags(&doc); + + // join line 1 and 2 + doc.editUnWrapLine(1); + + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + + doc.undo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineModified(2)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(doc.isLineSaved(1)); + QVERIFY(!doc.isLineSaved(2)); + + doc.redo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + + // + // now simulate "save", then do the undo/redo tests again + // + doc.setModified(false); + markModifiedLinesAsSaved(&doc); + doc.undoManager()->updateLineModifications(); + + // now no line should have state "Modified" + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + + // undo the text insertion + doc.undo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(doc.isLineModified(1)); + QVERIFY(!doc.isLineModified(2)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + QVERIFY(!doc.isLineSaved(2)); + + doc.redo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); +} + +void ModificationSystemTest::testUnWrapLine2Empty() +{ + KTextEditor::DocumentPrivate doc; + + const QString content( + QStringLiteral("aaaa\n" + "\n" + "bbbb")); + doc.setText(content); + + // clear all modification flags, forces no flags + doc.setModified(false); + doc.undoManager()->updateLineModifications(); + clearModificationFlags(&doc); + + // join line 0 and 1 + doc.editUnWrapLine(0); + + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + + doc.undo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineModified(2)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(doc.isLineSaved(1)); + QVERIFY(!doc.isLineSaved(2)); + + doc.redo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + + // + // now simulate "save", then do the undo/redo tests again + // + doc.setModified(false); + markModifiedLinesAsSaved(&doc); + doc.undoManager()->updateLineModifications(); + + // now no line should have state "Modified" + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + + // undo the text insertion + doc.undo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(doc.isLineModified(1)); + QVERIFY(!doc.isLineModified(2)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); + QVERIFY(!doc.isLineSaved(2)); + + doc.redo(); + QVERIFY(!doc.isLineModified(0)); + QVERIFY(!doc.isLineModified(1)); + QVERIFY(!doc.isLineSaved(0)); + QVERIFY(!doc.isLineSaved(1)); +} + +void ModificationSystemTest::testNavigation() +{ + KTextEditor::DocumentPrivate doc; + + const QString content( + QStringLiteral("0\n" + "1\n" + "2")); + doc.setText(content); + + // clear all modification flags, forces no flags + doc.setModified(false); + doc.undoManager()->updateLineModifications(); + clearModificationFlags(&doc); + + // touch line 0 and line 2: + doc.insertText(Cursor(0, 1), QStringLiteral("-")); + doc.insertText(Cursor(2, 1), QStringLiteral("-")); + + // test down navigation: + const bool down = true; + QCOMPARE(doc.findTouchedLine(-1, down), -1); + QCOMPARE(doc.findTouchedLine(0, down), 0); + QCOMPARE(doc.findTouchedLine(1, down), 2); + QCOMPARE(doc.findTouchedLine(2, down), 2); + QCOMPARE(doc.findTouchedLine(3, down), -1); + + // test up navigation + const bool up = false; + QCOMPARE(doc.findTouchedLine(-1, up), -1); + QCOMPARE(doc.findTouchedLine(0, up), 0); + QCOMPARE(doc.findTouchedLine(1, up), 0); + QCOMPARE(doc.findTouchedLine(2, up), 2); + QCOMPARE(doc.findTouchedLine(3, up), -1); +} diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/modificationsystem_test.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/modificationsystem_test.h new file mode 100644 index 0000000000..65b237c36e --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/modificationsystem_test.h @@ -0,0 +1,44 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2011-2018 Dominik Haumann + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef KATE_MODIFICATION_SYSTEM_TEST_H +#define KATE_MODIFICATION_SYSTEM_TEST_H + +#include + +/** + * Test the complete Line Modification System. + * Covered classes: + * - KateModification* in part/undo/ + * - modification flags in Kate::TextLine in part/buffer/ + */ +class ModificationSystemTest : public QObject +{ + Q_OBJECT + +private Q_SLOTS: + void initTestCase(); + void cleanupTestCase(); + + void testInsertText(); + void testRemoveText(); + + void testInsertLine(); + void testRemoveLine(); + + void testWrapLineMid(); + void testWrapLineAtEnd(); + void testWrapLineAtStart(); + + void testUnWrapLine(); + void testUnWrapLine1Empty(); + void testUnWrapLine2Empty(); + + void testNavigation(); +}; + +#endif diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/movingcursor_test.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/movingcursor_test.cpp new file mode 100644 index 0000000000..14b7b77c0b --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/movingcursor_test.cpp @@ -0,0 +1,328 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2010-2018 Dominik Haumann + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "movingcursor_test.h" +#include "moc_movingcursor_test.cpp" + +#include +#include + +#include +#include + +#include + +using namespace KTextEditor; + +QTEST_MAIN(MovingCursorTest) + +MovingCursorTest::MovingCursorTest() + : QObject() +{ + QStandardPaths::setTestModeEnabled(true); +} + +MovingCursorTest::~MovingCursorTest() +{ +} + +// tests: +// - MovingCursor with StayOnInsert +// - MovingCursor with MoveOnInsert +void MovingCursorTest::testMovingCursor() +{ + KTextEditor::DocumentPrivate doc; + std::unique_ptr invalid{doc.newMovingCursor(Cursor::invalid())}; + std::unique_ptr moveOnInsert{doc.newMovingCursor(Cursor(0, 0), MovingCursor::MoveOnInsert)}; + std::unique_ptr stayOnInsert{doc.newMovingCursor(Cursor(0, 0), MovingCursor::StayOnInsert)}; + + // verify initial conditions + QVERIFY(!invalid->isValid()); + QCOMPARE(moveOnInsert->toCursor(), Cursor(0, 0)); + QCOMPARE(stayOnInsert->toCursor(), Cursor(0, 0)); + + // insert some text + doc.insertText(Cursor(0, 0), QStringLiteral("\n1\n22")); + + // check new cursor positions + QCOMPARE(moveOnInsert->toCursor(), Cursor(2, 2)); + QCOMPARE(stayOnInsert->toCursor(), Cursor(0, 0)); + + // set position to (1, 1) and insert text before cursor + stayOnInsert->setPosition(Cursor(1, 1)); + QCOMPARE(stayOnInsert->toCursor(), Cursor(1, 1)); + doc.insertText(Cursor(1, 0), QStringLiteral("test")); + QCOMPARE(stayOnInsert->toCursor(), Cursor(1, 5)); + doc.undo(); + QCOMPARE(stayOnInsert->toCursor(), Cursor(1, 1)); + + // position still at (1, 1). insert text at cursor + doc.insertText(Cursor(1, 1), QStringLiteral("test")); + QCOMPARE(stayOnInsert->toCursor(), Cursor(1, 1)); + doc.undo(); + QCOMPARE(stayOnInsert->toCursor(), Cursor(1, 1)); + + // + // same tests with the moveOnInsert cursor + // + // set position to (1, 1) and insert text before cursor + moveOnInsert->setPosition(Cursor(1, 1)); + QCOMPARE(moveOnInsert->toCursor(), Cursor(1, 1)); + doc.insertText(Cursor(1, 0), QStringLiteral("test")); + QCOMPARE(moveOnInsert->toCursor(), Cursor(1, 5)); + doc.undo(); + QCOMPARE(moveOnInsert->toCursor(), Cursor(1, 1)); + + // position still at (1, 1). insert text at cursor + doc.insertText(Cursor(1, 1), QStringLiteral("test")); + QCOMPARE(moveOnInsert->toCursor(), Cursor(1, 5)); + doc.undo(); + QCOMPARE(moveOnInsert->toCursor(), Cursor(1, 1)); + + // set both cursors to (2, 1) then delete text range that contains cursors + moveOnInsert->setPosition(Cursor(2, 1)); + stayOnInsert->setPosition(Cursor(2, 1)); + doc.removeText(Range(Cursor(2, 0), Cursor(2, 2))); + QCOMPARE(moveOnInsert->toCursor(), Cursor(2, 0)); + QCOMPARE(moveOnInsert->toCursor(), Cursor(2, 0)); +} + +// tests: +// - atStartOfDocument +// - atStartOfLine +// - atEndOfDocument +// - atEndOfLine +// - move forward with Wrap +// - move forward with NoWrap +// - move backward +// - gotoNextLine +// - gotoPreviousLine +void MovingCursorTest::testConvenienceApi() +{ + KTextEditor::DocumentPrivate doc; + doc.setText( + QStringLiteral("\n" + "1\n" + "22\n" + "333\n" + "4444\n" + "55555")); + + // check start and end of document + std::unique_ptr startOfDoc{doc.newMovingCursor(Cursor(0, 0))}; + std::unique_ptr endOfDoc{doc.newMovingCursor(Cursor(5, 5))}; + QVERIFY(startOfDoc->atStartOfDocument()); + QVERIFY(startOfDoc->atStartOfLine()); + QVERIFY(endOfDoc->atEndOfDocument()); + QVERIFY(endOfDoc->atEndOfLine()); + + // set cursor to (2, 2) and then move to the left two times + std::unique_ptr moving{doc.newMovingCursor(Cursor(2, 2))}; + QVERIFY(moving->atEndOfLine()); // at 2, 2 + QVERIFY(moving->move(-1)); // at 2, 1 + QCOMPARE(moving->toCursor(), Cursor(2, 1)); + QVERIFY(!moving->atEndOfLine()); + QVERIFY(moving->move(-1)); // at 2, 0 + QCOMPARE(moving->toCursor(), Cursor(2, 0)); + QVERIFY(moving->atStartOfLine()); + + // now move again to the left, should wrap to (1, 1) + QVERIFY(moving->move(-1)); // at 1, 1 + QCOMPARE(moving->toCursor(), Cursor(1, 1)); + QVERIFY(moving->atEndOfLine()); + + // advance 7 characters to position (3, 3) + QVERIFY(moving->move(7)); // at 3, 3 + QCOMPARE(moving->toCursor(), Cursor(3, 3)); + + // advance 20 characters in NoWrap mode, then go back 10 characters + QVERIFY(moving->move(20, MovingCursor::NoWrap)); // at 3, 23 + QCOMPARE(moving->toCursor(), Cursor(3, 23)); + QVERIFY(moving->move(-10)); // at 3, 13 + QCOMPARE(moving->toCursor(), Cursor(3, 13)); + + // still at invalid text position. move one char to wrap around + QVERIFY(!moving->isValidTextPosition()); // at 3, 13 + QVERIFY(moving->move(1)); // at 4, 0 + QCOMPARE(moving->toCursor(), Cursor(4, 0)); + + // moving 11 characters in wrap mode moves to (5, 6), which is not a valid + // text position anymore. Hence, moving should be rejected. + QVERIFY(!moving->move(11)); + QVERIFY(moving->move(10)); + QVERIFY(moving->atEndOfDocument()); + + // try to move to next line, which fails. then go to previous line + QVERIFY(!moving->gotoNextLine()); + QVERIFY(moving->gotoPreviousLine()); + QCOMPARE(moving->toCursor(), Cursor(4, 0)); +} + +void MovingCursorTest::testOperators() +{ + KTextEditor::DocumentPrivate doc; + doc.setText( + QStringLiteral("--oo--\n" + "--oo--\n" + "--oo--")); + + // create lots of cursors for comparison + Cursor invalid = Cursor::invalid(); + Cursor c02(0, 2); + Cursor c04(0, 4); + Cursor c14(1, 4); + + std::unique_ptr m02{doc.newMovingCursor(Cursor(0, 2))}; + std::unique_ptr m04{doc.newMovingCursor(Cursor(0, 4))}; + std::unique_ptr m14{doc.newMovingCursor(Cursor(1, 4))}; + + // invalid comparison + QVERIFY(invalid == invalid); + QVERIFY(invalid <= c02); + QVERIFY(invalid < c02); + QVERIFY(!(invalid > c02)); + QVERIFY(!(invalid >= c02)); + + QVERIFY(!(invalid == *m02)); + QVERIFY(invalid <= *m02); + QVERIFY(invalid < *m02); + QVERIFY(!(invalid > *m02)); + QVERIFY(!(invalid >= *m02)); + + QVERIFY(!(*m02 == invalid)); + QVERIFY(!(*m02 <= invalid)); + QVERIFY(!(*m02 < invalid)); + QVERIFY(*m02 > invalid); + QVERIFY(*m02 >= invalid); + + // MovingCursor <-> MovingCursor + QVERIFY(*m02 == *m02); + QVERIFY(*m02 <= *m02); + QVERIFY(*m02 >= *m02); + QVERIFY(!(*m02 < *m02)); + QVERIFY(!(*m02 > *m02)); + QVERIFY(!(*m02 != *m02)); + + QVERIFY(!(*m02 == *m04)); + QVERIFY(*m02 <= *m04); + QVERIFY(!(*m02 >= *m04)); + QVERIFY(*m02 < *m04); + QVERIFY(!(*m02 > *m04)); + QVERIFY(*m02 != *m04); + + QVERIFY(!(*m04 == *m02)); + QVERIFY(!(*m04 <= *m02)); + QVERIFY(*m04 >= *m02); + QVERIFY(!(*m04 < *m02)); + QVERIFY(*m04 > *m02); + QVERIFY(*m04 != *m02); + + QVERIFY(!(*m02 == *m14)); + QVERIFY(*m02 <= *m14); + QVERIFY(!(*m02 >= *m14)); + QVERIFY(*m02 < *m14); + QVERIFY(!(*m02 > *m14)); + QVERIFY(*m02 != *m14); + + QVERIFY(!(*m14 == *m02)); + QVERIFY(!(*m14 <= *m02)); + QVERIFY(*m14 >= *m02); + QVERIFY(!(*m14 < *m02)); + QVERIFY(*m14 > *m02); + QVERIFY(*m14 != *m02); + + // MovingCursor <-> Cursor + QVERIFY(*m02 == c02); + QVERIFY(*m02 <= c02); + QVERIFY(*m02 >= c02); + QVERIFY(!(*m02 < c02)); + QVERIFY(!(*m02 > c02)); + QVERIFY(!(*m02 != c02)); + + QVERIFY(!(*m02 == c04)); + QVERIFY(*m02 <= c04); + QVERIFY(!(*m02 >= c04)); + QVERIFY(*m02 < c04); + QVERIFY(!(*m02 > c04)); + QVERIFY(*m02 != c04); + + QVERIFY(!(*m04 == c02)); + QVERIFY(!(*m04 <= c02)); + QVERIFY(*m04 >= c02); + QVERIFY(!(*m04 < c02)); + QVERIFY(*m04 > c02); + QVERIFY(*m04 != c02); + + QVERIFY(!(*m02 == c14)); + QVERIFY(*m02 <= c14); + QVERIFY(!(*m02 >= c14)); + QVERIFY(*m02 < c14); + QVERIFY(!(*m02 > c14)); + QVERIFY(*m02 != c14); + + QVERIFY(!(*m14 == c02)); + QVERIFY(!(*m14 <= c02)); + QVERIFY(*m14 >= c02); + QVERIFY(!(*m14 < c02)); + QVERIFY(*m14 > c02); + QVERIFY(*m14 != c02); + + // Cursor <-> MovingCursor + QVERIFY(c02 == *m02); + QVERIFY(c02 <= *m02); + QVERIFY(c02 >= *m02); + QVERIFY(!(c02 < *m02)); + QVERIFY(!(c02 > *m02)); + QVERIFY(!(c02 != *m02)); + + QVERIFY(!(c02 == *m04)); + QVERIFY(c02 <= *m04); + QVERIFY(!(c02 >= *m04)); + QVERIFY(c02 < *m04); + QVERIFY(!(c02 > *m04)); + QVERIFY(c02 != *m04); + + QVERIFY(!(c04 == *m02)); + QVERIFY(!(c04 <= *m02)); + QVERIFY(c04 >= *m02); + QVERIFY(!(c04 < *m02)); + QVERIFY(c04 > *m02); + QVERIFY(c04 != *m02); + + QVERIFY(!(c02 == *m14)); + QVERIFY(c02 <= *m14); + QVERIFY(!(c02 >= *m14)); + QVERIFY(c02 < *m14); + QVERIFY(!(c02 > *m14)); + QVERIFY(c02 != *m14); + + QVERIFY(!(c14 == *m02)); + QVERIFY(!(c14 <= *m02)); + QVERIFY(c14 >= *m02); + QVERIFY(!(c14 < *m02)); + QVERIFY(c14 > *m02); + QVERIFY(c14 != *m02); +} + +void MovingCursorTest::testInvalidMovingCursor() +{ + // will die at end of scope to trigger the bug + KTextEditor::DocumentPrivate doc; + + // add invalid MovingCursor. Inserts c into KateBuffer::m_invalidCursors + std::unique_ptr c{doc.newMovingCursor(Cursor(-1, -1))}; + QVERIFY(Cursor(-1, -1) == *c); + + c->setPosition(Cursor(0, 0)); + QVERIFY(Cursor(0, 0) == *c); + + // now c should be removed from KateBuffer::m_invalidCursors + c.reset(); + + // crash in bug https://bugs.kde.org/show_bug.cgi?id=248926 + // if it crashes: c is still in KateBuffer::m_invalidCursors -> double deletion +} diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/movingcursor_test.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/movingcursor_test.h new file mode 100644 index 0000000000..2a24e6bf60 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/movingcursor_test.h @@ -0,0 +1,28 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2010-2018 Dominik Haumann + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef KATE_MOVINGCURSOR_TEST_H +#define KATE_MOVINGCURSOR_TEST_H + +#include + +class MovingCursorTest : public QObject +{ + Q_OBJECT + +public: + MovingCursorTest(); + ~MovingCursorTest() override; + +private Q_SLOTS: + void testMovingCursor(); + void testConvenienceApi(); + void testOperators(); + void testInvalidMovingCursor(); +}; + +#endif // KATE_MOVINGCURSOR_TEST_H diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/movingrange_test.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/movingrange_test.cpp new file mode 100644 index 0000000000..75e8dcbea2 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/movingrange_test.cpp @@ -0,0 +1,928 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2010-2018 Dominik Haumann + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "movingrange_test.h" +#include "moc_movingrange_test.cpp" + +#include +#include +#include +#include +#include + +#include +#include + +using namespace KTextEditor; + +QTEST_MAIN(MovingRangeTest) + +class RangeFeedback : public MovingRangeFeedback +{ +public: + RangeFeedback(bool deleteOnInvalid = false) + : MovingRangeFeedback() + , m_deleteOnInvalidation(deleteOnInvalid) + { + reset(); + } + + void rangeEmpty(MovingRange * /*range*/) override + { + m_rangeEmptyCalled = true; + } + + void rangeInvalid(MovingRange *range) override + { + if (m_deleteOnInvalidation) { + delete range; + } + m_rangeInvalidCalled = true; + } + + void mouseEnteredRange(MovingRange * /*range*/, View * /*view*/) override + { + m_mouseEnteredRangeCalled = true; + } + + void mouseExitedRange(MovingRange * /*range*/, View * /*view*/) override + { + m_mouseExitedRangeCalled = true; + } + + void caretEnteredRange(MovingRange * /*range*/, View * /*view*/) override + { + m_caretEnteredRangeCalled = true; + } + + void caretExitedRange(MovingRange * /*range*/, View * /*view*/) override + { + m_caretExitedRangeCalled = true; + } + + // + // Test functions to reset feedback watcher + // +public: + void reset() + { + m_rangeEmptyCalled = false; + m_rangeInvalidCalled = false; + m_mouseEnteredRangeCalled = false; + m_mouseExitedRangeCalled = false; + m_caretEnteredRangeCalled = false; + m_caretExitedRangeCalled = false; + } + + void verifyReset() + { + QVERIFY(!m_rangeEmptyCalled); + QVERIFY(!m_rangeInvalidCalled); + QVERIFY(!m_mouseEnteredRangeCalled); + QVERIFY(!m_mouseExitedRangeCalled); + QVERIFY(!m_caretEnteredRangeCalled); + QVERIFY(!m_caretExitedRangeCalled); + } + + bool rangeEmptyCalled() const + { + return m_rangeEmptyCalled; + } + bool rangeInvalidCalled() const + { + return m_rangeInvalidCalled; + } + bool mouseEnteredRangeCalled() const + { + return m_mouseEnteredRangeCalled; + } + bool mouseExitedRangeCalled() const + { + return m_mouseExitedRangeCalled; + } + bool caretEnteredRangeCalled() const + { + return m_caretEnteredRangeCalled; + } + bool caretExitedRangeCalled() const + { + return m_caretExitedRangeCalled; + } + +private: + const bool m_deleteOnInvalidation; + bool m_rangeEmptyCalled; + bool m_rangeInvalidCalled; + bool m_mouseEnteredRangeCalled; + bool m_mouseExitedRangeCalled; + bool m_caretEnteredRangeCalled; + bool m_caretExitedRangeCalled; +}; + +MovingRangeTest::MovingRangeTest() + : QObject() +{ + QStandardPaths::setTestModeEnabled(true); +} + +MovingRangeTest::~MovingRangeTest() +{ +} + +// tests: +// - RangeFeedback::rangeEmpty +void MovingRangeTest::testFeedbackEmptyRange() +{ + KTextEditor::DocumentPrivate doc; + // the range created below will span the 'x' characters + QString text( + QStringLiteral("..xxxx\n" + "xxxx..")); + doc.setText(text); + + // create range feedback + RangeFeedback rf; + + // allow empty + std::unique_ptr range( + doc.newMovingRange(Range(Cursor(0, 2), Cursor(1, 4)), KTextEditor::MovingRange::DoNotExpand, KTextEditor::MovingRange::AllowEmpty)); + range->setFeedback(&rf); + rf.verifyReset(); + + // remove exact range + doc.removeText(range->toRange()); + QVERIFY(rf.rangeEmptyCalled()); + QVERIFY(!rf.rangeInvalidCalled()); + QVERIFY(!rf.mouseEnteredRangeCalled()); + QVERIFY(!rf.mouseExitedRangeCalled()); + QVERIFY(!rf.caretEnteredRangeCalled()); + QVERIFY(!rf.caretExitedRangeCalled()); + + // clear document: should call rangeInvalid + rf.reset(); + rf.verifyReset(); + doc.clear(); + QVERIFY(rf.rangeInvalidCalled()); + QVERIFY(!rf.rangeEmptyCalled()); + QVERIFY(!rf.mouseEnteredRangeCalled()); + QVERIFY(!rf.mouseExitedRangeCalled()); + QVERIFY(!rf.caretEnteredRangeCalled()); + QVERIFY(!rf.caretExitedRangeCalled()); + + // setText: should behave just like clear document: call rangeInvalid again + doc.setText(text); + range->setRange(Range(Cursor(0, 2), Cursor(1, 4))); + rf.reset(); + rf.verifyReset(); + doc.setText(QStringLiteral("--yyyy\nyyyy--")); + QVERIFY(rf.rangeInvalidCalled()); + QVERIFY(!rf.rangeEmptyCalled()); + QVERIFY(!rf.mouseEnteredRangeCalled()); + QVERIFY(!rf.mouseExitedRangeCalled()); + QVERIFY(!rf.caretEnteredRangeCalled()); + QVERIFY(!rf.caretExitedRangeCalled()); + + // now remove entire document range. In this case, emptyRange should be called + // instead of rangeInvalid + doc.setText(text); + range->setRange(Range(Cursor(0, 2), Cursor(1, 4))); + rf.reset(); + rf.verifyReset(); + doc.removeText(doc.documentRange()); + QVERIFY(rf.rangeEmptyCalled()); + QVERIFY(!rf.rangeInvalidCalled()); + QVERIFY(!rf.mouseEnteredRangeCalled()); + QVERIFY(!rf.mouseExitedRangeCalled()); + QVERIFY(!rf.caretEnteredRangeCalled()); + QVERIFY(!rf.caretExitedRangeCalled()); +} + +// tests: +// - RangeFeedback::rangeInvalid +void MovingRangeTest::testFeedbackInvalidRange() +{ + KTextEditor::DocumentPrivate doc; + // the range created below will span the 'x' characters + QString text( + QStringLiteral("..xxxx\n" + "xxxx..")); + doc.setText(text); + + // create range feedback + RangeFeedback rf; + + // allow empty + std::unique_ptr range( + doc.newMovingRange(Range(Cursor(0, 2), Cursor(1, 4)), KTextEditor::MovingRange::DoNotExpand, KTextEditor::MovingRange::InvalidateIfEmpty)); + range->setFeedback(&rf); + rf.verifyReset(); + + // remove exact range + doc.removeText(range->toRange()); + QVERIFY(!rf.rangeEmptyCalled()); + QVERIFY(rf.rangeInvalidCalled()); + QVERIFY(!rf.mouseEnteredRangeCalled()); + QVERIFY(!rf.mouseExitedRangeCalled()); + QVERIFY(!rf.caretEnteredRangeCalled()); + QVERIFY(!rf.caretExitedRangeCalled()); + + // clear document: should call rangeInvalid again + doc.setText(text); + range->setRange(Range(Cursor(0, 2), Cursor(1, 4))); + rf.reset(); + rf.verifyReset(); + doc.clear(); + QVERIFY(rf.rangeInvalidCalled()); + QVERIFY(!rf.rangeEmptyCalled()); + QVERIFY(!rf.mouseEnteredRangeCalled()); + QVERIFY(!rf.mouseExitedRangeCalled()); + QVERIFY(!rf.caretEnteredRangeCalled()); + QVERIFY(!rf.caretExitedRangeCalled()); + + // setText: should behave just like clear document: call rangeInvalid again + doc.setText(text); + range->setRange(Range(Cursor(0, 2), Cursor(1, 4))); + rf.reset(); + rf.verifyReset(); + doc.setText(QStringLiteral("--yyyy\nyyyy--")); + QVERIFY(rf.rangeInvalidCalled()); + QVERIFY(!rf.rangeEmptyCalled()); + QVERIFY(!rf.mouseEnteredRangeCalled()); + QVERIFY(!rf.mouseExitedRangeCalled()); + QVERIFY(!rf.caretEnteredRangeCalled()); + QVERIFY(!rf.caretExitedRangeCalled()); + + // now remove entire document range. Call rangeInvalid again + doc.setText(text); + range->setRange(Range(Cursor(0, 2), Cursor(1, 4))); + rf.reset(); + rf.verifyReset(); + doc.removeText(doc.documentRange()); + QVERIFY(rf.rangeInvalidCalled()); + QVERIFY(!rf.rangeEmptyCalled()); + QVERIFY(!rf.mouseEnteredRangeCalled()); + QVERIFY(!rf.mouseExitedRangeCalled()); + QVERIFY(!rf.caretEnteredRangeCalled()); + QVERIFY(!rf.caretExitedRangeCalled()); +} + +// tests: +// - RangeFeedback::caretEnteredRange +// - RangeFeedback::caretExitedRange +void MovingRangeTest::testFeedbackCaret() +{ + KTextEditor::DocumentPrivate doc; + // we only use 'x' characters here to have uniform letter sizes for cursorUp/Down movements + QString text( + QStringLiteral("xxxxxx\n" + "xxxxxx")); + doc.setText(text); + + KTextEditor::ViewPrivate *view = static_cast(doc.createView(nullptr)); + + // create range feedback + RangeFeedback rf; + + // first test: with ExpandLeft | ExpandRight + { + view->setCursorPosition(Cursor(1, 6)); + + std::unique_ptr range(doc.newMovingRange(Range(Cursor(0, 2), Cursor(1, 4)), + KTextEditor::MovingRange::ExpandLeft | KTextEditor::MovingRange::ExpandRight, + KTextEditor::MovingRange::InvalidateIfEmpty)); + rf.reset(); + range->setFeedback(&rf); + rf.verifyReset(); + + // left + view->cursorLeft(); + QCOMPARE(view->cursorPosition(), Cursor(1, 5)); + QVERIFY(!rf.caretEnteredRangeCalled()); + QVERIFY(!rf.caretExitedRangeCalled()); + + view->cursorLeft(); + QCOMPARE(view->cursorPosition(), Cursor(1, 4)); + QVERIFY(rf.caretEnteredRangeCalled()); // ExpandRight: include cursor already now + QVERIFY(!rf.caretExitedRangeCalled()); + + rf.reset(); + view->cursorLeft(); + QCOMPARE(view->cursorPosition(), Cursor(1, 3)); + QVERIFY(!rf.caretEnteredRangeCalled()); + QVERIFY(!rf.caretExitedRangeCalled()); + + rf.reset(); + view->up(); + QCOMPARE(view->cursorPosition(), Cursor(0, 3)); + QVERIFY(!rf.caretEnteredRangeCalled()); + QVERIFY(!rf.caretExitedRangeCalled()); + + rf.reset(); + view->cursorLeft(); + QCOMPARE(view->cursorPosition(), Cursor(0, 2)); + QVERIFY(!rf.caretEnteredRangeCalled()); + QVERIFY(!rf.caretExitedRangeCalled()); + + rf.reset(); + view->cursorLeft(); + QCOMPARE(view->cursorPosition(), Cursor(0, 1)); // ExpandLeft: now we left it, not before + QVERIFY(!rf.caretEnteredRangeCalled()); + QVERIFY(rf.caretExitedRangeCalled()); + } + + // second test: with DoNotExpand + { + view->setCursorPosition(Cursor(1, 6)); + + std::unique_ptr range( + doc.newMovingRange(Range(Cursor(0, 2), Cursor(1, 4)), KTextEditor::MovingRange::DoNotExpand, KTextEditor::MovingRange::InvalidateIfEmpty)); + rf.reset(); + range->setFeedback(&rf); + rf.verifyReset(); + + // left + view->cursorLeft(); + QCOMPARE(view->cursorPosition(), Cursor(1, 5)); + QVERIFY(!rf.caretEnteredRangeCalled()); + QVERIFY(!rf.caretExitedRangeCalled()); + + view->cursorLeft(); + QCOMPARE(view->cursorPosition(), Cursor(1, 4)); + QVERIFY(!rf.caretEnteredRangeCalled()); // DoNotExpand: does not include cursor + QVERIFY(!rf.caretExitedRangeCalled()); + + rf.reset(); + view->cursorLeft(); + QCOMPARE(view->cursorPosition(), Cursor(1, 3)); + QVERIFY(rf.caretEnteredRangeCalled()); + QVERIFY(!rf.caretExitedRangeCalled()); + + rf.reset(); + view->up(); + QCOMPARE(view->cursorPosition(), Cursor(0, 3)); + QVERIFY(!rf.caretEnteredRangeCalled()); + QVERIFY(!rf.caretExitedRangeCalled()); + + rf.reset(); + view->cursorLeft(); + QCOMPARE(view->cursorPosition(), Cursor(0, 2)); + QVERIFY(!rf.caretEnteredRangeCalled()); + QVERIFY(rf.caretExitedRangeCalled()); // DoNotExpand: that's why we leave already now + + rf.reset(); + view->cursorLeft(); + QCOMPARE(view->cursorPosition(), Cursor(0, 1)); + QVERIFY(!rf.caretEnteredRangeCalled()); + QVERIFY(!rf.caretExitedRangeCalled()); + } +} + +// tests: +// - RangeFeedback::mouseEnteredRange +// - RangeFeedback::mouseExitedRange +void MovingRangeTest::testFeedbackMouse() +{ + KTextEditor::DocumentPrivate doc; + // the range created below will span the 'x' characters + QString text( + QStringLiteral("..xxxx\n" + "xxxx..")); + doc.setText(text); + + KTextEditor::ViewPrivate *view = static_cast(doc.createView(nullptr)); + view->setCursorPosition(Cursor(1, 6)); + view->show(); + view->resize(200, 100); + + // create range feedback + RangeFeedback rf; + QVERIFY(!rf.mouseEnteredRangeCalled()); + QVERIFY(!rf.mouseExitedRangeCalled()); + + // allow empty + std::unique_ptr range(doc.newMovingRange(Range(Cursor(0, 2), Cursor(1, 4)), + KTextEditor::MovingRange::ExpandLeft | KTextEditor::MovingRange::ExpandRight, + KTextEditor::MovingRange::InvalidateIfEmpty)); + range->setFeedback(&rf); + rf.verifyReset(); + + // left (nothing) + QTest::mouseMove(view, view->cursorToCoordinate(Cursor(0, 0)) + QPoint(0, 5)); + QTest::qWait(200); // process mouse events. do not move mouse manually + QVERIFY(!rf.mouseEnteredRangeCalled()); + QVERIFY(!rf.mouseExitedRangeCalled()); + + // middle (enter) + rf.reset(); + QTest::mouseMove(view, view->cursorToCoordinate(Cursor(0, 3)) + QPoint(0, 5)); + QTest::qWait(200); // process mouse events. do not move mouse manually + QVERIFY(rf.mouseEnteredRangeCalled()); + QVERIFY(!rf.mouseExitedRangeCalled()); + + // right (exit) + rf.reset(); + QTest::mouseMove(view, view->cursorToCoordinate(Cursor(1, 6)) + QPoint(10, 5)); + QTest::qWait(200); // process mouse events. do not move mouse manually + QVERIFY(!rf.mouseEnteredRangeCalled()); + QVERIFY(rf.mouseExitedRangeCalled()); +} + +void MovingRangeTest::testLineRemoved() +{ + KTextEditor::DocumentPrivate doc; + // the range created below will span the 'x' characters + QString text( + QStringLiteral("abcd\n" + "efgh\n" + "\n" + "hijk")); + doc.setText(text); + + KTextEditor::ViewPrivate *view = static_cast(doc.createView(nullptr)); + view->setCursorPosition(Cursor(1, 3)); + view->show(); + view->resize(200, 100); + constexpr auto expand = KTextEditor::MovingRange::ExpandLeft | KTextEditor::MovingRange::ExpandRight; + std::unique_ptr range(doc.newMovingRange({1, 1, 1, 2}, expand, KTextEditor::MovingRange::InvalidateIfEmpty)); + std::unique_ptr range2(doc.newMovingRange({1, 3, 1, 4}, expand, KTextEditor::MovingRange::InvalidateIfEmpty)); + KTextEditor::Attribute::Ptr attr(new KTextEditor::Attribute); + attr->setForeground(Qt::red); + range->setAttribute(attr); + doc.removeLine(1); + + // shouldn't crash + auto r = doc.buffer().rangesForLine(1, view, true); + QVERIFY(r.isEmpty()); +} + +void MovingRangeTest::testLineWrapOrUnwrapUpdateRangeForLineCache() +{ + KTextEditor::DocumentPrivate doc; + doc.setText( + QStringLiteral("abcd\n" + "efgh\n" + "hijk\n")); + + // add range to line 2, it shall be in rangeForLine for the right lines after each update! + // must be single line range to be in the cache! + std::unique_ptr range(doc.newMovingRange({2, 1, 2, 3}, + KTextEditor::MovingRange::ExpandLeft | KTextEditor::MovingRange::ExpandRight, + KTextEditor::MovingRange::InvalidateIfEmpty)); + + // range shall be in the lookup cache for line 2 + QVERIFY(doc.buffer().rangesForLine(0, nullptr, false).isEmpty()); + QVERIFY(doc.buffer().rangesForLine(1, nullptr, false).isEmpty()); + QVERIFY(doc.buffer().rangesForLine(2, nullptr, false).contains(range.get())); + + // wrap line 1 => range should move to line 3 + doc.editWrapLine(1, 1); + QVERIFY(doc.buffer().rangesForLine(0, nullptr, false).isEmpty()); + QVERIFY(doc.buffer().rangesForLine(1, nullptr, false).isEmpty()); + QVERIFY(doc.buffer().rangesForLine(2, nullptr, false).isEmpty()); + QVERIFY(doc.buffer().rangesForLine(3, nullptr, false).contains(range.get())); + + // unwrap line 1 => range should back move to line 2 + doc.editUnWrapLine(1); + QVERIFY(doc.buffer().rangesForLine(0, nullptr, false).isEmpty()); + QVERIFY(doc.buffer().rangesForLine(1, nullptr, false).isEmpty()); + QVERIFY(doc.buffer().rangesForLine(2, nullptr, false).contains(range.get())); +} + +void MovingRangeTest::testMultiline() +{ + KTextEditor::DocumentPrivate doc; + doc.setText( + QStringLiteral("abcd\n" + "efgh\n" + "hijk\n")); + + // add range to line 1-2 + std::unique_ptr range(doc.newMovingRange({1, 0, 2, 3}, + KTextEditor::MovingRange::ExpandLeft | KTextEditor::MovingRange::ExpandRight, + KTextEditor::MovingRange::InvalidateIfEmpty)); + QVERIFY(doc.buffer().rangesForLine(1, nullptr, false).contains(range.get())); + QVERIFY(doc.buffer().rangesForLine(2, nullptr, false).contains(range.get())); +} + +void MovingRangeTest::testMultiblock() +{ + KTextEditor::DocumentPrivate doc; + // add enough text so that we have at least 3 blocks + QStringList text(200, QStringLiteral("asdf")); + doc.setText(text); + + auto range(doc.newMovingRange({1, 0, 170, 3}, + KTextEditor::MovingRange::ExpandLeft | KTextEditor::MovingRange::ExpandRight, + KTextEditor::MovingRange::InvalidateIfEmpty)); + + QVERIFY(doc.buffer().hasMultlineRange(range)); + // check that the range is returned for each line it contains + for (int i = range->toLineRange().start(); i <= range->toLineRange().end(); ++i) { + QVERIFY(doc.buffer().rangesForLine(i, nullptr, false).contains(range)); + } + + // invalidate and check + range->setRange(KTextEditor::Range::invalid()); + QVERIFY(!doc.buffer().hasMultlineRange(range)); + for (auto i : {10, 50, 100, 150}) { + QVERIFY(!doc.buffer().rangesForLine(i, nullptr, false).contains(range)); + } + + // check that the range is returned for each line it contains after setRange + range->setRange({1, 0, 170, 3}); + QVERIFY(doc.buffer().hasMultlineRange(range)); + for (int i = range->toLineRange().start(); i <= range->toLineRange().end(); ++i) { + QVERIFY(doc.buffer().rangesForLine(i, nullptr, false).contains(range)); + } + + // delete the range and check + delete range; + QVERIFY(!doc.buffer().hasMultlineRange(range)); + for (auto i : {10, 50, 100, 150}) { + QVERIFY(!doc.buffer().rangesForLine(i, nullptr, false).contains(range)); + } + + // check that range becomes multi block on split block + range = doc.newMovingRange({197, 0, 199, 3}, + KTextEditor::MovingRange::ExpandLeft | KTextEditor::MovingRange::ExpandRight, + KTextEditor::MovingRange::InvalidateIfEmpty); + + // add enough lines to trigger a splitBlock + doc.editStart(); + doc.insertLines(198, QStringList(128, QStringLiteral("asdfg"))); + doc.editEnd(); + + QVERIFY(doc.buffer().hasMultlineRange(range)); + QCOMPARE(range->toRange(), KTextEditor::Range(197, 0, 327, 3)); + for (int i = range->toLineRange().start(); i <= range->toLineRange().end(); ++i) { + QVERIFY(doc.buffer().rangesForLine(i, nullptr, false).contains(range)); + } + + doc.editStart(); + doc.removeText({200, 0, 299, 5}); + doc.editEnd(); + QVERIFY(doc.buffer().rangesForLine(198, nullptr, false).contains(range)); + QVERIFY(!doc.buffer().hasMultlineRange(range)); + + delete range; +} + +void MovingRangeTest::benchCursorsInsertionRemoval() +{ + constexpr int NUM_LINES = 10000; + + KTextEditor::DocumentPrivate doc; + const QStringList lines(NUM_LINES, QStringLiteral("This is a very long line with some random text")); + doc.setText(lines); + QCOMPARE(doc.lines(), NUM_LINES); + + QBENCHMARK { + std::vector ranges; + + for (int i = 0; i < NUM_LINES; ++i) { + auto r = doc.newMovingRange({i, 2, i, 2 + 4}); + auto r1 = doc.newMovingRange({i, 2 + 5, i, 2 + 5 + 4}); + ranges.push_back(r); + ranges.push_back(r1); + } + + // remove them + qDeleteAll(ranges); + } +} + +void MovingRangeTest::benchCheckValidity_data() +{ + QTest::addColumn("emptyBehaviour"); + + QTest::addRow("AllowEmpty") << MovingRange::AllowEmpty; + QTest::addRow("InvalidateIfEmpty") << MovingRange::InvalidateIfEmpty; +} + +void MovingRangeTest::benchCheckValidity() +{ + /** NOTE: + * Atm this test runs very slow because of the way ranges are handled + * when removing text. When removing text, we move the ranges up into the previous + * line if needed. And since we are removing the text the ranges become empty. So far + * that is okay. The problem is the ranges start accumulating into the previous textblock + * and if we remove a lot of text, we accumulate a lot of ranges meaning we do a lot of + * checkValidity on TextRanges that were emptied long ago! This can probably be optimized by + * skipping checkValidity on ranges that were already empty. + * + * Also, note that this issue disappears if EmptyBehaviour is InvalidateIfEmpty + * + * See TextBlock::unwrapLine + */ + QFETCH(MovingRange::EmptyBehavior, emptyBehaviour); + + // use a larger number to see the differenc between the two empty behaviours + constexpr int NUM_LINES = 100; + + KTextEditor::DocumentPrivate doc; + const QStringList lines(NUM_LINES, QStringLiteral("This is a very long line with some random text")); + doc.setText(lines); + QCOMPARE(doc.lines(), NUM_LINES); + + // create NUM_LINES * 2 ranges (and NUM_LINES * 4 cursors) + std::vector ranges; + for (int i = 0; i < NUM_LINES; ++i) { + auto r = doc.newMovingRange({i, 2, i, 2 + 4}, MovingRange::DoNotExpand, emptyBehaviour); + auto r1 = doc.newMovingRange({i, 2 + 5, i, 2 + 5 + 4}, MovingRange::DoNotExpand, emptyBehaviour); + ranges.push_back(r); + ranges.push_back(r1); + } + + // trigger text removal, we will be iterating the cursors of every block for each line + QBENCHMARK { + doc.removeText(doc.documentRange()); + } + + // remove them + qDeleteAll(ranges); +} + +void MovingRangeTest::benchRangeForLine() +{ + constexpr int NUM_LINES = 100; + + KTextEditor::DocumentPrivate doc; + const QStringList lines(NUM_LINES, QStringLiteral("This is a very long line with some random text")); + doc.setText(lines); + QCOMPARE(doc.lines(), NUM_LINES); + + // create NUM_LINES * 2 ranges (and NUM_LINES * 4 cursors) + std::vector ranges; + for (int i = 0; i < NUM_LINES; ++i) { + auto r = doc.newMovingRange({i, 2, i, 2 + 4}); + auto r1 = doc.newMovingRange({i, 2 + 5, i, 2 + 5 + 4}); + ranges.push_back(r); + ranges.push_back(r1); + } + + QBENCHMARK { + for (int i = 0; i < NUM_LINES; ++i) { + doc.buffer().rangesForLine(i, nullptr, false); + } + } + + qDeleteAll(ranges); +} + +void MovingRangeTest::testMultiblockRangeWithLineUnwrapping() +{ + KTextEditor::DocumentPrivate doc; + const QStringList lines(130, QStringLiteral("text")); + doc.setText(lines); + QCOMPARE(doc.lines(), 130); + + auto range = doc.newMovingRange(doc.documentRange()); + while (true) { + auto rs = doc.searchText(range->toRange(), QStringLiteral("\n"), KTextEditor::SearchOption::EscapeSequences); + if (rs.empty() || !rs.first().isValid()) { + break; + } + doc.replaceText(rs.first(), QString()); + auto x = range->toRange(); + x.setStart(rs.first().start()); + range->setRange(x); + } + + delete range; + doc.buffer().rangesForLine(0, nullptr, false); +} + +void MovingRangeTest::testRangeSurvivesDocument() +{ + KTextEditor::MovingRange *range; + { + KTextEditor::DocumentPrivate doc; + doc.setText(QStringLiteral("abc")); + range = doc.newMovingRange({0, 0, 0, 2}); + QVERIFY(range); + } + // ensure range is invalid + QCOMPARE(range->toRange(), KTextEditor::Range::invalid()); + QVERIFY(!range->toLineRange().isValid()); + QVERIFY(!range->document()); + // try to modify this range, shouldn't crash + range->setRange({1, 2, 3, 4}); + range->setAttribute(KTextEditor::Attribute::Ptr(new KTextEditor::Attribute)); + RangeFeedback rf; + range->setFeedback(&rf); + range->setZDepth(1); + // range remains invalid as there is no document its bound to + QCOMPARE(range->toRange(), KTextEditor::Range(-1, -1, -1, -1)); + QVERIFY(!range->attribute()); + QVERIFY(!range->feedback()); + delete range; +} + +void MovingRangeTest::testRangeWithDynAttrNoCrash() +{ + KTextEditor::DocumentPrivate doc; + doc.setText(QStringLiteral("abc\ndef\nghi")); + KTextEditor::ViewPrivate *view = static_cast(doc.createView(nullptr)); + std::unique_ptr range(doc.newMovingRange({0, 0, 0, 2}, MovingRange::DoNotExpand)); + auto attr = KTextEditor::Attribute::Ptr(new KTextEditor::Attribute()); + auto dattr = KTextEditor::Attribute::Ptr(new KTextEditor::Attribute()); + attr->setDynamicAttribute(KTextEditor::Attribute::ActivateCaretIn, dattr); + range->setAttribute(attr); + + view->setCursorPosition({0, 0}); + // cursor moves + view->cursorRight(); + // range is deleted for some reason + range.reset(); + // cursor moves + view->cursorRight(); + // no crashes +} + +void MovingRangeTest::testNoCrashIfFeedbackWasClearedBeforeDtor() +{ + KTextEditor::DocumentPrivate doc; + doc.setText(QStringLiteral("abc\ndef\nghi")); + KTextEditor::ViewPrivate *view = static_cast(doc.createView(nullptr)); + std::unique_ptr range(doc.newMovingRange({0, 0, 0, 2}, MovingRange::DoNotExpand)); + RangeFeedback rf; + range->setFeedback(&rf); + + view->setCursorPosition({0, 0}); + // cursor moves + view->cursorRight(); + // feedback is cleared + range->setFeedback(nullptr); + range.reset(); + // cursor moves + view->cursorRight(); + // no crash +} + +void MovingRangeTest::testNoCrashIfDynAttrWasClearedBeforeDtor() +{ + KTextEditor::DocumentPrivate doc; + doc.setText(QStringLiteral("abc\ndef\nghi")); + KTextEditor::ViewPrivate *view = static_cast(doc.createView(nullptr)); + std::unique_ptr range(doc.newMovingRange({0, 0, 0, 2}, MovingRange::DoNotExpand)); + auto attr = KTextEditor::Attribute::Ptr(new KTextEditor::Attribute()); + auto dattr = KTextEditor::Attribute::Ptr(new KTextEditor::Attribute()); + attr->setDynamicAttribute(KTextEditor::Attribute::ActivateCaretIn, dattr); + range->setAttribute(attr); + + view->setCursorPosition({0, 0}); + // cursor moves + view->cursorRight(); + // attr is cleared + range->setAttribute({}); + range.reset(); + // cursor moves + view->cursorRight(); + // no crash +} + +void MovingRangeTest::testNoCrashWithMultiblockRange() +{ + KTextEditor::DocumentPrivate doc; + KTextEditor::ViewPrivate *view = static_cast(doc.createView(nullptr)); + const QStringList lines(130, QStringLiteral("text")); + doc.setText(lines); + QCOMPARE(doc.lines(), 130); + // clang-format off + std::unique_ptr range(doc.newMovingRange({ + 63, 1, // in block 0 last line + 64, 2 // in block 1 first line + })); + // expect that its multiline + QVERIFY(doc.buffer().hasMultlineRange(range.get())); + // clang-format on + // place the cursor on col 0 of first line block-1 + view->setCursorPosition({64, 0}); + // trigger a line unwrap + view->backspace(); + // expect that its no longer multiline + QVERIFY(!doc.buffer().hasMultlineRange(range.get())); + + // delete the range + range.reset(); + // move the cursor, we shouldnt crash + view->cursorLeft(); +} + +void MovingRangeTest::testNoFlippedRange() +{ + KTextEditor::DocumentPrivate doc; + KTextEditor::ViewPrivate *view = static_cast(doc.createView(nullptr)); + doc.setText(QStringLiteral("[x] range between square brackets")); + std::unique_ptr range(doc.newMovingRange( + KTextEditor::Range(0, 1, 0, 2), + KTextEditor::MovingRange::InsertBehavior::DoNotExpand, + KTextEditor::MovingRange::EmptyBehavior::AllowEmpty + )); + view->setCursorPosition(KTextEditor::Cursor(0, 2)); + view->backspace(); + QVERIFY(range->isEmpty()); + view->insertTab(); + QVERIFY(range->isEmpty()); +} + +void MovingRangeTest::testBlockSplitAndMerge() +{ + KTextEditor::DocumentPrivate doc; + KTextEditor::ViewPrivate *view = static_cast(doc.createView(nullptr)); + doc.setText(QStringLiteral("[{}] [{}] [{}] ranges between square brackets, newline spam between curly brackets")); + std::unique_ptr range1(doc.newMovingRange( + KTextEditor::Range(0, 1, 0, 3), + KTextEditor::MovingRange::InsertBehavior::DoNotExpand, + KTextEditor::MovingRange::EmptyBehavior::AllowEmpty + )); + std::unique_ptr range2(doc.newMovingRange( + KTextEditor::Range(0, 6, 0, 8), + KTextEditor::MovingRange::InsertBehavior::DoNotExpand, + KTextEditor::MovingRange::EmptyBehavior::AllowEmpty + )); + std::unique_ptr range3(doc.newMovingRange( + KTextEditor::Range(0, 11, 0, 13), + KTextEditor::MovingRange::InsertBehavior::DoNotExpand, + KTextEditor::MovingRange::EmptyBehavior::AllowEmpty + )); + QVERIFY(!doc.buffer().hasMultlineRange(range1.get())); + QVERIFY(!doc.buffer().hasMultlineRange(range2.get())); + QVERIFY(!doc.buffer().hasMultlineRange(range3.get())); + // spam enough newlines to cause block splitting + view->setCursorPosition(KTextEditor::Cursor(0, 7)); + for (int i = 0; i < 127; ++i) { + view->keyReturn(); + } + QCOMPARE(range1->toRange(), KTextEditor::Range(0, 1, 0, 3)); + QCOMPARE(range2->toRange(), KTextEditor::Range(0, 6, 127, 1)); + QCOMPARE(range3->toRange(), KTextEditor::Range(127, 4, 127, 6)); + // now there are 2 blocks + QVERIFY(!doc.buffer().hasMultlineRange(range1.get())); + QVERIFY(doc.buffer().hasMultlineRange(range2.get())); + QVERIFY(!doc.buffer().hasMultlineRange(range3.get())); + // split block 0 (counting from 0) + view->setCursorPosition(KTextEditor::Cursor(0, 2)); + for (int i = 0; i < 64; ++i) { + view->keyReturn(); + } + QCOMPARE(range1->toRange(), KTextEditor::Range(0, 1, 64, 1)); + QCOMPARE(range2->toRange(), KTextEditor::Range(64, 4, 191, 1)); + QCOMPARE(range3->toRange(), KTextEditor::Range(191, 4, 191, 6)); + // now there are 3 blocks + QVERIFY(doc.buffer().hasMultlineRange(range1.get())); + QVERIFY(doc.buffer().hasMultlineRange(range2.get())); + QVERIFY(!doc.buffer().hasMultlineRange(range3.get())); + // split block 2 (counting from 0) + view->setCursorPosition(KTextEditor::Cursor(191, 5)); + for (int i = 0; i < 64; ++i) { + view->keyReturn(); + } + QCOMPARE(range1->toRange(), KTextEditor::Range(0, 1, 64, 1)); + QCOMPARE(range2->toRange(), KTextEditor::Range(64, 4, 191, 1)); + QCOMPARE(range3->toRange(), KTextEditor::Range(191, 4, 255, 1)); + // now there are 4 blocks + QVERIFY(doc.buffer().hasMultlineRange(range1.get())); + QVERIFY(doc.buffer().hasMultlineRange(range2.get())); + QVERIFY(doc.buffer().hasMultlineRange(range3.get())); + // merge blocks 1 and 2 (counting from 0) + view->setCursorPosition(KTextEditor::Cursor(191, 0)); + for (int i = 0; i < 32; ++i) { + view->backspace(); + } + QCOMPARE(range1->toRange(), KTextEditor::Range(0, 1, 64, 1)); + QCOMPARE(range2->toRange(), KTextEditor::Range(64, 4, 159, 1)); + QCOMPARE(range3->toRange(), KTextEditor::Range(159, 4, 223, 1)); + // now there are 3 blocks + QVERIFY(doc.buffer().hasMultlineRange(range1.get())); + QVERIFY(!doc.buffer().hasMultlineRange(range2.get())); + QVERIFY(doc.buffer().hasMultlineRange(range3.get())); + // merge blocks 0 and 1 (counting from 0) + view->setCursorPosition(KTextEditor::Cursor(159, 0)); + for (int i = 0; i < 64; ++i) { + view->backspace(); + } + QCOMPARE(range1->toRange(), KTextEditor::Range(0, 1, 64, 1)); + QCOMPARE(range2->toRange(), KTextEditor::Range(64, 4, 95, 1)); + QCOMPARE(range3->toRange(), KTextEditor::Range(95, 4, 159, 1)); + // now there are 2 blocks + QVERIFY(!doc.buffer().hasMultlineRange(range1.get())); + QVERIFY(!doc.buffer().hasMultlineRange(range2.get())); + QVERIFY(doc.buffer().hasMultlineRange(range3.get())); + // merge blocks 0 and 1 (counting from 0) + view->setCursorPosition(KTextEditor::Cursor(159, 0)); + for (int i = 0; i < 32; ++i) { + view->backspace(); + } + QCOMPARE(range1->toRange(), KTextEditor::Range(0, 1, 64, 1)); + QCOMPARE(range2->toRange(), KTextEditor::Range(64, 4, 95, 1)); + QCOMPARE(range3->toRange(), KTextEditor::Range(95, 4, 127, 1)); + // now there is 1 block + QVERIFY(!doc.buffer().hasMultlineRange(range1.get())); + QVERIFY(!doc.buffer().hasMultlineRange(range2.get())); + QVERIFY(!doc.buffer().hasMultlineRange(range3.get())); +} diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/movingrange_test.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/movingrange_test.h new file mode 100644 index 0000000000..bd70652d58 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/movingrange_test.h @@ -0,0 +1,44 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2010-2018 Dominik Haumann + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef KATE_MOVINGRANGE_TEST_H +#define KATE_MOVINGRANGE_TEST_H + +#include + +class MovingRangeTest : public QObject +{ + Q_OBJECT + +public: + MovingRangeTest(); + ~MovingRangeTest() override; + +private Q_SLOTS: + void testFeedbackEmptyRange(); + void testFeedbackInvalidRange(); + void testFeedbackCaret(); + void testFeedbackMouse(); + void testLineRemoved(); + void testLineWrapOrUnwrapUpdateRangeForLineCache(); + void testMultiline(); + void testMultiblock(); + void benchCursorsInsertionRemoval(); + void benchCheckValidity_data(); + void benchCheckValidity(); + void benchRangeForLine(); + void testMultiblockRangeWithLineUnwrapping(); + void testRangeSurvivesDocument(); + void testRangeWithDynAttrNoCrash(); + void testNoCrashIfFeedbackWasClearedBeforeDtor(); + void testNoCrashIfDynAttrWasClearedBeforeDtor(); + void testNoCrashWithMultiblockRange(); + void testNoFlippedRange(); + void testBlockSplitAndMerge(); +}; + +#endif // KATE_MOVINGRANGE_TEST_H diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/multicursortest.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/multicursortest.cpp new file mode 100644 index 0000000000..76551ba23d --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/multicursortest.cpp @@ -0,0 +1,1014 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2022 Waqar Ahmed + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "multicursortest.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +using namespace KTextEditor; + +QTEST_MAIN(MulticursorTest) + +struct DocAndView { + DocumentPrivate *doc; + ViewPrivate *view; + + ~DocAndView() + { + delete view; + delete doc; + } +}; + +DocAndView createDocAndView(const QString &text, int line, int column) +{ + auto doc = new DocumentPrivate(); + doc->setText(text); + auto view = new ViewPrivate(doc, nullptr); + view->setCursorPosition({line, column}); + return {.doc = doc, .view = view}; +} + +template +bool isSorted(const Cont &c) +{ + return std::is_sorted(c.begin(), c.end()); +} + +MulticursorTest::MulticursorTest() + : QObject() +{ + QStandardPaths::setTestModeEnabled(true); +} + +MulticursorTest::~MulticursorTest() +{ +} + +static void clickAtPosition(ViewPrivate *view, QWidget *internalView, Cursor pos, Qt::KeyboardModifiers m) +{ + QPoint p = view->cursorToCoordinate(pos); + QVERIFY(p.x() >= 0 && p.y() >= 0); + auto me = QMouseEvent(QEvent::MouseButtonPress, p, internalView->mapToGlobal(p), Qt::LeftButton, Qt::LeftButton, m); + QCoreApplication::sendEvent(internalView, &me); +} + +void MulticursorTest::testKillline() +{ + KTextEditor::DocumentPrivate doc; + doc.insertLines(0, {QStringLiteral("foo"), QStringLiteral("bar"), QStringLiteral("baz")}); + KTextEditor::ViewPrivate *view = new KTextEditor::ViewPrivate(&doc, nullptr); + view->setCursorPositionInternal(KTextEditor::Cursor(0, 0)); + view->addSecondaryCursor(KTextEditor::Cursor(1, 0)); + view->addSecondaryCursor(KTextEditor::Cursor(2, 0)); + QVERIFY(isSorted(view->secondaryCursors())); + + view->killLine(); + + QCOMPARE(doc.text(), QString()); +} + +void MulticursorTest::insertRemoveText() +{ + auto [doc, view] = createDocAndView(QStringLiteral("foo\nbar\nfoo\n"), 0, 0); + QObject *const internalView = view->editorWidget(); + QVERIFY(internalView); + + { // Same line + view->addSecondaryCursor({0, 1}); + view->addSecondaryCursor({0, 2}); + view->addSecondaryCursor({0, 3}); + QVERIFY(isSorted(view->secondaryCursors())); + QCOMPARE(view->secondaryCursors().size(), 3); + QKeyEvent ke(QKeyEvent::KeyPress, Qt::Key_L, Qt::NoModifier, QStringLiteral("L")); + QCoreApplication::sendEvent(internalView, &ke); + + QCOMPARE(doc->line(0), QStringLiteral("LfLoLoL")); + + // Removal + view->backspace(); + QCOMPARE(doc->line(0), QStringLiteral("foo")); + + view->clearSecondaryCursors(); + } + + { // Different lines + view->setCursorPosition(Cursor(0, 0)); + view->addSecondaryCursor({1, 0}); + view->addSecondaryCursor({2, 0}); + QKeyEvent ke(QKeyEvent::KeyPress, Qt::Key_L, Qt::NoModifier, QStringLiteral("L")); + QCoreApplication::sendEvent(internalView, &ke); + + QCOMPARE(doc->line(0), QStringLiteral("Lfoo")); + QCOMPARE(doc->line(1), QStringLiteral("Lbar")); + QCOMPARE(doc->line(2), QStringLiteral("Lfoo")); + + view->backspace(); + QVERIFY(isSorted(view->secondaryCursors())); + + QCOMPARE(doc->line(0), QStringLiteral("foo")); + QCOMPARE(doc->line(1), QStringLiteral("bar")); + QCOMPARE(doc->line(2), QStringLiteral("foo")); + + QVERIFY(isSorted(view->secondaryCursors())); + view->clearSecondaryCursors(); + } + + // Three empty lines + doc->setText(QStringLiteral("\n\n\n")); + view->setCursorPosition({0, 0}); + view->addSecondaryCursor({1, 0}); + view->addSecondaryCursor({2, 0}); + QVERIFY(isSorted(view->secondaryCursors())); + + // cursors should merge + view->backspace(); + QCOMPARE(view->secondaryCursors().size(), 0); + QCOMPARE(view->cursorPosition(), Cursor(0, 0)); +} + +void MulticursorTest::backspace() +{ + auto [doc, view] = createDocAndView(QStringLiteral("foo\nbar\nbaz"), 0, 3); + QList cursors; + + { + // Mixed cursors, one doesn't have selection + // the two below have selection + cursors.append({.pos = Cursor(1, 3), .range = Range(1, 0, 1, 3)}); + cursors.append({.pos = Cursor(2, 3), .range = Range(2, 0, 2, 3)}); + view->addSecondaryCursorsWithSelection(cursors); + + // Pressing backspace should only remove selected text + view->backspace(); + QVERIFY(isSorted(view->secondaryCursors())); + QCOMPARE(doc->text(), QStringLiteral("foo\n\n")); + + // Pressing backspace again + view->backspace(); + QVERIFY(view->secondaryCursors().empty()); + QCOMPARE(doc->text(), QStringLiteral("fo")); + } + + { + // No selection + doc->setText(QStringLiteral("foo\nbar\nbaz")); + view->setCursors({Cursor(0, 3), Cursor(1, 3), Cursor(2, 3)}); + view->backspace(); + QCOMPARE(doc->text(), QStringLiteral("fo\nba\nba")); + view->backspace(); + view->backspace(); + QCOMPARE(doc->text(), QStringLiteral("\n\n")); + QCOMPARE(view->cursors().size(), 3); + } +} + +void MulticursorTest::keyDelete() +{ + auto [doc, view] = createDocAndView(QStringLiteral("foo\nbar\nbaz"), 0, 0); + QList cursors; + + { + // Mixed cursors, one doesn't have selection + // the two below have selection + cursors.append({.pos = Cursor(1, 0), .range = Range(1, 0, 1, 3)}); + cursors.append({.pos = Cursor(2, 0), .range = Range(2, 0, 2, 3)}); + view->addSecondaryCursorsWithSelection(cursors); + + // Pressing del should only remove selected text + view->keyDelete(); + QVERIFY(isSorted(view->secondaryCursors())); + QCOMPARE(doc->text(), QStringLiteral("foo\n\n")); + + // Pressing del again + view->keyDelete(); + QCOMPARE(view->secondaryCursors().size(), 1); + QCOMPARE(doc->text(), QStringLiteral("oo\n")); + } + + { + // No selection + doc->setText(QStringLiteral("foo\nbar\nbaz")); + view->setCursors({Cursor(0, 0), Cursor(1, 0), Cursor(2, 0)}); + view->keyDelete(); + QCOMPARE(doc->text(), QStringLiteral("oo\nar\naz")); + view->keyDelete(); + view->keyDelete(); + QCOMPARE(doc->text(), QStringLiteral("\n\n")); + QCOMPARE(view->cursors().size(), 3); + } +} + +void MulticursorTest::testUndoRedo() +{ + auto [doc, view] = createDocAndView(QStringLiteral("foo\nfoo"), 0, 3); + + // single cursor backspace + view->backspace(); + QCOMPARE(doc->text(), QStringLiteral("fo\nfoo")); + doc->undoManager()->undoSafePoint(); + + // backspace with 2 cursors + view->setCursors({view->cursorPosition(), Cursor{1, 3}}); + view->backspace(); + QCOMPARE(doc->text(), QStringLiteral("f\nfo")); + + view->doc()->undo(); + QCOMPARE(doc->text(), QStringLiteral("fo\nfoo")); + QCOMPARE(view->secondaryCursors().size(), 1); + QCOMPARE(*view->secondaryCursors().at(0).pos, Cursor(1, 3)); + + // Another undo, multicursor should be gone + view->doc()->undo(); + QCOMPARE(doc->text(), QStringLiteral("foo\nfoo")); + QCOMPARE(view->secondaryCursors().size(), 0); + + // One redo + view->doc()->redo(); + QCOMPARE(doc->text(), QStringLiteral("fo\nfoo")); + + // Second redo, multicursor should be back + view->doc()->redo(); + QCOMPARE(doc->text(), QStringLiteral("f\nfo")); + QCOMPARE(view->secondaryCursors().size(), 1); + QCOMPARE(*view->secondaryCursors().at(0).pos, Cursor(1, 2)); +} + +void MulticursorTest::testUndoRedoWithSelection() +{ + auto [doc, view] = createDocAndView(QStringLiteral("foo\nfoo"), 0, 3); + view->setCursors({Cursor(0, 3), Cursor(1, 3)}); + + // select a word & remove it + view->shiftWordLeft(); + view->backspace(); + + QCOMPARE(doc->text(), QStringLiteral("\n")); + QCOMPARE(view->cursorPosition(), Cursor(0, 0)); + QCOMPARE(view->secondaryCursors().size(), 1); + QCOMPARE(*view->secondaryCursors().at(0).pos, Cursor(1, 0)); + + view->doc()->undo(); + + QCOMPARE(doc->text(), QStringLiteral("foo\nfoo")); + QCOMPARE(view->cursorPosition(), Cursor(0, 0)); + QCOMPARE(view->secondaryCursors().size(), 1); + QCOMPARE(*view->secondaryCursors().at(0).pos, Cursor(1, 0)); + QCOMPARE(*view->secondaryCursors().at(0).range, Range(1, 0, 1, 3)); + QCOMPARE(view->secondaryCursors().at(0).anchor, Cursor(1, 3)); +} + +void MulticursorTest::keyReturnIndentTest() +{ + auto [doc, view] = createDocAndView(QStringLiteral("\n\n"), 0, 0); + QCOMPARE(doc->lines(), 3); + doc->setMode(QStringLiteral("C++")); + view->config()->setValue(KateViewConfig::AutoBrackets, true); + + view->addSecondaryCursorDown(); + view->addSecondaryCursorDown(); + QCOMPARE(view->secondaryCursors().size(), 2); + QVERIFY(isSorted(view->secondaryCursors())); + + doc->typeChars(view, QStringLiteral("{")); + QCOMPARE(doc->text(), QStringLiteral("{}\n{}\n{}")); + QCOMPARE(view->secondaryCursors().size(), 2); + QVERIFY(isSorted(view->secondaryCursors())); + + view->keyReturn(); + QCOMPARE(doc->text(), QStringLiteral("{\n \n}\n{\n \n}\n{\n \n}")); +} + +void MulticursorTest::wrapSelectionWithCharsTest() +{ + auto [doc, view] = createDocAndView(QStringLiteral("foo\nfoo\nfoo"), 0, 3); + + view->addSecondaryCursorDown(); + view->addSecondaryCursorDown(); + QCOMPARE(view->secondaryCursors().size(), 2); + + view->shiftWordLeft(); + doc->typeChars(view, QStringLiteral("{")); + QCOMPARE(doc->text(), QStringLiteral("{foo}\n{foo}\n{foo}")); +} + +void MulticursorTest::insertAutoBrackets() +{ + auto [doc, view] = createDocAndView(QStringLiteral("hello\nhello"), 0, 0); + QCOMPARE(doc->lines(), 2); + doc->setMode(QStringLiteral("C++")); + view->config()->setValue(KateViewConfig::AutoBrackets, true); + view->setSecondaryCursors({Cursor(0, 0), Cursor(1, 0)}); + QCOMPARE(view->cursors().size(), 2); + + doc->typeChars(view, QStringLiteral("(")); + QCOMPARE(doc->text(), QStringLiteral("(hello\n(hello")); +} + +void MulticursorTest::testInsertionWithCursorsAtSamePosition() +{ + auto [doc, view] = createDocAndView(QStringLiteral("one two thr fou"), 0, 0); + view->addSecondaryCursorsWithSelection({ + // two cursors, same position different selections + KTextEditor::ViewPrivate::PlainSecondaryCursor{.pos = {0, 3}, .range = {0, 0, 0, 3}}, + KTextEditor::ViewPrivate::PlainSecondaryCursor{.pos = {0, 3}, .range = {0, 3, 0, 6}}, + // this one is at the same position as primary cursor + KTextEditor::ViewPrivate::PlainSecondaryCursor{.pos = {0, 11}, .range = {0, 8, 0, 11}}, + }); + + view->setCursorPosition({0, 11}); + view->setSelection({0, 11, 0, 13}); + // uniquify + view->ensureUniqueCursors(); + view->show(); + + // ensure nothing got removed, because all cursors have unique selections + QCOMPARE(view->secondaryCursors().size(), 3); + QCOMPARE(view->cursorPosition(), Cursor(0, 11)); + QCOMPARE(view->selectionRange(), Range(0, 11, 0, 13)); + doc->typeChars(view, QStringLiteral("a")); + + QVERIFY(view->selectionRanges().empty()); + const auto expectedCursors = QVector{{0, 6}, {0, 1}, {0, 2}, {0, 5}}; + QCOMPARE(view->cursorPosition(), Cursor(0, 6)); + QCOMPARE(view->cursorPositions(), expectedCursors); +} + +void MulticursorTest::testCreateMultiCursor() +{ + auto [doc, view] = createDocAndView(QStringLiteral("foo\nbar\nfoo\n"), 0, 0); + + auto *const internalView = view->editorWidget(); + QVERIFY(internalView); + + // Alt + click should add a cursor + auto primary = view->cursorPosition(); + clickAtPosition(view, internalView, {1, 0}, Qt::AltModifier); + QCOMPARE(view->secondaryCursors().size(), 1); + // primary cursor moved to the position which is clicked + QCOMPARE(view->cursorPosition(), Cursor(1, 0)); + // secondary was created where primary cursor was + QCOMPARE(view->secondaryCursors().at(0).cursor(), primary); + + // Alt + click at the same point should remove the cursor + clickAtPosition(view, internalView, {1, 0}, Qt::AltModifier); + QCOMPARE(view->secondaryCursors().size(), 0); + + // Create two cursors using alt+click + clickAtPosition(view, internalView, {1, 0}, Qt::AltModifier); + clickAtPosition(view, internalView, {1, 1}, Qt::AltModifier); + QCOMPARE(view->secondaryCursors().size(), 2); + QVERIFY(isSorted(view->secondaryCursors())); + + // now simple click => should remove all secondary cursors + clickAtPosition(view, internalView, {1, 0}, Qt::NoModifier); + QCOMPARE(view->secondaryCursors().size(), 0); + QCOMPARE(view->cursorPosition(), Cursor(1, 0)); +} + +void MulticursorTest::testCreateMultiCursorFromSelection() +{ + auto [doc, view] = createDocAndView(QStringLiteral("foo\nbar\nfoo"), 2, 3); + view->setSelection(KTextEditor::Range(0, 0, 2, 3)); + // move primary cursor to beginning of line, so we can check whether it is moved to end of line + view->setCursorPosition({view->cursorPosition().line(), 0}); + view->createMultiCursorsFromSelection(); + QVERIFY(isSorted(view->secondaryCursors())); + QCOMPARE(view->cursorPosition().column(), 3); + + const auto &cursors = view->secondaryCursors(); + QCOMPARE(cursors.size(), doc->lines() - 1); // 1 cursor is primary, not included + + int i = 0; + for (const auto &c : cursors) { + QCOMPARE(c.cursor(), KTextEditor::Cursor(i, 3)); + i++; + } +} + +void MulticursorTest::testMulticursorToggling() +{ + auto [doc, view] = createDocAndView(QStringLiteral("foo\nbar\nfoo"), 0, 0); + view->setSelections({Range(0, 0, 0, 3), Range(1, 0, 1, 3)}); + QCOMPARE(view->selectionRanges().size(), 2); + + // Trying to add a cursor in one of the selection region + // will remove it + view->addSecondaryCursor(Cursor(0, 2)); + QCOMPARE(view->selectionRanges().size(), 1); + + // Trying to toggle last remaining selection will do nothing + view->addSecondaryCursor(Cursor(1, 2)); + QCOMPARE(view->selectionRanges().size(), 1); +} + +void MulticursorTest::moveCharTest() +{ + auto [doc, view] = createDocAndView(QStringLiteral("foo\nbar\nfoo\n"), 0, 0); + view->setCursors({Cursor(0, 0), Cursor(1, 0)}); + + // Simple left right + view->cursorRight(); + QCOMPARE(view->cursorPosition(), Cursor(0, 1)); + QCOMPARE(view->secondaryCursors().at(0).cursor(), Cursor(1, 1)); + + view->cursorLeft(); + QCOMPARE(view->cursorPosition(), Cursor(0, 0)); + QCOMPARE(view->secondaryCursors().at(0).cursor(), Cursor(1, 0)); + + // Shift pressed + view->shiftCursorRight(); + QCOMPARE(view->cursorPosition(), Cursor(0, 1)); + QCOMPARE(view->secondaryCursors().at(0).cursor(), Cursor(1, 1)); + QCOMPARE(view->secondaryCursors().at(0).range->toRange(), Range(1, 0, 1, 1)); + + view->shiftCursorLeft(); + QCOMPARE(view->cursorPosition(), Cursor(0, 0)); + QCOMPARE(view->secondaryCursors().at(0).cursor(), Cursor(1, 0)); + QCOMPARE(view->secondaryCursors().at(0).range->toRange(), Range(1, 0, 1, 0)); + + view->clearSecondaryCursors(); + + // Selection merge test => merge into primary cursor + view->setCursors({Cursor(0, 2), Cursor(0, 3)}); // fo|o| + // Two shift left should result in one cursor + view->shiftCursorLeft(); + view->shiftCursorLeft(); + QCOMPARE(view->cursorPosition(), Cursor(0, 0)); + QCOMPARE(view->secondaryCursors().size(), 0); + QCOMPARE(view->selectionRange(), Range(0, 0, 0, 3)); + + view->clearSelection(); + + // Selection merge test => merge primary into multi => multi becomes primary + view->setCursorPosition({0, 0}); // fo|o + view->addSecondaryCursor({0, 1}); // foo| + // Two shift left should result in one cursor + view->shiftCursorRight(); + view->shiftCursorRight(); + QCOMPARE(view->cursorPosition(), Cursor(0, 3)); + QCOMPARE(view->secondaryCursors().size(), 0); + QCOMPARE(view->selectionRange(), Range(0, 0, 0, 3)); +} + +void MulticursorTest::moveCharInFirstOrLastLineTest() +{ + auto [doc, view] = createDocAndView(QStringLiteral("foo"), 0, 0); + view->addSecondaryCursor({0, 1}); + // |f|oo + + view->cursorLeft(); + QCOMPARE(view->secondaryCursors().size(), 0); + QCOMPARE(view->cursorPosition(), Cursor(0, 0)); + + view->setCursorPosition({0, 2}); + view->addSecondaryCursor({0, 3}); + view->cursorRight(); + QCOMPARE(view->secondaryCursors().size(), 0); + QCOMPARE(view->cursorPosition(), Cursor(0, 3)); +} + +void MulticursorTest::moveWordTest() +{ + auto [doc, view] = createDocAndView(QStringLiteral("foo\nbar\nfoo\n"), 0, 0); + view->setCursors({Cursor(0, 0), Cursor(1, 0)}); + + // Simple left right + view->wordRight(); + QCOMPARE(view->cursorPosition(), Cursor(0, 3)); + QCOMPARE(*view->secondaryCursors().at(0).pos, Cursor(1, 3)); + + view->wordLeft(); + QCOMPARE(view->cursorPosition(), Cursor(0, 0)); + QCOMPARE(*view->secondaryCursors().at(0).pos, Cursor(1, 0)); + + // Shift pressed + view->shiftWordRight(); + QCOMPARE(view->cursorPosition(), Cursor(0, 3)); + QCOMPARE(*view->secondaryCursors().at(0).pos, Cursor(1, 3)); + QCOMPARE(view->secondaryCursors().at(0).range->toRange(), Range(1, 0, 1, 3)); + + view->shiftWordLeft(); + QCOMPARE(view->cursorPosition(), Cursor(0, 0)); + QCOMPARE(*view->secondaryCursors().at(0).pos, Cursor(1, 0)); + QCOMPARE(view->secondaryCursors().at(0).range->toRange(), Range(1, 0, 1, 0)); + + view->clearSecondaryCursors(); + + // Two cursors in same word, => word movement should merge them (sel) + view->setCursorPosition({0, 0}); // |foo + view->addSecondaryCursor({0, 1}); // f|oo + view->shiftWordRight(); // foo| + QCOMPARE(view->cursorPosition(), Cursor(0, 3)); + QCOMPARE(view->secondaryCursors().size(), 0); + QCOMPARE(view->selectionRange(), Range(0, 0, 0, 3)); + + // Three cursors in same word, => word movement should merge them (no sel) + view->setCursorPosition({0, 3}); // foo| + view->addSecondaryCursor({0, 2}); // fo|o + view->addSecondaryCursor({0, 1}); // f|oo + view->wordLeft(); // foo| + QCOMPARE(view->cursorPosition(), Cursor(0, 0)); + QCOMPARE(view->secondaryCursors().size(), 0); +} + +void MulticursorTest::homeEndKeyTest() +{ + auto [doc, view] = createDocAndView(QStringLiteral("foo\nbar\nfoo\n"), 0, 0); + view->setCursors({Cursor(0, 0), Cursor(0, 1)}); + + // Two cursor in same line => home should merge them + view->home(); + QCOMPARE(view->cursorPosition(), Cursor(0, 0)); + QCOMPARE(view->secondaryCursors().size(), 0); + + // Two cursor in same line => end should merge them + view->setCursors({Cursor(0, 0), Cursor(0, 1)}); + view->end(); + QCOMPARE(view->cursorPosition(), Cursor(0, 3)); + QCOMPARE(view->secondaryCursors().size(), 0); + + view->setCursors({Cursor(0, 3), Cursor(1, 0)}); + view->end(); + QCOMPARE(view->cursorPosition(), Cursor(0, 3)); + QCOMPARE(*view->secondaryCursors().at(0).pos, Cursor(1, 3)); + + view->clearSecondaryCursors(); + + view->setCursors({Cursor(0, 3), Cursor(1, 3)}); + view->home(); + QCOMPARE(view->cursorPosition(), Cursor(0, 0)); + QCOMPARE(*view->secondaryCursors().at(0).pos, Cursor(1, 0)); +} + +void MulticursorTest::moveUpDown() +{ + /** TEST UP **/ + auto [doc, view] = createDocAndView(QStringLiteral("foo\nbar\nfoo"), 0, 0); + + view->setSecondaryCursors({Cursor(1, 0), Cursor(2, 0)}); + QCOMPARE(view->secondaryCursors().size(), 2); + QVERIFY(isSorted(view->secondaryCursors())); + + view->up(); + QCOMPARE(view->secondaryCursors().size(), 1); + + view->up(); + QCOMPARE(view->secondaryCursors().size(), 0); + + /** TEST DOWN **/ + + view->setSecondaryCursors({Cursor(1, 0), Cursor(2, 0)}); + QCOMPARE(view->secondaryCursors().size(), 2); + + view->down(); + QCOMPARE(view->secondaryCursors().size(), 2); // last cursor moves to end of line + QCOMPARE(*view->secondaryCursors().at(1).pos, Cursor(2, 3)); + QVERIFY(isSorted(view->secondaryCursors())); + + view->down(); + QCOMPARE(view->secondaryCursors().size(), 1); + + view->down(); + QCOMPARE(view->secondaryCursors().size(), 0); + QCOMPARE(view->cursorPosition(), Cursor(2, 3)); +} + +void MulticursorTest::testSelectionMerge() +{ + // 8 lines + { + // Left movement, cursor at top + auto [doc, view] = createDocAndView(QStringLiteral("foo\nfoo\nfoo\nfoo\nfoo\nfoo\nfoo"), 0, 3); + + view->selectAll(); + view->createMultiCursorsFromSelection(); + QVERIFY(isSorted(view->secondaryCursors())); + + QCOMPARE(view->secondaryCursors().size(), 6); + + view->shiftWordLeft(); + QVERIFY(isSorted(view->secondaryCursors())); + view->shiftWordLeft(); + QVERIFY(isSorted(view->secondaryCursors())); + view->shiftWordLeft(); + + QCOMPARE(view->secondaryCursors().size(), 0); + QCOMPARE(view->cursorPosition(), Cursor(0, 0)); + QCOMPARE(view->selectionRange(), Range(0, 0, 6, 3)); + } + + { + // Left movement, cursor at bottom + auto [doc, view] = createDocAndView(QStringLiteral("foo\nfoo\nfoo\nfoo\nfoo\nfoo\nfoo"), 6, 3); + + view->selectAll(); + view->createMultiCursorsFromSelection(); + QVERIFY(isSorted(view->secondaryCursors())); + + QCOMPARE(view->secondaryCursors().size(), 6); + QCOMPARE(view->cursorPosition(), Cursor(6, 3)); + + view->shiftWordLeft(); + QVERIFY(isSorted(view->secondaryCursors())); + view->shiftWordLeft(); + QVERIFY(isSorted(view->secondaryCursors())); + view->shiftWordLeft(); + + QCOMPARE(view->secondaryCursors().size(), 0); + QCOMPARE(view->cursorPosition(), Cursor(0, 0)); + QCOMPARE(view->selectionRange(), Range(0, 0, 6, 3)); + } + + { + // Left word movement, cursor in the middle + auto [doc, view] = createDocAndView(QStringLiteral("foo\nfoo\nfoo\nfoo\nfoo\nfoo\nfoo"), 3, 3); + + for (int i = 0; i < 10; ++i) { + view->addSecondaryCursorUp(); + view->addSecondaryCursorDown(); + } + + QCOMPARE(view->secondaryCursors().size(), 6); + + view->shiftWordLeft(); + view->shiftWordLeft(); + view->shiftWordLeft(); + + QCOMPARE(view->secondaryCursors().size(), 0); + QCOMPARE(view->cursorPosition(), Cursor(0, 0)); + QCOMPARE(view->selectionRange(), Range(0, 0, 6, 3)); + } + + { + // Left word + char movement, cursor in the middle + auto [doc, view] = createDocAndView(QStringLiteral("foo\nfoo\nfoo\nfoo\nfoo\nfoo\nfoo"), 3, 3); + + view->addSecondaryCursorUp(); + view->addSecondaryCursorUp(); + view->addSecondaryCursorDown(); + view->addSecondaryCursorDown(); + QVERIFY(isSorted(view->secondaryCursors())); + + QCOMPARE(view->secondaryCursors().size(), 4); + + view->shiftWordLeft(); + view->shiftCursorLeft(); + view->shiftCursorLeft(); + view->shiftCursorLeft(); + + QCOMPARE(view->secondaryCursors().size(), 0); + QCOMPARE(view->cursorPosition(), Cursor(0, 1)); + QCOMPARE(view->selectionRange(), Range(0, 1, 5, 3)); + } + + { + // Right movement, cursor at bottom line + auto [doc, view] = createDocAndView(QStringLiteral("foo\nfoo\nfoo\nfoo\nfoo\nfoo\nfoo"), 6, 0); + + for (int i = 0; i < 10; ++i) { + view->addSecondaryCursorUp(); + } + + QCOMPARE(view->secondaryCursors().size(), 6); + + view->shiftWordRight(); + QVERIFY(isSorted(view->secondaryCursors())); + view->shiftWordRight(); + QVERIFY(isSorted(view->secondaryCursors())); + view->shiftWordRight(); + + QCOMPARE(view->secondaryCursors().size(), 0); + QCOMPARE(view->cursorPosition(), Cursor(6, 3)); + QCOMPARE(view->selectionRange(), Range(0, 0, 6, 3)); + } + + { + // Right movement, cursor at top line + auto [doc, view] = createDocAndView(QStringLiteral("foo\nfoo\nfoo\nfoo\nfoo\nfoo\nfoo"), 0, 0); + + for (int i = 0; i < 10; ++i) { + view->addSecondaryCursorDown(); + } + + QCOMPARE(view->secondaryCursors().size(), 6); + + view->shiftWordRight(); + view->shiftWordRight(); + view->shiftWordRight(); + + QCOMPARE(view->secondaryCursors().size(), 0); + QCOMPARE(view->cursorPosition(), Cursor(6, 3)); + QCOMPARE(view->selectionRange(), Range(0, 0, 6, 3)); + } + + { + // Right word + char movement, cursor in the middle + auto [doc, view] = createDocAndView(QStringLiteral("foo\nfoo\nfoo\nfoo\nfoo\nfoo\nfoo"), 3, 0); + + view->addSecondaryCursorUp(); + view->addSecondaryCursorUp(); + view->addSecondaryCursorDown(); + view->addSecondaryCursorDown(); + QVERIFY(isSorted(view->secondaryCursors())); + + QCOMPARE(view->secondaryCursors().size(), 4); + + view->shiftWordRight(); + QVERIFY(isSorted(view->secondaryCursors())); + view->shiftCursorRight(); + QVERIFY(isSorted(view->secondaryCursors())); + view->shiftCursorRight(); + QVERIFY(isSorted(view->secondaryCursors())); + view->shiftCursorRight(); + + QCOMPARE(view->secondaryCursors().size(), 0); + QCOMPARE(view->cursorPosition(), Cursor(6, 2)); + QCOMPARE(view->selectionRange(), Range(1, 0, 6, 2)); + } +} + +void MulticursorTest::findNextOccurenceTest() +{ + auto [doc, view] = createDocAndView(QStringLiteral("foo\nbar\nfoo\nfoo"), 0, 0); + + // No selection + view->findNextOccurunceAndSelect(); + QCOMPARE(view->selectionRange(), Range(0, 0, 0, 3)); + QCOMPARE(view->cursorPosition(), Cursor(0, 3)); + QCOMPARE(view->secondaryCursors().size(), 0); + + view->clearSelection(); + // with selection + view->setSelection(Range(0, 0, 0, 3)); + view->findNextOccurunceAndSelect(); + QCOMPARE(view->secondaryCursors().size(), 1); + QCOMPARE(view->secondaryCursors().at(0).cursor(), Cursor(0, 3)); + QCOMPARE(view->secondaryCursors().at(0).range->toRange(), Range(0, 0, 0, 3)); + // primary cursor has the last selection + QCOMPARE(view->cursorPosition(), Cursor(2, 3)); + QCOMPARE(view->selectionRange(), Range(2, 0, 2, 3)); + + // find another + view->findNextOccurunceAndSelect(); + QCOMPARE(view->secondaryCursors().size(), 2); + QVERIFY(isSorted(view->secondaryCursors())); + QCOMPARE(view->secondaryCursors().at(0).cursor(), Cursor(0, 3)); + QCOMPARE(view->secondaryCursors().at(0).range->toRange(), Range(0, 0, 0, 3)); + QCOMPARE(view->secondaryCursors().at(1).cursor(), Cursor(2, 3)); + QCOMPARE(view->secondaryCursors().at(1).range->toRange(), Range(2, 0, 2, 3)); + // primary cursor has the last selection + QCOMPARE(view->cursorPosition(), Cursor(3, 3)); + QCOMPARE(view->selectionRange(), Range(3, 0, 3, 3)); + + // Try to find another, there is none so nothing should change + // except that the primary cursor position is moved to newest found + view->findNextOccurunceAndSelect(); + QCOMPARE(view->cursorPosition(), Cursor(0, 3)); + QCOMPARE(view->selectionRange(), Range(0, 0, 0, 3)); + QVERIFY(isSorted(view->secondaryCursors())); +} + +void MulticursorTest::findAllOccurenceTest() +{ + auto [doc, view] = createDocAndView(QStringLiteral("foo\nbar\nfoo\nfoo"), 0, 0); + + // No selection + view->findAllOccuruncesAndSelect(); + QCOMPARE(view->selectionRange(), Range(0, 0, 0, 3)); + QCOMPARE(view->cursorPosition(), Cursor(0, 3)); + QCOMPARE(view->secondaryCursors().size(), 2); + // first + QCOMPARE(view->secondaryCursors().at(0).cursor(), Cursor(2, 3)); + QCOMPARE(view->secondaryCursors().at(0).range->toRange(), Range(2, 0, 2, 3)); + // second + QCOMPARE(view->secondaryCursors().at(1).cursor(), Cursor(3, 3)); + QCOMPARE(view->secondaryCursors().at(1).range->toRange(), Range(3, 0, 3, 3)); + + // Try to find another, there is none so nothing should change + view->findAllOccuruncesAndSelect(); + QCOMPARE(view->cursorPosition(), Cursor(0, 3)); + QCOMPARE(view->selectionRange(), Range(0, 0, 0, 3)); +} + +void MulticursorTest::testMultiCopyPaste() +{ + // Create two docs, copy from one to the other + { + auto [doc, view] = createDocAndView(QStringLiteral("foo\nbar\nfoo\nfoo"), 0, 0); + view->addSecondaryCursor({1, 0}); + view->addSecondaryCursor({2, 0}); + view->addSecondaryCursor({3, 0}); + view->shiftWordRight(); + view->copy(); + } + + // Same number of cursors when pasting => each line gets pasted into matching cursor position + { + KTextEditor::DocumentPrivate doc; + doc.setText(QStringLiteral("\n\n\n\n")); + KTextEditor::ViewPrivate *v = new KTextEditor::ViewPrivate(&doc, nullptr); + v->setCursorPosition({0, 0}); + v->addSecondaryCursor({1, 0}); + v->addSecondaryCursor({2, 0}); + v->addSecondaryCursor({3, 0}); + v->paste(); + QCOMPARE(doc.text(), QStringLiteral("foo\nbar\nfoo\nfoo\n")); + + // Different number of cursors + v->clear(); + QVERIFY(doc.clear()); + doc.setText(QStringLiteral("\n\n")); + v->setCursorPosition({0, 0}); + v->addSecondaryCursor({1, 0}); + QCOMPARE(v->secondaryCursors().size(), 1); + + v->paste(); + QString text = doc.text(); + QCOMPARE(text, QStringLiteral("foo\nbar\nfoo\nfoo\nfoo\nbar\nfoo\nfoo\n")); + } +} + +void MulticursorTest::testMultiPasteFromClipboard() +{ + auto [doc, view] = createDocAndView(QStringLiteral("\n\n\n\n"), 0, 0); + const QString clipboardText = QStringLiteral("hello\nworld\n\n123\n456"); + QApplication::clipboard()->setText(clipboardText); + view->setCursors({{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}}); + view->paste(); + // expect each line to get pasted at a cursor position because the number + // of lines in clipboard text == number of cursors + QCOMPARE(doc->text(), clipboardText); +} + +void MulticursorTest::testSelectionTextOrdering() +{ + auto [doc, view] = createDocAndView(QStringLiteral("foo\nbar\nfoo\nfoo"), 0, 0); + view->addSecondaryCursor({1, 0}); + view->addSecondaryCursor({2, 0}); + view->shiftWordRight(); + QVERIFY(isSorted(view->secondaryCursors())); + + QString selText = view->selectionText(); + QCOMPARE(selText, QStringLiteral("foo\nbar\nfoo")); + + view->copy(); + QCOMPARE(QApplication::clipboard()->text(QClipboard::Clipboard), selText); +} + +void MulticursorTest::testViewClear() +{ + auto [doc, view] = createDocAndView(QStringLiteral("foo\nbar"), 0, 0); + view->addSecondaryCursor({1, 0}); + QCOMPARE(view->secondaryCursors().size(), 1); + view->clear(); + QCOMPARE(view->secondaryCursors().size(), 0); +} + +void MulticursorTest::testSetGetCursors() +{ + using Cursors = QList; + // Simple check + { + auto [doc, view] = createDocAndView(QStringLiteral("foo\nbar\nfoo\nfoo"), 0, 0); + + // primary included + QCOMPARE(view->cursors(), Cursors{Cursor(0, 0)}); + + const Cursors cursors = {{0, 1}, {1, 1}, {2, 1}, {3, 1}}; + view->setCursors(cursors); + QCOMPARE(view->cursors(), cursors); + QVERIFY(isSorted(view->cursors())); + QCOMPARE(view->cursorPosition(), Cursor(0, 1)); + // We have no selection + QVERIFY(!view->selection()); + QCOMPARE(view->selectionRanges(), QList{}); + } + + // Test duplicate cursor positions + { + auto [doc, view] = createDocAndView(QStringLiteral("foo\nbar"), 0, 0); + + QCOMPARE(view->cursors(), Cursors{Cursor(0, 0)}); + const Cursors cursors = {{0, 0}, {1, 1}, {0, 0}, {1, 1}}; + view->setCursors(cursors); + auto expectedCursors = Cursors{Cursor(0, 0), Cursor(1, 1)}; + QCOMPARE(view->cursors(), expectedCursors); + QVERIFY(isSorted(view->cursors())); + QCOMPARE(view->cursorPosition(), Cursor(0, 0)); + + QVERIFY(view->cursors().size() > 1); + view->setCursors({}); + QVERIFY(view->cursors().size() == 1); + } +} + +void MulticursorTest::testSetGetSelections() +{ + // Set cursors => press shift+right + { + auto [doc, view] = createDocAndView(QStringLiteral("foo\nbar\nfoo"), 0, 0); + QCOMPARE(view->cursors(), QList{Cursor(0, 0)}); + QList cursors = {{0, 1}, {1, 1}, {2, 1}}; + view->setCursors(cursors); + QCOMPARE(view->cursors(), cursors); + QVERIFY(isSorted(view->cursors())); + view->shiftCursorRight(); + QVERIFY(view->selection()); + cursors = {{0, 2}, {1, 2}, {2, 2}}; + QCOMPARE(view->cursors(), cursors); + QList selections = {Range(0, 1, 0, 2), Range(1, 1, 1, 2), Range(2, 1, 2, 2)}; + QCOMPARE(view->selectionRanges(), selections); + QVERIFY(isSorted(view->selectionRanges())); + QCOMPARE(view->selectionRange(), selections.front()); + } + + // Set cursors including an invalid position cursor + // - primary already has selection + // - try to get selection + { + auto [doc, view] = createDocAndView(QStringLiteral("foo\nbar"), 0, 0); + view->shiftWordRight(); + QVERIFY(view->selection()); + QCOMPARE(view->selectionRange(), Range(0, 0, 0, 3)); + + QList cursors = {{0, 1}, {1, 1}, {2, 1}}; + view->setCursors(cursors); + QVERIFY(!view->selection()); // selection is lost + auto expectedCursors = QList{Cursor(0, 1), Cursor(1, 1)}; + QCOMPARE(view->cursors(), expectedCursors); + } + + // Set selections + { + auto [doc, view] = createDocAndView(QStringLiteral("foo\nbar"), 0, 0); + + QVERIFY(!view->selection()); + QList selections = {Range(0, 0, 0, 1), Range(1, 0, 1, 1)}; + view->setSelections(selections); + QVERIFY(view->selection()); + QCOMPARE(view->selectionRanges(), selections); + } + + // Set overlapping selections + { + auto [doc, view] = createDocAndView(QStringLiteral("foo\nbar"), 0, 0); + + QVERIFY(!view->selection()); + QList selections = {Range(0, 0, 0, 3), Range(0, 1, 0, 2), Range(0, 0, 0, 1)}; + view->setSelections(selections); + QVERIFY(view->selection()); + QList expectedSelections = {Range(0, 0, 0, 3)}; + QCOMPARE(view->selectionRanges(), expectedSelections); + + view->setSelections({}); + QVERIFY(!view->selection()); + } + + // Set selections with invalid range + { + auto [doc, view] = createDocAndView(QStringLiteral("foo\nbar"), 0, 0); + + QVERIFY(!view->selection()); + QList selections = {Range(0, 0, 0, 3), Range(1, 0, 1, 1), Range(2, 0, 2, 1)}; + view->setSelections(selections); + QVERIFY(view->selection()); + QList expectedSelections = {Range(0, 0, 0, 3), Range(1, 0, 1, 1)}; + QCOMPARE(view->selectionRanges(), expectedSelections); + } +} + +void MulticursorTest::testIndent() +{ + auto [doc, view] = createDocAndView(QStringLiteral("foo\nbar\nfoo\nfoo"), 0, 0); + view->addSecondaryCursor({1, 0}); + // set one cursor with selection + KTextEditor::ViewPrivate::PlainSecondaryCursor c; + c.pos = {2, 0}; + c.range = {{2, 0}, {2, 2}}; + view->addSecondaryCursorsWithSelection({c}); + view->indent(); + auto [expectedDoc, expectedView] = createDocAndView(QStringLiteral(" foo\n bar\n foo\nfoo"), 0, 0); + QCOMPARE(doc->text(), expectedDoc->text()); +} + +#include "moc_multicursortest.cpp" + +// kate: indent-mode cstyle; indent-width 4; replace-tabs on; diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/multicursortest.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/multicursortest.h new file mode 100644 index 0000000000..5b4f4e0be3 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/multicursortest.h @@ -0,0 +1,67 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2022 Waqar Ahmed + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef KTE_MULTI_CURSOR_TEST_H +#define KTE_MULTI_CURSOR_TEST_H + +#include + +class MulticursorTest : public QObject +{ + Q_OBJECT + +public: + MulticursorTest(); + ~MulticursorTest() override; + +private Q_SLOTS: + // Creation + static void testCreateMultiCursor(); + static void testCreateMultiCursorFromSelection(); + static void testMulticursorToggling(); + + // Text transformations + static void testKillline(); + + // Insert & Remove tests + static void insertRemoveText(); + static void backspace(); + static void keyDelete(); + static void testUndoRedo(); + static void testUndoRedoWithSelection(); + static void keyReturnIndentTest(); + static void wrapSelectionWithCharsTest(); + static void insertAutoBrackets(); + static void testInsertionWithCursorsAtSamePosition(); + static void testIndent(); + + // Movement + static void moveCharTest(); + static void moveCharInFirstOrLastLineTest(); + static void moveWordTest(); + static void homeEndKeyTest(); + static void moveUpDown(); + static void testSelectionMerge(); + + // Find occurunce + static void findNextOccurenceTest(); + static void findAllOccurenceTest(); + + // Multicopypaste + static void testMultiCopyPaste(); + static void testMultiPasteFromClipboard(); + + // Misc + static void testSelectionTextOrdering(); + static void testViewClear(); + + // API + static void testSetGetCursors(); + static void testSetGetSelections(); +}; + +#endif // KATE_VIEW_TEST_H diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/plaintextsearch_test.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/plaintextsearch_test.cpp new file mode 100644 index 0000000000..209170b910 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/plaintextsearch_test.cpp @@ -0,0 +1,157 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2010 Bernhard Beschow + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "plaintextsearch_test.h" +#include "moc_plaintextsearch_test.cpp" + +#include +#include + +#include +#include + +QTEST_MAIN(PlainTextSearchTest) + +QtMessageHandler PlainTextSearchTest::s_msgHandler = nullptr; + +void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg) +{ + switch (type) { + case QtDebugMsg: + /* do nothing */ + break; + default: + PlainTextSearchTest::s_msgHandler(type, context, msg); + } +} + +void PlainTextSearchTest::initTestCase() +{ + QStandardPaths::setTestModeEnabled(true); + s_msgHandler = qInstallMessageHandler(myMessageOutput); +} + +void PlainTextSearchTest::cleanupTestCase() +{ + qInstallMessageHandler(nullptr); +} + +PlainTextSearchTest::PlainTextSearchTest() + : QObject() +{ +} + +PlainTextSearchTest::~PlainTextSearchTest() +{ +} + +void PlainTextSearchTest::init() +{ + m_doc = new KTextEditor::DocumentPrivate(false, false, nullptr, this); + m_search = new KatePlainTextSearch(m_doc, Qt::CaseSensitive, false); +} + +void PlainTextSearchTest::cleanup() +{ + delete m_search; + delete m_doc; +} + +void PlainTextSearchTest::testSearchBackward_data() +{ + QTest::addColumn("searchRange"); + QTest::addColumn("expectedResult"); + + QTest::newRow("") << KTextEditor::Range(0, 0, 1, 10) << KTextEditor::Range(1, 6, 1, 10); + QTest::newRow("") << KTextEditor::Range(0, 0, 1, 5) << KTextEditor::Range(1, 0, 1, 4); + QTest::newRow("") << KTextEditor::Range(0, 0, 1, 0) << KTextEditor::Range(0, 10, 0, 14); +} + +void PlainTextSearchTest::testSearchBackward() +{ + QFETCH(KTextEditor::Range, searchRange); + QFETCH(KTextEditor::Range, expectedResult); + + m_doc->setText( + QStringLiteral("aaaa aaaa aaaa\n" + "aaaa aaaa")); + + QCOMPARE(m_search->search(QLatin1String("aaaa"), searchRange, true), expectedResult); +} + +void PlainTextSearchTest::testSingleLineDocument_data() +{ + QTest::addColumn("searchRange"); + QTest::addColumn("forwardResult"); + QTest::addColumn("backwardResult"); + + QTest::newRow("[a a a a a a a a a a a a]") << KTextEditor::Range(0, 0, 0, 23) << KTextEditor::Range(0, 0, 0, 5) << KTextEditor::Range(0, 18, 0, 23); + QTest::newRow("[a a a a a a a a a a a ]a") << KTextEditor::Range(0, 0, 0, 22) << KTextEditor::Range(0, 0, 0, 5) << KTextEditor::Range(0, 16, 0, 21); + QTest::newRow("a[ a a a a a a a a a a a]") << KTextEditor::Range(0, 1, 0, 23) << KTextEditor::Range(0, 2, 0, 7) << KTextEditor::Range(0, 18, 0, 23); + QTest::newRow("a[ a a a a a a a a a a ]a") << KTextEditor::Range(0, 1, 0, 22) << KTextEditor::Range(0, 2, 0, 7) << KTextEditor::Range(0, 16, 0, 21); + QTest::newRow("[a a a a] a a a a a a a a") << KTextEditor::Range(0, 0, 0, 7) << KTextEditor::Range(0, 0, 0, 5) << KTextEditor::Range(0, 2, 0, 7); + QTest::newRow("[a a a ]a a a a a a a a a") << KTextEditor::Range(0, 0, 0, 6) << KTextEditor::Range(0, 0, 0, 5) << KTextEditor::Range(0, 0, 0, 5); + QTest::newRow("[a a a] a a a a a a a a a") << KTextEditor::Range(0, 0, 0, 5) << KTextEditor::Range(0, 0, 0, 5) << KTextEditor::Range(0, 0, 0, 5); + QTest::newRow("[a a ]a a a a a a a a a a") << KTextEditor::Range(0, 0, 0, 4) << KTextEditor::Range::invalid() << KTextEditor::Range::invalid(); + QTest::newRow("a a a a a a a a [a a a a]") << KTextEditor::Range(0, 16, 0, 23) << KTextEditor::Range(0, 16, 0, 21) << KTextEditor::Range(0, 18, 0, 23); + QTest::newRow("a a a a a a a a a[ a a a]") << KTextEditor::Range(0, 17, 0, 23) << KTextEditor::Range(0, 18, 0, 23) << KTextEditor::Range(0, 18, 0, 23); + QTest::newRow("a a a a a a a a a [a a a]") << KTextEditor::Range(0, 18, 0, 23) << KTextEditor::Range(0, 18, 0, 23) << KTextEditor::Range(0, 18, 0, 23); + QTest::newRow("a a a a a a a a a a[ a a]") << KTextEditor::Range(0, 19, 0, 23) << KTextEditor::Range::invalid() << KTextEditor::Range::invalid(); + QTest::newRow("a a a a a[ a a a a] a a a") << KTextEditor::Range(0, 9, 0, 17) << KTextEditor::Range(0, 10, 0, 15) << KTextEditor::Range(0, 12, 0, 17); + QTest::newRow("a a a a a[ a a] a a a a a") << KTextEditor::Range(0, 9, 0, 13) << KTextEditor::Range::invalid() << KTextEditor::Range::invalid(); +} + +void PlainTextSearchTest::testSingleLineDocument() +{ + QFETCH(KTextEditor::Range, searchRange); + QFETCH(KTextEditor::Range, forwardResult); + QFETCH(KTextEditor::Range, backwardResult); + + m_doc->setText(QStringLiteral("a a a a a a a a a a a a")); + + QCOMPARE(m_search->search(QLatin1String("a a a"), searchRange, false), forwardResult); + QCOMPARE(m_search->search(QLatin1String("a a a"), searchRange, true), backwardResult); +} + +void PlainTextSearchTest::testMultilineSearch_data() +{ + QTest::addColumn("pattern"); + QTest::addColumn("inputRange"); + QTest::addColumn("forwardResult"); + + QTest::newRow("") << "a a a\na a\na a a" << KTextEditor::Range(0, 0, 2, 5) << KTextEditor::Range(0, 0, 2, 5); + QTest::newRow("") << "a a a\na a\na a " << KTextEditor::Range(0, 0, 2, 5) << KTextEditor::Range(0, 0, 2, 4); + QTest::newRow("") << "a a a\na a\na a" << KTextEditor::Range(0, 0, 2, 5) << KTextEditor::Range(0, 0, 2, 3); + QTest::newRow("") << "a a a\na a\na" << KTextEditor::Range(0, 0, 2, 5) << KTextEditor::Range(0, 0, 2, 1); + QTest::newRow("") << "a a a\na a\n" << KTextEditor::Range(0, 0, 2, 5) << KTextEditor::Range(0, 0, 2, 0); + QTest::newRow("") << "a a a\na a" << KTextEditor::Range(0, 0, 2, 5) << KTextEditor::Range(0, 0, 1, 3); + QTest::newRow("") << "a a\na a" << KTextEditor::Range(0, 0, 2, 5) << KTextEditor::Range(0, 2, 1, 3); + QTest::newRow("") << "a a\na a\na a" << KTextEditor::Range(0, 0, 2, 5) << KTextEditor::Range(0, 2, 2, 3); + QTest::newRow("") << "\na a\na a" << KTextEditor::Range(0, 0, 2, 5) << KTextEditor::Range(0, 5, 2, 3); + QTest::newRow("") << "\na a\n" << KTextEditor::Range(0, 0, 2, 5) << KTextEditor::Range(0, 5, 2, 0); + + QTest::newRow("") << "a a a\na a\na a a" << KTextEditor::Range(0, 0, 2, 4) << KTextEditor::Range::invalid(); + QTest::newRow("") << "a a a\na a\na a " << KTextEditor::Range(0, 0, 2, 4) << KTextEditor::Range(0, 0, 2, 4); + QTest::newRow("") << "a a a\na a\n" << KTextEditor::Range(0, 0, 2, 0) << KTextEditor::Range(0, 0, 2, 0); + QTest::newRow("") << "a a a\na a\n" << KTextEditor::Range(0, 0, 1, 3) << KTextEditor::Range::invalid(); + QTest::newRow("") << "a a\n" << KTextEditor::Range(0, 0, 1, 3) << KTextEditor::Range(0, 2, 1, 0); + QTest::newRow("") << "a \n" << KTextEditor::Range(0, 0, 1, 3) << KTextEditor::Range::invalid(); +} + +void PlainTextSearchTest::testMultilineSearch() +{ + QFETCH(QString, pattern); + QFETCH(KTextEditor::Range, inputRange); + QFETCH(KTextEditor::Range, forwardResult); + + m_doc->setText( + QStringLiteral("a a a\n" + "a a\n" + "a a a")); + + QCOMPARE(m_search->search(pattern, inputRange, false), forwardResult); +} diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/plaintextsearch_test.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/plaintextsearch_test.h new file mode 100644 index 0000000000..0fbe2c9785 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/plaintextsearch_test.h @@ -0,0 +1,51 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2010 Bernhard Beschow + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef KATE_PLAINTEXTSEARCH_TEST_H +#define KATE_PLAINTEXTSEARCH_TEST_H + +#include + +namespace KTextEditor +{ +class DocumentPrivate; +} +class KatePlainTextSearch; + +class PlainTextSearchTest : public QObject +{ + Q_OBJECT + +public: + PlainTextSearchTest(); + ~PlainTextSearchTest() override; + +private Q_SLOTS: + void initTestCase(); + void cleanupTestCase(); + + void init(); + void cleanup(); + + void testSearchBackward_data(); + void testSearchBackward(); + + void testSingleLineDocument_data(); + void testSingleLineDocument(); + + void testMultilineSearch_data(); + void testMultilineSearch(); + +private: + KTextEditor::DocumentPrivate *m_doc = nullptr; + KatePlainTextSearch *m_search = nullptr; + +public: + static QtMessageHandler s_msgHandler; +}; + +#endif diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/range_test.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/range_test.cpp new file mode 100644 index 0000000000..b622e89216 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/range_test.cpp @@ -0,0 +1,314 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2016 Dominik Haumann + SPDX-FileCopyrightText: 2010 Christoph Cullmann + SPDX-FileCopyrightText: 2005 Hamish Rodda + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "range_test.h" +#include "moc_range_test.cpp" + +#include + +#include +#include +#include +#include +#include + +#include +#include + +QTEST_MAIN(RangeTest) + +#define testNewRow() (QTest::newRow(QString("line %1").arg(__LINE__).toAscii().data())) + +RangeTest::RangeTest() + : QObject() +{ + QStandardPaths::setTestModeEnabled(true); +} + +RangeTest::~RangeTest() +{ +} + +void RangeTest::rangeCheck(KTextEditor::Range &valid) +{ + QVERIFY(valid.isValid() && valid.start() <= valid.end()); + + KTextEditor::Cursor before(0, 1); + KTextEditor::Cursor start(0, 2); + KTextEditor::Cursor end(1, 4); + KTextEditor::Cursor after(1, 10); + + KTextEditor::Range result(start, end); + QVERIFY(valid.isValid() && valid.start() <= valid.end()); + + valid.setRange(start, end); + QVERIFY(valid.isValid() && valid.start() <= valid.end()); + QCOMPARE(valid, result); + + valid.setRange(end, start); + QVERIFY(valid.isValid() && valid.start() <= valid.end()); + QCOMPARE(valid, result); + + valid.setStart(after); + QVERIFY(valid.isValid() && valid.start() <= valid.end()); + QCOMPARE(valid, KTextEditor::Range(after, after)); + + valid = result; + QCOMPARE(valid, result); + + valid.setEnd(before); + QVERIFY(valid.isValid() && valid.start() <= valid.end()); + QCOMPARE(valid, KTextEditor::Range(before, before)); +} + +void RangeTest::testTextEditorRange() +{ + // test simple range + KTextEditor::Range range; + rangeCheck(range); +} + +void RangeTest::testTextRange() +{ + // test text range + KTextEditor::DocumentPrivate doc; + std::unique_ptr complexRange{doc.newMovingRange(KTextEditor::Range())}; + KTextEditor::Range range = *complexRange; + rangeCheck(range); +} + +void RangeTest::testInsertText() +{ + KTextEditor::DocumentPrivate doc; + + // Multi-line insert + std::unique_ptr cursor1{doc.newMovingCursor(KTextEditor::Cursor(), KTextEditor::MovingCursor::StayOnInsert)}; + std::unique_ptr cursor2{doc.newMovingCursor(KTextEditor::Cursor(), KTextEditor::MovingCursor::MoveOnInsert)}; + + doc.insertText(KTextEditor::Cursor(), QLatin1String("Test Text\nMore Test Text")); + QCOMPARE(doc.documentEnd(), KTextEditor::Cursor(1, 14)); + + QString text = doc.text(KTextEditor::Range(1, 0, 1, 14)); + QCOMPARE(text, QLatin1String("More Test Text")); + + // Check cursors and ranges have moved properly + QCOMPARE(cursor1->toCursor(), KTextEditor::Cursor(0, 0)); + QCOMPARE(cursor2->toCursor(), KTextEditor::Cursor(1, 14)); + + KTextEditor::Cursor cursor3 = doc.endOfLine(1); + + // Set up a few more lines + doc.insertText(*cursor2, QLatin1String("\nEven More Test Text")); + QCOMPARE(doc.documentEnd(), KTextEditor::Cursor(2, 19)); + QCOMPARE(cursor3, doc.endOfLine(1)); +} + +void RangeTest::testCornerCaseInsertion() +{ + KTextEditor::DocumentPrivate doc; + + // lock first revision + doc.lockRevision(0); + + std::unique_ptr rangeEdit{doc.newMovingRange(KTextEditor::Range(0, 0, 0, 0))}; + QCOMPARE(rangeEdit->toRange(), KTextEditor::Range(0, 0, 0, 0)); + + doc.insertText(KTextEditor::Cursor(0, 0), QLatin1String("\n")); + QCOMPARE(rangeEdit->toRange(), KTextEditor::Range(1, 0, 1, 0)); + + // test translate + KTextEditor::Range translateTest(0, 0, 0, 0); + doc.transformRange(translateTest, KTextEditor::MovingRange::DoNotExpand, KTextEditor::MovingRange::AllowEmpty, 0); + QCOMPARE(translateTest, KTextEditor::Range(1, 0, 1, 0)); + + // test translate reverse + KTextEditor::Range reverseTranslateTest(1, 0, 1, 0); + doc.transformRange(reverseTranslateTest, KTextEditor::MovingRange::DoNotExpand, KTextEditor::MovingRange::AllowEmpty, -1, 0); + QCOMPARE(reverseTranslateTest, KTextEditor::Range(0, 0, 0, 0)); +} + +void RangeTest::testCursorStringConversion() +{ + using KTextEditor::Cursor; + + KTextEditor::Cursor c; + QCOMPARE(c.line(), 0); + QCOMPARE(c.column(), 0); + QCOMPARE(c.toString(), QStringLiteral("(0, 0)")); + c = Cursor::fromString(QStringLiteral("(0, 0)")); + QCOMPARE(c.toString(), QStringLiteral("(0, 0)")); + c = Cursor::fromString(QStringLiteral("(0,0)")); + QCOMPARE(c.toString(), QStringLiteral("(0, 0)")); + + c.setPosition(-1, -1); + QCOMPARE(c.toString(), QStringLiteral("(-1, -1)")); + c = Cursor::fromString(QStringLiteral("(-1, -1)")); + QCOMPARE(c.toString(), QStringLiteral("(-1, -1)")); + c = Cursor::fromString(QStringLiteral("(-1,-1)")); + QCOMPARE(c.toString(), QStringLiteral("(-1, -1)")); + + c.setPosition(12, 42); + QCOMPARE(c.toString(), QStringLiteral("(12, 42)")); + c = Cursor::fromString(QStringLiteral("(12, 42)")); + QCOMPARE(c.toString(), QStringLiteral("(12, 42)")); + c = Cursor::fromString(QStringLiteral("( 12,42)")); + QCOMPARE(c.toString(), QStringLiteral("(12, 42)")); + + c.setPosition(12, 42); + QCOMPARE(c.toString(), QStringLiteral("(12, 42)")); + c = Cursor::fromString(QStringLiteral("(12, 42)")); + QCOMPARE(c.toString(), QStringLiteral("(12, 42)")); + + c.setPosition(-12, 42); + QCOMPARE(c.toString(), QStringLiteral("(-12, 42)")); + c = Cursor::fromString(QStringLiteral("(-12, 42)")); + QCOMPARE(c.toString(), QStringLiteral("(-12, 42)")); + c = Cursor::fromString(QStringLiteral("(-12, +42)")); + QCOMPARE(c.toString(), QStringLiteral("(-12, 42)")); + c = Cursor::fromString(QStringLiteral("( -12 , +42)")); + QCOMPARE(c.toString(), QStringLiteral("(-12, 42)")); + c = Cursor::fromString(QStringLiteral("(-12 , 42 )")); + QCOMPARE(c.toString(), QStringLiteral("(-12, 42)")); + + // test invalid input + c = Cursor::fromString(QStringLiteral("( - 12 , + 42)")); + QCOMPARE(c.toString(), QStringLiteral("(-1, -1)")); + c = Cursor::fromString(QStringLiteral("(, 42)")); + QCOMPARE(c.toString(), QStringLiteral("(-1, -1)")); + c = Cursor::fromString(QStringLiteral("(-, -)")); + QCOMPARE(c.toString(), QStringLiteral("(-1, -1)")); + c = Cursor::fromString(QStringLiteral("(-, -)")); + QCOMPARE(c.toString(), QStringLiteral("(-1, -1)")); + c = Cursor::fromString(QStringLiteral("(-x,y)")); + QCOMPARE(c.toString(), QStringLiteral("(-1, -1)")); + c = Cursor::fromString(QStringLiteral("(-3,-2y)")); + QCOMPARE(c.toString(), QStringLiteral("(-1, -1)")); +} + +void RangeTest::testRangeStringConversion() +{ + using KTextEditor::Cursor; + using KTextEditor::Range; + + KTextEditor::Range r; + QCOMPARE(r.start(), Cursor(0, 0)); + QCOMPARE(r.end(), Cursor(0, 0)); + QCOMPARE(r.toString(), QStringLiteral("[(0, 0), (0, 0)]")); + + r = Range::fromString(QStringLiteral("[(0, 0), (0, 0)]")); + QCOMPARE(r.toString(), QStringLiteral("[(0, 0), (0, 0)]")); + r = Range::fromString(QStringLiteral("[(0,0),(0,0)]")); + QCOMPARE(r.toString(), QStringLiteral("[(0, 0), (0, 0)]")); + r = Range::fromString(QStringLiteral("[(-1, -1), (-1, -1)]")); + QCOMPARE(r.toString(), QStringLiteral("[(-1, -1), (-1, -1)]")); + r = Range::fromString(QStringLiteral("[(-1, -1), (0, 0)]")); + QCOMPARE(r.toString(), QStringLiteral("[(-1, -1), (0, 0)]")); + r = Range::fromString(QStringLiteral("[(0, 0), (-1, -1)]")); + QCOMPARE(r.toString(), QStringLiteral("[(-1, -1), (0, 0)]")); // start > end -> swap + + r = Range::fromString(QStringLiteral("[(0, 0), (12, 42)]")); + QCOMPARE(r.toString(), QStringLiteral("[(0, 0), (12, 42)]")); + r = Range::fromString(QStringLiteral("[(12, 42), (0, 0)]")); + QCOMPARE(r.toString(), QStringLiteral("[(0, 0), (12, 42)]")); // start > end -> swap + r = Range::fromString(QStringLiteral("[(12,42),(0,0)]")); + QCOMPARE(r.toString(), QStringLiteral("[(0, 0), (12, 42)]")); // start > end -> swap + r = Range::fromString(QStringLiteral("[(-12, -42), (0, 0)]")); + QCOMPARE(r.toString(), QStringLiteral("[(-12, -42), (0, 0)]")); + r = Range::fromString(QStringLiteral("[(0, 0), (-12, -42)]")); + QCOMPARE(r.toString(), QStringLiteral("[(-12, -42), (0, 0)]")); // start > end -> swap + + // invalid input + r = Range::fromString(QStringLiteral("[(0:0)(-12:-42)]")); + QCOMPARE(r.toString(), QStringLiteral("[(-1, -1), (-1, -1)]")); + r = Range::fromString(QStringLiteral("[0,1]")); + QCOMPARE(r.toString(), QStringLiteral("[(-1, -1), (-1, -1)]")); +} + +void RangeTest::testLineRangeStringConversion() +{ + using KTextEditor::LineRange; + + LineRange r; + QCOMPARE(r.start(), 0); + QCOMPARE(r.end(), 0); + QCOMPARE(r.toString(), QStringLiteral("[0, 0]")); + + r = LineRange::fromString(QStringLiteral("[0, 0]")); + QCOMPARE(r.toString(), QStringLiteral("[0, 0]")); + r = LineRange::fromString(QStringLiteral("[0,0]")); + QCOMPARE(r.toString(), QStringLiteral("[0, 0]")); + r = LineRange::fromString(QStringLiteral("[-1, -1]")); + QCOMPARE(r.toString(), QStringLiteral("[-1, -1]")); + r = LineRange::fromString(QStringLiteral("[-1, 0]")); + QCOMPARE(r.toString(), QStringLiteral("[-1, 0]")); + r = LineRange::fromString(QStringLiteral("[0, -1]")); + QCOMPARE(r.toString(), QStringLiteral("[-1, 0]")); // start > end -> swap + + r = LineRange::fromString(QStringLiteral("[12, 42]")); + QCOMPARE(r.toString(), QStringLiteral("[12, 42]")); + r = LineRange::fromString(QStringLiteral("[12, 0]")); + QCOMPARE(r.toString(), QStringLiteral("[0, 12]")); // start > end -> swap + r = LineRange::fromString(QStringLiteral("[12, 0]")); + QCOMPARE(r.toString(), QStringLiteral("[0, 12]")); // start > end -> swap + r = LineRange::fromString(QStringLiteral("[-12, 0]")); + QCOMPARE(r.toString(), QStringLiteral("[-12, 0]")); + r = LineRange::fromString(QStringLiteral("[0, -12]")); + QCOMPARE(r.toString(), QStringLiteral("[-12, 0]")); // start > end -> swap + + // invalid input + r = LineRange::fromString(QStringLiteral("[0:0]")); + QCOMPARE(r.toString(), QStringLiteral("[-1, -1]")); + r = LineRange::fromString(QStringLiteral("[0-1]")); + QCOMPARE(r.toString(), QStringLiteral("[-1, -1]")); +} + +void RangeTest::lineRangeCheck(KTextEditor::LineRange &range) +{ + QVERIFY(range.isValid()); + QVERIFY(range.start() <= range.end()); + QCOMPARE(range.numberOfLines(), range.end() - range.start()); +} + +void RangeTest::testLineRange() +{ + KTextEditor::LineRange range; + QCOMPARE(range.start(), 0); + QCOMPARE(range.end(), 0); + lineRangeCheck(range); + + range.setRange(3, 5); + QCOMPARE(range.start(), 3); + QCOMPARE(range.end(), 5); + lineRangeCheck(range); + + range.setRange(5, 3); + QCOMPARE(range.start(), 3); + QCOMPARE(range.end(), 5); + lineRangeCheck(range); + + range.setStart(2); + QCOMPARE(range.start(), 2); + QCOMPARE(range.end(), 5); + lineRangeCheck(range); + + range.setStart(6); + QCOMPARE(range.start(), 6); + QCOMPARE(range.end(), 6); + lineRangeCheck(range); + + range.setEnd(8); + QCOMPARE(range.start(), 6); + QCOMPARE(range.end(), 8); + lineRangeCheck(range); + + range.setEnd(4); + QCOMPARE(range.start(), 4); + QCOMPARE(range.end(), 4); + lineRangeCheck(range); +} diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/range_test.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/range_test.h new file mode 100644 index 0000000000..4184ef1b40 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/range_test.h @@ -0,0 +1,39 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2010 Christoph Cullmann + SPDX-FileCopyrightText: 2005 Hamish Rodda + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef KATE_RANGE_TEST_H +#define KATE_RANGE_TEST_H + +#include + +#include + +class RangeTest : public QObject +{ + Q_OBJECT + +public: + RangeTest(); + ~RangeTest() override; + +private Q_SLOTS: + void testTextEditorRange(); + void testTextRange(); + void testInsertText(); + void testCornerCaseInsertion(); + void testCursorStringConversion(); + void testRangeStringConversion(); + void testLineRangeStringConversion(); + void testLineRange(); + +private: + void rangeCheck(KTextEditor::Range &valid); + void lineRangeCheck(KTextEditor::LineRange &range); +}; + +#endif diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/regexpsearch_test.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/regexpsearch_test.cpp new file mode 100644 index 0000000000..40f2e84bc1 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/regexpsearch_test.cpp @@ -0,0 +1,323 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2010 Bernhard Beschow + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "regexpsearch_test.h" +#include "moc_regexpsearch_test.cpp" + +#include +#include + +#include + +#include +#include + +QTEST_MAIN(RegExpSearchTest) + +#define testNewRow() (QTest::newRow(QStringLiteral("line %1").arg(__LINE__).toLatin1().data())) + +using namespace KTextEditor; + +RegExpSearchTest::RegExpSearchTest() + : QObject() +{ + QStandardPaths::setTestModeEnabled(true); +} + +RegExpSearchTest::~RegExpSearchTest() +{ +} + +void RegExpSearchTest::testReplaceEscapeSequences_data() +{ + QTest::addColumn("pattern"); + QTest::addColumn("expected"); + + testNewRow() << QStringLiteral("\\") << QStringLiteral("\\"); + testNewRow() << QStringLiteral("\\0") << QStringLiteral("0"); + testNewRow() << QStringLiteral("\\00") << QStringLiteral("00"); + testNewRow() << QStringLiteral("\\000") << QStringLiteral("000"); + testNewRow() << QStringLiteral("\\0000") << QString(QChar(0)); + testNewRow() << QStringLiteral("\\0377") << QString(QChar(0377)); + testNewRow() << QStringLiteral("\\0378") << QStringLiteral("0378"); + testNewRow() << QStringLiteral("\\a") << QStringLiteral("\a"); + testNewRow() << QStringLiteral("\\f") << QStringLiteral("\f"); + testNewRow() << QStringLiteral("\\n") << QStringLiteral("\n"); + testNewRow() << QStringLiteral("\\r") << QStringLiteral("\r"); + testNewRow() << QStringLiteral("\\t") << QStringLiteral("\t"); + testNewRow() << QStringLiteral("\\v") << QStringLiteral("\v"); + testNewRow() << QStringLiteral("\\x") << QStringLiteral("x"); + testNewRow() << QStringLiteral("\\x0") << QStringLiteral("x0"); + testNewRow() << QStringLiteral("\\x00") << QStringLiteral("x00"); + testNewRow() << QStringLiteral("\\x000") << QStringLiteral("x000"); + testNewRow() << QStringLiteral("\\x0000") << QString(QChar(0x0000)); + testNewRow() << QStringLiteral("\\x00000") << QString(QChar(0x0000) + QLatin1Char('0')); + testNewRow() << QStringLiteral("\\xaaaa") << QString(QChar(0xaaaa)); + testNewRow() << QStringLiteral("\\xFFFF") << QString(QChar(0xFFFF)); + testNewRow() << QStringLiteral("\\xFFFg") << QStringLiteral("xFFFg"); +} + +void RegExpSearchTest::testReplaceEscapeSequences() +{ + QFETCH(QString, pattern); + QFETCH(QString, expected); + + const QString result1 = KateRegExpSearch::escapePlaintext(pattern); + const QString result2 = KateRegExpSearch::buildReplacement(pattern, QStringList(), 0); + + QCOMPARE(result1, expected); + QCOMPARE(result2, expected); +} + +void RegExpSearchTest::testReplacementReferences_data() +{ + QTest::addColumn("pattern"); + QTest::addColumn("expected"); + QTest::addColumn("capturedTexts"); + + testNewRow() << QStringLiteral("\\0") << QStringLiteral("b") << (QStringList() << QStringLiteral("b")); + testNewRow() << QStringLiteral("\\00") << QStringLiteral("b0") << (QStringList() << QStringLiteral("b")); + testNewRow() << QStringLiteral("\\000") << QStringLiteral("b00") << (QStringList() << QStringLiteral("b")); + testNewRow() << QStringLiteral("\\0000") << QString(QChar(0)) << (QStringList() << QStringLiteral("b")); + testNewRow() << QStringLiteral("\\1") << QStringLiteral("1") << (QStringList() << QStringLiteral("b")); + testNewRow() << QStringLiteral("\\0") << QStringLiteral("b") << (QStringList() << QStringLiteral("b") << QStringLiteral("c")); + testNewRow() << QStringLiteral("\\1") << QStringLiteral("c") << (QStringList() << QStringLiteral("b") << QStringLiteral("c")); +} + +void RegExpSearchTest::testReplacementReferences() +{ + QFETCH(QString, pattern); + QFETCH(QString, expected); + QFETCH(QStringList, capturedTexts); + + const QString result = KateRegExpSearch::buildReplacement(pattern, capturedTexts, 1); + + QCOMPARE(result, expected); +} + +void RegExpSearchTest::testReplacementCaseConversion_data() +{ + QTest::addColumn("pattern"); + QTest::addColumn("expected"); + + testNewRow() << QStringLiteral("a\\Uaa") << QStringLiteral("aAA"); + testNewRow() << QStringLiteral("a\\UAa") << QStringLiteral("aAA"); + testNewRow() << QStringLiteral("a\\UaA") << QStringLiteral("aAA"); + + testNewRow() << QStringLiteral("a\\Uáa") << QStringLiteral("aÁA"); + testNewRow() << QStringLiteral("a\\UAá") << QStringLiteral("aAÁ"); + testNewRow() << QStringLiteral("a\\UaÁ") << QStringLiteral("aAÁ"); + + testNewRow() << QStringLiteral("a\\uaa") << QStringLiteral("aAa"); + testNewRow() << QStringLiteral("a\\uAa") << QStringLiteral("aAa"); + testNewRow() << QStringLiteral("a\\uaA") << QStringLiteral("aAA"); + + testNewRow() << QStringLiteral("a\\uáa") << QStringLiteral("aÁa"); + testNewRow() << QStringLiteral("a\\uÁa") << QStringLiteral("aÁa"); + testNewRow() << QStringLiteral("a\\uáA") << QStringLiteral("aÁA"); + + testNewRow() << QStringLiteral("A\\LAA") << QStringLiteral("Aaa"); + testNewRow() << QStringLiteral("A\\LaA") << QStringLiteral("Aaa"); + testNewRow() << QStringLiteral("A\\LAa") << QStringLiteral("Aaa"); + + testNewRow() << QStringLiteral("A\\LÁA") << QStringLiteral("Aáa"); + testNewRow() << QStringLiteral("A\\LaÁ") << QStringLiteral("Aaá"); + testNewRow() << QStringLiteral("A\\LÁa") << QStringLiteral("Aáa"); + + testNewRow() << QStringLiteral("A\\lAA") << QStringLiteral("AaA"); + testNewRow() << QStringLiteral("A\\lAa") << QStringLiteral("Aaa"); + testNewRow() << QStringLiteral("A\\laA") << QStringLiteral("AaA"); + + testNewRow() << QStringLiteral("A\\lÁA") << QStringLiteral("AáA"); + testNewRow() << QStringLiteral("A\\lÁa") << QStringLiteral("Aáa"); + testNewRow() << QStringLiteral("A\\láA") << QStringLiteral("AáA"); + + testNewRow() << QStringLiteral("a\\Ubb\\EaA") << QStringLiteral("aBBaA"); + testNewRow() << QStringLiteral("A\\LBB\\EAa") << QStringLiteral("AbbAa"); + + testNewRow() << QStringLiteral("a\\Ubb\\EáA") << QStringLiteral("aBBáA"); + testNewRow() << QStringLiteral("A\\LBB\\EÁa") << QStringLiteral("AbbÁa"); +} + +void RegExpSearchTest::testReplacementCaseConversion() +{ + QFETCH(QString, pattern); + QFETCH(QString, expected); + + const QString result = KateRegExpSearch::buildReplacement(pattern, QStringList(), 1); + + QCOMPARE(result, expected); +} + +void RegExpSearchTest::testReplacementCounter_data() +{ + QTest::addColumn("pattern"); + QTest::addColumn("counter"); + QTest::addColumn("expected"); + + testNewRow() << QStringLiteral("a\\#b") << 1 << QStringLiteral("a1b"); + testNewRow() << QStringLiteral("a\\#b") << 10 << QStringLiteral("a10b"); + testNewRow() << QStringLiteral("a\\#####b") << 1 << QStringLiteral("a00001b"); +} + +void RegExpSearchTest::testReplacementCounter() +{ + QFETCH(QString, pattern); + QFETCH(int, counter); + QFETCH(QString, expected); + + const QString result = KateRegExpSearch::buildReplacement(pattern, QStringList(), counter); + + QCOMPARE(result, expected); +} + +void RegExpSearchTest::testAnchoredRegexp_data() +{ + QTest::addColumn("pattern"); + QTest::addColumn("inputRange"); + QTest::addColumn("backwards"); + QTest::addColumn("expected"); + + testNewRow() << QStringLiteral("fe") << Range(0, 0, 0, 8) << false << Range(0, 0, 0, 2); + testNewRow() << QStringLiteral("fe") << Range(0, 0, 0, 8) << true << Range(0, 6, 0, 8); + + testNewRow() << QStringLiteral("^fe") << Range(0, 0, 0, 8) << false << Range(0, 0, 0, 2); + testNewRow() << QStringLiteral("^fe") << Range(0, 0, 0, 1) << false << Range::invalid(); + testNewRow() << QStringLiteral("^fe") << Range(0, 0, 0, 2) << false << Range(0, 0, 0, 2); + testNewRow() << QStringLiteral("^fe") << Range(0, 3, 0, 8) << false << Range::invalid(); // only match at line start + testNewRow() << QStringLiteral("^fe") << Range(0, 0, 0, 2) << true << Range(0, 0, 0, 2); + testNewRow() << QStringLiteral("^fe") << Range(0, 0, 0, 1) << true << Range::invalid(); + testNewRow() << QStringLiteral("^fe") << Range(0, 0, 0, 2) << true << Range(0, 0, 0, 2); + testNewRow() << QStringLiteral("^fe") << Range(0, 3, 0, 8) << true << Range::invalid(); + + testNewRow() << QStringLiteral("fe$") << Range(0, 0, 0, 8) << false << Range(0, 6, 0, 8); + testNewRow() << QStringLiteral("fe$") << Range(0, 7, 0, 8) << false << Range::invalid(); + testNewRow() << QStringLiteral("fe$") << Range(0, 6, 0, 8) << false << Range(0, 6, 0, 8); + testNewRow() << QStringLiteral("fe$") << Range(0, 0, 0, 5) << false << Range::invalid(); // only match at line end, fails + testNewRow() << QStringLiteral("fe$") << Range(0, 0, 0, 8) << true << Range(0, 6, 0, 8); + testNewRow() << QStringLiteral("fe$") << Range(0, 7, 0, 8) << true << Range::invalid(); + testNewRow() << QStringLiteral("fe$") << Range(0, 6, 0, 8) << true << Range(0, 6, 0, 8); + testNewRow() << QStringLiteral("fe$") << Range(0, 0, 0, 5) << true << Range::invalid(); + + testNewRow() << QStringLiteral("^fe fe fe$") << Range(0, 0, 0, 8) << false << Range(0, 0, 0, 8); + testNewRow() << QStringLiteral("^fe fe fe$") << Range(0, 3, 0, 8) << false << Range::invalid(); + testNewRow() << QStringLiteral("^fe fe fe$") << Range(0, 0, 0, 5) << false << Range::invalid(); + testNewRow() << QStringLiteral("^fe fe fe$") << Range(0, 3, 0, 5) << false << Range::invalid(); + testNewRow() << QStringLiteral("^fe fe fe$") << Range(0, 0, 0, 8) << true << Range(0, 0, 0, 8); + testNewRow() << QStringLiteral("^fe fe fe$") << Range(0, 3, 0, 8) << true << Range::invalid(); + testNewRow() << QStringLiteral("^fe fe fe$") << Range(0, 0, 0, 5) << true << Range::invalid(); + testNewRow() << QStringLiteral("^fe fe fe$") << Range(0, 3, 0, 5) << true << Range::invalid(); + + testNewRow() << QStringLiteral("^fe( fe)*$") << Range(0, 0, 0, 8) << false << Range(0, 0, 0, 8); + testNewRow() << QStringLiteral("^fe( fe)*") << Range(0, 0, 0, 8) << false << Range(0, 0, 0, 8); + testNewRow() << QStringLiteral("fe( fe)*$") << Range(0, 0, 0, 8) << false << Range(0, 0, 0, 8); + testNewRow() << QStringLiteral("fe( fe)*") << Range(0, 0, 0, 8) << false << Range(0, 0, 0, 8); + testNewRow() << QStringLiteral("^fe( fe)*$") << Range(0, 3, 0, 8) << false << Range::invalid(); + testNewRow() << QStringLiteral("fe( fe)*$") << Range(0, 3, 0, 8) << false << Range(0, 3, 0, 8); + testNewRow() << QStringLiteral("^fe( fe)*$") << Range(0, 0, 0, 5) << false << Range::invalid(); + // fails because the whole line is fed to QRegularExpression, then matches + // that end beyond the search range are rejected, see KateRegExpSearch::searchText() + // testNewRow() << "^fe( fe)*" << Range(0, 0, 0, 5) << false << Range(0, 0, 0, 5); + + testNewRow() << QStringLiteral("^fe( fe)*$") << Range(0, 0, 0, 8) << true << Range(0, 0, 0, 8); + testNewRow() << QStringLiteral("^fe( fe)*") << Range(0, 0, 0, 8) << true << Range(0, 0, 0, 8); + testNewRow() << QStringLiteral("fe( fe)*$") << Range(0, 0, 0, 8) << true << Range(0, 0, 0, 8); + testNewRow() << QStringLiteral("fe( fe)*") << Range(0, 0, 0, 8) << true << Range(0, 0, 0, 8); + testNewRow() << QStringLiteral("^fe( fe)*$") << Range(0, 3, 0, 8) << true << Range::invalid(); + testNewRow() << QStringLiteral("fe( fe)*$") << Range(0, 3, 0, 8) << true << Range(0, 3, 0, 8); + testNewRow() << QStringLiteral("^fe( fe)*$") << Range(0, 0, 0, 5) << true << Range::invalid(); + + testNewRow() << QStringLiteral("^fe|fe$") << Range(0, 0, 0, 5) << false << Range(0, 0, 0, 2); + testNewRow() << QStringLiteral("^fe|fe$") << Range(0, 3, 0, 8) << false << Range(0, 6, 0, 8); + testNewRow() << QStringLiteral("^fe|fe$") << Range(0, 0, 0, 5) << true << Range(0, 0, 0, 2); + testNewRow() << QStringLiteral("^fe|fe$") << Range(0, 3, 0, 8) << true << Range(0, 6, 0, 8); +} + +void RegExpSearchTest::testAnchoredRegexp() +{ + QFETCH(QString, pattern); + QFETCH(Range, inputRange); + QFETCH(bool, backwards); + QFETCH(Range, expected); + + KTextEditor::DocumentPrivate doc; + doc.setText(QStringLiteral("fe fe fe")); + + KateRegExpSearch searcher(&doc); + + static int i = 0; + if (i == 34 || i == 36) { + qDebug() << i; + } + i++; + + const Range result = searcher.search(pattern, inputRange, backwards, QRegularExpression::CaseInsensitiveOption)[0]; + + QCOMPARE(result, expected); +} + +void RegExpSearchTest::testSearchForward() +{ + KTextEditor::DocumentPrivate doc; + doc.setText(QStringLiteral(" \\piinfercong")); + + KateRegExpSearch searcher(&doc); + QList result = searcher.search(QStringLiteral("\\\\piinfer(\\w)"), Range(0, 2, 0, 15), false); + + QCOMPARE(result.at(0), Range(0, 2, 0, 11)); + QCOMPARE(doc.text(result.at(1)), QLatin1Char('c')); + + // Test Unicode + doc.setText(QStringLiteral(" \\piinferćong")); + result = searcher.search(QStringLiteral("\\\\piinfer(\\w)"), Range(0, 2, 0, 15), false); + + QCOMPARE(result.at(0), Range(0, 2, 0, 11)); + QCOMPARE(doc.text(result.at(1)), QStringLiteral("ć")); +} + +void RegExpSearchTest::testSearchBackwardInSelection() +{ + KTextEditor::DocumentPrivate doc; + doc.setText(QStringLiteral("foobar foo bar foo bar foo")); + + KateRegExpSearch searcher(&doc); + const Range result = searcher.search(QStringLiteral("foo"), Range(0, 0, 0, 15), true)[0]; + + QCOMPARE(result, Range(0, 7, 0, 10)); +} + +void RegExpSearchTest::test() +{ + KTextEditor::DocumentPrivate doc; + doc.setText(QStringLiteral("\\newcommand{\\piReductionOut}")); + + KateRegExpSearch searcher(&doc); + const QList result = searcher.search(QStringLiteral("\\\\piReduction(\\S)"), Range(0, 10, 0, 28), true); + + QCOMPARE(result.size(), 2); + QCOMPARE(result[0], Range(0, 12, 0, 25)); + QCOMPARE(result[1], Range(0, 24, 0, 25)); + QCOMPARE(doc.text(result[0]), QStringLiteral("\\piReductionO")); + QCOMPARE(doc.text(result[1]), QStringLiteral("O")); +} + +void RegExpSearchTest::testUnicode() +{ + KTextEditor::DocumentPrivate doc; + doc.setText(QStringLiteral("\\newcommand{\\piReductionOÓut}")); + + KateRegExpSearch searcher(&doc); + const QList result = searcher.search(QStringLiteral("\\\\piReduction(\\w)(\\w)"), Range(0, 10, 0, 28), true); + + QCOMPARE(result.size(), 3); + QCOMPARE(result.at(0), Range(0, 12, 0, 26)); + QCOMPARE(result.at(1), Range(0, 24, 0, 25)); + QCOMPARE(result.at(2), Range(0, 25, 0, 26)); + QCOMPARE(doc.text(result.at(0)), QStringLiteral("\\piReductionOÓ")); + QCOMPARE(doc.text(result.at(1)), QStringLiteral("O")); + QCOMPARE(doc.text(result.at(2)), QStringLiteral("Ó")); +} diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/regexpsearch_test.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/regexpsearch_test.h new file mode 100644 index 0000000000..4dc6d9eabc --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/regexpsearch_test.h @@ -0,0 +1,45 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2010 Bernhard Beschow + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef KATE_REGEXPSEARCH_TEST_H +#define KATE_REGEXPSEARCH_TEST_H + +#include + +class RegExpSearchTest : public QObject +{ + Q_OBJECT + +public: + RegExpSearchTest(); + ~RegExpSearchTest() override; + +private Q_SLOTS: + void testReplaceEscapeSequences_data(); + void testReplaceEscapeSequences(); + + void testReplacementReferences_data(); + void testReplacementReferences(); + + void testReplacementCaseConversion_data(); + void testReplacementCaseConversion(); + + void testReplacementCounter_data(); + void testReplacementCounter(); + + void testAnchoredRegexp_data(); + void testAnchoredRegexp(); + + void testSearchForward(); + + void testSearchBackwardInSelection(); + + void test(); + void testUnicode(); +}; + +#endif diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/revision_test.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/revision_test.cpp new file mode 100644 index 0000000000..05d387b405 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/revision_test.cpp @@ -0,0 +1,140 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2010-2018 Dominik Haumann + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "revision_test.h" +#include "moc_revision_test.cpp" + +#include +#include +#include +#include + +#include +#include + +using namespace KTextEditor; + +QTEST_MAIN(RevisionTest) + +RevisionTest::RevisionTest() + : QObject() +{ + QStandardPaths::setTestModeEnabled(true); +} + +RevisionTest::~RevisionTest() +{ +} + +// tests: MovingInterface +// - lockRevision() +// - revision() +// - unlockRevision() +// - transformCursor() +void RevisionTest::testTransformCursor() +{ + KTextEditor::DocumentPrivate doc; + + // initial saved revision of unsaved document is -1 + QVERIFY(doc.lastSavedRevision() == -1); + + // initial revision is always 0 + QCOMPARE(doc.revision(), (qint64)0); + + // one edit action -> revision now 1, last saved still -1 + doc.insertText(Cursor(0, 0), QStringLiteral("0000")); + + qint64 rev = doc.revision(); + QCOMPARE(rev, (qint64)1); + + // now lock current revision 1 + doc.lockRevision(rev); + + // wrapLine + insertText + wrapLine + insertText + doc.insertText(Cursor(0, 2), QStringLiteral("\n1111\n2222")); + + // create some cursors, then transform them + Cursor c01(0, 1); + Cursor stayOnInsert(0, 2); + Cursor moveOnInsert(0, 2); + + doc.transformCursor(c01, MovingCursor::MoveOnInsert, rev, -1); + doc.transformCursor(moveOnInsert, MovingCursor::MoveOnInsert, rev, -1); + doc.transformCursor(stayOnInsert, MovingCursor::StayOnInsert, rev, -1); + + QCOMPARE(c01, Cursor(0, 1)); + QCOMPARE(stayOnInsert, Cursor(0, 2)); + QCOMPARE(moveOnInsert, Cursor(2, 4)); + + // free revision and lock current again + doc.unlockRevision(rev); + rev = doc.revision(); + doc.lockRevision(rev); + + // now undo, the cursors should move to original positions again + doc.undo(); + + // inverse transformation + doc.transformCursor(c01, MovingCursor::MoveOnInsert, rev, -1); + doc.transformCursor(moveOnInsert, MovingCursor::MoveOnInsert, rev, -1); + doc.transformCursor(stayOnInsert, MovingCursor::StayOnInsert, rev, -1); + + QCOMPARE(c01, Cursor(0, 1)); + QCOMPARE(stayOnInsert, Cursor(0, 2)); + QCOMPARE(moveOnInsert, Cursor(0, 2)); +} + +// tests: +// - transformRange() +void RevisionTest::testTransformRange() +{ + KTextEditor::DocumentPrivate doc; + + QCOMPARE(doc.revision(), (qint64)0); + + doc.setText( + QStringLiteral("00\n" + "11")); + + // now lock current revision + qint64 rev = doc.revision(); + doc.lockRevision(rev); + + Range r1(Cursor(0, 0), Cursor(1, 2)); + Range r2(Cursor(0, 1), Cursor(1, 1)); + Range invalidOnEmpty(Cursor(0, 1), Cursor(1, 1)); + + // remove text + doc.removeText(Range(Cursor(0, 0), Cursor(1, 2))); + + doc.transformRange(r1, MovingRange::ExpandLeft | MovingRange::ExpandRight, MovingRange::AllowEmpty, rev, -1); + doc.transformRange(r2, MovingRange::ExpandLeft | MovingRange::ExpandRight, MovingRange::AllowEmpty, rev, -1); + doc.transformRange(invalidOnEmpty, MovingRange::ExpandLeft | MovingRange::ExpandRight, MovingRange::InvalidateIfEmpty, rev, -1); + + QCOMPARE(r1, Range(Cursor(0, 0), Cursor(0, 0))); + QCOMPARE(r2, Range(Cursor(0, 0), Cursor(0, 0))); + QCOMPARE(invalidOnEmpty, Range::invalid()); + + // free revision and lock current again + doc.unlockRevision(rev); + rev = doc.revision(); + doc.lockRevision(rev); + + // now undo + doc.undo(); + + // r1 should span the entire document + // r2 should be empty at end of document + // invalidOnEmpty should stay invalid + doc.transformRange(r1, MovingRange::ExpandLeft | MovingRange::ExpandRight, MovingRange::AllowEmpty, rev, -1); + doc.transformRange(r2, MovingRange::ExpandRight, MovingRange::AllowEmpty, rev, -1); + doc.transformRange(invalidOnEmpty, MovingRange::ExpandLeft | MovingRange::ExpandRight, MovingRange::AllowEmpty, rev, -1); + + QCOMPARE(r1, Range(Cursor(0, 0), Cursor(1, 2))); + QCOMPARE(r2, Range(Cursor(1, 2), Cursor(1, 2))); + QCOMPARE(invalidOnEmpty, Range::invalid()); +} diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/revision_test.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/revision_test.h new file mode 100644 index 0000000000..9fcf09a57a --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/revision_test.h @@ -0,0 +1,26 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2010-2018 Dominik Haumann + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef KATE_REVISION_TEST_H +#define KATE_REVISION_TEST_H + +#include + +class RevisionTest : public QObject +{ + Q_OBJECT + +public: + RevisionTest(); + ~RevisionTest() override; + +private Q_SLOTS: + void testTransformCursor(); + void testTransformRange(); +}; + +#endif // KATE_REVISION_TEST_H diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/script_test_base.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/script_test_base.cpp new file mode 100644 index 0000000000..2d32cdbd9a --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/script_test_base.cpp @@ -0,0 +1,194 @@ +/* + This file is part of the KDE project + SPDX-FileCopyrightText: 2001, 2003 Peter Kelly + SPDX-FileCopyrightText: 2003, 2004 Stephan Kulow + SPDX-FileCopyrightText: 2004 Dirk Mueller + SPDX-FileCopyrightText: 2006, 2007 Leo Savernik + SPDX-FileCopyrightText: 2010 Milian Wolff + SPDX-FileCopyrightText: 2013 Gerald Senarclens de Grancy + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +// BEGIN Includes + +#include "kateconfig.h" +#include "katedocument.h" +#include "kateview.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "script_test_base.h" +#include "testutils.h" + +const QString testDataPath(QLatin1String(TEST_DATA_DIR)); + +QtMessageHandler ScriptTestBase::m_msgHandler = nullptr; +void noDebugMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg) +{ + switch (type) { + case QtDebugMsg: + break; + default: + ScriptTestBase::m_msgHandler(type, context, msg); + } +} + +void ScriptTestBase::initTestCase() +{ + QStandardPaths::setTestModeEnabled(true); + m_msgHandler = qInstallMessageHandler(noDebugMessageOutput); + m_toplevel = new QMainWindow(); + m_document = new KTextEditor::DocumentPrivate(true, false, m_toplevel, m_toplevel); + m_view = static_cast(m_document->widget()); + m_view->config()->setValue(KateViewConfig::AutoBrackets, false); + m_env = new TestScriptEnv(m_document, m_outputWasCustomised); +} + +void ScriptTestBase::cleanupTestCase() +{ + qInstallMessageHandler(m_msgHandler); + delete m_env; + delete m_toplevel; +} + +void ScriptTestBase::getTestData(const QString &script) +{ + QTest::addColumn("testcase"); + + // make sure the script files are valid + if (!m_script_dir.isEmpty()) { + QFile scriptFile(QLatin1String(JS_DATA_DIR) + m_script_dir + QLatin1Char('/') + script + QLatin1String(".js")); + if (scriptFile.exists()) { + QVERIFY(scriptFile.open(QFile::ReadOnly)); + QJSValue result = m_env->engine()->evaluate(QString::fromLatin1(scriptFile.readAll()), scriptFile.fileName()); + QVERIFY2(!result.isError(), (result.toString() + QLatin1String(" in file ") + scriptFile.fileName()).toUtf8().constData()); + } + } + + const QDir testDir(testDataPath + m_section + QLatin1Char('/') + script + QLatin1Char('/')); + QVERIFY(testDir.exists()); + const auto testList = testDir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name); + for (const auto &info : testList) { + QTest::newRow(info.baseName().toUtf8().constData()) << info.absoluteFilePath(); + } +} + +/** + * helper to compare files + * @param refFile reference file + * @param outFile output file + */ +inline QByteArray filesDiff(const QString &refFile, const QString &outFile) +{ + /** + * quick compare, all fine, if no diffs! + * use text mode + text streams to avoid unix/windows mismatches + */ + QFile ref(refFile); + QFile out(outFile); + ref.open(QIODevice::ReadOnly | QIODevice::Text); + out.open(QIODevice::ReadOnly | QIODevice::Text); + QTextStream refIn(&ref); + QTextStream outIn(&out); + const QString refContent = refIn.readAll(); + const QString outContent = outIn.readAll(); + const bool equalResults = refContent == outContent; + if (equalResults) { + return QByteArray(); + } + + /** + * elaborate diff output, if possible + */ + static const QString diffExecutable = QStandardPaths::findExecutable(QStringLiteral("diff")); + if (!diffExecutable.isEmpty()) { + QProcess proc; + proc.setProcessChannelMode(QProcess::ForwardedErrorChannel); + proc.start(diffExecutable, {QStringLiteral("-u"), refFile, outFile}); + proc.waitForFinished(); + auto diffMsg = proc.readAll(); + /** + * subprocess could have an error and return nothing + */ + if (!diffMsg.isEmpty()) { + // so that QVERIFY2 displays the diff on a new line + diffMsg.prepend('\n'); + return diffMsg; + } + } + + /** + * else: trivial output of mismatching characters, e.g. for windows testing without diff + */ + else { + qDebug() << "'diff' executable is not in the PATH, no difference output"; + } + + // there were diffs + QByteArray diffMsg; + diffMsg.append("readAll("); + diffMsg.append(refFile.toUtf8()); + diffMsg.append(") != readAll("); + diffMsg.append(outFile.toUtf8()); + diffMsg.append(")\n"); + diffMsg.append(refContent.toUtf8()); + diffMsg.append("\n != \n\n"); + diffMsg.append(outContent.toUtf8()); + return diffMsg; +} + +void ScriptTestBase::runTest(const ExpectedFailures &failures) +{ + QVERIFY(QFile::exists(testDataPath + m_section)); + + QFETCH(QString, testcase); + + m_toplevel->resize(800, 600); // restore size + + // load page + QUrl url; + url.setScheme(QLatin1String("file")); + url.setPath(testcase + QLatin1String("/origin")); + m_document->openUrl(url); + + // evaluate test-script + QFile sourceFile(testcase + QLatin1String("/input.js")); + if (!sourceFile.open(QFile::ReadOnly)) { + QFAIL(qPrintable(QString::fromLatin1("Failed to open file: %1").arg(sourceFile.fileName()))); + } + + QTextStream stream(&sourceFile); + QString code = stream.readAll(); + sourceFile.close(); + + // Execute script + QJSValue result = m_env->engine()->evaluate(code, testcase + QLatin1String("/input.js"), 1); + QVERIFY2(!result.isError(), result.toString().toUtf8().constData()); + + const QString fileExpected = testcase + QLatin1String("/expected"); + const QString fileActual = testcase + QLatin1String("/actual"); + + url.setPath(fileActual); + m_document->saveAs(url); + m_document->closeUrl(); + + for (const Failure &failure : failures) { + QEXPECT_FAIL(failure.dataIndex, failure.comment, Abort); + } + + // compare files, expected fail will invert this verify + const auto diffMsg = filesDiff(fileExpected, fileActual); + QVERIFY2(diffMsg.isEmpty(), diffMsg.constData()); +} + +#include "moc_script_test_base.cpp" diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/script_test_base.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/script_test_base.h new file mode 100644 index 0000000000..ba4e8b2683 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/script_test_base.h @@ -0,0 +1,51 @@ +/* + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef SCRIPT_TEST_H +#define SCRIPT_TEST_H + +#include +#include +#include + +class TestScriptEnv; +namespace KTextEditor +{ +class DocumentPrivate; +} +namespace KTextEditor +{ +class ViewPrivate; +} +class QMainWindow; + +class ScriptTestBase : public QObject +{ + Q_OBJECT + +protected: + void initTestCase(); + void cleanupTestCase(); + struct Failure { + const char *dataIndex; + const char *comment; + }; + typedef QList ExpectedFailures; + void getTestData(const QString &script); + void runTest(const ExpectedFailures &failures); + + TestScriptEnv *m_env; + KTextEditor::DocumentPrivate *m_document; + QMainWindow *m_toplevel; + bool m_outputWasCustomised; + QStringList m_commands; + KTextEditor::ViewPrivate *m_view; + QString m_section; // dir name in testdata/ + QString m_script_dir; // dir name in part/script/data/ + +public: + static QtMessageHandler m_msgHandler; +}; + +#endif // SCRIPT_TEST_H diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/scriptdocument_test.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/scriptdocument_test.cpp new file mode 100644 index 0000000000..d5fc1879e7 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/scriptdocument_test.cpp @@ -0,0 +1,116 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2010 Bernhard Beschow + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "scriptdocument_test.h" + +#include "ktexteditor/cursor.h" +#include +#include +#include + +#include +#include +#include + +QTEST_MAIN(ScriptDocumentTest) + +QtMessageHandler ScriptDocumentTest::s_msgHandler = nullptr; + +void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg) +{ + switch (type) { + case QtDebugMsg: + /* do nothing */ + break; + default: + ScriptDocumentTest::s_msgHandler(type, context, msg); + } +} + +void ScriptDocumentTest::initTestCase() +{ + QStandardPaths::setTestModeEnabled(true); + s_msgHandler = qInstallMessageHandler(myMessageOutput); +} + +void ScriptDocumentTest::cleanupTestCase() +{ + qInstallMessageHandler(nullptr); +} + +ScriptDocumentTest::ScriptDocumentTest() + : QObject() +{ +} + +ScriptDocumentTest::~ScriptDocumentTest() +{ +} + +void ScriptDocumentTest::init() +{ + m_doc = new KTextEditor::DocumentPrivate; + m_view = m_doc->createView(nullptr); + m_scriptDoc = new KateScriptDocument(nullptr, this); + m_scriptDoc->setDocument(m_doc); +} + +void ScriptDocumentTest::cleanup() +{ + delete m_scriptDoc; + delete m_view; + delete m_doc; +} + +#if 0 +void ScriptDocumentTest::testRfind_data() +{ + QTest::addColumn("searchRange"); + QTest::addColumn("expectedResult"); + + QTest::newRow("") << KTextEditor::Range(0, 0, 1, 10) << KTextEditor::Range(1, 6, 1, 10); + QTest::newRow("") << KTextEditor::Range(0, 0, 1, 5) << KTextEditor::Range(1, 0, 1, 4); + QTest::newRow("") << KTextEditor::Range(0, 0, 1, 0) << KTextEditor::Range(0, 10, 0, 14); +} + +void ScriptDocumentTest::testRfind() +{ + QFETCH(KTextEditor::Range, searchRange); + QFETCH(KTextEditor::Range, expectedResult); + + m_doc->setText("aaaa aaaa aaaa\n" + "aaaa aaaa"); + + QCOMPARE(m_search->search(searchRange, "aaaa", true), expectedResult); +} +#endif + +void ScriptDocumentTest::testRfind_data() +{ + QTest::addColumn("searchStart"); + QTest::addColumn("result"); + + QTest::newRow("a a a a a a a a a a a a|") << KTextEditor::Cursor(0, 23) << KTextEditor::Cursor(0, 18); + QTest::newRow("a a a a a a a a a a a |a") << KTextEditor::Cursor(0, 22) << KTextEditor::Cursor(0, 16); + QTest::newRow("a a a a| a a a a a a a a") << KTextEditor::Cursor(0, 7) << KTextEditor::Cursor(0, 2); + QTest::newRow("a a a |a a a a a a a a a") << KTextEditor::Cursor(0, 6) << KTextEditor::Cursor(0, 0); + QTest::newRow("a a a| a a a a a a a a a") << KTextEditor::Cursor(0, 5) << KTextEditor::Cursor(0, 0); + QTest::newRow("a a |a a a a a a a a a a") << KTextEditor::Cursor(0, 4) << KTextEditor::Cursor::invalid(); +} + +void ScriptDocumentTest::testRfind() +{ + QFETCH(KTextEditor::Cursor, searchStart); + QFETCH(KTextEditor::Cursor, result); + + m_scriptDoc->setText(QStringLiteral("a a a a a a a a a a a a")); + + KTextEditor::Cursor cursor = m_scriptDoc->rfind(searchStart, QStringLiteral("a a a")); + QCOMPARE(cursor, result); +} + +#include "moc_scriptdocument_test.cpp" diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/scriptdocument_test.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/scriptdocument_test.h new file mode 100644 index 0000000000..ca8a94d7cb --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/scriptdocument_test.h @@ -0,0 +1,51 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2010 Bernhard Beschow + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef KATE_SCRIPTDOCUMENT_TEST_H +#define KATE_SCRIPTDOCUMENT_TEST_H + +#include + +namespace KTextEditor +{ +class View; +} + +namespace KTextEditor +{ +class DocumentPrivate; +} +class KateScriptDocument; + +class ScriptDocumentTest : public QObject +{ + Q_OBJECT + +public: + ScriptDocumentTest(); + ~ScriptDocumentTest() override; + +private Q_SLOTS: + void initTestCase(); + void cleanupTestCase(); + + void init(); + void cleanup(); + + void testRfind_data(); + void testRfind(); + +private: + KTextEditor::DocumentPrivate *m_doc = nullptr; + KTextEditor::View *m_view = nullptr; + KateScriptDocument *m_scriptDoc = nullptr; + +public: + static QtMessageHandler s_msgHandler; +}; + +#endif diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/scripttester_test.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/scripttester_test.cpp new file mode 100644 index 0000000000..e496b9f7f1 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/scripttester_test.cpp @@ -0,0 +1,340 @@ +/* + SPDX-FileCopyrightText: 2024 Jonathan Poelen + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "scripttester_test.h" +#include "../src/scripttester/scripttester_p.h" +#include "katedocument.h" +#include "moc_scripttester_test.cpp" + +#include +#include +#include +#include +#include +#include + +using namespace Qt::Literals::StringLiterals; + +namespace +{ +struct CompareData { + QString program; + QString expectedOutput; +}; +} + +static void compareOutput(const QString &suffixFile, QJSEngine &engine, KTextEditor::ScriptTester &scriptTester, QBuffer &buffer, CompareData d) +{ + buffer.open(QBuffer::WriteOnly); + + auto toString = [](const QJSValue &value) -> QString { + if (!value.isError()) { + return value.toString(); + } + return value.toString() + u": "_s + value.property(u"stack"_s).toString(); + }; + + scriptTester.resetCounters(); + + /* + * execute + */ + QJSValue result = engine.evaluate(d.program, u"myfile"_s, 0); + QCOMPARE(toString(result), u"function() { [native code] }"_s); + + QJSValue globalObject = engine.globalObject(); + QJSValue functions = engine.newQObject(&scriptTester); + result = result.callWithInstance(functions, {globalObject}); + QCOMPARE(toString(result), u"undefined"_s); + + /* + * write counters and flush + */ + scriptTester.writeSummary(); + scriptTester.stream() << '\n'; + scriptTester.stream().flush(); + + /* + * extract output + */ + const QString outputResult = QStringDecoder(QStringDecoder::Utf8)(buffer.data()); + + /* + * clear buffer + */ + buffer.close(); + buffer.buffer().clear(); + + /* + * comparison + */ + const bool equalResults = outputResult == d.expectedOutput; + if (equalResults) { + return; + } + + /* + * write buffers to files + */ + const QString tempdir = QStandardPaths::writableLocation(QStandardPaths::TempLocation); + const QString resultPath = tempdir + u"/scripttester_"_s + suffixFile + u"_result.txt"_s; + const QString exptedPath = tempdir + u"/scripttester_"_s + suffixFile + u"_expected.txt"_s; + QFile outFile; + // result + outFile.setFileName(resultPath); + QVERIFY(outFile.open(QIODevice::WriteOnly | QIODevice::Text)); + QTextStream(&outFile) << outputResult; + outFile.close(); + // expected + outFile.setFileName(exptedPath); + QVERIFY(outFile.open(QIODevice::WriteOnly | QIODevice::Text)); + QTextStream(&outFile) << d.expectedOutput; + outFile.close(); + + /* + * elaborate diff output, if possible + */ + const QString diffExecutable = QStandardPaths::findExecutable(u"diff"_s); + if (!diffExecutable.isEmpty()) { + QProcess proc; + proc.setProcessChannelMode(QProcess::ForwardedChannels); + proc.start(diffExecutable, {u"-u"_s, exptedPath, resultPath}); + QVERIFY(proc.waitForFinished()); + QCOMPARE(proc.exitCode(), 0); + } + /* + * else: trivial output of mismatching characters, e.g. for windows testing without diff + */ + else { + qDebug() << "Trivial differences output as the 'diff' executable is not in the PATH"; + auto expectedLines = QStringView(d.expectedOutput).split(u'\n'); + auto outputLines = QStringView(outputResult).split(u'\n'); + for (qsizetype i = 0; i < expectedLines.size() || i < outputLines.size(); ++i) { + QStringView expectedLine = i < expectedLines.size() ? expectedLines[i] : QStringView(); + QStringView outputLine = i < outputLines.size() ? outputLines[i] : QStringView(); + QCOMPARE(expectedLine, outputLine); + } + QCOMPARE(d.expectedOutput.size(), outputResult.size()); + } + + /* + * if we arrive here, all lost! + */ + QVERIFY(equalResults); +} + +QTEST_MAIN(ScriptTesterTest) + +#define testNewRow() (QTest::newRow(QString("line %1").arg(__LINE__).toAscii().data())) + +ScriptTesterTest::ScriptTesterTest() + : QObject() +{ + QStandardPaths::setTestModeEnabled(true); +} + +ScriptTesterTest::~ScriptTesterTest() +{ +} + +void ScriptTesterTest::testDebug() +{ +} + +void ScriptTesterTest::testPrintExpression() +{ + using ScriptTester = KTextEditor::ScriptTester; + using TextFormat = ScriptTester::DocumentTextFormat; + using TestFormatOption = ScriptTester::TestFormatOption; + // using PatternType = ScriptTester::PatternType; + using DebugOption = ScriptTester::DebugOption; + + KTextEditor::DocumentPrivate doc(true, false); + KTextEditor::ViewPrivate view(&doc, nullptr); + QJSEngine engine; + QBuffer buffer; + ScriptTester scriptTester(&buffer, + ScriptTester::Format{ + .debugOptions = DebugOption::WriteLocation | DebugOption::WriteFunction, + .testFormatOptions = TestFormatOption::None, + .documentTextFormat = TextFormat::ReplaceNewLineAndTabWithLiteral, + .documentTextFormatWithBlockSelection = TextFormat::ReplaceNewLineAndTabWithPlaceholder, + .textReplacement = + ScriptTester::Format::TextReplacement{ + .newLine = u'↵', + .tab1 = u'—', + .tab2 = u'⇥', + }, + .fallbackPlaceholders = + ScriptTester::Placeholders{ + .cursor = u'|', + .selectionStart = u'[', + .selectionEnd = u']', + .secondaryCursor = u'┆', + .secondarySelectionStart = u'❲', + .secondarySelectionEnd = u'❳', + .virtualText = u'·', + }, + .colors = + { + .reset = u""_s, + .success = u""_s, + .error = u""_s, + .carret = u""_s, + .debugMarker = u""_s, + .debugMsg = u""_s, + .testName = u""_s, + .program = u""_s, + .fileName = u""_s, + .lineNumber = u""_s, + .blockSelectionInfo = u""_s, + .labelInfo = u""_s, + .cursor = u""_s, + .selection = u""_s, + .secondaryCursor = u""_s, + .secondarySelection = u""_s, + .blockSelection = u""_s, + .inSelection = u""_s, + .virtualText = u""_s, + .result = u""_s, + .resultReplacement = u""_s, + }, + }, + ScriptTester::Paths{}, + ScriptTester::TestExecutionConfig{}, + ScriptTester::DiffCommand{}, + ScriptTester::Placeholders{ + .cursor = u'|', + .selectionStart = u'[', + .selectionEnd = u']', + .secondaryCursor = u'\0', + .secondarySelectionStart = u'\0', + .secondarySelectionEnd = u'\0', + .virtualText = u'\0', + }, + &engine, + &doc, + &view); + + // add debug() function + QJSValue globalObject = engine.globalObject(); + QJSValue functions = engine.newQObject(&scriptTester); + globalObject.setProperty(u"debug"_s, functions.property(u"debug"_s)); + + auto makeProgram = [](QString program) -> QString { + return u"(function(env, argv){" + u"const TestFramework = this.loadModule('" JS_SCRIPTTESTER_DATA_DIR + u"testframework.js');" + u"TestFramework.init(this, env, 2);" + u"var {lt, cmd, print, config, testCase, withInput} = TestFramework;" + u""_s + + program + u"})"_s; + }; + + compareOutput(u"testCase"_s, + engine, + scriptTester, + buffer, + CompareData{ + .program = makeProgram(uR"( + function foo() { return true; } + config({blockSelection: 0}) + testCase('MyTest', () => { + cmd(foo, 'abc\ndef', 'abc\ndef|') // no error + cmd(foo, 'abc\ndef', 'abc\ndef|', { expected: 1 }) + cmd(foo, 'abc', 'abc\ndef|', { expected: {a:42} }) + config({virtualText: '@', blockSelection: 1}) + cmd(foo, 'abcxxxxxxxxx|[\ndaa aaa\ndaaaa]aaaaaef', 'abc@@@|\nabc\ndef') + ; + }); + )"_s), + .expectedOutput = uR"(myfile:5: MyTest: Result differs +cmd `foo() === {expectedResult}` [blockSelection=0]: + input: abc\ndef| + output: abc\ndef| + --------- + result: true + expected: 1 + ^~~ + +myfile:6: MyTest: Output and Result differs +cmd `foo() === {expectedResult}` [blockSelection=0]: + input: abc| + output: abc| + expected: abc\ndef| + ^~~ + --------- + result: true + expected: {a: 42} + ^~~ + +myfile:8: MyTest: Output differs +cmd `foo()` [blockSelection=1]: + input: abcxx[xxxxxxx|]↵ + daa a[aa@@@@@]↵ + daaaa[aaaaaef] + + output: abcxx[xxxxxxx|]↵ + ^~~ + daa a[aa@@@@@]↵ + daaaa[aaaaaef] + + expected: abc@@@|↵ + ^~~ + abc↵ + def + + +Success: 1 Failure: 3 +)"_s, + }); + + compareOutput(u"withInput"_s, + engine, + scriptTester, + buffer, + CompareData{ + .program = makeProgram(uR"( + function foo() { return true; } + config({blockSelection: 0}) + withInput('MyTest2', 'abc|', () => { + print('print'); + cmd(foo, TestFramework.EXPECTED_OUTPUT_AS_INPUT); // no error + cmd(foo, 'abc\ndef|'); + cmd(foo, 'abc\ndef|', { expected: {a:42} }); + lt(foo, 1); + }); + )"_s), + .expectedOutput = uR"(myfile:4: PRINT: print +myfile:6: MyTest2: Output differs +cmd `foo()` [blockSelection=0]: + input: abc| + output: abc| + expected: abc\ndef| + ^~~ + +myfile:7: MyTest2: Output and Result differs +cmd `foo() === {expectedResult}` [blockSelection=0]: + input: abc| + output: abc| + expected: abc\ndef| + ^~~ + --------- + result: true + expected: {a: 42} + ^~~ + +myfile:8: MyTest2: Result differs +test `foo() < {expected}` [blockSelection=0]: + result: true + expected: 1 + ^~~ + + +Success: 1 Failure: 3 +)"_s, + }); +} diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/scripttester_test.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/scripttester_test.h new file mode 100644 index 0000000000..221044bcdb --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/scripttester_test.h @@ -0,0 +1,28 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2024 Jonathan Poelen + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef KATE_SCRIPT_TESTER_TEST_H +#define KATE_SCRIPT_TESTER_TEST_H + +#include + +#include + +class ScriptTesterTest : public QObject +{ + Q_OBJECT + +public: + ScriptTesterTest(); + ~ScriptTesterTest() override; + +private Q_SLOTS: + void testDebug(); + void testPrintExpression(); +}; + +#endif diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/searchbar_test.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/searchbar_test.cpp new file mode 100644 index 0000000000..2413c3b6e3 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/searchbar_test.cpp @@ -0,0 +1,868 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2010 Bernhard Beschow + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "searchbar_test.h" + +#include "ui_searchbarincremental.h" +#include "ui_searchbarpower.h" + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +QTEST_MAIN(SearchBarTest) + +#define testNewRow() (QTest::newRow(QStringLiteral("line %1").arg(__LINE__).toLatin1().data())) + +using namespace KTextEditor; + +SearchBarTest::SearchBarTest() + : QObject() +{ +} + +SearchBarTest::~SearchBarTest() +{ +} + +void SearchBarTest::initTestCase() +{ + QStandardPaths::setTestModeEnabled(true); + KMessageBox::saveDontShowAgainTwoActions(QLatin1String("DoNotShowAgainContinueSearchDialog"), KMessageBox::PrimaryAction); +} + +void SearchBarTest::cleanupTestCase() +{ +} + +void SearchBarTest::testFindNextIncremental() +{ + KTextEditor::DocumentPrivate doc; + doc.setText(QStringLiteral("a a a b b")); + + KTextEditor::ViewPrivate view(&doc, nullptr); + KateViewConfig config(&view); + + KateSearchBar bar(false, &view, &config); + + bar.setSearchPattern(QStringLiteral("b")); + + QCOMPARE(view.selectionRange(), Range(0, 6, 0, 7)); + + bar.findNext(); + + QCOMPARE(view.selectionRange(), Range(0, 8, 0, 9)); + + bar.setSearchPattern(QStringLiteral("a")); + + QCOMPARE(view.selectionRange(), Range(0, 0, 0, 1)); + + bar.findNext(); + + QCOMPARE(view.selectionRange(), Range(0, 2, 0, 3)); + + bar.findNext(); + + QCOMPARE(view.selectionRange(), Range(0, 4, 0, 5)); + + bar.findNext(); + + QCOMPARE(view.selectionRange(), Range(0, 0, 0, 1)); +} + +void SearchBarTest::testFindNextZeroLengthMatch() +{ + // Some regularexpression matches are zero length assertions + // e.g. '$', '^', '\b', test that the cursor won't be stuck + // on one match when using FindNext + KTextEditor::DocumentPrivate doc; + doc.setText(QStringLiteral("a\nb \nc\n\n")); + + KTextEditor::ViewPrivate view(&doc, nullptr); + KateViewConfig config(&view); + KateSearchBar bar(true, &view, &config); + bar.setSearchMode(KateSearchBar::MODE_REGEX); + + bar.setSearchPattern(QStringLiteral("$")); + + QVERIFY(bar.isPower()); + + bar.findNext(); + QCOMPARE(view.cursorPosition(), Cursor(0, 1)); + + bar.findNext(); + QCOMPARE(view.cursorPosition(), Cursor(1, 2)); + + bar.findNext(); + QCOMPARE(view.cursorPosition(), Cursor(2, 1)); + + bar.findNext(); + QCOMPARE(view.cursorPosition(), Cursor(3, 0)); + + // Test Unicode + doc.setText(QStringLiteral("aéöz\n")); + bar.setSearchPattern(QStringLiteral("\\w")); + view.setCursorPosition(Cursor(0, 0)); + + bar.findNext(); + QCOMPARE(view.cursorPosition(), Cursor(0, 1)); + + bar.findNext(); + QCOMPARE(view.cursorPosition(), Cursor(0, 2)); + + bar.findNext(); + QCOMPARE(view.cursorPosition(), Cursor(0, 3)); + + bar.findNext(); + QCOMPARE(view.cursorPosition(), Cursor(0, 4)); + + doc.setText(QStringLiteral("aé ö z\n")); + bar.setSearchPattern(QStringLiteral("\\b")); + view.setCursorPosition(Cursor(0, 0)); + + bar.findNext(); + QCOMPARE(view.cursorPosition(), Cursor(0, 2)); + QCOMPARE(doc.text(Range(0, 1, 0, 2)), QStringLiteral("é")); + + bar.findNext(); + QCOMPARE(view.cursorPosition(), Cursor(0, 3)); + QCOMPARE(doc.text(Range(0, 3, 0, 4)), QStringLiteral("ö")); + + bar.findNext(); + QCOMPARE(view.cursorPosition(), Cursor(0, 4)); + QCOMPARE(doc.text(Range(0, 3, 0, 4)), QStringLiteral("ö")); + + bar.findNext(); + QCOMPARE(view.cursorPosition(), Cursor(0, 5)); + QCOMPARE(doc.text(Range(0, 5, 0, 6)), QStringLiteral("z")); + + bar.findNext(); + QCOMPARE(view.cursorPosition(), Cursor(0, 6)); + QCOMPARE(doc.text(Range(0, 5, 0, 6)), QStringLiteral("z")); + + bar.findNext(); + // Search wraps, back to before first char + QCOMPARE(view.cursorPosition(), Cursor(0, 0)); + QCOMPARE(doc.text(Range(0, 0, 0, 1)), QStringLiteral("a")); +} + +void SearchBarTest::testFindNextNoNewLineAtEnd() +{ + // Testing with a document that doesn't end with a new line + KTextEditor::DocumentPrivate doc; + doc.setText(QStringLiteral(" \n \n ")); + + KTextEditor::ViewPrivate view(&doc, nullptr); + KateViewConfig config(&view); + KateSearchBar bar(true, &view, &config); + QVERIFY(bar.isPower()); + bar.setSearchMode(KateSearchBar::MODE_REGEX); + bar.setSearchPattern(QStringLiteral("^ *\\n")); + + bar.findNext(); + QCOMPARE(view.selectionRange(), Range(0, 0, 1, 0)); + + bar.findNext(); + QCOMPARE(view.selectionRange(), Range(1, 0, 2, 0)); + + bar.findNext(); + // Search wraps + QCOMPARE(view.selectionRange(), Range(0, 0, 1, 0)); +} + +void SearchBarTest::testSetMatchCaseIncremental() +{ + KTextEditor::DocumentPrivate doc; + KTextEditor::ViewPrivate view(&doc, nullptr); + KateViewConfig config(&view); + + doc.setText(QStringLiteral("a A a")); + KateSearchBar bar(false, &view, &config); + + QVERIFY(!bar.isPower()); + QVERIFY(!view.selection()); + + bar.setMatchCase(false); + bar.setSearchPattern(QStringLiteral("A")); + + QVERIFY(!bar.matchCase()); + QCOMPARE(view.selectionRange(), Range(0, 0, 0, 1)); + + bar.setMatchCase(true); + + QVERIFY(bar.matchCase()); + QCOMPARE(view.selectionRange(), Range(0, 2, 0, 3)); + + bar.setMatchCase(false); + + QVERIFY(!bar.matchCase()); + QCOMPARE(view.selectionRange(), Range(0, 0, 0, 1)); + + bar.setMatchCase(true); + + QVERIFY(bar.matchCase()); + QCOMPARE(view.selectionRange(), Range(0, 2, 0, 3)); +} + +void SearchBarTest::testSetMatchCasePower() +{ + KTextEditor::DocumentPrivate doc; + KTextEditor::ViewPrivate view(&doc, nullptr); + KateViewConfig config(&view); + + doc.setText(QStringLiteral("a A a")); + view.setCursorPosition(Cursor(0, 0)); + + KateSearchBar bar(true, &view, &config); + + QVERIFY(bar.isPower()); + QVERIFY(!view.selection()); + + bar.setMatchCase(false); + bar.setSearchPattern(QStringLiteral("A")); + bar.findNext(); + + QCOMPARE(bar.searchPattern(), QStringLiteral("A")); + QVERIFY(!bar.matchCase()); + QCOMPARE(view.selectionRange(), Range(0, 0, 0, 1)); + + bar.setMatchCase(true); + + QCOMPARE(view.selectionRange(), Range(0, 0, 0, 1)); + + bar.findNext(); + + QVERIFY(bar.matchCase()); + QCOMPARE(view.selectionRange(), Range(0, 2, 0, 3)); + + bar.setMatchCase(false); + + QVERIFY(!bar.matchCase()); + QCOMPARE(view.selectionRange(), Range(0, 2, 0, 3)); + + bar.findNext(); + + QCOMPARE(view.selectionRange(), Range(0, 4, 0, 5)); +} + +void SearchBarTest::testSetSelectionOnlyPower() +{ + KTextEditor::DocumentPrivate doc; + KTextEditor::ViewPrivate view(&doc, nullptr); + KateViewConfig config(&view); + + doc.setText(QStringLiteral("a a a a")); + KateSearchBar bar(true, &view, &config); + + bar.setSearchPattern(QStringLiteral("a")); + + QVERIFY(bar.isPower()); + QVERIFY(!view.selection()); + + bar.setSelectionOnly(false); + bar.findNext(); + + QVERIFY(!bar.selectionOnly()); + QCOMPARE(view.selectionRange(), Range(0, 0, 0, 1)); + + view.setSelection(Range(0, 2, 0, 5)); + bar.setSelectionOnly(true); + + QVERIFY(bar.selectionOnly()); + + bar.findNext(); + + QCOMPARE(view.selectionRange(), Range(0, 2, 0, 3)); + QVERIFY(bar.selectionOnly()); + + bar.findNext(); + + QCOMPARE(view.selectionRange(), Range(0, 4, 0, 5)); + QVERIFY(bar.selectionOnly()); + + // Test Search wrap for selection only + bar.findNext(); + + QCOMPARE(view.selectionRange(), Range(0, 2, 0, 3)); + QVERIFY(bar.selectionOnly()); + + bar.findPrevious(); + + QCOMPARE(view.selectionRange(), Range(0, 4, 0, 5)); + QVERIFY(bar.selectionOnly()); + + bar.setSelectionOnly(false); + bar.findNext(); + + QCOMPARE(view.selectionRange(), Range(0, 6, 0, 7)); + QVERIFY(!bar.selectionOnly()); +} + +void SearchBarTest::testSetSearchPattern_data() +{ + QTest::addColumn("power"); + QTest::addColumn("numMatches2"); + + testNewRow() << false << 0; + testNewRow() << true << 3; +} + +void SearchBarTest::testSetSearchPattern() +{ + QFETCH(bool, power); + QFETCH(int, numMatches2); + + KTextEditor::DocumentPrivate doc; + KTextEditor::ViewPrivate view(&doc, nullptr); + KateViewConfig config(&view); + + doc.setText(QStringLiteral("a a a")); + + KateSearchBar bar(power, &view, &config); + + bar.setSearchPattern(QStringLiteral("a")); + bar.findAll(); + + QCOMPARE(bar.m_hlRanges.size(), 3); + + bar.setSearchPattern(QStringLiteral("a ")); + + QCOMPARE(bar.m_hlRanges.size(), numMatches2); + + bar.findAll(); + + QCOMPARE(bar.m_hlRanges.size(), 2); +} + +void SearchBarTest::testSetSelectionOnly() +{ + KTextEditor::DocumentPrivate doc; + KTextEditor::ViewPrivate view(&doc, nullptr); + KateViewConfig config(&view); + + doc.setText(QStringLiteral("a a a")); + view.setSelection(Range(0, 0, 0, 3)); + + KateSearchBar bar(false, &view, &config); + + bar.setSelectionOnly(false); + bar.setSearchPattern(QStringLiteral("a")); + bar.findAll(); + + QCOMPARE(bar.m_hlRanges.size(), 3); + + bar.setSelectionOnly(true); + + QCOMPARE(bar.m_hlRanges.size(), 3); +} + +void SearchBarTest::testFindAll_data() +{ + QTest::addColumn("power"); + QTest::addColumn("numMatches2"); + QTest::addColumn("numMatches4"); + + testNewRow() << false << 0 << 0; + testNewRow() << true << 3 << 2; +} + +void SearchBarTest::testFindAll() +{ + QFETCH(bool, power); + QFETCH(int, numMatches2); + QFETCH(int, numMatches4); + + KTextEditor::DocumentPrivate doc; + KTextEditor::ViewPrivate view(&doc, nullptr); + KateViewConfig config(&view); + + doc.setText(QStringLiteral("a a a")); + KateSearchBar bar(power, &view, &config); + + QCOMPARE(bar.isPower(), power); + + bar.setSearchPattern(QStringLiteral("a")); + bar.findAll(); + + QCOMPARE(bar.m_hlRanges.size(), 3); + QCOMPARE(bar.m_hlRanges.at(0)->toRange(), Range(0, 0, 0, 1)); + QCOMPARE(bar.m_hlRanges.at(1)->toRange(), Range(0, 2, 0, 3)); + QCOMPARE(bar.m_hlRanges.at(2)->toRange(), Range(0, 4, 0, 5)); + + bar.setSearchPattern(QStringLiteral("a ")); + + QCOMPARE(bar.m_hlRanges.size(), numMatches2); + + bar.findAll(); + + QCOMPARE(bar.m_hlRanges.size(), 2); + + bar.setSearchPattern(QStringLiteral("a ")); + + QCOMPARE(bar.m_hlRanges.size(), numMatches4); + + bar.findAll(); + + QCOMPARE(bar.m_hlRanges.size(), 0); +} + +void SearchBarTest::testReplaceInSelectionOnly() +{ + KTextEditor::DocumentPrivate doc; + KTextEditor::ViewPrivate view(&doc, nullptr); + KateViewConfig config(&view); + + doc.setText(QStringLiteral("a\na\na\na\na")); + KateSearchBar bar(true, &view, &config); + + bar.setSearchPattern(QStringLiteral("a\n")); + + view.setSelection(Range(1, 0, 4, 0)); + bar.setSelectionOnly(true); + + QVERIFY(bar.selectionOnly()); + + bar.replaceNext(); + + QCOMPARE(view.selectionRange(), Range(1, 0, 2, 0)); + QVERIFY(bar.selectionOnly()); + + bar.replaceNext(); + + QCOMPARE(view.selectionRange(), Range(1, 0, 2, 0)); + QVERIFY(bar.selectionOnly()); + + bar.replaceNext(); + + QCOMPARE(view.selectionRange(), Range(1, 0, 2, 0)); + QVERIFY(bar.selectionOnly()); + + bar.replaceNext(); + + QCOMPARE(view.selectionRange(), Range(1, 0, 1, 0)); + QCOMPARE(doc.text(), QStringLiteral("a\na")); + QVERIFY(bar.selectionOnly()); + + // Test undo (search selection range should still be preserved) + doc.undo(); + doc.undo(); + doc.undo(); + + QCOMPARE(view.selectionRange(), Range(1, 0, 2, 0)); + QVERIFY(bar.selectionOnly()); + + bar.findPrevious(); + + QCOMPARE(view.selectionRange(), Range(3, 0, 4, 0)); + QVERIFY(bar.selectionOnly()); + + // TODO: Make sure deleted parts of the selection range are added back on undo (currently, the MovingRange just moves forward and does not add back the + // deleted range) bar.findNext(); + // + // QCOMPARE(view.selectionRange(), Range(1, 0, 2, 0)); + // QVERIFY(bar.selectionOnly()); +} + +void SearchBarTest::testReplaceAll() +{ + KTextEditor::DocumentPrivate doc; + KTextEditor::ViewPrivate view(&doc, nullptr); + KateViewConfig config(&view); + + doc.setText(QStringLiteral("a a a")); + KateSearchBar bar(true, &view, &config); + + bar.setSearchPattern(QStringLiteral("a")); + bar.setReplacementPattern(QString()); + bar.replaceAll(); + + QCOMPARE(bar.m_hlRanges.size(), 3); + QCOMPARE(bar.m_hlRanges.at(0)->toRange(), Range(0, 0, 0, 0)); + QCOMPARE(bar.m_hlRanges.at(1)->toRange(), Range(0, 1, 0, 1)); + QCOMPARE(bar.m_hlRanges.at(2)->toRange(), Range(0, 2, 0, 2)); + + bar.setSearchPattern(QStringLiteral(" ")); + bar.setReplacementPattern(QStringLiteral("b")); + bar.replaceAll(); + + QCOMPARE(bar.m_hlRanges.size(), 2); + QCOMPARE(bar.m_hlRanges.at(0)->toRange(), Range(0, 0, 0, 1)); + QCOMPARE(bar.m_hlRanges.at(1)->toRange(), Range(0, 1, 0, 2)); +} + +void SearchBarTest::testFindSelectionForward_data() +{ + QTest::addColumn("text"); + QTest::addColumn("selectionOnly"); + QTest::addColumn("selectionRange"); + QTest::addColumn("match"); + + testNewRow() << QStringLiteral("a a a") << false << Range(0, 0, 0, 1) << Range(0, 0, 0, 2); + testNewRow() << QStringLiteral("a a a") << true << Range(0, 0, 0, 1) << Range(0, 0, 0, 1); + + testNewRow() << QStringLiteral("a a a") << false << Range(0, 0, 0, 2) << Range(0, 2, 0, 4); + testNewRow() << QStringLiteral("a a a") << true << Range(0, 0, 0, 2) << Range(0, 0, 0, 2); + + testNewRow() << QStringLiteral("a a a") << false << Range(0, 0, 0, 3) << Range(0, 0, 0, 2); + testNewRow() << QStringLiteral("a a a") << true << Range(0, 0, 0, 3) << Range(0, 0, 0, 2); + + testNewRow() << QStringLiteral("a a a") << false << Range(0, 2, 0, 4) << Range(0, 0, 0, 2); + testNewRow() << QStringLiteral("a a a") << true << Range(0, 2, 0, 4) << Range(0, 2, 0, 4); + + testNewRow() << QStringLiteral("a a a") << false << Range(0, 3, 0, 4) << Range(0, 0, 0, 2); + testNewRow() << QStringLiteral("a a a") << true << Range(0, 3, 0, 4) << Range(0, 3, 0, 4); +} + +void SearchBarTest::testFindSelectionForward() +{ + QFETCH(QString, text); + QFETCH(bool, selectionOnly); + QFETCH(Range, selectionRange); + QFETCH(Range, match); + + KTextEditor::DocumentPrivate doc; + KTextEditor::ViewPrivate view(&doc, nullptr); + KateViewConfig config(&view); + + doc.setText(text); + + view.setSelection(Range(0, 0, 0, 2)); + + KateSearchBar bar(true, &view, &config); + QVERIFY(bar.searchPattern() == QStringLiteral("a ")); + + view.setSelection(selectionRange); + QCOMPARE(view.selectionRange(), selectionRange); + bar.setSelectionOnly(selectionOnly); + + bar.findNext(); + + QCOMPARE(view.selectionRange(), match); +} + +void SearchBarTest::testRemoveWithSelectionForward_data() +{ + QTest::addColumn("selectionRange"); + QTest::addColumn("match"); + + testNewRow() << Range(0, 0, 0, 1) << Range(0, 0, 0, 2); + testNewRow() << Range(0, 0, 0, 2) << Range(0, 0, 0, 2); + testNewRow() << Range(0, 0, 0, 3) << Range(0, 0, 0, 2); + testNewRow() << Range(0, 2, 0, 4) << Range(0, 0, 0, 2); + testNewRow() << Range(0, 3, 0, 4) << Range(0, 0, 0, 2); +} + +void SearchBarTest::testRemoveWithSelectionForward() +{ + QFETCH(Range, selectionRange); + QFETCH(Range, match); + + KTextEditor::DocumentPrivate doc; + KTextEditor::ViewPrivate view(&doc, nullptr); + KateViewConfig config(&view); + + doc.setText(QStringLiteral("a a a")); + view.setSelection(selectionRange); + + KateSearchBar bar(true, &view, &config); + bar.setSearchPattern(QStringLiteral("a ")); + bar.setSelectionOnly(false); + + bar.replaceNext(); + + QCOMPARE(view.selectionRange(), match); +} + +void SearchBarTest::testRemoveInSelectionForward_data() +{ + QTest::addColumn("selectionRange"); + QTest::addColumn("match"); + + testNewRow() << Range(0, 0, 0, 1) << Range(0, 0, 0, 1); + testNewRow() << Range(0, 0, 0, 2) << Range(0, 0, 0, 0); + testNewRow() << Range(0, 0, 0, 3) << Range(0, 0, 0, 2); + testNewRow() << Range(0, 0, 0, 4) << Range(0, 0, 0, 2); + testNewRow() << Range(0, 2, 0, 4) << Range(0, 2, 0, 2); + testNewRow() << Range(0, 3, 0, 4) << Range(0, 3, 0, 4); +} + +void SearchBarTest::testRemoveInSelectionForward() +{ + QFETCH(Range, selectionRange); + QFETCH(Range, match); + + KTextEditor::DocumentPrivate doc; + KTextEditor::ViewPrivate view(&doc, nullptr); + KateViewConfig config(&view); + + doc.setText(QStringLiteral("a a a")); + view.setSelection(selectionRange); + + KateSearchBar bar(true, &view, &config); + bar.setSearchPattern(QStringLiteral("a ")); + bar.setSelectionOnly(true); + + QVERIFY(bar.replacementPattern().isEmpty()); + + bar.replaceNext(); + + QCOMPARE(view.selectionRange(), match); +} + +void SearchBarTest::testReplaceWithDoubleSelecion_data() +{ + QTest::addColumn("text"); + QTest::addColumn("selectionRange"); + QTest::addColumn("result"); + QTest::addColumn("match"); + + // testNewRow() << "a" << Range(0, 0, 0, 1) << "aa" << Range(?, ?, ?, ?); + testNewRow() << QStringLiteral("aa") << Range(0, 1, 0, 2) << QStringLiteral("aaa") << Range(0, 0, 0, 1); + testNewRow() << QStringLiteral("aa") << Range(0, 0, 0, 1) << QStringLiteral("aaa") << Range(0, 2, 0, 3); + + // testNewRow() << "ab" << Range(0, 0, 0, 1) << "aab" << Range(?, ?, ?, ?); + testNewRow() << QStringLiteral("aab") << Range(0, 0, 0, 1) << QStringLiteral("aaab") << Range(0, 2, 0, 3); + testNewRow() << QStringLiteral("aba") << Range(0, 0, 0, 1) << QStringLiteral("aaba") << Range(0, 3, 0, 4); + + // testNewRow() << "ab" << Range(0, 0, 0, 2) << "abab" << Range(?, ?, ?, ?); + testNewRow() << QStringLiteral("abab") << Range(0, 0, 0, 2) << QStringLiteral("ababab") << Range(0, 4, 0, 6); + testNewRow() << QStringLiteral("abab") << Range(0, 2, 0, 4) << QStringLiteral("ababab") << Range(0, 0, 0, 2); +} + +void SearchBarTest::testReplaceWithDoubleSelecion() +{ + QFETCH(QString, text); + QFETCH(Range, selectionRange); + QFETCH(QString, result); + QFETCH(Range, match); + + KTextEditor::DocumentPrivate doc; + KTextEditor::ViewPrivate view(&doc, nullptr); + KateViewConfig config(&view); + + doc.setText(text); + view.setSelection(selectionRange); + + KateSearchBar bar(true, &view, &config); + + bar.setSelectionOnly(false); + bar.setReplacementPattern(bar.searchPattern() + bar.searchPattern()); + bar.replaceNext(); + + QCOMPARE(doc.text(), result); + QCOMPARE(view.selectionRange(), match); +} + +void SearchBarTest::testReplaceDollar() +{ + KTextEditor::DocumentPrivate doc; + KTextEditor::ViewPrivate view(&doc, nullptr); + KateViewConfig config(&view); + + doc.setText(QStringLiteral("aaa\nbbb\nccc\n\n\naaa\nbbb\nccc\nddd\n")); + + KateSearchBar bar(true, &view, &config); + + bar.setSearchPattern(QStringLiteral("$")); + bar.setSearchMode(KateSearchBar::MODE_REGEX); + bar.setReplacementPattern(QStringLiteral("D")); + bar.replaceAll(); + QCOMPARE(doc.text(), QStringLiteral("aaaD\nbbbD\ncccD\nD\nD\naaaD\nbbbD\ncccD\ndddD\n")); +} + +void SearchBarTest::testSearchHistoryIncremental() +{ + KTextEditor::DocumentPrivate doc; + KTextEditor::ViewPrivate view(&doc, nullptr); + KateViewConfig *const config = view.config(); + KTextEditor::EditorPrivate::self()->searchHistoryModel()->setStringList(QStringList()); + + doc.setText(QStringLiteral("foo bar")); + + KateSearchBar bar(false, &view, config); + + bar.setSearchPattern(QStringLiteral("foo")); + bar.findNext(); + + QCOMPARE(bar.m_incUi->pattern->findText(QStringLiteral("foo")), 0); + + bar.setSearchPattern(QStringLiteral("bar")); + bar.findNext(); + + QCOMPARE(bar.m_incUi->pattern->findText(QStringLiteral("bar")), 0); + QCOMPARE(bar.m_incUi->pattern->findText(QStringLiteral("foo")), 1); + + KTextEditor::DocumentPrivate doc2; + KTextEditor::ViewPrivate view2(&doc2, nullptr); + KateViewConfig *const config2 = view2.config(); + KateSearchBar bar2(false, &view2, config2); + + QCOMPARE(bar2.m_incUi->pattern->findText(QStringLiteral("bar")), 0); + QCOMPARE(bar2.m_incUi->pattern->findText(QStringLiteral("foo")), 1); + + // testcase for https://bugs.kde.org/show_bug.cgi?id=248305 + bar2.m_incUi->pattern->setCurrentIndex(1); + QCOMPARE(bar2.searchPattern(), QLatin1String("foo")); + bar2.findNext(); + QCOMPARE(bar2.searchPattern(), QLatin1String("foo")); +} + +void SearchBarTest::testSearchHistoryPower() +{ + KTextEditor::DocumentPrivate doc; + KTextEditor::ViewPrivate view(&doc, nullptr); + KateViewConfig *const config = view.config(); + KTextEditor::EditorPrivate::self()->searchHistoryModel()->setStringList(QStringList()); + + doc.setText(QStringLiteral("foo bar")); + + KateSearchBar bar(true, &view, config); + + QCOMPARE(bar.m_powerUi->pattern->count(), 0); + + bar.setSearchPattern(QStringLiteral("foo")); + bar.findNext(); + + QCOMPARE(bar.m_powerUi->pattern->findText(QStringLiteral("foo")), 0); + + bar.findNext(); + + QCOMPARE(bar.m_powerUi->pattern->findText(QStringLiteral("foo")), 0); + QCOMPARE(bar.m_powerUi->pattern->count(), 1); + + bar.setSearchPattern(QStringLiteral("bar")); + bar.findNext(); + + QCOMPARE(bar.m_powerUi->pattern->findText(QStringLiteral("bar")), 0); + QCOMPARE(bar.m_powerUi->pattern->findText(QStringLiteral("foo")), 1); + QCOMPARE(bar.m_powerUi->pattern->count(), 2); + + KTextEditor::DocumentPrivate doc2; + KTextEditor::ViewPrivate view2(&doc2, nullptr); + KateViewConfig *const config2 = view2.config(); + KateSearchBar bar2(true, &view2, config2); + + QCOMPARE(bar2.m_powerUi->pattern->findText(QStringLiteral("bar")), 0); + QCOMPARE(bar2.m_powerUi->pattern->findText(QStringLiteral("foo")), 1); +} + +// Make sure Kate doesn't replace anything outside selection in block mode (see bug 253191) +void SearchBarTest::testReplaceInBlockMode() +{ + KTextEditor::DocumentPrivate doc; + KTextEditor::ViewPrivate view(&doc, nullptr); + view.setInputMode(View::NormalInputMode); + KateViewConfig config(&view); + + doc.setText(QStringLiteral("111\n111")); + view.setBlockSelection(true); + view.setSelection(KTextEditor::Range(0, 1, 1, 2)); + + KateSearchBar bar(true, &view, &config); + + bar.setSearchPattern(QStringLiteral("1")); + bar.setReplacementPattern(QStringLiteral("2")); + bar.replaceAll(); + + QCOMPARE(doc.text(), QStringLiteral("121\n121")); +} + +// Bug 456367 happens when all these conditions are met : +// - block selection mode is checked +// - option "search in the selection only" is not checked +// - some text is selected +// +// In this case it should find/replace all occurrences in the whole document. +void SearchBarTest::testNonEmptyBlockSelectionAndSearchInSelectionOnlyDisabled() +{ + KTextEditor::DocumentPrivate doc; + KTextEditor::ViewPrivate view(&doc, nullptr); + KateViewConfig config(&view); + + // Last line is required to reproduce the bug : + doc.setText(QStringLiteral("111\n111\n")); + view.setBlockSelection(true); + view.setSelection(KTextEditor::Range(0, 1, 1, 2)); + + KateSearchBar bar(true, &view, &config); + + bar.setSearchPattern(QStringLiteral("1")); + bar.setReplacementPattern(QStringLiteral("2")); + bar.setSelectionOnly(false); + bar.replaceAll(); + + // Should replace all occurrences in the whole document. + QCOMPARE(doc.text(), QStringLiteral("222\n222\n")); +} + +void SearchBarTest::testReplaceManyCapturesBug365124() +{ + KTextEditor::DocumentPrivate doc; + KTextEditor::ViewPrivate view(&doc, nullptr); + KateViewConfig config(&view); + + doc.setText(QStringLiteral("one two three four five six seven eight nine ten eleven twelve thirteen\n")); + + KateSearchBar bar(true, &view, &config); + + bar.setSearchPattern(QStringLiteral("^(.*) (.*) (.*) (.*) (.*) (.*) (.*) (.*) (.*) (.*) (.*) (.*) (.*)$")); + bar.setSearchMode(KateSearchBar::MODE_REGEX); + bar.setReplacementPattern(QStringLiteral("\\{1}::\\2::\\3::\\4::\\5::\\6::\\7::\\8::\\9::\\{10}::\\{11}::\\{12}::\\{13}")); + + bar.replaceAll(); + + QCOMPARE(doc.text(), QStringLiteral("one::two::three::four::five::six::seven::eight::nine::ten::eleven::twelve::thirteen\n")); +} + +void SearchBarTest::testReplaceEscapeSequence_data() +{ + QTest::addColumn("textBefore"); + QTest::addColumn("textAfter"); + QTest::addColumn("cursorBefore"); + QTest::addColumn("cursorAfter"); + + testNewRow() << QStringLiteral("a\n") << QStringLiteral("a ") << Cursor(1, 0) << Cursor(0, 2); + testNewRow() << QStringLiteral("a\nb\n") << QStringLiteral("a b ") << Cursor(2, 0) << Cursor(0, 4); + testNewRow() << QStringLiteral("\n\n\n") << QStringLiteral(" ") << Cursor(3, 0) << Cursor(0, 3); +} + +void SearchBarTest::testReplaceEscapeSequence() +{ + QFETCH(QString, textBefore); + QFETCH(QString, textAfter); + QFETCH(Cursor, cursorBefore); + QFETCH(Cursor, cursorAfter); + + // testcase for https://bugs.kde.org/show_bug.cgi?id=381080 + KTextEditor::DocumentPrivate doc; + KTextEditor::ViewPrivate view(&doc, nullptr); + KateViewConfig config(&view); + + doc.setText(textBefore); + view.setCursorPosition(cursorBefore); + QCOMPARE(view.cursorPosition(), cursorBefore); + + KateSearchBar bar(true, &view, &config); + + bar.setSearchMode(KateSearchBar::MODE_ESCAPE_SEQUENCES); + bar.setSearchPattern(QStringLiteral("\\n")); + bar.setReplacementPattern(QStringLiteral(" ")); + + bar.replaceAll(); + + QCOMPARE(doc.text(), textAfter); + QCOMPARE(view.cursorPosition(), cursorAfter); +} + +#include "moc_searchbar_test.cpp" diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/searchbar_test.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/searchbar_test.h new file mode 100644 index 0000000000..7b262c06c7 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/searchbar_test.h @@ -0,0 +1,75 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2010 Bernhard Beschow + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef KATE_SEARCHBAR_TEST_H +#define KATE_SEARCHBAR_TEST_H + +#include + +class SearchBarTest : public QObject +{ + Q_OBJECT + +public: + SearchBarTest(); + ~SearchBarTest() override; + +public Q_SLOTS: + void initTestCase(); + void cleanupTestCase(); + +private Q_SLOTS: + void testFindNextIncremental(); + + void testFindNextZeroLengthMatch(); + + void testFindNextNoNewLineAtEnd(); + + void testSetMatchCaseIncremental(); + + void testSetMatchCasePower(); + + void testSetSelectionOnlyPower(); + + void testSetSearchPattern_data(); + void testSetSearchPattern(); + + void testSetSelectionOnly(); + + void testFindAll_data(); + void testFindAll(); + + void testReplaceInSelectionOnly(); + void testReplaceAll(); + + void testFindSelectionForward_data(); + void testFindSelectionForward(); + + void testRemoveWithSelectionForward_data(); + void testRemoveWithSelectionForward(); + + void testRemoveInSelectionForward_data(); + void testRemoveInSelectionForward(); + + void testReplaceWithDoubleSelecion_data(); + void testReplaceWithDoubleSelecion(); + + void testReplaceDollar(); + + void testSearchHistoryIncremental(); + void testSearchHistoryPower(); + + void testReplaceInBlockMode(); + void testNonEmptyBlockSelectionAndSearchInSelectionOnlyDisabled(); + + void testReplaceManyCapturesBug365124(); + + void testReplaceEscapeSequence_data(); + void testReplaceEscapeSequence(); +}; + +#endif diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/swapfiletest.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/swapfiletest.cpp new file mode 100644 index 0000000000..c231c88941 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/swapfiletest.cpp @@ -0,0 +1,58 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2024 Waqar Ahmed +#include +#include + +#include +#include +#include + +QTEST_MAIN(SwapFileTest) + +QString SwapFileTest::createFile(const QByteArray &content) +{ + const QString path = QDir(m_testDir->path()).absoluteFilePath(QStringLiteral("file")); + QFile file(path); + if (file.open(QFile::WriteOnly)) { + file.write(content.data(), content.size()); + file.flush(); + file.close(); + return file.fileName(); + } + return QString(); +} + +void SwapFileTest::initTestCase() +{ + // fresh clean dir per test + m_testDir.reset(new QTemporaryDir()); +} + +void SwapFileTest::testSwapFileIsCreatedAndDestroyed() +{ + QVERIFY(m_testDir->isValid()); + QString file = createFile("This is a test file"); + auto doc = new KTextEditor::DocumentPrivate(); + doc->openUrl(QUrl::fromLocalFile(file)); + auto view = new KTextEditor::ViewPrivate(doc, nullptr); + view->setCursorPosition({0, 5}); + view->keyReturn(); + + QFileInfo fi(file); + QString fileName = fi.fileName(); + QString swapFileName = QStringLiteral(".%1.kate-swp").arg(fileName); + QTRY_VERIFY(fi.absoluteDir().exists(swapFileName)); + + doc->undo(); + delete doc; + QTRY_VERIFY(!fi.absoluteDir().exists(swapFileName)); +} + +#include "moc_swapfiletest.cpp" diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/swapfiletest.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/swapfiletest.h new file mode 100644 index 0000000000..df91d47db6 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/swapfiletest.h @@ -0,0 +1,33 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2024 Waqar Ahmed + +#include +#include + +class SwapFileTest : public QObject +{ + Q_OBJECT + +public Q_SLOTS: + void initTestCase(); + +private Q_SLOTS: + void testSwapFileIsCreatedAndDestroyed(); + +private: + QString createFile(const QByteArray &content); + +private: + std::unique_ptr m_testDir; +}; + +#endif diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/templatehandler_test.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/templatehandler_test.cpp new file mode 100644 index 0000000000..2c3da1653c --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/templatehandler_test.cpp @@ -0,0 +1,902 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2010 Bernhard Beschow + SPDX-FileCopyrightText: 2025 Mirian Margiani + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "templatehandler_test.h" + +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +QTEST_MAIN(TemplateHandlerTest) + +using namespace KTextEditor; + +TemplateHandlerTest::TemplateHandlerTest() + : QObject() +{ + QStandardPaths::setTestModeEnabled(true); +} + +void TemplateHandlerTest::testUndo() +{ + const QString snippet = QStringLiteral( + "for (${type=\"int\"} ${index=\"i\"} = ; ${index} < ; ++${index})\n" + "{\n" + " ${index}\n" + "}"); + + KTextEditor::DocumentPrivate doc; + auto view = static_cast(doc.createView(nullptr)); + + // fixed indentation options + doc.config()->setTabWidth(8); + doc.config()->setIndentationWidth(4); + doc.config()->setReplaceTabsDyn(true); + + view->insertTemplate(KTextEditor::Cursor(0, 0), snippet); + + const QString result = QStringLiteral( + "for (int i = ; i < ; ++i)\n" + "{\n" + " i\n" + "}"); + QCOMPARE(doc.text(), result); + + doc.replaceText(Range(0, 9, 0, 10), QStringLiteral("j")); + + const QString result2 = QStringLiteral( + "for (int j = ; j < ; ++j)\n" + "{\n" + " j\n" + "}"); + QCOMPARE(doc.text(), result2); + + doc.undo(); + + QCOMPARE(doc.text(), result); + + doc.redo(); + + QCOMPARE(doc.text(), result2); + + doc.insertText(Cursor(0, 10), QStringLiteral("j")); + doc.insertText(Cursor(0, 11), QStringLiteral("j")); + + const QString result3 = QStringLiteral( + "for (int jjj = ; jjj < ; ++jjj)\n" + "{\n" + " jjj\n" + "}"); + QCOMPARE(doc.text(), result3); + + doc.undo(); + + QCOMPARE(doc.text(), result); + + doc.redo(); + + QCOMPARE(doc.text(), result3); + + doc.undo(); + QCOMPARE(doc.text(), result); + + doc.undo(); + QCOMPARE(doc.text(), QString()); +} + +void TemplateHandlerTest::testEscapes() +{ + QFETCH(QString, input); + + KTextEditor::DocumentPrivate doc; + auto view = static_cast(doc.createView(nullptr)); + + view->insertTemplate({0, 0}, input); + QTEST(doc.text(), "expectedOutput"); +} + +void TemplateHandlerTest::testEscapes_data() +{ + QTest::addColumn("input"); + QTest::addColumn("expectedOutput"); + + QTest::newRow("start") << R"(\${foo})" << R"(${foo})"; + QTest::newRow("middle") << R"(foo \${field} foo)" << R"(foo ${field} foo)"; + QTest::newRow("end") << R"(foo \${field})" << R"(foo ${field})"; + QTest::newRow("mixed") << R"(\${field} ${bar} \${foo})" << R"(${field} bar ${foo})"; + QTest::newRow("defaults") << R"(${bar=1} \${foo=3})" << R"(1 ${foo=3})"; + QTest::newRow("double") << R"(\\\${baz=7})" << R"(\${baz=7})"; + QTest::newRow("odd") << R"(\\\\\\\\\${baz=7})" << R"(\\\\${baz=7})"; + QTest::newRow("even") << R"(\\\\\\\\${baz=7})" << R"(\\\\7)"; + QTest::newRow("many_slashes") << R"(\\\\\\\${foo=1} \\\\${bar=2})" << R"(\\\${foo=1} \\2)"; + QTest::newRow("free_slashes1") << R"(\\\ \\${foo=1})" << R"(\\\ \1)"; + QTest::newRow("free_slashes2") << R"(\\\ ${foo} \\\\)" << R"(\\\ foo \\\\)"; + QTest::newRow("multiple_fields") << R"(\${field} ${bar} \\\${foo=3} \\${baz=7})" << R"(${field} bar \${foo=3} \7)"; + QTest::newRow("nested") << R"(\${${field}=x})" << R"(${field=x})"; + QTest::newRow("nested_default") << R"(\${${field=1}=x})" << R"(${1=x})"; + QTest::newRow("adjacent") << R"(${f1}\${f2}\\\${f3}${f4})" << R"(f1${f2}\${f3}f4)"; +} + +void TemplateHandlerTest::testSimpleMirror() +{ + QFETCH(QString, text); + + KTextEditor::DocumentPrivate doc; + auto view = static_cast(doc.createView(nullptr)); + view->insertTemplate({0, 0}, text); + + QCOMPARE(doc.text(), QString(text).replace(QStringLiteral("${foo}"), QStringLiteral("foo"))); + + doc.insertText({0, 0}, QStringLiteral("xx")); + QCOMPARE(doc.text(), QString(text).replace(QStringLiteral("${foo}"), QStringLiteral("xxfoo"))); + + doc.removeText(KTextEditor::Range({0, 0}, {0, 2})); + QCOMPARE(doc.text(), QString(text).replace(QStringLiteral("${foo}"), QStringLiteral("foo"))); +} + +void TemplateHandlerTest::testSimpleMirror_data() +{ + QTest::addColumn("text"); + + QTest::newRow("one") << QStringLiteral("${foo}"); + QTest::newRow("several") << QStringLiteral("${foo} ${foo} Foo ${foo}"); +} + +void TemplateHandlerTest::testAlignC() +{ + QFETCH(QString, input); + QFETCH(QString, expected); + + KTextEditor::DocumentPrivate doc; + doc.setHighlightingMode(QStringLiteral("C")); + auto view = static_cast(doc.createView(nullptr)); + view->insertTemplate({0, 0}, input); + + QCOMPARE(doc.text(), expected); +} + +void TemplateHandlerTest::testAlignC_data() +{ + QTest::addColumn("input"); + QTest::addColumn("expected"); + + QTest::newRow("one") << QStringLiteral("/* ${foo} */") << QStringLiteral("/* foo */"); + QTest::newRow("simple") << QStringLiteral("/**\n* ${foo}\n*/") << QStringLiteral("/**\n * foo\n */"); + QTest::newRow("complex") << QStringLiteral("/**\n* @brief: ${...}\n* \n*/") << QStringLiteral("/**\n * @brief: ...\n * \n */"); +} + +void TemplateHandlerTest::testAdjacentRanges() +{ + KTextEditor::DocumentPrivate doc; + auto view = static_cast(doc.createView(nullptr)); + + auto reset = [&view, &doc](const QString &snippet, const QString &expected) { + view->selectAll(); + view->keyDelete(); + + view->insertTemplate({0, 0}, snippet); + QCOMPARE(doc.text(), expected); + }; + + reset(QStringLiteral("${foo} ${foo}"), QStringLiteral("foo foo")); + doc.removeText(KTextEditor::Range({0, 3}, {0, 4})); + QCOMPARE(doc.text(), QStringLiteral("foofoo")); + doc.insertText({0, 1}, QStringLiteral("x")); + QCOMPARE(doc.text(), QStringLiteral("fxoofxoo")); + doc.insertText({0, 4}, QStringLiteral("y")); + QCOMPARE(doc.text(), QStringLiteral("fxooyfxooy")); + doc.removeText(KTextEditor::Range({0, 4}, {0, 5})); + QCOMPARE(doc.text(), QStringLiteral("fxoofxoo")); + + reset(QStringLiteral("${foo}${bar}${baz} ${foo}/${bar}/${baz}"), QStringLiteral("foobarbaz foo/bar/baz")); + doc.insertText({0, 0}, QStringLiteral("x")); + QCOMPARE(doc.text(), QStringLiteral("xfoobarbaz xfoo/bar/baz")); + doc.insertText({0, 4}, QStringLiteral("x")); + QCOMPARE(doc.text(), QStringLiteral("xfooxbarbaz xfoox/bar/baz")); + doc.insertText({0, 8}, QStringLiteral("x")); + QCOMPARE(doc.text(), QStringLiteral("xfooxbarxbaz xfoox/barx/baz")); + doc.insertText({0, 12}, QStringLiteral("x")); + QCOMPARE(doc.text(), QStringLiteral("xfooxbarxbazx xfoox/barx/bazx")); + doc.removeText(KTextEditor::Range({0, 4}, {0, 5})); + QCOMPARE(doc.text(), QStringLiteral("xfoobarxbazx xfoo/barx/bazx")); + doc.insertText({0, 4}, QStringLiteral("y")); + QCOMPARE(doc.text(), QStringLiteral("xfooybarxbazx xfooy/barx/bazx")); + doc.removeText(KTextEditor::Range({0, 8}, {0, 9})); + QCOMPARE(doc.text(), QStringLiteral("xfooybarbazx xfooy/bar/bazx")); + doc.insertText({0, 8}, QStringLiteral("y")); + QCOMPARE(doc.text(), QStringLiteral("xfooybarybazx xfooy/bary/bazx")); + + reset(QStringLiteral("${foo} ${bar} / ${foo} ${bar}"), QStringLiteral("foo bar / foo bar")); + doc.removeText(KTextEditor::Range({0, 2}, {0, 5})); + QCOMPARE(doc.text(), QStringLiteral("foar / fo ar")); + doc.insertText({0, 2}, QStringLiteral("x")); + QCOMPARE(doc.text(), QStringLiteral("foxar / fox ar")); + doc.insertText({0, 5}, QStringLiteral("x")); + QCOMPARE(doc.text(), QStringLiteral("foxarx / fox arx")); + + reset(QStringLiteral("${foo} ${bar} / ${foo} ${bar}"), QStringLiteral("foo bar / foo bar")); + doc.removeText(KTextEditor::Range({0, 2}, {0, 7})); + QCOMPARE(doc.text(), QStringLiteral("fo / fo ")); + doc.insertText({0, 2}, QStringLiteral("x")); + QCOMPARE(doc.text(), QStringLiteral("fox / fox ")); + doc.insertText({0, 4}, QStringLiteral("x")); + QCOMPARE(doc.text(), QStringLiteral("fox x/ fox ")); + + reset(QStringLiteral("${foo}${bar} / ${foo} ${bar}"), QStringLiteral("foobar / foo bar")); + doc.insertText({0, 3}, QStringLiteral("1")); + doc.insertText({0, 4}, QStringLiteral("2")); + QCOMPARE(doc.text(), QStringLiteral("foo12bar / foo12 bar")); + doc.insertText({0, 8}, QStringLiteral("x")); + doc.insertText({0, 9}, QStringLiteral("y")); + QCOMPARE(doc.text(), QStringLiteral("foo12barxy / foo12 barxy")); +} + +void TemplateHandlerTest::testAdjacentRanges2() +{ + KTextEditor::DocumentPrivate doc; + auto view = static_cast(doc.createView(nullptr)); + + auto reset = [&view, &doc]() { + view->selectAll(); + view->keyDelete(); + + view->insertTemplate({0, 0}, QStringLiteral("${foo}${foo='12345'}${foo}")); + + QCOMPARE(doc.text(), QStringLiteral("123451234512345")); + QCOMPARE(view->cursorPosition().column(), 10); + QCOMPARE(view->selectionText(), QStringLiteral("12345")); + QCOMPARE(view->selectionRange().start().column(), 5); + }; + + reset(); + + view->clearSelection(); + view->setCursorPosition({0, 5}); + QTest::keyClick(view->focusProxy(), 'X'); + QCOMPARE(doc.text(), QStringLiteral("X12345X12345X12345")); + QCOMPARE(view->cursorPosition().column(), 7); + + reset(); + + QTest::keyClick(view->focusProxy(), Qt::Key_A); + QCOMPARE(doc.text(), QStringLiteral("aaa")); + QCOMPARE(view->cursorPosition().column(), 2); + + // QTest::keyClick(view->focusProxy(), Qt::Key_Backspace); + view->backspace(); + QCOMPARE(doc.text(), QStringLiteral("")); + QCOMPARE(view->cursorPosition().column(), 0); + + QTest::keyClick(view->focusProxy(), Qt::Key_A); + QCOMPARE(doc.text(), QStringLiteral("aaa")); + QCOMPARE(view->cursorPosition().column(), 2); + + QTest::keyClick(view->focusProxy(), Qt::Key_B); + QCOMPARE(doc.text(), QStringLiteral("ababab")); + QCOMPARE(view->cursorPosition().column(), 4); + + reset(); + + view->clearSelection(); + view->setCursorPosition({0, 8}); + // QTest::keyClick(view->focusProxy(), Qt::Key_Backspace); + view->backspace(); + QCOMPARE(doc.text(), QStringLiteral("124512451245")); + QCOMPARE(view->cursorPosition().column(), 6); + + reset(); + + view->setSelection({{0, 7}, {0, 8}}); + view->setCursorPosition({0, 7}); + // QTest::keyClick(view->focusProxy(), Qt::Key_Backspace); + view->backspace(); + QCOMPARE(doc.text(), QStringLiteral("124512451245")); + QCOMPARE(view->cursorPosition().column(), 6); + + reset(); + + view->clearSelection(); + view->setCursorPosition({0, 10}); + QTest::keyClick(view->focusProxy(), 'X'); + QCOMPARE(doc.text(), QStringLiteral("12345X12345X12345X")); + QCOMPARE(view->cursorPosition().column(), 12); +} + +void TemplateHandlerTest::testAdjacentRanges3() +{ + KTextEditor::DocumentPrivate doc; + auto view = static_cast(doc.createView(nullptr)); + + view->insertTemplate({0, 0}, QStringLiteral("${foo}${foo='foo'}${foo}")); + + QCOMPARE(doc.text(), QStringLiteral("foofoofoo")); + QCOMPARE(view->cursorPosition().column(), 6); + QCOMPARE(view->selectionText(), QStringLiteral("foo")); + QCOMPARE(view->selectionRange().start().column(), 3); + + view->clearSelection(); + view->setCursorPosition({0, 4}); + QCOMPARE(doc.text(), QStringLiteral("foofoofoo")); + QCOMPARE(view->cursorPosition().column(), 4); + + QTest::keyClick(view->focusProxy(), 'X'); + QCOMPARE(doc.text(), QStringLiteral("fXoofXoofXoo")); + QCOMPARE(view->cursorPosition().column(), 6); + + // QTest::keyClick(view->focusProxy(), Qt::Key_Backspace); + view->backspace(); + QCOMPARE(doc.text(), QStringLiteral("foofoofoo")); + QCOMPARE(view->cursorPosition().column(), 4); + + QTest::keyClick(view->focusProxy(), 'Z'); + QCOMPARE(doc.text(), QStringLiteral("fZoofZoofZoo")); + QCOMPARE(view->cursorPosition().column(), 6); +} + +void TemplateHandlerTest::testTab() +{ + QFETCH(QString, tpl); + QFETCH(int, cursor); + + KTextEditor::DocumentPrivate doc; + auto view = static_cast(doc.createView(nullptr)); + + view->insertTemplate({0, 0}, tpl); + view->clearSelection(); + view->setCursorPosition({0, cursor}); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QTEST(view->cursorPosition().column(), "expected_cursor"); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab, Qt::ShiftModifier); + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QTEST(view->cursorPosition().column(), "expected_cursor"); + + QTest::keyClick(view->focusProxy(), Qt::Key_Backtab); + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QTEST(view->cursorPosition().column(), "expected_cursor"); + + QTest::keyClick(view->focusProxy(), Qt::Key_A); + QTEST(doc.text(), "expected_edited_result"); +} + +void TemplateHandlerTest::testTab_data() +{ + QTest::addColumn("tpl"); + QTest::addColumn("cursor"); + QTest::addColumn("expected_cursor"); + QTest::addColumn("expected_edited_result"); + + QTest::newRow("simple_start") << "${foo} ${bar}" << 0 << 3 << "a bar"; + QTest::newRow("simple_mid") << "${foo} ${bar}" << 2 << 7 << "foo a"; + QTest::newRow("simple_end") << "${foo} ${bar}" << 3 << 7 << "foo a"; + QTest::newRow("adjacent_start") << "${foo}${bar} / ${foo} ${bar}" << 0 << 3 << "abar / a bar"; + QTest::newRow("adjacent_mid_1st") << "${foo}${bar}${baz} / ${foo} ${bar} ${baz}" << 2 << 6 << "fooabaz / foo a baz"; + QTest::newRow("adjacent_mid_2nd") << "${foo}${bar}${baz} / ${foo} ${bar} ${baz}" << 4 << 9 << "foobara / foo bar a"; + QTest::newRow("adjacent_mixed_start") << "${foo} ${bar}${baz} / ${foo} ${bar} ${baz}" << 5 << 10 << "foo bara / foo bar a"; + QTest::newRow("adjacent_mixed_end") << "${foo}${bar} ${baz} / ${foo} ${bar} ${baz}" << 5 << 10 << "foobar a / foo bar a"; + QTest::newRow("adjacent_repeat") << "${foo}${foo='foo'}${foo}" << 3 << 6 << "aaa"; + QTest::newRow("wrap_start") << "${foo} ${bar}" << 5 << 3 << "a bar"; + QTest::newRow("wrap_mid") << "${foo} ${bar}" << 6 << 3 << "a bar"; + QTest::newRow("wrap_end") << "${foo} ${bar}" << 7 << 3 << "a bar"; + QTest::newRow("non_editable_start") << "${foo} ${foo}" << 0 << 3 << "a a"; + QTest::newRow("non_editable_mid") << "${foo} ${foo}" << 2 << 3 << "a a"; + QTest::newRow("non_editable_end") << "${foo} ${foo}" << 3 << 3 << "a a"; + QTest::newRow("skip_non_editable") << "${foo} ${foo} ${bar}" << 1 << 11 << "foo foo a"; + QTest::newRow("skip_non_editable_at_end") << "${foo} ${bar} ${foo}" << 5 << 3 << "a bar a"; + QTest::newRow("jump_to_cursor") << "${foo} ${cursor}" << 1 << 4 << "foo a"; + QTest::newRow("jump_to_cursor_last") << "${foo} ${cursor} ${bar}" << 1 << 8 << "foo a"; + QTest::newRow("jump_to_cursor_last2") << "${foo} ${cursor} ${bar}" << 6 << 4 << "foo a bar"; + QTest::newRow("reference_default") << "${foo} ${bar} ${baz=bar}" << 1 << 7 << "foo a bar"; +} + +void TemplateHandlerTest::testTab2() +{ + KTextEditor::DocumentPrivate doc; + auto view = static_cast(doc.createView(nullptr)); + + auto reset = [&view, &doc](const QString &tmpl, const QString &expected) { + view->selectAll(); + view->keyDelete(); + + view->insertTemplate({0, 0}, tmpl); + QCOMPARE(doc.text(), expected); + }; + + { + reset(QStringLiteral("${foo}${bar}${baz}"), QStringLiteral("foobarbaz")); + QCOMPARE(view->cursorPosition().column(), 3); + QCOMPARE(view->selectionText(), QStringLiteral("foo")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->cursorPosition().column(), 6); + QCOMPARE(view->selectionText(), QStringLiteral("bar")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->cursorPosition().column(), 9); + QCOMPARE(view->selectionText(), QStringLiteral("baz")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->cursorPosition().column(), 3); + QCOMPARE(view->selectionText(), QStringLiteral("foo")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab, Qt::ShiftModifier); + QCOMPARE(view->cursorPosition().column(), 9); + QCOMPARE(view->selectionText(), QStringLiteral("baz")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab, Qt::ShiftModifier); + QCOMPARE(view->cursorPosition().column(), 6); + QCOMPARE(view->selectionText(), QStringLiteral("bar")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab, Qt::ShiftModifier); + QCOMPARE(view->cursorPosition().column(), 3); + QCOMPARE(view->selectionText(), QStringLiteral("foo")); + } + + { + reset(QStringLiteral("${foo} ${cursor} ${bar} ${cursor}"), QStringLiteral("foo bar ")); + QCOMPARE(view->cursorPosition().column(), 3); + QCOMPARE(view->selectionText(), QStringLiteral("foo")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->cursorPosition().column(), 8); + QCOMPARE(view->selectionText(), QStringLiteral("bar")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->cursorPosition().column(), 4); + QCOMPARE(view->selectionText(), QStringLiteral("")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->cursorPosition().column(), 9); + QCOMPARE(view->selectionText(), QStringLiteral("")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->cursorPosition().column(), 3); + QCOMPARE(view->selectionText(), QStringLiteral("foo")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab, Qt::ShiftModifier); + QCOMPARE(view->cursorPosition().column(), 9); + QCOMPARE(view->selectionText(), QStringLiteral("")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab, Qt::ShiftModifier); + QCOMPARE(view->cursorPosition().column(), 4); + QCOMPARE(view->selectionText(), QStringLiteral("")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab, Qt::ShiftModifier); + QCOMPARE(view->cursorPosition().column(), 8); + QCOMPARE(view->selectionText(), QStringLiteral("bar")); + } + + { + reset(QStringLiteral("${foo} ${bar=''} ${baz} ${bax}"), QStringLiteral("foo baz bax")); + QCOMPARE(view->cursorPosition().column(), 3); + QCOMPARE(view->selectionText(), QStringLiteral("foo")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->cursorPosition().column(), 4); + QCOMPARE(view->selectionText(), QStringLiteral("")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->cursorPosition().column(), 8); + QCOMPARE(view->selectionText(), QStringLiteral("baz")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->cursorPosition().column(), 12); + QCOMPARE(view->selectionText(), QStringLiteral("bax")); + } + + { + reset(QStringLiteral("${foo} ${bar=''}${baz} ${bax}"), QStringLiteral("foo baz bax")); + QCOMPARE(view->cursorPosition().column(), 3); + QCOMPARE(view->selectionText(), QStringLiteral("foo")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->cursorPosition().column(), 4); + QCOMPARE(view->selectionText(), QStringLiteral("")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->cursorPosition().column(), 7); + QCOMPARE(view->selectionText(), QStringLiteral("baz")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->cursorPosition().column(), 11); + QCOMPARE(view->selectionText(), QStringLiteral("bax")); + } + + { + reset(QStringLiteral("${bar}${foo} ${bar=''}${baz} ${bax}"), QStringLiteral("foo baz bax")); + QCOMPARE(view->cursorPosition().column(), 3); + QCOMPARE(view->selectionText(), QStringLiteral("foo")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->cursorPosition().column(), 4); + QCOMPARE(view->selectionText(), QStringLiteral("")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->cursorPosition().column(), 7); + QCOMPARE(view->selectionText(), QStringLiteral("baz")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->cursorPosition().column(), 11); + QCOMPARE(view->selectionText(), QStringLiteral("bax")); + } + + { + reset(QStringLiteral("${foo}${bar}${baz} / ${foo} ${bar} ${baz}"), QStringLiteral("foobarbaz / foo bar baz")); + QCOMPARE(view->cursorPosition().column(), 3); + QCOMPARE(view->selectionText(), QStringLiteral("foo")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->cursorPosition().column(), 6); + QCOMPARE(view->selectionText(), QStringLiteral("bar")); + + // QTest::keyClick(view->focusProxy(), Qt::Key_Backspace); + view->backspace(); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->cursorPosition().column(), 6); + QCOMPARE(view->selectionText(), QStringLiteral("baz")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->cursorPosition().column(), 3); + QCOMPARE(view->selectionText(), QStringLiteral("foo")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->cursorPosition().column(), 3); + QCOMPARE(view->selectionText(), QStringLiteral("")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->cursorPosition().column(), 6); + QCOMPARE(view->selectionText(), QStringLiteral("baz")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab, Qt::ShiftModifier); + QCOMPARE(view->cursorPosition().column(), 3); + QCOMPARE(view->selectionText(), QStringLiteral("")); + + QTest::keyClick(view->focusProxy(), 'X'); + QCOMPARE(view->cursorPosition().column(), 4); + QCOMPARE(doc.text(), QStringLiteral("fooXbaz / foo X baz")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab, Qt::ShiftModifier); + QCOMPARE(view->cursorPosition().column(), 3); + QCOMPARE(view->selectionText(), QStringLiteral("foo")); + + QTest::keyClick(view->focusProxy(), 'X'); + QCOMPARE(view->cursorPosition().column(), 1); + QCOMPARE(doc.text(), QStringLiteral("XXbaz / X X baz")); + } +} + +void TemplateHandlerTest::testExit() +{ + KTextEditor::DocumentPrivate doc; + auto view = static_cast(doc.createView(nullptr)); + + auto reset = [&view, &doc](const QString &snippet, const QString &expected) { + view->selectAll(); + view->keyDelete(); + + view->insertTemplate({0, 0}, snippet); + QCOMPARE(doc.text(), expected); + }; + + auto finish = [&view, &doc](const QString &expected) { + // required to process the deleteLater() used to exit the template handler + QCoreApplication::sendPostedEvents(nullptr, QEvent::DeferredDelete); + QApplication::processEvents(); + + // go to the first field and verify it's not mirrored any more (i.e. the handler exited) + view->setCursorPosition({0, 0}); + QTest::keyClick(view->focusProxy(), Qt::Key_A); + QCOMPARE(doc.text(), QStringLiteral("a") + expected); + }; + + // Test: insert at ${cursor} + reset(QStringLiteral("${foo} ${bar} ${cursor} ${foo}"), QStringLiteral("foo bar foo")); + view->setCursorPosition({0, 0}); + view->clearSelection(); + + // - check it jumps to the cursor + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->cursorPosition().column(), 3); + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->cursorPosition().column(), 7); + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->cursorPosition().column(), 8); + + // - insert an "a" at ${cursor} + QTest::keyClick(view->focusProxy(), Qt::Key_A); + // check it was inserted + QCOMPARE(doc.text(), QStringLiteral("foo bar a foo")); + + finish(QStringLiteral("foo bar a foo")); + + // Test: press escape + reset(QStringLiteral("${foo} ${bar} ${cursor} ${foo}"), QStringLiteral("foo bar foo")); + + // - ensure fields work as expected + view->setCursorPosition({0, 0}); + view->clearSelection(); + QTest::keyClick(view->focusProxy(), Qt::Key_A); + QCOMPARE(doc.text(), QStringLiteral("afoo bar afoo")); + + // - finish editing + QTest::keyClick(view->focusProxy(), Qt::Key_Escape); + finish(QStringLiteral("afoo bar afoo")); + + // Test: press alt+return + reset(QStringLiteral("${foo} ${bar} ${cursor} ${foo}"), QStringLiteral("foo bar foo")); + + // - ensure fields work as expected + view->setCursorPosition({0, 0}); + view->clearSelection(); + QTest::keyClick(view->focusProxy(), Qt::Key_A); + QCOMPARE(doc.text(), QStringLiteral("afoo bar afoo")); + + // - finish editing + QTest::keyClick(view->focusProxy(), Qt::Key_Return, Qt::AltModifier); + finish(QStringLiteral("afoo bar afoo")); +} + +void TemplateHandlerTest::testDefaultMirror() +{ + KTextEditor::DocumentPrivate doc; + auto view = static_cast(doc.createView(nullptr)); + + view->insertTemplate({0, 0}, + QStringLiteral("${foo=uppercase(\"hi\")} ${bar=3} ${foo}"), + QStringLiteral("function uppercase(x) { return x.toUpperCase(); }")); + QCOMPARE(doc.text(), QStringLiteral("HI 3 HI")); + doc.insertText({0, 0}, QStringLiteral("xy@")); + QCOMPARE(doc.text(), QStringLiteral("xy@HI 3 xy@HI")); +} + +void TemplateHandlerTest::testFunctionMirror() +{ + KTextEditor::DocumentPrivate doc; + auto view = static_cast(doc.createView(nullptr)); + + view->insertTemplate({0, 0}, QStringLiteral("${foo} hi ${uppercase(foo)}"), QStringLiteral("function uppercase(x) { return x.toUpperCase(); }")); + QCOMPARE(doc.text(), QStringLiteral("foo hi FOO")); + doc.insertText({0, 0}, QStringLiteral("xy@")); + QCOMPARE(doc.text(), QStringLiteral("xy@foo hi XY@FOO")); +} + +void TemplateHandlerTest::testAutoSelection() +{ + KTextEditor::DocumentPrivate doc; + auto view = static_cast(doc.createView(nullptr)); + + view->insertTemplate({0, 0}, QStringLiteral("${foo} ${bar} ${bar} ${cursor} ${baz}")); + QCOMPARE(doc.text(), QStringLiteral("foo bar bar baz")); + QCOMPARE(view->selectionText(), QStringLiteral("foo")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->selectionText(), QStringLiteral("bar")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->selectionText(), QStringLiteral("baz")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QVERIFY(view->selectionRange().isEmpty()); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->selectionText(), QStringLiteral("foo")); + QTest::keyClick(view->focusProxy(), Qt::Key_A); + QCOMPARE(doc.text(), QStringLiteral("a bar bar baz")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QVERIFY(view->selectionRange().isEmpty()); +} + +void TemplateHandlerTest::testNotEditableFields() +{ + QFETCH(QString, input); + QFETCH(int, change_offset); + + KTextEditor::DocumentPrivate doc; + auto view = static_cast(doc.createView(nullptr)); + view->insertTemplate({0, 0}, input); + + doc.insertText({0, change_offset}, QStringLiteral("xxx")); + QTEST(doc.text(), "expected"); +} + +void TemplateHandlerTest::testNotEditableFields_data() +{ + QTest::addColumn("input"); + QTest::addColumn("change_offset"); + QTest::addColumn("expected"); + + QTest::newRow("mirror") << QStringLiteral("${foo} ${foo}") << 6 << "foo foxxxo"; +} + +void TemplateHandlerTest::testCanRetrieveSelection() +{ + KTextEditor::DocumentPrivate doc; + auto view = static_cast(doc.createView(nullptr)); + view->insertText(QStringLiteral("hi world")); + view->setSelection(KTextEditor::Range(0, 1, 0, 4)); + view->insertTemplate({0, 1}, QStringLiteral("xx${foo=sel()}xx"), QStringLiteral("function sel() { return view.selectedText(); }")); + QCOMPARE(doc.text(), QStringLiteral("hxxi wxxorld")); +} + +void TemplateHandlerTest::testDefaults_data() +{ + auto uppercase = QStringLiteral("function uppercase(x) { return x.toUpperCase(); }"); + + QTest::addColumn("input"); + QTest::addColumn("expected"); + QTest::addColumn("function"); + + using S = QString; + QTest::newRow("empty") << S() << S() << S(); + QTest::newRow("foo") << QStringLiteral("${foo}") << QStringLiteral("foo") << S(); + QTest::newRow("foo=3") << QStringLiteral("${foo=3}") << QStringLiteral("3") << S(); + QTest::newRow("${foo=3+5}") << QStringLiteral("${foo=3+5}") << QStringLiteral("8") << S(); + QTest::newRow("string") << QStringLiteral("${foo=\"3+5\"}") << QStringLiteral("3+5") << S(); + QTest::newRow("backslash") << QStringLiteral(R"(${foo='c:\\folder'})") << QStringLiteral(R"(c:\folder)") << S(); + QTest::newRow("string_single_quote") << QStringLiteral("${foo='3+5'}") << QStringLiteral("3+5") << S(); + QTest::newRow("string_mirror") << QStringLiteral("${foo=\"Bar\"} ${foo}") << QStringLiteral("Bar Bar") << S(); + QTest::newRow("mirror_before_default") << QStringLiteral("${foo} ${foo='bar'}") << QStringLiteral("bar bar") << S(); + QTest::newRow("duplicate_default") << QStringLiteral("${foo=1} ${foo=2}") << QStringLiteral("1 1") << S(); + QTest::newRow("func_simple") << QStringLiteral("${foo=myfunc()}") << QStringLiteral("hi") << QStringLiteral("function myfunc() { return 'hi'; }"); + QTest::newRow("func_fixed") << QStringLiteral("${myfunc()}") << QStringLiteral("hi") << QStringLiteral("function myfunc() { return 'hi'; }"); + QTest::newRow("func_constant_arg") << QStringLiteral("${foo=uppercase(\"Foo\")}") << QStringLiteral("FOO") << uppercase; + QTest::newRow("func_constant_arg_mirror") << QStringLiteral("${foo=uppercase(\"hi\")} ${bar=3} ${foo}") << QStringLiteral("HI 3 HI") << uppercase; + QTest::newRow("cursor") << QStringLiteral("${foo} ${cursor}") << QStringLiteral("foo ") << S(); + QTest::newRow("only_cursor") << QStringLiteral("${cursor}") << QStringLiteral("") << S(); + QTest::newRow("only_cursor_stuff") << QStringLiteral("fdas ${cursor} asdf") << QStringLiteral("fdas asdf") << S(); + QTest::newRow("reference_default") << QStringLiteral("${a='foo'} ${b=a}") << QStringLiteral("foo foo") << S(); + QTest::newRow("reference_plain") << QStringLiteral("${a} ${b=a}") << QStringLiteral("a a") << S(); + QTest::newRow("reference_unevaluated1") << QStringLiteral("${a=b} ${b='foo'}") << QStringLiteral("ReferenceError: b is not defined foo") << S(); + QTest::newRow("reference_unevaluated2") << QStringLiteral("${a=b} ${b}") << QStringLiteral("ReferenceError: b is not defined b") << S(); + QTest::newRow("reference_unevaluated3") << QStringLiteral("${a=fields.b} ${b}") << QStringLiteral("undefined b") << S(); + QTest::newRow("reference_empty") << QStringLiteral("${foo} ${bar=foo}") << QStringLiteral("foo foo") << S(); + QTest::newRow("reference_error") << QStringLiteral("${a=b}") << QStringLiteral("ReferenceError: b is not defined") << S(); + QTest::newRow("reference_func") << QStringLiteral("${foo} ${uppercase(foo)}") << QStringLiteral("foo FOO") << uppercase; + QTest::newRow("reference_func_default") << QStringLiteral("${foo} ${bar=uppercase(foo)}") << QStringLiteral("foo FOO") << uppercase; + QTest::newRow("reference_func_repeat") << QStringLiteral("${foo} ${uppercase(foo)} ${uppercase(foo)}") << QStringLiteral("foo FOO FOO") << uppercase; + QTest::newRow("reference_func_body1") << QStringLiteral("${foo} ${myfunc()}") << QStringLiteral("foo ReferenceError: foo is not defined") + << QStringLiteral("function myfunc() { return foo; }"); + QTest::newRow("reference_func_body2") << QStringLiteral("${foo} ${myfunc()}") << QStringLiteral("foo foo") + << QStringLiteral("function myfunc() { return fields.foo; }"); + QTest::newRow("reference_self") << QStringLiteral("${foo=uppercase(foo)}") << QStringLiteral("FOO") << uppercase; + QTest::newRow("invalid_js1") << QStringLiteral("${foo=break}") << QStringLiteral("SyntaxError: Break outside of loop") << S(); + QTest::newRow("invalid_js2") << QStringLiteral("${foo=#break#}") << QStringLiteral("undefined") << S(); + QTest::newRow("invalid_js_identifier") << QStringLiteral("${foo.bar}") << QStringLiteral("foo.bar") << S(); + QTest::newRow("invalid_js_identifier_in_env1") << QStringLiteral("${foo.bar} ${uppercase('x')}") << QStringLiteral("foo.bar X") << uppercase; + QTest::newRow("invalid_js_identifier_in_env2") << QStringLiteral("${foo.bar} ${baz=foo.bar}") + << QStringLiteral("foo.bar ReferenceError: foo is not defined") << S(); + QTest::newRow("invalid_js_identifier_in_env3") << QStringLiteral("${foo.bar} ${baz=fields['foo.bar']}") << QStringLiteral("foo.bar foo.bar") << S(); + QTest::newRow("invalid_js_identifier_in_env4") << QStringLiteral("${volatile} ${foo=volatile}") + << QStringLiteral("volatile SyntaxError: access volatile through the fields map") << S(); + QTest::newRow("field_name_global") << QStringLiteral("${document='myfield'} ${foo=document.encoding()} ${bar=fields.document}") + << QStringLiteral("myfield UTF-8 myfield") << uppercase; +} + +void TemplateHandlerTest::testDefaults() +{ + KTextEditor::DocumentPrivate doc; + auto view = static_cast(doc.createView(nullptr)); + + QFETCH(QString, input); + QFETCH(QString, function); + + view->insertTemplate(KTextEditor::Cursor(0, 0), input, function); + QTEST(doc.text(), "expected"); + + view->selectAll(); + view->keyDelete(); + QCOMPARE(doc.text(), QString()); +} + +void TemplateHandlerTest::testLinesRemoved() +{ + KTextEditor::DocumentPrivate doc; + auto view = static_cast(doc.createView(nullptr)); + + view->insertTemplate({0, 0}, QStringLiteral("${foo}\n${bar}\n${bax}\n${baz}")); + QCOMPARE(doc.text(), QStringLiteral("foo\nbar\nbax\nbaz")); + QCOMPARE(view->selectionText(), QStringLiteral("foo")); + + view->killLine(); + view->killLine(); + QVERIFY(view->selectionRange().isEmpty()); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->selectionText(), QStringLiteral("bax")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->selectionText(), QStringLiteral("baz")); +} + +void TemplateHandlerTest::testLinesRemoved2() +{ + // BUG: 434093 + KTextEditor::DocumentPrivate doc; + auto view = static_cast(doc.createView(nullptr)); + + view->insertTemplate({0, 0}, QStringLiteral(R"(@book{${bibkey}, + author = {${author}}, + editor = {${editor}}, + title = {${title}}, + series = {${series}}, + number = {${number}}, + publisher = {${publisher}}, + year = {${year}}, + pagetotal = {${pagetotal}}, + file = {:${file}:PDF}, + url = {${url}}, + edition = {${edition}}, + abstract = {${abstract}}, + groups = {${groups}}, +} + +${cursor} +)")); + QCOMPARE(view->selectionText(), QStringLiteral("bibkey")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->selectionText(), QStringLiteral("author")); + + view->killLine(); + view->killLine(); + QVERIFY(view->selectionRange().isEmpty()); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->selectionText(), QStringLiteral("title")); + + QTest::keyClick(view->focusProxy(), Qt::Key_Tab); + QCOMPARE(view->selectionText(), QStringLiteral("series")); +} + +void TemplateHandlerTest::testReadOnly() +{ + KTextEditor::DocumentPrivate doc; + doc.setReadWrite(false); + + auto view = static_cast(doc.createView(nullptr)); + + bool ok = view->insertTemplate({0, 0}, QStringLiteral("${foo} ${foo}")); + + // no text should have been inserted because the document is read-only + QCOMPARE(ok, false); + QCOMPARE(doc.text(), QStringLiteral("")); + + // input should have no effect + view->setCursorPosition({0, 0}); + QTest::keyClick(view->focusProxy(), Qt::Key_A); + QCOMPARE(doc.text(), QStringLiteral("")); +} + +void TemplateHandlerTest::testMultipleViews() +{ + KTextEditor::DocumentPrivate doc; + + auto view1 = static_cast(doc.createView(nullptr)); + view1->insertTemplate({0, 0}, QStringLiteral("${foo} ${foo}")); + QCOMPARE(doc.text(), QStringLiteral("foo foo")); + + auto view2 = static_cast(doc.createView(nullptr)); + view2->setCursorPosition({0, 1}); + QTest::keyClick(view2->focusProxy(), 'X'); + QCOMPARE(doc.text(), QStringLiteral("fXoo fXoo")); +} + +#include "moc_templatehandler_test.cpp" diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/templatehandler_test.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/templatehandler_test.h new file mode 100644 index 0000000000..f4751fac37 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/templatehandler_test.h @@ -0,0 +1,94 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2010 Bernhard Beschow + SPDX-FileCopyrightText: 2014 Sven Brauch + SPDX-FileCopyrightText: 2025 Mirian Margiani + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef KATE_TEMPLATEHANDLER_TEST_H +#define KATE_TEMPLATEHANDLER_TEST_H + +#include + +/** + * Template handler tests. + * + * Notes on keyboard input in tests: + * + * 1. Key clicks must be posted to the view's focus proxy because it is the actual + * receiver of key events: https://doc.qt.io/qt-6/qwidget.html#setFocusProxy + * Key events are caught in KateViewInternal::eventFilter() and handled in + * KateViewInternal::keyPressEvent(). + * + * - view: KTextEditor::ViewPrivate + * - view->focusProxy(): KateViewInternal + * + * - do: QTest::keyClick(view->focusProxy(), 'A'); + * - don't: QTest::keyClick(view, 'A'); + * + * 2. Backspace is not handled in KateViewInternal::keyPressEvent() for some + * reason. The call to view()->backspace() is commented out. Instead of triggering + * the key event, simply call backspace() directly. + * + * - do: view->backspace(); + * - don't: QTest::keyClick(view->focusProxy(), Qt::Key_Backspace); + * + * 3. Don't forget to clear the current selection via "view->clearSelection()" + * when testing keyboard input in a freshly inserted template. Simply calling + * "view->setCursorPosition({0, 0})" will not clear the selection and will + * lead to unexpected results when inserting text via QTest::keyClick(). + * + */ +class TemplateHandlerTest : public QObject +{ + Q_OBJECT + +public: + TemplateHandlerTest(); + +private Q_SLOTS: + void testUndo(); + + void testSimpleMirror(); + void testSimpleMirror_data(); + + void testAlignC(); + void testAlignC_data(); + + void testDefaults(); + void testDefaults_data(); + + void testDefaultMirror(); + + void testFunctionMirror(); + + void testNotEditableFields(); + void testNotEditableFields_data(); + + void testAdjacentRanges(); + void testAdjacentRanges2(); + void testAdjacentRanges3(); + + void testTab(); + void testTab_data(); + + void testTab2(); + + void testExit(); + + void testAutoSelection(); + + void testCanRetrieveSelection(); + + void testEscapes(); + void testEscapes_data(); + void testLinesRemoved(); + void testLinesRemoved2(); + + void testReadOnly(); + void testMultipleViews(); +}; + +#endif diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/test.uc b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/test.uc new file mode 100644 index 0000000000..aa1dedcd38 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/test.uc @@ -0,0 +1,266 @@ +//============================================================================= +// Shield Gun +//============================================================================= +class ShieldGun extends Weapon + config(user); + +#EXEC OBJ LOAD FILE=InterfaceContent.utx + +var Sound ShieldHitSound; +var String ShieldHitForce; + +replication +{ + reliable if (Role == ROLE_Authority) + ClientTakeHit; +} + +simulated function DoAutoSwitch() +{ +} + +simulated event RenderOverlays( Canvas Canvas ) +{ + local int m; + + if ((Hand < -1.0) || (Hand > 1.0)) + { + for (m = 0; m < NUM_FIRE_MODES; m++) + { + if (FireMode[m] != None) + { + FireMode[m].DrawMuzzleFlash(Canvas); + } + } + } + Super.RenderOverlays(Canvas); +} + +// AI Interface +function GiveTo(Pawn Other, optional Pickup Pickup) +{ + Super.GiveTo(Other, Pickup); + + if ( Bot(Other.Controller) != None ) + Bot(Other.Controller).bHasImpactHammer = true; +} + +function bool CanAttack(Actor Other) +{ + return true; +} + +simulated function Timer() +{ + local Bot B; + + if (ClientState == WS_BringUp) + { + // check if owner is bot waiting to do impact jump + B = Bot(Instigator.Controller); + if ( (B != None) && B.bPreparingMove && (B.ImpactTarget != None) ) + { + B.ImpactJump(); + B = None; + } + } + Super.Timer(); + if ( (B != None) && (B.Enemy != None) ) + BotFire(false); +} + +function FireHack(byte Mode) +{ + if ( Mode == 0 ) + { + FireMode[0].PlayFiring(); + FireMode[0].FlashMuzzleFlash(); + FireMode[0].StartMuzzleSmoke(); + IncrementFlashCount(0); + } +} + +/* BestMode() +choose between regular or alt-fire +*/ +function byte BestMode() +{ + local float EnemyDist; + local bot B; + + B = Bot(Instigator.Controller); + if ( (B == None) || (B.Enemy == None) ) + return 1; + + EnemyDist = VSize(B.Enemy.Location - Instigator.Location); + if ( EnemyDist > 2 * Instigator.GroundSpeed ) + return 1; + if ( (B.MoveTarget != B.Enemy) && ((EnemyDist > 0.5 * Instigator.GroundSpeed) + || (((B.Enemy.Location - Instigator.Location) Dot vector(Instigator.Rotation)) <= 0)) ) + return 1; + return 0; +} + +// super desirable for bot waiting to impact jump +function float GetAIRating() +{ + local Bot B; + local float EnemyDist; + + B = Bot(Instigator.Controller); + if ( B == None ) + return AIRating; + + if ( B.bPreparingMove && (B.ImpactTarget != None) ) + return 9; + + if ( B.PlayerReplicationInfo.HasFlag != None ) + { + if ( Instigator.Health < 50 ) + return AIRating + 0.35; + return AIRating + 0.25; + } + + if ( B.Enemy == None ) + return AIRating; + + EnemyDist = VSize(B.Enemy.Location - Instigator.Location); + if ( B.Stopped() && (EnemyDist > 100) ) + return 0.1; + + if ( (EnemyDist < 750) && (B.Skill <= 2) && !B.Enemy.IsA('Bot') && (ShieldGun(B.Enemy.Weapon) != None) ) + return FClamp(300/(EnemyDist + 1), 0.6, 0.75); + + if ( EnemyDist > 400 ) + return 0.1; + if ( (Instigator.Weapon != self) && (EnemyDist < 120) ) + return 0.25; + + return ( FMin(0.6, 90/(EnemyDist + 1)) ); +} + +// End AI interface + +function AdjustPlayerDamage( out int Damage, Pawn InstigatedBy, Vector HitLocation, + out Vector Momentum, class DamageType) +{ + local int Drain; + local vector Reflect; + local vector HitNormal; + local float DamageMax; + + DamageMax = 100.0; + if ( DamageType == class'Fell' ) + DamageMax = 20.0; + else if( !DamageType.default.bArmorStops || (DamageType == class'DamTypeShieldImpact' && InstigatedBy == Instigator) ) + return; + + if ( CheckReflect(HitLocation, HitNormal, 0) ) + { + Drain = Min( Ammo[1].AmmoAmount*2, Damage ); + Drain = Min(Drain,DamageMax); + Reflect = MirrorVectorByNormal( Normal(Location - HitLocation), Vector(Instigator.Rotation) ); + Damage -= Drain; + Momentum *= 1.25; + Ammo[1].UseAmmo(Drain/2); + DoReflectEffect(Drain/2); + } +} + +function DoReflectEffect(int Drain) +{ + PlaySound(ShieldHitSound, SLOT_None); + ShieldAltFire(FireMode[1]).TakeHit(Drain); + ClientTakeHit(Drain); +} + +simulated function ClientTakeHit(int Drain) +{ + ClientPlayForceFeedback(ShieldHitForce); + ShieldAltFire(FireMode[1]).TakeHit(Drain); +} + +function bool CheckReflect( Vector HitLocation, out Vector RefNormal, int AmmoDrain ) +{ + local Vector HitDir; + local Vector FaceDir; + + if (!FireMode[1].bIsFiring || Ammo[0].AmmoAmount == 0) return false; + + FaceDir = Vector(Instigator.Controller.Rotation); + HitDir = Normal(Instigator.Location - HitLocation + Vect(0,0,8)); + //Log(self@"HitDir"@(FaceDir dot HitDir)); + + RefNormal = FaceDir; + + if ( FaceDir dot HitDir < -0.37 ) // 68 degree protection arc + { + if (AmmoDrain > 0) + Ammo[0].UseAmmo(AmmoDrain); + return true; + } + return false; +} + +function AnimEnd(int channel) +{ + if (FireMode[0].bIsFiring) + { + LoopAnim('Charged'); + } + else if (!FireMode[1].bIsFiring) + { + Super.AnimEnd(channel); + } +} + +function float SuggestAttackStyle() +{ + return 0.8; +} + +function float SuggestDefenseStyle() +{ + return -0.8; +} + +simulated function float ChargeBar() +{ + return FMin(1,FireMode[0].HoldTime/ShieldFire(FireMode[0]).FullyChargedTime); +} + +defaultproperties +{ + ItemName="Shield Gun" + IconMaterial=Material'InterfaceContent.Hud.SkinA' + IconCoords=(X1=200,Y1=281,X2=321,Y2=371) + + bShowChargingBar=true + bCanThrow=false + FireModeClass(0)=ShieldFire + FireModeClass(1)=ShieldAltFire + InventoryGroup=1 + Mesh=mesh'Weapons.ShieldGun_1st' + BobDamping=2.2 + PickupClass=class'ShieldGunPickup' + EffectOffset=(X=15.0,Y=6.7,Z=1.2) + bMeleeWeapon=true + ShieldHitSound=Sound'WeaponSounds.ShieldGun.ShieldReflection' + DrawScale=0.4 + PutDownAnim=PutDown + DisplayFOV=60 + PlayerViewOffset=(X=2,Y=-0.7,Z=-2.7) + PlayerViewPivot=(Pitch=500,Roll=0,Yaw=500) + + UV2Texture=Material'XGameShaders.WeaponEnvShader' + + AttachmentClass=class'ShieldAttachment' + SelectSound=Sound'WeaponSounds.ShieldGun_change' + SelectForce="ShieldGun_change" + ShieldHitForce="ShieldReflection" + + AIRating=0.35 + CurrentRating=0.35 + + DefaultPriority=2 +} diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/testutils.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/testutils.cpp new file mode 100644 index 0000000000..5c0dcab541 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/testutils.cpp @@ -0,0 +1,322 @@ +/* + This file is part of the KDE project + SPDX-FileCopyrightText: 2001, 2003 Peter Kelly + SPDX-FileCopyrightText: 2003, 2004 Stephan Kulow + SPDX-FileCopyrightText: 2004 Dirk Mueller + SPDX-FileCopyrightText: 2006, 2007 Leo Savernik + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +// BEGIN Includes +#include "testutils.h" + +#include "kateconfig.h" +#include "katedocument.h" +#include "katescripthelpers.h" +#include "kateview.h" +#include "ktexteditor/cursor.h" +#include "ktexteditor/range.h" + +#include +#include +#include + +// END Includes + +// BEGIN TestScriptEnv + +TestScriptEnv::TestScriptEnv(KTextEditor::DocumentPrivate *part, bool &cflag) + : m_engine(nullptr) + , m_viewObj(nullptr) + , m_docObj(nullptr) + , m_output(nullptr) +{ + m_engine = new QJSEngine(this); + + // export read & require function and add the require guard object + QJSValue functions = m_engine->newQObject(new Kate::ScriptHelper(m_engine)); + m_engine->globalObject().setProperty(QStringLiteral("functions"), functions); + m_engine->globalObject().setProperty(QStringLiteral("read"), functions.property(QStringLiteral("read"))); + m_engine->globalObject().setProperty(QStringLiteral("require"), functions.property(QStringLiteral("require"))); + m_engine->globalObject().setProperty(QStringLiteral("require_guard"), m_engine->newObject()); + + // export debug function + m_engine->globalObject().setProperty(QStringLiteral("debug"), functions.property(QStringLiteral("debug"))); + + // export translation functions + m_engine->globalObject().setProperty(QStringLiteral("i18n"), functions.property(QStringLiteral("_i18n"))); + m_engine->globalObject().setProperty(QStringLiteral("i18nc"), functions.property(QStringLiteral("_i18nc"))); + m_engine->globalObject().setProperty(QStringLiteral("i18np"), functions.property(QStringLiteral("_i18np"))); + m_engine->globalObject().setProperty(QStringLiteral("i18ncp"), functions.property(QStringLiteral("_i18ncp"))); + + KTextEditor::ViewPrivate *view = qobject_cast(part->widget()); + + m_viewObj = new KateViewObject(m_engine, view); + QJSValue sv = m_engine->newQObject(m_viewObj); + + m_engine->globalObject().setProperty(QStringLiteral("view"), sv); + m_engine->globalObject().setProperty(QStringLiteral("v"), sv); + + m_docObj = new KateDocumentObject(m_engine, view->doc()); + QJSValue sd = m_engine->newQObject(m_docObj); + + m_engine->globalObject().setProperty(QStringLiteral("document"), sd); + m_engine->globalObject().setProperty(QStringLiteral("d"), sd); + + m_output = new OutputObject(view, cflag); + QJSValue so = m_engine->newQObject(m_output); + + m_engine->globalObject().setProperty(QStringLiteral("output"), so); + m_engine->globalObject().setProperty(QStringLiteral("out"), so); + m_engine->globalObject().setProperty(QStringLiteral("o"), so); +} + +TestScriptEnv::~TestScriptEnv() +{ + // delete explicitly, as the parent is the KTE::Document kpart, which is + // reused for all tests. Hence, we explicitly have to delete the bindings. + delete m_output; + m_output = nullptr; + delete m_docObj; + m_docObj = nullptr; + delete m_viewObj; + m_viewObj = nullptr; + + // delete this too, although this should also be automagically be freed + delete m_engine; + m_engine = nullptr; + + // kDebug() << "deleted"; +} +// END TestScriptEnv + +// BEGIN KateViewObject + +KateViewObject::KateViewObject(QJSEngine *engine, KTextEditor::ViewPrivate *view) + : KateScriptView(engine) +{ + setView(view); +} + +KateViewObject::~KateViewObject() +{ + // kDebug() << "deleted"; +} + +// Implements a function that calls an edit function repeatedly as specified by +// its first parameter (once if not specified). +#define REP_CALL(func) \ + void KateViewObject::func(int cnt) \ + { \ + while (cnt--) { \ + view()->func(); \ + } \ + } +REP_CALL(keyReturn) +REP_CALL(backspace) +REP_CALL(deleteWordLeft) +REP_CALL(keyDelete) +REP_CALL(deleteWordRight) +REP_CALL(transpose) +REP_CALL(cursorLeft) +REP_CALL(shiftCursorLeft) +REP_CALL(cursorRight) +REP_CALL(shiftCursorRight) +REP_CALL(wordLeft) +REP_CALL(shiftWordLeft) +REP_CALL(wordRight) +REP_CALL(shiftWordRight) +REP_CALL(home) +REP_CALL(shiftHome) +REP_CALL(end) +REP_CALL(shiftEnd) +REP_CALL(up) +REP_CALL(shiftUp) +REP_CALL(down) +REP_CALL(shiftDown) +REP_CALL(scrollUp) +REP_CALL(scrollDown) +REP_CALL(topOfView) +REP_CALL(shiftTopOfView) +REP_CALL(bottomOfView) +REP_CALL(shiftBottomOfView) +REP_CALL(pageUp) +REP_CALL(shiftPageUp) +REP_CALL(pageDown) +REP_CALL(shiftPageDown) +REP_CALL(top) +REP_CALL(shiftTop) +REP_CALL(bottom) +REP_CALL(shiftBottom) +REP_CALL(toMatchingBracket) +REP_CALL(shiftToMatchingBracket) +#undef REP_CALL + +void KateViewObject::type(const QString &str) +{ + view()->doc()->typeChars(view(), str); +} + +void KateViewObject::paste(const QString &str) +{ + view()->doc()->paste(view(), str); +} + +void KateViewObject::setAutoBrackets(bool enable) +{ + view()->config()->setValue(KateViewConfig::AutoBrackets, enable); +} + +void KateViewObject::replaceTabs(bool enable) +{ + view()->doc()->config()->setValue(KateDocumentConfig::ReplaceTabsWithSpaces, enable); +} + +#define ALIAS(alias, func) \ + void KateViewObject::alias(int cnt) \ + { \ + func(cnt); \ + } +ALIAS(enter, keyReturn) +ALIAS(cursorPrev, cursorLeft) +ALIAS(left, cursorLeft) +ALIAS(prev, cursorLeft) +ALIAS(shiftCursorPrev, shiftCursorLeft) +ALIAS(shiftLeft, shiftCursorLeft) +ALIAS(shiftPrev, shiftCursorLeft) +ALIAS(cursorNext, cursorRight) +ALIAS(right, cursorRight) +ALIAS(next, cursorRight) +ALIAS(shiftCursorNext, shiftCursorRight) +ALIAS(shiftRight, shiftCursorRight) +ALIAS(shiftNext, shiftCursorRight) +ALIAS(wordPrev, wordLeft) +ALIAS(shiftWordPrev, shiftWordLeft) +ALIAS(wordNext, wordRight) +ALIAS(shiftWordNext, shiftWordRight) +#undef ALIAS + +// END KateViewObject + +// BEGIN KateDocumentObject + +KateDocumentObject::KateDocumentObject(QJSEngine *engine, KTextEditor::DocumentPrivate *doc) + : KateScriptDocument(engine) +{ + setDocument(doc); +} + +KateDocumentObject::~KateDocumentObject() +{ + // kDebug() << "deleted"; +} +// END KateDocumentObject + +// BEGIN OutputObject +OutputObject::OutputObject(KTextEditor::ViewPrivate *v, bool &cflag) + : view(v) + , cflag(cflag) +{ +} + +OutputObject::~OutputObject() +{ + // kDebug() << "deleted"; +} + +void OutputObject::output(bool cp, bool ln) +{ + QString str; + // FIXME: This is not available with QtQml, but not sure if we need it + // for (int i = 0; i < context()->argumentCount(); ++i) { + // QJSValue arg = context()->argument(i); + // str += arg.toString(); + // } + + if (cp) { + KTextEditor::Cursor c = view->cursorPosition(); + str += QLatin1Char('(') + QString::number(c.line()) + QLatin1Char(',') + QString::number(c.column()) + QLatin1Char(')'); + } + + if (ln) { + str += QLatin1Char('\n'); + } + + view->insertText(str); + + cflag = true; +} + +void OutputObject::write() +{ + output(false, false); +} + +void OutputObject::writeln() +{ + output(false, true); +} + +void OutputObject::writeLn() +{ + output(false, true); +} + +void OutputObject::print() +{ + output(false, false); +} + +void OutputObject::println() +{ + output(false, true); +} + +void OutputObject::printLn() +{ + output(false, true); +} + +void OutputObject::writeCursorPosition() +{ + output(true, false); +} + +void OutputObject::writeCursorPositionln() +{ + output(true, true); +} + +void OutputObject::cursorPosition() +{ + output(true, false); +} + +void OutputObject::cursorPositionln() +{ + output(true, true); +} + +void OutputObject::cursorPositionLn() +{ + output(true, true); +} + +void OutputObject::pos() +{ + output(true, false); +} + +void OutputObject::posln() +{ + output(true, true); +} + +void OutputObject::posLn() +{ + output(true, true); +} +// END OutputObject + +#include "moc_testutils.cpp" diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/testutils.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/testutils.h new file mode 100644 index 0000000000..42dff7312c --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/testutils.h @@ -0,0 +1,193 @@ +/* + This file is part of the KDE project + + SPDX-FileCopyrightText: 2001, 2003 Peter Kelly + SPDX-FileCopyrightText: 2006, 2007 Leo Savernik + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef TESTUTILS_H +#define TESTUTILS_H + +#include "katescriptview.h" + +#include "katescriptdocument.h" +#include + +namespace KTextEditor +{ +class ViewPrivate; +} +class RegressionTest; +class KCmdLineArgs; +class OutputObject; +class KateViewObject; +class KateDocumentObject; + +/** + * @internal + * The backbone of Kate's automatic regression tests. + */ +class TestScriptEnv : public QObject +{ +public: + explicit TestScriptEnv(KTextEditor::DocumentPrivate *part, bool &cflag); + ~TestScriptEnv() override; + + QJSEngine *engine() const + { + return m_engine; + } + + /** returns the output object */ + OutputObject *output() const + { + return m_output; + } + +private: + QJSEngine *m_engine; + KateViewObject *m_viewObj; + KateDocumentObject *m_docObj; + + OutputObject *m_output; +}; + +/** + * @internal + */ +class KateViewObject : public KateScriptView +{ + Q_OBJECT + +public: + explicit KateViewObject(QJSEngine *engine, KTextEditor::ViewPrivate *view); + ~KateViewObject() override; + + // Edit functions + Q_INVOKABLE void keyReturn(int cnt = 1); + Q_INVOKABLE void backspace(int cnt = 1); + Q_INVOKABLE void deleteWordLeft(int cnt = 1); + Q_INVOKABLE void keyDelete(int cnt = 1); + Q_INVOKABLE void deleteWordRight(int cnt = 1); + Q_INVOKABLE void transpose(int cnt = 1); + Q_INVOKABLE void cursorLeft(int cnt = 1); + Q_INVOKABLE void shiftCursorLeft(int cnt = 1); + Q_INVOKABLE void cursorRight(int cnt = 1); + Q_INVOKABLE void shiftCursorRight(int cnt = 1); + Q_INVOKABLE void wordLeft(int cnt = 1); + Q_INVOKABLE void shiftWordLeft(int cnt = 1); + Q_INVOKABLE void wordRight(int cnt = 1); + Q_INVOKABLE void shiftWordRight(int cnt = 1); + Q_INVOKABLE void home(int cnt = 1); + Q_INVOKABLE void shiftHome(int cnt = 1); + Q_INVOKABLE void end(int cnt = 1); + Q_INVOKABLE void shiftEnd(int cnt = 1); + Q_INVOKABLE void up(int cnt = 1); + Q_INVOKABLE void shiftUp(int cnt = 1); + Q_INVOKABLE void down(int cnt = 1); + Q_INVOKABLE void shiftDown(int cnt = 1); + Q_INVOKABLE void scrollUp(int cnt = 1); + Q_INVOKABLE void scrollDown(int cnt = 1); + Q_INVOKABLE void topOfView(int cnt = 1); + Q_INVOKABLE void shiftTopOfView(int cnt = 1); + Q_INVOKABLE void bottomOfView(int cnt = 1); + Q_INVOKABLE void shiftBottomOfView(int cnt = 1); + Q_INVOKABLE void pageUp(int cnt = 1); + Q_INVOKABLE void shiftPageUp(int cnt = 1); + Q_INVOKABLE void pageDown(int cnt = 1); + Q_INVOKABLE void shiftPageDown(int cnt = 1); + Q_INVOKABLE void top(int cnt = 1); + Q_INVOKABLE void shiftTop(int cnt = 1); + Q_INVOKABLE void bottom(int cnt = 1); + Q_INVOKABLE void shiftBottom(int cnt = 1); + Q_INVOKABLE void toMatchingBracket(int cnt = 1); + Q_INVOKABLE void shiftToMatchingBracket(int cnt = 1); + + Q_INVOKABLE void type(const QString &str); + Q_INVOKABLE void paste(const QString &str); + + /** + * Toggle auto brackets. If you make use of it, make sure to + * disable them again at the end of your test, otherwise any following tests may fail. + */ + Q_INVOKABLE void setAutoBrackets(bool enable = true); + + /* + * Whether to replace tabs with spaces + */ + Q_INVOKABLE void replaceTabs(bool enable = true); + + // Aliases + Q_INVOKABLE void enter(int cnt = 1); // KeyReturn + Q_INVOKABLE void cursorPrev(int cnt = 1); // CursorLeft + Q_INVOKABLE void left(int cnt = 1); // CursorLeft + Q_INVOKABLE void prev(int cnt = 1); // CursorLeft + Q_INVOKABLE void shiftCursorPrev(int cnt = 1); // ShiftCursorLeft + Q_INVOKABLE void shiftLeft(int cnt = 1); // ShiftCursorLeft + Q_INVOKABLE void shiftPrev(int cnt = 1); // ShiftCursorLeft + Q_INVOKABLE void cursorNext(int cnt = 1); // CursorRight + Q_INVOKABLE void right(int cnt = 1); // CursorRight + Q_INVOKABLE void next(int cnt = 1); // CursorRight + Q_INVOKABLE void shiftCursorNext(int cnt = 1); // ShiftCursorRight + Q_INVOKABLE void shiftRight(int cnt = 1); // ShiftCursorRight + Q_INVOKABLE void shiftNext(int cnt = 1); // ShiftCursorRight + Q_INVOKABLE void wordPrev(int cnt = 1); // WordLeft + Q_INVOKABLE void shiftWordPrev(int cnt = 1); // ShiftWordLeft + Q_INVOKABLE void wordNext(int cnt = 1); // WordRight + Q_INVOKABLE void shiftWordNext(int cnt = 1); // ShiftWordRight +}; + +/** + * @internal + */ +class KateDocumentObject : public KateScriptDocument +{ + Q_OBJECT + +public: + explicit KateDocumentObject(QJSEngine *engine, KTextEditor::DocumentPrivate *doc); + ~KateDocumentObject() override; +}; + +/** + * Customizing output to result-files. Writing any output into result files + * inhibits outputting the content of the katepart after script execution, + * enabling one to check for coordinates and the like. + * @internal + */ +class OutputObject : public QObject +{ + Q_OBJECT + +public: + OutputObject(KTextEditor::ViewPrivate *v, bool &cflag); + ~OutputObject() override; + + void output(bool cp, bool ln); + + Q_INVOKABLE void write(); + Q_INVOKABLE void writeln(); + Q_INVOKABLE void writeLn(); + + Q_INVOKABLE void print(); + Q_INVOKABLE void println(); + Q_INVOKABLE void printLn(); + + Q_INVOKABLE void writeCursorPosition(); + Q_INVOKABLE void writeCursorPositionln(); + + Q_INVOKABLE void cursorPosition(); + Q_INVOKABLE void cursorPositionln(); + Q_INVOKABLE void cursorPositionLn(); + + Q_INVOKABLE void pos(); + Q_INVOKABLE void posln(); + Q_INVOKABLE void posLn(); + +private: + KTextEditor::ViewPrivate *view; + bool &cflag; +}; +#endif // TESTUTILS_H diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/undomanager_test.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/undomanager_test.cpp new file mode 100644 index 0000000000..b8a231433d --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/undomanager_test.cpp @@ -0,0 +1,281 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2010 Bernhard Beschow + SPDX-FileCopyrightText: 2009-2018 Dominik Haumann + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "undomanager_test.h" + +#include +#include +#include + +#include +#include + +QTEST_MAIN(UndoManagerTest) + +using namespace KTextEditor; + +UndoManagerTest::UndoManagerTest() + : QObject() +{ + QStandardPaths::setTestModeEnabled(true); +} + +void UndoManagerTest::testUndoRedoCount() +{ + KTextEditor::DocumentPrivate doc; + + // no undo/redo items at the beginning + QCOMPARE(doc.undoCount(), 0u); + QCOMPARE(doc.redoCount(), 0u); + + doc.insertText(Cursor(0, 0), QStringLiteral("a")); + + // create one insert-group + QCOMPARE(doc.undoCount(), 1u); + QCOMPARE(doc.redoCount(), 0u); + + doc.undo(); + + // move insert-group to redo items + QCOMPARE(doc.undoCount(), 0u); + QCOMPARE(doc.redoCount(), 1u); + + doc.redo(); + + // move insert-group back to undo items + QCOMPARE(doc.undoCount(), 1u); + QCOMPARE(doc.redoCount(), 0u); + + doc.insertText(Cursor(0, 1), QStringLiteral("b")); + + // merge "b" into insert-group + QCOMPARE(doc.undoCount(), 1u); + QCOMPARE(doc.redoCount(), 0u); + + doc.removeText(Range(0, 1, 0, 2)); + + // create an additional remove-group + QCOMPARE(doc.undoCount(), 2u); + QCOMPARE(doc.redoCount(), 0u); + + doc.undo(); + + // move remove-group to redo items + QCOMPARE(doc.undoCount(), 1u); + QCOMPARE(doc.redoCount(), 1u); + + doc.insertText(Cursor(0, 1), QStringLiteral("b")); + + // merge "b" into insert-group + // and remove remove-group + QCOMPARE(doc.undoCount(), 1u); + QCOMPARE(doc.redoCount(), 0u); +} + +void UndoManagerTest::testSafePoint() +{ + KTextEditor::DocumentPrivate doc; + KateUndoManager *undoManager = doc.undoManager(); + + doc.insertText(Cursor(0, 0), QStringLiteral("a")); + + // create one undo group + QCOMPARE(doc.undoCount(), 1u); + QCOMPARE(doc.redoCount(), 0u); + + undoManager->undoSafePoint(); + doc.insertText(Cursor(0, 1), QStringLiteral("b")); + + // create a second undo group (don't merge) + QCOMPARE(doc.undoCount(), 2u); + + doc.undo(); + + // move second undo group to redo items + QCOMPARE(doc.undoCount(), 1u); + QCOMPARE(doc.redoCount(), 1u); + + doc.insertText(Cursor(0, 1), QStringLiteral("b")); + + // create a second undo group again, (don't merge) + QCOMPARE(doc.undoCount(), 2u); + QCOMPARE(doc.redoCount(), 0u); + + doc.editStart(); + doc.insertText(Cursor(0, 2), QStringLiteral("c")); + undoManager->undoSafePoint(); + doc.insertText(Cursor(0, 3), QStringLiteral("d")); + doc.editEnd(); + + // merge both edits into second undo group + QCOMPARE(doc.undoCount(), 2u); + QCOMPARE(doc.redoCount(), 0u); + + doc.insertText(Cursor(0, 4), QStringLiteral("e")); + + // create a third undo group (don't merge) + QCOMPARE(doc.undoCount(), 3u); + QCOMPARE(doc.redoCount(), 0u); +} + +void UndoManagerTest::testCursorPosition() +{ + KTextEditor::DocumentPrivate doc; + KTextEditor::ViewPrivate *view = static_cast(doc.createView(nullptr)); + + doc.setText( + QStringLiteral("aaaa bbbb cccc\n" + "dddd ffff")); + view->setCursorPosition(KTextEditor::Cursor(1, 5)); + + doc.typeChars(view, QStringLiteral("eeee")); + + // cursor position: "dddd eeee| ffff" + QCOMPARE(view->cursorPosition(), KTextEditor::Cursor(1, 9)); + + // undo once to remove "eeee", cursor position: "dddd | ffff" + doc.undo(); + QCOMPARE(view->cursorPosition(), KTextEditor::Cursor(1, 5)); + + // redo once to insert "eeee" again. cursor position: "dddd eeee| ffff" + doc.redo(); + QCOMPARE(view->cursorPosition(), KTextEditor::Cursor(1, 9)); + + delete view; +} + +void UndoManagerTest::testSelectionUndo() +{ + KTextEditor::DocumentPrivate doc; + KTextEditor::ViewPrivate *view = static_cast(doc.createView(nullptr)); + + doc.setText( + QStringLiteral("aaaa bbbb cccc\n" + "dddd eeee ffff")); + view->setCursorPosition(KTextEditor::Cursor(1, 9)); + KTextEditor::Range selectionRange(KTextEditor::Cursor(0, 5), KTextEditor::Cursor(1, 9)); + view->setSelection(selectionRange); + + doc.typeChars(view, QStringLiteral("eeee")); + + // cursor position: "aaaa eeee| ffff", no selection anymore + QCOMPARE(view->cursorPosition(), KTextEditor::Cursor(0, 9)); + QCOMPARE(view->selection(), false); + + // undo to remove "eeee" and add selection and text again + doc.undo(); + QCOMPARE(view->cursorPosition(), KTextEditor::Cursor(1, 9)); + QCOMPARE(view->selection(), true); + QCOMPARE(view->selectionRange(), selectionRange); + + // redo to insert "eeee" again and remove selection + // cursor position: "aaaa eeee| ffff", no selection anymore + doc.redo(); + QCOMPARE(view->cursorPosition(), KTextEditor::Cursor(0, 9)); + QCOMPARE(view->selection(), false); + + delete view; +} + +void UndoManagerTest::testUndoWordWrapBug301367() +{ + KTextEditor::DocumentPrivate doc; + doc.setWordWrap(true); + doc.setWordWrapAt(20); + KTextEditor::ViewPrivate *view = static_cast(doc.createView(nullptr)); + + QString text = QString::fromLatin1( + "1234 1234 1234 1234\n" + "1234 1234 1234 1234"); + + doc.setText(text); + view->setCursorPosition(KTextEditor::Cursor(0, 0)); + + doc.typeChars(view, QStringLiteral(" ")); + + while (doc.undoCount() > 1) { + doc.undo(); + } + + // test must be exactly the same as before + QCOMPARE(doc.text(), text); + + while (doc.redoCount() > 1) { + doc.redo(); + } + + while (doc.undoCount() > 1) { + doc.undo(); + } + + // test must be exactly the same as before + QCOMPARE(doc.text(), text); + + delete view; +} + +void UndoManagerTest::testUndoIndentBug373009() +{ + KTextEditor::DocumentPrivate doc; + KTextEditor::ViewPrivate *view = static_cast(doc.createView(nullptr)); + + doc.setMode(QStringLiteral("C")); + + QString text = QString::fromLatin1( + " while (whatever) printf (\"please fix indentation.\\n\");\n" + " return 0;"); + doc.setText(text); + + // position cursor right before return + view->setCursorPosition(KTextEditor::Cursor(1, 4)); + + QCOMPARE(view->cursorPosition(), KTextEditor::Cursor(1, 4)); + QCOMPARE(doc.characterAt(view->cursorPosition()), QLatin1Char('r')); + + view->keyReturn(); + + QCOMPARE(doc.undoCount(), 2); + + // After indent we should be able to revert with + // one undo operation + doc.undo(); + QCOMPARE(doc.text(), text); + + delete view; +} + +void UndoManagerTest::testUndoAfterPastingWrappingLine() +{ + KTextEditor::DocumentPrivate doc; + std::unique_ptr view(static_cast(doc.createView(nullptr))); + + const QString originalText = QStringLiteral("First Line\nSecond Line Four Words"); + doc.setText(originalText); + + // put cursor in first line and copy the whole line + view->setCursorPosition({0, 0}); + view->copy(); + + // select 3rd word in line + view->setSelection(KTextEditor::Range(1, 12, 1, 16)); + + // paste the copied stuff + view->paste(); + + view->show(); + + // undo the paste + while (doc.undoCount() > 1) { + doc.undo(); + } + + // text should be same as original now + QCOMPARE(doc.text(), originalText); +} + +#include "moc_undomanager_test.cpp" diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/undomanager_test.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/undomanager_test.h new file mode 100644 index 0000000000..6d359cfb7d --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/undomanager_test.h @@ -0,0 +1,31 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2010 Bernhard Beschow + SPDX-FileCopyrightText: 2009-2018 Dominik Haumann + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef KATE_UNDOMANAGER_TEST_H +#define KATE_UNDOMANAGER_TEST_H + +#include + +class UndoManagerTest : public QObject +{ + Q_OBJECT + +public: + UndoManagerTest(); + +private Q_SLOTS: + void testUndoRedoCount(); + void testSafePoint(); + void testCursorPosition(); + void testSelectionUndo(); + void testUndoWordWrapBug301367(); + void testUndoIndentBug373009(); + void testUndoAfterPastingWrappingLine(); +}; + +#endif diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/variable_test.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/variable_test.cpp new file mode 100644 index 0000000000..735e642694 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/variable_test.cpp @@ -0,0 +1,300 @@ +/* + This file is part of the KDE project + SPDX-FileCopyrightText: 2019 Dominik Haumann + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "variable_test.h" +#include "moc_variable_test.cpp" + +#include + +#include +#include +#include +#include + +#include +#include +#include + +using namespace KTextEditor; + +QTEST_MAIN(VariableTest) + +VariableTest::VariableTest() + : QObject() +{ + QStandardPaths::setTestModeEnabled(true); +} + +VariableTest::~VariableTest() +{ +} + +void VariableTest::testReturnValues() +{ + auto editor = KTextEditor::Editor::instance(); + + const QString name = QStringLiteral("Document:"); + auto func = [](const QStringView &, KTextEditor::View *) { + return QString(); + }; + + // exact matches + QVERIFY(!editor->unregisterVariable(name)); + QVERIFY(editor->registerVariableMatch(name, QStringLiteral("Document Text"), func)); + QVERIFY(!editor->registerVariableMatch(name, QStringLiteral("Document Text"), func)); + QVERIFY(editor->unregisterVariable(name)); + QVERIFY(!editor->unregisterVariable(name)); + + // prefix matches + QVERIFY(!editor->unregisterVariable(name)); + QVERIFY(editor->registerVariablePrefix(name, QStringLiteral("Document Text"), func)); + QVERIFY(!editor->registerVariablePrefix(name, QStringLiteral("Document Text"), func)); + QVERIFY(editor->unregisterVariable(name)); + QVERIFY(!editor->unregisterVariable(name)); +} + +void VariableTest::testExactMatch_data() +{ + QTest::addColumn("text"); + QTest::addColumn("expected"); + QTest::addColumn("expectedText"); + + QTest::newRow("World") << QStringLiteral("World") << QStringLiteral("World") << QStringLiteral("World"); + QTest::newRow("Smart World") << QStringLiteral("Smart World") << QStringLiteral("Smart World") << QStringLiteral("Smart World"); +} + +void VariableTest::testExactMatch() +{ + QFETCH(QString, text); + QFETCH(QString, expected); + QFETCH(QString, expectedText); + + auto editor = KTextEditor::Editor::instance(); + std::unique_ptr doc{editor->createDocument(nullptr)}; + auto view = doc->createView(nullptr); + doc->setText(text); + + const QString name = QStringLiteral("Doc:Text"); + auto func = [](const QStringView &, KTextEditor::View *view) { + return view->document()->text(); + }; + + QVERIFY(editor->registerVariableMatch(name, QStringLiteral("Document Text"), func)); + + // expandVariable + QString output; + QVERIFY(editor->expandVariable(QStringLiteral("Doc:Text"), view, output)); + QCOMPARE(output, expected); + + // expandText + output = editor->expandText(QStringLiteral("Hello %{Doc:Text}!"), view); + QCOMPARE(output, QStringLiteral("Hello ") + expectedText + QLatin1Char('!')); + + output = editor->expandText(QStringLiteral("Hello %{Doc:Text} %{Doc:Text}!"), view); + QCOMPARE(output, QStringLiteral("Hello ") + expectedText + QLatin1Char(' ') + expectedText + QLatin1Char('!')); + + QVERIFY(editor->unregisterVariable(QStringLiteral("Doc:Text"))); +} + +void VariableTest::testPrefixMatch() +{ + auto editor = KTextEditor::Editor::instance(); + + const QString prefix = QStringLiteral("Mirror:"); + auto func = [](const QStringView &text, KTextEditor::View *) { + QStringView rest = text.right(text.size() - 7); + QString out; + for (auto it = rest.rbegin(); it != rest.rend(); ++it) { + out += *it; + } + return out; + }; + + QVERIFY(editor->registerVariablePrefix(prefix, QStringLiteral("Reverse text"), func)); + + QString output; + QVERIFY(editor->expandVariable(QStringLiteral("Mirror:12345"), nullptr, output)); + QCOMPARE(output, QStringLiteral("54321")); + + output = editor->expandText(QStringLiteral("Countdown: %{Mirror:12345}"), nullptr); + QCOMPARE(output, QStringLiteral("Countdown: 54321")); + + // Test recursive expansion + output = editor->expandText(QStringLiteral("Countup: %{Mirror:%{Mirror:12345}}"), nullptr); + QCOMPARE(output, QStringLiteral("Countup: 12345")); + + QVERIFY(editor->unregisterVariable(prefix)); +} + +void VariableTest::testRecursiveMatch() +{ + auto editor = KTextEditor::Editor::instance(); + std::unique_ptr doc{editor->createDocument(nullptr)}; + auto view = doc->createView(nullptr); + doc->setText(QStringLiteral("Text")); + + const QString name = QStringLiteral("Doc:Text"); + auto func = [](const QStringView &, KTextEditor::View *view) { + return view->document()->text(); + }; + QVERIFY(editor->registerVariableMatch(name, QStringLiteral("Document Text"), func)); + + // Test recursive expansion + doc->setText(QStringLiteral("Text")); + QString output = editor->expandText(QStringLiteral("Hello %{Doc:%{Doc:Text}}!"), view); + QCOMPARE(output, QStringLiteral("Hello Text!")); + + QVERIFY(editor->unregisterVariable(name)); +} + +void VariableTest::testBuiltins() +{ + auto editor = KTextEditor::Editor::instance(); + std::unique_ptr doc{editor->createDocument(nullptr)}; + doc->openUrl(QUrl::fromLocalFile(QDir::homePath() + QStringLiteral("/kate-v5.tar.gz"))); + doc->setText(QStringLiteral("get an edge in editing\n:-)")); + auto view = doc->createView(nullptr); + view->setCursorPosition(KTextEditor::Cursor(1, 2)); + view->show(); + + QString out; + + // Test invalid ones: + out = editor->expandText(QStringLiteral("%{}"), view); + QCOMPARE(out, QStringLiteral("%{}")); + out = editor->expandText(QStringLiteral("%{"), view); + QCOMPARE(out, QStringLiteral("%{")); + out = editor->expandText(QStringLiteral("%{{}"), view); + QCOMPARE(out, QStringLiteral("%{{}")); + out = editor->expandText(QStringLiteral("%{{}}"), view); + QCOMPARE(out, QStringLiteral("%{{}}")); + + // Document:FileBaseName + out = editor->expandText(QStringLiteral("%{Document:FileBaseName}"), view); + QCOMPARE(out, QStringLiteral("kate-v5")); + + // Document:FileExtension + out = editor->expandText(QStringLiteral("%{Document:FileExtension}"), view); + QCOMPARE(out, QStringLiteral("tar.gz")); + + // Document:FileName + out = editor->expandText(QStringLiteral("%{Document:FileName}"), view); + QCOMPARE(out, QStringLiteral("kate-v5.tar.gz")); + + // Document:FilePath + out = editor->expandText(QStringLiteral("%{Document:FilePath}"), view); + QCOMPARE(out, QFileInfo(view->document()->url().toLocalFile()).absoluteFilePath()); + + // Document:Text + out = editor->expandText(QStringLiteral("%{Document:Text}"), view); + QCOMPARE(out, QStringLiteral("get an edge in editing\n:-)")); + + // Document:Path + out = editor->expandText(QStringLiteral("%{Document:Path}"), view); + QCOMPARE(out, QFileInfo(doc->url().toLocalFile()).absolutePath()); + + // Document:NativeFilePath + out = editor->expandText(QStringLiteral("%{Document:NativeFilePath}"), view); + QCOMPARE(out, QDir::toNativeSeparators(QFileInfo(doc->url().toLocalFile()).absoluteFilePath())); + + // Document:NativePath + out = editor->expandText(QStringLiteral("%{Document:NativePath}"), view); + QCOMPARE(out, QDir::toNativeSeparators(QFileInfo(doc->url().toLocalFile()).absolutePath())); + + // Document:NativePath + out = editor->expandText(QStringLiteral("%{Document:NativePath}"), view); + QCOMPARE(out, QDir::toNativeSeparators(QFileInfo(doc->url().toLocalFile()).absolutePath())); + + // Document:Cursor:Line + out = editor->expandText(QStringLiteral("%{Document:Cursor:Line}"), view); + QCOMPARE(out, QStringLiteral("1")); + + // Document:Cursor:Column + out = editor->expandText(QStringLiteral("%{Document:Cursor:Column}"), view); + QCOMPARE(out, QStringLiteral("2")); + + // Document:Cursor:XPos + out = editor->expandText(QStringLiteral("%{Document:Cursor:XPos}"), view); + QVERIFY(out.toInt() > 0); + + // Document:Cursor:YPos + out = editor->expandText(QStringLiteral("%{Document:Cursor:YPos}"), view); + QVERIFY(out.toInt() > 0); + + view->setSelection(KTextEditor::Range(1, 0, 1, 3)); + // Document:Selection:Text + out = editor->expandText(QStringLiteral("%{Document:Selection:Text}"), view); + QCOMPARE(out, QStringLiteral(":-)")); + + // Document:Selection:StartLine + out = editor->expandText(QStringLiteral("%{Document:Selection:StartLine}"), view); + QCOMPARE(out, QStringLiteral("1")); + + // Document:Selection:StartColumn + out = editor->expandText(QStringLiteral("%{Document:Selection:StartColumn}"), view); + QCOMPARE(out, QStringLiteral("0")); + + // Document:Selection:EndLine + out = editor->expandText(QStringLiteral("%{Document:Selection:EndLine}"), view); + QCOMPARE(out, QStringLiteral("1")); + + // Document:Selection:EndColumn + out = editor->expandText(QStringLiteral("%{Document:Selection:EndColumn}"), view); + QCOMPARE(out, QStringLiteral("3")); + + // Document:RowCount + out = editor->expandText(QStringLiteral("%{Document:RowCount}"), view); + QCOMPARE(out, QStringLiteral("2")); + + // Document:Variable:, since KF 5.78 + qobject_cast(doc.get())->setVariable(QStringLiteral("cow-sound"), QStringLiteral("moo")); + out = editor->expandText(QStringLiteral("%{Document:Variable:cow-sound}"), view); + QCOMPARE(out, QStringLiteral("moo")); + + // Date:Locale + out = editor->expandText(QStringLiteral("%{Date:Locale}"), view); + QVERIFY(!out.isEmpty()); + + // Date:ISO + out = editor->expandText(QStringLiteral("%{Date:ISO}"), view); + QVERIFY(!out.isEmpty()); + + // Date:yyyy-MM-dd + out = editor->expandText(QStringLiteral("%{Date:yyyy-MM-dd}"), view); + QVERIFY(QDate::fromString(out, QStringLiteral("yyyy-MM-dd")).isValid()); + + // Time:Locale + out = editor->expandText(QStringLiteral("%{Time:Locale}"), view); + QVERIFY(!out.isEmpty()); + + // Time:ISO + out = editor->expandText(QStringLiteral("%{Time:ISO}"), view); + QVERIFY(!out.isEmpty()); + + // Time:hh-mm-ss + out = editor->expandText(QStringLiteral("%{Time:hh-mm-ss}"), view); + QVERIFY(QTime::fromString(out, QStringLiteral("hh-mm-ss")).isValid()); + + // ENV:KTE_ENV_VAR_TEST + qputenv("KTE_ENV_VAR_TEST", "KTE_ENV_VAR_TEST_VALUE"); + out = editor->expandText(QStringLiteral("%{ENV:KTE_ENV_VAR_TEST}"), view); + QCOMPARE(out, QStringLiteral("KTE_ENV_VAR_TEST_VALUE")); + + // JS: + out = editor->expandText(QStringLiteral("%{JS:3 + %{JS:2 + 1}}"), view); + QCOMPARE(out, QStringLiteral("6")); + + // PercentEncoded: since 5.67 + out = editor->expandText(QStringLiteral("%{PercentEncoded:{a&b+c=d} \"}"), view); + QCOMPARE(out, QStringLiteral("%7Ba%26b%2Bc%3Dd%7D%20%22")); + + // UUID + out = editor->expandText(QStringLiteral("%{UUID}"), view); + QCOMPARE(out.count(QLatin1Char('-')), 4); +} + +// kate: indent-mode cstyle; indent-width 4; replace-tabs on; diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/variable_test.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/variable_test.h new file mode 100644 index 0000000000..e6d440821d --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/variable_test.h @@ -0,0 +1,30 @@ +/* + This file is part of the KDE project + SPDX-FileCopyrightText: 2019 Dominik Haumann + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef KTEXTEDITOR_VARIABLE_TEST_H +#define KTEXTEDITOR_VARIABLE_TEST_H + +#include + +class VariableTest : public QObject +{ + Q_OBJECT + +public: + VariableTest(); + ~VariableTest() override; + +private Q_SLOTS: + void testReturnValues(); + void testExactMatch_data(); + void testExactMatch(); + void testPrefixMatch(); + void testRecursiveMatch(); + void testBuiltins(); +}; + +#endif // KTEXTEDITOR_VARIABLE_TEST_H diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/CMakeLists.txt b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/CMakeLists.txt new file mode 100644 index 0000000000..46adf65b19 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/CMakeLists.txt @@ -0,0 +1,35 @@ +set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}) + +include_directories( + ${CMAKE_SOURCE_DIR}/src/vimode +) + +add_library(vimode_base STATIC + base.cpp + fakecodecompletiontestmodel.cpp + emulatedcommandbarsetupandteardown.cpp +) +target_link_libraries(vimode_base PRIVATE KF6TextEditor KF6::Codecs Qt6::Test) + +macro(vimode_unit_test) + add_executable("vimode_${ARGV0}" ${ARGN}) + target_link_libraries("vimode_${ARGV0}" + KF6TextEditor + vimode_base + KF6::I18n + KF6::SyntaxHighlighting + KF6::Codecs + KF6::Completion + KF6::ColorScheme + Qt6::Qml + Qt6::Test) + ecm_mark_as_test("vimode_${ARGV0}") + add_test(NAME "vimode_${ARGV0}" COMMAND "vimode_${ARGV0}" ${OFFSCREEN_QPA}) +endmacro() + +vimode_unit_test(modes modes.cpp) +vimode_unit_test(view view.cpp) +vimode_unit_test(completion completion.cpp) +vimode_unit_test(emulatedcommandbar emulatedcommandbar.cpp) +vimode_unit_test(hlsearch hlsearch.cpp) +vimode_unit_test(keys keys.cpp) diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/base.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/base.cpp new file mode 100644 index 0000000000..55c4c0f559 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/base.cpp @@ -0,0 +1,353 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2014 Miquel Sabaté Solà + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "base.h" +#include "vimode/globalstate.h" +#include "vimode/macros.h" +#include "vimode/mappings.h" +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +using namespace KateVi; +using namespace KTextEditor; + +// BEGIN: BaseTest + +BaseTest::BaseTest() +{ + // test mode with e.g. own temporary config files + QStandardPaths::setTestModeEnabled(true); + + kate_view = nullptr; + kate_document = nullptr; + + mainWindow = new QMainWindow; + auto centralWidget = new QWidget(mainWindow); + mainWindowLayout = new QVBoxLayout(centralWidget); + mainWindow->setCentralWidget(centralWidget); + mainWindow->resize(640, 480); + + m_codesToModifiers = { + {QStringLiteral("ctrl"), CONTROL_MODIFIER}, + {QStringLiteral("alt"), Qt::AltModifier}, + {QStringLiteral("meta"), META_MODIFIER}, + {QStringLiteral("keypad"), Qt::KeypadModifier}, + }; + + m_codesToSpecialKeys = { + {QStringLiteral("backspace"), Qt::Key_Backspace}, + {QStringLiteral("esc"), Qt::Key_Escape}, + {QStringLiteral("return"), Qt::Key_Return}, + {QStringLiteral("enter"), Qt::Key_Enter}, + {QStringLiteral("left"), Qt::Key_Left}, + {QStringLiteral("right"), Qt::Key_Right}, + {QStringLiteral("up"), Qt::Key_Up}, + {QStringLiteral("down"), Qt::Key_Down}, + {QStringLiteral("home"), Qt::Key_Home}, + {QStringLiteral("end"), Qt::Key_End}, + {QStringLiteral("delete"), Qt::Key_Delete}, + {QStringLiteral("insert"), Qt::Key_Insert}, + {QStringLiteral("pageup"), Qt::Key_PageUp}, + {QStringLiteral("pagedown"), Qt::Key_PageDown}, + }; +} + +BaseTest::~BaseTest() +{ + delete kate_document; + delete mainWindow; +} + +void BaseTest::waitForCompletionWidgetToActivate(KTextEditor::ViewPrivate *kate_view) +{ + const QDateTime start = QDateTime::currentDateTime(); + while (start.msecsTo(QDateTime::currentDateTime()) < 1000) { + if (kate_view->isCompletionActive()) { + break; + } + QApplication::processEvents(); + } + QVERIFY(kate_view->isCompletionActive()); +} + +void BaseTest::init() +{ + delete kate_view; + delete kate_document; + + kate_document = new KTextEditor::DocumentPrivate(); + + // fixed indentation options + kate_document->config()->setTabWidth(8); + kate_document->config()->setIndentationWidth(2); + kate_document->config()->setReplaceTabsDyn(false); + + // ensure the spellchecking doesn't mess with the expected results + static_cast(kate_document)->setDefaultDictionary(QStringLiteral("notexistinglanguage")); + + kate_view = new KTextEditor::ViewPrivate(kate_document, mainWindow); + mainWindowLayout->addWidget(kate_view); + kate_view->config()->setValue(KateViewConfig::AutoBrackets, false); + kate_view->setInputMode(View::ViInputMode); + Q_ASSERT(kate_view->currentInputMode()->viewInputMode() == KTextEditor::View::ViInputMode); + vi_input_mode = static_cast(kate_view->currentInputMode()); + vi_input_mode_manager = vi_input_mode->viInputModeManager(); + Q_ASSERT(vi_input_mode_manager); + vi_global = vi_input_mode->globalState(); + Q_ASSERT(vi_global); + kate_document->config()->setShowSpaces(KateDocumentConfig::Trailing); // Flush out some issues in the KateRenderer when rendering spaces. + kate_view->config()->setValue(KateViewConfig::ShowScrollBarMiniMap, false); + kate_view->config()->setValue(KateViewConfig::ShowScrollBarPreview, false); + kate_view->setStatusBarEnabled(false); + + connect(kate_document, &KTextEditor::DocumentPrivate::textInsertedRange, this, &BaseTest::textInserted); + connect(kate_document, &KTextEditor::DocumentPrivate::textRemoved, this, &BaseTest::textRemoved); +} + +void BaseTest::TestPressKey(const QString &str) +{ + if (m_firstBatchOfKeypressesForTest) { + qDebug() << "\n\n>>> running command " << str << " on text " << kate_document->text(); + } else { + qDebug() << "\n>>> running further keypresses " << str << " on text " << kate_document->text(); + } + m_firstBatchOfKeypressesForTest = false; + + for (int i = 0; i < str.length(); i++) { + Qt::KeyboardModifiers keyboard_modifier = Qt::NoModifier; + QString key; + int keyCode = -1; + // Looking for keyboard modifiers + if (str[i] == QLatin1Char('\\')) { + int endOfModifier = -1; + Qt::KeyboardModifier parsedModifier = parseCodedModifier(str, i, &endOfModifier); + int endOfSpecialKey = -1; + Qt::Key parsedSpecialKey = parseCodedSpecialKey(str, i, &endOfSpecialKey); + if (parsedModifier != Qt::NoModifier) { + keyboard_modifier = parsedModifier; + // Move to the character after the '-' in the modifier. + i = endOfModifier + 1; + // Is this a modifier plus special key? + int endOfSpecialKeyAfterModifier = -1; + const Qt::Key parsedCodedSpecialKeyAfterModifier = parseCodedSpecialKey(str, i, &endOfSpecialKeyAfterModifier); + if (parsedCodedSpecialKeyAfterModifier != Qt::Key_unknown) { + key = parsedCodedSpecialKeyAfterModifier <= 0xffff ? QString(char16_t(parsedCodedSpecialKeyAfterModifier)) : QString(); + keyCode = parsedCodedSpecialKeyAfterModifier; + i = endOfSpecialKeyAfterModifier; + } + } else if (parsedSpecialKey != Qt::Key_unknown) { + key = parsedSpecialKey <= 0xffff ? QString(char16_t(parsedSpecialKey)) : QString(); + keyCode = parsedSpecialKey; + i = endOfSpecialKey; + } else if (str.mid(i, 2) == QStringLiteral("\\:")) { + int start_cmd = i + 2; + for (i += 2; true; i++) { + if (str.at(i) == QLatin1Char('\\')) { + if (i + 1 < str.length() && str.at(i + 1) == QLatin1Char('\\')) { + // A backslash within a command; skip. + i += 2; + } else { + // End of command. + break; + } + } + } + const QString commandToExecute = str.mid(start_cmd, i - start_cmd).replace(QLatin1String("\\\\"), QLatin1String("\\")); + qDebug() << "Executing command directly from ViModeTest:\n" << commandToExecute; + vi_input_mode->viModeEmulatedCommandBar()->executeCommand(commandToExecute); + // We've handled the command; go back round the loop, avoiding sending + // the closing \ to vi_input_mode_manager. + continue; + } else if (str.mid(i, 2) == QStringLiteral("\\\\")) { + key = QStringLiteral("\\"); + keyCode = Qt::Key_Backslash; + i++; + } else { + Q_ASSERT(false); // Do not use "\" in tests except for modifiers, command mode (\\:) and literal backslashes "\\\\") + } + } + + if (keyCode == -1) { + key = str[i]; + keyCode = key[0].unicode(); + // Kate Vim mode's internals identifier e.g. CTRL-C by Qt::Key_C plus the control modifier, + // so we need to translate e.g. 'c' to Key_C. + if (key[0].isLetter()) { + if (key[0].toLower() == key[0]) { + keyCode = keyCode - 'a' + Qt::Key_A; + } else { + keyCode = keyCode - 'A' + Qt::Key_A; + keyboard_modifier |= Qt::ShiftModifier; + } + } + } + + QKeyEvent key_event(QEvent::KeyPress, keyCode, keyboard_modifier, key); + // Attempt to simulate how Qt usually sends events - typically, we want to send them + // to kate_view->focusProxy() (which is a KateViewInternal). + QWidget *destWidget = nullptr; + if (QApplication::activePopupWidget()) { + // According to the docs, the activePopupWidget, if present, takes all events. + destWidget = QApplication::activePopupWidget(); + } else if (QApplication::focusWidget()) { + if (QApplication::focusWidget()->focusProxy()) { + destWidget = QApplication::focusWidget()->focusProxy(); + } else { + destWidget = QApplication::focusWidget(); + } + } else { + destWidget = kate_view->focusProxy(); + } + QApplication::sendEvent(destWidget, &key_event); + } +} + +void BaseTest::BeginTest(const QString &original) +{ + vi_input_mode->viInputModeManager()->viEnterNormalMode(); + vi_input_mode->reset(); + vi_input_mode_manager = vi_input_mode->viInputModeManager(); + kate_document->setText(original); + kate_document->undoManager()->clearUndo(); + kate_document->undoManager()->clearRedo(); + kate_view->setCursorPosition(Cursor(0, 0)); + m_firstBatchOfKeypressesForTest = true; +} + +void BaseTest::FinishTest_(int line, const char *file, const char *expected, Expectation expectation, const char *failureReason) +{ + if (expectation == ShouldFail) { + if (!QTest::qExpectFail("", failureReason, QTest::Continue, file, line)) { + return; + } + qDebug() << "Actual text:\n\t" << kate_document->text() << "\nShould be (for this test to pass):\n\t" << expected; + } + if (!QTest::qCompare(kate_document->text(), QString::fromUtf8(expected), "kate_document->text()", "expected_text", file, line)) { + return; + } + Q_ASSERT(!emulatedCommandBarTextEdit()->isVisible() && "Make sure you close the command bar before the end of a test!"); +} + +void BaseTest::DoTest_(int line, + const char *file, + const char *original, + const char *command, + const char *expected, + Expectation expectation, + const char *failureReason) +{ + BeginTest(QString::fromUtf8(original)); + TestPressKey(QString::fromUtf8(command)); + FinishTest_(line, file, expected, expectation, failureReason); +} + +void BaseTest::DoTest2(int line, + const char *file, + const QString &original, + const QString &command, + const QString &expected, + Expectation expectation, + const char *failureReason) +{ + BeginTest(original); + TestPressKey(command); + FinishTest_(line, file, expected.toUtf8().constData(), expectation, failureReason); +} + +Qt::KeyboardModifier BaseTest::parseCodedModifier(const QString &string, int startPos, int *destEndOfCodedModifier) +{ + for (const auto &[code, modifier] : m_codesToModifiers) { + // The "+2" is from the leading '\' and the trailing '-' + if (string.mid(startPos, code.length() + 2) == QStringLiteral("\\") + code + QStringLiteral("-")) { + if (destEndOfCodedModifier) { + // destEndOfCodeModifier lies on the trailing '-'. + *destEndOfCodedModifier = startPos + code.length() + 1; + Q_ASSERT(string[*destEndOfCodedModifier] == QLatin1Char('-')); + } + return modifier; + } + } + return Qt::NoModifier; +} + +Qt::Key BaseTest::parseCodedSpecialKey(const QString &string, int startPos, int *destEndOfCodedKey) +{ + for (const auto &[specialKeyCode, specialKey] : m_codesToSpecialKeys) { + // "+1" is for the leading '\'. + if (string.mid(startPos, specialKeyCode.length() + 1) == QStringLiteral("\\") + specialKeyCode) { + if (destEndOfCodedKey) { + *destEndOfCodedKey = startPos + specialKeyCode.length(); + } + return specialKey; + } + } + return Qt::Key_unknown; +} + +KateVi::EmulatedCommandBar *BaseTest::emulatedCommandBar() +{ + KateVi::EmulatedCommandBar *emulatedCommandBar = vi_input_mode->viModeEmulatedCommandBar(); + Q_ASSERT(emulatedCommandBar); + return emulatedCommandBar; +} + +QLineEdit *BaseTest::emulatedCommandBarTextEdit() +{ + QLineEdit *emulatedCommandBarText = emulatedCommandBar()->findChild(QStringLiteral("commandtext")); + Q_ASSERT(emulatedCommandBarText); + return emulatedCommandBarText; +} + +void BaseTest::ensureKateViewVisible() +{ + mainWindow->show(); + kate_view->show(); + QApplication::setActiveWindow(mainWindow); + kate_view->setFocus(); + const QDateTime startTime = QDateTime::currentDateTime(); + while (startTime.msecsTo(QDateTime::currentDateTime()) < 3000 && !mainWindow->isActiveWindow()) { + QApplication::processEvents(); + } + QVERIFY(kate_view->isVisible()); + QVERIFY(mainWindow->isActiveWindow()); +} + +void BaseTest::clearAllMappings() +{ + vi_global->mappings()->clear(Mappings::NormalModeMapping); + vi_global->mappings()->clear(Mappings::VisualModeMapping); + vi_global->mappings()->clear(Mappings::InsertModeMapping); + vi_global->mappings()->clear(Mappings::CommandModeMapping); +} + +void BaseTest::clearAllMacros() +{ + vi_global->macros()->clear(); +} + +void BaseTest::textInserted(Document *document, KTextEditor::Range range) +{ + m_docChanges.append(DocChange(DocChange::TextInserted, range, document->text(range))); +} + +void BaseTest::textRemoved(Document *document, KTextEditor::Range range) +{ + Q_UNUSED(document); + m_docChanges.append(DocChange(DocChange::TextRemoved, range)); +} + +#include "moc_base.cpp" +// END: BaseTest diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/base.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/base.h new file mode 100644 index 0000000000..44575725fa --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/base.h @@ -0,0 +1,156 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2014 Miquel Sabaté Solà + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef BASE_TEST_H +#define BASE_TEST_H + +#include + +#include + +namespace KTextEditor +{ +class ViewPrivate; +class Document; +class DocumentPrivate; +} +class QMainWindow; +class QVBoxLayout; +class KateViInputMode; + +class QLineEdit; +namespace KateVi +{ +class EmulatedCommandBar; +class GlobalState; +class InputModeManager; +} + +/* Syntactic sugar :P */ +#define DoTest(...) DoTest_(__LINE__, __FILE__, __VA_ARGS__) +#define FinishTest(...) FinishTest_(__LINE__, __FILE__, __VA_ARGS__) + +/// Helper class that represents a change in a document. +class DocChange +{ +public: + enum ChangeType { + TextRemoved, + TextInserted + }; + + DocChange(ChangeType changeType, KTextEditor::Range changeRange, QString newText = QString()) + : m_changeType(changeType) + , m_changeRange(changeRange) + , m_newText(newText) + { + /* There's nothing to do here. */ + } + + ChangeType changeType() const + { + return m_changeType; + } + + KTextEditor::Range changeRange() const + { + return m_changeRange; + } + + QString newText() const + { + return m_newText; + } + +private: + ChangeType m_changeType; + KTextEditor::Range m_changeRange; + QString m_newText; +}; + +class BaseTest : public QObject +{ + Q_OBJECT + +public: + BaseTest(); + ~BaseTest() override; + + static void waitForCompletionWidgetToActivate(KTextEditor::ViewPrivate *kate_view); + +protected: + // Begin/Do/Finish test. + + enum Expectation { + ShouldPass, + ShouldFail + }; + + void TestPressKey(const QString &str); + void BeginTest(const QString &original); + void FinishTest_(int line, const char *file, const char *expected, Expectation expectation = ShouldPass, const char *failureReason = nullptr); + void DoTest_(int line, + const char *file, + const char *original, + const char *command, + const char *expected, + Expectation expectation = ShouldPass, + const char *failureReason = nullptr); + + void DoTest2(int line, + const char *file, + const QString &original, + const QString &command, + const QString &expected, + Expectation expectation = ShouldPass, + const char *failureReason = nullptr); + + // Parsing keys. + + Qt::Key parseCodedSpecialKey(const QString &string, int startPos, int *destEndOfCodedKey); + Qt::KeyboardModifier parseCodedModifier(const QString &string, int startPos, int *destEndOfCodedModifier); + + // Emulated command bar. + + KateVi::EmulatedCommandBar *emulatedCommandBar(); + QLineEdit *emulatedCommandBarTextEdit(); + + // Macros & mappings. + + void clearAllMappings(); + void clearAllMacros(); + + // Other auxiliary functions. + + void ensureKateViewVisible(); + +protected: + KTextEditor::DocumentPrivate *kate_document; + KTextEditor::ViewPrivate *kate_view; + KateViInputMode *vi_input_mode; + KateVi::GlobalState *vi_global; + KateVi::InputModeManager *vi_input_mode_manager; + + bool m_firstBatchOfKeypressesForTest; + + QMainWindow *mainWindow; + QVBoxLayout *mainWindowLayout; + + std::map m_codesToSpecialKeys; + std::map m_codesToModifiers; + + QList m_docChanges; + +protected Q_SLOTS: + void init(); + +private Q_SLOTS: + void textInserted(KTextEditor::Document *document, KTextEditor::Range range); + void textRemoved(KTextEditor::Document *document, KTextEditor::Range range); +}; + +#endif /* BASE_TEST_H */ diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/completion.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/completion.cpp new file mode 100644 index 0000000000..bbf3ba4077 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/completion.cpp @@ -0,0 +1,578 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2014 Miquel Sabaté Solà + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "completion.h" +#include "vimode/globalstate.h" +#include "vimode/mappings.h" +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +using namespace KTextEditor; +using KateVi::Mappings; + +QTEST_MAIN(CompletionTest) + +// BEGIN: VimCodeCompletionTestModel + +VimCodeCompletionTestModel::VimCodeCompletionTestModel(KTextEditor::View *parent) + : KTextEditor::CodeCompletionModel(parent) +{ + setRowCount(3); + parent->setAutomaticInvocationEnabled(true); + // It would add additional items and we don't want that in tests + parent->unregisterCompletionModel(KTextEditor::EditorPrivate::self()->wordCompletionModel()); + parent->registerCompletionModel(this); +} + +QVariant VimCodeCompletionTestModel::data(const QModelIndex &index, int role) const +{ + // Order is important, here, as the completion widget seems to do its own sorting. + const char *completions[] = {"completion1", "completion2", "completion3"}; + if (role == Qt::DisplayRole) { + if (index.column() == Name) { + return QString::fromUtf8(completions[index.row()]); + } + } + return QVariant(); +} + +// END: VimCodeCompletionTestModel + +// BEGIN: CodeCompletionInterface + +FailTestOnInvocationModel::FailTestOnInvocationModel(KTextEditor::View *parent) + : KTextEditor::CodeCompletionModel(parent) +{ + setRowCount(3); + parent->setAutomaticInvocationEnabled(true); + // It would add additional items and we don't want that in tests. + parent->unregisterCompletionModel(EditorPrivate::self()->wordCompletionModel()); + parent->registerCompletionModel(this); +} + +QVariant FailTestOnInvocationModel::data(const QModelIndex &index, int role) const +{ + Q_UNUSED(index); + Q_UNUSED(role); + + failTest(); + return QVariant(); +} + +void FailTestOnInvocationModel::failTest() const +{ + QFAIL("Shouldn't be invoking me!"); +} + +// END: CodeCompletionInterface + +// BEGIN: CompletionTest + +void CompletionTest::FakeCodeCompletionTests() +{ + // Test that FakeCodeCompletionTestModel behaves similar to the code-completion in e.g. KDevelop. + const bool oldStealKeys = KateViewConfig::global()->viInputModeStealKeys(); + KateViewConfig::global()->setValue(KateViewConfig::ViInputModeStealKeys, true); // For Ctrl-P, Ctrl-N etc + ensureKateViewVisible(); // KTextEditor::ViewPrivate needs to be visible for the completion widget. + FakeCodeCompletionTestModel *fakeCodeCompletionModel = new FakeCodeCompletionTestModel(kate_view); + kate_view->registerCompletionModel(fakeCodeCompletionModel); + fakeCodeCompletionModel->setCompletions({QStringLiteral("completionA"), QStringLiteral("completionB"), QStringLiteral("completionC")}); + DoTest("", ("i\\ctrl-p\\enter"), ("completionC")); + DoTest("", ("i\\ctrl-p\\ctrl-p\\enter"), ("completionB")); + DoTest("", ("i\\ctrl-p\\ctrl-p\\ctrl-p\\enter"), ("completionA")); + DoTest("", ("i\\ctrl-p\\ctrl-p\\ctrl-p\\ctrl-p\\enter"), ("completionC")); + // If no word before cursor, don't delete any text. + BeginTest(QString()); + clearTrackedDocumentChanges(); + TestPressKey(QStringLiteral("i\\ctrl- \\enter")); + QCOMPARE(m_docChanges.length(), 1); + FinishTest(("completionA")); + // Apparently, we must delete the word before the cursor upon completion + // (even if we replace it with identical text!) + BeginTest(QStringLiteral("compl")); + TestPressKey(QStringLiteral("ea")); + clearTrackedDocumentChanges(); + TestPressKey(QStringLiteral("\\ctrl- \\enter")); + QCOMPARE(m_docChanges.size(), 2); + QCOMPARE(m_docChanges[0].changeType(), DocChange::TextRemoved); + QCOMPARE(m_docChanges[0].changeRange(), Range(Cursor(0, 0), Cursor(0, 5))); + QCOMPARE(m_docChanges[1].changeType(), DocChange::TextInserted); + QCOMPARE(m_docChanges[1].changeRange(), Range(Cursor(0, 0), Cursor(0, 11))); + QCOMPARE(m_docChanges[1].newText(), QStringLiteral("completionA")); + FinishTest(("completionA")); + // A "word" is currently alphanumeric, plus underscore. + fakeCodeCompletionModel->setCompletions({QStringLiteral("w_123completion")}); + BeginTest(QStringLiteral("(w_123")); + TestPressKey(QStringLiteral("ea")); + clearTrackedDocumentChanges(); + TestPressKey(QStringLiteral("\\ctrl- \\enter")); + QCOMPARE(m_docChanges.size(), 2); + QCOMPARE(m_docChanges[0].changeType(), DocChange::TextRemoved); + QCOMPARE(m_docChanges[0].changeRange(), Range(Cursor(0, 1), Cursor(0, 6))); + QCOMPARE(m_docChanges[1].changeType(), DocChange::TextInserted); + QCOMPARE(m_docChanges[1].changeRange(), Range(Cursor(0, 1), Cursor(0, 16))); + QCOMPARE(m_docChanges[1].newText(), QString(QStringLiteral("w_123completion"))); + FinishTest(("(w_123completion")); + // "Removing tail on complete" is apparently done in three stages: + // delete word up to the cursor; insert new word; then delete remainder. + const bool oldRemoveTailOnCompletion = KateViewConfig::global()->wordCompletionRemoveTail(); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); + fakeCodeCompletionModel->setRemoveTailOnComplete(true); + BeginTest(QStringLiteral("(w_123comp")); + TestPressKey(QStringLiteral("6li")); + clearTrackedDocumentChanges(); + TestPressKey(QStringLiteral("\\ctrl- \\enter")); + FinishTest(("(w_123completion")); + + // If we don't remove tail, just delete up to the cursor and insert. + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, false); + fakeCodeCompletionModel->setRemoveTailOnComplete(false); + BeginTest(QStringLiteral("(w_123comp")); + TestPressKey(QStringLiteral("6li")); + clearTrackedDocumentChanges(); + TestPressKey(QStringLiteral("\\ctrl- \\enter")); + FinishTest("(w_123completioncomp"); + + // If no opening bracket after the cursor, a function taking no arguments + // is added as "function()", and the cursor placed after the closing ")". + // The addition of "function()" is done in two steps: first "function", then "()". + BeginTest(QStringLiteral("object->")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("functionCall()")}); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); + fakeCodeCompletionModel->setRemoveTailOnComplete(true); + clearTrackedDocumentChanges(); + TestPressKey(QStringLiteral("$a\\ctrl- \\enter")); + QCOMPARE(m_docChanges.size(), 2); + QCOMPARE(m_docChanges[0].changeType(), DocChange::TextInserted); + QCOMPARE(m_docChanges[0].changeRange(), Range(Cursor(0, 8), Cursor(0, 20))); + QCOMPARE(m_docChanges[0].newText(), QStringLiteral("functionCall")); + QCOMPARE(m_docChanges[1].changeRange(), Range(Cursor(0, 20), Cursor(0, 22))); + QCOMPARE(m_docChanges[1].newText(), QStringLiteral("()")); + TestPressKey(QStringLiteral("X")); + FinishTest("object->functionCall()X"); + + // If no opening bracket after the cursor, a function taking at least one argument + // is added as "function()", and the cursor placed after the opening "(". + // The addition of "function()" is done in two steps: first "function", then "()". + qDebug() << "Fleep"; + BeginTest(QStringLiteral("object->")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("functionCall(...)")}); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); + fakeCodeCompletionModel->setRemoveTailOnComplete(true); + clearTrackedDocumentChanges(); + TestPressKey(QStringLiteral("$a\\ctrl- \\enter")); + QCOMPARE(m_docChanges.size(), 2); + QCOMPARE(m_docChanges[0].changeType(), DocChange::TextInserted); + QCOMPARE(m_docChanges[0].changeRange(), Range(Cursor(0, 8), Cursor(0, 20))); + QCOMPARE(m_docChanges[0].newText(), QStringLiteral("functionCall")); + QCOMPARE(m_docChanges[1].changeType(), DocChange::TextInserted); + QCOMPARE(m_docChanges[1].changeRange(), Range(Cursor(0, 20), Cursor(0, 22))); + QCOMPARE(m_docChanges[1].newText(), QStringLiteral("()")); + TestPressKey(QStringLiteral("X")); + FinishTest("object->functionCall(X)"); + + // If there is an opening bracket after the cursor, we merge the function call + // with that. + // Even if the function takes no arguments, we still place the cursor after the opening bracket, + // in contrast to the case where there is no opening bracket after the cursor. + // No brackets are added. No removals occur if there is no word before the cursor. + BeginTest(QStringLiteral("object->(")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("functionCall()")}); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); + fakeCodeCompletionModel->setRemoveTailOnComplete(true); + clearTrackedDocumentChanges(); + TestPressKey(QStringLiteral("f(i\\ctrl- \\enter")); + QCOMPARE(m_docChanges.size(), 1); + QCOMPARE(m_docChanges[0].changeType(), DocChange::TextInserted); + QCOMPARE(m_docChanges[0].changeRange(), Range(Cursor(0, 8), Cursor(0, 20))); + QCOMPARE(m_docChanges[0].newText(), QStringLiteral("functionCall")); + TestPressKey(QStringLiteral("X")); + FinishTest("object->functionCall(X"); + + // There can't be any non-whitespace between cursor position and opening bracket, though! + BeginTest(QStringLiteral("object->|( (")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("functionCall()")}); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); + fakeCodeCompletionModel->setRemoveTailOnComplete(true); + clearTrackedDocumentChanges(); + TestPressKey(QStringLiteral("f>a\\ctrl- \\enter")); + QCOMPARE(m_docChanges.size(), 2); + QCOMPARE(m_docChanges[0].changeType(), DocChange::TextInserted); + QCOMPARE(m_docChanges[0].changeRange(), Range(Cursor(0, 8), Cursor(0, 20))); + QCOMPARE(m_docChanges[0].newText(), QStringLiteral("functionCall")); + QCOMPARE(m_docChanges[1].changeRange(), Range(Cursor(0, 20), Cursor(0, 22))); + QCOMPARE(m_docChanges[1].newText(), QStringLiteral("()")); + TestPressKey(QStringLiteral("X")); + FinishTest("object->functionCall()X|( ("); + + // Whitespace before the bracket is fine, though. + BeginTest(QStringLiteral("object-> (<-Cursor here!")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("functionCall()")}); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); + fakeCodeCompletionModel->setRemoveTailOnComplete(true); + clearTrackedDocumentChanges(); + TestPressKey(QStringLiteral("f>a\\ctrl- \\enter")); + QCOMPARE(m_docChanges.size(), 1); + QCOMPARE(m_docChanges[0].changeType(), DocChange::TextInserted); + QCOMPARE(m_docChanges[0].changeRange(), Range(Cursor(0, 8), Cursor(0, 20))); + QCOMPARE(m_docChanges[0].newText(), QStringLiteral("functionCall")); + TestPressKey(QStringLiteral("X")); + FinishTest("object->functionCall (X<-Cursor here!"); + + // Be careful with positioning the cursor if we delete leading text! + BeginTest(QStringLiteral("object-> (<-Cursor here!")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("functionCall()")}); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); + fakeCodeCompletionModel->setRemoveTailOnComplete(true); + clearTrackedDocumentChanges(); + TestPressKey(QStringLiteral("f>afunct")); + clearTrackedDocumentChanges(); + TestPressKey(QStringLiteral("\\ctrl- \\enter")); + QCOMPARE(m_docChanges.size(), 2); + QCOMPARE(m_docChanges[0].changeType(), DocChange::TextRemoved); + QCOMPARE(m_docChanges[0].changeRange(), Range(Cursor(0, 8), Cursor(0, 13))); + QCOMPARE(m_docChanges[1].changeType(), DocChange::TextInserted); + QCOMPARE(m_docChanges[1].changeRange(), Range(Cursor(0, 8), Cursor(0, 20))); + QCOMPARE(m_docChanges[1].newText(), QStringLiteral("functionCall")); + TestPressKey(QStringLiteral("X")); + FinishTest("object->functionCall (X<-Cursor here!"); + + // If we're removing tail on complete, it's whether there is a suitable opening + // bracket *after* the word (not the cursor) that's important. + BeginTest(QStringLiteral("object->function (<-Cursor here!")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("functionCall()")}); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); + fakeCodeCompletionModel->setRemoveTailOnComplete(true); + clearTrackedDocumentChanges(); + TestPressKey(QStringLiteral("12li")); // Start inserting before the "t" in "function" + clearTrackedDocumentChanges(); + TestPressKey(QStringLiteral("\\ctrl- \\enter")); + TestPressKey(QStringLiteral("X")); + FinishTest("object->functionCall (X<-Cursor here!"); + + // Repeat of bracket-merging stuff, this time for functions that take at least one argument. + BeginTest(QStringLiteral("object->(")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("functionCall(...)")}); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); + fakeCodeCompletionModel->setRemoveTailOnComplete(true); + clearTrackedDocumentChanges(); + TestPressKey(QStringLiteral("f(i\\ctrl- \\enter")); + QCOMPARE(m_docChanges.size(), 1); + QCOMPARE(m_docChanges[0].changeType(), DocChange::TextInserted); + qDebug() << "Range: " << m_docChanges[0].changeRange(); + QCOMPARE(m_docChanges[0].changeRange(), Range(Cursor(0, 8), Cursor(0, 20))); + QCOMPARE(m_docChanges[0].newText(), QStringLiteral("functionCall")); + TestPressKey(QStringLiteral("X")); + FinishTest("object->functionCall(X"); + + // There can't be any non-whitespace between cursor position and opening bracket, though! + BeginTest(QStringLiteral("object->|( (")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("functionCall(...)")}); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); + fakeCodeCompletionModel->setRemoveTailOnComplete(true); + clearTrackedDocumentChanges(); + TestPressKey(QStringLiteral("f>a\\ctrl- \\enter")); + QCOMPARE(m_docChanges.size(), 2); + QCOMPARE(m_docChanges[0].changeType(), DocChange::TextInserted); + QCOMPARE(m_docChanges[0].changeRange(), Range(Cursor(0, 8), Cursor(0, 20))); + QCOMPARE(m_docChanges[0].newText(), QStringLiteral("functionCall")); + QCOMPARE(m_docChanges[1].changeRange(), Range(Cursor(0, 20), Cursor(0, 22))); + QCOMPARE(m_docChanges[1].newText(), QStringLiteral("()")); + TestPressKey(QStringLiteral("X")); + FinishTest("object->functionCall(X)|( ("); + + // Whitespace before the bracket is fine, though. + BeginTest(QStringLiteral("object-> (<-Cursor here!")); + qDebug() << "NooooO"; + fakeCodeCompletionModel->setCompletions({QStringLiteral("functionCall(...)")}); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); + fakeCodeCompletionModel->setRemoveTailOnComplete(true); + clearTrackedDocumentChanges(); + TestPressKey(QStringLiteral("f>a\\ctrl- \\enter")); + QCOMPARE(m_docChanges.size(), 1); + QCOMPARE(m_docChanges[0].changeType(), DocChange::TextInserted); + QCOMPARE(m_docChanges[0].changeRange(), Range(Cursor(0, 8), Cursor(0, 20))); + QCOMPARE(m_docChanges[0].newText(), QStringLiteral("functionCall")); + TestPressKey(QStringLiteral("X")); + FinishTest("object->functionCall (X<-Cursor here!"); + + // Be careful with positioning the cursor if we delete leading text! + BeginTest(QStringLiteral("object-> (<-Cursor here!")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("functionCall(...)")}); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); + fakeCodeCompletionModel->setRemoveTailOnComplete(true); + clearTrackedDocumentChanges(); + TestPressKey(QStringLiteral("f>afunct")); + clearTrackedDocumentChanges(); + TestPressKey(QStringLiteral("\\ctrl- \\enter")); + QCOMPARE(m_docChanges.size(), 2); + QCOMPARE(m_docChanges[0].changeType(), DocChange::TextRemoved); + QCOMPARE(m_docChanges[0].changeRange(), Range(Cursor(0, 8), Cursor(0, 13))); + QCOMPARE(m_docChanges[1].changeType(), DocChange::TextInserted); + QCOMPARE(m_docChanges[1].changeRange(), Range(Cursor(0, 8), Cursor(0, 20))); + QCOMPARE(m_docChanges[1].newText(), QStringLiteral("functionCall")); + TestPressKey(QStringLiteral("X")); + FinishTest("object->functionCall (X<-Cursor here!"); + + // If we're removing tail on complete, it's whether there is a suitable opening + // bracket *after* the word (not the cursor) that's important. + BeginTest(QStringLiteral("object->function (<-Cursor here!")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("functionCall(...)")}); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); + fakeCodeCompletionModel->setRemoveTailOnComplete(true); + clearTrackedDocumentChanges(); + TestPressKey(QStringLiteral("12li")); // Start inserting before the "t" in "function" + clearTrackedDocumentChanges(); + TestPressKey(QStringLiteral("\\ctrl- \\enter")); + TestPressKey(QStringLiteral("X")); + FinishTest("object->functionCall (X<-Cursor here!"); + + // Deal with function completions which add a ";". + BeginTest(QString()); + fakeCodeCompletionModel->setCompletions({QStringLiteral("functionCall();")}); + clearTrackedDocumentChanges(); + TestPressKey(QStringLiteral("ifun")); + clearTrackedDocumentChanges(); + TestPressKey(QStringLiteral("\\ctrl- \\enter")); + QCOMPARE(m_docChanges.size(), 3); + QCOMPARE(m_docChanges[0].changeType(), DocChange::TextRemoved); + QCOMPARE(m_docChanges[0].changeRange(), Range(Cursor(0, 0), Cursor(0, 3))); + QCOMPARE(m_docChanges[1].changeType(), DocChange::TextInserted); + QCOMPARE(m_docChanges[1].changeRange(), Range(Cursor(0, 0), Cursor(0, 12))); + QCOMPARE(m_docChanges[1].newText(), QStringLiteral("functionCall")); + QCOMPARE(m_docChanges[2].changeType(), DocChange::TextInserted); + QCOMPARE(m_docChanges[2].changeRange(), Range(Cursor(0, 12), Cursor(0, 15))); + QCOMPARE(m_docChanges[2].newText(), QStringLiteral("();")); + FinishTest("functionCall();"); + + BeginTest(QString()); + fakeCodeCompletionModel->setCompletions({QStringLiteral("functionCall();")}); + TestPressKey(QStringLiteral("ifun\\ctrl- \\enterX")); + FinishTest("functionCall();X"); + + BeginTest(QString()); + fakeCodeCompletionModel->setCompletions({QStringLiteral("functionCall(...);")}); + clearTrackedDocumentChanges(); + TestPressKey(QStringLiteral("ifun")); + clearTrackedDocumentChanges(); + TestPressKey(QStringLiteral("\\ctrl- \\enter")); + QCOMPARE(m_docChanges.size(), 3); + QCOMPARE(m_docChanges[0].changeType(), DocChange::TextRemoved); + QCOMPARE(m_docChanges[0].changeRange(), Range(Cursor(0, 0), Cursor(0, 3))); + QCOMPARE(m_docChanges[1].changeType(), DocChange::TextInserted); + QCOMPARE(m_docChanges[1].changeRange(), Range(Cursor(0, 0), Cursor(0, 12))); + QCOMPARE(m_docChanges[1].newText(), QStringLiteral("functionCall")); + QCOMPARE(m_docChanges[2].changeType(), DocChange::TextInserted); + QCOMPARE(m_docChanges[2].changeRange(), Range(Cursor(0, 12), Cursor(0, 15))); + QCOMPARE(m_docChanges[2].newText(), QStringLiteral("();")); + FinishTest("functionCall();"); + + BeginTest(QString()); + fakeCodeCompletionModel->setCompletions({QStringLiteral("functionCall(...);")}); + TestPressKey(QStringLiteral("ifun\\ctrl- \\enterX")); + FinishTest("functionCall(X);"); + + // Completions ending with ";" do not participate in bracket merging. + BeginTest(QStringLiteral("(<-old bracket")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("functionCall();")}); + TestPressKey(QStringLiteral("ifun\\ctrl- \\enterX")); + FinishTest("functionCall();X(<-old bracket"); + BeginTest(QStringLiteral("(<-old bracket")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("functionCall(...);")}); + TestPressKey(QStringLiteral("ifun\\ctrl- \\enterX")); + FinishTest("functionCall(X);(<-old bracket"); + + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, oldRemoveTailOnCompletion); + KateViewConfig::global()->setValue(KateViewConfig::ViInputModeStealKeys, oldStealKeys); + kate_view->hide(); + mainWindow->hide(); + kate_view->unregisterCompletionModel(fakeCodeCompletionModel); + delete fakeCodeCompletionModel; +} + +void CompletionTest::CompletionTests() +{ + const bool oldRemoveTailOnCompletion = KateViewConfig::global()->wordCompletionRemoveTail(); + // For these tests, assume we don't swallow the tail on completion. + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, false); + + KateViewConfig::global()->setValue(KateViewConfig::ViInputModeStealKeys, true); // For Ctrl-P, Ctrl-N etc + ensureKateViewVisible(); // KTextEditor::ViewPrivate needs to be visible for the completion widget. + VimCodeCompletionTestModel *testModel = new VimCodeCompletionTestModel(kate_view); + + BeginTest(QString()); + TestPressKey(QStringLiteral("i\\ctrl-p")); + waitForCompletionWidgetToActivate(); + TestPressKey(QStringLiteral("\\return")); + FinishTest("completion3"); + + BeginTest(QString()); + TestPressKey(QStringLiteral("i\\ctrl- ")); + waitForCompletionWidgetToActivate(); + TestPressKey(QStringLiteral("\\return")); + FinishTest("completion1"); + + BeginTest(QString()); + TestPressKey(QStringLiteral("i\\ctrl-n")); + waitForCompletionWidgetToActivate(); + TestPressKey(QStringLiteral("\\return")); + FinishTest("completion1"); + + // Test wraps around from top to bottom. + BeginTest(QString()); + TestPressKey(QStringLiteral("i\\ctrl- \\ctrl-p")); + waitForCompletionWidgetToActivate(); + TestPressKey(QStringLiteral("\\return")); + FinishTest("completion3"); + + // Test wraps around from bottom to top. + BeginTest(QString()); + TestPressKey(QStringLiteral("i\\ctrl- \\ctrl-n\\ctrl-n\\ctrl-n")); + waitForCompletionWidgetToActivate(); + TestPressKey(QStringLiteral("\\return")); + FinishTest("completion1"); + + // Test does not re-invoke completion when doing a "." repeat. + BeginTest(QString()); + TestPressKey(QStringLiteral("i\\ctrl- ")); + waitForCompletionWidgetToActivate(); + TestPressKey(QStringLiteral("\\return\\ctrl-c")); + kate_view->unregisterCompletionModel(testModel); + FailTestOnInvocationModel *failsTestOnInvocation = new FailTestOnInvocationModel(kate_view); + TestPressKey(QStringLiteral("gg.")); + FinishTest("completion1completion1"); + kate_view->unregisterCompletionModel(failsTestOnInvocation); + kate_view->registerCompletionModel(testModel); + + // Test that the full completion is repeated when repeat an insert that uses completion, + // where the completion list was not manually invoked. + BeginTest(QString()); + TestPressKey(QStringLiteral("i")); + // Simulate "automatic" invoking of completion. + kate_view->completionWidget()->userInvokedCompletion(); + waitForCompletionWidgetToActivate(); + TestPressKey(QStringLiteral("\\return\\ctrl-cgg.")); + FinishTest("completion1completion1"); + + clearAllMappings(); + // Make sure the "Enter"/ "Return" used when invoking completions is not swallowed before being + // passed to the key mapper. + kate_view->registerCompletionModel(testModel); + vi_global->mappings()->add(Mappings::InsertModeMapping, QStringLiteral("cb"), QStringLiteral("mapped-shouldntbehere"), Mappings::Recursive); + BeginTest(QStringLiteral("")); + TestPressKey(QStringLiteral("ic")); + kate_view->userInvokedCompletion(); + waitForCompletionWidgetToActivate(); + QVERIFY(kate_view->completionWidget()->isCompletionActive()); + TestPressKey(QStringLiteral("\\enterb")); + FinishTest("completion1b"); + BeginTest(QString()); + TestPressKey(QStringLiteral("ic")); + kate_view->userInvokedCompletion(); + waitForCompletionWidgetToActivate(); + QVERIFY(kate_view->completionWidget()->isCompletionActive()); + TestPressKey(QStringLiteral("\\returnb")); + FinishTest("completion1b"); + + // Make sure the completion widget is dismissed on ESC, ctrl-c and ctrl-[. + BeginTest(QString()); + TestPressKey(QStringLiteral("ic")); + kate_view->userInvokedCompletion(); + waitForCompletionWidgetToActivate(); + QVERIFY(kate_view->completionWidget()->isCompletionActive()); + TestPressKey(QStringLiteral("\\esc")); + QVERIFY(!kate_view->completionWidget()->isCompletionActive()); + FinishTest("c"); + BeginTest(QString()); + TestPressKey(QStringLiteral("ic")); + kate_view->userInvokedCompletion(); + waitForCompletionWidgetToActivate(); + QVERIFY(kate_view->completionWidget()->isCompletionActive()); + TestPressKey(QStringLiteral("\\ctrl-c")); + QVERIFY(!kate_view->completionWidget()->isCompletionActive()); + FinishTest("c"); + BeginTest(QString()); + TestPressKey(QStringLiteral("ic")); + kate_view->userInvokedCompletion(); + waitForCompletionWidgetToActivate(); + QVERIFY(kate_view->completionWidget()->isCompletionActive()); + TestPressKey(QStringLiteral("\\ctrl-[")); + QVERIFY(!kate_view->completionWidget()->isCompletionActive()); + FinishTest("c"); + kate_view->unregisterCompletionModel(testModel); + + // Check that the repeat-last-change handles Completions in the same way as Macros do + // i.e. fairly intelligently :) + FakeCodeCompletionTestModel *fakeCodeCompletionModel = new FakeCodeCompletionTestModel(kate_view); + fakeCodeCompletionModel->setRemoveTailOnComplete(true); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); + kate_view->registerCompletionModel(fakeCodeCompletionModel); + clearTrackedDocumentChanges(); + clearAllMacros(); + BeginTest(QStringLiteral("funct\nnoa\ncomtail\ncomtail")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("completionA"), QStringLiteral("functionwithargs(...)"), QStringLiteral("noargfunction()")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + // Record 'a'. + TestPressKey(QStringLiteral("i\\right\\right\\right\\right\\right\\ctrl- \\enterfirstArg")); // Function with args. + TestPressKey(QStringLiteral("\\home\\down\\right\\right\\right\\ctrl- \\enter")); // Function no args. + fakeCodeCompletionModel->setRemoveTailOnComplete(true); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); + TestPressKey(QStringLiteral("\\home\\down\\right\\right\\right\\ctrl- \\enter")); // Cut off tail. + fakeCodeCompletionModel->setRemoveTailOnComplete(false); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, false); + TestPressKey(QStringLiteral("\\home\\down\\right\\right\\right\\ctrl- \\enter\\ctrl-c")); // Don't cut off tail. + fakeCodeCompletionModel->setRemoveTailOnComplete(true); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); + FinishTest("functionwithargs(firstArg)\nnoargfunction()\ncompletionA\ncompletionAtail"); + + // Replay. + fakeCodeCompletionModel->setFailTestOnInvocation(true); + kate_document->setText(QStringLiteral("funct\nnoa\ncomtail\ncomtail")); + clearTrackedDocumentChanges(); + TestPressKey(QStringLiteral("gg.")); + FinishTest("functionwithargs(firstArg)\nnoargfunction()\ncompletionA\ncompletionAtail"); + + // Clear our log of completions for each change. + BeginTest(QString()); + fakeCodeCompletionModel->setCompletions({QStringLiteral("completionA")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("ciw\\ctrl- \\enter\\ctrl-c")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("completionB")}); + TestPressKey(QStringLiteral("ciw\\ctrl- \\enter\\ctrl-c")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + TestPressKey(QStringLiteral(".")); + FinishTest("completionB"); + + kate_view->unregisterCompletionModel(fakeCodeCompletionModel); + delete fakeCodeCompletionModel; + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, oldRemoveTailOnCompletion); + + // Hide the kate_view for subsequent tests. + kate_view->hide(); + mainWindow->hide(); +} + +void CompletionTest::waitForCompletionWidgetToActivate() +{ + BaseTest::waitForCompletionWidgetToActivate(kate_view); +} + +void CompletionTest::clearTrackedDocumentChanges() +{ + m_docChanges.clear(); +} + +#include "moc_completion.cpp" +// END: CompletionTest diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/completion.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/completion.h new file mode 100644 index 0000000000..60c44f9669 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/completion.h @@ -0,0 +1,50 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2014 Miquel Sabaté Solà + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef COMPLETION_TEST_H +#define COMPLETION_TEST_H + +#include "base.h" +#include "fakecodecompletiontestmodel.h" + +/** + * This class handles implements a completion model for the completion + * tests defined in the CompletionTest class. + */ +class VimCodeCompletionTestModel : public KTextEditor::CodeCompletionModel +{ +public: + explicit VimCodeCompletionTestModel(KTextEditor::View *parent); + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; +}; + +/** + * This class implements a completion model used in the CompletionTest class + * to test that code completion is not invoked. + */ +class FailTestOnInvocationModel : public KTextEditor::CodeCompletionModel +{ +public: + explicit FailTestOnInvocationModel(KTextEditor::View *parent); + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; + void failTest() const; +}; + +class CompletionTest : public BaseTest +{ + Q_OBJECT + +private Q_SLOTS: + void FakeCodeCompletionTests(); + void CompletionTests(); + +private: + void waitForCompletionWidgetToActivate(); + void clearTrackedDocumentChanges(); +}; + +#endif /* COMPLETION_TEST_H */ diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/emulatedcommandbar.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/emulatedcommandbar.cpp new file mode 100644 index 0000000000..203112972d --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/emulatedcommandbar.cpp @@ -0,0 +1,3349 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2011 Kuzmich Svyatoslav + SPDX-FileCopyrightText: 2012-2013 Simon St James + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "emulatedcommandbar.h" +#include "emulatedcommandbarsetupandteardown.h" +#include "keys.h" +#include "view.h" +#include "vimode/globalstate.h" +#include "vimode/mappings.h" +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +QTEST_MAIN(EmulatedCommandBarTest) + +using namespace KTextEditor; +using namespace KateVi; + +void EmulatedCommandBarTest::EmulatedCommandBarTests() +{ + // Ensure that some preconditions for these tests are setup, and (more importantly) + // ensure that they are reverted no matter how these tests end. + EmulatedCommandBarSetUpAndTearDown emulatedCommandBarSetUpAndTearDown(vi_input_mode, kate_view, mainWindow); + + // Verify that we can get a non-null pointer to the emulated command bar. + EmulatedCommandBar *emulatedCommandBar = vi_input_mode->viModeEmulatedCommandBar(); + QVERIFY(emulatedCommandBar); + + // Should initially be hidden. + QVERIFY(!emulatedCommandBar->isVisible()); + + // Test that "/" invokes the emulated command bar (if we are configured to use it) + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/")); + QVERIFY(emulatedCommandBar->isVisible()); + QCOMPARE(emulatedCommandTypeIndicator()->text(), QStringLiteral("/")); + QVERIFY(emulatedCommandTypeIndicator()->isVisible()); + QVERIFY(emulatedCommandBarTextEdit()); + QVERIFY(emulatedCommandBarTextEdit()->text().isEmpty()); + // Make sure the keypresses end up changing the text. + QVERIFY(emulatedCommandBarTextEdit()->isVisible()); + TestPressKey(QStringLiteral("foo")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("foo")); + // Make sure ctrl-c dismisses it (assuming we allow Vim to steal the ctrl-c shortcut). + TestPressKey(QStringLiteral("\\ctrl-c")); + QVERIFY(!emulatedCommandBar->isVisible()); + + // Ensure that ESC dismisses it, too. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/")); + QVERIFY(emulatedCommandBar->isVisible()); + TestPressKey(QStringLiteral("\\esc")); + QVERIFY(!emulatedCommandBar->isVisible()); + FinishTest(""); + + // Ensure that Ctrl-[ dismisses it, too. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/")); + QVERIFY(emulatedCommandBar->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-[")); + QVERIFY(!emulatedCommandBar->isVisible()); + FinishTest(""); + + // Ensure that Enter dismisses it, too. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/")); + QVERIFY(emulatedCommandBar->isVisible()); + TestPressKey(QStringLiteral("\\enter")); + QVERIFY(!emulatedCommandBar->isVisible()); + FinishTest(""); + + // Ensure that Return dismisses it, too. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/")); + QVERIFY(emulatedCommandBar->isVisible()); + TestPressKey(QStringLiteral("\\return")); + QVERIFY(!emulatedCommandBar->isVisible()); + FinishTest(""); + + // Ensure that text is always initially empty. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/a\\enter")); + TestPressKey(QStringLiteral("/")); + QVERIFY(emulatedCommandBarTextEdit()->text().isEmpty()); + TestPressKey(QStringLiteral("\\enter")); + FinishTest(""); + + // Check backspace works. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/foo\\backspace")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("fo")); + TestPressKey(QStringLiteral("\\enter")); + FinishTest(""); + + // Check ctrl-h works. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/bar\\ctrl-h")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("ba")); + TestPressKey(QStringLiteral("\\enter")); + FinishTest(""); + + // ctrl-h should dismiss bar when empty. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/\\ctrl-h")); + QVERIFY(!emulatedCommandBar->isVisible()); + FinishTest(""); + + // ctrl-h should not dismiss bar when there is stuff to the left of cursor. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/a\\ctrl-h")); + QVERIFY(emulatedCommandBar->isVisible()); + TestPressKey(QStringLiteral("\\enter")); + FinishTest(""); + + // ctrl-h should not dismiss bar when bar is not empty, even if there is nothing to the left of cursor. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/a\\left\\ctrl-h")); + QVERIFY(emulatedCommandBar->isVisible()); + TestPressKey(QStringLiteral("\\enter")); + FinishTest(""); + + // Same for backspace. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/bar\\backspace")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("ba")); + TestPressKey(QStringLiteral("\\enter")); + FinishTest(""); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/\\backspace")); + QVERIFY(!emulatedCommandBar->isVisible()); + FinishTest(""); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/a\\backspace")); + QVERIFY(emulatedCommandBar->isVisible()); + TestPressKey(QStringLiteral("\\enter")); + FinishTest(""); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/a\\left\\backspace")); + QVERIFY(emulatedCommandBar->isVisible()); + TestPressKey(QStringLiteral("\\enter")); + FinishTest(""); + + // Check ctrl-b works. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/bar foo xyz\\ctrl-bX")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("Xbar foo xyz")); + TestPressKey(QStringLiteral("\\enter")); + FinishTest(""); + + // Check ctrl-e works. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/bar foo xyz\\ctrl-b\\ctrl-eX")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("bar foo xyzX")); + TestPressKey(QStringLiteral("\\enter")); + FinishTest(""); + + // Check ctrl-w works. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/foo bar\\ctrl-w")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("foo ")); + TestPressKey(QStringLiteral("\\enter")); + FinishTest(""); + + // Check ctrl-w works on empty command bar. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/\\ctrl-w")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("")); + TestPressKey(QStringLiteral("\\enter")); + FinishTest(""); + + // Check ctrl-w works in middle of word. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/foo bar\\left\\left\\ctrl-w")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("foo ar")); + TestPressKey(QStringLiteral("\\enter")); + FinishTest(""); + + // Check ctrl-w leaves the cursor in the right place when in the middle of word. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/foo bar\\left\\left\\ctrl-wX")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("foo Xar")); + TestPressKey(QStringLiteral("\\enter")); + FinishTest(""); + + // Check ctrl-w works when at the beginning of the text. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/foo\\left\\left\\left\\ctrl-w")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("foo")); + TestPressKey(QStringLiteral("\\enter")); + FinishTest(""); + + // Check ctrl-w works when the character to the left is a space. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/foo bar \\ctrl-w")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("foo ")); + TestPressKey(QStringLiteral("\\enter")); + FinishTest(""); + + // Check ctrl-w works when all characters to the left of the cursor are spaces. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/ \\ctrl-w")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("")); + TestPressKey(QStringLiteral("\\enter")); + FinishTest(""); + + // Check ctrl-w works when all characters to the left of the cursor are non-spaces. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/foo\\ctrl-w")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("")); + TestPressKey(QStringLiteral("\\enter")); + FinishTest(""); + + // Check ctrl-w does not continue to delete subsequent alphanumerics if the characters to the left of the cursor + // are non-space, non-alphanumerics. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/foo!!!\\ctrl-w")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("foo")); + TestPressKey(QStringLiteral("\\enter")); + FinishTest(""); + // Check ctrl-w does not continue to delete subsequent alphanumerics if the characters to the left of the cursor + // are non-space, non-alphanumerics. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/foo!!!\\ctrl-w")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("foo")); + TestPressKey(QStringLiteral("\\enter")); + FinishTest(""); + + // Check ctrl-w deletes underscores and alphanumerics to the left of the cursor, but stops when it reaches a + // character that is none of these. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/foo!!!_d1\\ctrl-w")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("foo!!!")); + TestPressKey(QStringLiteral("\\enter")); + FinishTest(""); + + // Check ctrl-w doesn't swallow the spaces preceding the block of non-word chars. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/foo !!!\\ctrl-w")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("foo ")); + TestPressKey(QStringLiteral("\\enter")); + FinishTest(""); + + // Check ctrl-w doesn't swallow the spaces preceding the word. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/foo 1d_\\ctrl-w")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("foo ")); + TestPressKey(QStringLiteral("\\enter")); + FinishTest(""); + + // Check there is a "waiting for register" indicator, initially hidden. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/")); + QLabel *waitingForRegisterIndicator = emulatedCommandBar->findChild(QStringLiteral("waitingforregisterindicator")); + QVERIFY(waitingForRegisterIndicator); + QVERIFY(!waitingForRegisterIndicator->isVisible()); + QCOMPARE(waitingForRegisterIndicator->text(), QStringLiteral("\"")); + TestPressKey(QStringLiteral("\\enter")); + FinishTest(""); + + // Test that ctrl-r causes it to become visible. It is displayed to the right of the text edit. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/\\ctrl-r")); + QVERIFY(waitingForRegisterIndicator->isVisible()); + QVERIFY(waitingForRegisterIndicator->x() >= emulatedCommandBarTextEdit()->x() + emulatedCommandBarTextEdit()->width()); + TestPressKey(QStringLiteral("\\ctrl-c")); + TestPressKey(QStringLiteral("\\ctrl-c")); + FinishTest(""); + + // The first ctrl-c after ctrl-r (when no register entered) hides the waiting for register + // indicator, but not the bar. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/\\ctrl-r")); + QVERIFY(waitingForRegisterIndicator->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-c")); + QVERIFY(!waitingForRegisterIndicator->isVisible()); + QVERIFY(emulatedCommandBar->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss the bar. + FinishTest(""); + + // The first ctrl-c after ctrl-r (when no register entered) aborts waiting for register. + BeginTest(QStringLiteral("foo")); + TestPressKey(QStringLiteral("\"cyiw/\\ctrl-r\\ctrl-ca")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("a")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss the bar. + FinishTest("foo"); + + // Same as above, but for ctrl-[ instead of ctrl-c. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/\\ctrl-r")); + QVERIFY(waitingForRegisterIndicator->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-[")); + QVERIFY(!waitingForRegisterIndicator->isVisible()); + QVERIFY(emulatedCommandBar->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss the bar. + FinishTest(""); + BeginTest(QStringLiteral("foo")); + TestPressKey(QStringLiteral("\"cyiw/\\ctrl-r\\ctrl-[a")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("a")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss the bar. + FinishTest("foo"); + + // Check ctrl-r works with registers, and hides the "waiting for register" indicator. + BeginTest(QStringLiteral("xyz")); + TestPressKey(QStringLiteral("\"ayiw/foo\\ctrl-ra")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("fooxyz")); + QVERIFY(!waitingForRegisterIndicator->isVisible()); + TestPressKey(QStringLiteral("\\enter")); + FinishTest("xyz"); + + // Check ctrl-r inserts text at the current cursor position. + BeginTest(QStringLiteral("xyz")); + TestPressKey(QStringLiteral("\"ayiw/foo\\left\\ctrl-ra")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("foxyzo")); + TestPressKey(QStringLiteral("\\enter")); + FinishTest("xyz"); + + // Check ctrl-r ctrl-w inserts word under the cursor, and hides the "waiting for register" indicator. + BeginTest(QStringLiteral("foo bar xyz")); + TestPressKey(QStringLiteral("w/\\left\\ctrl-r\\ctrl-w")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("bar")); + QVERIFY(!waitingForRegisterIndicator->isVisible()); + TestPressKey(QStringLiteral("\\enter")); + FinishTest("foo bar xyz"); + + // Check ctrl-r ctrl-w doesn't insert the contents of register w! + BeginTest(QStringLiteral("foo baz xyz")); + TestPressKey(QStringLiteral("\"wyiww/\\left\\ctrl-r\\ctrl-w")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("baz")); + TestPressKey(QStringLiteral("\\enter")); + FinishTest("foo baz xyz"); + + // Check ctrl-r ctrl-w inserts at the current cursor position. + BeginTest(QStringLiteral("foo nose xyz")); + TestPressKey(QStringLiteral("w/bar\\left\\ctrl-r\\ctrl-w")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("banoser")); + TestPressKey(QStringLiteral("\\enter")); + FinishTest("foo nose xyz"); + + // Cursor position is at the end of the inserted text after ctrl-r ctrl-w. + BeginTest(QStringLiteral("foo nose xyz")); + TestPressKey(QStringLiteral("w/bar\\left\\ctrl-r\\ctrl-wX")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("banoseXr")); + TestPressKey(QStringLiteral("\\enter")); + FinishTest("foo nose xyz"); + + // Cursor position is at the end of the inserted register contents after ctrl-r. + BeginTest(QStringLiteral("xyz")); + TestPressKey(QStringLiteral("\"ayiw/foo\\left\\ctrl-raX")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("foxyzXo")); + TestPressKey(QStringLiteral("\\enter")); + FinishTest("xyz"); + + // Insert clipboard contents on ctrl-r +. We implicitly need to test the ability to handle + // shift key key events when waiting for register (they should be ignored). + BeginTest(QStringLiteral("xyz")); + QApplication::clipboard()->setText(QStringLiteral("vimodetestclipboardtext")); + TestPressKey(QStringLiteral("/\\ctrl-r")); + QKeyEvent *shiftKeyDown = new QKeyEvent(QEvent::KeyPress, Qt::Key_Shift, Qt::NoModifier); + QApplication::postEvent(emulatedCommandBarTextEdit(), shiftKeyDown); + QApplication::sendPostedEvents(); + TestPressKey(QStringLiteral("+")); + QKeyEvent *shiftKeyUp = new QKeyEvent(QEvent::KeyPress, Qt::Key_Shift, Qt::NoModifier); + QApplication::postEvent(emulatedCommandBarTextEdit(), shiftKeyUp); + QApplication::sendPostedEvents(); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("vimodetestclipboardtext")); + TestPressKey(QStringLiteral("\\enter")); + FinishTest("xyz"); + + // Similarly, test that we can press "ctrl" after ctrl-r without it being taken for a register. + BeginTest(QStringLiteral("wordundercursor")); + TestPressKey(QStringLiteral("/\\ctrl-r")); + QKeyEvent *ctrlKeyDown = new QKeyEvent(QEvent::KeyPress, Qt::Key_Control, Qt::NoModifier); + QApplication::postEvent(emulatedCommandBarTextEdit(), ctrlKeyDown); + QApplication::sendPostedEvents(); + QKeyEvent *ctrlKeyUp = new QKeyEvent(QEvent::KeyRelease, Qt::Key_Control, Qt::NoModifier); + QApplication::postEvent(emulatedCommandBarTextEdit(), ctrlKeyUp); + QApplication::sendPostedEvents(); + QVERIFY(waitingForRegisterIndicator->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-w")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("wordundercursor")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss the bar. + FinishTest("wordundercursor"); + + // Begin tests for ctrl-g, which is almost identical to ctrl-r save that the contents, when added, + // are escaped for searching. + // Normal register contents/ word under cursor are added as normal. + BeginTest(QStringLiteral("wordinregisterb wordundercursor")); + TestPressKey(QStringLiteral("\"byiw")); + TestPressKey(QStringLiteral("/\\ctrl-g")); + QVERIFY(waitingForRegisterIndicator->isVisible()); + QVERIFY(waitingForRegisterIndicator->x() >= emulatedCommandBarTextEdit()->x() + emulatedCommandBarTextEdit()->width()); + TestPressKey(QStringLiteral("b")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("wordinregisterb")); + QVERIFY(!waitingForRegisterIndicator->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-c\\ctrl-cw/\\ctrl-g\\ctrl-w")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("wordundercursor")); + QVERIFY(!waitingForRegisterIndicator->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-c")); + TestPressKey(QStringLiteral("\\ctrl-c")); + FinishTest("wordinregisterb wordundercursor"); + + // \'s must be escaped when inserted via ctrl-g. + DoTest("foo a\\b\\\\c\\\\\\d", "wYb/\\ctrl-g0\\enterrX", "foo X\\b\\\\c\\\\\\d"); + // $'s must be escaped when inserted via ctrl-g. + DoTest("foo a$b", "wYb/\\ctrl-g0\\enterrX", "foo X$b"); + DoTest("foo a$b$c", "wYb/\\ctrl-g0\\enterrX", "foo X$b$c"); + DoTest("foo a\\$b\\$c", "wYb/\\ctrl-g0\\enterrX", "foo X\\$b\\$c"); + // ^'s must be escaped when inserted via ctrl-g. + DoTest("foo a^b", "wYb/\\ctrl-g0\\enterrX", "foo X^b"); + DoTest("foo a^b^c", "wYb/\\ctrl-g0\\enterrX", "foo X^b^c"); + DoTest("foo a\\^b\\^c", "wYb/\\ctrl-g0\\enterrX", "foo X\\^b\\^c"); + // .'s must be escaped when inserted via ctrl-g. + DoTest("foo axb a.b", "wwYgg/\\ctrl-g0\\enterrX", "foo axb X.b"); + DoTest("foo a\\xb Na\\.b", "fNlYgg/\\ctrl-g0\\enterrX", "foo a\\xb NX\\.b"); + // *'s must be escaped when inserted via ctrl-g + DoTest("foo axxxxb ax*b", "wwYgg/\\ctrl-g0\\enterrX", "foo axxxxb Xx*b"); + DoTest("foo a\\xxxxb Na\\x*X", "fNlYgg/\\ctrl-g0\\enterrX", "foo a\\xxxxb NX\\x*X"); + // /'s must be escaped when inserted via ctrl-g. + DoTest("foo a a/b", "wwYgg/\\ctrl-g0\\enterrX", "foo a X/b"); + DoTest("foo a a/b/c", "wwYgg/\\ctrl-g0\\enterrX", "foo a X/b/c"); + DoTest("foo a a\\/b\\/c", "wwYgg/\\ctrl-g0\\enterrX", "foo a X\\/b\\/c"); + // ['s and ]'s must be escaped when inserted via ctrl-g. + DoTest("foo axb a[xyz]b", "wwYgg/\\ctrl-g0\\enterrX", "foo axb X[xyz]b"); + DoTest("foo a[b", "wYb/\\ctrl-g0\\enterrX", "foo X[b"); + DoTest("foo a[b[c", "wYb/\\ctrl-g0\\enterrX", "foo X[b[c"); + DoTest("foo a\\[b\\[c", "wYb/\\ctrl-g0\\enterrX", "foo X\\[b\\[c"); + DoTest("foo a]b", "wYb/\\ctrl-g0\\enterrX", "foo X]b"); + DoTest("foo a]b]c", "wYb/\\ctrl-g0\\enterrX", "foo X]b]c"); + DoTest("foo a\\]b\\]c", "wYb/\\ctrl-g0\\enterrX", "foo X\\]b\\]c"); + // Test that expressions involving {'s and }'s work when inserted via ctrl-g. + DoTest("foo {", "wYgg/\\ctrl-g0\\enterrX", "foo X"); + DoTest("foo }", "wYgg/\\ctrl-g0\\enterrX", "foo X"); + DoTest("foo aaaaa \\aaaaa a\\{5}", "WWWYgg/\\ctrl-g0\\enterrX", "foo aaaaa \\aaaaa X\\{5}"); + DoTest("foo }", "wYgg/\\ctrl-g0\\enterrX", "foo X"); + // Transform newlines into "\\n" when inserted via ctrl-g. + DoTest(" \nfoo\nfoo\nxyz\nbar\n123", "jjvjjllygg/\\ctrl-g0\\enterrX", " \nfoo\nXoo\nxyz\nbar\n123"); + DoTest(" \nfoo\nfoo\nxyz\nbar\n123", "jjvjjllygg/\\ctrl-g0/e\\enterrX", " \nfoo\nfoo\nxyz\nbaX\n123"); + // Don't do any escaping for ctrl-r, though. + BeginTest(QStringLiteral("foo .*$^\\/")); + TestPressKey(QStringLiteral("wY/\\ctrl-r0")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral(".*$^\\/")); + TestPressKey(QStringLiteral("\\ctrl-c")); + TestPressKey(QStringLiteral("\\ctrl-c")); + FinishTest("foo .*$^\\/"); + // Ensure that the flag that says "next register insertion should be escaped for searching" + // is cleared if we do ctrl-g but then abort with ctrl-c. + DoTest("foo a$b", "/\\ctrl-g\\ctrl-c\\ctrl-cwYgg/\\ctrl-r0\\enterrX", "Xoo a$b"); + + // Ensure that we actually perform a search while typing. + BeginTest(QStringLiteral("abcd")); + TestPressKey(QStringLiteral("/c")); + verifyCursorAt(Cursor(0, 2)); + TestPressKey(QStringLiteral("\\enter")); + FinishTest("abcd"); + + // Ensure that the search is from the cursor. + BeginTest(QStringLiteral("acbcd")); + TestPressKey(QStringLiteral("ll/c")); + verifyCursorAt(Cursor(0, 3)); + TestPressKey(QStringLiteral("\\enter")); + FinishTest("acbcd"); + + // Reset the cursor to the original position on Ctrl-C + BeginTest(QStringLiteral("acbcd")); + TestPressKey(QStringLiteral("ll/c\\ctrl-crX")); + FinishTest("acXcd"); + + // Reset the cursor to the original position on Ctrl-[ + BeginTest(QStringLiteral("acbcd")); + TestPressKey(QStringLiteral("ll/c\\ctrl-[rX")); + FinishTest("acXcd"); + + // Reset the cursor to the original position on ESC + BeginTest(QStringLiteral("acbcd")); + TestPressKey(QStringLiteral("ll/c\\escrX")); + FinishTest("acXcd"); + + // *Do not* reset the cursor to the original position on Enter. + BeginTest(QStringLiteral("acbcd")); + TestPressKey(QStringLiteral("ll/c\\enterrX")); + FinishTest("acbXd"); + + // *Do not* reset the cursor to the original position on Return. + BeginTest(QStringLiteral("acbcd")); + TestPressKey(QStringLiteral("ll/c\\returnrX")); + FinishTest("acbXd"); + + // Should work with mappings. + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("'testmapping"), QStringLiteral("/crX"), Mappings::Recursive); + BeginTest(QStringLiteral("acbcd")); + TestPressKey(QStringLiteral("'testmapping")); + FinishTest("aXbcd"); + clearAllMappings(); + // Don't send keys that were part of a mapping to the emulated command bar. + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("H"), QStringLiteral("/a"), Mappings::Recursive); + BeginTest(QStringLiteral("foo a aH")); + TestPressKey(QStringLiteral("H\\enterrX")); + FinishTest("foo X aH"); + clearAllMappings(); + + // Incremental searching from the original position. + BeginTest(QStringLiteral("foo bar foop fool food")); + TestPressKey(QStringLiteral("ll/foo")); + verifyCursorAt(Cursor(0, 8)); + TestPressKey(QStringLiteral("l")); + verifyCursorAt(Cursor(0, 13)); + TestPressKey(QStringLiteral("\\backspace")); + verifyCursorAt(Cursor(0, 8)); + TestPressKey(QStringLiteral("\\enter")); + FinishTest("foo bar foop fool food"); + + // End up back at the start if no match found + BeginTest(QStringLiteral("foo bar foop fool food")); + TestPressKey(QStringLiteral("ll/fool")); + verifyCursorAt(Cursor(0, 13)); + TestPressKey(QStringLiteral("\\backspacex")); + verifyCursorAt(Cursor(0, 2)); + TestPressKey(QStringLiteral("\\enter")); + FinishTest("foo bar foop fool food"); + + // Wrap around if no match found. + BeginTest(QStringLiteral("afoom bar foop fool food")); + TestPressKey(QStringLiteral("lll/foom")); + verifyCursorAt(Cursor(0, 1)); + TestPressKey(QStringLiteral("\\enter")); + FinishTest("afoom bar foop fool food"); + + // SmartCase: match case-insensitively if the search text is all lower-case. + DoTest("foo BaR", "ll/bar\\enterrX", "foo XaR"); + + // SmartCase: match case-sensitively if the search text is mixed case. + DoTest("foo BaR bAr", "ll/bAr\\enterrX", "foo BaR XAr"); + + // Assume regex by default. + DoTest("foo bwibblear", "ll/b.*ar\\enterrX", "foo Xwibblear"); + + // Set the last search pattern. + DoTest("foo bar", "ll/bar\\enterggnrX", "foo Xar"); + + // Make sure the last search pattern is a regex, too. + DoTest("foo bwibblear", "ll/b.*ar\\enterggnrX", "foo Xwibblear"); + + // 'n' should search case-insensitively if the original search was case-insensitive. + DoTest("foo bAR", "ll/bar\\enterggnrX", "foo XAR"); + + // 'n' should search case-sensitively if the original search was case-sensitive. + DoTest("foo bar bAR", "ll/bAR\\enterggnrX", "foo bar XAR"); + + // 'N' should search case-insensitively if the original search was case-insensitive. + DoTest("foo bAR xyz", "ll/bar\\enter$NrX", "foo XAR xyz"); + + // 'N' should search case-sensitively if the original search was case-sensitive. + DoTest("foo bAR bar", "ll/bAR\\enter$NrX", "foo XAR bar"); + + // Don't forget to set the last search to case-insensitive. + DoTest("foo bAR bar", "ll/bAR\\enter^/bar\\enter^nrX", "foo XAR bar"); + + // Usage of \C for manually specifying case sensitivity. + // Strip occurrences of "\C" from the pattern to find. + DoTest("foo bar", "/\\\\Cba\\\\Cr\\enterrX", "foo Xar"); + // Be careful about escaping, though! + DoTest("foo \\Cba\\Cr", "/\\\\\\\\Cb\\\\Ca\\\\\\\\C\\\\C\\\\Cr\\enterrX", "foo XCba\\Cr"); + // The item added to the search history should contain all the original \C's. + clearSearchHistory(); + BeginTest(QStringLiteral("foo \\Cba\\Cr")); + TestPressKey(QStringLiteral("/\\\\\\\\Cb\\\\Ca\\\\\\\\C\\\\C\\\\Cr\\enterrX")); + QCOMPARE(searchHistory().constFirst(), QStringLiteral("\\\\Cb\\Ca\\\\C\\C\\Cr")); + FinishTest("foo XCba\\Cr"); + // If there is an escaped C, assume case sensitivity. + DoTest("foo bAr BAr bar", "/ba\\\\Cr\\enterrX", "foo bAr BAr Xar"); + // The last search pattern should be the last search with escaped C's stripped. + DoTest("foo \\Cbar\nfoo \\Cbar", "/\\\\\\\\Cba\\\\C\\\\Cr\\enterggjnrX", "foo \\Cbar\nfoo XCbar"); + // If the last search pattern had an escaped "\C", then the next search should be case-sensitive. + DoTest("foo bar\nfoo bAr BAr bar", "/ba\\\\Cr\\enterggjnrX", "foo bar\nfoo bAr BAr Xar"); + + // Don't set the last search parameters if we abort, though. + DoTest("foo bar xyz", "/bar\\enter/xyz\\ctrl-cggnrX", "foo Xar xyz"); + DoTest("foo bar bAr", "/bar\\enter/bA\\ctrl-cggnrX", "foo Xar bAr"); + DoTest("foo bar bar", "/bar\\enter?ba\\ctrl-cggnrX", "foo Xar bar"); + + // Don't let ":" trample all over the search parameters, either. + DoTest("foo bar xyz foo", "/bar\\entergg*:yank\\enterggnrX", "foo bar xyz Xoo"); + + // Some mirror tests for "?" + + // Test that "?" summons the search bar, with empty text and with the "?" indicator. + QVERIFY(!emulatedCommandBar->isVisible()); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("?")); + QVERIFY(emulatedCommandBar->isVisible()); + QCOMPARE(emulatedCommandTypeIndicator()->text(), QStringLiteral("?")); + QVERIFY(emulatedCommandTypeIndicator()->isVisible()); + QVERIFY(emulatedCommandBarTextEdit()); + QVERIFY(emulatedCommandBarTextEdit()->text().isEmpty()); + TestPressKey(QStringLiteral("\\enter")); + FinishTest(""); + + // Search backwards. + DoTest("foo foo bar foo foo", "ww?foo\\enterrX", "foo Xoo bar foo foo"); + + // Reset cursor if we find nothing. + BeginTest(QStringLiteral("foo foo bar foo foo")); + TestPressKey(QStringLiteral("ww?foo")); + verifyCursorAt(Cursor(0, 4)); + TestPressKey(QStringLiteral("d")); + verifyCursorAt(Cursor(0, 8)); + TestPressKey(QStringLiteral("\\enter")); + FinishTest("foo foo bar foo foo"); + + // Wrap to the end if we find nothing. + DoTest("foo foo bar xyz xyz", "ww?xyz\\enterrX", "foo foo bar xyz Xyz"); + + // Specify that the last was backwards when using '?' + DoTest("foo foo bar foo foo", "ww?foo\\enter^wwnrX", "foo Xoo bar foo foo"); + + // ... and make sure we do the equivalent with "/" + BeginTest(QStringLiteral("foo foo bar foo foo")); + TestPressKey(QStringLiteral("ww?foo\\enter^ww/foo")); + QCOMPARE(emulatedCommandTypeIndicator()->text(), QStringLiteral("/")); + TestPressKey(QStringLiteral("\\enter^wwnrX")); + FinishTest("foo foo bar Xoo foo"); + + // If we are at the beginning of a word, that word is not the first match in a search + // for that word. + DoTest("foo foo foo", "w/foo\\enterrX", "foo foo Xoo"); + DoTest("foo foo foo", "w?foo\\enterrX", "Xoo foo foo"); + // When searching backwards, ensure we can find a match whose range includes the starting cursor position, + // if we allow it to wrap around. + DoTest("foo foofoofoo bar", "wlll?foofoofoo\\enterrX", "foo Xoofoofoo bar"); + // When searching backwards, ensure we can find a match whose range includes the starting cursor position, + // even if we don't allow it to wrap around. + DoTest("foo foofoofoo foofoofoo", "wlll?foofoofoo\\enterrX", "foo Xoofoofoo foofoofoo"); + // The same, but where we the match ends at the end of the line or document. + DoTest("foo foofoofoo\nfoofoofoo", "wlll?foofoofoo\\enterrX", "foo Xoofoofoo\nfoofoofoo"); + DoTest("foo foofoofoo", "wlll?foofoofoo\\enterrX", "foo Xoofoofoo"); + + // Searching forwards for just "/" repeats last search. + DoTest("foo bar", "/bar\\entergg//\\enterrX", "foo Xar"); + // The "last search" can be one initiated via e.g. "*". + DoTest("foo bar foo", "/bar\\entergg*gg//\\enterrX", "foo bar Xoo"); + // Searching backwards for just "?" repeats last search. + DoTest("foo bar bar", "/bar\\entergg??\\enterrX", "foo bar Xar"); + // Search forwards treats "?" as a literal. + DoTest("foo ?ba?r", "/?ba?r\\enterrX", "foo Xba?r"); + // As always, be careful with escaping! + DoTest("foo ?ba\\?r", "/?ba\\\\\\\\\\\\?r\\enterrX", "foo Xba\\?r"); + // Searching forwards for just "?" finds literal question marks. + DoTest("foo ??", "/?\\enterrX", "foo X?"); + // Searching backwards for just "/" finds literal forward slashes. + DoTest("foo //", "?/\\enterrX", "foo /X"); + // Searching forwards, stuff after (and including) an unescaped "/" is ignored. + DoTest("foo ba bar bar/xyz", "/bar/xyz\\enterrX", "foo ba Xar bar/xyz"); + // Needs to be unescaped, though! + DoTest("foo bar bar/xyz", "/bar\\\\/xyz\\enterrX", "foo bar Xar/xyz"); + DoTest("foo bar bar\\/xyz", "/bar\\\\\\\\/xyz\\enterrX", "foo bar Xar\\/xyz"); + // Searching backwards, stuff after (and including) an unescaped "?" is ignored. + DoTest("foo bar bar?xyz bar ba", "?bar?xyz\\enterrX", "foo bar bar?xyz Xar ba"); + // Needs to be unescaped, though! + DoTest("foo bar bar?xyz bar ba", "?bar\\\\?xyz\\enterrX", "foo bar Xar?xyz bar ba"); + DoTest("foo bar bar\\?xyz bar ba", "?bar\\\\\\\\?xyz\\enterrX", "foo bar Xar\\?xyz bar ba"); + // If, in a forward search, the first character after the first unescaped "/" is an e, then + // we place the cursor at the end of the word. + DoTest("foo ba bar bar/eyz", "/bar/e\\enterrX", "foo ba baX bar/eyz"); + // Needs to be unescaped, though! + DoTest("foo bar bar/eyz", "/bar\\\\/e\\enterrX", "foo bar Xar/eyz"); + DoTest("foo bar bar\\/xyz", "/bar\\\\\\\\/e\\enterrX", "foo bar barX/xyz"); + // If, in a backward search, the first character after the first unescaped "?" is an e, then + // we place the cursor at the end of the word. + DoTest("foo bar bar?eyz bar ba", "?bar?e\\enterrX", "foo bar bar?eyz baX ba"); + // Needs to be unescaped, though! + DoTest("foo bar bar?eyz bar ba", "?bar\\\\?e\\enterrX", "foo bar Xar?eyz bar ba"); + DoTest("foo bar bar\\?eyz bar ba", "?bar\\\\\\\\?e\\enterrX", "foo bar barX?eyz bar ba"); + // Quick check that repeating the last search and placing the cursor at the end of the match works. + DoTest("foo bar bar", "/bar\\entergg//e\\enterrX", "foo baX bar"); + DoTest("foo bar bar", "?bar\\entergg??e\\enterrX", "foo bar baX"); + // When repeating a change, don't try to convert from Vim to Qt regex again. + DoTest("foo bar()", "/bar()\\entergg//e\\enterrX", "foo bar(X"); + DoTest("foo bar()", "?bar()\\entergg??e\\enterrX", "foo bar(X"); + // If the last search said that we should place the cursor at the end of the match, then + // do this with n & N. + DoTest("foo bar bar foo", "/bar/e\\enterggnrX", "foo baX bar foo"); + DoTest("foo bar bar foo", "/bar/e\\enterggNrX", "foo bar baX foo"); + // Don't do this if that search was aborted, though. + DoTest("foo bar bar foo", "/bar\\enter/bar/e\\ctrl-cggnrX", "foo Xar bar foo"); + DoTest("foo bar bar foo", "/bar\\enter/bar/e\\ctrl-cggNrX", "foo bar Xar foo"); + // "#" and "*" reset the "place cursor at the end of the match" to false. + DoTest("foo bar bar foo", "/bar/e\\enterggw*nrX", "foo Xar bar foo"); + DoTest("foo bar bar foo", "/bar/e\\enterggw#nrX", "foo Xar bar foo"); + + // "/" and "?" should be usable as motions. + DoTest("foo bar", "ld/bar\\enter", "fbar"); + // They are not linewise. + DoTest("foo bar\nxyz", "ld/yz\\enter", "fyz"); + DoTest("foo bar\nxyz", "jld?oo\\enter", "fyz"); + // Should be usable in Visual Mode without aborting Visual Mode. + DoTest("foo bar", "lv/bar\\enterd", "far"); + // Same for ?. + DoTest("foo bar", "$hd?oo\\enter", "far"); + DoTest("foo bar", "$hv?oo\\enterd", "fr"); + DoTest("foo bar", "lv?bar\\enterd", "far"); + // If we abort the "/" / "?" motion, the command should be aborted, too. + DoTest("foo bar", "d/bar\\esc", "foo bar"); + DoTest("foo bar", "d/bar\\ctrl-c", "foo bar"); + DoTest("foo bar", "d/bar\\ctrl-[", "foo bar"); + // We should be able to repeat a command using "/" or "?" as the motion. + DoTest("foo bar bar bar", "d/bar\\enter.", "bar bar"); + // The "synthetic" Enter keypress should not be logged as part of the command to be repeated. + DoTest("foo bar bar bar\nxyz", "d/bar\\enter.rX", "Xar bar\nxyz"); + // Counting. + DoTest("foo bar bar bar", "2/bar\\enterrX", "foo bar Xar bar"); + // Counting with wraparound. + DoTest("foo bar bar bar", "4/bar\\enterrX", "foo Xar bar bar"); + // Counting in Visual Mode. + DoTest("foo bar bar bar", "v2/bar\\enterd", "ar bar"); + // Should update the selection in Visual Mode as we search. + BeginTest(QStringLiteral("foo bar bbc")); + TestPressKey(QStringLiteral("vl/b")); + QCOMPARE(kate_view->selectionText(), QStringLiteral("foo b")); + TestPressKey(QStringLiteral("b")); + QCOMPARE(kate_view->selectionText(), QStringLiteral("foo bar b")); + TestPressKey(QStringLiteral("\\ctrl-h")); + QCOMPARE(kate_view->selectionText(), QStringLiteral("foo b")); + TestPressKey(QStringLiteral("notexists")); + QCOMPARE(kate_view->selectionText(), QStringLiteral("fo")); + TestPressKey(QStringLiteral("\\enter")); // Dismiss bar. + QCOMPARE(kate_view->selectionText(), QStringLiteral("fo")); + FinishTest("foo bar bbc"); + BeginTest(QStringLiteral("foo\nxyz\nbar\nbbc")); + TestPressKey(QStringLiteral("Vj/b")); + QCOMPARE(kate_view->selectionText(), QStringLiteral("foo\nxyz\nbar")); + TestPressKey(QStringLiteral("b")); + QCOMPARE(kate_view->selectionText(), QStringLiteral("foo\nxyz\nbar\nbbc")); + TestPressKey(QStringLiteral("\\ctrl-h")); + QCOMPARE(kate_view->selectionText(), QStringLiteral("foo\nxyz\nbar")); + TestPressKey(QStringLiteral("notexists")); + QCOMPARE(kate_view->selectionText(), QStringLiteral("foo\nxyz")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest("foo\nxyz\nbar\nbbc"); + // Dismissing the search bar in visual mode should leave original selection. + BeginTest(QStringLiteral("foo bar bbc")); + TestPressKey(QStringLiteral("vl/\\ctrl-c")); + QCOMPARE(kate_view->selectionText(), QStringLiteral("fo")); + FinishTest("foo bar bbc"); + BeginTest(QStringLiteral("foo bar bbc")); + TestPressKey(QStringLiteral("vl?\\ctrl-c")); + QCOMPARE(kate_view->selectionText(), QStringLiteral("fo")); + FinishTest("foo bar bbc"); + BeginTest(QStringLiteral("foo bar bbc")); + TestPressKey(QStringLiteral("vl/b\\ctrl-c")); + QCOMPARE(kate_view->selectionText(), QStringLiteral("fo")); + FinishTest("foo bar bbc"); + BeginTest(QStringLiteral("foo\nbar\nbbc")); + TestPressKey(QStringLiteral("Vl/b\\ctrl-c")); + QCOMPARE(kate_view->selectionText(), QStringLiteral("foo")); + FinishTest("foo\nbar\nbbc"); + + // Search-highlighting tests. + const QColor searchHighlightColour = kate_view->rendererConfig()->searchHighlightColor(); + BeginTest(QStringLiteral("foo bar xyz")); + + // Sanity test. + const QList rangesInitial = rangesOnFirstLine(); + Q_ASSERT(rangesInitial.isEmpty() && "Assumptions about ranges are wrong - this test is invalid and may need updating!"); + FinishTest("foo bar xyz"); + + // Test highlighting single character match. + BeginTest(QStringLiteral("foo bar xyz")); + TestPressKey(QStringLiteral("/b")); + QCOMPARE(rangesOnFirstLine().size(), rangesInitial.size() + 1); + QCOMPARE(rangesOnFirstLine().constFirst()->attribute()->background().color(), searchHighlightColour); + QCOMPARE(rangesOnFirstLine().constFirst()->start().line(), 0); + QCOMPARE(rangesOnFirstLine().constFirst()->start().column(), 4); + QCOMPARE(rangesOnFirstLine().constFirst()->end().line(), 0); + QCOMPARE(rangesOnFirstLine().constFirst()->end().column(), 5); + TestPressKey(QStringLiteral("\\enter")); + FinishTest("foo bar xyz"); + + // Test highlighting two character match. + BeginTest(QStringLiteral("foo bar xyz")); + TestPressKey(QStringLiteral("/ba")); + QCOMPARE(rangesOnFirstLine().size(), rangesInitial.size() + 1); + QCOMPARE(rangesOnFirstLine().constFirst()->start().line(), 0); + QCOMPARE(rangesOnFirstLine().constFirst()->start().column(), 4); + QCOMPARE(rangesOnFirstLine().constFirst()->end().line(), 0); + QCOMPARE(rangesOnFirstLine().constFirst()->end().column(), 6); + TestPressKey(QStringLiteral("\\enter")); + FinishTest("foo bar xyz"); + + // Test no highlighting if no longer a match. + BeginTest(QStringLiteral("foo bar xyz")); + TestPressKey(QStringLiteral("/baz")); + QCOMPARE(rangesOnFirstLine().size(), rangesInitial.size()); + TestPressKey(QStringLiteral("\\enter")); + FinishTest("foo bar xyz"); + + // Test highlighting on wraparound. + BeginTest(QStringLiteral(" foo bar xyz")); + TestPressKey(QStringLiteral("ww/foo")); + QCOMPARE(rangesOnFirstLine().size(), rangesInitial.size() + 1); + QCOMPARE(rangesOnFirstLine().constFirst()->start().line(), 0); + QCOMPARE(rangesOnFirstLine().constFirst()->start().column(), 1); + QCOMPARE(rangesOnFirstLine().constFirst()->end().line(), 0); + QCOMPARE(rangesOnFirstLine().constFirst()->end().column(), 4); + TestPressKey(QStringLiteral("\\enter")); + FinishTest(" foo bar xyz"); + + // Test highlighting backwards + BeginTest(QStringLiteral("foo bar xyz")); + TestPressKey(QStringLiteral("$?ba")); + QCOMPARE(rangesOnFirstLine().size(), rangesInitial.size() + 1); + QCOMPARE(rangesOnFirstLine().constFirst()->start().line(), 0); + QCOMPARE(rangesOnFirstLine().constFirst()->start().column(), 4); + QCOMPARE(rangesOnFirstLine().constFirst()->end().line(), 0); + QCOMPARE(rangesOnFirstLine().constFirst()->end().column(), 6); + TestPressKey(QStringLiteral("\\enter")); + FinishTest("foo bar xyz"); + + // Test no highlighting when no match is found searching backwards + BeginTest(QStringLiteral("foo bar xyz")); + TestPressKey(QStringLiteral("$?baz")); + QCOMPARE(rangesOnFirstLine().size(), rangesInitial.size()); + TestPressKey(QStringLiteral("\\enter")); + FinishTest("foo bar xyz"); + + // Test highlight when wrapping around after searching backwards. + BeginTest(QStringLiteral("foo bar xyz")); + TestPressKey(QStringLiteral("w?xyz")); + QCOMPARE(rangesOnFirstLine().size(), rangesInitial.size() + 1); + QCOMPARE(rangesOnFirstLine().constFirst()->start().line(), 0); + QCOMPARE(rangesOnFirstLine().constFirst()->start().column(), 8); + QCOMPARE(rangesOnFirstLine().constFirst()->end().line(), 0); + QCOMPARE(rangesOnFirstLine().constFirst()->end().column(), 11); + TestPressKey(QStringLiteral("\\enter")); + FinishTest("foo bar xyz"); + + // Test no highlighting when bar is dismissed. + DoTest("foo bar xyz", "/bar\\ctrl-c", "foo bar xyz"); + QCOMPARE(rangesOnFirstLine().size(), rangesInitial.size()); + DoTest("foo bar xyz", ":set-nohls\\enter/bar\\enter", "foo bar xyz"); + QCOMPARE(rangesOnFirstLine().size(), rangesInitial.size()); + DoTest("foo bar xyz", "/bar\\ctrl-[", "foo bar xyz"); + QCOMPARE(rangesOnFirstLine().size(), rangesInitial.size()); + DoTest("foo bar xyz", ":set-nohls\\enter/bar\\return", "foo bar xyz"); + QCOMPARE(rangesOnFirstLine().size(), rangesInitial.size()); + DoTest("foo bar xyz", "/bar\\esc", "foo bar xyz"); + QCOMPARE(rangesOnFirstLine().size(), rangesInitial.size()); + + // Update colour on config change. + BeginTest(QStringLiteral("foo bar xyz")); + TestPressKey(QStringLiteral("/xyz")); + const QColor newSearchHighlightColour = QColor(255, 0, 0); + kate_view->rendererConfig()->setSearchHighlightColor(newSearchHighlightColour); + QCOMPARE(rangesOnFirstLine().size(), rangesInitial.size() + 1); + QCOMPARE(rangesOnFirstLine().constFirst()->attribute()->background().color(), newSearchHighlightColour); + TestPressKey(QStringLiteral("\\enter")); + FinishTest("foo bar xyz"); + + // Set the background colour appropriately. + KColorScheme currentColorScheme(QPalette::Normal); + const QColor normalBackgroundColour = QPalette().brush(QPalette::Base).color(); + const QColor matchBackgroundColour = currentColorScheme.background(KColorScheme::PositiveBackground).color(); + const QColor noMatchBackgroundColour = currentColorScheme.background(KColorScheme::NegativeBackground).color(); + BeginTest(QStringLiteral("foo bar xyz")); + TestPressKey(QStringLiteral("/xyz")); + verifyTextEditBackgroundColour(matchBackgroundColour); + TestPressKey(QStringLiteral("a")); + verifyTextEditBackgroundColour(noMatchBackgroundColour); + TestPressKey(QStringLiteral("\\ctrl-w")); + verifyTextEditBackgroundColour(normalBackgroundColour); + TestPressKey(QStringLiteral("/xyz\\enter/")); + verifyTextEditBackgroundColour(normalBackgroundColour); + TestPressKey(QStringLiteral("\\enter")); + FinishTest("foo bar xyz"); + + // Escape regex's in a Vim-ish style. + // Unescaped ( and ) are always literals. + DoTest("foo bar( xyz", "/bar(\\enterrX", "foo Xar( xyz"); + DoTest("foo bar) xyz", "/bar)\\enterrX", "foo Xar) xyz"); + // + is literal, unless it is already escaped. + DoTest("foo bar+ xyz", "/bar+ \\enterrX", "foo Xar+ xyz"); + DoTest(" foo+AAAAbar", "/foo+A\\\\+bar\\enterrX", " Xoo+AAAAbar"); + DoTest(" foo++++bar", "/foo+\\\\+bar\\enterrX", " Xoo++++bar"); + DoTest(" foo++++bar", "/+\\enterrX", " fooX+++bar"); + // An escaped "\" is a literal, of course. + DoTest("foo x\\y", "/x\\\\\\\\y\\enterrX", "foo X\\y"); + // ( and ), if escaped, are not literals. + DoTest("foo barbarxyz", "/ \\\\(bar\\\\)\\\\+xyz\\enterrX", "foo Xbarbarxyz"); + // Handle escaping correctly if we have an escaped and unescaped bracket next to each other. + DoTest("foo x(A)y", "/x(\\\\(.\\\\))y\\enterrX", "foo X(A)y"); + // |, if unescaped, is literal. + DoTest("foo |bar", "/|\\enterrX", "foo Xbar"); + // |, if escaped, is not a literal. + DoTest("foo xfoo\\y xbary", "/x\\\\(foo\\\\|bar\\\\)y\\enterrX", "foo xfoo\\y Xbary"); + // A single [ is a literal. + DoTest("foo bar[", "/bar[\\enterrX", "foo Xar["); + // A single ] is a literal. + DoTest("foo bar]", "/bar]\\enterrX", "foo Xar]"); + // A matching [ and ] are *not* literals. + DoTest("foo xbcay", "/x[abc]\\\\+y\\enterrX", "foo Xbcay"); + DoTest("foo xbcay", "/[abc]\\\\+y\\enterrX", "foo xXcay"); + DoTest("foo xbaadcdcy", "/x[ab]\\\\+[cd]\\\\+y\\enterrX", "foo Xbaadcdcy"); + // Need to be an unescaped match, though. + DoTest("foo xbcay", "/x[abc\\\\]\\\\+y\\enterrX", "Xoo xbcay"); + DoTest("foo xbcay", "/x\\\\[abc]\\\\+y\\enterrX", "Xoo xbcay"); + DoTest("foo x[abc]]]]]y", "/x\\\\[abc]\\\\+y\\enterrX", "foo X[abc]]]]]y"); + // An escaped '[' between matching unescaped '[' and ']' is treated as a literal '[' + DoTest("foo xb[cay", "/x[a\\\\[bc]\\\\+y\\enterrX", "foo Xb[cay"); + // An escaped ']' between matching unescaped '[' and ']' is treated as a literal ']' + DoTest("foo xb]cay", "/x[a\\\\]bc]\\\\+y\\enterrX", "foo Xb]cay"); + // An escaped '[' not between other square brackets is a literal. + DoTest("foo xb[cay", "/xb\\\\[\\enterrX", "foo Xb[cay"); + DoTest("foo xb[cay", "/\\\\[ca\\enterrX", "foo xbXcay"); + // An escaped ']' not between other square brackets is a literal. + DoTest("foo xb]cay", "/xb\\\\]\\enterrX", "foo Xb]cay"); + DoTest("foo xb]cay", "/\\\\]ca\\enterrX", "foo xbXcay"); + // An unescaped '[' not between other square brackets is a literal. + DoTest("foo xbaba[y", "/x[ab]\\\\+[y\\enterrX", "foo Xbaba[y"); + DoTest("foo xbaba[dcdcy", "/x[ab]\\\\+[[cd]\\\\+y\\enterrX", "foo Xbaba[dcdcy"); + // An unescaped ']' not between other square brackets is a literal. + DoTest("foo xbaba]y", "/x[ab]\\\\+]y\\enterrX", "foo Xbaba]y"); + DoTest("foo xbaba]dcdcy", "/x[ab]\\\\+][cd]\\\\+y\\enterrX", "foo Xbaba]dcdcy"); + // Be more clever about how we identify escaping: the presence of a preceding + // backslash is not always sufficient! + DoTest("foo x\\babay", "/x\\\\\\\\[ab]\\\\+y\\enterrX", "foo X\\babay"); + DoTest("foo x\\[abc]]]]y", "/x\\\\\\\\\\\\[abc]\\\\+y\\enterrX", "foo X\\[abc]]]]y"); + DoTest("foo xa\\b\\c\\y", "/x[abc\\\\\\\\]\\\\+y\\enterrX", "foo Xa\\b\\c\\y"); + DoTest("foo x[abc\\]]]]y", "/x[abc\\\\\\\\\\\\]\\\\+y\\enterrX", "foo X[abc\\]]]]y"); + DoTest("foo xa[\\b\\[y", "/x[ab\\\\\\\\[]\\\\+y\\enterrX", "foo Xa[\\b\\[y"); + DoTest("foo x\\[y", "/x\\\\\\\\[y\\enterrX", "foo X\\[y"); + DoTest("foo x\\]y", "/x\\\\\\\\]y\\enterrX", "foo X\\]y"); + DoTest("foo x\\+y", "/x\\\\\\\\+y\\enterrX", "foo X\\+y"); + // A dot is not a literal, nor is a star. + DoTest("foo bar", "/o.*b\\enterrX", "fXo bar"); + // Escaped dots and stars are literals, though. + DoTest("foo xay x.y", "/x\\\\.y\\enterrX", "foo xay X.y"); + DoTest("foo xaaaay xa*y", "/xa\\\\*y\\enterrX", "foo xaaaay Xa*y"); + // Unescaped curly braces are literals. + DoTest("foo x{}y", "/x{}y\\enterrX", "foo X{}y"); + // Escaped curly brackets are quantifers. + DoTest("foo xaaaaay", "/xa\\\\{5\\\\}y\\enterrX", "foo Xaaaaay"); + // Matching curly brackets where only the first is escaped are also quantifiers. + DoTest("foo xaaaaaybbbz", "/xa\\\\{5}yb\\\\{3}z\\enterrX", "foo Xaaaaaybbbz"); + // Make sure it really is escaped, though! + DoTest("foo xa\\{5}", "/xa\\\\\\\\{5}\\enterrX", "foo Xa\\{5}"); + // Don't crash if the first character is a } + DoTest("foo aaaaay", "/{\\enterrX", "Xoo aaaaay"); + // Vim's '\<' and '\>' map, roughly, to Qt's '\b' + DoTest("foo xbar barx bar", "/bar\\\\>\\enterrX", "foo xXar barx bar"); + DoTest("foo xbar barx bar", "/\\\\\\enterrX", "foo xbar barx Xar "); + DoTest("foo xbar barx bar", "/\\\\\\enterrX", "foo xbar barx Xar"); + DoTest("foo xbar barx\nbar", "/\\\\\\enterrX", "foo xbar barx\nXar"); + // Escaped "^" and "$" are treated as literals. + DoTest("foo x^$y", "/x\\\\^\\\\$y\\enterrX", "foo X^$y"); + // Ensure that it is the escaped version of the pattern that is recorded as the last search pattern. + DoTest("foo bar( xyz", "/bar(\\enterggnrX", "foo Xar( xyz"); + + // Don't log keypresses sent to the emulated command bar as commands to be repeated via "."! + DoTest("foo", "/diw\\enterciwbar\\ctrl-c.", "bar"); + + // Don't leave Visual mode on aborting a search. + DoTest("foo bar", "vw/\\ctrl-cd", "ar"); + DoTest("foo bar", "vw/\\ctrl-[d", "ar"); + + // Don't crash on leaving Visual Mode on aborting a search. This is perhaps the most opaque regression + // test ever; what it's testing for is the situation where the synthetic keypress issue by the emulated + // command bar on the "ctrl-[" is sent to the key mapper. This in turn converts it into a weird character + // which is then, upon not being recognised as part of a mapping, sent back around the keypress processing, + // where it ends up being sent to the emulated command bar's text edit, which in turn issues a "text changed" + // event where the text is still empty, which tries to move the cursor to (-1, -1), which causes a crash deep + // within Kate. So, in a nutshell: this test ensures that the keymapper never handles the synthetic keypress :) + DoTest("", "ifoo\\ctrl-cv/\\ctrl-[", "foo"); + + // History auto-completion tests. + clearSearchHistory(); + QVERIFY(searchHistory().isEmpty()); + vi_global->searchHistory()->append(QStringLiteral("foo")); + vi_global->searchHistory()->append(QStringLiteral("bar")); + QCOMPARE(searchHistory(), QStringList() << QStringLiteral("foo") << QStringLiteral("bar")); + clearSearchHistory(); + QVERIFY(searchHistory().isEmpty()); + + // Ensure current search bar text is added to the history if we press enter. + DoTest("foo bar", "/bar\\enter", "foo bar"); + DoTest("foo bar", "/xyz\\enter", "foo bar"); + QCOMPARE(searchHistory(), QStringList() << QStringLiteral("bar") << QStringLiteral("xyz")); + // Interesting - Vim adds the search bar text to the history even if we abort via e.g. ctrl-c, ctrl-[, etc. + clearSearchHistory(); + DoTest("foo bar", "/baz\\ctrl-[", "foo bar"); + QCOMPARE(searchHistory(), QStringList() << QStringLiteral("baz")); + clearSearchHistory(); + DoTest("foo bar", "/foo\\esc", "foo bar"); + QCOMPARE(searchHistory(), QStringList() << QStringLiteral("foo")); + clearSearchHistory(); + DoTest("foo bar", "/nose\\ctrl-c", "foo bar"); + QCOMPARE(searchHistory(), QStringList() << QStringLiteral("nose")); + + clearSearchHistory(); + vi_global->searchHistory()->append(QStringLiteral("foo")); + vi_global->searchHistory()->append(QStringLiteral("bar")); + QVERIFY(emulatedCommandBarCompleter() != nullptr); + BeginTest(QStringLiteral("foo bar")); + TestPressKey(QStringLiteral("/\\ctrl-p")); + verifyCommandBarCompletionVisible(); + // Make sure the completion appears in roughly the correct place: this is a little fragile :/ + const QPoint completerRectTopLeft = emulatedCommandBarCompleter()->popup()->mapToGlobal(emulatedCommandBarCompleter()->popup()->rect().topLeft()); + const QPoint barEditBottomLeft = emulatedCommandBarTextEdit()->mapToGlobal(emulatedCommandBarTextEdit()->rect().bottomLeft()); + QCOMPARE(completerRectTopLeft.x(), barEditBottomLeft.x()); + QVERIFY(qAbs(completerRectTopLeft.y() - barEditBottomLeft.y()) <= 1); + // Will activate the current completion item, activating the search, and dismissing the bar. + TestPressKey(QStringLiteral("\\enter")); + QVERIFY(!emulatedCommandBarCompleter()->popup()->isVisible()); + // Close the command bar. + FinishTest("foo bar"); + + // Don't show completion with an empty search bar. + clearSearchHistory(); + vi_global->searchHistory()->append(QStringLiteral("foo")); + BeginTest(QStringLiteral("foo bar")); + TestPressKey(QStringLiteral("/")); + QVERIFY(!emulatedCommandBarCompleter()->popup()->isVisible()); + TestPressKey(QStringLiteral("\\enter")); + FinishTest("foo bar"); + + // Don't auto-complete, either. + clearSearchHistory(); + vi_global->searchHistory()->append(QStringLiteral("foo")); + BeginTest(QStringLiteral("foo bar")); + TestPressKey(QStringLiteral("/f")); + QVERIFY(!emulatedCommandBarCompleter()->popup()->isVisible()); + TestPressKey(QStringLiteral("\\enter")); + FinishTest("foo bar"); + + clearSearchHistory(); + vi_global->searchHistory()->append(QStringLiteral("xyz")); + vi_global->searchHistory()->append(QStringLiteral("bar")); + QVERIFY(emulatedCommandBarCompleter() != nullptr); + BeginTest(QStringLiteral("foo bar")); + TestPressKey(QStringLiteral("/\\ctrl-p")); + QCOMPARE(emulatedCommandBarCompleter()->currentCompletion(), QStringLiteral("bar")); + TestPressKey(QStringLiteral("\\enter")); // Dismiss bar. + FinishTest("foo bar"); + + clearSearchHistory(); + vi_global->searchHistory()->append(QStringLiteral("xyz")); + vi_global->searchHistory()->append(QStringLiteral("bar")); + vi_global->searchHistory()->append(QStringLiteral("foo")); + QVERIFY(emulatedCommandBarCompleter() != nullptr); + BeginTest(QStringLiteral("foo bar")); + TestPressKey(QStringLiteral("/\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("foo")); + QCOMPARE(emulatedCommandBarCompleter()->currentCompletion(), QStringLiteral("foo")); + QCOMPARE(emulatedCommandBarCompleter()->popup()->currentIndex().row(), 0); + TestPressKey(QStringLiteral("\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("bar")); + QCOMPARE(emulatedCommandBarCompleter()->currentCompletion(), QStringLiteral("bar")); + QCOMPARE(emulatedCommandBarCompleter()->popup()->currentIndex().row(), 1); + TestPressKey(QStringLiteral("\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("xyz")); + QCOMPARE(emulatedCommandBarCompleter()->currentCompletion(), QStringLiteral("xyz")); + QCOMPARE(emulatedCommandBarCompleter()->popup()->currentIndex().row(), 2); + TestPressKey(QStringLiteral("\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("foo")); + QCOMPARE(emulatedCommandBarCompleter()->currentCompletion(), QStringLiteral("foo")); // Wrap-around + QCOMPARE(emulatedCommandBarCompleter()->popup()->currentIndex().row(), 0); + TestPressKey(QStringLiteral("\\enter")); // Dismiss bar. + FinishTest("foo bar"); + + clearSearchHistory(); + vi_global->searchHistory()->append(QStringLiteral("xyz")); + vi_global->searchHistory()->append(QStringLiteral("bar")); + vi_global->searchHistory()->append(QStringLiteral("foo")); + QVERIFY(emulatedCommandBarCompleter() != nullptr); + BeginTest(QStringLiteral("foo bar")); + TestPressKey(QStringLiteral("/\\ctrl-n")); + verifyCommandBarCompletionVisible(); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("xyz")); + QCOMPARE(emulatedCommandBarCompleter()->currentCompletion(), QStringLiteral("xyz")); + QCOMPARE(emulatedCommandBarCompleter()->popup()->currentIndex().row(), 2); + TestPressKey(QStringLiteral("\\ctrl-n")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("bar")); + QCOMPARE(emulatedCommandBarCompleter()->currentCompletion(), QStringLiteral("bar")); + QCOMPARE(emulatedCommandBarCompleter()->popup()->currentIndex().row(), 1); + TestPressKey(QStringLiteral("\\ctrl-n")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("foo")); + QCOMPARE(emulatedCommandBarCompleter()->currentCompletion(), QStringLiteral("foo")); + QCOMPARE(emulatedCommandBarCompleter()->popup()->currentIndex().row(), 0); + TestPressKey(QStringLiteral("\\ctrl-n")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("xyz")); + QCOMPARE(emulatedCommandBarCompleter()->currentCompletion(), QStringLiteral("xyz")); // Wrap-around. + QCOMPARE(emulatedCommandBarCompleter()->popup()->currentIndex().row(), 2); + TestPressKey(QStringLiteral("\\enter")); // Dismiss bar. + FinishTest("foo bar"); + + clearSearchHistory(); + vi_global->searchHistory()->append(QStringLiteral("xyz")); + vi_global->searchHistory()->append(QStringLiteral("bar")); + vi_global->searchHistory()->append(QStringLiteral("foo")); + BeginTest(QStringLiteral("foo bar")); + TestPressKey(QStringLiteral("/\\ctrl-n\\ctrl-n")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("bar")); + TestPressKey(QStringLiteral("\\enter")); // Dismiss bar. + FinishTest("foo bar"); + + // If we add something to the history, remove any earliest occurrences (this is what Vim appears to do) + // and append to the end. + clearSearchHistory(); + vi_global->searchHistory()->append(QStringLiteral("bar")); + vi_global->searchHistory()->append(QStringLiteral("xyz")); + vi_global->searchHistory()->append(QStringLiteral("foo")); + vi_global->searchHistory()->append(QStringLiteral("xyz")); + QCOMPARE(searchHistory(), QStringList() << QStringLiteral("bar") << QStringLiteral("foo") << QStringLiteral("xyz")); + + // Push out older entries if we have too many search items in the history. + const int HISTORY_SIZE_LIMIT = 100; + clearSearchHistory(); + for (int i = 1; i <= HISTORY_SIZE_LIMIT; i++) { + vi_global->searchHistory()->append(QStringLiteral("searchhistoryitem %1").arg(i)); + } + QCOMPARE(searchHistory().size(), HISTORY_SIZE_LIMIT); + QCOMPARE(searchHistory().constFirst(), QStringLiteral("searchhistoryitem 1")); + QCOMPARE(searchHistory().last(), QStringLiteral("searchhistoryitem 100")); + vi_global->searchHistory()->append(QStringLiteral("searchhistoryitem %1").arg(HISTORY_SIZE_LIMIT + 1)); + QCOMPARE(searchHistory().size(), HISTORY_SIZE_LIMIT); + QCOMPARE(searchHistory().constFirst(), QStringLiteral("searchhistoryitem 2")); + QCOMPARE(searchHistory().last(), QStringLiteral("searchhistoryitem %1").arg(HISTORY_SIZE_LIMIT + 1)); + + // Don't add empty searches to the history. + clearSearchHistory(); + DoTest("foo bar", "/\\enter", "foo bar"); + QVERIFY(searchHistory().isEmpty()); + + // "*" and "#" should add the relevant word to the search history, enclosed between \< and \> + clearSearchHistory(); + BeginTest(QStringLiteral("foo bar")); + TestPressKey(QStringLiteral("*")); + QVERIFY(!searchHistory().isEmpty()); + QCOMPARE(searchHistory().last(), QStringLiteral("\\")); + TestPressKey(QStringLiteral("w#")); + QCOMPARE(searchHistory().size(), 2); + QCOMPARE(searchHistory().last(), QStringLiteral("\\")); + + // Auto-complete words from the document on ctrl-space. + // Test that we can actually find a single word and add it to the list of completions. + BeginTest(QStringLiteral("foo")); + TestPressKey(QStringLiteral("/\\ctrl- ")); + verifyCommandBarCompletionVisible(); + QCOMPARE(emulatedCommandBarCompleter()->currentCompletion(), QStringLiteral("foo")); + TestPressKey(QStringLiteral("\\enter\\enter")); // Dismiss completion, then bar. + FinishTest("foo"); + + // Count digits and underscores as being part of a word. + BeginTest(QStringLiteral("foo_12")); + TestPressKey(QStringLiteral("/\\ctrl- ")); + verifyCommandBarCompletionVisible(); + QCOMPARE(emulatedCommandBarCompleter()->currentCompletion(), QStringLiteral("foo_12")); + TestPressKey(QStringLiteral("\\enter\\enter")); // Dismiss completion, then bar. + FinishTest("foo_12"); + + // This feels a bit better to me, usability-wise: in the special case of completion from document, where + // the completion list is manually summoned, allow one to press Enter without the bar being dismissed + // (just dismiss the completion list instead). + BeginTest(QStringLiteral("foo_12")); + TestPressKey(QStringLiteral("/\\ctrl- \\ctrl-p\\enter")); + QVERIFY(emulatedCommandBar->isVisible()); + QVERIFY(!emulatedCommandBarCompleter()->popup()->isVisible()); + TestPressKey(QStringLiteral("\\enter")); // Dismiss bar. + FinishTest("foo_12"); + + // Check that we can find multiple words on one line. + BeginTest(QStringLiteral("bar (foo) [xyz]")); + TestPressKey(QStringLiteral("/\\ctrl- ")); + QStringListModel *completerStringListModel = static_cast(emulatedCommandBarCompleter()->model()); + Q_ASSERT(completerStringListModel); + QCOMPARE(completerStringListModel->stringList(), QStringList() << QStringLiteral("bar") << QStringLiteral("foo") << QStringLiteral("xyz")); + TestPressKey(QStringLiteral("\\enter\\enter")); // Dismiss completion, then bar. + FinishTest("bar (foo) [xyz]"); + + // Check that we arrange the found words in case-insensitive sorted order. + BeginTest(QStringLiteral("D c e a b f")); + TestPressKey(QStringLiteral("/\\ctrl- ")); + verifyCommandBarCompletionsMatches(QStringList() << QStringLiteral("a") << QStringLiteral("b") << QStringLiteral("c") << QStringLiteral("D") + << QStringLiteral("e") << QStringLiteral("f")); + TestPressKey(QStringLiteral("\\enter\\enter")); // Dismiss completion, then bar. + FinishTest("D c e a b f"); + + // Check that we don't include the same word multiple times. + BeginTest(QStringLiteral("foo bar bar bar foo")); + TestPressKey(QStringLiteral("/\\ctrl- ")); + verifyCommandBarCompletionsMatches(QStringList() << QStringLiteral("bar") << QStringLiteral("foo")); + TestPressKey(QStringLiteral("\\enter\\enter")); // Dismiss completion, then bar. + FinishTest("foo bar bar bar foo"); + + // Check that we search only a narrow portion of the document, around the cursor (4096 lines either + // side, say). + QStringList manyLines; + for (int i = 1; i < 2 * 4096 + 3; i++) { + // Pad the digits so that when sorted alphabetically, they are also sorted numerically. + manyLines << QStringLiteral("word%1").arg(i, 5, 10, QLatin1Char('0')); + } + QStringList allButFirstAndLastOfManyLines = manyLines; + allButFirstAndLastOfManyLines.removeFirst(); + allButFirstAndLastOfManyLines.removeLast(); + + BeginTest(manyLines.join(QStringLiteral("\n"))); + TestPressKey(QStringLiteral("4097j/\\ctrl- ")); + verifyCommandBarCompletionsMatches(allButFirstAndLastOfManyLines); + TestPressKey(QStringLiteral("\\enter\\enter")); // Dismiss completion, then bar. + FinishTest(manyLines.join(QStringLiteral("\n")).toUtf8().constData()); + + // "The current word" means the word before the cursor in the command bar, and includes numbers + // and underscores. Make sure also that the completion prefix is set when the completion is first invoked. + BeginTest(QStringLiteral("foo fee foa_11 foa_11b")); + // Write "bar(foa112$nose" and position cursor before the "2", then invoke completion. + TestPressKey(QStringLiteral("/bar(foa_112$nose\\left\\left\\left\\left\\left\\left\\ctrl- ")); + verifyCommandBarCompletionsMatches(QStringList() << QStringLiteral("foa_11") << QStringLiteral("foa_11b")); + TestPressKey(QStringLiteral("\\enter\\enter")); // Dismiss completion, then bar. + FinishTest("foo fee foa_11 foa_11b"); + + // But don't count "-" as being part of the current word. + BeginTest(QStringLiteral("foo_12")); + TestPressKey(QStringLiteral("/bar-foo\\ctrl- ")); + verifyCommandBarCompletionVisible(); + QCOMPARE(emulatedCommandBarCompleter()->currentCompletion(), QStringLiteral("foo_12")); + TestPressKey(QStringLiteral("\\enter\\enter")); // Dismiss completion, then bar. + FinishTest("foo_12"); + + // Be case insensitive. + BeginTest(QStringLiteral("foo Fo12 fOo13 FO45")); + TestPressKey(QStringLiteral("/fo\\ctrl- ")); + verifyCommandBarCompletionsMatches(QStringList() << QStringLiteral("Fo12") << QStringLiteral("FO45") << QStringLiteral("foo") << QStringLiteral("fOo13")); + TestPressKey(QStringLiteral("\\enter\\enter")); // Dismiss completion, then bar. + FinishTest("foo Fo12 fOo13 FO45"); + + // Feed the current word to complete to the completer as we type/ edit. + BeginTest(QStringLiteral("foo fee foa foab")); + TestPressKey(QStringLiteral("/xyz|f\\ctrl- o")); + verifyCommandBarCompletionsMatches(QStringList() << QStringLiteral("foa") << QStringLiteral("foab") << QStringLiteral("foo")); + TestPressKey(QStringLiteral("a")); + verifyCommandBarCompletionsMatches(QStringList() << QStringLiteral("foa") << QStringLiteral("foab")); + TestPressKey(QStringLiteral("\\ctrl-h")); + verifyCommandBarCompletionsMatches(QStringList() << QStringLiteral("foa") << QStringLiteral("foab") << QStringLiteral("foo")); + TestPressKey(QStringLiteral("o")); + verifyCommandBarCompletionsMatches(QStringList() << QStringLiteral("foo")); + TestPressKey(QStringLiteral("\\enter\\enter")); // Dismiss completion, then bar. + FinishTest("foo fee foa foab"); + + // Upon selecting a completion with an empty command bar, add the completed text to the command bar. + BeginTest(QStringLiteral("foo fee fob foables")); + TestPressKey(QStringLiteral("/\\ctrl- foa\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("foables")); + verifyCommandBarCompletionVisible(); + TestPressKey(QStringLiteral("\\enter\\enter")); // Dismiss completion, then bar. + FinishTest("foo fee fob foables"); + + // If bar is non-empty, replace the word under the cursor. + BeginTest(QStringLiteral("foo fee foa foab")); + TestPressKey(QStringLiteral("/xyz|f$nose\\left\\left\\left\\left\\left\\ctrl- oa\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("xyz|foab$nose")); + TestPressKey(QStringLiteral("\\enter\\enter")); // Dismiss completion, then bar. + FinishTest("foo fee foa foab"); + + // Place the cursor at the end of the completed text. + BeginTest(QStringLiteral("foo fee foa foab")); + TestPressKey(QStringLiteral("/xyz|f$nose\\left\\left\\left\\left\\left\\ctrl- oa\\ctrl-p\\enterX")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("xyz|foabX$nose")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completion, then bar. + FinishTest("foo fee foa foab"); + + // If we're completing from history, though, the entire text gets set, and the completion prefix + // is the beginning of the entire text, not the current word before the cursor. + clearSearchHistory(); + vi_global->searchHistory()->append(QStringLiteral("foo(bar")); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/foo(b\\ctrl-p")); + verifyCommandBarCompletionVisible(); + verifyCommandBarCompletionsMatches(QStringList() << QStringLiteral("foo(bar")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("foo(bar")); + TestPressKey(QStringLiteral("\\enter")); // Dismiss bar. + FinishTest(""); + + // If we're completing from history and we abort the completion via ctrl-c or ctrl-[, we revert the whole + // text to the last manually typed text. + clearSearchHistory(); + vi_global->searchHistory()->append(QStringLiteral("foo(b|ar")); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/foo(b\\ctrl-p")); + verifyCommandBarCompletionVisible(); + verifyCommandBarCompletionsMatches(QStringList() << QStringLiteral("foo(b|ar")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("foo(b|ar")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completion. + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("foo(b")); + TestPressKey(QStringLiteral("\\enter")); // Dismiss bar. + FinishTest(""); + + // Scroll completion list if necessary so that currently selected completion is visible. + BeginTest(QStringLiteral("a b c d e f g h i j k l m n o p q r s t u v w x y z")); + TestPressKey(QStringLiteral("/\\ctrl- ")); + const int lastItemRow = 25; + const QRect initialLastCompletionItemRect = + emulatedCommandBarCompleter()->popup()->visualRect(emulatedCommandBarCompleter()->popup()->model()->index(lastItemRow, 0)); + QVERIFY(!emulatedCommandBarCompleter()->popup()->rect().contains( + initialLastCompletionItemRect)); // If this fails, then we have an error in the test setup: initially, the last item in the list should be outside of + // the bounds of the popup. + TestPressKey(QStringLiteral("\\ctrl-n")); + QCOMPARE(emulatedCommandBarCompleter()->currentCompletion(), QStringLiteral("z")); + const QRect lastCompletionItemRect = + emulatedCommandBarCompleter()->popup()->visualRect(emulatedCommandBarCompleter()->popup()->model()->index(lastItemRow, 0)); + QVERIFY(emulatedCommandBarCompleter()->popup()->rect().contains(lastCompletionItemRect)); + TestPressKey(QStringLiteral("\\enter\\enter")); // Dismiss completion, then bar. + FinishTest("a b c d e f g h i j k l m n o p q r s t u v w x y z"); + + // Ensure that the completion list changes size appropriately as the number of candidate completions changes. + BeginTest(QStringLiteral("a ab abc")); + TestPressKey(QStringLiteral("/\\ctrl- ")); + const int initialPopupHeight = emulatedCommandBarCompleter()->popup()->height(); + TestPressKey(QStringLiteral("ab")); + const int popupHeightAfterEliminatingOne = emulatedCommandBarCompleter()->popup()->height(); + QVERIFY(popupHeightAfterEliminatingOne < initialPopupHeight); + TestPressKey(QStringLiteral("\\enter\\enter")); // Dismiss completion, then bar. + FinishTest("a ab abc"); + + // Ensure that the completion list disappears when no candidate completions are found, but re-appears + // when some are found. + BeginTest(QStringLiteral("a ab abc")); + TestPressKey(QStringLiteral("/\\ctrl- ")); + TestPressKey(QStringLiteral("abd")); + QVERIFY(!emulatedCommandBarCompleter()->popup()->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-h")); + verifyCommandBarCompletionVisible(); + TestPressKey(QStringLiteral("\\enter\\enter")); // Dismiss completion, then bar. + FinishTest("a ab abc"); + + // ctrl-c and ctrl-[ when the completion list is visible should dismiss the completion list, but *not* + // the emulated command bar. TODO - same goes for ESC, but this is harder as KateViewInternal dismisses it + // itself. + BeginTest(QStringLiteral("a ab abc")); + TestPressKey(QStringLiteral("/\\ctrl- \\ctrl-cdiw")); + QVERIFY(!emulatedCommandBarCompleter()->popup()->isVisible()); + QVERIFY(emulatedCommandBar->isVisible()); + TestPressKey(QStringLiteral("\\enter")); // Dismiss bar. + TestPressKey(QStringLiteral("/\\ctrl- \\ctrl-[diw")); + QVERIFY(!emulatedCommandBarCompleter()->popup()->isVisible()); + QVERIFY(emulatedCommandBar->isVisible()); + TestPressKey(QStringLiteral("\\enter")); // Dismiss bar. + FinishTest("a ab abc"); + + // If we implicitly choose an element from the summoned completion list (by highlighting it, then + // continuing to edit the text), the completion box should not re-appear unless explicitly summoned + // again, even if the current word has a valid completion. + BeginTest(QStringLiteral("a ab abc")); + TestPressKey(QStringLiteral("/\\ctrl- \\ctrl-p")); + TestPressKey(QStringLiteral(".a")); + QVERIFY(!emulatedCommandBarCompleter()->popup()->isVisible()); + TestPressKey(QStringLiteral("\\enter")); // Dismiss bar. + FinishTest("a ab abc"); + + // If we dismiss the summoned completion list via ctrl-c or ctrl-[, it should not re-appear unless explicitly summoned + // again, even if the current word has a valid completion. + BeginTest(QStringLiteral("a ab abc")); + TestPressKey(QStringLiteral("/\\ctrl- \\ctrl-c")); + TestPressKey(QStringLiteral(".a")); + QVERIFY(!emulatedCommandBarCompleter()->popup()->isVisible()); + TestPressKey(QStringLiteral("\\enter")); + TestPressKey(QStringLiteral("/\\ctrl- \\ctrl-[")); + TestPressKey(QStringLiteral(".a")); + QVERIFY(!emulatedCommandBarCompleter()->popup()->isVisible()); + TestPressKey(QStringLiteral("\\enter")); // Dismiss bar. + FinishTest("a ab abc"); + + // If we select a completion from an empty bar, but then dismiss it via ctrl-c or ctrl-[, then we + // should restore the empty text. + BeginTest(QStringLiteral("foo")); + TestPressKey(QStringLiteral("/\\ctrl- \\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("foo")); + TestPressKey(QStringLiteral("\\ctrl-c")); + QVERIFY(!emulatedCommandBarCompleter()->popup()->isVisible()); + QVERIFY(emulatedCommandBar->isVisible()); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("")); + TestPressKey(QStringLiteral("\\enter")); // Dismiss bar. + FinishTest("foo"); + BeginTest(QStringLiteral("foo")); + TestPressKey(QStringLiteral("/\\ctrl- \\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("foo")); + TestPressKey(QStringLiteral("\\ctrl-[")); + QVERIFY(!emulatedCommandBarCompleter()->popup()->isVisible()); + QVERIFY(emulatedCommandBar->isVisible()); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("")); + TestPressKey(QStringLiteral("\\enter")); // Dismiss bar. + FinishTest("foo"); + + // If we select a completion but then dismiss it via ctrl-c or ctrl-[, then we + // should restore the last manually typed word. + BeginTest(QStringLiteral("fooabc")); + TestPressKey(QStringLiteral("/f\\ctrl- o\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("fooabc")); + TestPressKey(QStringLiteral("\\ctrl-c")); + QVERIFY(!emulatedCommandBarCompleter()->popup()->isVisible()); + QVERIFY(emulatedCommandBar->isVisible()); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("fo")); + TestPressKey(QStringLiteral("\\enter")); // Dismiss bar. + FinishTest("fooabc"); + + // If we select a completion but then dismiss it via ctrl-c or ctrl-[, then we + // should restore the word currently being typed to the last manually typed word. + BeginTest(QStringLiteral("fooabc")); + TestPressKey(QStringLiteral("/ab\\ctrl- |fo\\ctrl-p")); + TestPressKey(QStringLiteral("\\ctrl-c")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("ab|fo")); + TestPressKey(QStringLiteral("\\enter")); // Dismiss bar. + FinishTest("fooabc"); + + // Set the completion prefix for the search history completion as soon as it is shown. + clearSearchHistory(); + vi_global->searchHistory()->append(QStringLiteral("foo(bar")); + vi_global->searchHistory()->append(QStringLiteral("xyz")); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("/f\\ctrl-p")); + verifyCommandBarCompletionVisible(); + verifyCommandBarCompletionsMatches(QStringList() << QStringLiteral("foo(bar")); + TestPressKey(QStringLiteral("\\enter")); // Dismiss bar. + FinishTest(""); + + // Command Mode (:) tests. + // ":" should summon the command bar, with ":" as the label. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":")); + QVERIFY(emulatedCommandBar->isVisible()); + QCOMPARE(emulatedCommandTypeIndicator()->text(), QStringLiteral(":")); + QVERIFY(emulatedCommandTypeIndicator()->isVisible()); + QVERIFY(emulatedCommandBarTextEdit()); + QVERIFY(emulatedCommandBarTextEdit()->text().isEmpty()); + TestPressKey(QStringLiteral("\\esc")); + FinishTest(""); + + // If we have a selection, it should be encoded as a range in the text edit. + BeginTest(QStringLiteral("d\nb\na\nc")); + TestPressKey(QStringLiteral("Vjjj:")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("'<,'>")); + TestPressKey(QStringLiteral("\\esc")); + FinishTest("d\nb\na\nc"); + + // If we have a count, it should be encoded as a range in the text edit. + BeginTest(QStringLiteral("d\nb\na\nc")); + TestPressKey(QStringLiteral("7:")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral(".,.+6")); + TestPressKey(QStringLiteral("\\esc")); + FinishTest("d\nb\na\nc"); + + // Don't go doing an incremental search when we press keys! + BeginTest(QStringLiteral("foo bar xyz")); + TestPressKey(QStringLiteral(":bar")); + QCOMPARE(rangesOnFirstLine().size(), rangesInitial.size()); + TestPressKey(QStringLiteral("\\esc")); + FinishTest("foo bar xyz"); + + // Execute the command on Enter. + DoTest("d\nb\na\nc", "Vjjj:sort\\enter", "a\nb\nc\nd"); + + // Don't crash if we call a non-existent command with a range. + DoTest("123", ":42nonexistentcommand\\enter", "123"); + + // Bar background should always be normal for command bar. + BeginTest(QStringLiteral("foo")); + TestPressKey(QStringLiteral("/foo\\enter:")); + verifyTextEditBackgroundColour(normalBackgroundColour); + TestPressKey(QStringLiteral("\\ctrl-c/bar\\enter:")); + verifyTextEditBackgroundColour(normalBackgroundColour); + TestPressKey(QStringLiteral("\\esc")); + FinishTest("foo"); + + const int commandResponseMessageTimeOutMSOverride = QString::fromLatin1(qgetenv("KATE_VIMODE_TEST_COMMANDRESPONSEMESSAGETIMEOUTMS")).toInt(); + const long commandResponseMessageTimeOutMS = (commandResponseMessageTimeOutMSOverride > 0) ? commandResponseMessageTimeOutMSOverride : 10; + { + // If there is any output from the command, show it in a label for a short amount of time + // (make sure the bar type indicator is hidden, here, as it looks messy). + emulatedCommandBar->setCommandResponseMessageTimeout(commandResponseMessageTimeOutMS); + BeginTest(QStringLiteral("foo bar xyz")); + const QDateTime timeJustBeforeCommandExecuted = QDateTime::currentDateTime(); + TestPressKey(QStringLiteral(":commandthatdoesnotexist\\enter")); + QVERIFY(emulatedCommandBar->isVisible()); + QVERIFY(commandResponseMessageDisplay()); + QVERIFY(commandResponseMessageDisplay()->isVisible()); + QVERIFY(!emulatedCommandBarTextEdit()->isVisible()); + QVERIFY(!emulatedCommandTypeIndicator()->isVisible()); + // Be a bit vague about the exact message, due to i18n, etc. + QVERIFY(commandResponseMessageDisplay()->text().contains(QStringLiteral("commandthatdoesnotexist"))); + waitForEmulatedCommandBarToHide(4 * commandResponseMessageTimeOutMS); + QVERIFY(timeJustBeforeCommandExecuted.msecsTo(QDateTime::currentDateTime()) + >= commandResponseMessageTimeOutMS - 500); // "- 500" because coarse timers can fire up to 500ms *prematurely*. + QVERIFY(!emulatedCommandBar->isVisible()); + // Piggy-back on this test, as the bug we're about to test for would actually make setting + // up the conditions again in a separate test impossible ;) + // When we next summon the bar, the response message should be invisible; the editor visible & editable; + // and the bar type indicator visible again. + TestPressKey(QStringLiteral("/")); + QVERIFY(!commandResponseMessageDisplay()->isVisible()); + QVERIFY(emulatedCommandBarTextEdit()->isVisible()); + QVERIFY(emulatedCommandBarTextEdit()->isEnabled()); + QVERIFY(emulatedCommandBar->isVisible()); + TestPressKey(QStringLiteral("\\esc")); // Dismiss the bar. + FinishTest("foo bar xyz"); + } + + { + // Show the same message twice in a row. + BeginTest(QStringLiteral("foo bar xyz")); + TestPressKey(QStringLiteral(":othercommandthatdoesnotexist\\enter")); + QDateTime startWaitingForMessageToHide = QDateTime::currentDateTime(); + waitForEmulatedCommandBarToHide(4 * commandResponseMessageTimeOutMS); + TestPressKey(QStringLiteral(":othercommandthatdoesnotexist\\enter")); + QVERIFY(commandResponseMessageDisplay()->isVisible()); + // Wait for it to disappear again, as a courtesy for the next test. + waitForEmulatedCommandBarToHide(4 * commandResponseMessageTimeOutMS); + } + + { + // Emulated command bar should not steal keypresses when it is merely showing the results of an executed command. + BeginTest(QStringLiteral("foo bar")); + TestPressKey(QStringLiteral(":commandthatdoesnotexist\\enterrX")); + Q_ASSERT_X(commandResponseMessageDisplay()->isVisible(), "running test", "Need to increase timeJustBeforeCommandExecuted!"); + FinishTest("Xoo bar"); + } + + { + // Don't send the synthetic "enter" keypress (for making search-as-a-motion work) when we finally hide. + BeginTest(QStringLiteral("foo bar\nbar")); + TestPressKey(QStringLiteral(":commandthatdoesnotexist\\enter")); + Q_ASSERT_X(commandResponseMessageDisplay()->isVisible(), "running test", "Need to increase timeJustBeforeCommandExecuted!"); + waitForEmulatedCommandBarToHide(commandResponseMessageTimeOutMS * 4); + TestPressKey(QStringLiteral("rX")); + FinishTest("Xoo bar\nbar"); + } + + { + // The timeout should be cancelled when we invoke the command bar again. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":commandthatdoesnotexist\\enter")); + TestPressKey(QStringLiteral(":")); + // Wait ample time for the timeout to fire. Do not use waitForEmulatedCommandBarToHide for this! + QTRY_VERIFY_WITH_TIMEOUT(emulatedCommandBar->isVisible(), commandResponseMessageTimeOutMS * 2); + TestPressKey(QStringLiteral("\\esc")); // Dismiss the bar. + FinishTest(""); + } + + { + // The timeout should not cause kate_view to regain focus if we have manually taken it away. + qDebug() << " NOTE: this test is weirdly fragile, so if it starts failing, comment it out and e-mail me: it may well be more trouble that it's worth."; + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":commandthatdoesnotexist\\enter")); + // Wait for any focus changes to take effect. + QApplication::processEvents(); + QLineEdit *dummyToFocus = new QLineEdit(QStringLiteral("Sausage"), mainWindow); + // Take focus away from kate_view by giving it to dummyToFocus. + mainWindow->activateWindow(); + kate_view->setFocus(); + mainWindowLayout->addWidget(dummyToFocus); + dummyToFocus->show(); + dummyToFocus->setEnabled(true); + dummyToFocus->setFocus(); + // Allow dummyToFocus to receive focus. + QTRY_VERIFY(dummyToFocus->hasFocus()); + // Wait ample time for the timeout to fire. Do not use waitForEmulatedCommandBarToHide for this - + // the bar never actually hides in this instance, and I think it would take some deep changes in + // Kate to make it do so (the KateCommandLineBar as the same issue). + QTest::qWait(commandResponseMessageTimeOutMS * 2); + QVERIFY(dummyToFocus->hasFocus()); + // not stable QVERIFY(emulatedCommandBar->isVisible()); + mainWindowLayout->removeWidget(dummyToFocus); + // Restore focus to the kate_view. + kate_view->setFocus(); + QTRY_VERIFY(kate_view->hasFocus()); + // *Now* wait for the command bar to disappear - giving kate_view focus should trigger it. + waitForEmulatedCommandBarToHide(commandResponseMessageTimeOutMS * 4); + FinishTest(""); + } + + { + // No completion should be shown when the bar is first shown: this gives us an opportunity + // to invoke command history via ctrl-p and ctrl-n. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":")); + QVERIFY(!emulatedCommandBarCompleter()->popup()->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar + FinishTest(""); + } + + { + // Should be able to switch to completion from document, even when we have a completion from commands. + BeginTest(QStringLiteral("soggy1 soggy2")); + TestPressKey(QStringLiteral(":so")); + verifyCommandBarCompletionContains(QStringList() << QStringLiteral("sort")); + TestPressKey(QStringLiteral("\\ctrl- ")); + verifyCommandBarCompletionsMatches(QStringList() << QStringLiteral("soggy1") << QStringLiteral("soggy2")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar + FinishTest("soggy1 soggy2"); + } + + { + // If we dismiss the command completion then change the text, it should summon the completion + // again. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":so")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("r")); + verifyCommandBarCompletionVisible(); + verifyCommandBarCompletionContains(QStringList() << QStringLiteral("sort")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar + FinishTest(""); + } + + { + // Completion should be dismissed when we are showing command response text. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":set-au\\enter")); + QVERIFY(commandResponseMessageDisplay()->isVisible()); + QVERIFY(!emulatedCommandBarCompleter()->popup()->isVisible()); + waitForEmulatedCommandBarToHide(commandResponseMessageTimeOutMS * 4); + FinishTest(""); + } + + // If we abort completion via ctrl-c or ctrl-[, we should revert the current word to the last + // manually entered word. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":se\\ctrl-p")); + verifyCommandBarCompletionVisible(); + QVERIFY(emulatedCommandBarTextEdit()->text() != QStringLiteral("se")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("se")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar + FinishTest(""); + + // In practice, it's annoying if, as we enter ":s/se", completions pop up after the "se": + // for now, only summon completion if we are on the first word in the text. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":s/se")); + QVERIFY(!emulatedCommandBarCompleter()->popup()->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar + FinishTest(""); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":.,.+7s/se")); + QVERIFY(!emulatedCommandBarCompleter()->popup()->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar + FinishTest(""); + + // Don't blank the text if we activate command history completion with no command history. + BeginTest(QLatin1String("")); + clearCommandHistory(); + TestPressKey(QStringLiteral(":s/se\\ctrl-p")); + QVERIFY(!emulatedCommandBarCompleter()->popup()->isVisible()); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/se")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar + FinishTest(""); + + // On completion, only update the command in front of the cursor. + BeginTest(QLatin1String("")); + clearCommandHistory(); + TestPressKey(QStringLiteral(":.,.+6s/se\\left\\left\\leftet-auto-in\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral(".,.+6set-auto-indent/se")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer. + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar + FinishTest(""); + + // On completion, place the cursor after the new command. + BeginTest(QLatin1String("")); + clearCommandHistory(); + TestPressKey(QStringLiteral(":.,.+6s/fo\\left\\left\\leftet-auto-in\\ctrl-pX")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral(".,.+6set-auto-indentX/fo")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer. + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar + FinishTest(""); + + // "The current word", for Commands, can contain "-". + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":set-\\ctrl-p")); + verifyCommandBarCompletionVisible(); + QVERIFY(emulatedCommandBarTextEdit()->text() != QLatin1String("set-")); + QVERIFY(emulatedCommandBarCompleter()->currentCompletion().startsWith(QLatin1String("set-"))); + QCOMPARE(emulatedCommandBarTextEdit()->text(), emulatedCommandBarCompleter()->currentCompletion()); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completion. + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + { + // Don't switch from word-from-document to command-completion just because we press a key, though! + BeginTest(QStringLiteral("soggy1 soggy2")); + TestPressKey(QStringLiteral(":\\ctrl- s")); + TestPressKey(QStringLiteral("o")); + verifyCommandBarCompletionVisible(); + verifyCommandBarCompletionsMatches(QStringList() << QStringLiteral("soggy1") << QStringLiteral("soggy2")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar + FinishTest("soggy1 soggy2"); + } + + { + // If we're in a place where there is no command completion allowed, don't go hiding the word + // completion as we type. + BeginTest(QStringLiteral("soggy1 soggy2")); + TestPressKey(QStringLiteral(":s/s\\ctrl- o")); + verifyCommandBarCompletionVisible(); + verifyCommandBarCompletionsMatches(QStringList() << QStringLiteral("soggy1") << QStringLiteral("soggy2")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar + FinishTest("soggy1 soggy2"); + } + + { + // Don't show command completion before we start typing a command: we want ctrl-p/n + // to go through command history instead (we'll test for that second part later). + BeginTest(QStringLiteral("soggy1 soggy2")); + TestPressKey(QStringLiteral(":")); + QVERIFY(!emulatedCommandBarCompleter()->popup()->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-cvl:")); + QVERIFY(!emulatedCommandBarCompleter()->popup()->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar + FinishTest("soggy1 soggy2"); + } + + { + // Aborting ":" should leave us in normal mode with no selection. + BeginTest(QStringLiteral("foo bar")); + TestPressKey(QStringLiteral("vw:\\ctrl-[")); + QVERIFY(kate_view->selectionText().isEmpty()); + TestPressKey(QStringLiteral("wdiw")); + BeginTest(QStringLiteral("foo ")); + } + + // Command history tests. + clearCommandHistory(); + QVERIFY(commandHistory().isEmpty()); + vi_global->commandHistory()->append(QStringLiteral("foo")); + vi_global->commandHistory()->append(QStringLiteral("bar")); + QCOMPARE(commandHistory(), QStringList() << QStringLiteral("foo") << QStringLiteral("bar")); + clearCommandHistory(); + QVERIFY(commandHistory().isEmpty()); + + // If we add something to the history, remove any earliest occurrences (this is what Vim appears to do) + // and append to the end. + clearCommandHistory(); + vi_global->commandHistory()->append(QStringLiteral("bar")); + vi_global->commandHistory()->append(QStringLiteral("xyz")); + vi_global->commandHistory()->append(QStringLiteral("foo")); + vi_global->commandHistory()->append(QStringLiteral("xyz")); + QCOMPARE(commandHistory(), QStringList() << QStringLiteral("bar") << QStringLiteral("foo") << QStringLiteral("xyz")); + + // Push out older entries if we have too many command items in the history. + clearCommandHistory(); + for (int i = 1; i <= HISTORY_SIZE_LIMIT; i++) { + vi_global->commandHistory()->append(QStringLiteral("commandhistoryitem %1").arg(i)); + } + QCOMPARE(commandHistory().size(), HISTORY_SIZE_LIMIT); + QCOMPARE(commandHistory().constFirst(), QStringLiteral("commandhistoryitem 1")); + QCOMPARE(commandHistory().last(), QStringLiteral("commandhistoryitem 100")); + vi_global->commandHistory()->append(QStringLiteral("commandhistoryitem %1").arg(HISTORY_SIZE_LIMIT + 1)); + QCOMPARE(commandHistory().size(), HISTORY_SIZE_LIMIT); + QCOMPARE(commandHistory().constFirst(), QStringLiteral("commandhistoryitem 2")); + QCOMPARE(commandHistory().last(), QStringLiteral("commandhistoryitem %1").arg(HISTORY_SIZE_LIMIT + 1)); + + // Don't add empty commands to the history. + clearCommandHistory(); + DoTest("foo bar", ":\\enter", "foo bar"); + QVERIFY(commandHistory().isEmpty()); + + clearCommandHistory(); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":sort\\enter")); + QCOMPARE(commandHistory(), QStringList() << QStringLiteral("sort")); + TestPressKey(QStringLiteral(":yank\\enter")); + QCOMPARE(commandHistory(), QStringList() << QStringLiteral("sort") << QStringLiteral("yank")); + // Add to history immediately: don't wait for the command response display to timeout. + TestPressKey(QStringLiteral(":commandthatdoesnotexist\\enter")); + QCOMPARE(commandHistory(), QStringList() << QStringLiteral("sort") << QStringLiteral("yank") << QStringLiteral("commandthatdoesnotexist")); + // Vim adds aborted commands to the history too, oddly. + TestPressKey(QStringLiteral(":abortedcommand\\ctrl-c")); + QCOMPARE(commandHistory(), + QStringList() << QStringLiteral("sort") << QStringLiteral("yank") << QStringLiteral("commandthatdoesnotexist") + << QStringLiteral("abortedcommand")); + // Only add for commands, not searches! + TestPressKey(QStringLiteral("/donotaddme\\enter?donotaddmeeither\\enter/donotaddme\\ctrl-c?donotaddmeeither\\ctrl-c")); + QCOMPARE(commandHistory(), + QStringList() << QStringLiteral("sort") << QStringLiteral("yank") << QStringLiteral("commandthatdoesnotexist") + << QStringLiteral("abortedcommand")); + FinishTest(""); + + // Commands should not be added to the search history! + clearCommandHistory(); + clearSearchHistory(); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":sort\\enter")); + QVERIFY(searchHistory().isEmpty()); + FinishTest(""); + + // With an empty command bar, ctrl-p / ctrl-n should go through history. + clearCommandHistory(); + vi_global->commandHistory()->append(QStringLiteral("command1")); + vi_global->commandHistory()->append(QStringLiteral("command2")); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":\\ctrl-p")); + verifyCommandBarCompletionVisible(); + QCOMPARE(emulatedCommandBarCompleter()->currentCompletion(), QStringLiteral("command2")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), emulatedCommandBarCompleter()->currentCompletion()); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar + FinishTest(""); + clearCommandHistory(); + vi_global->commandHistory()->append(QStringLiteral("command1")); + vi_global->commandHistory()->append(QStringLiteral("command2")); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":\\ctrl-n")); + verifyCommandBarCompletionVisible(); + QCOMPARE(emulatedCommandBarCompleter()->currentCompletion(), QStringLiteral("command1")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), emulatedCommandBarCompleter()->currentCompletion()); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar + FinishTest(""); + + // If we're at a place where command completions are not allowed, ctrl-p/n should go through history. + clearCommandHistory(); + vi_global->commandHistory()->append(QStringLiteral("s/command1")); + vi_global->commandHistory()->append(QStringLiteral("s/command2")); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":s/\\ctrl-p")); + verifyCommandBarCompletionVisible(); + QCOMPARE(emulatedCommandBarCompleter()->currentCompletion(), QStringLiteral("s/command2")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), emulatedCommandBarCompleter()->currentCompletion()); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar + FinishTest(""); + clearCommandHistory(); + vi_global->commandHistory()->append(QStringLiteral("s/command1")); + vi_global->commandHistory()->append(QStringLiteral("s/command2")); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":s/\\ctrl-n")); + verifyCommandBarCompletionVisible(); + QCOMPARE(emulatedCommandBarCompleter()->currentCompletion(), QStringLiteral("s/command1")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), emulatedCommandBarCompleter()->currentCompletion()); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar + FinishTest(""); + + // Cancelling word-from-document completion should revert the whole text to what it was before. + BeginTest(QStringLiteral("sausage bacon")); + TestPressKey(QStringLiteral(":s/b\\ctrl- \\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/bacon")); + verifyCommandBarCompletionVisible(); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/b")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar + FinishTest("sausage bacon"); + + // "Replace" history tests. + clearReplaceHistory(); + QVERIFY(replaceHistory().isEmpty()); + vi_global->replaceHistory()->append(QStringLiteral("foo")); + vi_global->replaceHistory()->append(QStringLiteral("bar")); + QCOMPARE(replaceHistory(), QStringList() << QStringLiteral("foo") << QStringLiteral("bar")); + clearReplaceHistory(); + QVERIFY(replaceHistory().isEmpty()); + + // If we add something to the history, remove any earliest occurrences (this is what Vim appears to do) + // and append to the end. + clearReplaceHistory(); + vi_global->replaceHistory()->append(QStringLiteral("bar")); + vi_global->replaceHistory()->append(QStringLiteral("xyz")); + vi_global->replaceHistory()->append(QStringLiteral("foo")); + vi_global->replaceHistory()->append(QStringLiteral("xyz")); + QCOMPARE(replaceHistory(), QStringList() << QStringLiteral("bar") << QStringLiteral("foo") << QStringLiteral("xyz")); + + // Push out older entries if we have too many replace items in the history. + clearReplaceHistory(); + for (int i = 1; i <= HISTORY_SIZE_LIMIT; i++) { + vi_global->replaceHistory()->append(QStringLiteral("replacehistoryitem %1").arg(i)); + } + QCOMPARE(replaceHistory().size(), HISTORY_SIZE_LIMIT); + QCOMPARE(replaceHistory().constFirst(), QStringLiteral("replacehistoryitem 1")); + QCOMPARE(replaceHistory().last(), QStringLiteral("replacehistoryitem 100")); + vi_global->replaceHistory()->append(QStringLiteral("replacehistoryitem %1").arg(HISTORY_SIZE_LIMIT + 1)); + QCOMPARE(replaceHistory().size(), HISTORY_SIZE_LIMIT); + QCOMPARE(replaceHistory().constFirst(), QStringLiteral("replacehistoryitem 2")); + QCOMPARE(replaceHistory().last(), QStringLiteral("replacehistoryitem %1").arg(HISTORY_SIZE_LIMIT + 1)); + + // Don't add empty replaces to the history. + clearReplaceHistory(); + vi_global->replaceHistory()->append(QLatin1String("")); + QVERIFY(replaceHistory().isEmpty()); + + // Some misc SedReplace tests. + DoTest("x\\/y", ":s/\\\\//replace/g\\enter", "x\\replacey"); + DoTest("x\\/y", ":s/\\\\\\\\\\\\//replace/g\\enter", "xreplacey"); + DoTest("x\\/y", ":s:/:replace:g\\enter", "x\\replacey"); + DoTest("foo\nbar\nxyz", ":%delete\\enter", ""); + DoTest("foo\nbar\nxyz\nbaz", "jVj:delete\\enter", "foo\nbaz"); + DoTest("foo\nbar\nxyz\nbaz", "j2:delete\\enter", "foo\nbaz"); + + // Test that 0 is accepted as a line index (and treated as 1) in a range specifier + DoTest("bar\nbar\nbar", ":0,$s/bar/foo/g\\enter", "foo\nfoo\nfoo"); + DoTest("bar\nbar\nbar", ":1,$s/bar/foo/g\\enter", "foo\nfoo\nfoo"); + DoTest("bar\nbar\nbar", ":0,2s/bar/foo/g\\enter", "foo\nfoo\nbar"); + + // On ctrl-d, delete the "search" term in a s/search/replace/xx + BeginTest(QStringLiteral("foo bar")); + TestPressKey(QStringLiteral(":s/x\\\\\\\\\\\\/yz/rep\\\\\\\\\\\\/lace/g\\ctrl-d")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s//rep\\\\\\/lace/g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest("foo bar"); + // Move cursor to position of deleted search term. + BeginTest(QStringLiteral("foo bar")); + TestPressKey(QStringLiteral(":s/x\\\\\\\\\\\\/yz/rep\\\\\\\\\\\\/lace/g\\ctrl-dX")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/X/rep\\\\\\/lace/g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest("foo bar"); + // Do nothing on ctrl-d in search mode. + BeginTest(QStringLiteral("foo bar")); + TestPressKey(QStringLiteral("/s/search/replace/g\\ctrl-d")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/search/replace/g")); + TestPressKey(QStringLiteral("\\ctrl-c?s/searchbackwards/replace/g\\ctrl-d")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/searchbackwards/replace/g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest("foo bar"); + // On ctrl-f, delete "replace" term in a s/search/replace/xx + BeginTest(QStringLiteral("foo bar")); + TestPressKey(QStringLiteral(":s/a\\\\\\\\\\\\/bc/rep\\\\\\\\\\\\/lace/g\\ctrl-f")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/a\\\\\\/bc//g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest("foo bar"); + // Move cursor to position of deleted replace term. + BeginTest(QStringLiteral("foo bar")); + TestPressKey(QStringLiteral(":s:a/bc:replace:g\\ctrl-fX")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s:a/bc:X:g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest("foo bar"); + // Do nothing on ctrl-d in search mode. + BeginTest(QStringLiteral("foo bar")); + TestPressKey(QStringLiteral("/s/search/replace/g\\ctrl-f")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/search/replace/g")); + TestPressKey(QStringLiteral("\\ctrl-c?s/searchbackwards/replace/g\\ctrl-f")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/searchbackwards/replace/g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest("foo bar"); + // Do nothing on ctrl-d / ctrl-f if the current expression is not a sed expression. + BeginTest(QStringLiteral("foo bar")); + TestPressKey(QStringLiteral(":s/notasedreplaceexpression::gi\\ctrl-f\\ctrl-dX")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/notasedreplaceexpression::giX")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest("foo bar"); + // Need to convert Vim-style regex's to Qt one's in Sed Replace. + DoTest("foo xbacba(boo)|[y", ":s/x[abc]\\\\+(boo)|[y/boo/g\\enter", "foo boo"); + DoTest("foo xbacba(boo)|[y\nfoo xbacba(boo)|[y", "Vj:s/x[abc]\\\\+(boo)|[y/boo/g\\enter", "foo boo\nfoo boo"); + // Just convert the search term, please :) + DoTest("foo xbacba(boo)|[y", ":s/x[abc]\\\\+(boo)|[y/boo()/g\\enter", "foo boo()"); + // With an empty search expression, ctrl-d should still position the cursor correctly. + BeginTest(QStringLiteral("foo bar")); + TestPressKey(QStringLiteral(":s//replace/g\\ctrl-dX")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/X/replace/g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + TestPressKey(QStringLiteral(":s::replace:g\\ctrl-dX")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s:X:replace:g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest("foo bar"); + // With an empty replace expression, ctrl-f should still position the cursor correctly. + BeginTest(QStringLiteral("foo bar")); + TestPressKey(QStringLiteral(":s/sear\\\\/ch//g\\ctrl-fX")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/sear\\/ch/X/g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + TestPressKey(QStringLiteral(":s:sear\\\\:ch::g\\ctrl-fX")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s:sear\\:ch:X:g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest("foo bar"); + // With both empty search *and* replace expressions, ctrl-f should still position the cursor correctly. + BeginTest(QStringLiteral("foo bar")); + TestPressKey(QStringLiteral(":s///g\\ctrl-fX")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s//X/g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + TestPressKey(QStringLiteral(":s:::g\\ctrl-fX")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s::X:g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest("foo bar"); + // Should be able to undo ctrl-f or ctrl-d. + BeginTest(QStringLiteral("foo bar")); + TestPressKey(QStringLiteral(":s/find/replace/g\\ctrl-d")); + emulatedCommandBarTextEdit()->undo(); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/find/replace/g")); + TestPressKey(QStringLiteral("\\ctrl-f")); + emulatedCommandBarTextEdit()->undo(); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/find/replace/g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest("foo bar"); + // ctrl-f / ctrl-d should cleanly finish sed find/ replace history completion. + clearReplaceHistory(); + clearSearchHistory(); + vi_global->searchHistory()->append(QStringLiteral("searchxyz")); + vi_global->replaceHistory()->append(QStringLiteral("replacexyz")); + TestPressKey(QStringLiteral(":s///g\\ctrl-d\\ctrl-p")); + QVERIFY(emulatedCommandBarCompleter()->popup()->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-f")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/searchxyz//g")); + QVERIFY(!emulatedCommandBarCompleter()->popup()->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-p")); + QVERIFY(emulatedCommandBarCompleter()->popup()->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-d")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s//replacexyz/g")); + QVERIFY(!emulatedCommandBarCompleter()->popup()->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest("foo bar"); + // Don't hang if we execute a sed replace with empty search term. + DoTest("foo bar", ":s//replace/g\\enter", "foo bar"); + + // ctrl-f & ctrl-d should work even when there is a range expression at the beginning of the sed replace. + BeginTest(QStringLiteral("foo bar")); + TestPressKey(QStringLiteral(":'<,'>s/search/replace/g\\ctrl-d")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("'<,'>s//replace/g")); + TestPressKey(QStringLiteral("\\ctrl-c:.,.+6s/search/replace/g\\ctrl-f")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral(".,.+6s/search//g")); + TestPressKey(QStringLiteral("\\ctrl-c:%s/search/replace/g\\ctrl-f")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("%s/search//g")); + // Place the cursor in the right place even when there is a range expression. + TestPressKey(QStringLiteral("\\ctrl-c:.,.+6s/search/replace/g\\ctrl-fX")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral(".,.+6s/search/X/g")); + TestPressKey(QStringLiteral("\\ctrl-c:%s/search/replace/g\\ctrl-fX")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("%s/search/X/g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest("foo bar"); + // Don't crash on ctrl-f/d if we have an empty command. + DoTest("", ":\\ctrl-f\\ctrl-d\\ctrl-c", ""); + // Parser regression test: Don't crash on ctrl-f/d with ".,.+". + DoTest("", ":.,.+\\ctrl-f\\ctrl-d\\ctrl-c", ""); + + // Command-completion should be invoked on the command being typed even when preceded by a range expression. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":0,'>so")); + verifyCommandBarCompletionVisible(); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // Command-completion should ignore the range expression. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":.,.+6so")); + verifyCommandBarCompletionVisible(); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // A sed-replace should immediately add the search term to the search history. + clearSearchHistory(); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":s/search/replace/g\\enter")); + QCOMPARE(searchHistory(), QStringList() << QStringLiteral("search")); + FinishTest(""); + + // An aborted sed-replace should not add the search term to the search history. + clearSearchHistory(); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":s/search/replace/g\\ctrl-c")); + QCOMPARE(searchHistory(), QStringList()); + FinishTest(""); + + // A non-sed-replace should leave the search history unchanged. + clearSearchHistory(); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":s,search/replace/g\\enter")); + QCOMPARE(searchHistory(), QStringList()); + FinishTest(""); + + // A sed-replace should immediately add the replace term to the replace history. + clearReplaceHistory(); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":s/search/replace/g\\enter")); + QCOMPARE(replaceHistory(), QStringList() << QStringLiteral("replace")); + clearReplaceHistory(); + TestPressKey(QStringLiteral(":'<,'>s/search/replace1/g\\enter")); + QCOMPARE(replaceHistory(), QStringList() << QStringLiteral("replace1")); + FinishTest(""); + + // An aborted sed-replace should not add the replace term to the replace history. + clearReplaceHistory(); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":s/search/replace/g\\ctrl-c")); + QCOMPARE(replaceHistory(), QStringList()); + FinishTest(""); + + // A non-sed-replace should leave the replace history unchanged. + clearReplaceHistory(); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":s,search/replace/g\\enter")); + QCOMPARE(replaceHistory(), QStringList()); + FinishTest(""); + + // Misc tests for sed replace. These are for the *generic* Kate sed replace; they should all + // use EmulatedCommandBarTests' built-in command execution stuff (\\:\\\) rather than + // invoking a EmulatedCommandBar and potentially doing some Vim-specific transforms to + // the command. + DoTest("foo foo foo", "\\:s/foo/bar/\\", "bar foo foo"); + DoTest("foo foo xyz foo", "\\:s/foo/bar/g\\", "bar bar xyz bar"); + DoTest("foofooxyzfoo", "\\:s/foo/bar/g\\", "barbarxyzbar"); + DoTest("foofooxyzfoo", "\\:s/foo/b/g\\", "bbxyzb"); + DoTest("ffxyzf", "\\:s/f/b/g\\", "bbxyzb"); + DoTest("ffxyzf", "\\:s/f/bar/g\\", "barbarxyzbar"); + DoTest("foo Foo fOO FOO foo", "\\:s/foo/bar/\\", "bar Foo fOO FOO foo"); + DoTest("Foo foo fOO FOO foo", "\\:s/foo/bar/\\", "Foo bar fOO FOO foo"); + DoTest("Foo foo fOO FOO foo", "\\:s/foo/bar/g\\", "Foo bar fOO FOO bar"); + DoTest("foo Foo fOO FOO foo", "\\:s/foo/bar/i\\", "bar Foo fOO FOO foo"); + DoTest("Foo foo fOO FOO foo", "\\:s/foo/bar/i\\", "bar foo fOO FOO foo"); + DoTest("Foo foo fOO FOO foo", "\\:s/foo/bar/gi\\", "bar bar bar bar bar"); + DoTest("Foo foo fOO FOO foo", "\\:s/foo/bar/ig\\", "bar bar bar bar bar"); + // There are some oddities to do with how EmulatedCommandBarTest's "execute command directly" stuff works with selected ranges: + // basically, we need to do our selection in Visual mode, then exit back to Normal mode before running the + // command. + DoTest("foo foo\nbar foo foo\nxyz foo foo\nfoo bar foo", "jVj\\esc\\:'<,'>s/foo/bar/\\", "foo foo\nbar bar foo\nxyz bar foo\nfoo bar foo"); + DoTest("foo foo\nbar foo foo\nxyz foo foo\nfoo bar foo", "jVj\\esc\\:'<,'>s/foo/bar/g\\", "foo foo\nbar bar bar\nxyz bar bar\nfoo bar foo"); + DoTest("Foo foo fOO FOO foo", "\\:s/foo/barfoo/g\\", "Foo barfoo fOO FOO barfoo"); + DoTest("Foo foo fOO FOO foo", "\\:s/foo/foobar/g\\", "Foo foobar fOO FOO foobar"); + DoTest("axyzb", "\\:s/a(.*)b/d\\\\1f/\\", "dxyzf"); + DoTest("ayxzzyxzfddeefdb", "\\:s/a([xyz]+)([def]+)b/<\\\\1|\\\\2>/\\", ""); + DoTest("foo", "\\:s/.*//g\\", ""); + DoTest("foo", "\\:s/.*/f/g\\", "f"); + DoTest("foo/bar", "\\:s/foo\\\\/bar/123\\\\/xyz/g\\", "123/xyz"); + DoTest("foo:bar", "\\:s:foo\\\\:bar:123\\\\:xyz:g\\", "123:xyz"); + const bool oldReplaceTabsDyn = kate_document->config()->replaceTabsDyn(); + kate_document->config()->setReplaceTabsDyn(false); + DoTest("foo\tbar", "\\:s/foo\\\\tbar/replace/g\\", "replace"); + DoTest("foo\tbar", "\\:s/foo\\\\tbar/rep\\\\tlace/g\\", "rep\tlace"); + kate_document->config()->setReplaceTabsDyn(oldReplaceTabsDyn); + DoTest("foo", "\\:s/foo/replaceline1\\\\nreplaceline2/g\\", "replaceline1\nreplaceline2"); + DoTest("foofoo", "\\:s/foo/replaceline1\\\\nreplaceline2/g\\", "replaceline1\nreplaceline2replaceline1\nreplaceline2"); + DoTest("foofoo\nfoo", "\\:s/foo/replaceline1\\\\nreplaceline2/g\\", "replaceline1\nreplaceline2replaceline1\nreplaceline2\nfoo"); + DoTest("fooafoob\nfooc\nfood", + "Vj\\esc\\:'<,'>s/foo/replaceline1\\\\nreplaceline2/g\\", + "replaceline1\nreplaceline2areplaceline1\nreplaceline2b\nreplaceline1\nreplaceline2c\nfood"); + DoTest("fooafoob\nfooc\nfood", + "Vj\\esc\\:'<,'>s/foo/replaceline1\\\\nreplaceline2/\\", + "replaceline1\nreplaceline2afoob\nreplaceline1\nreplaceline2c\nfood"); + DoTest("fooafoob\nfooc\nfood", + "Vj\\esc\\:'<,'>s/foo/replaceline1\\\\nreplaceline2\\\\nreplaceline3/g\\", + "replaceline1\nreplaceline2\nreplaceline3areplaceline1\nreplaceline2\nreplaceline3b\nreplaceline1\nreplaceline2\nreplaceline3c\nfood"); + DoTest("foofoo", "\\:s/foo/replace\\\\nfoo/g\\", "replace\nfooreplace\nfoo"); + DoTest("foofoo", "\\:s/foo/replacefoo\\\\nfoo/g\\", "replacefoo\nfooreplacefoo\nfoo"); + DoTest("foofoo", "\\:s/foo/replacefoo\\\\n/g\\", "replacefoo\nreplacefoo\n"); + DoTest("ff", "\\:s/f/f\\\\nf/g\\", "f\nff\nf"); + DoTest("ff", "\\:s/f/f\\\\n/g\\", "f\nf\n"); + DoTest("foo\nbar", "\\:s/foo\\\\n//g\\", "bar"); + DoTest("foo\n\n\nbar", "\\:s/foo(\\\\n)*bar//g\\", ""); + DoTest("foo\n\n\nbar", "\\:s/foo(\\\\n*)bar/123\\\\1456/g\\", "123\n\n\n456"); + DoTest("xAbCy", "\\:s/x(.)(.)(.)y/\\\\L\\\\1\\\\U\\\\2\\\\3/g\\", "aBC"); + DoTest("foo", "\\:s/foo/\\\\a/g\\", "\x07"); + // End "generic" (i.e. not involving any Vi mode tricks/ transformations) sed replace tests: the remaining + // ones should go via the EmulatedCommandBar. + BeginTest(QStringLiteral("foo foo\nxyz\nfoo")); + TestPressKey(QStringLiteral(":%s/foo/bar/g\\enter")); + verifyShowsNumberOfReplacementsAcrossNumberOfLines(3, 2); + FinishTest("bar bar\nxyz\nbar"); + + // ctrl-p on the first character of the search term in a sed-replace should + // invoke search history completion. + clearSearchHistory(); + vi_global->searchHistory()->append(QStringLiteral("search")); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":s/search/replace/g\\ctrl-b\\right\\right\\ctrl-p")); + verifyCommandBarCompletionVisible(); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + TestPressKey(QStringLiteral(":'<,'>s/search/replace/g\\ctrl-b\\right\\right\\right\\right\\right\\right\\right\\ctrl-p")); + verifyCommandBarCompletionVisible(); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // ctrl-p on the last character of the search term in a sed-replace should + // invoke search history completion. + clearSearchHistory(); + vi_global->searchHistory()->append(QStringLiteral("xyz")); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":s/xyz/replace/g\\ctrl-b\\right\\right\\right\\right\\ctrl-p")); + verifyCommandBarCompletionVisible(); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + QVERIFY(!emulatedCommandBar->isVisible()); + TestPressKey(QStringLiteral(":'<,'>s/xyz/replace/g\\ctrl-b\\right\\right\\right\\right\\right\\right\\right\\right\\right\\ctrl-p")); + verifyCommandBarCompletionVisible(); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // ctrl-p on some arbitrary character of the search term in a sed-replace should + // invoke search history completion. + clearSearchHistory(); + vi_global->searchHistory()->append(QStringLiteral("xyzaaaaaa")); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":s/xyzaaaaaa/replace/g\\ctrl-b\\right\\right\\right\\right\\right\\right\\right\\ctrl-p")); + verifyCommandBarCompletionVisible(); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + TestPressKey( + QStringLiteral(":'<,'>s/xyzaaaaaa/replace/g\\ctrl-b\\right\\right\\right\\right\\right\\right\\right\\right\\right\\right\\right\\right\\ctrl-p")); + verifyCommandBarCompletionVisible(); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // ctrl-p on some character *after" the search term should + // *not* invoke search history completion. + // Note: in s/xyz/replace/g, the "/" after the "z" is counted as part of the find term; + // this allows us to do xyz and get completions. + clearSearchHistory(); + clearCommandHistory(); + clearReplaceHistory(); + vi_global->searchHistory()->append(QStringLiteral("xyz")); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":s/xyz/replace/g\\ctrl-b\\right\\right\\right\\right\\right\\right\\ctrl-p")); + QVERIFY(!emulatedCommandBarCompleter()->popup()->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + clearSearchHistory(); + clearCommandHistory(); + TestPressKey(QStringLiteral(":'<,'>s/xyz/replace/g\\ctrl-b\\right\\right\\right\\right\\right\\right\\right\\right\\right\\right\\right\\right\\ctrl-p")); + QVERIFY(!emulatedCommandBarCompleter()->popup()->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + + // Make sure it's the search history we're invoking. + clearSearchHistory(); + vi_global->searchHistory()->append(QStringLiteral("xyzaaaaaa")); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":s//replace/g\\ctrl-b\\right\\right\\ctrl-p")); + verifyCommandBarCompletionVisible(); + verifyCommandBarCompletionsMatches(QStringList() << QStringLiteral("xyzaaaaaa")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + TestPressKey(QStringLiteral(":.,.+6s//replace/g\\ctrl-b\\right\\right\\right\\right\\right\\right\\right\\ctrl-p")); + verifyCommandBarCompletionsMatches(QStringList() << QStringLiteral("xyzaaaaaa")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // (Search history should be reversed). + clearSearchHistory(); + vi_global->searchHistory()->append(QStringLiteral("xyzaaaaaa")); + vi_global->searchHistory()->append(QStringLiteral("abc")); + vi_global->searchHistory()->append(QStringLiteral("def")); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":s//replace/g\\ctrl-b\\right\\right\\ctrl-p")); + verifyCommandBarCompletionVisible(); + verifyCommandBarCompletionsMatches(QStringList() << QStringLiteral("def") << QStringLiteral("abc") << QStringLiteral("xyzaaaaaa")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // Completion prefix is the current find term. + clearSearchHistory(); + vi_global->searchHistory()->append(QStringLiteral("xy:zaaaaaa")); + vi_global->searchHistory()->append(QStringLiteral("abc")); + vi_global->searchHistory()->append(QStringLiteral("def")); + vi_global->searchHistory()->append(QStringLiteral("xy:zbaaaaa")); + vi_global->searchHistory()->append(QStringLiteral("xy:zcaaaaa")); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":s//replace/g\\ctrl-dxy:z\\ctrl-p")); + verifyCommandBarCompletionVisible(); + verifyCommandBarCompletionsMatches(QStringList() << QStringLiteral("xy:zcaaaaa") << QStringLiteral("xy:zbaaaaa") << QStringLiteral("xy:zaaaaaa")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // Replace entire search term with completion. + clearSearchHistory(); + vi_global->searchHistory()->append(QStringLiteral("ab,cd")); + vi_global->searchHistory()->append(QStringLiteral("ab,xy")); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":s//replace/g\\ctrl-dab,\\ctrl-p\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/ab,cd/replace/g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + TestPressKey(QStringLiteral(":'<,'>s//replace/g\\ctrl-dab,\\ctrl-p\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("'<,'>s/ab,cd/replace/g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // Place the cursor at the end of find term. + clearSearchHistory(); + vi_global->searchHistory()->append(QStringLiteral("ab,xy")); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":s//replace/g\\ctrl-dab,\\ctrl-pX")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/ab,xyX/replace/g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + TestPressKey(QStringLiteral(":.,.+7s//replace/g\\ctrl-dab,\\ctrl-pX")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral(".,.+7s/ab,xyX/replace/g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // Leave find term unchanged if there is no search history. + clearSearchHistory(); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":s/nose/replace/g\\ctrl-b\\right\\right\\right\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/nose/replace/g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // Leave cursor position unchanged if there is no search history. + clearSearchHistory(); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":s/nose/replace/g\\ctrl-b\\right\\right\\right\\ctrl-pX")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/nXose/replace/g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // ctrl-p on the first character of the replace term in a sed-replace should + // invoke replace history completion. + clearSearchHistory(); + clearReplaceHistory(); + clearCommandHistory(); + vi_global->replaceHistory()->append(QStringLiteral("replace")); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":s/search/replace/g\\left\\left\\left\\left\\left\\left\\left\\left\\left\\ctrl-p")); + verifyCommandBarCompletionVisible(); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + TestPressKey(QStringLiteral(":'<,'>s/search/replace/g\\left\\left\\left\\left\\left\\left\\left\\left\\left\\ctrl-p")); + verifyCommandBarCompletionVisible(); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // ctrl-p on the last character of the replace term in a sed-replace should + // invoke replace history completion. + clearReplaceHistory(); + vi_global->replaceHistory()->append(QStringLiteral("replace")); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":s/xyz/replace/g\\left\\left\\ctrl-p")); + verifyCommandBarCompletionVisible(); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + TestPressKey(QStringLiteral(":'<,'>s/xyz/replace/g\\left\\left\\ctrl-p")); + verifyCommandBarCompletionVisible(); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // ctrl-p on some arbitrary character of the search term in a sed-replace should + // invoke search history completion. + clearReplaceHistory(); + vi_global->replaceHistory()->append(QStringLiteral("replaceaaaaaa")); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":s/xyzaaaaaa/replace/g\\left\\left\\left\\left\\ctrl-p")); + verifyCommandBarCompletionVisible(); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + TestPressKey(QStringLiteral(":'<,'>s/xyzaaaaaa/replace/g\\left\\left\\left\\left\\ctrl-p")); + verifyCommandBarCompletionVisible(); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // ctrl-p on some character *after" the replace term should + // *not* invoke replace history completion. + // Note: in s/xyz/replace/g, the "/" after the "e" is counted as part of the replace term; + // this allows us to do replace and get completions. + clearSearchHistory(); + clearCommandHistory(); + clearReplaceHistory(); + vi_global->replaceHistory()->append(QStringLiteral("xyz")); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":s/xyz/replace/g\\left\\ctrl-p")); + QVERIFY(!emulatedCommandBarCompleter()->popup()->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + clearSearchHistory(); + clearCommandHistory(); + TestPressKey(QStringLiteral(":'<,'>s/xyz/replace/g\\left\\ctrl-p")); + QVERIFY(!emulatedCommandBarCompleter()->popup()->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + + // (Replace history should be reversed). + clearReplaceHistory(); + vi_global->replaceHistory()->append(QStringLiteral("xyzaaaaaa")); + vi_global->replaceHistory()->append(QStringLiteral("abc")); + vi_global->replaceHistory()->append(QStringLiteral("def")); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":s/search//g\\left\\left\\ctrl-p")); + verifyCommandBarCompletionVisible(); + verifyCommandBarCompletionsMatches(QStringList() << QStringLiteral("def") << QStringLiteral("abc") << QStringLiteral("xyzaaaaaa")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // Completion prefix is the current replace term. + clearReplaceHistory(); + vi_global->replaceHistory()->append(QStringLiteral("xy:zaaaaaa")); + vi_global->replaceHistory()->append(QStringLiteral("abc")); + vi_global->replaceHistory()->append(QStringLiteral("def")); + vi_global->replaceHistory()->append(QStringLiteral("xy:zbaaaaa")); + vi_global->replaceHistory()->append(QStringLiteral("xy:zcaaaaa")); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":'<,'>s/replace/search/g\\ctrl-fxy:z\\ctrl-p")); + verifyCommandBarCompletionVisible(); + verifyCommandBarCompletionsMatches(QStringList() << QStringLiteral("xy:zcaaaaa") << QStringLiteral("xy:zbaaaaa") << QStringLiteral("xy:zaaaaaa")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // Replace entire search term with completion. + clearReplaceHistory(); + clearSearchHistory(); + vi_global->replaceHistory()->append(QStringLiteral("ab,cd")); + vi_global->replaceHistory()->append(QStringLiteral("ab,xy")); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":s/search//g\\ctrl-fab,\\ctrl-p\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/search/ab,cd/g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + TestPressKey(QStringLiteral(":'<,'>s/search//g\\ctrl-fab,\\ctrl-p\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("'<,'>s/search/ab,cd/g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // Place the cursor at the end of replace term. + clearReplaceHistory(); + vi_global->replaceHistory()->append(QStringLiteral("ab,xy")); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":s/search//g\\ctrl-fab,\\ctrl-pX")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/search/ab,xyX/g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + TestPressKey(QStringLiteral(":.,.+7s/search//g\\ctrl-fab,\\ctrl-pX")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral(".,.+7s/search/ab,xyX/g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // Leave replace term unchanged if there is no replace history. + clearReplaceHistory(); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":s/nose/replace/g\\left\\left\\left\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/nose/replace/g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // Leave cursor position unchanged if there is no replace history. + clearSearchHistory(); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":s/nose/replace/g\\left\\left\\left\\left\\ctrl-pX")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/nose/replaXce/g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // Invoke replacement history even when the "find" term is empty. + BeginTest(QLatin1String("")); + clearReplaceHistory(); + clearSearchHistory(); + vi_global->replaceHistory()->append(QStringLiteral("ab,xy")); + vi_global->searchHistory()->append(QStringLiteral("whoops")); + TestPressKey(QStringLiteral(":s///g\\ctrl-f\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s//ab,xy/g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // Move the cursor back to the last manual edit point when aborting completion. + BeginTest(QLatin1String("")); + clearSearchHistory(); + vi_global->searchHistory()->append(QStringLiteral("xyzaaaaa")); + TestPressKey(QStringLiteral(":s/xyz/replace/g\\ctrl-b\\right\\right\\right\\right\\righta\\ctrl-p\\ctrl-[X")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/xyzaX/replace/g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // Don't blank the "find" term if there is no search history that begins with the + // current "find" term. + BeginTest(QLatin1String("")); + clearSearchHistory(); + vi_global->searchHistory()->append(QStringLiteral("doesnothavexyzasaprefix")); + TestPressKey(QStringLiteral(":s//replace/g\\ctrl-dxyz\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/xyz/replace/g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // Escape the delimiter if it occurs in a search history term - searching for it likely won't + // work, but at least it won't crash! + BeginTest(QLatin1String("")); + clearSearchHistory(); + vi_global->searchHistory()->append(QStringLiteral("search")); + vi_global->searchHistory()->append(QStringLiteral("aa/aa\\/a")); + vi_global->searchHistory()->append(QStringLiteral("ss/ss")); + TestPressKey(QStringLiteral(":s//replace/g\\ctrl-d\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/ss\\/ss/replace/g")); + TestPressKey(QStringLiteral("\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/aa\\/aa\\/a/replace/g")); + TestPressKey(QStringLiteral("\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/search/replace/g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + clearSearchHistory(); // Now do the same, but with a different delimiter. + vi_global->searchHistory()->append(QStringLiteral("search")); + vi_global->searchHistory()->append(QStringLiteral("aa:aa\\:a")); + vi_global->searchHistory()->append(QStringLiteral("ss:ss")); + TestPressKey(QStringLiteral(":s::replace:g\\ctrl-d\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s:ss\\:ss:replace:g")); + TestPressKey(QStringLiteral("\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s:aa\\:aa\\:a:replace:g")); + TestPressKey(QStringLiteral("\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s:search:replace:g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // Remove \C if occurs in search history. + BeginTest(QLatin1String("")); + clearSearchHistory(); + vi_global->searchHistory()->append(QStringLiteral("s\\Cear\\\\Cch")); + TestPressKey(QStringLiteral(":s::replace:g\\ctrl-d\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s:sear\\\\Cch:replace:g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // Don't blank the "replace" term if there is no search history that begins with the + // current "replace" term. + BeginTest(QLatin1String("")); + clearReplaceHistory(); + vi_global->replaceHistory()->append(QStringLiteral("doesnothavexyzasaprefix")); + TestPressKey(QStringLiteral(":s/search//g\\ctrl-fxyz\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/search/xyz/g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // Escape the delimiter if it occurs in a replace history term - searching for it likely won't + // work, but at least it won't crash! + BeginTest(QLatin1String("")); + clearReplaceHistory(); + vi_global->replaceHistory()->append(QStringLiteral("replace")); + vi_global->replaceHistory()->append(QStringLiteral("aa/aa\\/a")); + vi_global->replaceHistory()->append(QStringLiteral("ss/ss")); + TestPressKey(QStringLiteral(":s/search//g\\ctrl-f\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/search/ss\\/ss/g")); + TestPressKey(QStringLiteral("\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/search/aa\\/aa\\/a/g")); + TestPressKey(QStringLiteral("\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/search/replace/g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + clearReplaceHistory(); // Now do the same, but with a different delimiter. + vi_global->replaceHistory()->append(QStringLiteral("replace")); + vi_global->replaceHistory()->append(QStringLiteral("aa:aa\\:a")); + vi_global->replaceHistory()->append(QStringLiteral("ss:ss")); + TestPressKey(QStringLiteral(":s:search::g\\ctrl-f\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s:search:ss\\:ss:g")); + TestPressKey(QStringLiteral("\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s:search:aa\\:aa\\:a:g")); + TestPressKey(QStringLiteral("\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s:search:replace:g")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // In search mode, don't blank current text on completion if there is no item in the search history which + // has the current text as a prefix. + BeginTest(QLatin1String("")); + clearSearchHistory(); + vi_global->searchHistory()->append(QStringLiteral("doesnothavexyzasaprefix")); + TestPressKey(QStringLiteral("/xyz\\ctrl-p")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("xyz")); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // Don't dismiss the command completion just because the cursor ends up *temporarily* at a place where + // command completion is disallowed when cycling through completions. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral(":set/se\\left\\left\\left-\\ctrl-p")); + verifyCommandBarCompletionVisible(); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss completer + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss bar. + FinishTest(""); + + // Don't expand mappings meant for Normal mode in the emulated command bar. + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("foo"), QStringLiteral("xyz"), Mappings::NonRecursive); + DoTest("bar foo xyz", "/foo\\enterrX", "bar Xoo xyz"); + clearAllMappings(); + + // Incremental search and replace. + QLabel *interactiveSedReplaceLabel = emulatedCommandBar->findChild(QStringLiteral("interactivesedreplace")); + QVERIFY(interactiveSedReplaceLabel); + + BeginTest(QStringLiteral("foo")); + TestPressKey(QStringLiteral(":s/foo/bar/c\\enter")); + QVERIFY(interactiveSedReplaceLabel->isVisible()); + QVERIFY(!commandResponseMessageDisplay()->isVisible()); + QVERIFY(!emulatedCommandBarTextEdit()->isVisible()); + QVERIFY(!emulatedCommandTypeIndicator()->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-c")); // Dismiss search and replace. + QVERIFY(!emulatedCommandBar->isVisible()); + FinishTest("foo"); + + // Clear the flag that stops the command response from being shown after an incremental search and + // replace, and also make sure that the edit and bar type indicator are not forcibly hidden. + BeginTest(QStringLiteral("foo")); + TestPressKey(QStringLiteral(":s/foo/bar/c\\enter\\ctrl-c")); + TestPressKey(QStringLiteral(":s/foo/bar/")); + QVERIFY(emulatedCommandBarTextEdit()->isVisible()); + QVERIFY(emulatedCommandTypeIndicator()->isVisible()); + TestPressKey(QStringLiteral("\\enter")); + QVERIFY(commandResponseMessageDisplay()->isVisible()); + FinishTest("bar"); + + // Hide the incremental search and replace label when we show the bar. + BeginTest(QStringLiteral("foo")); + TestPressKey(QStringLiteral(":s/foo/bar/c\\enter\\ctrl-c")); + TestPressKey(QStringLiteral(":")); + QVERIFY(!interactiveSedReplaceLabel->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-c")); + FinishTest("foo"); + + // The "c" marker can be anywhere in the three chars following the delimiter. + BeginTest(QStringLiteral("foo")); + TestPressKey(QStringLiteral(":s/foo/bar/cgi\\enter")); + QVERIFY(interactiveSedReplaceLabel->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-c")); + FinishTest("foo"); + BeginTest(QStringLiteral("foo")); + TestPressKey(QStringLiteral(":s/foo/bar/igc\\enter")); + QVERIFY(interactiveSedReplaceLabel->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-c")); + FinishTest("foo"); + BeginTest(QStringLiteral("foo")); + TestPressKey(QStringLiteral(":s/foo/bar/icg\\enter")); + QVERIFY(interactiveSedReplaceLabel->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-c")); + FinishTest("foo"); + BeginTest(QStringLiteral("foo")); + TestPressKey(QStringLiteral(":s/foo/bar/ic\\enter")); + QVERIFY(interactiveSedReplaceLabel->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-c")); + FinishTest("foo"); + BeginTest(QStringLiteral("foo")); + TestPressKey(QStringLiteral(":s/foo/bar/ci\\enter")); + QVERIFY(interactiveSedReplaceLabel->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-c")); + FinishTest("foo"); + + // Emulated command bar is still active during an incremental search and replace. + BeginTest(QStringLiteral("foo")); + TestPressKey(QStringLiteral(":s/foo/bar/c\\enter")); + TestPressKey(QStringLiteral("idef\\esc")); + FinishTest("foo"); + + // Emulated command bar text is not edited during an incremental search and replace. + BeginTest(QStringLiteral("foo")); + TestPressKey(QStringLiteral(":s/foo/bar/c\\enter")); + TestPressKey(QStringLiteral("def")); + QCOMPARE(emulatedCommandBarTextEdit()->text(), QStringLiteral("s/foo/bar/c")); + TestPressKey(QStringLiteral("\\ctrl-c")); + FinishTest("foo"); + + // Pressing "n" when there is only a single change we can make aborts incremental search + // and replace. + BeginTest(QStringLiteral("foo")); + TestPressKey(QStringLiteral(":s/foo/bar/c\\enter")); + TestPressKey(QStringLiteral("n")); + QVERIFY(!interactiveSedReplaceLabel->isVisible()); + TestPressKey(QStringLiteral("ixyz\\esc")); + FinishTest("xyzfoo"); + + // Pressing "n" when there is only a single change we can make aborts incremental search + // and replace, and shows the no replacements on no lines. + BeginTest(QStringLiteral("foo")); + TestPressKey(QStringLiteral(":s/foo/bar/c\\enter")); + TestPressKey(QStringLiteral("n")); + QVERIFY(commandResponseMessageDisplay()->isVisible()); + verifyShowsNumberOfReplacementsAcrossNumberOfLines(0, 0); + FinishTest("foo"); + + // First possible match is highlighted when we start an incremental search and replace, and + // cleared if we press 'n'. + BeginTest(QStringLiteral(" xyz 123 foo bar")); + TestPressKey(QStringLiteral(":s/foo/bar/gc\\enter")); + QCOMPARE(rangesOnFirstLine().size(), rangesInitial.size() + 1); + QCOMPARE(rangesOnFirstLine().constFirst()->start().line(), 0); + QCOMPARE(rangesOnFirstLine().constFirst()->start().column(), 10); + QCOMPARE(rangesOnFirstLine().constFirst()->end().line(), 0); + QCOMPARE(rangesOnFirstLine().constFirst()->end().column(), 13); + TestPressKey(QStringLiteral("n")); + QCOMPARE(rangesOnFirstLine().size(), rangesInitial.size()); + FinishTest(" xyz 123 foo bar"); + + // Second possible match highlighted if we start incremental search and replace and press 'n', + // cleared if we press 'n' again. + BeginTest(QStringLiteral(" xyz 123 foo foo bar")); + TestPressKey(QStringLiteral(":s/foo/bar/gc\\enter")); + TestPressKey(QStringLiteral("n")); + QCOMPARE(rangesOnFirstLine().size(), rangesInitial.size() + 1); + QCOMPARE(rangesOnFirstLine().constFirst()->start().line(), 0); + QCOMPARE(rangesOnFirstLine().constFirst()->start().column(), 14); + QCOMPARE(rangesOnFirstLine().constFirst()->end().line(), 0); + QCOMPARE(rangesOnFirstLine().constFirst()->end().column(), 17); + TestPressKey(QStringLiteral("n")); + QCOMPARE(rangesOnFirstLine().size(), rangesInitial.size()); + FinishTest(" xyz 123 foo foo bar"); + + // Perform replacement if we press 'y' on the first match. + BeginTest(QStringLiteral(" xyz foo 123 foo bar")); + TestPressKey(QStringLiteral(":s/foo/bar/gc\\enter")); + TestPressKey(QStringLiteral("y")); + TestPressKey(QStringLiteral("\\ctrl-c")); + FinishTest(" xyz bar 123 foo bar"); + + // Replacement uses grouping, etc. + BeginTest(QStringLiteral(" xyz def 123 foo bar")); + TestPressKey(QStringLiteral(":s/d\\\\(e\\\\)\\\\(f\\\\)/x\\\\1\\\\U\\\\2/gc\\enter")); + TestPressKey(QStringLiteral("y")); + TestPressKey(QStringLiteral("\\ctrl-c")); + FinishTest(" xyz xeF 123 foo bar"); + + // On replacement, highlight next match. + BeginTest(QStringLiteral(" xyz foo 123 foo bar")); + TestPressKey(QStringLiteral(":s/foo/bar/cg\\enter")); + TestPressKey(QStringLiteral("y")); + QCOMPARE(rangesOnFirstLine().size(), rangesInitial.size() + 1); + QCOMPARE(rangesOnFirstLine().constFirst()->start().line(), 0); + QCOMPARE(rangesOnFirstLine().constFirst()->start().column(), 14); + QCOMPARE(rangesOnFirstLine().constFirst()->end().line(), 0); + QCOMPARE(rangesOnFirstLine().constFirst()->end().column(), 17); + TestPressKey(QStringLiteral("\\ctrl-c")); + FinishTest(" xyz bar 123 foo bar"); + + // On replacement, if there is no further match, abort incremental search and replace. + BeginTest(QStringLiteral(" xyz foo 123 foa bar")); + TestPressKey(QStringLiteral(":s/foo/bar/cg\\enter")); + TestPressKey(QStringLiteral("y")); + QVERIFY(commandResponseMessageDisplay()->isVisible()); + TestPressKey(QStringLiteral("ggidone\\esc")); + FinishTest("done xyz bar 123 foa bar"); + + // After replacement, the next match is sought after the end of the replacement text. + BeginTest(QStringLiteral("foofoo")); + TestPressKey(QStringLiteral(":s/foo/barfoo/cg\\enter")); + TestPressKey(QStringLiteral("y")); + QCOMPARE(rangesOnFirstLine().size(), rangesInitial.size() + 1); + QCOMPARE(rangesOnFirstLine().constFirst()->start().line(), 0); + QCOMPARE(rangesOnFirstLine().constFirst()->start().column(), 6); + QCOMPARE(rangesOnFirstLine().constFirst()->end().line(), 0); + QCOMPARE(rangesOnFirstLine().constFirst()->end().column(), 9); + TestPressKey(QStringLiteral("\\ctrl-c")); + FinishTest("barfoofoo"); + BeginTest(QStringLiteral("xffy")); + TestPressKey(QStringLiteral(":s/f/bf/cg\\enter")); + TestPressKey(QStringLiteral("yy")); + FinishTest("xbfbfy"); + + // Make sure the incremental search bar label contains the "instruction" keypresses. + const QString interactiveSedReplaceShortcuts = QStringLiteral("(y/n/a/q/l)"); + BeginTest(QStringLiteral("foofoo")); + TestPressKey(QStringLiteral(":s/foo/barfoo/cg\\enter")); + QVERIFY(interactiveSedReplaceLabel->text().contains(interactiveSedReplaceShortcuts)); + TestPressKey(QStringLiteral("\\ctrl-c")); + FinishTest("foofoo"); + + // Make sure the incremental search bar label contains a reference to the text we're going to + // replace with. + // We're going to be a bit vague about the precise text due to localization issues. + BeginTest(QStringLiteral("fabababbbar")); + TestPressKey(QStringLiteral(":s/f\\\\([ab]\\\\+\\\\)/1\\\\U\\\\12/c\\enter")); + QVERIFY(interactiveSedReplaceLabel->text().contains(QStringLiteral("1ABABABBBA2"))); + TestPressKey(QStringLiteral("\\ctrl-c")); + FinishTest("fabababbbar"); + + // Replace newlines in the "replace?" message with "\\n" + BeginTest(QStringLiteral("foo")); + TestPressKey(QStringLiteral(":s/foo/bar\\\\nxyz\\\\n123/c\\enter")); + QVERIFY(interactiveSedReplaceLabel->text().contains(QStringLiteral("bar\\nxyz\\n123"))); + TestPressKey(QStringLiteral("\\ctrl-c")); + FinishTest("foo"); + + // Update the "confirm replace?" message on pressing "y". + BeginTest(QStringLiteral("fabababbbar fabbb")); + TestPressKey(QStringLiteral(":s/f\\\\([ab]\\\\+\\\\)/1\\\\U\\\\12/gc\\enter")); + TestPressKey(QStringLiteral("y")); + QVERIFY(interactiveSedReplaceLabel->text().contains(QStringLiteral("1ABBB2"))); + QVERIFY(interactiveSedReplaceLabel->text().contains(interactiveSedReplaceShortcuts)); + TestPressKey(QStringLiteral("\\ctrl-c")); + FinishTest("1ABABABBBA2r fabbb"); + + // Update the "confirm replace?" message on pressing "n". + BeginTest(QStringLiteral("fabababbbar fabab")); + TestPressKey(QStringLiteral(":s/f\\\\([ab]\\\\+\\\\)/1\\\\U\\\\12/gc\\enter")); + TestPressKey(QStringLiteral("n")); + QVERIFY(interactiveSedReplaceLabel->text().contains(QStringLiteral("1ABAB2"))); + QVERIFY(interactiveSedReplaceLabel->text().contains(interactiveSedReplaceShortcuts)); + TestPressKey(QStringLiteral("\\ctrl-c")); + FinishTest("fabababbbar fabab"); + + // Cursor is placed at the beginning of first match. + BeginTest(QStringLiteral(" foo foo foo")); + TestPressKey(QStringLiteral(":s/foo/bar/c\\enter")); + verifyCursorAt(Cursor(0, 2)); + TestPressKey(QStringLiteral("\\ctrl-c")); + FinishTest(" foo foo foo"); + + // "y" and "n" update the cursor pos. + BeginTest(QStringLiteral(" foo foo foo")); + TestPressKey(QStringLiteral(":s/foo/bar/cg\\enter")); + TestPressKey(QStringLiteral("y")); + verifyCursorAt(Cursor(0, 8)); + TestPressKey(QStringLiteral("n")); + verifyCursorAt(Cursor(0, 12)); + TestPressKey(QStringLiteral("\\ctrl-c")); + FinishTest(" bar foo foo"); + + // If we end due to a "y" or "n" on the final match, leave the cursor at the beginning of the final match. + BeginTest(QStringLiteral(" foo")); + TestPressKey(QStringLiteral(":s/foo/bar/c\\enter")); + TestPressKey(QStringLiteral("y")); + verifyCursorAt(Cursor(0, 2)); + FinishTest(" bar"); + BeginTest(QStringLiteral(" foo")); + TestPressKey(QStringLiteral(":s/foo/bar/c\\enter")); + TestPressKey(QStringLiteral("n")); + verifyCursorAt(Cursor(0, 2)); + FinishTest(" foo"); + + // Respect ranges. + BeginTest(QStringLiteral("foo foo\nfoo foo\nfoo foo\nfoo foo\n")); + TestPressKey(QStringLiteral("jVj:s/foo/bar/gc\\enter")); + TestPressKey(QStringLiteral("ynny")); + QVERIFY(commandResponseMessageDisplay()->isVisible()); + TestPressKey(QStringLiteral("ggidone \\ctrl-c")); + FinishTest("done foo foo\nbar foo\nfoo bar\nfoo foo\n"); + BeginTest(QStringLiteral("foo foo\nfoo foo\nfoo foo\nfoo foo\n")); + TestPressKey(QStringLiteral("jVj:s/foo/bar/gc\\enter")); + TestPressKey(QStringLiteral("nyyn")); + QVERIFY(commandResponseMessageDisplay()->isVisible()); + TestPressKey(QStringLiteral("ggidone \\ctrl-c")); + FinishTest("done foo foo\nfoo bar\nbar foo\nfoo foo\n"); + BeginTest(QStringLiteral("foo foo\nfoo foo\nfoo foo\nfoo foo\n")); + TestPressKey(QStringLiteral("j:s/foo/bar/gc\\enter")); + TestPressKey(QStringLiteral("ny")); + QVERIFY(commandResponseMessageDisplay()->isVisible()); + TestPressKey(QStringLiteral("ggidone \\ctrl-c")); + FinishTest("done foo foo\nfoo bar\nfoo foo\nfoo foo\n"); + BeginTest(QStringLiteral("foo foo\nfoo foo\nfoo foo\nfoo foo\n")); + TestPressKey(QStringLiteral("j:s/foo/bar/gc\\enter")); + TestPressKey(QStringLiteral("yn")); + QVERIFY(commandResponseMessageDisplay()->isVisible()); + TestPressKey(QStringLiteral("ggidone \\ctrl-c")); + FinishTest("done foo foo\nbar foo\nfoo foo\nfoo foo\n"); + + // If no initial match can be found, abort and show a "no replacements" message. + // The cursor position should remain unnchanged. + BeginTest(QStringLiteral("fab")); + TestPressKey(QStringLiteral("l:s/fee/bar/c\\enter")); + QVERIFY(commandResponseMessageDisplay()->isVisible()); + verifyShowsNumberOfReplacementsAcrossNumberOfLines(0, 0); + QVERIFY(!interactiveSedReplaceLabel->isVisible()); + TestPressKey(QStringLiteral("rX")); + BeginTest(QStringLiteral("fXb")); + + // Case-sensitive by default. + BeginTest(QStringLiteral("foo Foo FOo foo foO")); + TestPressKey(QStringLiteral(":s/foo/bar/cg\\enter")); + TestPressKey(QStringLiteral("yyggidone\\esc")); + FinishTest("donebar Foo FOo bar foO"); + + // Case-insensitive if "i" flag is used. + BeginTest(QStringLiteral("foo Foo FOo foo foO")); + TestPressKey(QStringLiteral(":s/foo/bar/icg\\enter")); + TestPressKey(QStringLiteral("yyyyyggidone\\esc")); + FinishTest("donebar bar bar bar bar"); + + // Only one replacement per-line unless "g" flag is used. + BeginTest(QStringLiteral("boo foo 123 foo\nxyz foo foo\nfoo foo foo\nxyz\nfoo foo\nfoo 123 foo")); + TestPressKey(QStringLiteral("jVjjj:s/foo/bar/c\\enter")); + TestPressKey(QStringLiteral("yynggidone\\esc")); + FinishTest("doneboo foo 123 foo\nxyz bar foo\nbar foo foo\nxyz\nfoo foo\nfoo 123 foo"); + BeginTest(QStringLiteral("boo foo 123 foo\nxyz foo foo\nfoo foo foo\nxyz\nfoo foo\nfoo 123 foo")); + TestPressKey(QStringLiteral("jVjjj:s/foo/bar/c\\enter")); + TestPressKey(QStringLiteral("nnyggidone\\esc")); + FinishTest("doneboo foo 123 foo\nxyz foo foo\nfoo foo foo\nxyz\nbar foo\nfoo 123 foo"); + + // If replacement contains new lines, adjust the end line down. + BeginTest(QStringLiteral("foo\nfoo1\nfoo2\nfoo3")); + TestPressKey(QStringLiteral("jVj:s/foo/bar\\\\n/gc\\enter")); + TestPressKey(QStringLiteral("yyggidone\\esc")); + FinishTest("donefoo\nbar\n1\nbar\n2\nfoo3"); + BeginTest(QStringLiteral("foo\nfoo1\nfoo2\nfoo3")); + TestPressKey(QStringLiteral("jVj:s/foo/bar\\\\nboo\\\\n/gc\\enter")); + TestPressKey(QStringLiteral("yyggidone\\esc")); + FinishTest("donefoo\nbar\nboo\n1\nbar\nboo\n2\nfoo3"); + + // With "g" and a replacement that involves multiple lines, resume search from the end of the last line added. + BeginTest(QStringLiteral("foofoo")); + TestPressKey(QStringLiteral(":s/foo/bar\\\\n/gc\\enter")); + TestPressKey(QStringLiteral("yyggidone\\esc")); + FinishTest("donebar\nbar\n"); + BeginTest(QStringLiteral("foofoo")); + TestPressKey(QStringLiteral(":s/foo/bar\\\\nxyz\\\\nfoo/gc\\enter")); + TestPressKey(QStringLiteral("yyggidone\\esc")); + FinishTest("donebar\nxyz\nfoobar\nxyz\nfoo"); + + // Without "g" and with a replacement that involves multiple lines, resume search from the line after the line just added. + BeginTest(QStringLiteral("foofoo1\nfoo2\nfoo3")); + TestPressKey(QStringLiteral("Vj:s/foo/bar\\\\nxyz\\\\nfoo/c\\enter")); + TestPressKey(QStringLiteral("yyggidone\\esc")); + FinishTest("donebar\nxyz\nfoofoo1\nbar\nxyz\nfoo2\nfoo3"); + + // Regression test: handle 'g' when it occurs before 'i' and 'c'. + BeginTest(QStringLiteral("foo fOo")); + TestPressKey(QStringLiteral(":s/foo/bar/gci\\enter")); + TestPressKey(QStringLiteral("yyggidone\\esc")); + FinishTest("donebar bar"); + + // When the search terms swallows several lines, move the endline up accordingly. + BeginTest(QStringLiteral("foo\nfoo1\nfoo\nfoo2\nfoo\nfoo3")); + TestPressKey(QStringLiteral("V3j:s/foo\\\\nfoo/bar/cg\\enter")); + TestPressKey(QStringLiteral("yyggidone\\esc")); + FinishTest("donebar1\nbar2\nfoo\nfoo3"); + BeginTest(QStringLiteral("foo\nfoo\nfoo1\nfoo\nfoo\nfoo2\nfoo\nfoo\nfoo3")); + TestPressKey(QStringLiteral("V5j:s/foo\\\\nfoo\\\\nfoo/bar/cg\\enter")); + TestPressKey(QStringLiteral("yyggidone\\esc")); + FinishTest("donebar1\nbar2\nfoo\nfoo\nfoo3"); + // Make sure we still adjust endline down if the replacement text has '\n's. + BeginTest(QStringLiteral("foo\nfoo\nfoo1\nfoo\nfoo\nfoo2\nfoo\nfoo\nfoo3")); + TestPressKey(QStringLiteral("V5j:s/foo\\\\nfoo\\\\nfoo/bar\\\\n/cg\\enter")); + TestPressKey(QStringLiteral("yyggidone\\esc")); + FinishTest("donebar\n1\nbar\n2\nfoo\nfoo\nfoo3"); + + // Status reports. + BeginTest(QStringLiteral("foo")); + TestPressKey(QStringLiteral(":s/foo/bar/c\\enter")); + TestPressKey(QStringLiteral("y")); + verifyShowsNumberOfReplacementsAcrossNumberOfLines(1, 1); + FinishTest("bar"); + BeginTest(QStringLiteral("foo foo foo")); + TestPressKey(QStringLiteral(":s/foo/bar/gc\\enter")); + TestPressKey(QStringLiteral("yyy")); + verifyShowsNumberOfReplacementsAcrossNumberOfLines(3, 1); + FinishTest("bar bar bar"); + BeginTest(QStringLiteral("foo foo foo")); + TestPressKey(QStringLiteral(":s/foo/bar/gc\\enter")); + TestPressKey(QStringLiteral("yny")); + verifyShowsNumberOfReplacementsAcrossNumberOfLines(2, 1); + FinishTest("bar foo bar"); + BeginTest(QStringLiteral("foo\nfoo")); + TestPressKey(QStringLiteral(":%s/foo/bar/gc\\enter")); + TestPressKey(QStringLiteral("yy")); + verifyShowsNumberOfReplacementsAcrossNumberOfLines(2, 2); + FinishTest("bar\nbar"); + BeginTest(QStringLiteral("foo foo\nfoo foo\nfoo foo")); + TestPressKey(QStringLiteral(":%s/foo/bar/gc\\enter")); + TestPressKey(QStringLiteral("yynnyy")); + verifyShowsNumberOfReplacementsAcrossNumberOfLines(4, 2); + FinishTest("bar bar\nfoo foo\nbar bar"); + BeginTest(QStringLiteral("foofoo")); + TestPressKey(QStringLiteral(":s/foo/bar\\\\nxyz/gc\\enter")); + TestPressKey(QStringLiteral("yy")); + verifyShowsNumberOfReplacementsAcrossNumberOfLines(2, 1); + FinishTest("bar\nxyzbar\nxyz"); + BeginTest(QStringLiteral("foofoofoo")); + TestPressKey(QStringLiteral(":s/foo/bar\\\\nxyz\\\\nboo/gc\\enter")); + TestPressKey(QStringLiteral("yyy")); + verifyShowsNumberOfReplacementsAcrossNumberOfLines(3, 1); + FinishTest("bar\nxyz\nboobar\nxyz\nboobar\nxyz\nboo"); + // Tricky one: how many lines are "touched" if a single replacement + // swallows multiple lines? I'm going to say the number of lines swallowed. + BeginTest(QStringLiteral("foo\nfoo\nfoo")); + TestPressKey(QStringLiteral(":s/foo\\\\nfoo\\\\nfoo/bar/c\\enter")); + TestPressKey(QStringLiteral("y")); + verifyShowsNumberOfReplacementsAcrossNumberOfLines(1, 3); + FinishTest("bar"); + BeginTest(QStringLiteral("foo\nfoo\nfoo\n")); + TestPressKey(QStringLiteral(":s/foo\\\\nfoo\\\\nfoo\\\\n/bar/c\\enter")); + TestPressKey(QStringLiteral("y")); + verifyShowsNumberOfReplacementsAcrossNumberOfLines(1, 4); + FinishTest("bar"); + + // "Undo" undoes last replacement. + BeginTest(QStringLiteral("foo foo foo foo")); + TestPressKey(QStringLiteral(":s/foo/bar/cg\\enter")); + TestPressKey(QStringLiteral("nyynu")); + FinishTest("foo bar foo foo"); + + // "l" does the current replacement then exits. + BeginTest(QStringLiteral("foo foo foo foo foo foo")); + TestPressKey(QStringLiteral(":s/foo/bar/cg\\enter")); + TestPressKey(QStringLiteral("nnl")); + verifyShowsNumberOfReplacementsAcrossNumberOfLines(1, 1); + FinishTest("foo foo bar foo foo foo"); + + // "q" just exits. + BeginTest(QStringLiteral("foo foo foo foo foo foo")); + TestPressKey(QStringLiteral(":s/foo/bar/cg\\enter")); + TestPressKey(QStringLiteral("yyq")); + verifyShowsNumberOfReplacementsAcrossNumberOfLines(2, 1); + FinishTest("bar bar foo foo foo foo"); + + // "a" replaces all remaining, then exits. + BeginTest(QStringLiteral("foo foo foo foo foo foo")); + TestPressKey(QStringLiteral(":s/foo/bar/cg\\enter")); + TestPressKey(QStringLiteral("nna")); + verifyShowsNumberOfReplacementsAcrossNumberOfLines(4, 1); + FinishTest("foo foo bar bar bar bar"); + + // The results of "a" can be undone in one go. + BeginTest(QStringLiteral("foo foo foo foo foo foo")); + TestPressKey(QStringLiteral(":s/foo/bar/cg\\enter")); + TestPressKey(QStringLiteral("ya")); + verifyShowsNumberOfReplacementsAcrossNumberOfLines(6, 1); + TestPressKey(QStringLiteral("u")); + FinishTest("bar foo foo foo foo foo"); +#if 0 + // XXX - as of Qt 5.5, simply replaying the correct QKeyEvents does *not* cause shortcuts + // to be triggered, so these tests cannot pass. + // It's possible that a solution involving QTestLib will be workable in the future, though. + + { + // Test the test suite: ensure that shortcuts are still being sent and received correctly. + // The test shortcut chosen should be one that does not conflict with built-in Kate ones. + FailsIfSlotNotCalled failsIfActionNotTriggered; + QAction *dummyAction = kate_view->actionCollection()->addAction("Woo"); + dummyAction->setShortcut(QKeySequence("Ctrl+]")); + QVERIFY(connect(dummyAction, SIGNAL(triggered()), &failsIfActionNotTriggered, SLOT(slot()))); + DoTest("foo", "\\ctrl-]", "foo"); + // Processing shortcuts seems to require events to be processed. + while (QApplication::hasPendingEvents()) + { + QApplication::processEvents(); + } + delete dummyAction; + } + { + // Test that shortcuts involving ctrl+ work correctly. + FailsIfSlotNotCalled failsIfActionNotTriggered; + QAction *dummyAction = kate_view->actionCollection()->addAction("Woo"); + dummyAction->setShortcut(QKeySequence("Ctrl+1")); + QVERIFY(connect(dummyAction, SIGNAL(triggered()), &failsIfActionNotTriggered, SLOT(slot()))); + DoTest("foo", "\\ctrl-1", "foo"); + // Processing shortcuts seems to require events to be processed. + while (QApplication::hasPendingEvents()) + { + QApplication::processEvents(); + } + delete dummyAction; + } + { + // Test that shortcuts involving alt+ work correctly. + FailsIfSlotNotCalled failsIfActionNotTriggered; + QAction *dummyAction = kate_view->actionCollection()->addAction("Woo"); + dummyAction->setShortcut(QKeySequence("Alt+1")); + QVERIFY(connect(dummyAction, SIGNAL(triggered()), &failsIfActionNotTriggered, SLOT(slot()))); + DoTest("foo", "\\alt-1", "foo"); + // Processing shortcuts seems to require events to be processed. + while (QApplication::hasPendingEvents()) + { + QApplication::processEvents(); + } + delete dummyAction; + } +#endif + + // Find the "Print" action for later use. + QAction *printAction = nullptr; + const auto viewActions = kate_view->actionCollection()->actions(); + for (QAction *action : viewActions) { + if (action->shortcut() == QKeySequence(QStringLiteral("Ctrl+p"))) { + printAction = action; + break; + } + } + + // Test that we don't inadvertently trigger shortcuts in kate_view when typing them in the + // emulated command bar. Requires the above test for shortcuts to be sent and received correctly + // to pass. + { + QVERIFY(mainWindow->isActiveWindow()); + QVERIFY(printAction); + FailsIfSlotCalled failsIfActionTriggered(QStringLiteral("The kate_view shortcut should not be triggered by typing it in emulated command bar!")); + // Don't invoke Print on failure, as this hangs instead of failing. + // disconnect(printAction, SIGNAL(triggered(bool)), kate_document, SLOT(print())); + connect(printAction, &QAction::triggered, &failsIfActionTriggered, &FailsIfSlotCalled::slot); + DoTest("foo bar foo bar", "/bar\\enterggd/\\ctrl-p\\enter.", "bar"); + // Processing shortcuts seems to require events to be processed. + QApplication::processEvents(); + } + + // Test that the interactive search replace does not handle general keypresses like ctrl-p ("invoke + // completion in emulated command bar"). + // Unfortunately, "ctrl-p" in kate_view, which is what will be triggered if this + // test succeeds, hangs due to showing the print dialog, so we need to temporarily + // block the Print action. + clearCommandHistory(); + if (printAction) { + printAction->blockSignals(true); + } + vi_global->commandHistory()->append(QStringLiteral("s/foo/bar/caa")); + BeginTest(QStringLiteral("foo")); + TestPressKey(QStringLiteral(":s/foo/bar/c\\ctrl-b\\enter\\ctrl-p")); + QVERIFY(!emulatedCommandBarCompleter()->popup()->isVisible()); + TestPressKey(QStringLiteral("\\ctrl-c")); + if (printAction) { + printAction->blockSignals(false); + } + FinishTest("foo"); + + // The interactive sed replace command is added to the history straight away. + clearCommandHistory(); + BeginTest(QStringLiteral("foo")); + TestPressKey(QStringLiteral(":s/foo/bar/c\\enter")); + QCOMPARE(commandHistory(), QStringList() << QStringLiteral("s/foo/bar/c")); + TestPressKey(QStringLiteral("\\ctrl-c")); + FinishTest("foo"); + clearCommandHistory(); + BeginTest(QStringLiteral("foo")); + TestPressKey(QStringLiteral(":s/notfound/bar/c\\enter")); + QCOMPARE(commandHistory(), QStringList() << QStringLiteral("s/notfound/bar/c")); + TestPressKey(QStringLiteral("\\ctrl-c")); + FinishTest("foo"); + + // Should be usable in mappings. + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("H"), QStringLiteral(":s/foo/bar/gcnnyyl"), Mappings::Recursive); + DoTest("foo foo foo foo foo foo", "H", "foo foo bar bar bar foo"); + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("H"), QStringLiteral(":s/foo/bar/gcnna"), Mappings::Recursive); + DoTest("foo foo foo foo foo foo", "H", "foo foo bar bar bar bar"); + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("H"), QStringLiteral(":s/foo/bar/gcnnyqggidone"), Mappings::Recursive); + DoTest("foo foo foo foo foo foo", "H", "donefoo foo bar foo foo foo"); + +#ifndef Q_OS_MACOS + // Don't swallow "Ctrl+" meant for the text edit. + // On MacOS the QKeySequence for undo is defined as "Ctrl+Z" as well, however it's actually Cmd+Z... + if (QKeySequence::keyBindings(QKeySequence::Undo).contains(QKeySequence(QStringLiteral("Ctrl+Z")))) { + DoTest("foo bar", "/bar\\ctrl-z\\enterrX", "Xoo bar"); + } else { + qWarning() << "Skipped test: Ctrl+Z is not Undo on this platform"; + } +#endif + + // Don't give invalid cursor position to updateCursor in Visual Mode: it will cause a crash! + DoTest("xyz\nfoo\nbar\n123", "/foo\\\\nbar\\\\n\\enterggv//e\\enter\\ctrl-crX", "xyz\nfoo\nbaX\n123"); + DoTest("\nfooxyz\nbar;\n", "/foo.*\\\\n.*;\\enterggv//e\\enter\\ctrl-crX", "\nfooxyz\nbarX\n"); +} + +QCompleter *EmulatedCommandBarTest::emulatedCommandBarCompleter() +{ + return vi_input_mode->viModeEmulatedCommandBar()->findChild(QStringLiteral("completer")); +} + +void EmulatedCommandBarTest::verifyCommandBarCompletionVisible() +{ + if (!emulatedCommandBarCompleter()->popup()->isVisible()) { + qDebug() << "Emulated command bar completer not visible."; + QStringListModel *completionModel = qobject_cast(emulatedCommandBarCompleter()->model()); + Q_ASSERT(completionModel); + const QStringList allAvailableCompletions = completionModel->stringList(); + qDebug() << " Completion list: " << allAvailableCompletions; + qDebug() << " Completion prefix: " << emulatedCommandBarCompleter()->completionPrefix(); + bool candidateCompletionFound = false; + for (const QString &availableCompletion : allAvailableCompletions) { + if (availableCompletion.startsWith(emulatedCommandBarCompleter()->completionPrefix())) { + candidateCompletionFound = true; + break; + } + } + if (candidateCompletionFound) { + qDebug() << " The current completion prefix is a prefix of one of the available completions, so either complete() was not called, or the popup was " + "manually hidden since then"; + } else { + qDebug() << " The current completion prefix is not a prefix of one of the available completions; this may or may not be why it is not visible"; + } + } + QVERIFY(emulatedCommandBarCompleter()->popup()->isVisible()); +} + +void EmulatedCommandBarTest::verifyCommandBarCompletionsMatches(const QStringList &expectedCompletionList) +{ + verifyCommandBarCompletionVisible(); + QStringList actualCompletionList; + for (int i = 0; emulatedCommandBarCompleter()->setCurrentRow(i); i++) { + actualCompletionList << emulatedCommandBarCompleter()->currentCompletion(); + } + if (expectedCompletionList != actualCompletionList) { + qDebug() << "Actual completions:\n " << actualCompletionList << "\n\ndo not match expected:\n" << expectedCompletionList; + } + + QCOMPARE(actualCompletionList, expectedCompletionList); +} + +void EmulatedCommandBarTest::verifyCommandBarCompletionContains(const QStringList &expectedCompletionList) +{ + verifyCommandBarCompletionVisible(); + QStringList actualCompletionList; + + for (int i = 0; emulatedCommandBarCompleter()->setCurrentRow(i); i++) { + actualCompletionList << emulatedCommandBarCompleter()->currentCompletion(); + } + + for (const QString &expectedCompletion : expectedCompletionList) { + if (!actualCompletionList.contains(expectedCompletion)) { + qDebug() << "Whoops: " << actualCompletionList << " does not contain " << expectedCompletion; + } + QVERIFY(actualCompletionList.contains(expectedCompletion)); + } +} + +QLabel *EmulatedCommandBarTest::emulatedCommandTypeIndicator() +{ + return emulatedCommandBar()->findChild(QStringLiteral("bartypeindicator")); +} + +void EmulatedCommandBarTest::verifyCursorAt(Cursor expectedCursorPos) +{ + QCOMPARE(kate_view->cursorPosition().line(), expectedCursorPos.line()); + QCOMPARE(kate_view->cursorPosition().column(), expectedCursorPos.column()); +} + +void EmulatedCommandBarTest::clearSearchHistory() +{ + vi_global->searchHistory()->clear(); +} + +QStringList EmulatedCommandBarTest::searchHistory() +{ + return vi_global->searchHistory()->items(); +} + +void EmulatedCommandBarTest::clearCommandHistory() +{ + vi_global->commandHistory()->clear(); +} + +QStringList EmulatedCommandBarTest::commandHistory() +{ + return vi_global->commandHistory()->items(); +} + +void EmulatedCommandBarTest::clearReplaceHistory() +{ + vi_global->replaceHistory()->clear(); +} + +QStringList EmulatedCommandBarTest::replaceHistory() +{ + return vi_global->replaceHistory()->items(); +} + +QList EmulatedCommandBarTest::rangesOnFirstLine() +{ + return kate_document->buffer().rangesForLine(0, kate_view, true); +} + +void EmulatedCommandBarTest::verifyTextEditBackgroundColour(const QColor &expectedBackgroundColour) +{ + QCOMPARE(emulatedCommandBarTextEdit()->palette().brush(QPalette::Base).color(), expectedBackgroundColour); +} + +QLabel *EmulatedCommandBarTest::commandResponseMessageDisplay() +{ + QLabel *commandResponseMessageDisplay = emulatedCommandBar()->findChild(QStringLiteral("commandresponsemessage")); + Q_ASSERT(commandResponseMessageDisplay); + return commandResponseMessageDisplay; +} + +void EmulatedCommandBarTest::waitForEmulatedCommandBarToHide(long int timeout) +{ + QTRY_VERIFY_WITH_TIMEOUT(!emulatedCommandBar()->isVisible(), timeout); +} + +void EmulatedCommandBarTest::verifyShowsNumberOfReplacementsAcrossNumberOfLines(int numReplacements, int acrossNumLines) +{ + QVERIFY(commandResponseMessageDisplay()->isVisible()); + QVERIFY(!emulatedCommandTypeIndicator()->isVisible()); + const QString commandMessageResponseText = commandResponseMessageDisplay()->text(); + const QString expectedNumReplacementsAsString = QString::number(numReplacements); + const QString expectedAcrossNumLinesAsString = QString::number(acrossNumLines); + // Be a bit vague about the actual contents due to e.g. localization. + // TODO - see if we can insist that en_US is available on the Kate Jenkins server and + // insist that we use it ... ? + static const QRegularExpression numReplacementsMessageRegex(QStringLiteral("^.*(\\d+).*(\\d+).*$")); + const auto match = numReplacementsMessageRegex.match(commandMessageResponseText); + QVERIFY(match.hasMatch()); + const QString actualNumReplacementsAsString = match.captured(1); + const QString actualAcrossNumLinesAsString = match.captured(2); + QCOMPARE(actualNumReplacementsAsString, expectedNumReplacementsAsString); + QCOMPARE(actualAcrossNumLinesAsString, expectedAcrossNumLinesAsString); +} + +FailsIfSlotNotCalled::FailsIfSlotNotCalled() + : QObject() +{ +} + +FailsIfSlotNotCalled::~FailsIfSlotNotCalled() +{ + QVERIFY(m_slotWasCalled); +} + +void FailsIfSlotNotCalled::slot() +{ + m_slotWasCalled = true; +} + +FailsIfSlotCalled::FailsIfSlotCalled(const QString &failureMessage) + : QObject() + , m_failureMessage(failureMessage) +{ +} + +void FailsIfSlotCalled::slot() +{ + QFAIL(qPrintable(m_failureMessage)); +} + +#include "moc_emulatedcommandbar.cpp" diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/emulatedcommandbar.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/emulatedcommandbar.h new file mode 100644 index 0000000000..ead9cf7fc0 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/emulatedcommandbar.h @@ -0,0 +1,80 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2011 Kuzmich Svyatoslav + SPDX-FileCopyrightText: 2012-2013 Simon St James + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef EMULATEDCOMMANDBAR_TEST_H +#define EMULATEDCOMMANDBAR_TEST_H + +#include "base.h" + +class QCompleter; +class QLabel; +class QColor; + +namespace Kate +{ +class TextRange; +} + +class EmulatedCommandBarTest : public BaseTest +{ + Q_OBJECT + +private Q_SLOTS: + void EmulatedCommandBarTests(); + +private: + QCompleter *emulatedCommandBarCompleter(); + + void verifyCommandBarCompletionVisible(); + void verifyCommandBarCompletionsMatches(const QStringList &expectedCompletionList); + void verifyCommandBarCompletionContains(const QStringList &expectedCompletionList); + QLabel *emulatedCommandTypeIndicator(); + void verifyCursorAt(KTextEditor::Cursor expectedCursorPos); + + void clearSearchHistory(); + QStringList searchHistory(); + void clearCommandHistory(); + QStringList commandHistory(); + void clearReplaceHistory(); + QStringList replaceHistory(); + + QList rangesOnFirstLine(); + void verifyTextEditBackgroundColour(const QColor &expectedBackgroundColour); + QLabel *commandResponseMessageDisplay(); + void waitForEmulatedCommandBarToHide(long int timeout); + void verifyShowsNumberOfReplacementsAcrossNumberOfLines(int numReplacements, int acrossNumLines); +}; + +class FailsIfSlotNotCalled : public QObject +{ + Q_OBJECT +public: + FailsIfSlotNotCalled(); + ~FailsIfSlotNotCalled() override; +public Q_SLOTS: + void slot(); + +private: + bool m_slotWasCalled = false; +}; + +class FailsIfSlotCalled : public QObject +{ + Q_OBJECT +public: + explicit FailsIfSlotCalled(const QString &failureMessage); +public Q_SLOTS: + void slot(); + +private: + const QString m_failureMessage; +}; + +#endif + +// kate: space-indent on; indent-width 2; replace-tabs on; diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/emulatedcommandbarsetupandteardown.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/emulatedcommandbarsetupandteardown.cpp new file mode 100644 index 0000000000..2178b6ff63 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/emulatedcommandbarsetupandteardown.cpp @@ -0,0 +1,73 @@ +/* + This file is part of the KDE libraries and the Kate part. + SPDX-FileCopyrightText: 2013-2016 Simon St James + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "emulatedcommandbarsetupandteardown.h" + +#include +#include +#include +#include + +#include +#include +#include +#include + +// BEGIN: WindowKeepActive + +WindowKeepActive::WindowKeepActive(QMainWindow *mainWindow) + : m_mainWindow(mainWindow) +{ + /* There's nothing to do here. */ +} + +bool WindowKeepActive::eventFilter(QObject *object, QEvent *event) +{ + Q_UNUSED(object); + + if (event->type() == QEvent::WindowDeactivate) { + // With some combinations of Qt and Xvfb, invoking/ dismissing a popup + // will deactivate the m_mainWindow, preventing it from receiving shortcuts. + // If we detect this, set it back to being the active window again. + event->ignore(); + m_mainWindow->activateWindow(); + return true; + } + return false; +} + +// END: WindowKeepActive + +// BEGIN: EmulatedCommandBarSetUpAndTearDown + +EmulatedCommandBarSetUpAndTearDown::EmulatedCommandBarSetUpAndTearDown(KateViInputMode *inputMode, KTextEditor::ViewPrivate *view, QMainWindow *window) + : m_view(view) + , m_window(window) + , m_windowKeepActive(window) + , m_viInputMode(inputMode) +{ + m_window->show(); + m_view->show(); + QApplication::setActiveWindow(m_window); + m_view->setFocus(); + KateViewConfig::global()->setValue(KateViewConfig::ViInputModeStealKeys, true); + m_window->installEventFilter(&m_windowKeepActive); + QVERIFY(QTest::qWaitForWindowExposed(m_view)); +} +EmulatedCommandBarSetUpAndTearDown::~EmulatedCommandBarSetUpAndTearDown() +{ + m_window->removeEventFilter(&m_windowKeepActive); + // Use invokeMethod to avoid having to export KateViewBar for testing. + QMetaObject::invokeMethod(m_viInputMode->viModeEmulatedCommandBar(), "hideMe"); + m_view->hide(); + m_window->hide(); + KateViewConfig::global()->setValue(KateViewConfig::ViInputModeStealKeys, false); +} + +// END: EmulatedCommandBarSetUpAndTearDown + +#include "moc_emulatedcommandbarsetupandteardown.cpp" diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/emulatedcommandbarsetupandteardown.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/emulatedcommandbarsetupandteardown.h new file mode 100644 index 0000000000..7f01a0a8d9 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/emulatedcommandbarsetupandteardown.h @@ -0,0 +1,57 @@ +/* + This file is part of the KDE libraries and the Kate part. + SPDX-FileCopyrightText: 2013-2016 Simon St James + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef EMULATEDCOMMANDBARSETUPANDTEARDOWN_H +#define EMULATEDCOMMANDBARSETUPANDTEARDOWN_H + +#include + +namespace KTextEditor +{ +class ViewPrivate; +} + +class KateViInputMode; +class QMainWindow; + +/** + * This class is used by the EmulatedCommandBarSetUpAndTearDown class so + * the main window is active all the time. + */ +class WindowKeepActive : public QObject +{ + Q_OBJECT + +public: + explicit WindowKeepActive(QMainWindow *mainWindow); + +public Q_SLOTS: + bool eventFilter(QObject *object, QEvent *event) override; + +private: + QMainWindow *m_mainWindow; +}; + +/** + * Helper class that is used to setup and tear down tests affecting + * the command bar in any way. + */ +class EmulatedCommandBarSetUpAndTearDown +{ +public: + EmulatedCommandBarSetUpAndTearDown(KateViInputMode *inputMode, KTextEditor::ViewPrivate *view, QMainWindow *window); + + ~EmulatedCommandBarSetUpAndTearDown(); + +private: + KTextEditor::ViewPrivate *m_view; + QMainWindow *m_window; + WindowKeepActive m_windowKeepActive; + KateViInputMode *m_viInputMode; +}; + +#endif diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/fakecodecompletiontestmodel.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/fakecodecompletiontestmodel.cpp new file mode 100644 index 0000000000..27a3b936fb --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/fakecodecompletiontestmodel.cpp @@ -0,0 +1,183 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2014 Miquel Sabaté Solà + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "fakecodecompletiontestmodel.h" +#include "base.h" +#include +#include +#include +#include +#include +#include + +#include + +using namespace KTextEditor; + +FakeCodeCompletionTestModel::FakeCodeCompletionTestModel(KTextEditor::View *parent) + : KTextEditor::CodeCompletionModel(parent) + , m_kateView(qobject_cast(parent)) + , m_kateDoc(parent->document()) + , m_removeTailOnCompletion(false) + , m_failTestOnInvocation(false) + , m_wasInvoked(false) +{ + Q_ASSERT(m_kateView); + setRowCount(3); + parent->setAutomaticInvocationEnabled(false); + parent->unregisterCompletionModel(KTextEditor::EditorPrivate::self()->wordCompletionModel()); // would add additional items, we don't want that in tests + connect(static_cast(parent->document()), + &KTextEditor::DocumentPrivate::textInsertedRange, + this, + &FakeCodeCompletionTestModel::textInserted); + connect(static_cast(parent->document()), + &KTextEditor::DocumentPrivate::textRemoved, + this, + &FakeCodeCompletionTestModel::textRemoved); +} + +void FakeCodeCompletionTestModel::setCompletions(const QStringList &completions) +{ + QStringList sortedCompletions = completions; + std::sort(sortedCompletions.begin(), sortedCompletions.end()); + Q_ASSERT(completions == sortedCompletions + && "QCompleter seems to sort the items, so it's best to provide them pre-sorted so it's easier to predict the order"); + setRowCount(sortedCompletions.length()); + m_completions = completions; +} + +void FakeCodeCompletionTestModel::setRemoveTailOnComplete(bool removeTailOnCompletion) +{ + m_removeTailOnCompletion = removeTailOnCompletion; +} + +void FakeCodeCompletionTestModel::setFailTestOnInvocation(bool failTestOnInvocation) +{ + m_failTestOnInvocation = failTestOnInvocation; +} + +bool FakeCodeCompletionTestModel::wasInvoked() +{ + return m_wasInvoked; +} + +void FakeCodeCompletionTestModel::clearWasInvoked() +{ + m_wasInvoked = false; +} + +void FakeCodeCompletionTestModel::forceInvocationIfDocTextIs(const QString &desiredDocText) +{ + m_forceInvocationIfDocTextIs = desiredDocText; +} + +void FakeCodeCompletionTestModel::doNotForceInvocation() +{ + m_forceInvocationIfDocTextIs.clear(); +} + +QVariant FakeCodeCompletionTestModel::data(const QModelIndex &index, int role) const +{ + m_wasInvoked = true; + if (m_failTestOnInvocation) { + failTest(); + return QVariant(); + } + // Order is important, here, as the completion widget seems to do its own sorting. + if (role == Qt::DisplayRole) { + if (index.column() == Name) { + return QString(m_completions[index.row()]); + } + } + return QVariant(); +} + +void FakeCodeCompletionTestModel::executeCompletionItem(KTextEditor::View *view, const KTextEditor::Range &word, const QModelIndex &index) const +{ + qDebug() << "word: " << word << "(" << view->document()->text(word) << ")"; + const Cursor origCursorPos = m_kateView->cursorPosition(); + const QString textToInsert = m_completions[index.row()]; + const QString textAfterCursor = view->document()->text(Range(word.end(), Cursor(word.end().line(), view->document()->lineLength(word.end().line())))); + view->document()->removeText(Range(word.start(), origCursorPos)); + const int lengthStillToRemove = word.end().column() - origCursorPos.column(); + QString actualTextInserted = textToInsert; + // Merge brackets? + const QString noArgFunctionCallMarker = QStringLiteral("()"); + const QString withArgFunctionCallMarker = QStringLiteral("(...)"); + const bool endedWithSemiColon = textToInsert.endsWith(u';'); + if (textToInsert.contains(noArgFunctionCallMarker) || textToInsert.contains(withArgFunctionCallMarker)) { + Q_ASSERT(m_removeTailOnCompletion && "Function completion items without removing tail is not yet supported!"); + const bool takesArgument = textToInsert.contains(withArgFunctionCallMarker); + // The code for a function call to a function taking no arguments. + const QString justFunctionName = textToInsert.left(textToInsert.indexOf(QLatin1String("("))); + + static const QRegularExpression whitespaceThenOpeningBracket(QStringLiteral("^\\s*(\\()"), QRegularExpression::UseUnicodePropertiesOption); + const QRegularExpressionMatch match = whitespaceThenOpeningBracket.match(textAfterCursor); + int openingBracketPos = -1; + if (match.hasMatch()) { + openingBracketPos = match.capturedStart(1) + word.start().column() + justFunctionName.length() + 1 + lengthStillToRemove; + } + const bool mergeOpenBracketWithExisting = (openingBracketPos != -1) && !endedWithSemiColon; + // Add the function name, for now: we don't yet know if we'll be adding the "()", too. + view->document()->insertText(word.start(), justFunctionName); + if (mergeOpenBracketWithExisting) { + // Merge with opening bracket. + actualTextInserted = justFunctionName; + m_kateView->setCursorPosition(Cursor(word.start().line(), openingBracketPos)); + } else { + // Don't merge. + const QString afterFunctionName = endedWithSemiColon ? QStringLiteral("();") : QStringLiteral("()"); + view->document()->insertText(Cursor(word.start().line(), word.start().column() + justFunctionName.length()), afterFunctionName); + if (takesArgument) { + // Place the cursor immediately after the opening "(" we just added. + m_kateView->setCursorPosition(Cursor(word.start().line(), word.start().column() + justFunctionName.length() + 1)); + } + } + } else { + // Plain text. + view->document()->insertText(word.start(), textToInsert); + } + if (m_removeTailOnCompletion) { + const int tailLength = word.end().column() - origCursorPos.column(); + const Cursor tailStart = Cursor(word.start().line(), word.start().column() + actualTextInserted.length()); + const Cursor tailEnd = Cursor(tailStart.line(), tailStart.column() + tailLength); + view->document()->removeText(Range(tailStart, tailEnd)); + } +} + +void FakeCodeCompletionTestModel::failTest() const +{ + QFAIL("Shouldn't be invoking me!"); +} + +void FakeCodeCompletionTestModel::textInserted(Document *document, Range range) +{ + Q_UNUSED(document); + Q_UNUSED(range); + checkIfShouldForceInvocation(); +} + +void FakeCodeCompletionTestModel::textRemoved(Document *document, Range range) +{ + Q_UNUSED(document); + Q_UNUSED(range); + checkIfShouldForceInvocation(); +} + +void FakeCodeCompletionTestModel::checkIfShouldForceInvocation() +{ + if (m_forceInvocationIfDocTextIs.isEmpty()) { + return; + } + + if (m_kateDoc->text() == m_forceInvocationIfDocTextIs) { + m_kateView->completionWidget()->userInvokedCompletion(); + BaseTest::waitForCompletionWidgetToActivate(m_kateView); + } +} + +#include "moc_fakecodecompletiontestmodel.cpp" diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/fakecodecompletiontestmodel.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/fakecodecompletiontestmodel.h new file mode 100644 index 0000000000..8ce57295d6 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/fakecodecompletiontestmodel.h @@ -0,0 +1,88 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2014 Miquel Sabaté Solà + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef FAKE_CODE_COMPLETION_TEST_MODEL_H +#define FAKE_CODE_COMPLETION_TEST_MODEL_H + +#include + +namespace KTextEditor +{ +class ViewPrivate; +} + +/** + * Helper class that mimics some of the behaviour of KDevelop's code completion, in particular + * whether it performs "bracket merging" on completed function calls e.g. if we complete a call + * to "functionCall(int a)" at the end of the -> here: + * + * object->( + * + * we end up with + * + * object->functionCall( + * + * and the cursor placed after the closing bracket: the opening bracket is merged with the existing + * bracket. + * + * However, if we do the same with + * + * object-> + * + * we end up with + * + * object->functionCall() + * + * again with the cursor placed after the opening bracket. This time, the brackets were not merged. + * + * This helper class is used to test how Macros and replaying of last changes works with complex + * code completion. + */ +class FakeCodeCompletionTestModel : public KTextEditor::CodeCompletionModel +{ + Q_OBJECT + +public: + explicit FakeCodeCompletionTestModel(KTextEditor::View *parent); + /** + * List of completions, in sorted order. + * A string ending with "()" is treated as a call to a function with no arguments. + * A string ending with "(...)" is treated as a call to a function with at least one argument. The "..." is not + * inserted into the text. + * A string ending with "();" or "(...);" is the same as above, and the semi-colon is added. Bracket merging + * never happens with strings ending with ";". + */ + void setCompletions(const QStringList &completions); + void setRemoveTailOnComplete(bool removeTailOnCompletion); + void setFailTestOnInvocation(bool failTestOnInvocation); + bool wasInvoked(); + void clearWasInvoked(); + /** + * A more reliable form of setAutomaticInvocationEnabled(). + */ + void forceInvocationIfDocTextIs(const QString &desiredDocText); + void doNotForceInvocation(); + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; + void executeCompletionItem(KTextEditor::View *view, const KTextEditor::Range &word, const QModelIndex &index) const override; + +private: + void failTest() const; + QStringList m_completions; + KTextEditor::ViewPrivate *m_kateView; + KTextEditor::Document *m_kateDoc; + bool m_removeTailOnCompletion; + bool m_failTestOnInvocation; + mutable bool m_wasInvoked; + QString m_forceInvocationIfDocTextIs; + +private Q_SLOTS: + void textInserted(KTextEditor::Document *document, KTextEditor::Range range); + void textRemoved(KTextEditor::Document *document, KTextEditor::Range range); + void checkIfShouldForceInvocation(); +}; + +#endif /* FAKE_CODE_COMPLETION_TEST_MODEL_H */ diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/hlsearch.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/hlsearch.cpp new file mode 100644 index 0000000000..da16c6f9ab --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/hlsearch.cpp @@ -0,0 +1,696 @@ +/* + SPDX-FileCopyrightText: 2022 Martin Seher + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "hlsearch.h" +#include "emulatedcommandbarsetupandteardown.h" + +#include +#include +#include +#include +#include +#include + +#include +#include + +using namespace KTextEditor; + +#define TestHighlight(...) TestHighlight_(__LINE__, __FILE__, __VA_ARGS__) + +QTEST_MAIN(HlSearchTest) + +void HlSearchTest::highlightModeTests() +{ + EmulatedCommandBarSetUpAndTearDown emulatedCommandBarSetUpAndTearDown(vi_input_mode, kate_view, mainWindow); + + setWindowSize(); + + const QList rangesInitial = rangesOnLine(0); + Q_ASSERT(rangesInitial.isEmpty() && "Assumptions about ranges are wrong - this test is invalid and may need updating!"); + + const QColor searchHighlightColor = kate_view->rendererConfig()->searchHighlightColor(); + + // test commands exist + { + QCOMPARE(vi_input_mode->viModeEmulatedCommandBar()->executeCommand(QStringLiteral("set-hls")).size(), 0); + QCOMPARE(vi_input_mode->viModeEmulatedCommandBar()->executeCommand(QStringLiteral("set-hlsearch")).size(), 0); + QCOMPARE(vi_input_mode->viModeEmulatedCommandBar()->executeCommand(QStringLiteral("set-nohls")).size(), 0); + QCOMPARE(vi_input_mode->viModeEmulatedCommandBar()->executeCommand(QStringLiteral("set-nohlsearch")).size(), 0); + QCOMPARE(vi_input_mode->viModeEmulatedCommandBar()->executeCommand(QStringLiteral("noh")).size(), 0); + QCOMPARE(vi_input_mode->viModeEmulatedCommandBar()->executeCommand(QStringLiteral("nohlsearch")).size(), 0); + } + // test highlight initiated by * + { + QString text = QStringLiteral("foo bar xyz foo ab bar x"); + BeginTest(text); + auto vr = kate_view->visibleRange(); + QCOMPARE(vr.end().column(), text.length()); + + TestPressKey(QStringLiteral("w*")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 2); + + TestHighlight(*ranges[0], {0, 4}, {0, 7}, searchHighlightColor); + TestHighlight(*ranges[1], {0, 19}, {0, 22}, searchHighlightColor); + } + FinishTest(text.toUtf8().constData()); + } + // test highlight initiated by # + { + QString text = QStringLiteral("foo bar xyz foo ab bar x"); + BeginTest(text); + auto vr = kate_view->visibleRange(); + QCOMPARE(vr.end().column(), text.length()); + + TestPressKey(QStringLiteral("w#")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 2); + + TestHighlight(*ranges[0], {0, 4}, {0, 7}, searchHighlightColor); + TestHighlight(*ranges[1], {0, 19}, {0, 22}, searchHighlightColor); + } + FinishTest(text.toUtf8().constData()); + } + // test highlight initiated by / + { + QString text = QStringLiteral("foo bar xyz foo ab bar x"); + BeginTest(text); + auto vr = kate_view->visibleRange(); + QCOMPARE(vr.end().column(), text.length()); + + TestPressKey(QStringLiteral("/bar\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 2); + + TestHighlight(*ranges[0], {0, 4}, {0, 7}, searchHighlightColor); + TestHighlight(*ranges[1], {0, 19}, {0, 22}, searchHighlightColor); + } + FinishTest(text.toUtf8().constData()); + } + // test highlight initiated by ? + { + QString text = QStringLiteral("foo bar xyz foo ab bar x"); + BeginTest(text); + auto vr = kate_view->visibleRange(); + QCOMPARE(vr.end().column(), text.length()); + + TestPressKey(QStringLiteral("?bar\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 2); + + TestHighlight(*ranges[0], {0, 4}, {0, 7}, searchHighlightColor); + TestHighlight(*ranges[1], {0, 19}, {0, 22}, searchHighlightColor); + } + FinishTest(text.toUtf8().constData()); + } + // test that aborting search removes highlights + { + QString text = QStringLiteral("foo bar xyz foo ab bar x"); + BeginTest(text); + auto vr = kate_view->visibleRange(); + QCOMPARE(vr.end().column(), text.length()); + + TestPressKey(QStringLiteral("/bar")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 2); + + TestHighlight(*ranges[0], {0, 4}, {0, 7}, searchHighlightColor); + TestHighlight(*ranges[1], {0, 19}, {0, 22}, searchHighlightColor); + } + TestPressKey(QStringLiteral("\\esc")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size()); + } + FinishTest(text.toUtf8().constData()); + } + // test empty matches handled + { + QString text = QStringLiteral("foo bar xyz"); + BeginTest(text); + auto vr = kate_view->visibleRange(); + QCOMPARE(vr.end().column(), text.length()); + + TestPressKey(QStringLiteral("/\\\\<\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 6); + + TestHighlight(*ranges[0], {0, 0}, {0, 1}, searchHighlightColor); + TestHighlight(*ranges[3], {0, 7}, {0, 8}, searchHighlightColor); + } + FinishTest(text.toUtf8().constData()); + } + // test that only visible matches are highlighted + { + QString text = QStringLiteral("foo bar xyz\n\n\n\n\nfoo ab bar x"); + BeginTest(text); + auto vr = kate_view->visibleRange(); + // ensure that last line is not visible + QVERIFY(vr.end().line() < 4); + + TestPressKey(QStringLiteral("/bar\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 1); + TestHighlight(*ranges[0], {0, 4}, {0, 7}, searchHighlightColor); + ranges = rangesOnLine(5); + QCOMPARE(ranges.size(), rangesInitial.size()); + } + + kate_view->bottom(); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size()); + ranges = rangesOnLine(5); + QCOMPARE(ranges.size(), rangesInitial.size() + 1); + TestHighlight(*ranges[0], {5, 7}, {5, 10}, searchHighlightColor); + } + FinishTest(text.toUtf8().constData()); + } + // test highlighting when typing in search triggers a visual range change + { + QString text = QStringLiteral("foo bar xyz\n\n\n\n\nfoo ab barx"); + BeginTest(text); + auto vr = kate_view->visibleRange(); + // ensure that last line is not visible + QVERIFY(vr.end().line() < 4); + + TestPressKey(QStringLiteral("/barx")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size()); + ranges = rangesOnLine(5); + QCOMPARE(ranges.size(), rangesInitial.size() + 1); + TestHighlight(*ranges[0], {5, 7}, {5, 11}, searchHighlightColor); + } + TestPressKey(QStringLiteral("\\enter")); + + FinishTest(text.toUtf8().constData()); + } + // test that normal search highlight is deactivated when hls mode is active + { + QString text = QStringLiteral("foo bar xyz"); + BeginTest(text); + + TestPressKey(QStringLiteral("/bar")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 1); + TestHighlight(*ranges[0], {0, 4}, {0, 7}, searchHighlightColor); + } + TestPressKey(QStringLiteral("\\enter")); + FinishTest(text.toUtf8().constData()); + } + // test that :noh turns of current highlight + { + QString text = QStringLiteral("foo bar xyz\n\n\n\n\nfoo ab bar x"); + BeginTest(text); + auto vr = kate_view->visibleRange(); + // ensure that last line is not visible + QVERIFY(vr.end().line() < 4); + + TestPressKey(QStringLiteral("/bar\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 1); + TestHighlight(*ranges[0], {0, 4}, {0, 7}, searchHighlightColor); + } + + TestPressKey(QStringLiteral(":noh\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size()); + } + // changing view range should not activate highlighting again + kate_view->bottom(); + { + QList ranges = rangesOnLine(5); + QCOMPARE(ranges.size(), rangesInitial.size()); + } + FinishTest(text.toUtf8().constData()); + } + // test that :nohlsearch turns of current highlight + { + QString text = QStringLiteral("foo bar xyz\n\n\n\n\nfoo ab bar x"); + BeginTest(text); + auto vr = kate_view->visibleRange(); + // ensure that last line is not visible + QVERIFY(vr.end().line() < 4); + + TestPressKey(QStringLiteral("/bar\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 1); + TestHighlight(*ranges[0], {0, 4}, {0, 7}, searchHighlightColor); + } + + TestPressKey(QStringLiteral(":nohlsearch\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size()); + } + // changing view range should not activate highlighting again + kate_view->bottom(); + { + QList ranges = rangesOnLine(5); + QCOMPARE(ranges.size(), rangesInitial.size()); + } + FinishTest(text.toUtf8().constData()); + } + // test that new search activates highlighting after :noh + { + QString text = QStringLiteral("foo bar xyz foo"); + BeginTest(text); + + TestPressKey(QStringLiteral("/bar\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 1); + TestHighlight(*ranges[0], {0, 4}, {0, 7}, searchHighlightColor); + } + + TestPressKey(QStringLiteral(":noh\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size()); + } + TestPressKey(QStringLiteral("/bar\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 1); + TestHighlight(*ranges[0], {0, 4}, {0, 7}, searchHighlightColor); + } + FinishTest(text.toUtf8().constData()); + } + // test that word search activates highlighting after :noh + { + QString text = QStringLiteral("foo bar xyz foo"); + BeginTest(text); + + TestPressKey(QStringLiteral("/bar\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 1); + TestHighlight(*ranges[0], {0, 4}, {0, 7}, searchHighlightColor); + } + + TestPressKey(QStringLiteral(":noh\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size()); + } + TestPressKey(QStringLiteral("*")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 1); + TestHighlight(*ranges[0], {0, 4}, {0, 7}, searchHighlightColor); + } + FinishTest(text.toUtf8().constData()); + } + // test that next match ('n') activates highlighting after :noh + { + QString text = QStringLiteral("foo bar xyz foo"); + BeginTest(text); + + TestPressKey(QStringLiteral("/bar\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 1); + TestHighlight(*ranges[0], {0, 4}, {0, 7}, searchHighlightColor); + } + + TestPressKey(QStringLiteral(":noh\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size()); + } + TestPressKey(QStringLiteral("n")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 1); + TestHighlight(*ranges[0], {0, 4}, {0, 7}, searchHighlightColor); + } + FinishTest(text.toUtf8().constData()); + } + // test that previous match ('N') activates highlighting after :noh + { + QString text = QStringLiteral("foo bar xyz foo"); + BeginTest(text); + + TestPressKey(QStringLiteral("/bar\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 1); + TestHighlight(*ranges[0], {0, 4}, {0, 7}, searchHighlightColor); + } + + TestPressKey(QStringLiteral(":noh\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size()); + } + TestPressKey(QStringLiteral("N")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 1); + TestHighlight(*ranges[0], {0, 4}, {0, 7}, searchHighlightColor); + } + FinishTest(text.toUtf8().constData()); + } + // test that :set-nohls turns of highlight + { + QString text = QStringLiteral("foo bar xyz\n\n\n\n\nfoo ab bar x"); + BeginTest(text); + auto vr = kate_view->visibleRange(); + // ensure that last line is not visible + QVERIFY(vr.end().line() < 4); + + TestPressKey(QStringLiteral("/bar\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 1); + TestHighlight(*ranges[0], {0, 4}, {0, 7}, searchHighlightColor); + } + + TestPressKey(QStringLiteral(":set-nohls\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size()); + } + // changing view range should not activate highlighting again + kate_view->bottom(); + { + QList ranges = rangesOnLine(5); + QCOMPARE(ranges.size(), rangesInitial.size()); + } + FinishTest(text.toUtf8().constData()); + } + // test that :set-nohlsearch turns of highlight + { + QString text = QStringLiteral("foo bar xyz\n\n\n\n\nfoo ab bar x"); + BeginTest(text); + auto vr = kate_view->visibleRange(); + // ensure that last line is not visible + QVERIFY(vr.end().line() < 4); + + TestPressKey(QStringLiteral("/bar\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 1); + TestHighlight(*ranges[0], {0, 4}, {0, 7}, searchHighlightColor); + } + + TestPressKey(QStringLiteral(":set-nohlsearch\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size()); + } + // changing view range should not activate highlighting again + kate_view->bottom(); + { + QList ranges = rangesOnLine(5); + QCOMPARE(ranges.size(), rangesInitial.size()); + } + FinishTest(text.toUtf8().constData()); + } + // test that new search does not activate highlighting after :set-nohls + { + QString text = QStringLiteral("foo bar xyz foo"); + BeginTest(text); + + TestPressKey(QStringLiteral("/bar\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 1); + TestHighlight(*ranges[0], {0, 4}, {0, 7}, searchHighlightColor); + } + + TestPressKey(QStringLiteral(":set-nohls\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size()); + } + TestPressKey(QStringLiteral("/bar\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size()); + } + FinishTest(text.toUtf8().constData()); + } + // test that word search does not activate highlighting after :set-nohls + { + QString text = QStringLiteral("foo bar xyz foo"); + BeginTest(text); + + TestPressKey(QStringLiteral("/bar\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 1); + TestHighlight(*ranges[0], {0, 4}, {0, 7}, searchHighlightColor); + } + + TestPressKey(QStringLiteral(":set-nohls\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size()); + } + TestPressKey(QStringLiteral("*")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size()); + } + FinishTest(text.toUtf8().constData()); + } + // test that highlighting can be activated with :set-hls after :set-nohls + { + QString text = QStringLiteral("foo bar xyz foo"); + BeginTest(text); + + TestPressKey(QStringLiteral("/bar\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 1); + TestHighlight(*ranges[0], {0, 4}, {0, 7}, searchHighlightColor); + } + + TestPressKey(QStringLiteral(":set-nohls\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size()); + } + TestPressKey(QStringLiteral(":set-hls\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 1); + TestHighlight(*ranges[0], {0, 4}, {0, 7}, searchHighlightColor); + } + FinishTest(text.toUtf8().constData()); + } + // test that highlighting can be activated with :set-hlsearch after :set-nohls + { + QString text = QStringLiteral("foo bar xyz foo"); + BeginTest(text); + + TestPressKey(QStringLiteral("/bar\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 1); + TestHighlight(*ranges[0], {0, 4}, {0, 7}, searchHighlightColor); + } + + TestPressKey(QStringLiteral(":set-nohls\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size()); + } + TestPressKey(QStringLiteral(":set-hlsearch\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 1); + TestHighlight(*ranges[0], {0, 4}, {0, 7}, searchHighlightColor); + } + FinishTest(text.toUtf8().constData()); + } + // test that switching to normal mode turns off highlighting + { + QString text = QStringLiteral("foo bar xyz foo"); + BeginTest(text); + + TestPressKey(QStringLiteral("/bar\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 1); + TestHighlight(*ranges[0], {0, 4}, {0, 7}, searchHighlightColor); + } + + kate_view->setInputMode(KTextEditor::View::InputMode::NormalInputMode); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size()); + } + kate_view->setInputMode(KTextEditor::View::InputMode::ViInputMode); + FinishTest(text.toUtf8().constData()); + } + // test that opening search bar does not hide previous results + { + QString text = QStringLiteral("foo xbar barx bar"); + + BeginTest(text); + + TestPressKey(QStringLiteral("/bar\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 3); + TestHighlight(*ranges[0], {0, 5}, {0, 8}, searchHighlightColor); + } + TestPressKey(QStringLiteral("/")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 3); + TestHighlight(*ranges[0], {0, 5}, {0, 8}, searchHighlightColor); + } + TestPressKey(QStringLiteral("\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 3); + TestHighlight(*ranges[0], {0, 5}, {0, 8}, searchHighlightColor); + } + TestPressKey(QStringLiteral("/")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 3); + TestHighlight(*ranges[0], {0, 5}, {0, 8}, searchHighlightColor); + } + TestPressKey(QStringLiteral("\\esc")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 3); + TestHighlight(*ranges[0], {0, 5}, {0, 8}, searchHighlightColor); + } + FinishTest(text.toUtf8().constData()); + } + // test that deleting all text in search bar removes highlights + { + QString text = QStringLiteral("foo xbar barx bar"); + + BeginTest(text); + + TestPressKey(QStringLiteral("/bar")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 3); + TestHighlight(*ranges[0], {0, 5}, {0, 8}, searchHighlightColor); + } + TestPressKey(QStringLiteral("\\backspace\\backspace\\backspace")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size()); + } + TestPressKey(QStringLiteral("\\esc")); + FinishTest(text.toUtf8().constData()); + } + // test that previously results are shown when current search is aborted + { + QString text = QStringLiteral("foo xbar barx bar"); + + BeginTest(text); + + TestPressKey(QStringLiteral("/bar\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 3); + TestHighlight(*ranges[0], {0, 5}, {0, 8}, searchHighlightColor); + } + TestPressKey(QStringLiteral("/rx")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 1); + TestHighlight(*ranges[0], {0, 11}, {0, 13}, searchHighlightColor); + } + TestPressKey(QStringLiteral("\\esc")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 3); + TestHighlight(*ranges[0], {0, 5}, {0, 8}, searchHighlightColor); + } + FinishTest(text.toUtf8().constData()); + } + // test that newly inserted text will be highlighted + { + QString text = QStringLiteral("foo xbar abcd bar"); + + TestPressKey(QStringLiteral("/xbar\\enter")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 1); + TestHighlight(*ranges[0], {0, 4}, {0, 8}, searchHighlightColor); + } + TestPressKey(QStringLiteral("wwix\\esc")); + { + QList ranges = rangesOnLine(0); + QCOMPARE(ranges.size(), rangesInitial.size() + 2); + TestHighlight(*ranges[0], {0, 4}, {0, 8}, searchHighlightColor); + TestHighlight(*ranges[1], {0, 14}, {0, 18}, searchHighlightColor); + } + + BeginTest(text); + FinishTest(text.toUtf8().constData()); + } + // test that no endless loop is triggered + { + QString text = QStringLiteral("foo bar xyz\nabc def\nghi jkl\nmno pqr\nstu vwx\nfoo ab bar x"); + BeginTest(text); + auto vr = kate_view->visibleRange(); + // ensure that last line is not visible + QVERIFY(vr.end().line() < 4); + + TestPressKey(QStringLiteral("/\\\\<\\enter")); + + FinishTest(text.toUtf8().constData()); + } +} + +QList HlSearchTest::rangesOnLine(int line) +{ + QList arr = kate_document->buffer().rangesForLine(line, kate_view, true); + std::sort(arr.begin(), arr.end(), [](const Kate::TextRange *l, const Kate::TextRange *r) { + return l->toRange().start() < r->toRange().start(); + }); + return arr; +} + +void HlSearchTest::setWindowSize() +{ + const QFont font = kate_view->rendererConfig()->baseFont(); + QFontMetrics fm(font); + auto fontHeight = fm.height(); + + kate_document->setText(QStringLiteral("\n\n\n\n")); + for (int i = 250; i > 0; i -= fontHeight) { + mainWindow->setMaximumHeight(i); + if (kate_view->visibleRange().end().line() == 3) + break; + } + QVERIFY(kate_view->visibleRange().end().line() == 3); +} + +void HlSearchTest::TestHighlight_(int line, const char *file, const Kate::TextRange &r, std::array start, std::array end, const QColor &bg) +{ + QTest::qCompare(r.attribute()->background().color(), bg, "bgcolor", "bgcolor", file, line); + QTest::qCompare(r.start().line(), start[0], "start_line", "start_line", file, line); + QTest::qCompare(r.start().column(), start[1], "start_column", "start_column", file, line); + QTest::qCompare(r.end().line(), end[0], "end_line", "end_line", file, line); + QTest::qCompare(r.end().column(), end[1], "end_column", "end_column", file, line); +} + +#include "moc_hlsearch.cpp" diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/hlsearch.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/hlsearch.h new file mode 100644 index 0000000000..d7f877b719 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/hlsearch.h @@ -0,0 +1,36 @@ +/* + SPDX-FileCopyrightText: 2022 Martin Seher + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef HLSEARCH_TEST_H +#define HLSEARCH_TEST_H + +#include "base.h" +#include + +namespace Kate +{ +class TextRange; +} + +class EmulatedCommandBarSetUpAndTearDown; + +class HlSearchTest : public BaseTest +{ + Q_OBJECT + +private Q_SLOTS: + void highlightModeTests(); + +private: + QList rangesOnLine(int line); + void setWindowSize(); + + void TestHighlight_(int line, const char *file, const Kate::TextRange &r, std::array start, std::array end, const QColor &bg); + + std::unique_ptr m_emulatedCommandBarSetUpAndTearDown; +}; + +#endif /* HLSEARCH_TEST_H */ diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/keys.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/keys.cpp new file mode 100644 index 0000000000..6c76c7892c --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/keys.cpp @@ -0,0 +1,1631 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2014 Miquel Sabaté Solà + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "keys.h" +#include "emulatedcommandbarsetupandteardown.h" +#include "fakecodecompletiontestmodel.h" +#include "vimode/globalstate.h" +#include "vimode/mappings.h" +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +using namespace KTextEditor; +using KateVi::KeyParser; +using KateVi::Mappings; + +QTEST_MAIN(KeysTest) + +// BEGIN: KeysTest + +void KeysTest::MappingTests() +{ + const int mappingTimeoutMSOverride = QString::fromLocal8Bit(qgetenv("KATE_VIMODE_TEST_MAPPINGTIMEOUTMS")).toInt(); + const int mappingTimeoutMS = (mappingTimeoutMSOverride > 0) ? mappingTimeoutMSOverride : 5; + KateViewConfig::global()->setValue(KateViewConfig::ViInputModeStealKeys, true); // For tests involving e.g. + { + // Check storage and retrieval of mapping recursion. + clearAllMappings(); + + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("'"), QStringLiteral("ihello"), Mappings::Recursive); + QVERIFY(vi_global->mappings()->isRecursive(Mappings::NormalModeMapping, QStringLiteral("'"))); + + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("a"), QStringLiteral("ihello"), Mappings::NonRecursive); + QVERIFY(!vi_global->mappings()->isRecursive(Mappings::NormalModeMapping, QStringLiteral("a"))); + } + + clearAllMappings(); + + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("'"), QStringLiteral("ihello^aworld"), Mappings::Recursive); + DoTest("", "'", "hworldello"); + + // Ensure that the non-mapping logged keypresses are cleared before we execute a mapping + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("'a"), QStringLiteral("rO"), Mappings::Recursive); + DoTest("X", "'a", "O"); + + { + // Check that '123 is mapped after the timeout, given that we also have mappings that + // extend it (e.g. '1234, '12345, etc) and which it itself extends ('1, '12, etc). + clearAllMappings(); + BeginTest(QString()); + vi_input_mode_manager->keyMapper()->setMappingTimeout(mappingTimeoutMS); + + QString consectiveDigits; + for (int i = 1; i < 9; i++) { + consectiveDigits += QString::number(i); + vi_global->mappings()->add(Mappings::NormalModeMapping, + QLatin1Char('\'') + consectiveDigits, + QStringLiteral("iMapped from ") + consectiveDigits + QStringLiteral(""), + Mappings::Recursive); + } + TestPressKey(QStringLiteral("'123")); + QCOMPARE(kate_document->text(), QString()); // Shouldn't add anything until after the timeout! + QTRY_COMPARE_WITH_TIMEOUT(kate_document->text(), QLatin1String("Mapped from 123"), 2 * mappingTimeoutMS); + FinishTest("Mapped from 123"); + } + + // Mappings are not "counted": any count entered applies to the first command/ motion in the mapped sequence, + // and is not used to replay the entire mapped sequence times in a row. + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("'downmapping"), QStringLiteral("j"), Mappings::Recursive); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("'testmapping"), QStringLiteral("ifooibar"), Mappings::Recursive); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("'testmotionmapping"), QStringLiteral("lj"), Mappings::Recursive); + DoTest("AAAA\nXXXX\nXXXX\nXXXX\nXXXX\nBBBB\nCCCC\nDDDD", "jd3'downmapping", "AAAA\nBBBB\nCCCC\nDDDD"); + DoTest("", "5'testmapping", "foofoofoofoofobaro"); + DoTest("XXXX\nXXXX\nXXXX\nXXXX", "3'testmotionmappingrO", "XXXX\nXXXO\nXXXX\nXXXX"); + + // Regression test for a weird mistake I made: *completely* remove all counting for the + // first command in the sequence; don't just set it to 1! If it is set to 1, then "%" + // will mean "go to position 1 percent of the way through the document" rather than + // go to matching item. + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("gl"), QStringLiteral("%"), Mappings::Recursive); + DoTest("0\n1\n2\n3\n4\n5\nfoo bar(xyz) baz", "jjjjjjwdgl", "0\n1\n2\n3\n4\n5\nfoo baz"); + + // Test that countable mappings work even when triggered by timeouts. + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("'testmapping"), QStringLiteral("ljrO"), Mappings::Recursive); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("'testmappingdummy"), QStringLiteral("dummy"), Mappings::Recursive); + BeginTest(QStringLiteral("XXXX\nXXXX\nXXXX\nXXXX")); + vi_input_mode_manager->keyMapper()->setMappingTimeout(mappingTimeoutMS); + + TestPressKey(QStringLiteral("3'testmapping")); + QTRY_COMPARE_WITH_TIMEOUT(kate_document->text(), QLatin1String("XXXX\nXXXO\nXXXX\nXXXX"), 2 * mappingTimeoutMS); + FinishTest("XXXX\nXXXO\nXXXX\nXXXX"); + + // Test that telescoping mappings don't interfere with built-in commands. Assumes that gp + // is implemented and working. + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("gdummy"), QStringLiteral("idummy"), Mappings::Recursive); + DoTest("hello", "yiwgpx", "hhellollo"); + + // Test that we can map a sequence of keys that extends a built-in command and use + // that sequence without the built-in command firing. + // Once again, assumes that gp is implemented and working. + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("gpa"), QStringLiteral("idummy"), Mappings::Recursive); + DoTest("hello", "yiwgpa", "dummyhello"); + + // Test that we can map a sequence of keys that extends a built-in command and still + // have the original built-in command fire if we timeout after entering that command. + // Once again, assumes that gp is implemented and working. + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("gpa"), QStringLiteral("idummy"), Mappings::Recursive); + BeginTest(QStringLiteral("hello")); + vi_input_mode_manager->keyMapper()->setMappingTimeout(mappingTimeoutMS); + + TestPressKey(QStringLiteral("yiwgp")); + QTest::qWait(2 * mappingTimeoutMS); + TestPressKey(QStringLiteral("x")); + FinishTest("hhellollo"); + + // Test that something that starts off as a partial mapping following a command + // (the "g" in the first "dg" is a partial mapping of "gj"), when extended to something + // that is definitely not a mapping ("gg"), results in the full command being executed ("dgg"). + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("gj"), QStringLiteral("aj"), Mappings::Recursive); + DoTest("foo\nbar\nxyz", "jjdgg", ""); + + // Make sure that a mapped sequence of commands is merged into a single undo-able edit. + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("'a"), QStringLiteral("ofooofooofoo"), Mappings::Recursive); + DoTest("bar", "'au", "bar"); + + // Make sure that a counted mapping is merged into a single undoable edit. + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("'a"), QStringLiteral("ofoo"), Mappings::Recursive); + DoTest("bar", "5'au", "bar"); + + // Some test setup for non-recursive mapping g -> gj (cf: bug:314415) + // Firstly: work out the expected result of gj (this might be fragile as default settings + // change, etc.). We use BeginTest & FinishTest for the setup and teardown etc, but this is + // not an actual test - it's just computing the expected result of the real test! + const QString multiVirtualLineText = QStringLiteral( + "foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo " + "foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo " + "foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo"); + ensureKateViewVisible(); // Needs to be visible in order for virtual lines to make sense. + KateViewConfig::global()->setDynWordWrap(true); + BeginTest(multiVirtualLineText); + TestPressKey(QStringLiteral("gjrX")); + const QString expectedAfterVirtualLineDownAndChange = kate_document->text(); + Q_ASSERT_X(expectedAfterVirtualLineDownAndChange.contains(QStringLiteral("X")) && !expectedAfterVirtualLineDownAndChange.startsWith(QLatin1Char('X')), + "setting up j->gj testcase data", + "gj doesn't seem to have worked correctly!"); + FinishTest(expectedAfterVirtualLineDownAndChange.toUtf8().constData()); + + // Test that non-recursive mappings are not expanded. + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("j"), QStringLiteral("gj"), Mappings::NonRecursive); + DoTest(multiVirtualLineText.toUtf8().constData(), "jrX", expectedAfterVirtualLineDownAndChange.toUtf8().constData()); + KateViewConfig::global()->setDynWordWrap(false); + + // Test that recursive mappings are expanded. + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("a"), QStringLiteral("X"), Mappings::Recursive); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("X"), QStringLiteral("rx"), Mappings::Recursive); + DoTest("foo", "la", "fxo"); + + // Test that the flag that stops mappings being expanded is reset after the mapping has been executed. + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("j"), QStringLiteral("gj"), Mappings::NonRecursive); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("a"), QStringLiteral("X"), Mappings::Recursive); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("X"), QStringLiteral("rx"), Mappings::Recursive); + DoTest("foo", "jla", "fxo"); + + // Even if we start with a recursive mapping, as soon as we hit one that is not recursive, we should stop + // expanding. + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("a"), QStringLiteral("X"), Mappings::NonRecursive); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("X"), QStringLiteral("r."), Mappings::Recursive); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("i"), QStringLiteral("a"), Mappings::Recursive); + DoTest("foo", "li", "oo"); + + // Regression test: Using a mapping may trigger a call to updateSelection(), which can change the mode + // from VisualLineMode to plain VisualMode. + clearAllMappings(); + vi_global->mappings()->add(Mappings::VisualModeMapping, QStringLiteral("gA"), QStringLiteral("%"), Mappings::NonRecursive); + DoTest("xyz\nfoo\n{\nbar\n}", "jVjgAdgglP", "foo\n{\nbar\n}\nxyz"); + // Piggy back on the previous test with a regression test for issue where, if gA is mapped to %, vgly + // will yank one more character than it should. + DoTest("foo(bar)X", "vgAyp", "ffoo(bar)oo(bar)X"); + // Make sure that a successful mapping does not break the "if we select stuff externally in Normal mode, + // we should switch to Visual Mode" thing. + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("gA"), QStringLiteral("%"), Mappings::NonRecursive); + BeginTest(QStringLiteral("foo bar xyz()")); + TestPressKey(QStringLiteral("gAr.")); + kate_view->setSelection(Range(0, 1, 0, 4)); + TestPressKey(QStringLiteral("d")); + FinishTest("far xyz(."); + + // Regression tests for BUG:260655 + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("a"), QStringLiteral("f"), Mappings::NonRecursive); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("d"), QStringLiteral("i"), Mappings::NonRecursive); + DoTest("foo dar", "adr.", "foo .ar"); + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("a"), QStringLiteral("F"), Mappings::NonRecursive); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("d"), QStringLiteral("i"), Mappings::NonRecursive); + DoTest("foo dar", "$adr.", "foo .ar"); + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("a"), QStringLiteral("t"), Mappings::NonRecursive); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("d"), QStringLiteral("i"), Mappings::NonRecursive); + DoTest("foo dar", "adr.", "foo.dar"); + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("a"), QStringLiteral("T"), Mappings::NonRecursive); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("d"), QStringLiteral("i"), Mappings::NonRecursive); + DoTest("foo dar", "$adr.", "foo d.r"); + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("a"), QStringLiteral("r"), Mappings::NonRecursive); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("d"), QStringLiteral("i"), Mappings::NonRecursive); + DoTest("foo dar", "ad", "doo dar"); + // Feel free to map the keypress after that, though. + DoTest("foo dar", "addber\\esc", "berdoo dar"); + // Also, be careful about how we interpret "waiting for find char/ replace char" + DoTest("foo dar", "ffas", "soo dar"); + + // Ignore raw "Ctrl", "Shift", "Meta" and "Alt" keys, which will almost certainly end up being pressed as + // we try to trigger mappings that contain these keys. + clearAllMappings(); + { + // Ctrl. + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral(""), QStringLiteral("ictrl"), Mappings::NonRecursive); + BeginTest(QLatin1String("")); + QKeyEvent *ctrlKeyDown = new QKeyEvent(QEvent::KeyPress, Qt::Key_Control, Qt::NoModifier); + QApplication::postEvent(kate_view->focusProxy(), ctrlKeyDown); + QApplication::sendPostedEvents(); + TestPressKey(QStringLiteral("\\ctrl-a")); + ctrlKeyDown = new QKeyEvent(QEvent::KeyPress, Qt::Key_Control, Qt::NoModifier); + QApplication::postEvent(kate_view->focusProxy(), ctrlKeyDown); + QApplication::sendPostedEvents(); + TestPressKey(QStringLiteral("\\ctrl-b")); + FinishTest("ctrl"); + } + { + // Shift. + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("C"), QStringLiteral("ishift"), Mappings::NonRecursive); + BeginTest(QLatin1String("")); + QKeyEvent *ctrlKeyDown = new QKeyEvent(QEvent::KeyPress, Qt::Key_Control, Qt::NoModifier); + QApplication::postEvent(kate_view->focusProxy(), ctrlKeyDown); + QApplication::sendPostedEvents(); + TestPressKey(QStringLiteral("\\ctrl-a")); + QKeyEvent *shiftKeyDown = new QKeyEvent(QEvent::KeyPress, Qt::Key_Shift, Qt::NoModifier); + QApplication::postEvent(kate_view->focusProxy(), shiftKeyDown); + QApplication::sendPostedEvents(); + TestPressKey(QStringLiteral("C")); + FinishTest("shift"); + } + { + // Alt. + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral(""), QStringLiteral("ialt"), Mappings::NonRecursive); + BeginTest(QLatin1String("")); + QKeyEvent *ctrlKeyDown = new QKeyEvent(QEvent::KeyPress, Qt::Key_Control, Qt::NoModifier); + QApplication::postEvent(kate_view->focusProxy(), ctrlKeyDown); + QApplication::sendPostedEvents(); + TestPressKey(QStringLiteral("\\ctrl-a")); + QKeyEvent *altKeyDown = new QKeyEvent(QEvent::KeyPress, Qt::Key_Alt, Qt::NoModifier); + QApplication::postEvent(kate_view->focusProxy(), altKeyDown); + QApplication::sendPostedEvents(); + TestPressKey(QStringLiteral("\\alt-b")); + FinishTest("alt"); + } + { + // Meta. + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral(""), QStringLiteral("imeta"), Mappings::NonRecursive); + BeginTest(QLatin1String("")); + QKeyEvent *ctrlKeyDown = new QKeyEvent(QEvent::KeyPress, Qt::Key_Control, Qt::NoModifier); + QApplication::postEvent(kate_view->focusProxy(), ctrlKeyDown); + QApplication::sendPostedEvents(); + TestPressKey(QStringLiteral("\\ctrl-a")); + QKeyEvent *metaKeyDown = new QKeyEvent(QEvent::KeyPress, Qt::Key_Meta, Qt::NoModifier); + QApplication::postEvent(kate_view->focusProxy(), metaKeyDown); + QApplication::sendPostedEvents(); + TestPressKey(QStringLiteral("\\meta-b")); + FinishTest("meta"); + } + { + // Can have mappings in Visual mode, distinct from Normal mode.. + clearAllMappings(); + vi_global->mappings()->add(Mappings::VisualModeMapping, QStringLiteral("a"), QStringLiteral("3l"), Mappings::NonRecursive); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("a"), QStringLiteral("inose"), Mappings::NonRecursive); + DoTest("0123456", "lvad", "056"); + + // The recursion in Visual Mode is distinct from that of Normal mode. + clearAllMappings(); + vi_global->mappings()->add(Mappings::VisualModeMapping, QStringLiteral("b"), QStringLiteral(""), Mappings::NonRecursive); + vi_global->mappings()->add(Mappings::VisualModeMapping, QStringLiteral("a"), QStringLiteral("b"), Mappings::NonRecursive); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("a"), QStringLiteral("b"), Mappings::Recursive); + DoTest("XXX\nXXX", "lvajd", "XXX"); + clearAllMappings(); + vi_global->mappings()->add(Mappings::VisualModeMapping, QStringLiteral("b"), QStringLiteral(""), Mappings::NonRecursive); + vi_global->mappings()->add(Mappings::VisualModeMapping, QStringLiteral("a"), QStringLiteral("b"), Mappings::Recursive); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("a"), QStringLiteral("b"), Mappings::NonRecursive); + DoTest("XXX\nXXX", "lvajd", "XXX\nXXX"); + + // A Visual mode mapping applies to all Visual modes (line, block, etc). + clearAllMappings(); + vi_global->mappings()->add(Mappings::VisualModeMapping, QStringLiteral("a"), QStringLiteral("2j"), Mappings::NonRecursive); + DoTest("123\n456\n789", "lvad", "19"); + DoTest("123\n456\n789", "l\\ctrl-vad", "13\n46\n79"); + DoTest("123\n456\n789", "lVad", ""); + // Same for recursion. + clearAllMappings(); + vi_global->mappings()->add(Mappings::VisualModeMapping, QStringLiteral("b"), QStringLiteral("2j"), Mappings::NonRecursive); + vi_global->mappings()->add(Mappings::VisualModeMapping, QStringLiteral("a"), QStringLiteral("b"), Mappings::Recursive); + DoTest("123\n456\n789", "lvad", "19"); + DoTest("123\n456\n789", "l\\ctrl-vad", "13\n46\n79"); + DoTest("123\n456\n789", "lVad", ""); + + // Can clear Visual mode mappings. + clearAllMappings(); + vi_global->mappings()->add(Mappings::VisualModeMapping, QStringLiteral("h"), QStringLiteral("l"), Mappings::Recursive); + vi_global->mappings()->clear(Mappings::VisualModeMapping); + DoTest("123\n456\n789", "lvhd", "3\n456\n789"); + DoTest("123\n456\n789", "l\\ctrl-vhd", "3\n456\n789"); + DoTest("123\n456\n789", "lVhd", "456\n789"); + vi_global->mappings()->add(Mappings::VisualModeMapping, QStringLiteral("h"), QStringLiteral("l"), Mappings::Recursive); + vi_global->mappings()->clear(Mappings::VisualModeMapping); + DoTest("123\n456\n789", "lvhd", "3\n456\n789"); + DoTest("123\n456\n789", "l\\ctrl-vhd", "3\n456\n789"); + DoTest("123\n456\n789", "lVhd", "456\n789"); + vi_global->mappings()->add(Mappings::VisualModeMapping, QStringLiteral("h"), QStringLiteral("l"), Mappings::Recursive); + vi_global->mappings()->clear(Mappings::VisualModeMapping); + DoTest("123\n456\n789", "lvhd", "3\n456\n789"); + DoTest("123\n456\n789", "l\\ctrl-vhd", "3\n456\n789"); + DoTest("123\n456\n789", "lVhd", "456\n789"); + } + { + // Can have mappings in Insert mode. + clearAllMappings(); + vi_global->mappings()->add(Mappings::InsertModeMapping, QStringLiteral("a"), QStringLiteral("xyz"), Mappings::NonRecursive); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("a"), QStringLiteral("inose"), Mappings::NonRecursive); + DoTest("foo", "ia\\esc", "xyzfoo"); + + // Recursion for Insert mode. + clearAllMappings(); + vi_global->mappings()->add(Mappings::InsertModeMapping, QStringLiteral("b"), QStringLiteral("c"), Mappings::NonRecursive); + vi_global->mappings()->add(Mappings::InsertModeMapping, QStringLiteral("a"), QStringLiteral("b"), Mappings::NonRecursive); + DoTest("", "ia\\esc", "b"); + clearAllMappings(); + vi_global->mappings()->add(Mappings::InsertModeMapping, QStringLiteral("b"), QStringLiteral("c"), Mappings::NonRecursive); + vi_global->mappings()->add(Mappings::InsertModeMapping, QStringLiteral("a"), QStringLiteral("b"), Mappings::Recursive); + DoTest("", "ia\\esc", "c"); + + clearAllMappings(); + // Clear mappings for Insert mode. + vi_global->mappings()->add(Mappings::InsertModeMapping, QStringLiteral("a"), QStringLiteral("b"), Mappings::NonRecursive); + vi_global->mappings()->clear(Mappings::InsertModeMapping); + DoTest("", "ia\\esc", "a"); + } + + { + EmulatedCommandBarSetUpAndTearDown vimStyleCommandBarTestsSetUpAndTearDown(vi_input_mode, kate_view, mainWindow); + // Can have mappings in Emulated Command Bar. + clearAllMappings(); + vi_global->mappings()->add(Mappings::CommandModeMapping, QStringLiteral("a"), QStringLiteral("xyz"), Mappings::NonRecursive); + DoTest(" a xyz", "/a\\enterrX", " a Xyz"); + // Use mappings from Normal mode as soon as we exit command bar via Enter. + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("a"), QStringLiteral("ixyz"), Mappings::NonRecursive); + DoTest(" a xyz", "/a\\entera", " a xyzxyz"); + // Multiple mappings. + vi_global->mappings()->add(Mappings::CommandModeMapping, QStringLiteral("b"), QStringLiteral("123"), Mappings::NonRecursive); + DoTest(" xyz123", "/ab\\enterrX", " Xyz123"); + // Recursive mappings. + vi_global->mappings()->add(Mappings::CommandModeMapping, QStringLiteral("b"), QStringLiteral("a"), Mappings::Recursive); + DoTest(" xyz", "/b\\enterrX", " Xyz"); + // Can clear all. + vi_global->mappings()->clear(Mappings::CommandModeMapping); + DoTest(" ab xyz xyz123", "/ab\\enterrX", " Xb xyz xyz123"); + } + + // Test that not *both* of the mapping and the mapped keys are logged for repetition via "." + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("ixyz"), QStringLiteral("iabc"), Mappings::NonRecursive); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("gl"), QStringLiteral("%"), Mappings::NonRecursive); + DoTest("", "ixyz\\esc.", "ababcc"); + DoTest("foo()X\nbarxyz()Y", "cglbaz\\escggj.", "bazX\nbazY"); + + // Regression test for a crash when executing a mapping that switches to Normal mode. + clearAllMappings(); + vi_global->mappings()->add(Mappings::VisualModeMapping, QStringLiteral("h"), QStringLiteral("d"), Mappings::Recursive); + DoTest("foo", "vlh", "o"); + + { + // Test that we can set/ unset mappings from the command-line. + clearAllMappings(); + DoTest("", "\\:nn foo ibar\\foo", "bar"); + + // "nn" is not recursive. + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("l"), QStringLiteral("iabc"), Mappings::NonRecursive); + DoTest("xxx", "\\:nn foo l\\foorX", "xXx"); + + // "no" is not recursive. + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("l"), QStringLiteral("iabc"), Mappings::NonRecursive); + DoTest("xxx", "\\:no foo l\\foorX", "xXx"); + + // "noremap" is not recursive. + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("l"), QStringLiteral("iabc"), Mappings::NonRecursive); + DoTest("xxx", "\\:noremap foo l\\foorX", "xXx"); + + // "nm" is recursive. + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("l"), QStringLiteral("iabc"), Mappings::NonRecursive); + DoTest("xxx", "\\:nm foo l\\foorX", "abXxxx"); + + // "nmap" is recursive. + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("l"), QStringLiteral("iabc"), Mappings::NonRecursive); + DoTest("xxx", "\\:nmap foo l\\foorX", "abXxxx"); + + // Unfortunately, "map" is a reserved word :/ + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("l"), QStringLiteral("iabc"), Mappings::NonRecursive); + DoTest("xxx", "\\:map foo l\\foorX", "abXxxx", ShouldFail, "'map' is reserved for other stuff in Kate command line"); + + // nunmap works in normal mode. + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("w"), QStringLiteral("ciwabc"), Mappings::NonRecursive); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("b"), QStringLiteral("ciwxyz"), Mappings::NonRecursive); + DoTest(" 123 456 789", "\\:nunmap b\\WWwbrX", " 123 Xbc 789"); + + // nmap and nunmap whose "from" is a complex encoded expression. + clearAllMappings(); + BeginTest(QStringLiteral("123")); + TestPressKey(QStringLiteral("\\:nmap ciwxyz\\")); + TestPressKey(QStringLiteral("\\ctrl-9")); + FinishTest("xyz"); + BeginTest(QStringLiteral("123")); + TestPressKey(QStringLiteral("\\:nunmap \\")); + TestPressKey(QStringLiteral("\\ctrl-9")); + FinishTest("123"); + + // vmap works in Visual mode and is recursive. + clearAllMappings(); + vi_global->mappings()->add(Mappings::VisualModeMapping, QStringLiteral("l"), QStringLiteral("d"), Mappings::NonRecursive); + DoTest("abco", "\\:vmap foo l\\v\\rightfoogU", "co"); + + // vmap does not work in Normal mode. + clearAllMappings(); + DoTest("xxx", "\\:vmap foo l\\foorX", "xxx\nrX"); + + // vm works in Visual mode and is recursive. + clearAllMappings(); + vi_global->mappings()->add(Mappings::VisualModeMapping, QStringLiteral("l"), QStringLiteral("d"), Mappings::NonRecursive); + DoTest("abco", "\\:vm foo l\\v\\rightfoogU", "co"); + + // vn works in Visual mode and is not recursive. + clearAllMappings(); + vi_global->mappings()->add(Mappings::VisualModeMapping, QStringLiteral("l"), QStringLiteral("d"), Mappings::NonRecursive); + DoTest("abco", "\\:vn foo l\\v\\rightfoogU", "ABCo"); + + // vnoremap works in Visual mode and is not recursive. + clearAllMappings(); + vi_global->mappings()->add(Mappings::VisualModeMapping, QStringLiteral("l"), QStringLiteral("d"), Mappings::NonRecursive); + DoTest("abco", "\\:vnoremap foo l\\v\\rightfoogU", "ABCo"); + + // vunmap works in Visual Mode. + clearAllMappings(); + vi_global->mappings()->add(Mappings::VisualModeMapping, QStringLiteral("l"), QStringLiteral("w"), Mappings::NonRecursive); + vi_global->mappings()->add(Mappings::VisualModeMapping, QStringLiteral("gU"), QStringLiteral("2b"), Mappings::NonRecursive); + DoTest("foo bar xyz", "\\:vunmap gU\\wvlgUd", "foo BAR Xyz"); + + // imap works in Insert mode and is recursive. + clearAllMappings(); + vi_global->mappings()->add(Mappings::InsertModeMapping, QStringLiteral("l"), QStringLiteral("d"), Mappings::NonRecursive); + DoTest("", "\\:imap foo l\\ifoo\\esc", "d"); + + // im works in Insert mode and is recursive. + clearAllMappings(); + vi_global->mappings()->add(Mappings::InsertModeMapping, QStringLiteral("l"), QStringLiteral("d"), Mappings::NonRecursive); + DoTest("", "\\:im foo l\\ifoo\\esc", "d"); + + // ino works in Insert mode and is not recursive. + clearAllMappings(); + vi_global->mappings()->add(Mappings::InsertModeMapping, QStringLiteral("l"), QStringLiteral("d"), Mappings::NonRecursive); + DoTest("", "\\:ino foo l\\ifoo\\esc", "l"); + + // inoremap works in Insert mode and is not recursive. + clearAllMappings(); + vi_global->mappings()->add(Mappings::InsertModeMapping, QStringLiteral("l"), QStringLiteral("d"), Mappings::NonRecursive); + DoTest("", "\\:inoremap foo l\\ifoo\\esc", "l"); + + // iunmap works in Insert mode. + clearAllMappings(); + vi_global->mappings()->add(Mappings::InsertModeMapping, QStringLiteral("l"), QStringLiteral("d"), Mappings::NonRecursive); + vi_global->mappings()->add(Mappings::InsertModeMapping, QStringLiteral("m"), QStringLiteral("e"), Mappings::NonRecursive); + DoTest("", "\\:iunmap l\\ilm\\esc", "le"); + + { + EmulatedCommandBarSetUpAndTearDown vimStyleCommandBarTestsSetUpAndTearDown(vi_input_mode, kate_view, mainWindow); + // cmap works in emulated command bar and is recursive. + // NOTE: need to do the cmap call using the direct execution (i.e. \\:cmap blah blah\\), *not* using + // the emulated command bar (:cmap blah blah\\enter), as this will be subject to mappings, which + // can interfere with the tests! + clearAllMappings(); + vi_global->mappings()->add(Mappings::CommandModeMapping, QStringLiteral("l"), QStringLiteral("d"), Mappings::NonRecursive); + DoTest(" l d foo", "\\:cmap foo l\\/foo\\enterrX", " l X foo"); + + // cm works in emulated command bar and is recursive. + clearAllMappings(); + vi_global->mappings()->add(Mappings::CommandModeMapping, QStringLiteral("l"), QStringLiteral("d"), Mappings::NonRecursive); + DoTest(" l d foo", "\\:cm foo l\\/foo\\enterrX", " l X foo"); + + // cnoremap works in emulated command bar and is recursive. + clearAllMappings(); + vi_global->mappings()->add(Mappings::CommandModeMapping, QStringLiteral("l"), QStringLiteral("d"), Mappings::NonRecursive); + DoTest(" l d foo", "\\:cnoremap foo l\\/foo\\enterrX", " X d foo"); + + // cno works in emulated command bar and is recursive. + clearAllMappings(); + vi_global->mappings()->add(Mappings::CommandModeMapping, QStringLiteral("l"), QStringLiteral("d"), Mappings::NonRecursive); + DoTest(" l d foo", "\\:cno foo l\\/foo\\enterrX", " X d foo"); + + // cunmap works in emulated command bar. + clearAllMappings(); + vi_global->mappings()->add(Mappings::CommandModeMapping, QStringLiteral("l"), QStringLiteral("d"), Mappings::NonRecursive); + vi_global->mappings()->add(Mappings::CommandModeMapping, QStringLiteral("m"), QStringLiteral("e"), Mappings::NonRecursive); + DoTest(" de le", "\\:cunmap l\\/lm\\enterrX", " de Xe"); + } + + // Can use to signify a space. + clearAllMappings(); + DoTest("", "\\:nn h iab\\h ", " a b"); + } + + // More recursion tests - don't lose characters from a Recursive mapping if it looks like they might + // be part of a different mapping (but end up not being so). + // (Here, the leading "i" in "irecursive" could be part of the mapping "ihello"). + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("'"), QStringLiteral("ihello"), Mappings::Recursive); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("ihello"), QStringLiteral("irecursive"), Mappings::Recursive); + DoTest("", "'", "recursive"); + + // Capslock in insert mode is not handled by Vim nor by KateViewInternal, and ends up + // being sent to KateViInputModeManager::handleKeypress twice (it could be argued that this is + // incorrect behaviour on the part of KateViewInternal), which can cause infinite + // recursion if we are not careful about identifying replayed rejected keypresses. + BeginTest(QStringLiteral("foo bar")); + TestPressKey(QStringLiteral("i")); + QKeyEvent *capslockKeyPress = new QKeyEvent(QEvent::KeyPress, Qt::Key_CapsLock, Qt::NoModifier); + QApplication::postEvent(kate_view->focusProxy(), capslockKeyPress); + QApplication::sendPostedEvents(); + FinishTest("foo bar"); + + // Mapping the u and the U commands to other keys. + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("t"), QStringLiteral("u"), Mappings::Recursive); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("r"), QStringLiteral("U"), Mappings::Recursive); + DoTest("", "ihello\\esct", ""); + DoTest("", "ihello\\esctr", "hello"); + + // + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("l"), QStringLiteral(""), Mappings::Recursive); + DoTest("Hello", "lrr", "rello"); + clearAllMappings(); + vi_global->mappings()->add(Mappings::InsertModeMapping, QStringLiteral("l"), QStringLiteral(""), Mappings::Recursive); + DoTest("Hello", "sl\\esc", "ello"); + clearAllMappings(); + vi_global->mappings()->add(Mappings::InsertModeMapping, QStringLiteral("l"), QStringLiteral("abc"), Mappings::Recursive); + DoTest("Hello", "sl\\esc", "abcello"); + + // Clear mappings for subsequent tests. + clearAllMappings(); + + { + // Test that g and g work as gk and gj (BUG: 418486) + ensureKateViewVisible(); // Needs to be visible in order for virtual lines to make sense. + KateViewConfig::global()->setDynWordWrap(true); + + BeginTest(multiVirtualLineText); + TestPressKey(QStringLiteral("gjrX")); + const QString expectedAfterVirtualLineDownAndChange = kate_document->text(); + QVERIFY(expectedAfterVirtualLineDownAndChange.contains(QLatin1String("X")) && !expectedAfterVirtualLineDownAndChange.startsWith(QStringLiteral("X"))); + FinishTest(expectedAfterVirtualLineDownAndChange.toUtf8().constData()); + + BeginTest(multiVirtualLineText); + TestPressKey(QStringLiteral("g\\downrX")); + const QString expectedAfterVirtualLineDownAndChangeCursor = kate_document->text(); + QVERIFY(expectedAfterVirtualLineDownAndChangeCursor == expectedAfterVirtualLineDownAndChange); + FinishTest(expectedAfterVirtualLineDownAndChangeCursor.toUtf8().constData()); + + BeginTest(multiVirtualLineText); + TestPressKey(QStringLiteral("gkrX")); + const QString expectedAfterVirtualLineUpAndChange = kate_document->text(); + QVERIFY(expectedAfterVirtualLineUpAndChange.contains(QLatin1String("X")) && !expectedAfterVirtualLineUpAndChange.endsWith(QLatin1Char('X'))); + FinishTest(expectedAfterVirtualLineUpAndChange.toUtf8().constData()); + + BeginTest(multiVirtualLineText); + TestPressKey(QLatin1String("g\\uprX")); + const QString expectedAfterVirtualLineUpAndChangeCursor = kate_document->text(); + QVERIFY(expectedAfterVirtualLineUpAndChangeCursor == expectedAfterVirtualLineUpAndChange); + FinishTest(expectedAfterVirtualLineUpAndChangeCursor.toUtf8().constData()); + + KateViewConfig::global()->setDynWordWrap(false); + } +} + +void KeysTest::LeaderTests() +{ + // Clean slate. + KateViewConfig::global()->setValue(KateViewConfig::ViInputModeStealKeys, true); + clearAllMappings(); + + // By default the backslash character is the leader. The default leader + // is picked from the config. If we don't want to mess this from other + // tests, it's better if we mock the config. + const QString viTestKConfigFileName = QStringLiteral("vimodetest-leader-katevimoderc"); + KConfig viTestKConfig(viTestKConfigFileName); + vi_global->mappings()->setLeader(QChar()); + vi_global->readConfig(&viTestKConfig); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("i"), QStringLiteral("ii"), Mappings::Recursive); + DoTest("", "\\\\i", "i"); + + // We can change the leader and it will work. + clearAllMappings(); + vi_global->readConfig(&viTestKConfig); + vi_global->mappings()->setLeader(QChar::fromLatin1(',')); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("i"), QStringLiteral("ii"), Mappings::Recursive); + DoTest("", ",i", "i"); + + // Mixing up the with its value. + clearAllMappings(); + vi_global->readConfig(&viTestKConfig); + vi_global->mappings()->setLeader(QChar::fromLatin1(',')); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral(","), QStringLiteral("ii"), Mappings::Recursive); + DoTest("", ",,", "i"); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral(","), QStringLiteral("ii"), Mappings::Recursive); + DoTest("", ",,", "i"); + + // It doesn't work outside normal mode. + clearAllMappings(); + vi_global->readConfig(&viTestKConfig); + vi_global->mappings()->setLeader(QChar::fromLatin1(',')); + vi_global->mappings()->add(Mappings::InsertModeMapping, QStringLiteral("i"), QStringLiteral("ii"), Mappings::Recursive); + DoTest("", "i,ii", ",ii"); + + // Clear mappings for subsequent tests. + clearAllMappings(); +} + +void KeysTest::ParsingTests() +{ + // BUG #298726 + const QChar char_o_diaeresis(246); + + // Test that we can correctly translate finnish key ö + QKeyEvent k(QEvent::KeyPress, 214, Qt::NoModifier, 47, 246, 16400, char_o_diaeresis); + QCOMPARE(KeyParser::self()->KeyEventToQChar(k), QChar(246)); + + // Test that it can be used in mappings + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, char_o_diaeresis, QStringLiteral("ifoo"), Mappings::Recursive); + DoTest2(__LINE__, __FILE__, QStringLiteral("hello"), QStringLiteral("ll%1bar").arg(char_o_diaeresis), QStringLiteral("hefoobarllo")); + + // Test that is parsed like + QCOMPARE(KeyParser::self()->vi2qt(QStringLiteral("cr")), int(Qt::Key_Enter)); + const QString &enter = KeyParser::self()->encodeKeySequence(QStringLiteral("")); + QCOMPARE(KeyParser::self()->decodeKeySequence(enter), QLatin1String("")); +} + +void KeysTest::AltGr() +{ + QKeyEvent *altGrDown; + QKeyEvent *altGrUp; + // Test Alt-gr still works - this isn't quite how things work in "real-life": in real-life, something like + // Alt-gr+7 would be a "{", but I don't think this can be reproduced without sending raw X11 + // keypresses to Qt, so just duplicate the keypress events we would receive if we pressed + // Alt-gr+7 (that is: Alt-gr down; "{"; Alt-gr up). + + // Ensure we have auto brackets off, or the test will fail + kate_view->config()->setValue(KateViewConfig::AutoBrackets, false); + + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("i")); + altGrDown = new QKeyEvent(QEvent::KeyPress, Qt::Key_AltGr, Qt::NoModifier); + QApplication::postEvent(kate_view->focusProxy(), altGrDown); + QApplication::sendPostedEvents(); + // Not really Alt-gr and 7, but this is the key event that is reported by Qt if we press that. + QKeyEvent *altGrAnd7 = new QKeyEvent(QEvent::KeyPress, Qt::Key_BraceLeft, Qt::GroupSwitchModifier, QStringLiteral("{")); + QApplication::postEvent(kate_view->focusProxy(), altGrAnd7); + QApplication::sendPostedEvents(); + altGrUp = new QKeyEvent(QEvent::KeyRelease, Qt::Key_AltGr, Qt::NoModifier); + QApplication::postEvent(kate_view->focusProxy(), altGrUp); + QApplication::sendPostedEvents(); + TestPressKey(QStringLiteral("\\ctrl-c")); + FinishTest("{"); + + // French Bepo keyabord AltGr + Shift + s = Ù = Unicode(0x00D9); + const QString ugrave = QString(QChar(0x00D9)); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("i")); + altGrDown = new QKeyEvent(QEvent::KeyPress, Qt::Key_AltGr, Qt::NoModifier); + QApplication::postEvent(kate_view->focusProxy(), altGrDown); + QApplication::sendPostedEvents(); + altGrDown = new QKeyEvent(QEvent::KeyPress, Qt::Key_Shift, Qt::ShiftModifier | Qt::GroupSwitchModifier); + QApplication::postEvent(kate_view->focusProxy(), altGrDown); + QApplication::sendPostedEvents(); + QKeyEvent *altGrAndUGrave = new QKeyEvent(QEvent::KeyPress, Qt::Key_Ugrave, Qt::ShiftModifier | Qt::GroupSwitchModifier, ugrave); + qDebug() << QStringLiteral("%1").arg(static_cast(altGrAndUGrave->modifiers()), 10, 16); + QApplication::postEvent(kate_view->focusProxy(), altGrAndUGrave); + QApplication::sendPostedEvents(); + altGrUp = new QKeyEvent(QEvent::KeyRelease, Qt::Key_AltGr, Qt::NoModifier); + QApplication::postEvent(kate_view->focusProxy(), altGrUp); + QApplication::sendPostedEvents(); + FinishTest(ugrave.toUtf8().constData()); +} + +void KeysTest::MacroTests() +{ + // Update the status on qa. + const QString macroIsRecordingStatus = u"(" + i18n("recording") + u")"; + clearAllMacros(); + BeginTest(QLatin1String("")); + QVERIFY(!kate_view->viewModeHuman().contains(macroIsRecordingStatus)); + TestPressKey(QStringLiteral("qa")); + QVERIFY(kate_view->viewModeHuman().contains(macroIsRecordingStatus)); + TestPressKey(QStringLiteral("q")); + QVERIFY(!kate_view->viewModeHuman().contains(macroIsRecordingStatus)); + FinishTest(""); + + // The closing "q" is not treated as the beginning of a new "begin recording macro" command. + clearAllMacros(); + BeginTest(QStringLiteral("foo")); + TestPressKey(QStringLiteral("qaqa")); + QVERIFY(!kate_view->viewModeHuman().contains(macroIsRecordingStatus)); + TestPressKey(QStringLiteral("xyz\\esc")); + FinishTest("fxyzoo"); + + // Record and playback a single keypress into macro register "a". + clearAllMacros(); + DoTest("foo bar", "qawqgg@arX", "foo Xar"); + // Two macros - make sure the old one is cleared. + clearAllMacros(); + DoTest("123 foo bar xyz", "qawqqabqggww@arX", "123 Xoo bar xyz"); + + // Update the status on qb. + clearAllMacros(); + BeginTest(QLatin1String("")); + QVERIFY(!kate_view->viewModeHuman().contains(macroIsRecordingStatus)); + TestPressKey(QStringLiteral("qb")); + QVERIFY(kate_view->viewModeHuman().contains(macroIsRecordingStatus)); + TestPressKey(QStringLiteral("q")); + QVERIFY(!kate_view->viewModeHuman().contains(macroIsRecordingStatus)); + FinishTest(""); + + // Record and playback a single keypress into macro register "b". + clearAllMacros(); + DoTest("foo bar", "qbwqgg@brX", "foo Xar"); + + // More complex macros. + clearAllMacros(); + DoTest("foo", "qcrXql@c", "XXo"); + + // Re-recording a macro should only clear that macro. + clearAllMacros(); + DoTest("foo 123", "qaraqqbrbqqbrBqw@a", "Boo a23"); + + // Empty macro clears it. + clearAllMacros(); + DoTest("", "qaixyz\\ctrl-cqqaq@a", "xyz"); + + // Hold two macros in memory simultanenously so both can be played. + clearAllMacros(); + DoTest("foo 123", "qaraqqbrbqw@al@b", "boo ab3"); + + // Do more complex things, including switching modes and using ctrl codes. + clearAllMacros(); + DoTest("foo bar", "qainose\\ctrl-c~qw@a", "nosEfoo nosEbar"); + clearAllMacros(); + DoTest("foo bar", "qayiwinose\\ctrl-r0\\ctrl-c~qw@a", "nosefoOfoo nosebaRbar"); + clearAllMacros(); + DoTest("foo bar", "qavldqw@a", "o r"); + // Make sure we can use "q" in insert mode while recording a macro. + clearAllMacros(); + DoTest("foo bar", "qaiqueequeg\\ctrl-cqw@a", "queequegfoo queequegbar"); + // Can invoke a macro in Visual Mode. + clearAllMacros(); + DoTest("foo bar", "qa~qvlll@a", "FOO Bar"); + // Invoking a macro in Visual Mode does not exit Visual Mode. + clearAllMacros(); + DoTest("foo bar", "qallqggv@a~", "FOO bar"); + ; + // Can record & macros in Visual Mode for playback in Normal Mode. + clearAllMacros(); + DoTest("foo bar", "vqblq\\ctrl-c@b~", "foO bar"); + // Recording a macro in Visual Mode does not exit Visual Mode. + clearAllMacros(); + DoTest("foo bar", "vqblql~", "FOO bar"); + // Recognize correctly numbered registers + clearAllMacros(); + DoTest("foo", "q1iX\\escq@1", "XXfoo"); + + { + // Ensure that we can call emulated command bar searches, and that we don't record + // synthetic keypresses. + EmulatedCommandBarSetUpAndTearDown vimStyleCommandBarTestsSetUpAndTearDown(vi_input_mode, kate_view, mainWindow); + clearAllMacros(); + DoTest("foo bar\nblank line", "qa/bar\\enterqgg@arX", "foo Xar\nblank line"); + // More complex searching stuff. + clearAllMacros(); + DoTest("foo 123foo123\nbar 123bar123", "qayiw/\\ctrl-r0\\enterrXqggj@a", "foo 123Xoo123\nbar 123Xar123"); + } + + // Expand mappings, but don't do *both* original keypresses and executed keypresses. + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("'"), QStringLiteral("ihello"), Mappings::Recursive); + clearAllMacros(); + DoTest("", "qa'q@a", "hellhelloo"); + // Actually, just do the mapped keypresses, not the executed mappings (like Vim). + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("'"), QStringLiteral("ihello"), Mappings::Recursive); + clearAllMacros(); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("qa'q")); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("'"), QStringLiteral("igoodbye"), Mappings::Recursive); + TestPressKey(QStringLiteral("@a")); + FinishTest("hellgoodbyeo"); + // Clear the "stop recording macro keypresses because we're executing a mapping" when the mapping has finished + // executing. + clearAllMappings(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("'"), QStringLiteral("ihello"), Mappings::Recursive); + clearAllMacros(); + DoTest("", "qa'ixyz\\ctrl-cq@a", "hellxyhellxyzozo"); + // ... make sure that *all* mappings have finished, though: take into account recursion. + clearAllMappings(); + clearAllMacros(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("'"), QStringLiteral("ihello"), Mappings::Recursive); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("ihello"), QStringLiteral("irecursive"), Mappings::Recursive); + DoTest("", "qa'q@a", "recursivrecursivee"); + clearAllMappings(); + clearAllMacros(); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("'"), QStringLiteral("ihelloixyz"), Mappings::Recursive); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("ihello"), QStringLiteral("irecursive"), Mappings::Recursive); + DoTest("", "qa'q@a", "recursivxyrecursivxyzeze"); + + clearAllMappings(); + clearAllMacros(); + // Don't save the trailing "q" with macros, and also test that we can call one macro from another, + // without one of the macros being repeated. + DoTest("", "qaixyz\\ctrl-cqqb@aq@b", "xyxyxyzzz"); + clearAllMappings(); + clearAllMacros(); + // More stringent test that macros called from another macro aren't repeated - requires more nesting + // of macros ('a' calls 'b' calls 'c'). + DoTest("", + "qciC\\ctrl-cq" + "qb@ciB\\ctrl-cq" + "qa@biA\\ctrl-cq" + "dd@a", + "ABC"); + // Don't crash if we invoke a non-existent macro. + clearAllMacros(); + DoTest("", "@x", ""); + // Make macros "counted". + clearAllMacros(); + DoTest("XXXX\nXXXX\nXXXX\nXXXX", "qarOljq3@a", "OXXX\nXOXX\nXXOX\nXXXO"); + + // A macro can be undone with one undo. + clearAllMacros(); + DoTest("foo bar", "qaciwxyz\\ctrl-ci123\\ctrl-cqw@au", "xy123z bar"); + // As can a counted macro. + clearAllMacros(); + DoTest("XXXX\nXXXX\nXXXX\nXXXX", "qarOljq3@au", "OXXX\nXXXX\nXXXX\nXXXX"); + + { + EmulatedCommandBarSetUpAndTearDown vimStyleCommandBarTestsSetUpAndTearDown(vi_input_mode, kate_view, mainWindow); + // Make sure we can macro-ise an interactive sed replace. + clearAllMacros(); + DoTest("foo foo foo foo\nfoo foo foo foo", "qa:s/foo/bar/gc\\enteryynyAdone\\escqggj@a", "bar bar foo bardone\nbar bar foo bardone"); + // Make sure the closing "q" in the interactive sed replace isn't mistaken for a macro's closing "q". + clearAllMacros(); + DoTest("foo foo foo foo\nfoo foo foo foo", "qa:s/foo/bar/gc\\enteryyqAdone\\escqggj@a", "bar bar foo foodone\nbar bar foo foodone"); + clearAllMacros(); + DoTest("foo foo foo foo\nfoo foo foo foo", "qa:s/foo/bar/gc\\enteryyqqAdone\\escggj@aAdone\\esc", "bar bar foo foodone\nbar bar foo foodone"); + } + + clearAllMappings(); + clearAllMacros(); + // Expand mapping in an executed macro, if the invocation of the macro "@a" is a prefix of a mapping M, and + // M ends up not being triggered. + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("@aaaa"), QStringLiteral("idummy"), Mappings::Recursive); + vi_global->mappings()->add(Mappings::NormalModeMapping, QStringLiteral("S"), QStringLiteral("ixyz"), Mappings::Recursive); + DoTest("", "qaSq@abrX", "Xyxyzz"); + clearAllMappings(); + + // Can't play old version of macro while recording new version. + clearAllMacros(); + DoTest("", "qaiaaa\\ctrl-cqqa@aq", "aaa"); + + // Can't play the macro while recording it. + clearAllMacros(); + DoTest("", "qaiaaa\\ctrl-c@aq", "aaa"); + + // "@@" plays back macro "a" if "a" was the last macro we played back. + clearAllMacros(); + DoTest("", "qaia\\ctrl-cq@adiw@@", "a"); + // "@@" plays back macro "b" if "b" was the last macro we played back. + clearAllMacros(); + DoTest("", "qbib\\ctrl-cq@bdiw@@", "b"); + // "@@" does nothing if no macro was previously played. + clearAllMacros(); + DoTest("", "qaia\\ctrl-cq@@", "a"); + // Nitpick: "@@" replays the last played back macro, even if that macro had not been defined + // when it was first played back. + clearAllMacros(); + DoTest("", "@aqaia\\ctrl-cq@@", "aa"); + // "@@" is counted. + clearAllMacros(); + DoTest("", "qaia\\ctrl-cq@adiw5@@", "aaaaa"); + + // Test that we can save and restore a single macro. + const QString viTestKConfigFileName = QStringLiteral("vimodetest-katevimoderc"); + { + clearAllMacros(); + KConfig viTestKConfig(viTestKConfigFileName); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("qaia\\ctrl-cq")); + vi_global->writeConfig(&viTestKConfig); + viTestKConfig.sync(); + // Overwrite macro "a", and clear the document. + TestPressKey(QStringLiteral("qaidummy\\ctrl-cqdd")); + vi_global->readConfig(&viTestKConfig); + TestPressKey(QStringLiteral("@a")); + FinishTest("a"); + } + + { + // Test that we can save and restore several macros. + clearAllMacros(); + const QString viTestKConfigFileName = QStringLiteral("vimodetest-katevimoderc"); + KConfig viTestKConfig(viTestKConfigFileName); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("qaia\\ctrl-cqqbib\\ctrl-cq")); + vi_global->writeConfig(&viTestKConfig); + viTestKConfig.sync(); + // Overwrite macros "a" & "b", and clear the document. + TestPressKey(QStringLiteral("qaidummy\\ctrl-cqqbidummy\\ctrl-cqdd")); + vi_global->readConfig(&viTestKConfig); + TestPressKey(QStringLiteral("@a@b")); + FinishTest("ba"); + } + + // Ensure that we don't crash when a "repeat change" occurs in a macro we execute. + clearAllMacros(); + DoTest("", "qqixyz\\ctrl-c.q@qdd", ""); + // Don't record both the "." *and* the last-change keypresses when recording a macro; + // just record the "." + clearAllMacros(); + DoTest("", "ixyz\\ctrl-cqq.qddi123\\ctrl-c@q", "121233"); + + // Test dealing with auto-completion. + FakeCodeCompletionTestModel *fakeCodeCompletionModel = new FakeCodeCompletionTestModel(kate_view); + kate_view->registerCompletionModel(fakeCodeCompletionModel); + // Completion tests require a visible kate_view. + ensureKateViewVisible(); + // Want Vim mode to intercept ctrl-p, ctrl-n shortcuts, etc. + const bool oldStealKeys = KateViewConfig::global()->viInputModeStealKeys(); + KateViewConfig::global()->setValue(KateViewConfig::ViInputModeStealKeys, true); + + // Don't invoke completion via ctrl-space when replaying a macro. + clearAllMacros(); + fakeCodeCompletionModel->setCompletions({QStringLiteral("completionA"), QStringLiteral("completionB"), QStringLiteral("completionC")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("qqico\\ctrl- \\ctrl-cq")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + TestPressKey(QStringLiteral("@q")); + FinishTest("ccoo"); + + // Don't invoke completion via ctrl-p when replaying a macro. + clearAllMacros(); + fakeCodeCompletionModel->setCompletions({QStringLiteral("completionA"), QStringLiteral("completionB"), QStringLiteral("completionC")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("qqico\\ctrl-p\\ctrl-cq")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + TestPressKey(QStringLiteral("@q")); + FinishTest("ccoo"); + + // Don't invoke completion via ctrl-n when replaying a macro. + clearAllMacros(); + fakeCodeCompletionModel->setCompletions({QStringLiteral("completionA"), QStringLiteral("completionB"), QStringLiteral("completionC")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("qqico\\ctrl-n\\ctrl-cq")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + TestPressKey(QStringLiteral("@q")); + FinishTest("ccoo"); + + // An "enter" in insert mode when no completion is activated (so, a newline) + // is treated as a newline when replayed as a macro, even if completion is + // active when the "enter" is replayed. + clearAllMacros(); + fakeCodeCompletionModel->setCompletions(QStringList()); // Prevent any completions. + fakeCodeCompletionModel->setFailTestOnInvocation(false); + fakeCodeCompletionModel->clearWasInvoked(); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("qqicompl\\enterX\\ctrl-cqdddd")); + QVERIFY(!fakeCodeCompletionModel->wasInvoked()); // Error in test setup! + fakeCodeCompletionModel->setCompletions({QStringLiteral("completionA"), QStringLiteral("completionB"), QStringLiteral("completionC")}); + fakeCodeCompletionModel->forceInvocationIfDocTextIs(QStringLiteral("compl")); + fakeCodeCompletionModel->clearWasInvoked(); + TestPressKey(QStringLiteral("@q")); + QVERIFY(fakeCodeCompletionModel->wasInvoked()); // Error in test setup! + fakeCodeCompletionModel->doNotForceInvocation(); + FinishTest("compl\nX"); + // Same for "return". + clearAllMacros(); + fakeCodeCompletionModel->setCompletions(QStringList()); // Prevent any completions. + fakeCodeCompletionModel->setFailTestOnInvocation(false); + fakeCodeCompletionModel->clearWasInvoked(); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("qqicompl\\returnX\\ctrl-cqdddd")); + QVERIFY(!fakeCodeCompletionModel->wasInvoked()); // Error in test setup! + fakeCodeCompletionModel->setCompletions({QStringLiteral("completionA"), QStringLiteral("completionB"), QStringLiteral("completionC")}); + fakeCodeCompletionModel->forceInvocationIfDocTextIs(QStringLiteral("compl")); + fakeCodeCompletionModel->clearWasInvoked(); + TestPressKey(QStringLiteral("@q")); + QVERIFY(fakeCodeCompletionModel->wasInvoked()); // Error in test setup! + fakeCodeCompletionModel->doNotForceInvocation(); + FinishTest("compl\nX"); + + // If we do a plain-text completion in a macro, this should be repeated when we replay it. + clearAllMacros(); + BeginTest(QLatin1String("")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("completionA"), QStringLiteral("completionB"), QStringLiteral("completionC")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qqicompl\\ctrl- \\enter\\ctrl-cq")); + kate_document->clear(); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + TestPressKey(QStringLiteral("@q")); + FinishTest("completionA"); + + // Should replace only the current word when we repeat the completion. + clearAllMacros(); + BeginTest(QStringLiteral("compl")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("completionA"), QStringLiteral("completionB"), QStringLiteral("completionC")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qqfla\\ctrl- \\enter\\ctrl-cq")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + kate_document->setText(QStringLiteral("(compl)")); + TestPressKey(QStringLiteral("gg@q")); + FinishTest("(completionA)"); + + // Tail-clearing completions should be undoable with one undo. + clearAllMacros(); + BeginTest(QStringLiteral("compl")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("completionA"), QStringLiteral("completionB"), QStringLiteral("completionC")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qqfla\\ctrl- \\enter\\ctrl-cq")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + kate_document->setText(QStringLiteral("(compl)")); + TestPressKey(QStringLiteral("gg@qu")); + FinishTest("(compl)"); + + // Should be able to store multiple completions. + clearAllMacros(); + BeginTest(QLatin1String("")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("completionA"), QStringLiteral("completionB"), QStringLiteral("completionC")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qqicom\\ctrl-p\\enter com\\ctrl-p\\ctrl-p\\enter\\ctrl-cq")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + TestPressKey(QStringLiteral("dd@q")); + FinishTest("completionC completionB"); + + // Clear the completions for a macro when we start recording. + clearAllMacros(); + BeginTest(QLatin1String("")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("completionOrig")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qqicom\\ctrl- \\enter\\ctrl-cq")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("completionSecond")}); + TestPressKey(QStringLiteral("ddqqicom\\ctrl- \\enter\\ctrl-cq")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + TestPressKey(QStringLiteral("dd@q")); + FinishTest("completionSecond"); + + // Completions are per macro. + clearAllMacros(); + BeginTest(QLatin1String("")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("completionA")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qaicom\\ctrl- \\enter\\ctrl-cq")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("completionB")}); + TestPressKey(QStringLiteral("ddqbicom\\ctrl- \\enter\\ctrl-cq")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + TestPressKey(QStringLiteral("dd@aA\\enter\\ctrl-c@b")); + FinishTest("completionA\ncompletionB"); + + // Make sure completions work with recursive macros. + clearAllMacros(); + BeginTest(QLatin1String("")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("completionA1"), QStringLiteral("completionA2")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + // Record 'a', which calls the (non-yet-existent) macro 'b'. + TestPressKey(QStringLiteral("qaicom\\ctrl- \\enter\\ctrl-cA\\enter\\ctrl-c@bA\\enter\\ctrl-cicom\\ctrl- \\ctrl-p\\enter\\ctrl-cq")); + // Clear document and record 'b'. + fakeCodeCompletionModel->setCompletions({QStringLiteral("completionB")}); + TestPressKey(QStringLiteral("ggdGqbicom\\ctrl- \\enter\\ctrl-cq")); + TestPressKey(QStringLiteral("dd@a")); + FinishTest("completionA1\ncompletionB\ncompletionA2"); + + // Test that non-tail-removing completions are respected. + // Note that there is no way (in general) to determine if a completion was + // non-tail-removing, so we explicitly set the config to false. + const bool oldRemoveTailOnCompletion = KateViewConfig::global()->wordCompletionRemoveTail(); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, false); + const bool oldReplaceTabsDyn = kate_document->config()->replaceTabsDyn(); + kate_document->config()->setReplaceTabsDyn(false); + fakeCodeCompletionModel->setRemoveTailOnComplete(false); + clearAllMacros(); + BeginTest(QStringLiteral("compTail")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("completionA"), QStringLiteral("completionB"), QStringLiteral("completionC")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qqfTi\\ctrl- \\enter\\ctrl-cq")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + kate_document->setText(QStringLiteral("compTail")); + TestPressKey(QStringLiteral("gg@q")); + FinishTest("completionATail"); + + // A "word" consists of letters & numbers, plus "_". + clearAllMacros(); + BeginTest(QStringLiteral("(123_compTail")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("123_completionA")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qqfTi\\ctrl- \\enter\\ctrl-cq")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + kate_document->setText(QStringLiteral("(123_compTail")); + TestPressKey(QStringLiteral("gg@q")); + FinishTest("(123_completionATail"); + + // Correctly remove word if we are set to remove tail. + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); + clearAllMacros(); + BeginTest(QStringLiteral("(123_compTail)")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("123_completionA")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + fakeCodeCompletionModel->setRemoveTailOnComplete(true); + TestPressKey(QStringLiteral("qqfTi\\ctrl- \\enter\\ctrl-cq")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + kate_document->setText(QStringLiteral("(123_compTail)")); + TestPressKey(QStringLiteral("gg@q")); + FinishTest("(123_completionA)"); + + // Again, a "word" consists of letters & numbers & underscores. + clearAllMacros(); + BeginTest(QStringLiteral("(123_compTail_456)")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("123_completionA")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + fakeCodeCompletionModel->setRemoveTailOnComplete(true); + TestPressKey(QStringLiteral("qqfTi\\ctrl- \\enter\\ctrl-cq")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + kate_document->setText(QStringLiteral("(123_compTail_456)")); + TestPressKey(QStringLiteral("gg@q")); + FinishTest("(123_completionA)"); + + // Actually, let whether the tail is swallowed or not depend on the value when the + // completion occurred, not when we replay it. + clearAllMacros(); + BeginTest(QStringLiteral("(123_compTail_456)")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("123_completionA")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + fakeCodeCompletionModel->setRemoveTailOnComplete(true); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); + TestPressKey(QStringLiteral("qqfTi\\ctrl- \\enter\\ctrl-cq")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, false); + kate_document->setText(QStringLiteral("(123_compTail_456)")); + TestPressKey(QStringLiteral("gg@q")); + FinishTest("(123_completionA)"); + clearAllMacros(); + BeginTest(QStringLiteral("(123_compTail_456)")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("123_completionA")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + fakeCodeCompletionModel->setRemoveTailOnComplete(false); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, false); + TestPressKey(QStringLiteral("qqfTi\\ctrl- \\enter\\ctrl-cq")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); + kate_document->setText(QStringLiteral("(123_compTail_456)")); + TestPressKey(QStringLiteral("gg@q")); + FinishTest("(123_completionATail_456)"); + + // Can have remove-tail *and* non-remove-tail completions in one macro. + clearAllMacros(); + BeginTest(QStringLiteral("(123_compTail_456)\n(123_compTail_456)")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("123_completionA")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + fakeCodeCompletionModel->setRemoveTailOnComplete(true); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); + TestPressKey(QStringLiteral("qqfTi\\ctrl- \\enter\\ctrl-c")); + fakeCodeCompletionModel->setRemoveTailOnComplete(false); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, false); + TestPressKey(QStringLiteral("j^fTi\\ctrl- \\enter\\ctrl-cq")); + kate_document->setText(QStringLiteral("(123_compTail_456)\n(123_compTail_456)")); + TestPressKey(QStringLiteral("gg@q")); + FinishTest("(123_completionA)\n(123_completionATail_456)"); + + // Can repeat plain-text completions when there is no word to the left of the cursor. + clearAllMacros(); + BeginTest(QLatin1String("")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("123_completionA")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qqi\\ctrl- \\enter\\ctrl-cq")); + kate_document->clear(); + TestPressKey(QStringLiteral("gg@q")); + FinishTest("123_completionA"); + + // Shouldn't swallow the letter under the cursor if we're not swallowing tails. + clearAllMacros(); + BeginTest(QLatin1String("")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("123_completionA")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + fakeCodeCompletionModel->setRemoveTailOnComplete(false); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, false); + TestPressKey(QStringLiteral("qqi\\ctrl- \\enter\\ctrl-cq")); + kate_document->setText(QStringLiteral("oldwordshouldbeuntouched")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + TestPressKey(QStringLiteral("gg@q")); + FinishTest("123_completionAoldwordshouldbeuntouched"); + + // ... but do if we are swallowing tails. + clearAllMacros(); + BeginTest(QLatin1String("")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("123_completionA")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + fakeCodeCompletionModel->setRemoveTailOnComplete(true); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); + TestPressKey(QStringLiteral("qqi\\ctrl- \\enter\\ctrl-cq")); + kate_document->setText(QStringLiteral("oldwordshouldbedeleted")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + TestPressKey(QStringLiteral("gg@q")); + FinishTest("123_completionA"); + + // Completion of functions. + // Currently, not removing the tail on function completion is not supported. + fakeCodeCompletionModel->setRemoveTailOnComplete(true); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); + // A completed, no argument function "function()" is repeated correctly. + BeginTest(QLatin1String("")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("function()")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qqifunc\\ctrl- \\enter\\ctrl-cq")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + TestPressKey(QStringLiteral("dd@q")); + FinishTest("function()"); + + // Cursor is placed after the closing bracket when completion a no-arg function. + BeginTest(QLatin1String("")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("function()")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qqifunc\\ctrl- \\enter.something();\\ctrl-cq")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + TestPressKey(QStringLiteral("dd@q")); + FinishTest("function().something();"); + + // A function taking some arguments, repeated where there is no opening bracket to + // merge with, is repeated as "function()"). + BeginTest(QLatin1String("")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("function(...)")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qqifunc\\ctrl- \\enter\\ctrl-cq")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + TestPressKey(QStringLiteral("dd@q")); + FinishTest("function()"); + + // A function taking some arguments, repeated where there is no opening bracket to + // merge with, places the cursor after the opening bracket. + BeginTest(QLatin1String("")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("function(...)")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qqifunc\\ctrl- \\enterfirstArg\\ctrl-cq")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + TestPressKey(QStringLiteral("dd@q")); + FinishTest("function(firstArg)"); + + // A function taking some arguments, recorded where there was an opening bracket to merge + // with but repeated where there is no such bracket, is repeated as "function()" and the + // cursor placed appropriately. + BeginTest(QStringLiteral("(<-Mergeable opening bracket)")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("function(...)")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qqifunc\\ctrl- \\enterfirstArg\\ctrl-cq")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + TestPressKey(QStringLiteral("dd@q")); + FinishTest("function(firstArg)"); + + // A function taking some arguments, recorded where there was no opening bracket to merge + // with but repeated where there is such a bracket, is repeated as "function" and the + // cursor moved to after the merged opening bracket. + BeginTest(QLatin1String("")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("function(...)")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qqifunc\\ctrl- \\enterfirstArg\\ctrl-cq")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + kate_document->setText(QStringLiteral("(<-firstArg goes here)")); + TestPressKey(QStringLiteral("gg@q")); + FinishTest("function(firstArg<-firstArg goes here)"); + + // A function taking some arguments, recorded where there was an opening bracket to merge + // with and repeated where there is also such a bracket, is repeated as "function" and the + // cursor moved to after the merged opening bracket. + BeginTest(QStringLiteral("(<-mergeablebracket)")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("function(...)")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qqifunc\\ctrl- \\enterfirstArg\\ctrl-cq")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + kate_document->setText(QStringLiteral("(<-firstArg goes here)")); + TestPressKey(QStringLiteral("gg@q")); + FinishTest("function(firstArg<-firstArg goes here)"); + + // The mergeable bracket can be separated by whitespace; the cursor is still placed after the + // opening bracket. + BeginTest(QLatin1String("")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("function(...)")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qqifunc\\ctrl- \\enterfirstArg\\ctrl-cq")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + kate_document->setText(QStringLiteral(" \t (<-firstArg goes here)")); + TestPressKey(QStringLiteral("gg@q")); + FinishTest("function \t (firstArg<-firstArg goes here)"); + + // Whitespace only, though! + BeginTest(QLatin1String("")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("function(...)")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qqifunc\\ctrl- \\enterfirstArg\\ctrl-cq")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + kate_document->setText(QStringLiteral("| \t ()")); + TestPressKey(QStringLiteral("gg@q")); + FinishTest("function(firstArg)| \t ()"); + + // The opening bracket can actually be after the current word (with optional whitespace). + // Note that this wouldn't be the case if we weren't swallowing tails when completion functions, + // but this is not currently supported. + BeginTest(QStringLiteral("function")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("function(...)")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qqfta\\ctrl- \\enterfirstArg\\ctrl-cq")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + kate_document->setText(QStringLiteral("functxyz (<-firstArg goes here)")); + TestPressKey(QStringLiteral("gg@q")); + FinishTest("function (firstArg<-firstArg goes here)"); + + // Regression test for weird issue with replaying completions when the character to the left of the cursor + // is not a word char. + BeginTest(QLatin1String("")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("completionA")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qqciw\\ctrl- \\enter\\ctrl-cq")); + TestPressKey(QStringLiteral("ddi.xyz\\enter123\\enter456\\ctrl-cggl")); // Position cursor just after the "." + TestPressKey(QStringLiteral("@q")); + FinishTest(".completionA\n123\n456"); + BeginTest(QLatin1String("")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("completionA")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qqciw\\ctrl- \\enter\\ctrl-cq")); + TestPressKey(QStringLiteral("ddi.xyz.abc\\enter123\\enter456\\ctrl-cggl")); // Position cursor just after the "." + TestPressKey(QStringLiteral("@q")); + FinishTest(".completionA.abc\n123\n456"); + + // Functions taking no arguments are never bracket-merged. + BeginTest(QLatin1String("")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("function()")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qqifunc\\ctrl- \\enter.something();\\ctrl-cq")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + kate_document->setText(QStringLiteral("(<-don't merge this bracket)")); + TestPressKey(QStringLiteral("gg@q")); + FinishTest("function().something();(<-don't merge this bracket)"); + + // Not-removing-tail when completing functions is not currently supported, + // so ignore the "do-not-remove-tail" settings when we try this. + BeginTest(QStringLiteral("funct")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("function(...)")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, false); + TestPressKey(QStringLiteral("qqfta\\ctrl- \\enterfirstArg\\ctrl-cq")); + kate_document->setText(QStringLiteral("functxyz")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + TestPressKey(QStringLiteral("gg@q")); + FinishTest("function(firstArg)"); + BeginTest(QStringLiteral("funct")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("function()")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, false); + TestPressKey(QStringLiteral("qqfta\\ctrl- \\enter\\ctrl-cq")); + kate_document->setText(QStringLiteral("functxyz")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + TestPressKey(QStringLiteral("gg@q")); + FinishTest("function()"); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); + + // Deal with cases where completion ends with ";". + BeginTest(QLatin1String("")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("function();")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qqifun\\ctrl- \\enter\\ctrl-cq")); + kate_document->clear(); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + TestPressKey(QStringLiteral("gg@q")); + FinishTest("function();"); + BeginTest(QLatin1String("")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("function();")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qqifun\\ctrl- \\enterX\\ctrl-cq")); + kate_document->clear(); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + TestPressKey(QStringLiteral("gg@q")); + FinishTest("function();X"); + BeginTest(QLatin1String("")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("function(...);")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qqifun\\ctrl- \\enter\\ctrl-cq")); + kate_document->clear(); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + TestPressKey(QStringLiteral("gg@q")); + FinishTest("function();"); + BeginTest(QLatin1String("")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("function(...);")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qqifun\\ctrl- \\enterX\\ctrl-cq")); + kate_document->clear(); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + TestPressKey(QStringLiteral("gg@q")); + FinishTest("function(X);"); + // Tests for completions ending in ";" where bracket merging should happen on replay. + // NB: bracket merging when recording is impossible with completions that end in ";". + BeginTest(QLatin1String("")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("function(...);")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qqifun\\ctrl- \\enter\\ctrl-cq")); + kate_document->setText(QStringLiteral("(<-mergeable bracket")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + TestPressKey(QStringLiteral("gg@q")); + FinishTest("function(<-mergeable bracket"); + BeginTest(QLatin1String("")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("function(...);")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qqifun\\ctrl- \\enterX\\ctrl-cq")); + kate_document->setText(QStringLiteral("(<-mergeable bracket")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + TestPressKey(QStringLiteral("gg@q")); + FinishTest("function(X<-mergeable bracket"); + // Don't merge no arg functions. + BeginTest(QLatin1String("")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("function();")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qqifun\\ctrl- \\enterX\\ctrl-cq")); + kate_document->setText(QStringLiteral("(<-mergeable bracket")); + fakeCodeCompletionModel->setFailTestOnInvocation(true); + TestPressKey(QStringLiteral("gg@q")); + FinishTest("function();X(<-mergeable bracket"); + + { + const QString viTestKConfigFileName = QStringLiteral("vimodetest-katevimoderc"); + KConfig viTestKConfig(viTestKConfigFileName); + // Test loading and saving of macro completions. + clearAllMacros(); + BeginTest(QStringLiteral("funct\nnoa\ncomtail\ncomtail\ncom")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("completionA"), QStringLiteral("functionwithargs(...)"), QStringLiteral("noargfunction()")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + // Record 'a'. + TestPressKey(QStringLiteral("qafta\\ctrl- \\enterfirstArg\\ctrl-c")); // Function with args. + TestPressKey(QStringLiteral("\\enterea\\ctrl- \\enter\\ctrl-c")); // Function no args. + fakeCodeCompletionModel->setRemoveTailOnComplete(true); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); + TestPressKey(QStringLiteral("\\enterfti\\ctrl- \\enter\\ctrl-c")); // Cut off tail. + fakeCodeCompletionModel->setRemoveTailOnComplete(false); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, false); + TestPressKey(QStringLiteral("\\enterfti\\ctrl- \\enter\\ctrl-cq")); // Don't cut off tail. + fakeCodeCompletionModel->setRemoveTailOnComplete(true); + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); + // Record 'b'. + fakeCodeCompletionModel->setCompletions( + {QStringLiteral("completionB"), QStringLiteral("semicolonfunctionnoargs();"), QStringLiteral("semicolonfunctionwithargs(...);")}); + TestPressKey( + QStringLiteral("\\enterqbea\\ctrl- \\enter\\ctrl-cosemicolonfunctionw\\ctrl- \\enterX\\ctrl-cosemicolonfunctionn\\ctrl- \\enterX\\ctrl-cq")); + // Save. + vi_global->writeConfig(&viTestKConfig); + viTestKConfig.sync(); + // Overwrite 'a' and 'b' and their completions. + fakeCodeCompletionModel->setCompletions({QStringLiteral("blah1")}); + kate_document->setText(QLatin1String("")); + TestPressKey(QStringLiteral("ggqaiblah\\ctrl- \\enter\\ctrl-cq")); + TestPressKey(QStringLiteral("ddqbiblah\\ctrl- \\enter\\ctrl-cq")); + // Reload. + vi_global->readConfig(&viTestKConfig); + // Replay reloaded. + fakeCodeCompletionModel->setFailTestOnInvocation(true); + kate_document->setText(QStringLiteral("funct\nnoa\ncomtail\ncomtail\ncom")); + TestPressKey(QStringLiteral("gg@a\\enter@b")); + FinishTest( + "functionwithargs(firstArg)\nnoargfunction()\ncompletionA\ncompletionAtail\ncompletionB\nsemicolonfunctionwithargs(X);\nsemicolonfunctionnoargs();" + "X"); + } + + // Check that undo/redo operations work properly with macros. + { + clearAllMacros(); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("ihello\\ctrl-cqauq")); + TestPressKey(QStringLiteral("@a\\enter")); + FinishTest(""); + } + { + clearAllMacros(); + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("ihello\\ctrl-cui.bye\\ctrl-cu")); + TestPressKey(QStringLiteral("qa\\ctrl-r\\enterq")); + TestPressKey(QStringLiteral("@a\\enter")); + FinishTest(".bye"); + } + + // When replaying a last change in the process of replaying a macro, take the next completion + // event from the last change completions log, rather than the macro completions log. + // Ensure that the last change completions log is kept up to date even while we're replaying the macro. + if (false) { // FIXME: test currently fails in newer Qt >= 5.11, but works with Qt 5.10 + clearAllMacros(); + BeginTest(QLatin1String("")); + fakeCodeCompletionModel->setCompletions({QStringLiteral("completionMacro"), QStringLiteral("completionRepeatLastChange")}); + fakeCodeCompletionModel->setFailTestOnInvocation(false); + TestPressKey(QStringLiteral("qqicompletionM\\ctrl- \\enter\\ctrl-c")); + TestPressKey(QStringLiteral("a completionRep\\ctrl- \\enter\\ctrl-c")); + TestPressKey(QStringLiteral(".q")); + qDebug() << "text: " << kate_document->text(); + kate_document->clear(); + TestPressKey(QStringLiteral("gg@q")); + FinishTest("completionMacro completionRepeatLastChange completionRepeatLastChange"); + } + + KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, oldRemoveTailOnCompletion); + kate_document->config()->setReplaceTabsDyn(oldReplaceTabsDyn); + + kate_view->unregisterCompletionModel(fakeCodeCompletionModel); + delete fakeCodeCompletionModel; + fakeCodeCompletionModel = nullptr; + // Hide the kate_view for subsequent tests. + kate_view->hide(); + mainWindow->hide(); + KateViewConfig::global()->setValue(KateViewConfig::ViInputModeStealKeys, oldStealKeys); +} + +void KeysTest::MarkTests() +{ + // Difference between ` and ' + DoTest(" a\n b", "jmak'aii", " a\n ib"); + DoTest(" a\n b", "jmak`aii", " a\ni b"); + + // Last edit markers. + DoTest("foo", "ean\\escgg`.r.", "foo."); + DoTest("foo", "ean\\escgg`[r[", "foo["); + DoTest("foo", "ean\\escgg`]r]", "foo]"); + DoTest("foo bar", "ean\\escgg`]r]", "foon]bar"); + DoTest("", "ibar\\escgg`.r.", "ba."); + DoTest("", "ibar\\escgggUiw`.r.", ".AR"); + DoTest("", "2ibar\\escgg`]r]", "barba]"); + DoTest("", "2ibar\\escgg`[r[", "[arbar"); + DoTest("", "3ibar\\escgg`.r.", "barbar.ar"); // Vim is weird. + DoTest("", "abar\\esc.gg`]r]", "barba]"); + DoTest("foo bar", "wgUiwgg`]r]", "foo BA]"); + DoTest("foo bar", "wgUiwgg`.r.", "foo .AR"); + DoTest("foo bar", "gUiwgg`]r.", "FO. bar"); + DoTest("foo bar", "wdiwgg`[r[", "foo["); + DoTest("foo bar", "wdiwgg`]r]", "foo]"); + DoTest("foo bar", "wdiwgg`.r.", "foo."); + DoTest("foo bar", "wciwnose\\escgg`.r.", "foo nos."); + DoTest("foo bar", "wciwnose\\escgg`[r[", "foo [ose"); + DoTest("foo bar", "wciwnose\\escgg`]r]", "foo nos]"); + DoTest("foo", "~ibar\\escgg`[r[", "F[aroo"); + DoTest("foo bar", "lragg`.r.", "f.o bar"); + DoTest("foo bar", "lragg`[r[", "f[o bar"); + DoTest("foo bar", "lragg`]r]", "f]o bar"); + DoTest("", "ifoo\\ctrl-hbar\\esc`[r[", "[obar"); + DoTest("", "ifoo\\ctrl-wbar\\esc`[r[", "[ar"); + DoTest("", "if\\ctrl-hbar\\esc`[r[", "[ar"); + DoTest("", "5ofoo\\escgg`[r[", "\n[oo\nfoo\nfoo\nfoo\nfoo"); + DoTest("", "5ofoo\\escgg`]r]", "\nfoo\nfoo\nfoo\nfoo\nfo]"); + DoTest("", "5ofoo\\escgg`.r.", "\nfoo\nfoo\nfoo\nfoo\n.oo"); + DoTest("foo", "yyp`[r[", "foo\n[oo"); + DoTest("xyz\nfoo", "ja\\returnbar\\esc`[r[", "xyz\n[\nbaroo"); + DoTest("foo", "lrayypgg`[r[", "fao\n[ao"); + DoTest("foo", "l~u`[r[", "[oo"); + DoTest("foo", "l~u`.r.", ".oo"); + DoTest("foo", "l~u`]r]", "]oo"); + DoTest("foo", "lia\\escu`[r[", "[oo"); + DoTest("foo", "lia\\escu`.r.", ".oo"); + DoTest("foo", "lia\\escu`]r]", "]oo"); + DoTest("foo", "l~u~`[r[", "f[o"); + DoTest("foo\nbar\nxyz", "jyypu`[r[", "foo\nbar\n[yz"); + DoTest("foo\nbar\nxyz", "jyypu`.r.", "foo\nbar\n.yz"); + DoTest("foo\nbar\nxyz", "jyypu`]r]", "foo\nbar\n]yz"); + DoTest("foo\nbar\nxyz\n123", "jdju`[r[", "foo\n[ar\nxyz\n123"); + DoTest("foo\nbar\nxyz\n123", "jdju`.r.", "foo\n.ar\nxyz\n123"); + DoTest("foo\nbar\nxyz\n123", "jdju`]r]", "foo\nbar\n]yz\n123"); + DoTest("foo\nbar\nxyz\n123", "jVj~u\\esc`[r[", "foo\n[ar\nxyz\n123", ShouldFail, "Vim is weird."); + + // unicode, bug 462437 + DoTest("nahrávání", "ean\\escgg`.r.", "nahrávání."); + DoTest("nahrávání", "ex", "nahráván"); +} + +// END: KeysTest + +#include "moc_keys.cpp" diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/keys.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/keys.h new file mode 100644 index 0000000000..9fda641789 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/keys.h @@ -0,0 +1,26 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2014 Miquel Sabaté Solà + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef KEYS_TEST_H +#define KEYS_TEST_H + +#include "base.h" + +class KeysTest : public BaseTest +{ + Q_OBJECT + +private Q_SLOTS: + void MappingTests(); + void LeaderTests(); + void ParsingTests(); + void AltGr(); + void MacroTests(); + void MarkTests(); +}; + +#endif /* KEYS_TEST_H */ diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/modes.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/modes.cpp new file mode 100644 index 0000000000..77ce17bccc --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/modes.cpp @@ -0,0 +1,1682 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2014 Miquel Sabaté Solà + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "modes.h" +#include "emulatedcommandbarsetupandteardown.h" +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +using namespace KTextEditor; + +QTEST_MAIN(ModesTest) + +// BEGIN: Normal mode. + +void ModesTest::NormalMotionsTests() +{ + // Test moving around an empty document (nothing should happen) + DoTest("", "jkhl", ""); + DoTest("", "ggG$0", ""); + + // Testing "l" + DoTest("bar", "lx", "br"); + DoTest("bar", "2lx", "ba"); + DoTest("0123456789012345", "13lx", "012345678901245"); + DoTest("bar", "10lx", "ba"); + + // Testing "h" + DoTest("bar", "llhx", "br"); + DoTest("bar", "10l10hx", "ar"); + DoTest("0123456789012345", "13l10hx", "012456789012345"); + DoTest("bar", "ll5hx", "ar"); + + // Testing "j" + DoTest("bar\nbar", "jx", "bar\nar"); + DoTest("bar\nbar", "10jx", "bar\nar"); + DoTest("bar\nbara", "lljx", "bar\nbaa"); + DoTest("0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n0\n1\n2\n3\n4\n5\n", "13jx", "0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n0\n1\n2\n\n4\n5\n"); + + // Testing "k" + DoTest("bar\nbar", "jx", "bar\nar"); + DoTest("bar\nbar\nbar", "jj100kx", "ar\nbar\nbar"); + DoTest("0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n0\n1\n2\n3\n4\n5\n", "13j10kx", "0\n1\n2\n\n4\n5\n6\n7\n8\n9\n0\n1\n2\n3\n4\n5\n"); + + // Testing "w" + DoTest("bar", "wx", "ba"); + DoTest("foo bar", "wx", "foo ar"); + DoTest("foo bar", "lwx", "foo ar"); + DoTest("quux(foo, bar, baz);", "wxwxwxwx2wx", "quuxfoo ar baz;"); + DoTest("foo\nbar\nbaz", "wxwx", "foo\nar\naz"); + DoTest("1 2 3\n4 5 6", "ld3w", "1\n4 5 6"); + DoTest("foo\nbar baz", "gU2w", "FOO\nBAR baz"); + DoTest("FOO\nBAR BAZ", "gu2w", "foo\nbar BAZ"); + DoTest("bar(\n123", "llwrX", "barX\n123"); + + // Testing "W" + DoTest("bar", "Wx", "ba"); + DoTest("foo bar", "Wx", "foo ar"); + DoTest("foo bar", "2lWx", "foo ar"); + DoTest("quux(foo, bar, baz);", "WxWx", "quux(foo, ar, az);"); + DoTest("foo\nbar\nbaz", "WxWx", "foo\nar\naz"); + DoTest(" foo(bar xyz", "Wx", " oo(bar xyz"); + + // Testing "b" + DoTest("bar", "lbx", "ar"); + DoTest("foo bar baz", "2wbx", "foo ar baz"); + DoTest("foo bar", "w20bx", "oo bar"); + DoTest("quux(foo, bar, baz);", "2W4l2bx2bx", "quux(foo, ar, az);"); + DoTest("foo\nbar\nbaz", "WWbx", "foo\nar\nbaz"); + DoTest(" foo", "lbrX", "X foo"); + DoTest(" foo", "llbrX", "X foo"); + + // Testing "B" + DoTest("bar", "lBx", "ar"); + DoTest("foo bar baz", "2wBx", "foo ar baz"); + DoTest("foo bar", "w20Bx", "oo bar"); + DoTest("quux(foo, bar, baz);", "2W4lBBx", "quux(foo, ar, baz);"); + DoTest("foo\nbar", "WlBx", "foo\nar"); + + // Testing "e" + DoTest("quux(foo, bar, baz);", "exex2ex10ex", "quu(fo, bar baz)"); + DoTest("", "ce", ""); + DoTest(" ", "lceX", "X"); + DoTest("", "cE", ""); + + // Testing "E" + DoTest("quux(foo, bar, baz);", "ExEx10Ex", "quux(foo bar baz)"); + + // Testing "$" + DoTest("foo\nbar\nbaz", "$x3$x", "fo\nbar\nba"); + + // Testing "0" + DoTest(" foo", "$0x", "foo"); + + // Testing "#" & "*" + DoTest("1 1 1", "2#x", "1 1"); + DoTest("foo bar foo bar", "#xlll#x", "foo ar oo bar"); + DoTest("(foo (bar (foo( bar))))", "#xll#x", "(foo (ar (oo( bar))))"); + DoTest("(foo (bar (foo( bar))))", "*x", "(foo (bar (oo( bar))))"); + DoTest("foo bar foobar foo", "*rX", "foo bar foobar Xoo"); // Whole word only. + DoTest("foo bar foobar foo", "$#rX", "Xoo bar foobar foo"); // Whole word only. + DoTest("fOo foo fOo", "*rX", "fOo Xoo fOo"); // Case insensitive. + DoTest("fOo foo fOo", "$#rX", "fOo Xoo fOo"); // Case insensitive. + DoTest("fOo foo fOo", "*ggnrX", "fOo Xoo fOo"); // Flag that the search to repeat is case insensitive. + DoTest("fOo foo fOo", "$#ggNrX", "fOo Xoo fOo"); // Flag that the search to repeat is case insensitive. + DoTest("bar foo", "$*rX", "bar Xoo"); + DoTest("bar foo", "$#rX", "bar Xoo"); + // Test that calling # on the last, blank line of a document does not go into an infinite loop. + DoTest("foo\n", "j#", "foo\n"); + + // Testing "-" + DoTest("0\n1\n2\n3\n4\n5", "5j-x2-x", "0\n1\n\n3\n\n5"); + DoTest("foo\n\t \t bar\nbaz", "3j-r.", "foo\n\t \t .ar\nbaz"); + + // Testing "^" + DoTest(" foo bar", "$^x", " oo bar"); + + // Testing "gg" + DoTest("1\n2\n3\n4\n5", "4jggx", "\n2\n3\n4\n5"); + + // Testing "G" + DoTest("1\n2\n3\n4\n5", "Gx", "1\n2\n3\n4\n"); + + // Testing "ge" + DoTest("quux(foo, bar, baz);", "9lgexgex$gex", "quux(fo bar, ba);"); + DoTest("foo", "llgerX", "Xoo"); + DoTest(" foo", "$gerX", "X foo"); + DoTest(" foo foo", "$2gerX", "X foo foo"); + + // Testing "gE" + DoTest("quux(foo, bar, baz);", "9lgExgEx$gEx", "quux(fo bar baz);"); + DoTest(" foo", "$gErX", "X foo"); + DoTest(" foo foo", "$2gErX", "X foo foo"); + DoTest(" !foo$!\"", "$gErX", "X !foo$!\""); + DoTest(" !foo$!\"", "$2gErX", "X !foo$!\""); + + // Testing "|" + DoTest("123456789", "3|rx4|rx8|rx1|rx", "x2xx567x9"); + + // Testing "`" + DoTest("foo\nbar\nbaz", "lmaj`arx", "fxo\nbar\nbaz"); + + // Testing "'" + DoTest("foo\nbar\nbaz", "lmaj'arx", "xoo\nbar\nbaz"); + + // Testing undo/redo for different counts + DoTest("foo", "Abar\\esc.u", "foobar"); + DoTest("foo", "Abar\\esc.uU", "foobarbar"); + DoTest("foo", "Abar\\esc.2u", "foo"); + DoTest("foo", "Abar\\esc.2u2U", "foobarbar"); + DoTest("foo", "Abar\\esc..4u2U", "foobarbar"); + DoTest("foo", "Abar\\esc..2u4U", "foobarbarbar"); + + // Testing "%" + DoTest("foo{\n}\n", "$d%", "foo\n"); + DoTest("FOO{\nBAR}BAZ", "lllgu%", "FOO{\nbar}BAZ"); + DoTest("foo{\nbar}baz", "lllgU%", "foo{\nBAR}baz"); + DoTest("foo{\nbar\n}", "llly%p", "foo{{\nbar\n}\nbar\n}"); + // Regression bug for test where yanking with % would actually move the cursor. + DoTest("a()", "y%x", "()"); + // Regression test for the bug I added fixing the bug above ;) + DoTest("foo(bar)", "y%P", "foo(bar)foo(bar)"); + // Regression test for adjacent brackets + DoTest("foo((bar)baz)", "y%P", "foo((bar)baz)foo((bar)baz)"); + // Regression test for "empty" bracket ranges + DoTest("()123", "%%llx", "()23"); + + // Testing percentage "%" + DoTest("10%\n20%\n30%\n40%\n50%\n60%\n70%\n80%\n90%\n100%", "20%dd", "10%\n30%\n40%\n50%\n60%\n70%\n80%\n90%\n100%"); + + DoTest("10%\n20%\n30%\n40%\n50%\n60%\n70%\n80%\n90%\n100%", "50%dd", "10%\n20%\n30%\n40%\n60%\n70%\n80%\n90%\n100%"); + + DoTest("10%\n20%\n30%\n40%\n50%\n60%\n70\n80%\n90%\n100%", "65%dd", "10%\n20%\n30%\n40%\n50%\n60%\n80%\n90%\n100%"); + + DoTest("10%\n20%\n30%\n40%\n50%\n60%\n70%\n80%\n90%\n100%", "5j10%dd", "20%\n30%\n40%\n50%\n60%\n70%\n80%\n90%\n100%"); + + // ctrl-left and ctrl-right. + DoTest("foo bar xyz", "\\ctrl-\\rightrX", "foo Xar xyz"); + DoTest("foo bar xyz", "$\\ctrl-\\leftrX", "foo bar Xyz"); + + // Enter / Return / "+" + DoTest("foo\n\t \t bar", "\\enterr.", "foo\n\t \t .ar"); + DoTest("foo\n\t \t bar", "\\returnr.", "foo\n\t \t .ar"); + DoTest("foo\n\t \t bar", "+r.", "foo\n\t \t .ar"); + + // TEXT OBJECTS + DoTest("foo \"bar baz ('first', 'second' or 'third')\"", "8w2lci'", "foo \"bar baz ('first', '' or 'third')\""); + + DoTest("foo \"bar baz ('first', 'second' or 'third')\"", "8w2lca'", "foo \"bar baz ('first', or 'third')\""); + + DoTest("foo \"bar baz ('first', 'second' or 'third')\"", "8w2lci(", "foo \"bar baz ()\""); + + DoTest("foo \"bar baz ('first', 'second' or 'third')\"", "8w2lci(", "foo \"bar baz ()\""); + + DoTest("foo \"bar baz ('first', 'second' or 'third')\"", "8w2lcib", "foo \"bar baz ()\""); + // Quick test that bracket object works in visual mode. + DoTest("foo \"bar baz ('first', 'second' or 'third')\"", "8w2lvibd", "foo \"bar baz ()\""); + DoTest("foo \"bar baz ('first', 'second' or 'third')\"", "8w2lvabd", "foo \"bar baz \""); + + DoTest("foo \"bar baz ('first', 'second' or 'third')\"", "8w2lca)", "foo \"bar baz \""); + + DoTest("foo \"bar baz ('first', 'second' or 'third')\"", "8w2lci\"", "foo \"\""); + + DoTest("foo \"bar baz ('first', 'second' or 'third')\"", "8w2lda\"", "foo "); + + DoTest("foo \"bar [baz ({'first', 'second'} or 'third')]\"", "9w2lci[", "foo \"bar []\""); + + DoTest("foo \"bar [baz ({'first', 'second'} or 'third')]\"", "9w2lci]", "foo \"bar []\""); + + DoTest("foo \"bar [baz ({'first', 'second'} or 'third')]\"", "9w2lca[", "foo \"bar \""); + + DoTest("foo \"bar [baz ({'first', 'second'} or 'third')]\"", "9w2lci{", "foo \"bar [baz ({} or 'third')]\""); + + DoTest("foo \"bar [baz ({'first', 'second'} or 'third')]\"", "7w2lca}", "foo \"bar [baz ( or 'third')]\""); + + DoTest("{foo { bar { (baz) \"asd\" }} {1} {2} {3} {4} {5} }", "ldiB", "{}"); + + // Inner/ A Word. + DoTest("", "diw", ""); + DoTest(" ", "diw", ""); + DoTest(" ", "diw", ""); + DoTest("foo", "daw", ""); + DoTest("foo", "ldaw", ""); + DoTest("foo", "cawxyz\\esc", "xyz"); + DoTest("foo bar baz", "daw", "bar baz"); + DoTest("foo bar baz", "cawxyz\\esc", "xyzbar baz"); + DoTest("foo bar baz", "wdaw", "foo baz"); + DoTest("foo bar baz", "wldaw", "foo baz"); + DoTest("foo bar baz", "wlldaw", "foo baz"); + DoTest("foo bar baz", "wcawxyz\\esc", "foo xyzbaz"); + DoTest("foo bar baz", "wwdaw", "foo bar"); + DoTest("foo bar baz ", "wwdaw", "foo bar "); + DoTest("foo bar baz", "wwcawxyz\\esc", "foo barxyz"); + DoTest("foo bar baz\n123", "jdaw", "foo bar baz\n"); + DoTest("foo bar baz\n123", "jcawxyz\\esc", "foo bar baz\nxyz"); + DoTest("foo bar baz\n123", "wwdaw", "foo bar\n123"); + DoTest("foo bar baz\n123", "wwcawxyz\\esc", "foo barxyz\n123"); + DoTest("foo bar baz\n123", "wwdaw", "foo bar\n123"); + DoTest("foo bar baz\n123", "wwcawxyz\\esc", "foo barxyz\n123"); + DoTest("foo bar baz \n123", "wwdaw", "foo bar \n123"); + DoTest("foo bar baz \n123", "wwcawxyz\\esc", "foo bar xyz\n123"); + DoTest("foo bar baz \n123", "wwdaw", "foo bar \n123"); + DoTest("foo bar baz \n123", "wwcawxyz\\esc", "foo bar xyz\n123"); + DoTest("foo bar", "llldaw", "foo"); + DoTest("foo bar", "lllcawxyz\\esc", "fooxyz"); + DoTest("foo bar", "lllldaw", "foo"); + DoTest("foo bar", "llllcawxyz\\esc", "fooxyz"); + DoTest(" bar", "daw", ""); + DoTest(" bar", "ldaw", ""); + DoTest(" bar", "llldaw", ""); + DoTest(" bar", "lllldaw", " "); + DoTest(" bar", "cawxyz\\esc", "xyz"); + DoTest(" bar", "lcawxyz\\esc", "xyz"); + DoTest(" bar", "lllcawxyz\\esc", "xyz"); + DoTest("foo ", "llldaw", "foo "); + DoTest("foo ", "lllldaw", "foo "); + DoTest("foo ", "llllldaw", "foo "); + DoTest("foo ", "lllcawxyz\\esc", "foo "); + DoTest("foo ", "llllcawxyz\\esc", "foo "); + DoTest("foo ", "lllllcawxyz\\esc", "foo "); + DoTest("foo \nbar", "llldaw", "foo"); + DoTest("foo \nbar", "lllldaw", "foo"); + DoTest("foo \nbar", "llllldaw", "foo"); + DoTest("foo \nbar", "lllcawxyz\\esc", "fooxyz"); + DoTest("foo \nbar", "llllcawxyz\\esc", "fooxyz"); + DoTest("foo \nbar", "lllllcawxyz\\esc", "fooxyz"); + DoTest("foo \n bar", "jdaw", "foo \n"); + DoTest("foo \n bar", "jldaw", "foo \n"); + DoTest("foo \n bar", "jlldaw", "foo \n"); + DoTest("foo \n bar", "jcawxyz\\esc", "foo \nxyz"); + DoTest("foo \n bar", "jlcawxyz\\esc", "foo \nxyz"); + DoTest("foo \n bar", "jllcawxyz\\esc", "foo \nxyz"); + DoTest("foo bar", "2daw", ""); + DoTest("foo bar", "2cawxyz\\esc", "xyz"); + DoTest("foo bar baz", "2daw", "baz"); + DoTest("foo bar baz", "2cawxyz\\esc", "xyzbaz"); + DoTest("foo bar baz", "3daw", ""); + DoTest("foo bar baz", "3cawxyz\\esc", "xyz"); + DoTest("foo bar\nbaz", "2daw", "\nbaz"); + DoTest("foo bar\nbaz", "2cawxyz\\esc", "xyz\nbaz"); + DoTest("foo bar\nbaz 123", "3daw", "123"); + DoTest("foo bar\nbaz 123", "3cawxyz\\esc", "xyz123"); + DoTest("foo bar \nbaz 123", "3daw", "123"); + DoTest("foo bar \nbaz 123", "3cawxyz\\esc", "xyz123"); + DoTest("foo bar baz", "lll2daw", "foo"); + DoTest("foo bar baz", "lll2cawxyz\\esc", "fooxyz"); + DoTest(" bar baz", "2daw", ""); + DoTest(" bar baz", "2cawxyz\\esc", "xyz"); + DoTest(" bar baz 123", "2daw", " 123"); + DoTest(" bar baz 123", "2cawxyz\\esc", "xyz 123"); + DoTest(" bar baz\n123", "3daw", ""); + DoTest(" bar baz\n123", "3cawxyz\\esc", "xyz"); + DoTest(" bar baz\n 123", "3daw", ""); + DoTest(" bar baz\n 123", "3cawxyz\\esc", "xyz"); + DoTest(" bar baz\n 123", "2daw", "\n 123"); + DoTest(" bar baz\n 123", "2cawxyz\\esc", "xyz\n 123"); + DoTest(" bar baz\n 123 456 789", "j2daw", " bar baz\n 789"); + DoTest(" bar baz\n 123 456 789", "j2cawxyz\\esc", " bar baz\nxyz 789"); + DoTest("foo\nbar\n", "2daw", ""); + DoTest("bar baz\n123 \n456\n789 abc \njkl", "j4daw", "bar baz\njkl"); + DoTest("bar baz\n123 \n456\n789 abc \njkl", "j4cawxyz\\esc", "bar baz\nxyzjkl"); + DoTest(" bar baz\n 123 \n456\n789 abc \njkl", "j4daw", " bar baz\njkl"); + DoTest(" bar baz\n 123 456 789", "j2cawxyz\\esc", " bar baz\nxyz 789"); + DoTest("foo b123r xyz", "wdaw", "foo xyz"); + DoTest("foo b123r xyz", "wldaw", "foo xyz"); + DoTest("foo b123r xyz", "wlldaw", "foo xyz"); + DoTest("foo b123r xyz", "wllldaw", "foo xyz"); + DoTest("foo b123r xyz", "wlllldaw", "foo xyz"); + DoTest("1 2 3 4 5 6", "daw", "2 3 4 5 6"); + DoTest("1 2 3 4 5 6", "ldaw", "1 3 4 5 6"); + DoTest("1 2 3 4 5 6", "lldaw", "1 3 4 5 6"); + DoTest("1 2 3 4 5 6", "llldaw", "1 2 4 5 6"); + DoTest("!foo!", "ldaw", "!!"); + DoTest("! foo !", "ldaw", "! !"); + DoTest("! foo !", "lldaw", "! !"); + DoTest("! foo (", "l2daw", "!"); + DoTest("! foo(\n123", "l2daw", "!\n123"); + DoTest(" !foo(\n123", "lll2daw", " !\n123"); + DoTest(" !!foo(\n123", "llll2daw", " !!\n123"); + DoTest(" !foo( \n123", "lll2daw", " !\n123"); + DoTest(" !!!!(", "llldaw", " "); + DoTest(" !!!!(", "lll2daw", " !!!!("); + DoTest(" !!!!(\n!!!", "lll2daw", ""); + DoTest(" !!!!(\n!!!", "llll2daw", ""); + + // Inner/ A WORD + // Behave the same as a Word if there are no non-word chars. + DoTest("", "diW", ""); + DoTest(" ", "diW", ""); + DoTest(" ", "diW", ""); + DoTest("foo", "daW", ""); + DoTest("foo", "ldaW", ""); + DoTest("foo", "caWxyz\\esc", "xyz"); + DoTest("foo bar baz", "daW", "bar baz"); + DoTest("foo bar baz", "caWxyz\\esc", "xyzbar baz"); + DoTest("foo bar baz", "wdaW", "foo baz"); + DoTest("foo bar baz", "wldaW", "foo baz"); + DoTest("foo bar baz", "wlldaW", "foo baz"); + DoTest("foo bar baz", "wcaWxyz\\esc", "foo xyzbaz"); + DoTest("foo bar baz", "wwdaW", "foo bar"); + DoTest("foo bar baz ", "wwdaW", "foo bar "); + DoTest("foo bar baz", "wwcaWxyz\\esc", "foo barxyz"); + DoTest("foo bar baz\n123", "jdaW", "foo bar baz\n"); + DoTest("foo bar baz\n123", "jcaWxyz\\esc", "foo bar baz\nxyz"); + DoTest("foo bar baz\n123", "wwdaW", "foo bar\n123"); + DoTest("foo bar baz\n123", "wwcaWxyz\\esc", "foo barxyz\n123"); + DoTest("foo bar baz\n123", "wwdaW", "foo bar\n123"); + DoTest("foo bar baz\n123", "wwcaWxyz\\esc", "foo barxyz\n123"); + DoTest("foo bar baz \n123", "wwdaW", "foo bar \n123"); + DoTest("foo bar baz \n123", "wwcaWxyz\\esc", "foo bar xyz\n123"); + DoTest("foo bar baz \n123", "wwdaW", "foo bar \n123"); + DoTest("foo bar baz \n123", "wwcaWxyz\\esc", "foo bar xyz\n123"); + DoTest("foo bar", "llldaW", "foo"); + DoTest("foo bar", "lllcaWxyz\\esc", "fooxyz"); + DoTest("foo bar", "lllldaW", "foo"); + DoTest("foo bar", "llllcaWxyz\\esc", "fooxyz"); + DoTest(" bar", "daW", ""); + DoTest(" bar", "ldaW", ""); + DoTest(" bar", "llldaW", ""); + DoTest(" bar", "lllldaW", " "); + DoTest(" bar", "caWxyz\\esc", "xyz"); + DoTest(" bar", "lcaWxyz\\esc", "xyz"); + DoTest(" bar", "lllcaWxyz\\esc", "xyz"); + DoTest("foo ", "llldaW", "foo "); + DoTest("foo ", "lllldaW", "foo "); + DoTest("foo ", "llllldaW", "foo "); + DoTest("foo ", "lllcaWxyz\\esc", "foo "); + DoTest("foo ", "llllcaWxyz\\esc", "foo "); + DoTest("foo ", "lllllcaWxyz\\esc", "foo "); + DoTest("foo \nbar", "llldaW", "foo"); + DoTest("foo \nbar", "lllldaW", "foo"); + DoTest("foo \nbar", "llllldaW", "foo"); + DoTest("foo \nbar", "lllcaWxyz\\esc", "fooxyz"); + DoTest("foo \nbar", "llllcaWxyz\\esc", "fooxyz"); + DoTest("foo \nbar", "lllllcaWxyz\\esc", "fooxyz"); + DoTest("foo \n bar", "jdaW", "foo \n"); + DoTest("foo \n bar", "jldaW", "foo \n"); + DoTest("foo \n bar", "jlldaW", "foo \n"); + DoTest("foo \n bar", "jcaWxyz\\esc", "foo \nxyz"); + DoTest("foo \n bar", "jlcaWxyz\\esc", "foo \nxyz"); + DoTest("foo \n bar", "jllcaWxyz\\esc", "foo \nxyz"); + DoTest("foo bar", "2daW", ""); + DoTest("foo bar", "2caWxyz\\esc", "xyz"); + DoTest("foo bar baz", "2daW", "baz"); + DoTest("foo bar baz", "2caWxyz\\esc", "xyzbaz"); + DoTest("foo bar baz", "3daW", ""); + DoTest("foo bar baz", "3caWxyz\\esc", "xyz"); + DoTest("foo bar\nbaz", "2daW", "\nbaz"); + DoTest("foo bar\nbaz", "2caWxyz\\esc", "xyz\nbaz"); + DoTest("foo bar\nbaz 123", "3daW", "123"); + DoTest("foo bar\nbaz 123", "3caWxyz\\esc", "xyz123"); + DoTest("foo bar \nbaz 123", "3daW", "123"); + DoTest("foo bar \nbaz 123", "3caWxyz\\esc", "xyz123"); + DoTest("foo bar baz", "lll2daW", "foo"); + DoTest("foo bar baz", "lll2caWxyz\\esc", "fooxyz"); + DoTest(" bar baz", "2daW", ""); + DoTest(" bar baz", "2caWxyz\\esc", "xyz"); + DoTest(" bar baz 123", "2daW", " 123"); + DoTest(" bar baz 123", "2caWxyz\\esc", "xyz 123"); + DoTest(" bar baz\n123", "3daW", ""); + DoTest(" bar baz\n123", "3caWxyz\\esc", "xyz"); + DoTest(" bar baz\n 123", "3daW", ""); + DoTest(" bar baz\n 123", "3caWxyz\\esc", "xyz"); + DoTest(" bar baz\n 123", "2daW", "\n 123"); + DoTest(" bar baz\n 123", "2caWxyz\\esc", "xyz\n 123"); + DoTest(" bar baz\n 123 456 789", "j2daW", " bar baz\n 789"); + DoTest(" bar baz\n 123 456 789", "j2caWxyz\\esc", " bar baz\nxyz 789"); + DoTest("foo\nbar\n", "2daW", ""); + DoTest("bar baz\n123 \n456\n789 abc \njkl", "j4daW", "bar baz\njkl"); + DoTest("bar baz\n123 \n456\n789 abc \njkl", "j4caWxyz\\esc", "bar baz\nxyzjkl"); + DoTest(" bar baz\n 123 \n456\n789 abc \njkl", "j4daW", " bar baz\njkl"); + DoTest(" bar baz\n 123 456 789", "j2caWxyz\\esc", " bar baz\nxyz 789"); + DoTest("foo b123r xyz", "wdaW", "foo xyz"); + DoTest("foo b123r xyz", "wldaW", "foo xyz"); + DoTest("foo b123r xyz", "wlldaW", "foo xyz"); + DoTest("foo b123r xyz", "wllldaW", "foo xyz"); + DoTest("foo b123r xyz", "wlllldaW", "foo xyz"); + DoTest("1 2 3 4 5 6", "daW", "2 3 4 5 6"); + DoTest("1 2 3 4 5 6", "ldaW", "1 3 4 5 6"); + DoTest("1 2 3 4 5 6", "lldaW", "1 3 4 5 6"); + DoTest("1 2 3 4 5 6", "llldaW", "1 2 4 5 6"); + // Now with non-word characters. + DoTest("fo(o", "daW", ""); + DoTest("fo(o", "ldaW", ""); + DoTest("fo(o", "lldaW", ""); + DoTest("fo(o", "llldaW", ""); + DoTest("fo(o )!)!)ffo", "2daW", ""); + DoTest("fo(o", "diW", ""); + DoTest("fo(o", "ldiW", ""); + DoTest("fo(o", "lldiW", ""); + DoTest("fo(o", "llldiW", ""); + DoTest("foo \"\"B!!", "fBdaW", "foo"); + + // Inner / Sentence text object ("is") + DoTest("", "cis", ""); + DoTest("hello", "cis", ""); + DoTest("hello", "flcis", ""); + DoTest("hello. bye", "cisX", "X bye"); + DoTest("hello. bye", "f.cisX", "X bye"); + DoTest("hello. bye", "fbcisX", "hello. X"); + DoTest("hello\n\nbye.", "cisX", "X\n\nbye."); + DoTest("Hello. Bye.\n", "GcisX", "Hello. Bye.\nX"); + DoTest("hello. by.. another.", "cisX", "X by.. another."); + DoTest("hello. by.. another.", "fbcisX", "hello. X another."); + DoTest("hello. by.. another.\n", "GcisX", "hello. by.. another.\nX"); + DoTest("hello. yay\nis this a string?!?.. another.\n", "fycisX", "hello. X another.\n"); + DoTest("hello. yay\nis this a string?!?.. another.\n", "jcisX", "hello. X another.\n"); + DoTest("This is a sentence.\nThis is another sentence.", "jdis", "This is a sentence.\n"); + + // Around / Sentence text object ("as") + DoTest("", "cas", ""); + DoTest("hello", "cas", ""); + DoTest("hello", "flcas", ""); + DoTest("hello. bye", "casX", "Xbye"); + DoTest("hello. bye", "f.casX", "Xbye"); + DoTest("hello. bye.", "fbcasX", "hello.X"); + DoTest("hello. bye", "fbcasX", "hello.X"); + DoTest("hello\n\nbye.", "casX", "X\n\nbye."); + DoTest("Hello. Bye.\n", "GcasX", "Hello. Bye.\nX"); + DoTest("hello. by.. another.", "casX", "Xby.. another."); + DoTest("hello. by.. another.", "fbcasX", "hello. Xanother."); + DoTest("hello. by.. another.\n", "GcasX", "hello. by.. another.\nX"); + DoTest("hello. yay\nis this a string?!?.. another.\n", "fycasX", "hello. Xanother.\n"); + DoTest("hello. yay\nis this a string?!?.. another.\n", "jcasX", "hello. Xanother.\n"); + DoTest("hello. yay\nis this a string?!?.. \t another.\n", "jcasX", "hello. Xanother.\n"); + + // Inner / Paragraph text object ("ip") + DoTest("", "cip", ""); + DoTest("\nhello", "cipX", "X\nhello"); + DoTest("\nhello\n\nanother. text.", "jcipX", "\nX\n\nanother. text."); + DoTest("\nhello\n\n\nanother. text.", "jjcipX", "\nhello\nX\nanother. text."); + DoTest("\nhello\n\n\nanother. text.", "jjjcipX", "\nhello\nX\nanother. text."); + DoTest("\nhello\n\n\nanother. text.", "jjjjcipX", "\nhello\n\n\nX"); + DoTest("hello\n\n", "jcipX", "hello\nX"); + DoTest("hello\n\n", "jjcipX", "hello\nX"); + + // Around / Paragraph text object ("ap") + DoTest("", "cap", ""); + DoTest("\nhello", "capX", "X"); + DoTest("\nhello\n\nanother.text.", "jcapX", "\nX\nanother.text."); + DoTest("\nhello\n\nanother.text.\n\n\nAnother.", "jjjcapX", "\nhello\n\nX\nAnother."); + DoTest("\nhello\n\nanother.text.\n\n\nAnother.", "jjjjjcapX", "\nhello\n\nanother.text.\nX"); + DoTest("hello\n\n\n", "jjcapX", "hello\n\n\n"); + DoTest("hello\n\nasd", "jjjcapX", "hello\nX"); + + DoTest("{\nfoo\n}", "jdiB", "{\n}"); + DoTest("{\n}", "diB", "{\n}"); + DoTest("{\nfoo}", "jdiB", "{\n}"); + DoTest("{foo\nbar\nbaz}", "jdiB", "{}"); + DoTest("{foo\nbar\n \t\t }", "jdiB", "{\n \t\t }"); + DoTest("{foo\nbar\n \t\ta}", "jdiB", "{}"); + DoTest("\t{\n\t}", "ldiB", "\t{\n\t}"); + // Quick test to see whether inner curly bracket works in visual mode. + DoTest("{\nfoo}", "jviBd", "{\n}"); + DoTest("{\nfoo}", "jvaBd", ""); + // Regression test for viB not working if there is a blank line before the closing }. + DoTest("{\nfoo\n\n}", "viBd", "{\n}"); + // The inner block text object does not include the line containing the opening brace if + // the opening brace is the last character on its line and there is only whitespace before the closing brace. + // (In particular: >iB should not indent the line containing the opening brace under these conditions). + DoTest("{\nfoo\n}", "j>iB", "{\n foo\n}"); + // Similarly, in such conditions, deleting the inner block should leave the cursor on closing brace line, not the + // opening. + DoTest("{\nfoo\n}", "jdiBiX", "{\nX}"); + // Yanking and pasting such a text object should be treated as linewise. + DoTest("{\nfoo\nbar\n}", "jyiBjp", "{\nfoo\nbar\nfoo\nbar\n}"); + // Changing such a text object should delete everything but one line, which we will begin insertion at. + DoTest("{\nfoo\nbar\n}", "jciBbaz\\esc", "{\nbaz\n}"); + // Make sure we remove the "last motion was a *linewise* curly text object" flag when we next parse a motion! + DoTest("{\nfoo\n}", "jciBbaz xyz\\escdiw", "{\nbaz \n}"); + DoTest("{\nfoo\nbar\n}", "jviBbd", "{\nar\n}"); + + DoTest("int main() {\n printf( \"HelloWorld!\\n\" );\n return 0;\n} ", "jda}xr;", "int main();"); + + DoTest("QList", "wwldi>", "QList<>"); + DoTest("QList", "wwlda<", "QList"); + DoTest("<>\nTitle\n", "di\\ctrl-c", "<>\n<>Title\n"); + + DoTest("foo bar baz", "wldiw", "foo baz"); + + DoTest("foo bar baz", "wldawx", "foo az"); + + DoTest("foo ( \n bar\n)baz", "jdi(", "foo ()baz"); + DoTest("foo ( \n bar\n)baz", "jda(", "foo baz"); + DoTest("(foo(bar)baz)", "ldi)", "()"); + DoTest("(foo(bar)baz)", "lca(\\ctrl-c", ""); + DoTest("( foo ( bar ) )baz", "di(", "()baz"); + DoTest("( foo ( bar ) )baz", "da(", "baz"); + DoTest("[foo [ bar] [(a)b [c]d ]]", "$hda]", "[foo [ bar] ]"); + DoTest("(a)", "di(", "()"); + DoTest("(ab)", "di(", "()"); + DoTest("(abc)", "di(", "()"); + + DoTest("hi!))))}}]]", "di]di}da)di)da]", "hi!))))}}]]"); + + DoTest("foo \"bar\" baz", "4ldi\"", "foo \"\" baz"); + DoTest("foo \"bar\" baz", "8lca\"\\ctrl-c", "foo baz"); + + DoTest("foo 'bar' baz", "4lca'\\ctrl-c", "foo baz"); + DoTest("foo 'bar' baz", "8ldi'", "foo '' baz"); + + DoTest("foo `bar` baz", "4lca`\\ctrl-c", "foo baz"); + DoTest("foo `bar` baz", "8ldi`", "foo `` baz"); + + DoTest("()", "di(", "()"); + DoTest("\"\"", "di\"", "\"\""); + + // Comma text object + DoTest("func(aaaa);", "llllldi,", "func();"); + DoTest("func(aaaa);", "lllllda,", "func;"); + DoTest("//Hello, world!\nfunc(a[0] > 2);", "jf>di,", "//Hello, world!\nfunc();"); + DoTest("//Hello, world!\nfunc(a[0] > 2);", "jf>da,", "//Hello, world!\nfunc;"); + DoTest("//Hello, world!\na[] = {135};", "jf3di,", "//Hello, world!\na[] = {};"); + + // Some corner case tests for t/ T, mainly dealing with how a ; after e.g. a ta will + // start searching for the next a *after* the character after the cursor. + // Hard to explain; I'll let the test-cases do the talking :) + DoTest("bar baz", "ta;x", "bar az"); + // Ensure we reset the flag that says we must search starting from the character after the cursor! + DoTest("bar baz", "ta;^tax", "ar baz"); + // Corresponding tests for T + DoTest("bar baz", "$Ta;x", "ba baz"); + // Ensure we reset the flag that says we must search starting from the character before the cursor! + DoTest("bar baz", "$Ta;$Tax", "bar ba"); + // Ensure that command backwards works, too - only one test, as any additional ones would + // just overlap with our previous ones. + DoTest("aba bar", "lTa,x", "aba ar"); + // Some tests with counting. + DoTest("aba bar", "2tax", "aba ar"); + // If we can't find 3 further a's, don't move at all... + DoTest("aba bar", "3tax", "ba bar"); + // ... except if we are repeating the last search, in which case stop at the last + // one that we do find. + DoTest("aba bar", "ta2;x", "aba ar"); + + // Don't move if we can't find any matches at all, or fewer than we require. + DoTest("nocapitalc", "lltCx", "noapitalc"); + DoTest("nocapitalc", "llTCx", "noapitalc"); + + DoTest("123c456", "2tcx", "23c456"); + DoTest("123c456", "$2Tcx", "123c45"); + // Commands with searches that do not find anything, or find less than required, should do nothing. + DoTest("foo", "dtk", "foo"); + DoTest("foomxyz", "d2tm", "foomxyz"); + DoTest("foo", "dfk", "foo"); + DoTest("foomxyz", "d2fm", "foomxyz"); + DoTest("foo", "$dTk", "foo"); + DoTest("foomxyz", "$d2Fm", "foomxyz"); + // They should also return a range marked as invalid. + DoTest("foo bar", "gUF(", "foo bar"); + DoTest("foo bar", "gUf(", "foo bar"); + DoTest("foo bar", "gUt(", "foo bar"); + DoTest("foo bar", "gUT(", "foo bar"); + + // Changes using backward motions don't consume cursor character + DoTest("foo bar", "$dTf", "fr"); + DoTest("foo bar", "$c2Fo", "fr"); + + // Regression test for special-handling of "/" and "?" keys: these shouldn't interfere + // with character searches. + DoTest("foo /", "f/rX", "foo X"); + // d{f,F}{/,?} + DoTest("foo/bar?baz", "df/", "bar?baz"); + DoTest("foo/bar?baz", "f/df?", "foobaz"); + DoTest("foo/bar?baz", "df?", "baz"); + DoTest("foo/bar?baz", "f?dF/", "foo?baz"); + // d{t,T}{/,?} + DoTest("foo/bar?baz", "dt/", "/bar?baz"); + DoTest("foo/bar?baz", "t/dt?", "fo?baz"); + DoTest("foo/bar?baz", "dt?", "?baz"); + DoTest("foo/bar?baz", "t?dT/", "foo/r?baz"); + // c{f,F}{/,?} + DoTest("foo/bar?baz", "cf/qux\\esc", "quxbar?baz"); + DoTest("foo/bar?baz", "f/cf?qux\\esc", "fooquxbaz"); + DoTest("foo/bar?baz", "cf?qux\\esc", "quxbaz"); + DoTest("foo/bar?baz", "f?cF/qux\\esc", "fooqux?baz"); + // c{t,T}{/,?} + DoTest("foo/bar?baz", "ct/qux\\esc", "qux/bar?baz"); + DoTest("foo/bar?baz", "t/ct?qux\\esc", "foqux?baz"); + DoTest("foo/bar?baz", "ct?qux\\esc", "qux?baz"); + DoTest("foo/bar?baz", "t?cT/qux\\esc", "foo/quxr?baz"); + // y{f,F}{/,?} + DoTest("foo/bar?baz", "yf/p", "ffoo/oo/bar?baz"); + DoTest("foo/bar?baz", "f/yf?p", "foo//bar?bar?baz"); + DoTest("foo/bar?baz", "yf?p", "ffoo/bar?oo/bar?baz"); + DoTest("foo/bar?baz", "f?yF/p", "foo/bar?/barbaz"); + // y{t,T}{/,?} + DoTest("foo/bar?baz", "yt/p", "ffoooo/bar?baz"); + DoTest("foo/bar?baz", "t/yt?p", "fooo/bar/bar?baz"); + DoTest("foo/bar?baz", "yt?p", "ffoo/baroo/bar?baz"); + DoTest("foo/bar?baz", "t?yT/p", "foo/barba?baz"); + + // gU, gu, g~. + DoTest("foo/bar?baz", "gUf/", "FOO/bar?baz"); + DoTest("FOO/bar?baz", "g~f?", "foo/BAR?baz"); + DoTest("foo/BAR?baz", "guf?", "foo/bar?baz"); + + // Not adding tests for =f/, >t?, ", "ci"); + DoTest("", "ci>X", ""); + + // Things like "cn" and "cN" don't crash. + DoTest("Hello", "cn", "Hello"); + DoTest("Hello", "cN", "Hello"); +} + +void ModesTest::NormalCommandsTests() +{ + // Testing "J" + DoTest("foo\nbar", "J", "foo bar"); + DoTest("foo\nbar", "JrX", "fooXbar"); + DoTest("foo\nbar\nxyz\n123", "3J", "foo bar xyz\n123"); + DoTest("foo\nbar\nxyz\n123", "3JrX", "foo barXxyz\n123"); + DoTest("foo\nbar\nxyz\n12345\n789", "4JrX", "foo bar xyzX12345\n789"); + DoTest("foo\nbar\nxyz\n12345\n789", "6JrX", "Xoo\nbar\nxyz\n12345\n789"); + DoTest("foo\nbar\nxyz\n12345\n789", "j5JrX", "foo\nXar\nxyz\n12345\n789"); + DoTest("foo\nbar\nxyz\n12345\n789", "7JrX", "Xoo\nbar\nxyz\n12345\n789"); + DoTest("\n\n", "J", "\n"); + DoTest("foo\n\t \t\t bar", "JrX", "fooXbar"); + DoTest("foo\n\t \t\t", "J", "foo "); + DoTest("foo\n\t \t\t", "JrX", "fooX"); + + // Testing "dd" + DoTest("foo\nbar", "dd", "bar"); + DoTest("foo\nbar", "2dd", ""); + DoTest("foo\nbar\n", "Gdd", "foo\nbar"); + // Testing numbered registers + DoTest("hello\nworld", "dddd\"2p\"1p", "\nhello\nworld"); + DoTest("foo\nbar", "ddD\"1p", "\nfoo"); + DoTest("abc\nlmn\nxyz", "dddd\"2dd\"1p\"2p", "\nxyz\nlmn"); + DoTest("123\n456", "dd\"add\"1p\"2p", "\n456\n123"); + DoTest("9\n8\n7\n6\n5\n4\n3\n2\n1\n0", "\"1dddddddddddddddd2dd\"1p\"2p\"3p\"4p\"5p\"6p\"7p\"8p\"9p", "\n1\n2\n3\n4\n5\n6\n7\n8\n9\n0"); + + // Testing "D" + DoTest("foo bar", "lllD", "foo"); + DoTest("foo\nfoo2\nfoo3", "l2D", "f\nfoo3"); + DoTest("qwerty", "d frDai", "wei"); + // Testing small delete (-) register + DoTest("12345\n67890", "ddD\"-p", "67890"); + DoTest("foo\nbar\nhello world", "ld$dj$\"-p", "hello worldoo"); + DoTest("123\n456", "Dj\"aD\"-p", "\n123"); + DoTest("abc\nlmn\nxyz", "yyjlYjxk\"-p", "abc\nlmyn\nxz"); + + // Testing "d" + DoTest("foobar", "ld2l", "fbar"); + DoTest("1 2 3\n4 5 6", "ld100l", "1\n4 5 6"); + + DoTest("123\n", "d10l", "\n"); + DoTest("123\n", "10lx", "12\n"); + + // Testing "Y" + DoTest("qwerty", "ld Yep", "qertyerty"); + // Testing ""y" where x is in a-z (overwrite/insert to register) + DoTest("x", "\"ayh\"Ayl\"ap", "xx"); + DoTest("xy", "\"byll\"byll\"bp", "xyy"); + DoTest("xyz", "\"cy3l$\"cp", "xyzxyz"); + DoTest("abz", "\"xyll\"yyll\"zyll\"zp\"xp\"yp", "abzzab"); + DoTest("abcdwxyz", "\"byh\"ayll\"Byll\"cyll\"dyll\"dyl\"zye$\"zp\"ap\"Cp\"bp\"dp", "abcdwxyzwxyzacbw"); + // Testing "y" where X is in A-Z (append-copy) + DoTest("foo bar ", "\"ayew\"Aye$\"ap", "foo bar foobar"); + DoTest("foo bar 2", "\"ayew\"Ayew\"aye\"ap", "foo bar 22"); + DoTest("123 foo ", "\"ayew\"zye\"Aye0\"Zy4l$\"Zp\"ap", "123 foo foo123 123foo"); + + // Testing "X" + DoTest("ABCD", "$XX", "AD"); + DoTest("foo", "XP", "foo"); + + // Testing Del key + DoTest("foo", "\\home\\delete", "oo"); + DoTest("foo", "$\\delete", "fo"); + + // Delete. Note that when sent properly via Qt, the key event text() will inexplicably be "127", + // which can trip up the key parser. Duplicate this oddity here. + BeginTest(QStringLiteral("xyz")); + TestPressKey(QStringLiteral("l")); + QKeyEvent *deleteKeyDown = new QKeyEvent(QEvent::KeyPress, Qt::Key_Delete, Qt::NoModifier, QStringLiteral("127")); + QApplication::postEvent(kate_view->focusProxy(), deleteKeyDown); + QApplication::sendPostedEvents(); + QKeyEvent *deleteKeyUp = new QKeyEvent(QEvent::KeyRelease, Qt::Key_Delete, Qt::NoModifier, QStringLiteral("127")); + QApplication::postEvent(kate_view->focusProxy(), deleteKeyUp); + QApplication::sendPostedEvents(); + FinishTest("xz"); + + // Testing "gu" + DoTest("FOO\nBAR BAZ", "guj", "foo\nbar baz"); + DoTest("AbCDF", "gu3l", "abcDF"); + + // Testing "guu" + DoTest("FOO", "guu", "foo"); + DoTest("FOO\nBAR\nBAZ", "2guu", "foo\nbar\nBAZ"); + DoTest("", "guu", ""); + + // Testing "gU" + DoTest("aBcdf", "gU2l", "ABcdf"); + DoTest("foo\nbar baz", "gUj", "FOO\nBAR BAZ"); + + // Testing "gUU" + DoTest("foo", "gUU", "FOO"); + DoTest("foo\nbar\nbaz", "2gUU", "FOO\nBAR\nbaz"); + DoTest("", "gUU", ""); + + // Testing "g~" + DoTest("fOo BAr", "lg~fA", "foO bar"); + DoTest("fOo BAr", "$hg~FO", "foO bAr"); + DoTest("fOo BAr", "lf~fZ", "fOo BAr"); + DoTest("{\nfOo BAr\n}", "jg~iB", "{\nFoO baR\n}"); + + // Testing "g~~" + DoTest("", "g~~", ""); + DoTest("\nfOo\nbAr", "g~~", "\nfOo\nbAr"); + DoTest("fOo\nbAr\nBaz", "g~~", "FoO\nbAr\nBaz"); + DoTest("fOo\nbAr\nBaz\nfAR", "j2g~~", "fOo\nBaR\nbAZ\nfAR"); + DoTest("fOo\nbAr\nBaz", "jlg~~rX", "fOo\nXaR\nBaz"); + DoTest("fOo\nbAr\nBaz\nfAR", "jl2g~~rX", "fOo\nBXR\nbAZ\nfAR"); + + // Testing "s" + DoTest("substitute char repeat", "w4scheck\\esc", "substitute check repeat"); + + // Testing "r". + DoTest("foobar", "l2r.", "f..bar"); + DoTest("foobar", "l5r.", "f....."); + // Do nothing if the count is too high. + DoTest("foobar", "l6r.", "foobar"); + + // Testing instert register (".) + DoTest("foo bar", "ea baz\\esc$\".p", "foo baz bar baz"); + DoTest("foo bar", "ea baz\\escwhD\".p", "foo baz baz"); // ". != . + DoTest("foo bar", "ea baz\\esc\".Y$\".p", "foo baz bar baz"); + + { + // To interact back and forth with the command bar + EmulatedCommandBarSetUpAndTearDown emulatedCommandBarSetUpAndTearDown(vi_input_mode, kate_view, mainWindow); + + // Testing search register ("/) + DoTest("foo", "/bar\\enter$\"/p", "foobar"); + DoTest("foo", "/baz\\esc$\"/p", "foobaz"); // Dismiss on Esc + DoTest("foo", "?bat\\enter$\"/p", "foobat"); // Reverse search + DoTest("foo", "\"/Y$\"/p", "foobat"); // Read-only + + // Testing command register (":) + DoTest("foo", ":bar\\enter$\":p", "foobar"); + DoTest("foo", ":baz\\esc$\":p", "foobaz"); // Dismiss on Esc + DoTest("foo", "\":Y$\":p", "foobaz"); // Read-only + } + + // Testing "Ctrl-o" and "Ctrl-i" + DoTest("abc\ndef\nghi", "Gx\\ctrl-ox", "bc\ndef\nhi"); + DoTest("{\n}", "%\\ctrl-ox", "\n}"); + DoTest("Foo foo.\nBar bar.\nBaz baz.", "lmajlmb`a`b\\ctrl-ox", "Fo foo.\nBar bar.\nBaz baz."); + DoTest("Foo foo.\nBar bar.\nBaz baz.", "lmajlmb`a`bj\\ctrl-o\\ctrl-ix", "Foo foo.\nBar bar.\nBa baz."); + + // Testing "gq" (reformat) text + DoTest("foo\nbar", "gqq", "foo\nbar"); + DoTest("foo\nbar", "2gqq", "foo bar"); + DoTest("foo\nbar\nbaz", "jgqj", "foo\nbar baz"); + DoTest("foo\nbar\n\n\n", "gqap", "foo bar\n\n\n"); + + // when setting the text to wrap at column 10, this should be re-formatted to + // span several lines ... + kate_document->setWordWrapAt(10); + DoTest("foo bar foo bar foo bar", "gqq", "foo bar \nfoo bar \nfoo bar"); + + // ... and when re-setting it to column 80 again, they should be joined again + kate_document->setWordWrapAt(80); + DoTest("foo bar\nfoo bar\nfoo bar", "gqG", "foo bar foo bar foo bar"); + + // test >> and << (indent and de-indent) + kate_document->config()->setReplaceTabsDyn(true); + + DoTest("foo\nbar", ">>", " foo\nbar"); + DoTest("foo\nbar", "2>>", " foo\n bar"); + DoTest("foo\nbar", "100>>", " foo\n bar"); + + DoTest("fop\nbar", "yiwjlgpx", "fop\nbafop"); + DoTest("fop\nbar", "yiwjlgPx", "fop\nbfopr"); + + DoTest("repeat\nindent", "2>>2>>", " repeat\n indent"); + + // make sure we record correct history when indenting + DoTest("repeat\nindent and undo", "2>>2>>2>>uu", " repeat\n indent and undo"); + DoTest("repeat\nunindent and undo", "2>>2>>2<config()->replaceTabsDyn(); + kate_document->config()->setReplaceTabsDyn(false); + // Tabs as well as spaces! + DoTest(" \tfoo bar\nxyz\nnose", "jVjygg]p", " \tfoo bar\n \txyz\n \tnose\nxyz\nnose"); + // Same for [p. + DoTest(" \tfoo bar\nxyz\nnose", "jVjygg[p", " \txyz\n \tnose\n \tfoo bar\nxyz\nnose"); + // Test if everything works if the current line has no non-whitespace. + DoTest("\t \nbar", "jVygg]p", "\t \n\t bar\nbar"); + // Test if everything works if the current line is empty. + DoTest("\nbar", "jVygg]p", "\nbar\nbar"); + // Unindent a pasted indented line if the current line has no indent. + DoTest("foo\n \tbar", "jVygg]p", "foo\nbar\n \tbar"); + // Unindent subsequent lines, too - TODO - this assumes that each subsequent line has + // *identical* trailing whitespace to the first pasted line: Vim seems to be able to + // deal with cases where this does not hold. + DoTest("foo\n \tbar\n \txyz", "jVjygg]p", "foo\nbar\nxyz\n \tbar\n \txyz"); + DoTest("foo\n \tbar\n \t xyz", "jVjygg]p", "foo\nbar\n xyz\n \tbar\n \t xyz"); + kate_document->config()->setReplaceTabsDyn(oldReplaceTabsDyn); + + // Some special cases of cw/ cW. + DoTest("foo bar", "cwxyz\\esc", "xyz bar"); + DoTest("foo+baz bar", "cWxyz\\esc", "xyz bar"); + DoTest("foo+baz bar", "cwxyz\\esc", "xyz+baz bar"); + DoTest(" foo bar", "cwxyz\\esc", "xyzfoo bar"); + DoTest(" foo+baz bar", "cWxyz\\esc", "xyzfoo+baz bar"); + DoTest(" foo+baz bar", "cwxyz\\esc", "xyzfoo+baz bar"); + DoTest("\\foo bar", "cWxyz\\esc", "xyz bar"); + DoTest("foo ", "lllcwxyz\\esc", "fooxyz"); + + DoTest("foo", "yr", "foo"); + QCOMPARE(kate_view->renderer()->caretStyle(), KTextEditor::caretStyles::Block); + + // BUG #332523 + const bool oldDynWordWrap = KateViewConfig::global()->dynWordWrap(); + BeginTest(QStringLiteral("asdasdasd\nasdasdasdasdasdasdasd")); + kate_document->setWordWrap(true); + kate_document->setWordWrapAt(10); + TestPressKey(QStringLiteral("Jii")); + FinishTest("iasdasdasd\n \nasdasdasda \nsdasdasdas \nd"); + kate_document->setWordWrap(oldDynWordWrap); +} + +void ModesTest::NormalControlTests() +{ + // Testing "Ctrl-x" + DoTest("150", "101\\ctrl-x", "49"); + DoTest("1", "\\ctrl-x\\ctrl-x\\ctrl-x\\ctrl-x", "-3"); + DoTest("0xabcdef", "1000000\\ctrl-x", "0x9c8baf"); + DoTest("0x0000f", "\\ctrl-x", "0x0000e"); + // Octal numbers should retain leading 0's. + DoTest("00010", "\\ctrl-x", "00007"); + + // Testing "Ctrl-a" + DoTest("150", "101\\ctrl-a", "251"); + DoTest("1000", "\\ctrl-ax", "100"); + DoTest("-1", "1\\ctrl-a", "0"); + DoTest("-1", "l1\\ctrl-a", "0"); + DoTest("0x0000f", "\\ctrl-a", "0x00010"); + // Decimal with leading 0's - increment, and strip leading 0's, like Vim. + DoTest("0000193", "\\ctrl-a", "194"); + // If a number begins with 0, parse it as octal if we can. The resulting number should retain the + // leadingi 0. + DoTest("07", "\\ctrl-a", "010"); + DoTest("5", "5\\ctrl-a.", "15"); + DoTest("5", "5\\ctrl-a2.", "12"); + DoTest("5", "5\\ctrl-a2.10\\ctrl-a", "22"); + DoTest(" 5 ", "l\\ctrl-ax", " "); + // If there's no parseable number under the cursor, look to the right to see if we can find one. + DoTest("aaaa0xbcX", "\\ctrl-a", "aaaa0xbdX"); + DoTest("1 1", "l\\ctrl-a", "1 2"); + // We can skip across word boundaries in our search if need be. + DoTest("aaaa 0xbcX", "\\ctrl-a", "aaaa 0xbdX"); + // If we can't find a parseable number anywhere, don't change anything. + DoTest("foo", "\\ctrl-a", "foo"); + // Don't hang if the cursor is at the end of the line and the only number is to the immediate left of the cursor. + DoTest("1 ", "l\\ctrl-a", "1 "); + // ctrl-a/x algorithm involves stepping back to the previous word: don't crash if this is on the previous line + // and at a column greater than the length of the current line. + DoTest(" a a\n1", "j\\ctrl-a", " a a\n2"); + DoTest(" a a a\n 1", "jll\\ctrl-a", " a a a\n 2"); + // Regression test. + DoTest("1w3", "l\\ctrl-a", "1w4"); + + // Test "Ctrl-a/x" on a blank document/ blank line. + DoTest("", "\\ctrl-a", ""); + DoTest("", "\\ctrl-x", ""); + DoTest("foo\n", "j\\ctrl-x", "foo\n"); + DoTest("foo\n", "j\\ctrl-a", "foo\n"); + + // Testing "Ctrl-r" + DoTest("foobar", "d3lu\\ctrl-r", "bar"); + DoTest("line 1\nline 2\n", "ddu\\ctrl-r", "line 2\n"); +} + +void ModesTest::NormalNotYetImplementedFeaturesTests() +{ + // Testing "))" + DoTest("Foo foo. Bar bar.", "))\\ctrl-ox", "Foo foo. ar bar.", ShouldFail, "not implemented"); + DoTest("Foo foo.\nBar bar.\nBaz baz.", ")))\\ctrl-ox\\ctrl-ox", "Foo foo.\nar bar.\nBaz baz.", ShouldFail, "not implemented"); + DoTest("Foo foo.\nBar bar.\nBaz baz.", "))\\ctrl-ox\\ctrl-ix", "Foo foo.\nBar bar.\naz baz.", ShouldFail, "not implemented"); + DoTest("Foo foo.\nBar bar.\nBaz baz.", "))\\ctrl-ox\\ctrl-ix", "Foo foo.\nBar bar.\naz baz.", ShouldFail, "not implemented"); +} + +// END: Normal mode. + +// BEGIN: Insert mode. + +void ModesTest::InsertTests() +{ + // Basic stuff. + DoTest("bar", "s\\ctrl-c", "ar"); + DoTest("bar", "ls\\ctrl-cx", "r"); + DoTest("foo\nbar", "S\\ctrl-c", "\nbar"); + DoTest("baz bar", "lA\\ctrl-cx", "baz ba"); + DoTest("baz bar", "la\\ctrl-cx", "bz bar"); + DoTest("foo\nbar\nbaz", "C\\ctrl-c", "\nbar\nbaz"); + DoTest("foo bar baz", "c2w\\ctrl-c", " baz"); + DoTest("foo\nbar\nbaz", "jo\\ctrl-c", "foo\nbar\n\nbaz"); + DoTest("foo\nbar\nbaz", "jO\\ctrl-c", "foo\n\nbar\nbaz"); + DoTest("foo\nbar", "O\\ctrl-c", "\nfoo\nbar"); + DoTest("foo\nbar", "o\\ctrl-c", "foo\n\nbar"); + DoTest("foo bar", "wlI\\ctrl-cx", "oo bar"); + DoTest("foo bar", "wli\\ctrl-cx", "foo ar"); + DoTest("foo bar", "wlihello\\ctrl-c", "foo bhelloar"); + + // With count. + DoTest("", "5ihello\\esc", "hellohellohellohellohello"); + DoTest("bar", "5ahello\\esc", "bhellohellohellohellohelloar"); + DoTest(" bar", "5Ihello\\esc", " hellohellohellohellohellobar"); + DoTest("bar", "5Ahello\\esc", "barhellohellohellohellohello"); + DoTest("", "5ihello\\ctrl-c", "hello"); + DoTest("bar", "5ohello\\esc", "bar\nhello\nhello\nhello\nhello\nhello"); + DoTest("bar", "5Ohello\\esc", "hello\nhello\nhello\nhello\nhello\nbar"); + DoTest("bar", "Ohello\\escu", "bar"); + DoTest("bar", "5Ohello\\escu", "bar"); + DoTest("bar", "ohello\\escu", "bar"); + DoTest("bar", "5ohello\\escu", "bar"); + DoTest("foo\nbar", "j5Ohello\\esc", "foo\nhello\nhello\nhello\nhello\nhello\nbar"); + DoTest("bar", "5ohello\\esc2ixyz\\esc", "bar\nhello\nhello\nhello\nhello\nhellxyzxyzo"); + DoTest("", "ihello\\esc5.", "hellhellohellohellohellohelloo"); + + // Ensure that the flag that says that counted repeats should begin on a new line is reset. + DoTest("foo", "obar\\ctrl-c5ixyz\\esc", "foo\nbaxyzxyzxyzxyzxyzr"); + DoTest("foo", "obar\\ctrl-cgg\\ctrl-vlljAxyz\\esc5i123\\esc", "fooxy123123123123123z\nbarxyz"); + DoTest("foo foo foo", "c3wbar\\esc", "bar"); + DoTest("abc", "lOxyz", "xyz\nabc"); + + // Test that our test driver can handle newlines during insert mode :) + DoTest("", "ia\\returnb", "a\nb"); +} + +void ModesTest::InsertKeysTests() +{ + // Ctrl-w + DoTest("foobar", "$i\\ctrl-w", "r"); + DoTest("foobar\n", "A\\ctrl-w", "\n"); + DoTest(" foo", "i\\ctrl-wX\\esc", "X foo"); + DoTest(" foo", "lli\\ctrl-wX\\esc", "X foo"); + + // Ctrl-u + DoTest("", "i\\ctrl-u", ""); + DoTest("foobar", "i\\ctrl-u", "foobar"); + DoTest("foobar", "fbi\\ctrl-u", "bar"); + DoTest("foobar\nsecond", "ji\\ctrl-u", "foobarsecond"); + DoTest("foobar\n second", "jwi\\ctrl-u", "foobar\nsecond"); + DoTest("foobar\n second", "jfci\\ctrl-u", "foobar\n cond"); + DoTest("foobar\n second", "j$a\\ctrl-u", "foobar\n "); + + // Ctrl-e + DoTest("foo\nbar", "i\\ctrl-e", "bfoo\nbar"); + DoTest("foo\nbar", "i\\ctrl-e\\ctrl-e\\ctrl-e", "barfoo\nbar"); + DoTest("foo\nb", "i\\ctrl-e\\ctrl-e", "bfoo\nb"); + + // Ctrl-y + DoTest("foo\nbar", "ji\\ctrl-y", "foo\nfbar"); + DoTest("foo\nbar", "ji\\ctrl-y\\ctrl-y\\ctrl-y", "foo\nfoobar"); + DoTest("f\nbar", "ji\\ctrl-y\\ctrl-y", "f\nfbar"); + + // Ctrl-R + DoTest("barbaz", "\"ay3li\\ctrl-ra", "barbarbaz"); + DoTest("barbaz", "\"ay3li\\ctrl-raX", "barXbarbaz"); + DoTest("bar\nbaz", "\"byylli\\ctrl-rb", "bar\nbar\nbaz"); + DoTest("Hello", "0yei\\ctrl-r\"", "HelloHello"); + + // Ctrl-O + DoTest("foo bar baz", "3li\\ctrl-od2w", "foobaz"); + DoTest("foo bar baz", "3li\\ctrl-od2w\\ctrl-w", "baz"); + DoTest("foo bar baz", "i\\ctrl-o3l\\ctrl-w", " bar baz"); + DoTest("foo\nbar\nbaz", "li\\ctrl-oj\\ctrl-w\\ctrl-oj\\ctrl-w", "foo\nar\naz"); + + // Test that the text written after the Ctrl-O command completes is treated as + // an insertion of text (rather than a sequence of commands) when repeated via "." + DoTest("", "isausage\\ctrl-obugo\\esc.", "ugugoosausage"); + + // 'Step back' on Ctrl-O if at the end of the line + DoTest("foo bar baz", "A\\ctrl-ox", "foo bar ba"); + + // Paste acts as gp when executing in a Ctrl-O + DoTest("foo bar baz", "yiwea\\ctrl-opd", "foo foodbar baz"); + DoTest("bar", "A\\ctrl-o\\ctrl-chx", "br"); + DoTest("bar", "A\\ctrl-o\\eschx", "br"); + + // Ctrl-D & Ctrl-T + DoTest("foo", "i\\ctrl-t", " foo"); + DoTest(" foo", "i\\ctrl-d", "foo"); + DoTest("foo\nbar", "i\\ctrl-t\\ctrl-d", "foo\nbar"); + + // Ctrl-H + DoTest("foo", "i\\ctrl-h", "foo"); + DoTest(" foo", "li\\ctrl-h", "foo"); + DoTest("foo\nbar", "ji\\ctrl-h", "foobar"); + DoTest("1234567890", "A\\ctrl-h\\ctrl-h\\ctrl-h\\ctrl-h\\ctrl-h", "12345"); + DoTest("1\n2\n3", "GA\\ctrl-h\\ctrl-h\\ctrl-h\\ctrl-h", "1"); + + // Ctrl-J + DoTest("foo", "i\\ctrl-j", "\nfoo"); + DoTest("foo", "lli\\ctrl-j", "fo\no"); + DoTest("foo\nbar", "ji\\ctrl-j", "foo\n\nbar"); + DoTest("foobar", "A\\ctrl-j", "foobar\n"); + DoTest("foobar", "li\\ctrl-j\\ctrl-cli\\ctrl-j\\ctrl-cli\\ctrl-j\\ctrl-cli\\ctrl-j\\ctrl-cli\\ctrl-j\\ctrl-c", "f\no\no\nb\na\nr"); + + // Ctrl-left & Ctrl-right. + DoTest("foo bar", "i\\ctrl-\\rightX\\esc", "foo Xbar"); + DoTest("foo bar", "i\\ctrl-\\right\\ctrl-\\rightX\\esc", "foo barX"); + DoTest("foo", "\\endi\\ctrl-\\left\\ctrl-\\leftX", "Xfoo"); // we crashed here before + + // Special keys: enter, return, insert, etc. + DoTest("", "ifoo\\enterbar", "foo\nbar"); + DoTest("", "ifoo\\returnbar", "foo\nbar"); + DoTest("", "\\insertfoo", "foo"); + DoTest("foo bar", "i\\home\\delete", "oo bar"); + + // BUG #451076, don't want an extra newline when using the "Find" action from the menu or Ctrl-F + BaseTest::ensureKateViewVisible(); // required for the bug to trigger + BeginTest(QStringLiteral("foobar")); + TestPressKey(QStringLiteral("i")); + kate_view->find(); + TestPressKey(QStringLiteral("bar\\return")); + // ensure the cursor is at 'foo_b_ar' + QCOMPARE(kate_view->cursorPosition().line(), 0); + QCOMPARE(kate_view->cursorPosition().column(), 3); + FinishTest("foobar"); + // hide the view again + kate_view->hide(); + mainWindow->hide(); +} + +// END: Insert mode. + +// BEGIN: Visual mode. + +void ModesTest::VisualMotionsTests() +{ + // Basic motions. + DoTest("\n", "vjcX", "X"); + DoTest("foobar", "vlllx", "ar"); + DoTest("foo\nbar", "Vd", "bar"); + DoTest("Hello.\nWorld", "2lvjcX", "HeXld"); + DoTest("Three. Different. Sentences.\n\n", "vapcX", "X"); + DoTest("1234\n1234\n1234", "l\\ctrl-vljjd", "14\n14\n14"); + QCOMPARE(kate_view->blockSelection(), false); + DoTest("Three. Different. Sentences.", "v)cX", "Xifferent. Sentences."); + DoTest("Three. Different. Sentences.", "v)cX", "Xifferent. Sentences."); + DoTest("Three. Different. Sentences.", "v)cX", "Xifferent. Sentences."); + DoTest("Three. Different. Sentences.", "viWcX", "X Different. Sentences."); + DoTest("Three. Different. Sentences.", "viwcX", "X. Different. Sentences."); + DoTest("Three. Different. Sentences.", "vaWcX", "XDifferent. Sentences."); + DoTest("Three. Different. Sentences.", "vawcX", "X. Different. Sentences."); + DoTest("Three. Different. Sentences.", "vascX", "XDifferent. Sentences."); + DoTest("Three. Different. Sentences.", "viscX", "X Different. Sentences."); + DoTest("Three. Different. Sentences.", "vapcX", "X"); + DoTest("Three. Different. Sentences.", "vipcX", "X"); + DoTest("Hello.\n", "vap\\esciX", "Hello.\nX"); + // Make sure cursor is properly moved to the start of paragraph and sentence text objects + DoTest("Hello.\nWorld.", "jvapX", ""); + DoTest("Hello.\nWorld.", "jvasX", "Hello.\n"); + + // With count. + DoTest("12345678", "lv3lyx", "1345678"); + DoTest("12345678", "$hv3hyx", "1235678"); + DoTest("aaa\nbbb", "lvj~x", "aA\nBBb"); + DoTest("123\n456", "jlvkyx", "13\n456"); + DoTest("12\n34", "lVjyx", "2\n34"); + DoTest("ab\ncd", "jVlkgux", "a\ncd"); + DoTest("ABCD\nABCD\nABCD\nABCD", "lj\\ctrl-vjlgux", "ABCD\nAcD\nAbcD\nABCD"); + DoTest("abcd\nabcd\nabcd\nabcd", "jjjlll\\ctrl-vkkhgUx", "abcd\nabD\nabCD\nabCD"); + + // Cancelling visual mode should not reset the cursor. + DoTest("12345678", "lv3l\\escx", "1234678"); + DoTest("12345678", "lv3l\\ctrl-cx", "1234678"); + + // Don't forget to clear the flag that says we shouldn't reset the cursor, though! + DoTest("12345678", "lv3l\\ctrl-cxv3lyx", "123478"); + DoTest("12345678", "y\\escv3lyx", "2345678"); + + // Regression test for ][ in Visual Mode. + DoTest("foo {\n\n}", "lV][d", ""); + + // Misc tests for motions starting in front of the Visual Mode start point. + DoTest("{foo}", "lvb%x", "{"); + DoTest("foo bar", "wvbfax", "foo r"); + DoTest("(foo bar)", "wwv^%x", "(foo "); + + // * and # + DoTest("foo foo", "v*x", "oo"); + DoTest("foo foo", "wv#x", "oo"); + + // Quick test that "{" and "}" motions work in visual mode + DoTest("foo\n\n\nbar\n", "v}}d", ""); + DoTest("\n\nfoo\nbar\n", "jjjv{d", "\nar\n"); + + // ctrl-left and ctrl-right + DoTest("foo bar xyz", "v\\ctrl-\\rightd", "ar xyz"); + DoTest("foo bar xyz", "$v\\ctrl-\\leftd", "foo bar "); +} + +void ModesTest::VisualCommandsTests() +{ + // Testing "d" + DoTest("foobarbaz", "lvlkkjl2ld", "fbaz"); + DoTest("foobar", "v$d", ""); + DoTest("foo\nbar\nbaz", "jVlld", "foo\nbaz"); + DoTest("01\n02\n03\n04\n05", "Vjdj.", "03"); + + // Testing Del key + DoTest("foobarbaz", "lvlkkjl2l\\delete", "fbaz"); + + // Testing "D" + DoTest("foo\nbar\nbaz", "lvjlD", "baz"); + DoTest("foo\nbar", "l\\ctrl-vjD", "f\nb"); + DoTest("foo\nbar", "VjkD", "bar"); + DoTest("Test:\n - One\n - Two", "jfnVDia", "Test:\n a- Two"); + DoTest("Test:\n - One\n - Two", "jjfwVDia", "Test:\n a- One"); + + // Testing "gU", "U" + DoTest("foo bar", "vwgU", "FOO Bar"); + DoTest("foo\nbar\nbaz", "VjjU", "FOO\nBAR\nBAZ"); + DoTest("foo\nbar\nbaz", "\\ctrl-vljjU", "FOo\nBAr\nBAz"); + DoTest("aaaa\nbbbb\ncccc", "\\ctrl-vljgUjll.", "AAaa\nBBBB\nccCC"); + + // Testing "gu", "u" + DoTest("TEST", "Vgu", "test"); + DoTest("TeSt", "vlgu", "teSt"); + DoTest("FOO\nBAR\nBAZ", "\\ctrl-vljju", "foO\nbaR\nbaZ"); + DoTest("AAAA\nBBBB\nCCCC\nDDDD", "vjlujjl.", "aaaa\nbbBB\nCccc\ndddD"); + + // Testing "gv" + DoTest("foo\nbar\nxyz", "l\\ctrl-vjj\\ctrl-cgvr.", "f.o\nb.r\nx.z"); + + // Testing "g~" + DoTest("fOo bAr", "Vg~", "FoO BaR"); + DoTest("foo\nbAr\nxyz", "l\\ctrl-vjjg~", "fOo\nbar\nxYz"); + + // Testing "y" + DoTest("foobar", "Vypp", "foobar\nfoobar\nfoobar"); + DoTest("foo\nbar", "lvjlyp", "fooo\nbaro\nbar"); + DoTest("foo\nbar", "Vjlllypddxxxdd", "foo\nbar"); + DoTest("12\n12", "\\ctrl-vjyp", "112\n112"); + DoTest("1234\n1234\n1234\n1234", "lj\\ctrl-vljyp", "1234\n122334\n122334\n1234"); + + // Testing "Y" + DoTest("foo\nbar", "llvjypx", "foo\nbar\nbar"); + DoTest("foo\nbar", "VYp", "foo\nfoo\nbar"); + + // Testing "m." + DoTest("foo\nbar", "vljmavgg`ax", "foo\nbr"); + DoTest("1\n2\n3\n4", "Vjmajjmb\\:'a,'bd\\", "1"); + + // Testing ">" + DoTest("foo\nbar", "vj>", " foo\n bar"); + DoTest("foo\nbar\nbaz", "jVj>", "foo\n bar\n baz"); + DoTest("foo", "vl3>", " foo"); + DoTest("indent\nrepeat", "V>.", " indent\nrepeat"); + DoTest("indent\nrepeat", "Vj>.", " indent\n repeat"); + DoTest("indent\nrepeat\non\nothers", "Vj>jj.", " indent\n repeat\n on\n others"); + DoTest("foo\nbar\nbaz", "jjVk>.", "foo\n bar\n baz"); + + // Testing "<" + DoTest(" foo", "vl<", "foo"); + DoTest("foo\n bar\n baz", "jjVk<.", "foo\nbar\nbaz"); + + // Testing "o" + DoTest("foobar", "lv2lo2ld", "fooar"); + DoTest("foo\nbar", "jvllokld", "f"); + DoTest("12\n12", "\\ctrl-vjlold", "1\n1"); + + // Testing "~" + DoTest("foobar", "lv2l~", "fOOBar"); + DoTest("FooBar", "V~", "fOObAR"); + DoTest("foo\nbar", "\\ctrl-vjl~", "FOo\nBAr"); + + // Testing "r" + DoTest("foobar", "Vra", "aaaaaa"); + DoTest("foo\nbar", "jlvklrx", "fox\nxxr"); + DoTest("123\n123", "l\\ctrl-vljrx", "1xx\n1xx"); + DoTest("a", "r\\ctrl-c", "a"); + DoTest("a", "r\\ctrl-[", "a"); + DoTest("a", "r\\keypad-0", "0"); + DoTest("a", "r\\keypad-9", "9"); + DoTest("foo\nbar", "l\\ctrl-vjr\\keypad-9", "f9o\nb9r"); + + // Testing "gq" + DoTest("foo\nbar\nbaz", "Vgq", "foo\nbar\nbaz"); + DoTest("foo\nbar\nbaz", "Vjgq", "foo bar\nbaz"); + + // Testing "<<"/">>" + kate_document->config()->setReplaceTabsDyn(true); + DoTest("foo\nbar\nbaz", "V>>", " foo\nbar\nbaz"); + DoTest("foo\nbar\nbaz", "Vj>>", " foo\n bar\nbaz"); + DoTest("foo\nbar\nbaz", "V2j>>", " foo\n bar\n baz"); + DoTest("foo\nbar\nbaz", "V10>>", " foo\nbar\nbaz"); + DoTest("foo\nbar\nbaz", "V2j3>>", " foo\n bar\n baz"); + + DoTest(" foo\nbar\nbaz", "V<<", "foo\nbar\nbaz"); + DoTest("foo\nbar\nbaz", "V>>V<<", "foo\nbar\nbaz"); + DoTest(" foo\n bar\n baz", "V2j<<", " foo\n bar\n baz"); + + // Testing block append + DoTest("averyverylongline\nshortline\nshorter\n", "jjV$kkAb\\esc", "averyverylonglineb\nshortlineb\nshorterb\n"); + DoTest("averyverylongline\nshortline\n", "V$jAb\\esc", "averyverylonglineb\nshortlineb\n"); + + // Testing "J" + DoTest("foo\nbar\nxyz\nbaz\n123\n456", "jVjjjJ", "foo\nbar xyz baz 123\n456"); + DoTest("foo\nbar\nxyz\nbaz\n123\n456", "jjjjVkkkJ", "foo\nbar xyz baz 123\n456"); + DoTest("foo\nbar\nxyz\nbaz\n123456\n789", "jjjjVkkkJrX", "foo\nbar xyz bazX123456\n789"); + DoTest("foo\nbar\nxyz\n", "VGJ", "foo bar xyz "); + + // Testing undo behaviour with c and cc + DoTest("foo", "ciwbar\\escu", "foo"); + DoTest("foo", "ccbar\\escu", "foo"); + + // Pasting should replace the current selection. + DoTest("foo bar xyz", "yiwwviwp", "foo foo xyz"); + + // Undo should undo both paste and removal of selection. + DoTest("foo bar xyz", "yiwwviwpu", "foo bar xyz"); + DoTest("foo\nbar\n123\nxyz", "yiwjVjp", "foo\nfoo\nxyz"); + + // Set the *whole* selection to the given text object, even if the cursor is no + // longer at the position where Visual Mode was started. + // This seems to work (in Vim) only when the start of the given text object occurs before them + // start position of Visual Mode. + DoTest("{\nfoo\nbar\nxyz\n}", "jjvliBd", "{\n}"); + DoTest("foo[hello]", "fhlvli[d", "foo[]"); + DoTest("foo(hello)", "fhlvli(d", "foo()"); + DoTest("foo", "fhlvli"); + DoTest("foo\"hello\"", "fhlvli\"d", "foo\"\""); + DoTest("foo'hello'", "fhlvli'd", "foo''"); + + // A couple of spot tests, where the beginning of the text object occurs after the start position of Visual Mode; + // the selection should remain unchanged if we the text object motion is triggered, here. + DoTest("foobarxyz\n(12345)", "llvjibd", "fo345)"); + DoTest("foobarxyz\n{12345}", "llvjiBd", "fo345}"); + // Cursor should end up at the end of the text object. + DoTest("foo[hello]", "fhlvli[\\escrX", "foo[hellX]"); + // Ensure we reset the flag that says that the current motion is a text object! + DoTest("foo[hello]", "jfhlvli[^d", "ello]"); + + // Testing comment with "gc" + { + QString hlmode = kate_document->highlightingMode(); + kate_document->setHighlightingMode(QStringLiteral("C")); + DoTest("void foo()\n{\nint x;\n}", "Vjjjgc", "// void foo()\n// {\n// int x;\n// }"); + DoTest("void foo()\n{\n int x; \n}", "vjj$hgc", "/*void foo()\n{\n int x;*/ \n}"); + DoTest("/*void foo()\n{\n int x;*/ \n}", "vjj$hgc", "void foo()\n{\n int x; \n}"); + kate_document->setHighlightingMode(hlmode); + } + + // proper yanking in block mode + { + BeginTest(QStringLiteral("aaaa\nbbbb\ncccc\ndddd")); + TestPressKey(QStringLiteral("lj\\ctrl-vljy")); + KateBuffer &buffer = kate_document->buffer(); + QList ranges = buffer.rangesForLine(1, kate_view, true); + QCOMPARE(ranges.size(), 1); + KTextEditor::Range range = ranges[0]->toRange(); + QCOMPARE(range.start().column(), 1); + QCOMPARE(range.end().column(), 3); + } + + // proper selection in block mode after switching to cmdline + { + BeginTest(QStringLiteral("aaaa\nbbbb\ncccc\ndddd")); + TestPressKey(QStringLiteral("lj\\ctrl-vlj:")); + QCOMPARE(kate_view->selectionText(), QStringLiteral("bb\ncc")); + } + + // BUG #328277 - make sure kate doesn't crash + BeginTest(QStringLiteral("aaa\nbbb")); + TestPressKey(QStringLiteral("Vj>u>.")); + QCOMPARE(kate_view->renderer()->caretStyle(), KTextEditor::caretStyles::Block); + FinishTest("aaa\nbbb"); +} + +void ModesTest::VisualExternalTests() +{ + // Test that selecting a range "externally" to Vim (i.e. via the mouse, or + // one of the ktexteditor api's) switches us into Visual Mode. + BeginTest(QStringLiteral("foo bar")); + + // Selects "oo b" + kate_view->setSelection(Range(0, 1, 0, 4)); + TestPressKey(QStringLiteral("d")); + FinishTest("far"); + + // Always return to normal mode when undoing/redoing. + BeginTest(QLatin1String("")); + TestPressKey(QStringLiteral("iHello World!\\esc")); + TestPressKey(QStringLiteral("0wvlldu")); + QCOMPARE(vi_input_mode_manager->getCurrentViMode(), KateVi::NormalMode); + QCOMPARE(kate_view->selectionText(), QLatin1String("")); + QCOMPARE(kate_document->text(), QStringLiteral("Hello World!")); + TestPressKey(QStringLiteral("u")); + QCOMPARE(vi_input_mode_manager->getCurrentViMode(), KateVi::NormalMode); + QCOMPARE(kate_document->text(), QLatin1String("")); + TestPressKey(QStringLiteral("\\ctrl-r")); + QCOMPARE(vi_input_mode_manager->getCurrentViMode(), KateVi::NormalMode); + FinishTest("Hello World!"); + + // Make sure that we don't screw up selection after an undo. + BeginTest(QStringLiteral("Hola\nHola\nHello\nHallo\n")); + TestPressKey(QStringLiteral("jVjduVk")); + QCOMPARE(vi_input_mode_manager->getCurrentViMode(), KateVi::VisualLineMode); + QCOMPARE(kate_view->selectionText(), QStringLiteral("Hola\nHello")); + FinishTest("Hola\nHola\nHello\nHallo\n"); + + // Test that, if kate_view has a selection before the Vi mode stuff is loaded, then we + // end up in Visual Mode: this mimics what happens if we click on a Find result in + // KDevelop's "grepview" plugin. + delete kate_view; + kate_view = new KTextEditor::ViewPrivate(kate_document, mainWindow); + kate_view->setInputMode(View::NormalInputMode); + mainWindowLayout->addWidget(kate_view); + kate_document->setText(QStringLiteral("foo bar")); + kate_view->setSelection(Range(Cursor(0, 1), Cursor(0, 4))); + QCOMPARE(kate_document->text(kate_view->selectionRange()), QStringLiteral("oo ")); + kate_view->setInputMode(View::ViInputMode); + qDebug() << "selected: " << kate_document->text(kate_view->selectionRange()); + QVERIFY(kate_view->currentInputMode()->viewInputMode() == View::ViInputMode); + vi_input_mode = static_cast(kate_view->currentInputMode()); + vi_input_mode_manager = vi_input_mode->viInputModeManager(); + QVERIFY(vi_input_mode_manager->getCurrentViMode() == KateVi::VisualMode); + TestPressKey(QStringLiteral("l")); + QCOMPARE(kate_document->text(kate_view->selectionRange()), QStringLiteral("oo b")); + TestPressKey(QStringLiteral("d")); + QCOMPARE(kate_document->text(), QStringLiteral("far")); + + // Test returning to correct mode when selecting ranges with mouse + BeginTest(QStringLiteral("foo bar\nbar baz")); + TestPressKey(QStringLiteral("i")); // get me into insert mode + kate_view->setSelection(Range(0, 1, 1, 4)); + QCOMPARE((int)vi_input_mode_manager->getCurrentViMode(), (int)KateVi::VisualMode); + kate_view->setSelection(Range::invalid()); + QCOMPARE((int)vi_input_mode_manager->getCurrentViMode(), (int)KateVi::InsertMode); + TestPressKey(QStringLiteral("\\esc")); // get me into normal mode + kate_view->setSelection(Range(0, 1, 1, 4)); + QCOMPARE((int)vi_input_mode_manager->getCurrentViMode(), (int)KateVi::VisualMode); + kate_view->setSelection(Range::invalid()); + QCOMPARE((int)vi_input_mode_manager->getCurrentViMode(), (int)KateVi::NormalMode); +} + +// END: Visual mode. + +// BEGIN: Command mode. + +void ModesTest::CommandTests() +{ + // Testing ":" + DoTest("foo\nbar\nbaz", "\\:2\\x", "foo\nar\nbaz"); + DoTest("foo\nbar\nbaz", "jmak\\:'a\\x", "foo\nar\nbaz"); + DoTest("foo\nbar\nbaz", "\\:$\\x", "foo\nbar\naz"); + + // Testing ":y", ":yank" + DoTest("foo\nbar\nbaz", "\\:3y\\p", "foo\nbaz\nbar\nbaz"); + DoTest("foo\nbar\nbaz", "\\:2y a 2\\\"ap", "foo\nbar\nbaz\nbar\nbaz"); + DoTest("foo\nbar\nbaz", "\\:y\\p", "foo\nfoo\nbar\nbaz"); + DoTest("foo\nbar\nbaz", "\\:3,1y\\p", "foo\nfoo\nbar\nbaz\nbar\nbaz"); + + // Testing ">" + DoTest("foo", "\\:>\\", " foo"); + DoTest(" foo", "\\:<\\", " foo"); + + DoTest("foo\nbar", "\\:2>\\", "foo\n bar"); + DoTest(" foo\nbaz", "\\:1<\\", " foo\nbaz"); + + DoTest("foo\nundo", "\\:2>\\u", "foo\nundo"); + DoTest(" foo\nundo", "\\:1<\\u", " foo\nundo"); + + DoTest("indent\nmultiline\ntext", "\\:1,2>\\", " indent\n multiline\ntext"); + DoTest("indent\nmultiline\n+undo", "\\:1,2>\\:1,2>\\:1,2>\\u", " indent\n multiline\n+undo"); + // doesn't test correctly, why? + // DoTest("indent\nmultiline\n+undo", "\\:1,2>\\:1,2<\\u", " indent\n multiline\n+undo"); + + // Testing ":c", ":change" + DoTest("foo\nbar\nbaz", "\\:2change\\", "foo\n\nbaz"); + DoTest("foo\nbar\nbaz", "\\:%c\\", ""); + BeginTest(QStringLiteral("foo\nbar\nbaz")); + TestPressKey(QStringLiteral("\\:$c\\")); // Work around ambiguity in the code that parses commands to execute. + TestPressKey(QStringLiteral("\\:$change\\")); + FinishTest("foo\nbar\n"); + DoTest("foo\nbar\nbaz", "ma\\:2,'achange\\", "\nbaz"); + DoTest("foo\nbar\nbaz", "\\:2,3c\\", "foo\n"); + + // Testing ":j" + DoTest("1\n2\n3\n4\n5", "\\:2,4j\\", "1\n2 3 4\n5"); + + DoTest("1\n2\n3\n4", "jvj\\ctrl-c\\:'<,'>d\\enter", "1\n4"); + DoTest("1\n2\n3\n4", "\\:1+1+1+1d\\", "1\n2\n3"); + DoTest("1\n2\n3\n4", "2j\\:.,.-1d\\", "1\n4"); + DoTest("1\n2\n3\n4", "\\:.+200-100-100+20-5-5-5-5+.-.,$-1+1-2+2-3+3-4+4-5+5-6+6-7+7-1000+1000+0-0-$+$-.+.-1d\\", "4"); + DoTest("1\n2\n3\n4", "majmbjmcjmdgg\\:'a+'b+'d-'c,.d\\", ""); +} + +void ModesTest::CommandSedTests() +{ + DoTest("foo", "\\:s/foo/bar\\", "bar"); + DoTest("foobarbaz", "\\:s/bar/xxx\\", "fooxxxbaz"); + DoTest("foo", "\\:s/bar/baz\\", "foo"); + DoTest("foo\nfoo\nfoo", "j\\:s/foo/bar\\", "foo\nbar\nfoo"); + DoTest("foo\nfoo\nfoo", "2jma2k\\:'a,'as/foo/bar\\", "foo\nfoo\nbar"); + DoTest("foo\nfoo\nfoo", "\\:%s/foo/bar\\", "bar\nbar\nbar"); + DoTest("foo\nfoo\nfoo", "\\:2,3s/foo/bar\\", "foo\nbar\nbar"); + DoTest("foo\nfoo\nfoo\nfoo", "j2lmajhmbgg\\:'a,'bs/foo/bar\\", "foo\nbar\nbar\nfoo"); + DoTest("foo\nfoo\nfoo\nfoo", "jlma2jmbgg\\:'b,'as/foo/bar\\", "foo\nbar\nbar\nbar"); + DoTest("foo", "\\:s/$/x/g\\", "foox"); + DoTest("foo", "\\:s/.*/x/g\\", "x"); + DoTest("abc", "\\:s/\\\\s*/x/g\\", "xaxbxc"); + // DoTest("abc\n123", "\\:s/\\\\s*/x/g\\", "xaxbxc\nx1x2x3"); // currently not working properly + + DoTest("foo/bar", "\\:s-/--\\", "foobar"); + DoTest("foo/bar", "\\:s_/__\\", "foobar"); + + DoTest("foo\nfoo\nfoo", "\\:2s/foo/bar\\", "foo\nbar\nfoo"); + DoTest("foo\nfoo\nfoo", "2jmagg\\:'as/foo/bar\\", "foo\nfoo\nbar"); + DoTest("foo\nfoo\nfoo", "\\:$s/foo/bar\\", "foo\nfoo\nbar"); + + // https://bugs.kde.org/show_bug.cgi?id=235862 + DoTest("try\n\nalso\nfoo", "\\:/r/,/o/s/^/ha/\\", "hatry\nha\nhaalso\nfoo"); + DoTest("much\nmuch\nmuch\nmuch", "\\:.,.+2s/much/try/\\", "try\ntry\ntry\nmuch"); +} + +void ModesTest::CommandDeleteTests() +{ + DoTest("foo\nbar\nbaz", "\\:2d\\", "foo\nbaz"); + DoTest("foo\nbar\nbaz", "\\:%d\\", ""); + BeginTest(QStringLiteral("foo\nbar\nbaz")); + TestPressKey(QStringLiteral("\\:$d\\")); // Work around ambiguity in the code that parses commands to execute. + TestPressKey(QStringLiteral("\\:$d\\")); + FinishTest("foo"); + DoTest("foo\nbar\nbaz", "ma\\:2,'ad\\", "baz"); + DoTest("foo\nbar\nbaz", "\\:/foo/,/bar/d\\", "baz"); + DoTest("foo\nbar\nbaz", "\\:2,3delete\\", "foo"); + + DoTest("foo\nbar\nbaz", "\\:d\\", "bar\nbaz"); + DoTest("foo\nbar\nbaz", "\\:d 33\\", ""); + DoTest("foo\nbar\nbaz", "\\:3d a\\k\"ap", "foo\nbaz\nbar"); +} + +// END: Command mode. + +// BEGIN: Replace mode. + +void ModesTest::ReplaceCharacter() +{ + DoTest("", "rr", ""); + DoTest("a", "rb", "b"); + DoTest("abc", "lr\\enter", "a\nc"); + DoTest("abc", "l\\backspace", "abc"); + DoTest("abc", "l\\left", "abc"); +} + +void ModesTest::ReplaceBasicTests() +{ + // Basic stuff. + DoTest("", "Rqwerty", "qwerty"); + DoTest("qwerty", "R\\rightXX", "qXXrty"); + + // Enter replace and go to the next/previous word. + DoTest("foo bar", "R\\ctrl-\\rightX", "foo Xar"); + DoTest("foo bar", "R\\ctrl-\\right\\ctrl-\\rightX", "foo barX"); + DoTest("foo bar", "R\\ctrl-\\leftX", "Xoo bar"); + DoTest("foo bar", "R\\ctrl-\\left\\delete", "oo bar"); + + // Enter replace mode and go up/down. + DoTest("foo\nbar\nbaz", "R\\downX", "foo\nXar\nbaz"); + DoTest("foo\nbar\nbaz", "jjR\\upX", "foo\nXar\nbaz"); + + // Repeat replacements + DoTest("foobaz", "Rbar\\esc.", "babarz"); + DoTest("foobarbaz", "Rbar\\esc2.", "babarbarz"); + DoTest("foobarbaz", "Rbar\\esc4.", "babarbarbarbar"); + DoTest("foobarbaz", "Rbar\\esc2.R\\esc2.", "babarbarz"); + + // BUG #451076, don't want an extra newline when using the "Find" action from the menu or Ctrl-F + BaseTest::ensureKateViewVisible(); // required for the bug to trigger + BeginTest(QStringLiteral("foobar")); + TestPressKey(QStringLiteral("R")); + kate_view->find(); + TestPressKey(QStringLiteral("bar\\return")); + // ensure the cursor is at 'foo_b_ar' + QCOMPARE(kate_view->cursorPosition().line(), 0); + QCOMPARE(kate_view->cursorPosition().column(), 3); + FinishTest("foobar"); + // hide the view again + kate_view->hide(); + mainWindow->hide(); +} + +void ModesTest::ReplaceUndoTests() +{ + // Backspace. + DoTest("", "R\\backspace", ""); + DoTest("qwerty", "lR\\backspaceX", "Xwerty"); + DoTest("qwerty", "lRX\\backspace\\backspaceX", "Xwerty"); + + // Ctrl-W + DoTest("", "R\\ctrl-w", ""); + DoTest("Hello", "lRXX\\ctrl-w", "Hello"); + DoTest("Hello", "lR\t\\ctrl-w", "Hello"); + DoTest("Hello", "lRXX\\left\\ctrl-w", "HXXlo"); + + // Ctrl-U + DoTest("", "R\\ctrl-u", ""); + DoTest("Hello", "lRXX\\ctrl-u", "Hello"); + DoTest("Hello", "lR\t\\ctrl-u", "Hello"); + DoTest("Hello", "lRXX\\left\\ctrl-u", "HXXlo"); + DoTest("Hello World", "3lRXX XX\\ctrl-u", "Hello World"); +} + +void ModesTest::ReplaceInsertFromLineTests() +{ + // Ctrl-E: replace the current column with the column of the next line. + DoTest("", "R\\ctrl-e", ""); + DoTest("\n", "jR\\ctrl-e", "\n"); + DoTest("\nqwerty", "R\\ctrl-e\\ctrl-e", "qw\nqwerty"); + DoTest("a\nbb", "R\\ctrl-e\\ctrl-e", "bb\nbb"); + DoTest("aa\n b", "R\\ctrl-e\\ctrl-e", " b\n b"); + DoTest("\n\tb", "R\\ctrl-e\\ctrl-e", "\tb\n\tb"); + + // Ctrl-Y: replace the current column with the column of the previous line. + DoTest("", "R\\ctrl-y", ""); + DoTest("qwerty\n", "jR\\ctrl-y\\ctrl-y", "qwerty\nqw"); + DoTest("aa\nb", "jR\\ctrl-y\\ctrl-y", "aa\naa"); + DoTest(" a\nbb", "jR\\ctrl-y\\ctrl-y", " a\n a"); + DoTest("\tb\n", "jR\\ctrl-y\\ctrl-y", "\tb\n\tb"); +} + +// END: Replace mode. +#include "moc_modes.cpp" diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/modes.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/modes.h new file mode 100644 index 0000000000..a30f8e0e30 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/modes.h @@ -0,0 +1,45 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2014 Miquel Sabaté Solà + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef MODES_TEST_H +#define MODES_TEST_H + +#include "base.h" + +class ModesTest : public BaseTest +{ + Q_OBJECT + +private Q_SLOTS: + // Normal mode. + void NormalMotionsTests(); + void NormalCommandsTests(); + void NormalControlTests(); + void NormalNotYetImplementedFeaturesTests(); + + // Insert mode. + void InsertTests(); + void InsertKeysTests(); + + // Visual mode. + void VisualMotionsTests(); + void VisualCommandsTests(); + void VisualExternalTests(); + + // Command mode. + void CommandTests(); + void CommandSedTests(); + void CommandDeleteTests(); + + // Replace mode. + void ReplaceCharacter(); + void ReplaceBasicTests(); + void ReplaceUndoTests(); + void ReplaceInsertFromLineTests(); +}; + +#endif /* MODES_TEST_H */ diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/view.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/view.cpp new file mode 100644 index 0000000000..ed510c133f --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/view.cpp @@ -0,0 +1,370 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2014 Miquel Sabaté Solà + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "view.h" +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +using namespace KTextEditor; + +QTEST_MAIN(ViewTest) + +void ViewTest::yankHighlightingTests() +{ + const QColor yankHighlightColour = kate_view->rendererConfig()->savedLineColor(); + + BeginTest(QStringLiteral("foo bar xyz")); + const QList rangesInitial = rangesOnFirstLine(); + Q_ASSERT(rangesInitial.isEmpty() && "Assumptions about ranges are wrong - this test is invalid and may need updating!"); + TestPressKey(QStringLiteral("wyiw")); + { + const QList rangesAfterYank = rangesOnFirstLine(); + QCOMPARE(rangesAfterYank.size(), rangesInitial.size() + 1); + QCOMPARE(rangesAfterYank.first()->attribute()->background().color(), yankHighlightColour); + QCOMPARE(rangesAfterYank.first()->start().line(), 0); + QCOMPARE(rangesAfterYank.first()->start().column(), 4); + QCOMPARE(rangesAfterYank.first()->end().line(), 0); + QCOMPARE(rangesAfterYank.first()->end().column(), 7); + } + FinishTest("foo bar xyz"); + + BeginTest(QStringLiteral("foom bar xyz")); + TestPressKey(QStringLiteral("wY")); + { + const QList rangesAfterYank = rangesOnFirstLine(); + QCOMPARE(rangesAfterYank.size(), rangesInitial.size() + 1); + QCOMPARE(rangesAfterYank.first()->attribute()->background().color(), yankHighlightColour); + QCOMPARE(rangesAfterYank.first()->start().line(), 0); + QCOMPARE(rangesAfterYank.first()->start().column(), 5); + QCOMPARE(rangesAfterYank.first()->end().line(), 0); + QCOMPARE(rangesAfterYank.first()->end().column(), 12); + } + FinishTest("foom bar xyz"); + + // Unhighlight on keypress. + DoTest("foo bar xyz", "yiww", "foo bar xyz"); + QCOMPARE(rangesOnFirstLine().size(), rangesInitial.size()); + + // Update colour on config change. + DoTest("foo bar xyz", "yiw", "foo bar xyz"); + const QColor newYankHighlightColour = QColor(255, 0, 0); + kate_view->rendererConfig()->setSavedLineColor(newYankHighlightColour); + QCOMPARE(rangesOnFirstLine().first()->attribute()->background().color(), newYankHighlightColour); + + // Visual Mode. + DoTest("foo", "viwy", "foo"); + QCOMPARE(rangesOnFirstLine().size(), rangesInitial.size() + 1); + + // Unhighlight on keypress in Visual Mode + DoTest("foo", "viwyw", "foo"); + QCOMPARE(rangesOnFirstLine().size(), rangesInitial.size()); + + // Add a yank highlight and directly (i.e. without using Vim commands, + // which would clear the highlight) delete all text; if this deletes the yank highlight behind our back + // and we don't respond correctly to this, it will be double-deleted by KateViNormalMode. + // Currently, this seems like it doesn't occur, but better safe than sorry :) + BeginTest(QStringLiteral("foo bar xyz")); + TestPressKey(QStringLiteral("yiw")); + QCOMPARE(rangesOnFirstLine().size(), rangesInitial.size() + 1); + kate_document->documentReload(); + kate_document->clear(); + vi_input_mode->reset(); + vi_input_mode_manager = vi_input_mode->viInputModeManager(); + FinishTest(""); +} + +void ViewTest::visualLineUpDownTests() +{ + // Need to ensure we have dynamic wrap, a fixed width font, and a decent size kate_view. + ensureKateViewVisible(); + const QFont oldFont = kate_view->rendererConfig()->baseFont(); + QFont fixedWidthFont = QFontDatabase::systemFont(QFontDatabase::FixedFont); + kate_view->rendererConfig()->setFont(fixedWidthFont); + const bool oldDynWordWrap = KateViewConfig::global()->dynWordWrap(); + KateViewConfig::global()->setDynWordWrap(true); + const bool oldReplaceTabsDyn = kate_document->config()->replaceTabsDyn(); + kate_document->config()->setReplaceTabsDyn(false); + const int oldTabWidth = kate_document->config()->tabWidth(); + const int tabWidth = 5; + kate_document->config()->setTabWidth(tabWidth); + KateViewConfig::global()->setValue(KateViewConfig::ShowScrollbars, KateViewConfig::ScrollbarMode::AlwaysOn); + + // Compute the maximum width of text before line-wrapping sets it. + int textWrappingLength = 1; + while (true) { + QString text = QStringLiteral("X").repeated(textWrappingLength) + QLatin1Char(' ') + QLatin1Char('O'); + const int posOfO = text.length() - 1; + kate_document->setText(text); + if (kate_view->cursorToCoordinate(Cursor(0, posOfO)).y() != kate_view->cursorToCoordinate(Cursor(0, 0)).y()) { + textWrappingLength++; // Number of x's, plus space. + break; + } + textWrappingLength++; + } + const QString fillsLineAndEndsOnSpace = QStringLiteral("X").repeated(textWrappingLength - 1) + QLatin1Char(' '); + + // Create a QString consisting of enough concatenated fillsLineAndEndsOnSpace to completely + // fill the viewport of the kate View. + QString fillsView = fillsLineAndEndsOnSpace; + while (true) { + kate_document->setText(fillsView); + const QString visibleText = kate_document->text(kate_view->visibleRange()); + if (fillsView.length() > visibleText.length() * 2) { // Overkill. + break; + } + fillsView += fillsLineAndEndsOnSpace; + } + const int numVisibleLinesToFillView = fillsView.length() / fillsLineAndEndsOnSpace.length(); + + { + // gk/ gj when there is only one line. + DoTest("foo", "lgkr.", "f.o"); + DoTest("foo", "lgjr.", "f.o"); + } + + { + // gk when sticky bit is set to the end. + const QString originalText = fillsLineAndEndsOnSpace.repeated(2); + QString expectedText = originalText; + kate_document->setText(originalText); + Q_ASSERT(expectedText[textWrappingLength - 1] == QLatin1Char(' ')); + expectedText[textWrappingLength - 1] = QLatin1Char('.'); + DoTest(originalText.toUtf8().constData(), "$gkr.", expectedText.toUtf8().constData()); + } + + { + // Regression test: more than fill the view up, go to end, and do gk on wrapped text (used to crash). + // First work out the text that will fill up the view. + QString expectedText = fillsView; + Q_ASSERT(expectedText[expectedText.length() - textWrappingLength - 1] == QLatin1Char(' ')); + expectedText[expectedText.length() - textWrappingLength - 1] = QLatin1Char('.'); + + DoTest(fillsView.toUtf8().constData(), "$gkr.", expectedText.toUtf8().constData()); + } + + { + // Jump down a few lines all in one go, where we have some variable length lines to navigate. + const int numVisualLinesOnLine[] = {3, 5, 2, 3}; + const int numLines = sizeof(numVisualLinesOnLine) / sizeof(int); + const int startVisualLine = 2; + const int numberLinesToGoDownInOneGo = 10; + + int totalVisualLines = 0; + for (int i = 0; i < numLines; i++) { + totalVisualLines += numVisualLinesOnLine[i]; + } + + QString startText; + for (int i = 0; i < numLines; i++) { + QString thisLine = fillsLineAndEndsOnSpace.repeated(numVisualLinesOnLine[i]); + // Replace trailing space with carriage return. + thisLine.chop(1); + thisLine.append(QLatin1Char('\n')); + startText += thisLine; + } + QString expectedText = startText; + expectedText[((startVisualLine - 1) + numberLinesToGoDownInOneGo) * fillsLineAndEndsOnSpace.length()] = QLatin1Char('.'); + + Q_ASSERT(numberLinesToGoDownInOneGo + startVisualLine < totalVisualLines); + Q_ASSERT(numberLinesToGoDownInOneGo + startVisualLine < numVisibleLinesToFillView); + DoTest(startText.toUtf8().constData(), + QString(QStringLiteral("gj").repeated(startVisualLine - 1) + QString::number(numberLinesToGoDownInOneGo) + QStringLiteral("gjr.")) + .toUtf8() + .constData(), + expectedText.toUtf8().constData()); + // Now go up a few lines. + const int numLinesToGoBackUp = 7; + expectedText = startText; + expectedText[((startVisualLine - 1) + numberLinesToGoDownInOneGo - numLinesToGoBackUp) * fillsLineAndEndsOnSpace.length()] = QLatin1Char('.'); + DoTest(startText.toUtf8().constData(), + QString(QStringLiteral("gj").repeated(startVisualLine - 1) + QString::number(numberLinesToGoDownInOneGo) + QStringLiteral("gj") + + QString::number(numLinesToGoBackUp) + QStringLiteral("gkr.")) + .toUtf8() + .constData(), + expectedText.toUtf8().constData()); + } + + { + // Move down enough lines in one go to disappear off the view. + // About half-a-viewport past the end of the current viewport. + const int numberLinesToGoDown = numVisibleLinesToFillView * 3 / 2; + const int visualColumnNumber = 7; + Q_ASSERT(fillsLineAndEndsOnSpace.length() > visualColumnNumber); + QString expectedText = fillsView.repeated(2); + Q_ASSERT(expectedText[expectedText.length() - textWrappingLength - 1] == QLatin1Char(' ')); + expectedText[visualColumnNumber + fillsLineAndEndsOnSpace.length() * numberLinesToGoDown] = QLatin1Char('.'); + + DoTest(fillsView.repeated(2).toUtf8().constData(), + QString(QStringLiteral("l").repeated(visualColumnNumber) + QString::number(numberLinesToGoDown) + QStringLiteral("gjr.")).toUtf8().constData(), + expectedText.toUtf8().constData()); + } + + { + // Deal with dynamic wrapping and indented blocks - continuations of a line are "invisibly" indented by + // the same amount as the beginning of the line, and we have to subtract this indentation. + const QString unindentedFirstLine = QStringLiteral("stickyhelper\n"); + const int numIndentationSpaces = 5; + Q_ASSERT(textWrappingLength > numIndentationSpaces * 2 /* keep some wriggle room */); + const QString indentedFillsLineEndsOnSpace = + QStringLiteral(" ").repeated(numIndentationSpaces) + QStringLiteral("X").repeated(textWrappingLength - 1 - numIndentationSpaces) + QLatin1Char(' '); + DoTest(QString(unindentedFirstLine + indentedFillsLineEndsOnSpace + QStringLiteral("LINE3")).toUtf8().constData(), + QString(QStringLiteral("l").repeated(numIndentationSpaces) + QStringLiteral("jgjr.")).toUtf8().constData(), + QString(unindentedFirstLine + indentedFillsLineEndsOnSpace + QStringLiteral(".INE3")).toUtf8().constData()); + + // The first, non-wrapped portion of the line is not invisibly indented, though, so ensure we don't mess that up. + QString expectedSecondLine = indentedFillsLineEndsOnSpace; + expectedSecondLine[numIndentationSpaces] = QLatin1Char('.'); + DoTest(QString(unindentedFirstLine + indentedFillsLineEndsOnSpace + QStringLiteral("LINE3")).toUtf8().constData(), + QString(QStringLiteral("l").repeated(numIndentationSpaces) + QStringLiteral("jgjgkr.")).toUtf8().constData(), + (unindentedFirstLine + expectedSecondLine + QStringLiteral("LINE3")).toUtf8().constData()); + } + + { + // Take into account any invisible indentation when setting the sticky column. + const int numIndentationSpaces = 5; + Q_ASSERT(textWrappingLength > numIndentationSpaces * 2 /* keep some wriggle room */); + const QString indentedFillsLineEndsOnSpace = + QStringLiteral(" ").repeated(numIndentationSpaces) + QStringLiteral("X").repeated(textWrappingLength - 1 - numIndentationSpaces) + QLatin1Char(' '); + const int posInSecondWrappedLineToChange = 3; + QString expectedText = indentedFillsLineEndsOnSpace + fillsLineAndEndsOnSpace; + expectedText[textWrappingLength + posInSecondWrappedLineToChange] = QLatin1Char('.'); + DoTest((indentedFillsLineEndsOnSpace + fillsLineAndEndsOnSpace).toUtf8().constData(), + (QString::number(textWrappingLength + posInSecondWrappedLineToChange) + QStringLiteral("lgkgjr.")).toUtf8().constData(), + expectedText.toUtf8().constData()); + // Make sure we can do this more than once (i.e. clear any flags that need clearing). + DoTest((indentedFillsLineEndsOnSpace + fillsLineAndEndsOnSpace).toUtf8().constData(), + (QString::number(textWrappingLength + posInSecondWrappedLineToChange) + QStringLiteral("lgkgjr.")).toUtf8().constData(), + expectedText.toUtf8().constData()); + } + + { + // Take into account any invisible indentation when setting the sticky column as above, but use tabs. + const QString indentedFillsLineEndsOnSpace = QStringLiteral("\t") + QStringLiteral("X").repeated(textWrappingLength - 1 - tabWidth) + QLatin1Char(' '); + const int posInSecondWrappedLineToChange = 3; + QString expectedText = indentedFillsLineEndsOnSpace + fillsLineAndEndsOnSpace; + expectedText[textWrappingLength - tabWidth + posInSecondWrappedLineToChange] = QLatin1Char('.'); + DoTest(QString(indentedFillsLineEndsOnSpace + fillsLineAndEndsOnSpace).toUtf8().constData(), + QString(QStringLiteral("fXf ") + QString::number(posInSecondWrappedLineToChange) + QStringLiteral("lgkgjr.")).toUtf8().constData(), + expectedText.toUtf8().constData()); + } + + { + // Deal with the fact that j/ k may set a sticky column that is impossible to adhere to in visual mode because + // it is too high. + // Here, we have one dummy line and one wrapped line. We start from the beginning of the wrapped line and + // move right until we wrap and end up at posInWrappedLineToChange one the second line of the wrapped line. + // We then move up and down with j and k to set the sticky column to a value to large to adhere to in a + // visual line, and try to move a visual line up. + const QString dummyLineForUseWithK(QStringLiteral("dummylineforusewithk\n")); + QString startText = dummyLineForUseWithK + fillsLineAndEndsOnSpace.repeated(2); + const int posInWrappedLineToChange = 3; + QString expectedText = startText; + expectedText[dummyLineForUseWithK.length() + posInWrappedLineToChange] = QLatin1Char('.'); + DoTest(startText.toUtf8().constData(), + QString(QStringLiteral("j") + QString::number(textWrappingLength + posInWrappedLineToChange) + QStringLiteral("lkjgkr.")).toUtf8().constData(), + expectedText.toUtf8().constData()); + } + + { + // Ensure gj works in Visual mode. + Q_ASSERT(fillsLineAndEndsOnSpace.toLower() != fillsLineAndEndsOnSpace); + QString expectedText = fillsLineAndEndsOnSpace.toLower() + fillsLineAndEndsOnSpace; + expectedText[textWrappingLength] = expectedText[textWrappingLength].toLower(); + DoTest(fillsLineAndEndsOnSpace.repeated(2).toUtf8().constData(), QStringLiteral("vgjgu").toUtf8().constData(), expectedText.toUtf8().constData()); + } + + { + // Ensure gk works in Visual mode. + Q_ASSERT(fillsLineAndEndsOnSpace.toLower() != fillsLineAndEndsOnSpace); + DoTest(fillsLineAndEndsOnSpace.repeated(2).toUtf8().constData(), + QStringLiteral("$vgkgu").toUtf8().constData(), + QString(fillsLineAndEndsOnSpace + fillsLineAndEndsOnSpace.toLower()).toUtf8().constData()); + } + + { + // Some tests for how well we handle things with real tabs. + QString beginsWithTabFillsLineEndsOnSpace = QStringLiteral("\t"); + while (beginsWithTabFillsLineEndsOnSpace.length() + (tabWidth - 1) < textWrappingLength - 1) { + beginsWithTabFillsLineEndsOnSpace += QLatin1Char('X'); + } + beginsWithTabFillsLineEndsOnSpace += QLatin1Char(' '); + const QString unindentedFirstLine = QStringLiteral("stockyhelper\n"); + const int posOnThirdLineToChange = 3; + QString expectedThirdLine = fillsLineAndEndsOnSpace; + expectedThirdLine[posOnThirdLineToChange] = QLatin1Char('.'); + DoTest((unindentedFirstLine + beginsWithTabFillsLineEndsOnSpace + fillsLineAndEndsOnSpace).toUtf8().constData(), + QString(QStringLiteral("l").repeated(tabWidth + posOnThirdLineToChange) + QStringLiteral("gjgjr.")).toUtf8().constData(), + (unindentedFirstLine + beginsWithTabFillsLineEndsOnSpace + expectedThirdLine).toUtf8().constData()); + + // As above, but go down twice and return to the middle line. + const int posOnSecondLineToChange = 2; + QString expectedSecondLine = beginsWithTabFillsLineEndsOnSpace; + expectedSecondLine[posOnSecondLineToChange + 1 /* "+1" as we're not counting the leading tab as a pos */] = QLatin1Char('.'); + DoTest((unindentedFirstLine + beginsWithTabFillsLineEndsOnSpace + fillsLineAndEndsOnSpace).toUtf8().constData(), + QString(QStringLiteral("l").repeated(tabWidth + posOnSecondLineToChange) + QStringLiteral("gjgjgkr.")).toUtf8().constData(), + QString(unindentedFirstLine + expectedSecondLine + fillsLineAndEndsOnSpace).toUtf8().constData()); + } + + // Restore back to how we were before. + kate_view->rendererConfig()->setFont(oldFont); + KateViewConfig::global()->setDynWordWrap(oldDynWordWrap); + kate_document->config()->setReplaceTabsDyn(oldReplaceTabsDyn); + kate_document->config()->setTabWidth(oldTabWidth); +} + +void ViewTest::clipboardTests_data() +{ + QTest::addColumn("text"); + QTest::addColumn("commands"); + QTest::addColumn("clipboard"); + + QTest::newRow("yank") << "yyfoo\nbar" + << "yy" + << "yyfoo\n"; + QTest::newRow("delete") << "ddfoo\nbar" + << "dd" + << "ddfoo\n"; + QTest::newRow("yank empty line") << "\nbar" + << "yy" << QString(); + QTest::newRow("delete word") << "word foo" + << "dw" + << "word "; + QTest::newRow("delete onechar word") << "w foo" + << "dw" + << "w "; + QTest::newRow("delete onechar") << "word foo" + << "dc" << QString(); + QTest::newRow("delete empty lines") << " \t\n\n \nfoo" + << "d3d" << QString(); +} + +void ViewTest::clipboardTests() +{ + QFETCH(QString, text); + QFETCH(QString, commands); + QFETCH(QString, clipboard); + + QApplication::clipboard()->clear(); + BeginTest(text); + TestPressKey(commands); + QCOMPARE(QApplication::clipboard()->text(), clipboard); +} + +QList ViewTest::rangesOnFirstLine() +{ + return kate_document->buffer().rangesForLine(0, kate_view, true); +} + +#include "moc_view.cpp" diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/view.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/view.h new file mode 100644 index 0000000000..e8ee5e4b62 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/vimode/view.h @@ -0,0 +1,32 @@ +/* + This file is part of the KDE libraries + SPDX-FileCopyrightText: 2014 Miquel Sabaté Solà + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef VIEW_TEST_H +#define VIEW_TEST_H + +#include "base.h" + +namespace Kate +{ +class TextRange; +} + +class ViewTest : public BaseTest +{ + Q_OBJECT + +private Q_SLOTS: + void yankHighlightingTests(); + void visualLineUpDownTests(); + void clipboardTests_data(); + void clipboardTests(); + +private: + QList rangesOnFirstLine(); +}; + +#endif /* VIEW_TEST_H */ diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/wordcompletiontest.cpp b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/wordcompletiontest.cpp new file mode 100644 index 0000000000..741c27b26a --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/wordcompletiontest.cpp @@ -0,0 +1,106 @@ +/* + SPDX-FileCopyrightText: 2013 Sven Brauch + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "wordcompletiontest.h" + +#include +#include +#include +#include + +#include +#include + +QTEST_MAIN(WordCompletionTest) + +// was 500000, but that takes 30 seconds on build.kde.org, removed two 0 ;) +static const int count = 5000; + +using namespace KTextEditor; + +void WordCompletionTest::initTestCase() +{ + QStandardPaths::setTestModeEnabled(true); + Editor *editor = KTextEditor::Editor::instance(); + QVERIFY(editor); + + m_doc = editor->createDocument(this); + QVERIFY(m_doc); + + // ensure the spellchecking doesn't mess with the expected results + static_cast(m_doc)->setDefaultDictionary(QStringLiteral("notexistinglanguage")); +} + +void WordCompletionTest::cleanupTestCase() +{ + delete m_doc; +} + +void WordCompletionTest::init() +{ + m_doc->clear(); +} + +void WordCompletionTest::cleanup() +{ +} + +void WordCompletionTest::benchWordRetrievalMixed() +{ + const int distinctWordRatio = 100; + QStringList s; + s.reserve(count); + for (int i = 0; i < count; i++) { + s.append(QLatin1String("HelloWorld") + QString::number(i / distinctWordRatio)); + } + s.prepend(QStringLiteral("\n")); + m_doc->setText(s); + + // creating the view only after inserting the text makes test execution much faster + std::unique_ptr v(m_doc->createView(nullptr)); + QBENCHMARK { + KateWordCompletionModel m(nullptr); + QCOMPARE(m.allMatches(v.get(), KTextEditor::Range()).size(), count / distinctWordRatio); + } +} + +void WordCompletionTest::benchWordRetrievalSame() +{ + QStringList s; + s.reserve(count); + // add a number so the words have roughly the same length as in the other tests + const QString str = QLatin1String("HelloWorld") + QString::number(count); + for (int i = 0; i < count; i++) { + s.append(str); + } + s.prepend(QStringLiteral("\n")); + m_doc->setText(s); + + std::unique_ptr v(m_doc->createView(nullptr)); + QBENCHMARK { + KateWordCompletionModel m(nullptr); + QCOMPARE(m.allMatches(v.get(), KTextEditor::Range()).size(), 1); + } +} + +void WordCompletionTest::benchWordRetrievalDistinct() +{ + QStringList s; + s.reserve(count); + for (int i = 0; i < count; i++) { + s.append(QLatin1String("HelloWorld") + QString::number(i)); + } + s.prepend(QStringLiteral("\n")); + m_doc->setText(s); + + std::unique_ptr v(m_doc->createView(nullptr)); + QBENCHMARK { + KateWordCompletionModel m(nullptr); + QCOMPARE(m.allMatches(v.get(), KTextEditor::Range()).size(), count); + } +} + +#include "moc_wordcompletiontest.cpp" diff --git a/local/recipes/kde/kf6-ktexteditor/source/autotests/src/wordcompletiontest.h b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/wordcompletiontest.h new file mode 100644 index 0000000000..bc8f1814f8 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/autotests/src/wordcompletiontest.h @@ -0,0 +1,31 @@ +/* + SPDX-FileCopyrightText: 2013 Sven Brauch + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#ifndef KATE_WORDCOMPLETIONTEST_H +#define KATE_WORDCOMPLETIONTEST_H + +#include +#include + +class WordCompletionTest : public QObject +{ + Q_OBJECT +private Q_SLOTS: + void initTestCase(); + void cleanupTestCase(); + + void init(); + void cleanup(); + + void benchWordRetrievalDistinct(); + void benchWordRetrievalSame(); + void benchWordRetrievalMixed(); + +private: + KTextEditor::Document *m_doc; +}; + +#endif // KATE_WORDCOMPLETIONTEST_H diff --git a/local/recipes/kde/kf6-ktexteditor/source/cmake/FindEditorConfig.cmake b/local/recipes/kde/kf6-ktexteditor/source/cmake/FindEditorConfig.cmake new file mode 100644 index 0000000000..8979d1ab50 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/cmake/FindEditorConfig.cmake @@ -0,0 +1,44 @@ +#.rest: +# FindEditorConfig +# -------------- +# +# Try to find EditorConfig on this system. +# +# This will define the following variables: +# +# ``EditorConfig_FOUND`` +# True if inotify is available +# ``EditorConfig_LIBRARIES`` +# This has to be passed to target_link_libraries() +# ``EditorConfig_INCLUDE_DIRS`` +# This has to be passed to target_include_directories() + +#============================================================================= +# SPDX-FileCopyrightText: 2017 Christoph Cullmann +# +# SPDX-License-Identifier: BSD-2-Clause +#============================================================================= + +find_path(EditorConfig_INCLUDE_DIRS editorconfig/editorconfig.h) + +if(EditorConfig_INCLUDE_DIRS) + find_library(EditorConfig_LIBRARIES NAMES editorconfig) + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(EditorConfig + FOUND_VAR + EditorConfig_FOUND + REQUIRED_VARS + EditorConfig_LIBRARIES + EditorConfig_INCLUDE_DIRS + ) + mark_as_advanced(EditorConfig_LIBRARIES EditorConfig_INCLUDE_DIRS) + include(FeatureSummary) + set_package_properties(EditorConfig PROPERTIES + URL "https://editorconfig.org/" + DESCRIPTION "EditorConfig editor configuration file support." + ) +else() + set(EditorConfig_FOUND FALSE) +endif() + +mark_as_advanced(EditorConfig_LIBRARIES EditorConfig_INCLUDE_DIRS) diff --git a/local/recipes/kde/kf6-ktexteditor/source/config.h.cmake b/local/recipes/kde/kf6-ktexteditor/source/config.h.cmake new file mode 100644 index 0000000000..23533360e5 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/config.h.cmake @@ -0,0 +1,12 @@ +#ifndef KATE_BUILD_CONFIG_H +#define KATE_BUILD_CONFIG_H + +/* config.h. Generated by cmake from config.h.cmake */ + +#cmakedefine01 EDITORCONFIG_FOUND + +#cmakedefine01 HAVE_FDATASYNC + +#cmakedefine01 HAVE_KAUTH + +#endif diff --git a/local/recipes/kde/kf6-ktexteditor/source/docs/apidocs-groups.qdoc b/local/recipes/kde/kf6-ktexteditor/source/docs/apidocs-groups.qdoc new file mode 100644 index 0000000000..056ea5a446 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/docs/apidocs-groups.qdoc @@ -0,0 +1,196 @@ +/*! \page kte_group_doc_extensions.html + +\target kte_group_doc_extensions +\title Document Extension Interfaces + +A KTextEditor implementation may implement a Document extension interface, but +it does not \e need to. So as a KTextEditor user you have to cast the Document +to the desired interface and then check, whether the cast returns NULL or the +valid interface. + +Use qobject_cast to cast a Document \e doc into the +\e DesiredExtensionInterface, example: +\code + // doc is of type KTextEditor::Document* + auto iface = qobject_cast(doc); + + if (iface) { + // the implementation supports the interface + // do stuff + } else { + // the implementation does not support the interface + } +\endcode + +\sa KTextEditor::Document + +The following classes are a list of all available Document extension interfaces. +\generatelist kte_group_doc_extensions +*/ + + + + + +/*! \page kte_group_moving_classes.html + +\target kte_group_moving_classes +\title MovingCursors and MovingRanges +\ingroup kte_group_doc_extensions + +If the KTextEditor implementation supports the KTextEditor::MovingInterface, +there are several \e moving classes available. + +Instances of the \e moving classes are bound to a specific Document, and +maintain their position in that document regardless of changes to the text. +Changes to KTextEditor::MovingRange%s can be caught by using the class +KTextEditor::MovingRangeFeedback. + +The following is a list of all classes that are available when the document +supports the KTextEditor::MovingInterface: + +\generatelist kte_group_moving_classes +*/ + + + + + +/*! \page kte_group_view_extensions.html + +\target kte_group_view_extensions +\title View Extension Interfaces + +A KTextEditor implementation may implement a View extension interface, but +it does not \e need to. So as a KTextEditor user you have to cast the View +to the desired interface and then check, whether the cast returns NULL or the +valid interface. + +Use qobject_cast to cast a View \e view into the +\e DesiredExtensionInterface, example: +\code + // view is of type KTextEditor::View* + auto iface = qobject_cast(view); + + if (iface) { + // the implementation supports the interface + // do stuff + } else { + // the implementation does not support the interface + } +\endcode + +\sa KTextEditor::View + +The following classes are a list of all available View extension interfaces. +\generatelist kte_group_view_extensions +*/ + + + + + +/*! \page kte_group_editor_extensions.html + +\target kte_group_editor_extensions +\title Editor Extension Interfaces + +A KTextEditor implementation may implement an Editor extension interface, but +it does not \e need to. So as a KTextEditor user you have to cast the Editor +to the desired interface and then check, whether the cast returns NULL or the +valid interface. + +Use qobject_cast to cast a Editor \e editor into the +\e DesiredExtensionInterface, example: +\code + // editor is of type KTextEditor::Editor* + auto iface = qobject_cast(view); + + if (iface) { + // the implementation supports the interface + // do stuff + } else { + // the implementation does not support the interface + } +\endcode + +\sa KTextEditor::Editor + +The following classes are a list of all available Editor extension interfaces. +\generatelist kte_group_editor_extensions +*/ + + + + + +/*! \page kte_group_plugin_extensions.html + +\target kte_group_plugin_extensions +\title Plugin Extension Interfaces +A KTextEditor Plugin can use extension interfaces, but it does not \e need +to. So as a KTextEditor implementer you have to cast the Plugin to the desired +interface and then check, whether the cast returns NULL or the valid interface. + +Use qobject_cast to cast a Plugin \e plugin into the +\e DesiredExtensionInterface, example: +\code + // plugin is of type KTextEditor::Plugin* + auto iface = qobject_cast(plugin); + + if (iface) { + // the implementation supports the interface + // do stuff + } else { + // the implementation does not support the interface + } +\endcode + +\sa KTextEditor::Plugin +\generatelist kte_group_plugin_extensions +*/ + + + + + +/*! \page kte_group_command_extensions.html + +\target kte_group_command_extensions +\title Command Extension Interfaces + +A KTextEditor command-line Command can use extension interfaces, but it does not +\e need to. So as a KTextEditor implementer you have to cast the Command to +the desired interface and then check, whether the cast returns NULL or the valid +interface. + +Use qobject_cast to cast a Command \e cmd into the +\e DesiredExtensionInterface, example: +\code + // cmd is of type KTextEditor::Command* + auto iface = qobject_cast(cmd); + + if (iface) { + // the implementation supports the interface + // do stuff + } else { + // the implementation does not support the interface + } +\endcode + +\sa KTextEditor::Command +\generatelist kte_group_command_extensions +*/ + + + +/*! \page kte_group_ccmodel_extensions.html + +\target kte_group_ccmodel_extensions +\title CodeCompletionModel Extension Interfaces +A CodeCompletionModel implementation may implement a CodeCompletionModel +extension interface, but it does not \e need to. + +\sa KTextEditor::CodeCompletionModel +\generatelist kte_group_ccmodel_extensions +*/ diff --git a/local/recipes/kde/kf6-ktexteditor/source/docs/coding-guidelines.qdoc b/local/recipes/kde/kf6-ktexteditor/source/docs/coding-guidelines.qdoc new file mode 100644 index 0000000000..99539a4062 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/docs/coding-guidelines.qdoc @@ -0,0 +1,40 @@ +/*! \page kte_guidelines.html + +\title Coding Guidelines and API Conventions + +\l {KTextEditor C++ Classes} {Overview} | +\l {Overview of the Core Interface Design} {Design} | +Coding Guidelines | +\l {Porting to KDE Frameworks 5} + +All KTextEditor interfaces have a consistent design. +- naming follows Qt style. Avoid Java style getters like getSomeData() + for example, +- core interfaces (see \l {Overview of the Core Interface Design}) which inherit QObject declare all + signals as real signals, +- all other interfaces, which do not subclass QObject, must declare their + signals as virtual private member functions. An implementation must + reimplement this virtual member function as a real signal. +- all signals have the sender object as first parameter, for example + all document signals have to look like this: + \code + void signalFromDocument (KTextEditor::Document *doc, ...); + \endcode + This allows easy and consistent query which object did send the signal, + which is important for most applications, as they listen to multiple + documents/views/editors/... +- all interface functions should be virtual, to allow subclasses to + overwrite them, most members should even be pure virtual, beside + additional convenience/helper functions. + +The interface KTextEditor::Cursor represents a cursor position, i.e. a +line/column tuple. The same holds for KTextEditor::Range. As both of this +concepts are much cleaner than tuples, please keep the following guidelines: +- never use line/column tuples in parameter lists, use KTextEditor::Cursor + instead, +- never use Cursor/Cursor tuples for ranges, use KTextEditor::Range + instead of two Cursors. + +\author Christoph Cullmann \ +\author Dominik Haumann \ +*/ diff --git a/local/recipes/kde/kf6-ktexteditor/source/docs/design.qdoc b/local/recipes/kde/kf6-ktexteditor/source/docs/design.qdoc new file mode 100644 index 0000000000..d6f7a10dd9 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/docs/design.qdoc @@ -0,0 +1,57 @@ +/*! \page kte_design.html + +\title Overview of the Core Interface Design + +\l {KTextEditor C++ Classes} {Overview} | +Design | +\l {Coding Guidelines and API Conventions} {Coding Guidelines} | +\l {Porting to KDE Frameworks 5} + +The core of the KTextEditor interfaces consists of three main interfaces: +\list +\li KTextEditor::Editor (singleton) \br + The Editor is a singleton accessed through KTextEditor::Editor::instance(). + This singleton allows to create documents, get a document list, and a be + informed when a new document is created. +\li KTextEditor::Document \br + The Document interface represents a single document and enables the creation of + views, access to and manipulation of document contents, and access to document + extension interfaces. +\li KTextEditor::View \br + The View provides a widget that displays the contents of a Document, and its + interface allows for manipulation of text selection, position of the cursor and mouse, + text selections, and behavior of the view. Additionally it provides access to + the view extension interfaces. +\endlist + +The hierarchy can be illustrated as follows: +\image ktexteditorhierarchy.png "Basic KTextEditor Hierarchy" + +\target kte_design_user +\section1 Notes for KTextEditor Users +To use the KTextEditor framework you first have to get the KTextEditor::Editor +singleton through KTextEditor::Editor::instance(). Using this object, documents +can be created and deleted. + +\target kte_design_part +\section1 Using KTextEditor as KPart +If linking to KF5::TextEditor is not an option, you can also access the +KTextEditor framework as follows +\code + KService::Ptr service = KService::serviceByDesktopPath("katepart"); + if (service) { + m_part = service->createInstance(0); + } +\endcode + +\target kte_design_developer +\section1 Notes for KTextEditor Developers +The KTextEditor::Editor has a list of all opened documents and can create new +documents. A Document's content is visualized by a KTextEditor::View. A Document +can have any number of views (or none). When the content of the document is +changed, the change is reflected in all views. + +\sa KTextEditor::Editor, KTextEditor::Document, KTextEditor::View + +\author Dominik Haumann \ +*/ diff --git a/local/recipes/kde/kf6-ktexteditor/source/docs/pics/inlinenote.png b/local/recipes/kde/kf6-ktexteditor/source/docs/pics/inlinenote.png new file mode 100644 index 0000000000000000000000000000000000000000..48126eb5c0b4fbb40e1e75b11c2d738bd1736150 GIT binary patch literal 16287 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⁢Qyz}=yT*M0HqjE*VB`Qiu~j8@q#jf+)yN&Y~MO(FHBF*JUaTb zvxJ40SK*saHfZ=~5-YhH06rSQhsMS(a&ii%_n22#)q42X>!2qq6v*X)96FCR!!B4lA&`@fA-PgNwv9h|Y6B5#u?(R*^5AXYgw%AsV zunMMTwPNe`XLt{{1~p{`^fGi>q3Iz!aLSUlp7n*Dh#eCylp%lb?C{DY?8~$~nRlF< zU&O6``gGCSlT-2Zd^sA8RI7%#gt~phxb|hAy$Q+7bso4xDQUC#pDU+$t@ff{XwTFO z&wH+%#&jTgC0!Pc6tCxbhn?NwK773H!Nih;^}vP^Pxqa2#~JmS^m8`k!U!XT{mlVd z0mpyxxJz6=b*>x1Ca46!z6-7na#t-^p}GtCACnK})+wYafg>aP+luP1>tlCn{|2X<=bDGs^2k)6+b#=2D=?cYkK z)0&KE$J}=4IHzcbfL&D}43`*jAyZoy9J*e;x+^6f|NKgUanMll>Ztd_fPhjJb@F!z yIU50g4gk6N7bd40*~kkf+rMy}8UpjjQ2Hb)DIq?qQkE1cijS7MzFHOBKKehOR(yK^ literal 0 HcmV?d00001 diff --git a/local/recipes/kde/kf6-ktexteditor/source/docs/pics/texthint.png b/local/recipes/kde/kf6-ktexteditor/source/docs/pics/texthint.png new file mode 100644 index 0000000000000000000000000000000000000000..4b82bfaf874ab81ec0b4c55c217b56bc3daf1ffa GIT binary patch literal 5456 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 plugins = KPluginMetaData::findPlugins(QStringLiteral("ktexteditor")); + for (const auto &plugin_meta_data : plugins) { + QString identifier = plugin_meta_data.filename().basename(); + if (!plugins_to_load.contains(identifier)) { + continue; + } + plugins_to_load.removeOne(identifier); // avoid loading separate versions of the same plugin + + KTextEditor::Plugin *plugin = KPluginFactory::instantiatePlugin(plugin_meta_data, this, QVariantList() << identifier).plugin; + if (plugin) { + emit KTextEditor::Editor::instance()->application()->pluginCreated(identifier, plugin); + QObject* created = plugin->createView(); + if (created) { + emit mainWindow()->main->pluginViewCreated(identifier, created); + KTextEditor::SessionConfigInterface *interface = qobject_cast(created); + if (interface) { + // NOTE: Some plugins will misbehave, unless readSessionConfig has been called! + KConfigGroup group = KSharedConfig::openConfig()->group(QStringLiteral("KatePlugin:%1:").arg(identifier)); + interface->readSessionConfig(group); + } + } + } + } +\endcode + +Note, however, that only a few basic plugins will actually be functional with the above, alone. +For others, we need to implement several additional functions, as detailed, below. + +\target kte_full_plugin_hosting +\section1 Implementing full plugin hosting +In order to allow plugins to interact with the hosting application (e.g. creating or activating additional windows/widgets), +you need to implement two interfacing classes: +- KTextEditor::Application (singleton) +- KTextEditor::MainWindow + +The latter corresponds to top level windows in your application (it's ok, if your application only supports a single +toplevel window), with the assumption being that several document- and/or tool-windows can existing in each main window. + +The two classes are really just a thin layer to dispatch from API to be used in plugins to the appropriate +functionality in your application. For best runtime compatibility even across different version of KTextEditor, this is +implemented using Qt slots. E.g. KTextEditor::MainWindow::activeView() is defined as: + +\code +KTextEditor::View *MainWindow::activeView() + { + // dispatch to parent + KTextEditor::View *view = nullptr; + QMetaObject::invokeMethod(parent(), "activeView", Qt::DirectConnection, Q_RETURN_ARG(KTextEditor::View*, view)); + return view; + } +\endcode + +I.e. this function (and most others in KTextEditor::MainWindow and KTextEditor::Application) simply invokes +a slot by the same name and signature in its parent QObject. This is what you need to provide. The following example should +illustrate the idea: + +\code +class MyKTEMainWindow : public QObject { + MyKTEMainWindow() { + // create a dispatch object _as a child of this object_ + kte_win = new KTextEditor::MainWindow(this); + } + [...] +public slots: + KTextEditor::View* activateView(KTextEditor::Document *document) { + auto view = myFindViewForDoc(document); + myActivateView(view); + return view; + } + [further implementations] +private: + friend class MyKTEApplication; + KTextEditor::MainWindow* kte_win; +} + +class MyKTEApplication : public QObject { + MyKTEApplicaiton() { + // create a dispatch object _as a child of this object_ + kte_app = new KTextEditor::Application(this); + // For simplicity, let's assume a single main window, and create a wrapper for it, here + my_main_win = new MyKTEMainWindow; + + // register with KTextEditor + KTextEditor::Editor::instance()->setApplication(kte_app); + } + [...] +public slots: + KTextEditor::MainWindow* activeMainWindow() { + return my_main_win->kte_win; + } + [further implementations] +private: + KTextEditor::Application* kte_app; + MyKTEMainWindow* my_main_win; +} +\endcode + +\note Due to the lose coupling via Qt slots, you may not need to implement a dispatch slots for every +single member in KTextEditor::Application, and KTextEditor::MainWindow. Naturally, however, plugins will be +more likely to work as expected, the more complete the hosting app implements these interfaces. + +\note Don't forget to integrate the plugin config pages, if desired: @see KTextEditor::Plugin::configPage(), @see KTextEditor::Plugin::configPages(). + +\sa KTextEditor::Plugin, KTextEditor::Application, KTextEditor::MainWindow + +*/ diff --git a/local/recipes/kde/kf6-ktexteditor/source/docs/porting.qdoc b/local/recipes/kde/kf6-ktexteditor/source/docs/porting.qdoc new file mode 100644 index 0000000000..cf223155bd --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/docs/porting.qdoc @@ -0,0 +1,218 @@ +/*! \page kte_port_to_5.html + +\title Porting to KDE Frameworks 5 + +\l {KTextEditor C++ Classes} {Overview} | +\l {Overview of the Core Interface Design} {Design} | +\l {Coding Guidelines and API Conventions} {Coding Guidelines} | +Porting to KDE Frameworks 5 + +This document describes porting applications using the KTextEditor interfaces +from KDE 4 to KDE Frameworks 5. This page does not try to be complete; its main +goal is to show what interfaces were removed, changed or added to give some +impression and orientation of what you have to do to port your application to +the KDE Frameworks 5 KTextEditor interfaces. + +\target kte_port_intro +\section1 Introduction +The KTextEditor interfaces changes in KDE Frameworks 5 are neither binary nor +source compatible to the KTextEditor interfaces included in KDE 4, so programs +written/compiled for the KDE 4 KTextEditor interfaces will not compile +(nor run) under Frameworks 5. + +The Frameworks 5 KTextEditor interfaces undergone a heavy cleanup, i.e. obsolete +functions were removed, interfaces were merged and extended. All interface +changes like for example parameter changes of a function are not mentioned in +detail in this page, look into the particular class API documentation. + +\target kte_port_remove +\section1 Removed/Merged Interfaces and Classes +Entirely removed interfaces and classes are: +\list + \li \b KTextEditor::Factory \br + Just use KTextEditor::Editor::instance() to get the editor instance. + This pointer is \e always valid. + \li \b KTextEditor::EditorChooser \br + Instead, just use \b KTextEditor::Editor::instance(); + \li \b SmartInterface (removed since KDE 4.5) + \li \b SmartCursor, \c SmartRange, \c SmartCursorNotifier, \c SmartCursorWatcher, + \b SmartRangeNotifier, \c SmartRangeWatcher (already unsupported since KDE 4.5) + \li \b LoadSaveFilterCheckPlugin was removed, since it was unused. + \li \b KTextEditor::VariableInterface \br + This interface was not used by other applications and therefore got removed. + If required, it can be added again. + \li \b KTextEditor::SearchInterface \br + This interface was removed. The function \b searchText() was added to + \b KTextEditor::Document. + \li \b KTextEditor::ConfigPageInterface \br + This interface was removed. The functions \b configPages() and \c configPage() + were both added to the \b KTextEditor::Editor and the \c KTextEditor::Plugin interface. + \li \b KTextEditor::ParameterizedSessionConfigInterface \br + This interface was removed. The functions are now available directly in the + Document and the View as follows: + \list + \li \b KTextEditor::Document::readSessionConfig() and \c KTextEditor::Document::writeSessionConfig() + \li \b KTextEditor::View::readSessionConfig() and \c KTextEditor::View::writeSessionConfig() + \endlist + \li \b CoordinatesToCursorInterface was merged into the \c KTextEditor::View. + \li \b CodeCompletionModelControllerInterface2, + \b CodeCompletionModelControllerInterface3 and + \b CodeCompletionModelControllerInterface4 + were merged into the \b KTextEditor::CodeCompletionModelControllerInterface. + \li \b KTextEditor::CommandInterface \br + This interface was merged into the \b KTextEditor::Editor. + \li \b KTextEditor::Command \br + This class now inherits QObject. Further, a Command now automatically + registers and unregisters itself. Hence, \b CommandInterface::registerCommand() + and \b CommandInterface::unregisterCommand() were removed. + \li \b KTextEditor::CommandExtension \br + This interface was merged into \b KTextEditor::Command. + KTextEditor::CommandExtension::flagCompletions() was removed since it was + never implemented and therefore unused. + \li \b KTextEditor::RangeCommand \br + This interface was merged into \b KTextEditor::Command. The function + \b KTextEditor::Command::exec() now takes an optional Range as 3rd parameter. + \li \b KTextEditor::HighlightInterface \br + The default styles are now in the namespace \b KTextEditor::DefaultStyle. + The rest of this interface was merged into the \b KTextEditor::Document and \c KTextEditor::View, see: + \list + \li \b KTextEditor::Document::defaultStyleAt() + \li \b KTextEditor::View::defaultStyleAttribute() + \li \b KTextEditor::View::lineAttributes() + \endlist + \li \b KTextEditor::HighlightInterface::AttributeBlock moved to \c KTextEditor::AttributeBlock. + \li \b KTextEditor::RecoveryInterface \br + This interface was merged into the \b KTextEditor::Document, see + \list + \li \b KTextEditor::Document::isDataRecoveryAvailable() + \li \b KTextEditor::Document::recoverData() + \li \b KTextEditor::Document::discardDataRecovery() + \endlist +\endlist + +\target kte_port_rename +\section1 Interface Changes +The following interfaces were changed: +\list + \li \b KTextEditor::Editor::setSimpleMode() was removed. + \li \b KTextEditor::Editor::readConfig() and \c KTextEditor::Editor::writeConfig() \br + Both functions were removed. The Editor configuration is automatically saved + to \e katepartrc now and shared among all applications that use the KTextEditor framework. + \li \b KTextEditor::View::setSelection(const Cursor &position, int length, bool wrap) + was removed in favor of the Range based KTextEditor::View::setSelection() + \li \b KTextEditor::Document::activeView() \br + The active view was removed in favor of KTextEditor::MainWindow::activeView(). + \li \b KTextEditor::Document::checksum() returns the sha1 checksum (same as git) of the file on disk. + \li \b KTextEditor::Document::wordRangeAt() returns the Range of the word under the given cursor. + \li \b KTextEditor::Document::wordAt() returns the word under the given cursor. + \li \b KTextEditor::Document::character() was renamed to \c KTextEditor::Document::characterAt() + \li \b KTextEditor::Document::isLineModified(), \c KTextEditor::Document::isLineSaved(), + and \b KTextEditor::Document::isLineTouched() are new. + \li \b KTextEditor::Document::readWriteChanged() \br + This signal is emitted whenever the read-only state of the document changes. + \li \b KTextEditor::Document::startEditing() and \c KTextEditor::Document::endEditing() + were removed in favour of the RAII class \b KTextEditor::Document::EditingTransaction. + Further, \b KTextEditor::Document::isEditingTransactionRunning() was added. + \li \b KTextEditor::Document::exclusiveEditStart() was renamed to \c KTextEditor::Document::editingStarted(). + \li \b KTextEditor::Document::exclusiveEditEnd() was renamed to \c KTextEditor::Document::editingFinished(). + \li New \b KTextEditor::Document gained new editing signals: \br + \list + \li \b KTextEditor::Document::lineWrapped() and \c KTextEditor::Document::lineUnwrapped() + \li \b KTextEditor::Document::textInserted() and \c KTextEditor::Document::textRemoved() + \li \b KTextEditor::Document::textChanged() + \endlist + These signals are emitted only between the signals \b KTextEditor::Document::editingStarted() + and before \b KTextEditor::Document::editingFinished(). Note, that you should + \e never modify the document between these two signals. + \li \b KTextEditor::Document::cursorInText() was unused and removed in favor of + \b KTextEditor::Document::isValidTextPosition(). + \li \b KTextEditor::View now has a status bar by default. It can be controlled + by \b View::setStatusBarEnabled() and \c View::isStatusBarEnabled(). Whenever the visibility + of the statusbar changes, the signal \b View::statusBarEnabledChanged() is emitted. + \li \b KTextEditor::View::informationMessage() was removed in favor of \c KTextEditor::Document::postMessage(). + \li \b KTextEditor::View::viewModeChanged() gained an additional parameter with the current view edit mode. + \li New enums \b KTextEditor::View::InputMode and \c KTextEditor::View::ViewMode. + \li \b KTextEditor::View::viewEditModeChanged() was renamed to \c KTextEditor::View::viewInputModeChanged(). + \li New functions \b KTextEditor::View::viewModeHuman and \c KTextEditor::View::viewInputModeHuman(). + \li \b KTextEditor::SessionConfigInterface \br + This interface is an extension only for a \b KTextEditor::Plugin and the Plugin + view's returned by \b KTextEditor::Plugin::createView(). + \li \b KTextEditor::CodeCompletionModel \br + \b KTextEditor::CodeCompletionModel::hasGroups() now returns \e false (KF5) + instead of \e true (KDE4). +\endlist + +\target kte_port_new +\section1 New Interfaces +The following interfaces are new: +\list + \li \b KTextEditor::Application (since KDE 5.0) \br + The Application is an interface that is implemented by the host application. + It provides information about the documents managed by the application as well + as convenience functions for instance to open or close documents. + \li \b KTextEditor::MainWindow (since KDE 5.0) \br + A MainWindow usually represents a toplevel window of the application. + It manages the views and also provides an accessor to the MainWindow's active + view through MainWindow::activeView(). The provides signals that indicate that + the active view has changed, or that a view has been created. Other than that, + it for instance allows to create tool views and similar convenience functions + to show view bars. + \li \b KTextEditor::Message (since KDE 4.11) \br + Class providing notifications to the user in a KTextEditor::View. +\endlist + +\target kte_port_enhanced_classes +\section1 Significantly Enhanced Classes +The following classes have been significantly enhanced: +\list + \li \b KTextEditor::Cursor \br + The Cursor now is a tuple of two ints, namely the line and column. It has no + virtual destructor so that you cannot derive from Cursor. Since a Cursor + uses 8 Bytes, it is even ok to pass a Cursor as copy in parameters instead + of a reference. + Further, the Cursor has been marked as Q_MOVABLE, making it behave like a + Plain Old Data (POD) type. + \li \b KTextEditor::Range \br + The Range now is a tuple of two Cursors, namely the Range::startCursor() and the + Range::endCursor(). It has no virtual destructor so that you cannot derive from Range. + Further, the Range has been marked as Q_MOVABLE, making it behave like a + Plain Old Data (POD) type. + \li \b KTextEditor::TextHintInterface \br + This interface now requires you to call registerTextHintProvider() and + unregisterTextHintProvider() with a corresponding object that implements + \b KTextEditor::TextHintProvider. + \li \b KTextEditor::Attribute \br + This class was extended by several attributes that were internal to Kate Part + before, including the name, spell checking, and the default style. +\endlist + +\target kte_port_new_classes +\section1 New Classes +The following classes are either new, or were added late in the KDE 4 release cycle: +\list + \li \b KTextEditor::DocumentCursor \br + The DocumentCursor is a cursor associated to a KTextEditor::Document. It + provides convenience functions such as for text navigation. However, it does + not automatically maintain its position when the document's contents changes. + \li \b KTextEditor::MovingCursor (since KDE 4.5) \br + The MovingCursor was introduced in KDE 4.5 as replacement to the SmartCursor. + A MovingCursor is bound to a specific Document and maintains its position. + \li \b KTextEditor::MovingRange \br + The MovingRange was introduced in KDE 4.5 as replacement to the SmartRange. + A MovingRange is bound to a specific Document and maintains its position. + \li \b KTextEditor::MovingRangeFeedback (since KDE 4.5) \br + Class providing notifications of changes to a KTextEditor::MovingRange. +\endlist + +\target kte_port_plugins +\section1 Plugin Architecture Changes +The KTextEditor::Plugin system was heavily extended to support 'application +plugins'. That is, a plugin can now create tool views in a KTextEditor::MainWindow and +access the Application's document list. So the plugins are now shared +between all applications using the KTextEditor interfaces (e.g. Kate, KDevelop, +and Kile). + +\sa KTextEditor::Plugin + +\author Dominik Haumann \ +*/ diff --git a/local/recipes/kde/kf6-ktexteditor/source/docs/porting_kf6.md b/local/recipes/kde/kf6-ktexteditor/source/docs/porting_kf6.md new file mode 100644 index 0000000000..e848f73779 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/docs/porting_kf6.md @@ -0,0 +1,20 @@ +# Porting to KF6KTextEditor + +This document describes the changes in the api and what you need to be able to port to KF6 KTextEditor. + +## Interfaces are gone + +All KTextEditor::Document and KTextEditor::View extension interfaces for e.g., MovingInterface, MarkInterface, ConfigInterface etc were +removed and their API merged into respective view and document class. For porting, you can just remove the interface case and use the +document or view object directly, e.g: +```c++ +// KF5 +if (auto miface = qobject(m_doc)) { + KTextEditor::MovingRange *range = miface->newMovingInterface(...); +} +``` +in KF6 becomes: + +```c++ + KTextEditor::MovingRange *range = m_doc->newMovingInterface(...); +``` diff --git a/local/recipes/kde/kf6-ktexteditor/source/metainfo.yaml b/local/recipes/kde/kf6-ktexteditor/source/metainfo.yaml new file mode 100644 index 0000000000..30ab40637c --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/metainfo.yaml @@ -0,0 +1,18 @@ +description: Advanced embeddable text editor +tier: 3 +type: solution +platforms: + - name: Linux + - name: FreeBSD + - name: Windows + - name: macOS +portingAid: false +deprecated: false +release: true +libraries: + - cmake: "KF6::TextEditor" +cmakename: KF6TextEditor + +public_lib: true +group: Frameworks +subgroup: Tier 3 diff --git a/local/recipes/kde/kf6-ktexteditor/source/po/af/ktexteditor6.po b/local/recipes/kde/kf6-ktexteditor/source/po/af/ktexteditor6.po new file mode 100644 index 0000000000..ca2d53a614 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/po/af/ktexteditor6.po @@ -0,0 +1,11580 @@ +# UTF-8 test:äëïöü +# Copyright (C) 2001 Free Software Foundation, Inc. +# Juanita Franz , 2005. +msgid "" +msgstr "" +"Project-Id-Version: katepart4 stable\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2026-06-23 00:41+0000\n" +"PO-Revision-Date: 2005-11-25 11:24+0200\n" +"Last-Translator: Juanita Franz \n" +"Language-Team: AFRIKAANS \n" +"Language: af\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" + +#: completion/katecompletionmodel.cpp:147 +#, kde-format +msgid "Argument-hints" +msgstr "" + +#: completion/katecompletionmodel.cpp:148 +#, kde-format +msgid "Best matches" +msgstr "" + +#: completion/katekeywordcompletion.cpp:143 +#, kde-format +msgid "Language keywords" +msgstr "" + +#: completion/katewordcompletion.cpp:74 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgid "Auto Word Completion" +msgstr "Woord Klaarmaak Inprop" + +#: completion/katewordcompletion.cpp:301 +#, kde-format +msgid "Shell Completion" +msgstr "Told Voltooi" + +#: completion/katewordcompletion.cpp:306 +#, kde-format +msgid "Reuse Word Above" +msgstr "Hergebruik woord hierbo" + +#: completion/katewordcompletion.cpp:312 +#, kde-format +msgid "Reuse Word Below" +msgstr "Hergebruik Woord Hieronder" + +#. i18n: ectx: Menu (file) +#: data/katepart5ui.rc:4 +#, fuzzy, kde-format +msgid "&File" +msgstr "Lêertipe" + +#. i18n: ectx: Menu (file_export) +#: data/katepart5ui.rc:10 +#, kde-format +msgid "&Print/Export" +msgstr "" + +#. i18n: ectx: Menu (edit) +#: data/katepart5ui.rc:17 +#, fuzzy, kde-format +msgid "&Edit" +msgstr "Redigeer..." + +#. i18n: ectx: Menu (edit_find_menu) +#: data/katepart5ui.rc:36 +#, kde-format +msgid "Find Variants" +msgstr "" + +#. i18n: ectx: Menu (selection) +#: data/katepart5ui.rc:46 +#, fuzzy, kde-format +#| msgid "Selection Only" +msgid "Selection" +msgstr "Keuse Slegs" + +#. i18n: ectx: Menu (capitalization) +#: data/katepart5ui.rc:53 +#, fuzzy, kde-format +#| msgid "Capitalize" +msgid "Capitalization" +msgstr "Kapitaliseer" + +#. i18n: ectx: Menu (view) +#: data/katepart5ui.rc:73 +#, fuzzy, kde-format +msgid "&View" +msgstr "Nuwe" + +#. i18n: ectx: Menu (view_menu_word_wrap) +#: data/katepart5ui.rc:78 +#, fuzzy, kde-format +#| msgid "Static Word Wrap" +msgid "Word Wrap" +msgstr "Statiese Woord Oorvloei" + +#. i18n: ectx: Menu (view_menu_borders) +#: data/katepart5ui.rc:84 dialogs/katedialogs.cpp:747 +#, fuzzy, kde-format +#| msgid "Borders" +msgid "Borders" +msgstr "Grense" + +#. i18n: ectx: Menu (codefolding) +#: data/katepart5ui.rc:92 +#, kde-format +msgid "&Code Folding" +msgstr "Kode Vou" + +#. i18n: ectx: Menu (go) +#: data/katepart5ui.rc:109 +#, kde-format +msgid "&Go" +msgstr "" + +#. i18n: ectx: Menu (tools) +#: data/katepart5ui.rc:124 +#, fuzzy, kde-format +msgid "&Tools" +msgstr "Data Nutsprogramme" + +#. i18n: ectx: Menu (wordcompletion) +#: data/katepart5ui.rc:138 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgid "Word Completion" +msgstr "Woord Klaarmaak Inprop" + +#. i18n: ectx: Menu (spelling) +#: data/katepart5ui.rc:144 spellcheck/spellingmenu.cpp:71 +#: spellcheck/spellingmenu.cpp:195 +#, kde-format +msgid "Spelling" +msgstr "" + +#. i18n: ectx: Menu (speech) +#: data/katepart5ui.rc:153 data/katepart5ui.rc:184 +#, kde-format +msgid "Text to Speech" +msgstr "" + +#. i18n: ectx: Menu (settings) +#: data/katepart5ui.rc:161 +#, fuzzy, kde-format +msgid "&Settings" +msgstr "Teks Instellings" + +#. i18n: ectx: ToolBar (mainToolBar) +#: data/katepart5ui.rc:192 +#, kde-format +msgid "Main Toolbar" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/bordersappearanceconfigwidget.ui:25 +#, fuzzy, kde-format +#| msgid "Code Folding" +msgid "Code block folding:" +msgstr "Kode vou" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowFoldingMarkers) +#: dialogs/bordersappearanceconfigwidget.ui:32 +#, fuzzy, kde-format +#| msgid "" +#| "If this option is checked, every new view will display marks for code " +#| "folding, if code folding is available." +msgid "" +"If this option is checked, every new view will display marks for folding." +msgstr "" +"Indien hierdie opsie gekontroleur is, elke nuwe aansig sal vertoon merke vir " +"kode vou, indien kode vou beskikbaar is." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowFoldingMarkers) +#: dialogs/bordersappearanceconfigwidget.ui:35 +#, kde-format +msgid "Show arrows to collapse code blocks" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowFoldingPreview) +#: dialogs/bordersappearanceconfigwidget.ui:42 +#, fuzzy, kde-format +#| msgid "" +#| "If this option is checked, every new view will show marks on the vertical " +#| "scrollbar.

These marks will, for instance, show bookmarks." +msgid "" +"If checked, hovering over a folded region shows a preview of the folded text " +"in a popup." +msgstr "" +"As hierdie opsie nagegaan is, elke nuwe besigtig sal vertoon merke op die " +"vertikale rolstaaf.

Hierdie merke sal, byvoorbeeld, wys boekmerke." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowFoldingPreview) +#: dialogs/bordersappearanceconfigwidget.ui:45 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Show preview of folded blocks on hover" +msgstr "Druk die huidige dokument." + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/bordersappearanceconfigwidget.ui:52 +#, kde-format +msgid "Folding arrows visibility:" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbFoldingArrowVisiblity) +#: dialogs/bordersappearanceconfigwidget.ui:63 +#, fuzzy, kde-format +#| msgid "Show &Icon Border" +msgid "Show on Hover" +msgstr "Vertoon Ikoon Grens" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbFoldingArrowVisiblity) +#: dialogs/bordersappearanceconfigwidget.ui:68 +#, fuzzy, kde-format +msgid "Show Always" +msgstr "Altyd Aan" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/bordersappearanceconfigwidget.ui:92 +#, kde-format +msgid "Left side:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkIconBorder) +#: dialogs/bordersappearanceconfigwidget.ui:99 +#, fuzzy, kde-format +#| msgid "" +#| "If this option is checked, every new view will display an icon border on " +#| "the left hand side.

The icon border shows bookmark signs, for " +#| "instance." +msgid "" +"

If this option is checked, every new view will display an icon border on " +"the left hand side.

The icon border shows bookmark signs, for instance." +"

" +msgstr "" +"As hierdie opsie is nagegaan, elke nuwe besigtig sal vertoon 'n ikoon grens " +"op die links hand kant.

die ikoon grens vertoon boekmerk tekens, vir " +"voorbeeld." + +#. i18n: ectx: property (text), widget (QCheckBox, chkIconBorder) +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMarks) +#: dialogs/bordersappearanceconfigwidget.ui:102 +#: dialogs/bordersappearanceconfigwidget.ui:155 +#, fuzzy, kde-format +#| msgid "Show &scrollbar marks" +msgid "Show marks" +msgstr "Wys rolstaaf merke" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkLineNumbers) +#: dialogs/bordersappearanceconfigwidget.ui:109 +#, kde-format +msgid "" +"If this option is checked, every new view will display line numbers on the " +"left hand side." +msgstr "" +"As hierdie opsie is nagegaan, elke nuwe besigtig sal vertoon lyn nommers op " +"die links hand kant." + +#. i18n: ectx: property (text), widget (QCheckBox, chkLineNumbers) +#: dialogs/bordersappearanceconfigwidget.ui:112 +#, kde-format +msgid "Show &line numbers" +msgstr "Vertoon lyn nommers" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowLineModification) +#: dialogs/bordersappearanceconfigwidget.ui:119 +#, fuzzy, kde-format +#| msgid "" +#| "If this option is checked, every new view will display line numbers on " +#| "the left hand side." +msgid "" +"If this option is checked, a small indicator for modified and saved lines is " +"shown on the left hand side." +msgstr "" +"As hierdie opsie is nagegaan, elke nuwe besigtig sal vertoon lyn nommers op " +"die links hand kant." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowLineModification) +#: dialogs/bordersappearanceconfigwidget.ui:122 +#, kde-format +msgid "Highlight changed and unsaved lines" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/bordersappearanceconfigwidget.ui:145 +#, fuzzy, kde-format +#| msgid "Show &scrollbar marks" +msgid "Scrollbars:" +msgstr "Wys rolstaaf merke" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMarks) +#: dialogs/bordersappearanceconfigwidget.ui:152 +#, fuzzy, kde-format +#| msgid "" +#| "If this option is checked, every new view will show marks on the vertical " +#| "scrollbar.

These marks will, for instance, show bookmarks." +msgid "" +"

If this option is checked, every new view will show marks on the vertical " +"scrollbar.

These marks will show bookmarks, for instance.

" +msgstr "" +"As hierdie opsie nagegaan is, elke nuwe besigtig sal vertoon merke op die " +"vertikale rolstaaf.

Hierdie merke sal, byvoorbeeld, wys boekmerke." + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarPreview) +#: dialogs/bordersappearanceconfigwidget.ui:162 +#, fuzzy, kde-format +#| msgid "" +#| "If this option is checked, every new view will show marks on the vertical " +#| "scrollbar.

These marks will, for instance, show bookmarks." +msgid "" +"

If this option is checked, hovering over the vertical scrollbar will show " +"a preview of the text.

" +msgstr "" +"As hierdie opsie nagegaan is, elke nuwe besigtig sal vertoon merke op die " +"vertikale rolstaaf.

Hierdie merke sal, byvoorbeeld, wys boekmerke." + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarPreview) +#: dialogs/bordersappearanceconfigwidget.ui:165 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Show preview when hovering over scrollbar" +msgstr "Druk die huidige dokument." + +#. i18n: ectx: property (text), widget (QLabel, lblShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:172 +#, kde-format +msgid "Scro&llbars visibility:" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:183 dialogs/katedialogs.cpp:755 +#, kde-format +msgid "Always On" +msgstr "Altyd Aan" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:188 +#, kde-format +msgid "Show When Needed" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:193 +#, fuzzy, kde-format +msgid "Always Off" +msgstr "Altyd Aan" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/bordersappearanceconfigwidget.ui:217 +#, fuzzy, kde-format +#| msgid "&Minimal matching" +msgid "Minimap:" +msgstr "Minimale passing" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMiniMap) +#: dialogs/bordersappearanceconfigwidget.ui:224 +#, fuzzy, kde-format +#| msgid "" +#| "If this option is checked, every new view will display line numbers on " +#| "the left hand side." +msgid "" +"If this option is checked, every new view will show a mini map on the " +"vertical scrollbar." +msgstr "" +"As hierdie opsie is nagegaan, elke nuwe besigtig sal vertoon lyn nommers op " +"die links hand kant." + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMiniMap) +#: dialogs/bordersappearanceconfigwidget.ui:227 +#, fuzzy, kde-format +#| msgid "Show &scrollbar marks" +msgid "Show minimap" +msgstr "Wys rolstaaf merke" + +#. i18n: ectx: property (text), widget (QLabel, labelMiniMapWidth) +#: dialogs/bordersappearanceconfigwidget.ui:250 +#, fuzzy, kde-format +#| msgid "&Minimal matching" +msgid "Minim&ap width:" +msgstr "Minimale passing" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMiniMapAll) +#: dialogs/bordersappearanceconfigwidget.ui:263 +#, fuzzy, kde-format +#| msgid "" +#| "If this option is checked, every new view will display line numbers on " +#| "the left hand side." +msgid "" +"If this option is checked, every new view will show a mini map of the whole " +"document on the vertical scrollbar." +msgstr "" +"As hierdie opsie is nagegaan, elke nuwe besigtig sal vertoon lyn nommers op " +"die links hand kant." + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMiniMapAll) +#: dialogs/bordersappearanceconfigwidget.ui:266 +#, fuzzy, kde-format +#| msgid "Save the current document" +msgid "Map the whole document" +msgstr "Stoor die huidige dokument" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbSortBookmarksByCreation) +#: dialogs/bordersappearanceconfigwidget.ui:276 +#, kde-format +msgid "" +"Each new bookmark will be added to the bottom, independently from where it " +"is placed in the document." +msgstr "" +"Elke nuwe boekmerk sal toegevoeg word na die onderkant, onafhanklik van waar " +"dit posisioneer is in die dokument." + +#. i18n: ectx: property (text), widget (QRadioButton, rbSortBookmarksByCreation) +#: dialogs/bordersappearanceconfigwidget.ui:279 +#, kde-format +msgid "By date created" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbSortBookmarksByPosition) +#: dialogs/bordersappearanceconfigwidget.ui:286 +#, kde-format +msgid "The bookmarks will be ordered by the line numbers they are placed at." +msgstr "" +"Die boekmerke sal wees gesorteer deur Die lyn nommers hulle word rangorde na." + +#. i18n: ectx: property (text), widget (QRadioButton, rbSortBookmarksByPosition) +#: dialogs/bordersappearanceconfigwidget.ui:289 +#, fuzzy, kde-format +#| msgid "Show &line numbers" +msgid "By line number" +msgstr "Vertoon lyn nommers" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/bordersappearanceconfigwidget.ui:296 +#, fuzzy, kde-format +#| msgid "Sort Bookmarks Menu" +msgid "Sort bookmarks menu:" +msgstr "Sorteer Boekmerke Kieslys" + +#: dialogs/clipboardhistorydialog.cpp:264 +#, fuzzy, kde-format +#| msgid "Select to Next Line" +msgid "Select text to paste." +msgstr "Kies na Volgende Lyn" + +#: dialogs/clipboardhistorydialog.cpp:296 +#, kde-format +msgid "No entries in clipboard history" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbGeneral) +#. i18n: ectx: property (title), widget (QGroupBox, gbViInputMode) +#: dialogs/completionconfigtab.ui:29 dialogs/katedialogs.cpp:609 +#: dialogs/katedialogs.cpp:743 dialogs/katedialogs.cpp:1026 +#: vimode/config/configwidget.ui:29 +#, kde-format +msgid "General" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoCompletionEnabled) +#: dialogs/completionconfigtab.ui:35 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgid "Enable &auto completion" +msgstr "Woord Klaarmaak Inprop" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoSelectFirstEntry) +#: dialogs/completionconfigtab.ui:42 +#, fuzzy, kde-format +#| msgid "Automatic Completion Popup" +msgid "Auto select &first completion entry" +msgstr "Automatiese Klaarmaak Inprop" + +#. i18n: ectx: property (text), widget (QCheckBox, chkTabCompletion) +#: dialogs/completionconfigtab.ui:49 +#, kde-format +msgid "Cycle through the list of completions using Tab / Shift+Tab" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkEnterCompletion) +#: dialogs/completionconfigtab.ui:56 +#, kde-format +msgid "" +"Pressing enter will insert the text of selected completion item into the " +"editor. If disabled, Tab key or double-click can still be used to trigger " +"completion." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkEnterCompletion) +#: dialogs/completionconfigtab.ui:59 +#, fuzzy, kde-format +#| msgid "Use this to unindent a selected block of text." +msgid "Use Enter key to insert selected completion" +msgstr "Gebruik hierdie na uitkeep 'n gekose blok van teks." + +#. i18n: ectx: property (title), widget (QGroupBox, gbWordCompletion) +#: dialogs/completionconfigtab.ui:69 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgid "A&uto word completion" +msgstr "Woord Klaarmaak Inprop" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/completionconfigtab.ui:83 +#, kde-format +msgid "Minimal word length to complete:" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, removeTail) +#: dialogs/completionconfigtab.ui:111 +#, kde-format +msgid "Remove tail of a previous word when completion item chosen from a list" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, removeTail) +#: dialogs/completionconfigtab.ui:114 +#, fuzzy, kde-format +#| msgid "Re&move trailing spaces" +msgid "Remove tail on complete" +msgstr "Verwyder volgende spasies" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/completionconfigtab.ui:121 +#, kde-format +msgid "" +"Word completion provides suggestions based on the words found in the document" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbKeywordCompletion) +#: dialogs/completionconfigtab.ui:134 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgid "&Keyword completion" +msgstr "Woord Klaarmaak Inprop" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/completionconfigtab.ui:143 +#, kde-format +msgid "" +"Keyword completion provides suggestions based on the keywords which exist in " +"the document's language." +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbShowDoc) +#: dialogs/completionconfigtab.ui:156 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgid "Documentation with completion" +msgstr "Woord Klaarmaak Inprop" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/completionconfigtab.ui:165 +#, kde-format +msgid "" +"Show documentation beside completion box. If disabled, documentation can be " +"shown by pressing Alt key." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/editconfigwidget.ui:22 +#, fuzzy, kde-format +#| msgid "Static Word Wrap" +msgid "Word wrap:" +msgstr "Statiese Woord Oorvloei" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkStaticWordWrap) +#: dialogs/editconfigwidget.ui:29 +#, fuzzy, kde-format +#| msgid "" +#| "Automatically start a new line of text when the current line exceeds the " +#| "length specified by the Wrap words at: option.

This option does " +#| "not wrap existing lines of text - use the Apply Static Word Wrap " +#| "option in the Tools menu for that purpose.

If you want lines to " +#| "be visually wrapped instead, according to the width of the view, " +#| "enable Dynamic Word Wrap in the View Defaults config page." +msgid "" +"

Automatically start a new line of text when the current line exceeds the " +"length specified by the Wrap words at: option.

This option does " +"not wrap existing lines of text - use the Apply Static Word Wrap " +"option in the Tools menu for that purpose.

If you want lines to " +"be visually wrapped instead, according to the width of the view, " +"enable Dynamic Word Wrap in the Appearance config page.

" +msgstr "" +"Outomaties begin 'n nuwe lyn van teks wanneer die die huidige line die " +"lengte spesifiseer oorskry deur die Oorvloei woorde by: opsie." +"

Hierdie opsie oorvloei nie eksisterende lyne van teks - gebruik die " +"Aanwend Statiese Woord Oorvloei opsie in die Gereedskap " +"Kieslys vir daardie doel.

As jy wil dat lyne visueel oorvloei in " +"plaas van, ooreenstemmend met die wydte van die aansig, aktiveer " +"Dinamiese Woord Oorvloei in die Aansig Verstekke konfigureer " +"blad." + +#. i18n: ectx: property (text), widget (QCheckBox, chkStaticWordWrap) +#: dialogs/editconfigwidget.ui:32 +#, kde-format +msgid "Wrap &words at a fixed column" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowStaticWordWrapMarker) +#: dialogs/editconfigwidget.ui:39 +#, fuzzy, kde-format +#| msgid "" +#| "

If this option is checked, a vertical line will be drawn at the word " +#| "wrap column as defined in the Editing properties.

Note " +#| "that the word wrap marker is only drawn if you use a fixed pitch font." +msgid "" +"

If this option is checked, a vertical line will be drawn at the word wrap " +"column as defined in the Editing properties.

" +msgstr "" +"

Indien hierdie opsie nagegaan is, sal 'n vertikale lyn getrek word by die " +"woord oorvloei kolom soos gedefinieerd in die Redigeer " +"eienskappe.

Noteer dat die woord oorvloei merker is slegs geteken indien " +"jy 'n vaste plek skriftipe gebruik." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowStaticWordWrapMarker) +#: dialogs/editconfigwidget.ui:42 +#, kde-format +msgid "&Draw vertical line at the word wrap column" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblWordWrap) +#: dialogs/editconfigwidget.ui:49 +#, fuzzy, kde-format +#| msgid "Wrap words at:" +msgid "Wra&p words at:" +msgstr "Oorvloei woorde na:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbWordWrap) +#: dialogs/editconfigwidget.ui:59 +#, kde-format +msgid "" +"If the Word Wrap option is selected this entry determines the length (in " +"characters) at which the editor will automatically start a new line." +msgstr "" +"As die Woord Oorvloei opsie is gekose hierdie inskrywing bepaal die lengte " +"(in karakters) na wat die redigeerder sal automaties begin 'n nuwe lyn." + +#. i18n: ectx: property (text), widget (QLabel, lblInputMode) +#: dialogs/editconfigwidget.ui:91 +#, fuzzy, kde-format +#| msgid "&Indentation mode:" +msgid "Default input mode:" +msgstr "Inkeping module:" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/editconfigwidget.ui:120 +#, fuzzy, kde-format +#| msgid "Auto &brackets" +msgid "Brackets:" +msgstr "Outo hakkies" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoBrackets) +#: dialogs/editconfigwidget.ui:127 +#, kde-format +msgid "Automatically close brackets when opening bracket is typed" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLabel, lbEncloseSelection) +#: dialogs/editconfigwidget.ui:140 +#, kde-format +msgid "" +"When some text is selected these chars will be added on both its sides in a " +"way \"Auto Bracket\" do" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lbEncloseSelection) +#: dialogs/editconfigwidget.ui:143 +#, fuzzy, kde-format +#| msgid "Character" +msgid "Enclosing characters:" +msgstr "Karakter" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/editconfigwidget.ui:166 +#, kde-format +msgid "Copy and paste:" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkTextDragAndDrop) +#: dialogs/editconfigwidget.ui:173 +#, fuzzy, kde-format +#| msgid "Selected" +msgid "Move selected text when dragged" +msgstr "Gekose" + +#. i18n: ectx: property (text), widget (QCheckBox, chkSmartCopyCut) +#: dialogs/editconfigwidget.ui:180 +#, kde-format +msgid "Copy/cut the current line if invoked without any text selected" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkMousePasteAtCursorPosition) +#: dialogs/editconfigwidget.ui:187 +#, kde-format +msgid "Don't move the text cursor when pasting by mouse" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblClipboardHistoryEntries) +#: dialogs/editconfigwidget.ui:194 +#, kde-format +msgid "Max Clipboard History Entries:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbClipboardHistoryEntries) +#: dialogs/editconfigwidget.ui:204 +#, kde-format +msgid "This determines the number of entries to keep in the clipboard history" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblBracketHelp) +#: dialogs/editconfigwidget.ui:226 +#, kde-format +msgid "" +"When you type these characters while text is selected, they will surround " +"the selected text instead of replacing it." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAccessibility) +#: dialogs/editconfigwidget.ui:252 +#, kde-format +msgid "Enable accessibility notifications" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/editconfigwidget.ui:259 +#, kde-format +msgid "Accessibility:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblFiletype) +#: dialogs/filetypeconfigwidget.ui:14 +#, kde-format +msgid "&Filetype:" +msgstr "Lêertipe:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbFiletypes) +#: dialogs/filetypeconfigwidget.ui:24 +#, fuzzy, kde-format +#| msgid "

Select the marker type you want to change.

" +msgid "Select the filetype you want to change." +msgstr "

Kies die merker tipe wat jy wil verander.

" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, btnNew) +#: dialogs/filetypeconfigwidget.ui:31 +#, kde-format +msgid "Create a new file type." +msgstr "Maak 'n nuwe lêer tipe." + +#. i18n: ectx: property (text), widget (QPushButton, btnNew) +#: dialogs/filetypeconfigwidget.ui:34 +#, fuzzy, kde-format +#| msgid "&New..." +msgid "&New" +msgstr "Nuwe..." + +#. i18n: ectx: property (whatsThis), widget (QPushButton, btnDelete) +#: dialogs/filetypeconfigwidget.ui:41 +#, kde-format +msgid "Delete the current file type." +msgstr "Verwyder die huidige lêer tipe." + +#. i18n: ectx: property (text), widget (QPushButton, btnDelete) +#: dialogs/filetypeconfigwidget.ui:44 syntax/katethemeconfig.cpp:1132 +#, fuzzy, kde-format +msgid "&Delete" +msgstr "Gekose" + +#. i18n: ectx: property (title), widget (QGroupBox, gbProperties) +#: dialogs/filetypeconfigwidget.ui:66 mode/katemodeconfigpage.cpp:272 +#, fuzzy, kde-format +msgid "Properties" +msgstr "Boks Eienskappe" + +#. i18n: ectx: property (text), widget (QLabel, lblName) +#: dialogs/filetypeconfigwidget.ui:72 +#, fuzzy, kde-format +#| msgid "Name:" +msgid "&Name:" +msgstr "Naam:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtName) +#: dialogs/filetypeconfigwidget.ui:82 +#, kde-format +msgid "" +"The name of the filetype will be the text of the corresponding menu item." +msgstr "" +"Die naam van die lêertipe sal die teks van die korresponderende kieslys item " +"wees." + +#. i18n: ectx: property (text), widget (QLabel, lblSection) +#: dialogs/filetypeconfigwidget.ui:89 +#, kde-format +msgid "&Section:" +msgstr "Seksie:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtSection) +#: dialogs/filetypeconfigwidget.ui:99 +#, kde-format +msgid "The section name is used to organize the file types in menus." +msgstr "" +"Die seksie naam is gebruik om die lêer tipes in kieslyste te organiseer." + +#. i18n: ectx: property (text), widget (QLabel, lblVariables) +#: dialogs/filetypeconfigwidget.ui:106 +#, fuzzy, kde-format +msgid "&Variables:" +msgstr "Veranderlikes:" + +#. i18n: ectx: property (whatsThis), widget (VariableLineEdit, edtVariables) +#: dialogs/filetypeconfigwidget.ui:116 +#, fuzzy, kde-format +#| msgid "" +#| "

This string allows you to configure Kate's settings for the files " +#| "selected by this mimetype using Kate variables. You can set almost any " +#| "configuration option, such as highlight, indent-mode, encoding, etc.

For a full list of known variables, see the manual.

" +msgid "" +"

This string allows to configure Kate's settings for the files selected by " +"this mimetype using Kate variables. Almost any configuration option can be " +"set, such as highlight, indent-mode, encoding, etc.

For a full list of " +"known variables, see the manual.

" +msgstr "" +"

Hierdie string laat jou toe om Kate se instellings te konfigureer vir die " +"lêers gekies deur hierdie mimetipe deur gebruik van Kate veranderlikes. Jy " +"kan amper enige konfigurasie opsie instel, soos verlig, inkeep-modus, " +"enkodering, ens.

Vir 'n volledige lys van bekende veranderlikes, " +"gebruik die handleiding.

" + +#. i18n: ectx: property (text), widget (QLabel, lblHl) +#: dialogs/filetypeconfigwidget.ui:123 +#, fuzzy, kde-format +#| msgid "&Highlighting" +msgid "&Highlighting:" +msgstr "Verligting" + +#. i18n: ectx: property (text), widget (QLabel, lblIndenter) +#: dialogs/filetypeconfigwidget.ui:136 +#, fuzzy, kde-format +#| msgid "&Indentation" +msgid "&Indentation mode:" +msgstr "Inkeping" + +#. i18n: ectx: property (text), widget (QLabel, lblExtensions) +#: dialogs/filetypeconfigwidget.ui:149 +#, fuzzy, kde-format +#| msgid "File e&xtensions:" +msgid "File e&xtensions:" +msgstr "Lêer uitbreidings:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtFileExtensions) +#: dialogs/filetypeconfigwidget.ui:159 +#, fuzzy, kde-format +#| msgid "" +#| "The wildcards mask allows you to select files by filename. A typical mask " +#| "uses an asterisk and the file extension, for example *.txt; *.text. The string is a semicolon-separated list of masks." +msgid "" +"The wildcards mask allows to select files by filename. A typical mask uses " +"an asterisk and the file extension, for example *.txt; *.text. " +"The string is a semicolon-separated list of masks." +msgstr "" +"Die wildkaarte masker laat jou toe om lêers te kies deur lêernaam. 'n " +"Tipiese masker gebruik 'n sterretjie en die lêer uitbreiding, byvoorbeeld " +"*.txt; *.text. Die string is 'n semidubbelpunt-geskeide lys van " +"maskers." + +#. i18n: ectx: property (text), widget (QLabel, lblMimeTypes) +#: dialogs/filetypeconfigwidget.ui:166 +#, kde-format +msgid "MIME &types:" +msgstr "Mime tipes:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtMimeTypes) +#: dialogs/filetypeconfigwidget.ui:181 +#, fuzzy, kde-format +#| msgid "" +#| "The mime type mask allows you to select files by mimetype. The string is " +#| "a semicolon-separated list of mimetypes, for example text/plain; " +#| "text/english." +msgid "" +"The mime type mask allows to select files by mimetype. The string is a " +"semicolon-separated list of mimetypes, for example text/plain; text/" +"english." +msgstr "" +"Die mime tipe masker laat jou toe om lêers te kies deur mimetipe. Die string " +"is 'n semidubbelpunt-geskeide lys van mimetipes, byvoorbeeld teks/" +"gewoon; teks/engels." + +#. i18n: ectx: property (whatsThis), widget (QToolButton, btnMimeTypes) +#: dialogs/filetypeconfigwidget.ui:188 +#, kde-format +msgid "Displays a wizard that helps you easily select mimetypes." +msgstr "Vertone 'n assistent wat jou help om maklik mimetipes te kies." + +#. i18n: ectx: property (text), widget (QLabel, lblPriority) +#: dialogs/filetypeconfigwidget.ui:197 +#, fuzzy, kde-format +#| msgid "Prio&rity:" +msgid "P&riority:" +msgstr "Prioriteit:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbPriority) +#: dialogs/filetypeconfigwidget.ui:207 +#, fuzzy, kde-format +#| msgid "" +#| "Sets a priority for this file type. If more than one file type selects " +#| "the same file, the one with the highest priority will be used." +msgid "" +"Sets priority for this file type. If more than one file type selects the " +"same file, the one with the highest priority will be used." +msgstr "" +"Instel 'n prioriteit van hierdie lêer tipe. Indien meer as een lêer tipe " +"kies dieselfde lêer, die een met die hoogste prioriteit sal gebruik word." + +#. i18n: ectx: property (text), widget (QLabel, lblMode) +#: dialogs/indentationconfigwidget.ui:43 +#, fuzzy, kde-format +#| msgid "&Indentation mode:" +msgid "Default indentation mode:" +msgstr "Inkeping module:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbMode) +#: dialogs/indentationconfigwidget.ui:53 +#, kde-format +msgid "" +"This is a list of available indentation modes. The specified indentation " +"mode will be used for all new documents. Be aware that it is also possible " +"to set the indentation mode with document variables, modes or a .kateconfig " +"file." +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbIndentationMode) +#: dialogs/indentationconfigwidget.ui:75 +#, fuzzy, kde-format +#| msgid "Indentation" +msgid "Indent using" +msgstr "Inkeping" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbIndentWidth) +#: dialogs/indentationconfigwidget.ui:81 +#, kde-format +msgid "" +"The indentation width is the number of spaces which is used to indent a " +"line. If the option Insert spaces instead of tabulators in the " +"section Editing is disabled, a Tab character is inserted if " +"the indentation is divisible by the tab width." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentWithSpaces) +#: dialogs/indentationconfigwidget.ui:97 +#, fuzzy, kde-format +#| msgid "&Replace" +msgid "&Spaces" +msgstr "Vervang" + +#. i18n: ectx: property (text), widget (QLabel, lblIndentWidth) +#: dialogs/indentationconfigwidget.ui:104 +#, fuzzy, kde-format +#| msgid "Indentation with Spaces" +msgid "&Indentation width:" +msgstr "Inkeping met Spasies" + +#. i18n: ectx: property (text), widget (QLabel, lblTabWidth) +#: dialogs/indentationconfigwidget.ui:114 +#, fuzzy, kde-format +#| msgid "Tab width:" +msgid "Tab wi&dth:" +msgstr "Oortjie wydte:" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentWithTabs) +#: dialogs/indentationconfigwidget.ui:153 +#, fuzzy, kde-format +#| msgid "Tabulators" +msgid "&Tabulators" +msgstr "Tabelvormers" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentMixed) +#: dialogs/indentationconfigwidget.ui:160 +#, fuzzy, kde-format +#| msgid "Tabulators" +msgid "Tabulators &and Spaces" +msgstr "Tabelvormers" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoDetectIndent) +#: dialogs/indentationconfigwidget.ui:167 +#, fuzzy, kde-format +#| msgid "Automatic Indentation" +msgid "Automatically detect file indentation" +msgstr "Automaties Inkeep" + +#. i18n: ectx: property (title), widget (QGroupBox, gbProperties) +#: dialogs/indentationconfigwidget.ui:177 +#, fuzzy, kde-format +#| msgid "Indentation Rules" +msgid "Indentation Properties" +msgstr "Inkeping Reëls" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkKeepExtraSpaces) +#: dialogs/indentationconfigwidget.ui:183 +#, kde-format +msgid "" +"If this option is disabled, changing the indentation level aligns a line to " +"a multiple of the width specified in Indentation width." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkKeepExtraSpaces) +#: dialogs/indentationconfigwidget.ui:186 +#, fuzzy, kde-format +#| msgid "&Keep extra spaces" +msgid "&Keep extra spaces" +msgstr "Hou addisionele spasies" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkIndentPaste) +#: dialogs/indentationconfigwidget.ui:193 +#, kde-format +msgid "" +"If this option is selected, pasted code from the clipboard is indented. " +"Triggering the undo-action removes the indentation." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkIndentPaste) +#: dialogs/indentationconfigwidget.ui:196 +#, kde-format +msgid "Adjust indentation of code &pasted from the clipboard" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbKeys) +#: dialogs/indentationconfigwidget.ui:206 +#, fuzzy, kde-format +#| msgid "Indentation" +msgid "Indentation Actions" +msgstr "Inkeping" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackspaceUnindents) +#: dialogs/indentationconfigwidget.ui:212 +#, kde-format +msgid "" +"If this option is selected, the Backspace key decreases the " +"indentation level if the cursor is located in the leading blank space of a " +"line." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackspaceUnindents) +#: dialogs/indentationconfigwidget.ui:215 +#, fuzzy, kde-format +#| msgid "&Backspace key indents" +msgid "&Backspace key in leading blank space unindents" +msgstr "Backspace sleutel doen inkeping" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/indentationconfigwidget.ui:225 +#, kde-format +msgid "" +"\n" +"

Tab key action (if no selection exists) Tab " +"to align the current line in the current code block like in Emacs, make " +"Tab a shortcut to the action Format Indentation." +"\">More ...

" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabAdvances) +#: dialogs/indentationconfigwidget.ui:276 +#, kde-format +msgid "" +"If this option is selected, the Tab key always inserts white space so " +"that the next tab position is reached. If the option Insert spaces " +"instead of tabulators in the section Editing is enabled, spaces " +"are inserted; otherwise, a single tabulator is inserted." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabAdvances) +#: dialogs/indentationconfigwidget.ui:279 +#, kde-format +msgid "Always advance to the &next tab position" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabIndents) +#: dialogs/indentationconfigwidget.ui:286 +#, kde-format +msgid "" +"If this option is selected, the Tab key always indents the current " +"line by the number of character positions specified in Indentation width." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabIndents) +#: dialogs/indentationconfigwidget.ui:289 +#, kde-format +msgid "Always increase indentation &level" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabSmart) +#: dialogs/indentationconfigwidget.ui:296 +#, kde-format +msgid "" +"If this option is selected, the Tab key either indents the current " +"line or advances to the next tab position.

If the insertion point is at " +"or before the first non-space character in the line, or if there is a " +"selection, the current line is indented by the number of character positions " +"specified in Indentation width.

If the insertion point is located " +"after the first non-space character in the line and there is no selection, " +"white space is inserted so that the next tab position is reached: if the " +"option Insert spaces instead of tabulators in the section Editing is enabled, spaces are inserted; otherwise, a single tabulator is " +"inserted." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabSmart) +#: dialogs/indentationconfigwidget.ui:299 +#, kde-format +msgid "Increase indentation level if in l&eading blank space" +msgstr "" + +#: dialogs/katedialogs.cpp:185 dialogs/katedialogs.cpp:187 +#, fuzzy, kde-format +#| msgid "Character" +msgid "%v character" +msgid_plural "%v characters" +msgstr[0] "Karakter" +msgstr[1] "Karakter" + +#: dialogs/katedialogs.cpp:211 +#, kde-format +msgid "Indentation" +msgstr "Inkeping" + +#: dialogs/katedialogs.cpp:295 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgid "Auto Completion" +msgstr "Woord Klaarmaak Inprop" + +#: dialogs/katedialogs.cpp:362 +#, kde-format +msgid "Spellcheck" +msgstr "Spelltoetser" + +#: dialogs/katedialogs.cpp:410 dialogs/katedialogs.cpp:417 +#, fuzzy, kde-format +#| msgid "Alert" +msgid "Alt" +msgstr "Opmerksaam" + +#: dialogs/katedialogs.cpp:411 dialogs/katedialogs.cpp:419 +#, kde-format +msgid "Ctrl" +msgstr "" + +#: dialogs/katedialogs.cpp:412 +#, kde-format +msgid "Meta" +msgstr "" + +#: dialogs/katedialogs.cpp:413 dialogs/katedialogs.cpp:421 +#, kde-format +msgid "Ctrl + Alt" +msgstr "" + +#: dialogs/katedialogs.cpp:414 +#, kde-format +msgid "Meta + Alt" +msgstr "" + +#: dialogs/katedialogs.cpp:415 +#, kde-format +msgid "Ctrl + Meta" +msgstr "" + +#: dialogs/katedialogs.cpp:418 +#, fuzzy, kde-format +#| msgid "Comment" +msgid "Cmd" +msgstr "Kommentaar" + +#: dialogs/katedialogs.cpp:420 +#, kde-format +msgid "Cmd + Alt" +msgstr "" + +#: dialogs/katedialogs.cpp:422 +#, kde-format +msgid "Cmd + Ctrl" +msgstr "" + +#: dialogs/katedialogs.cpp:480 +#, fuzzy, kde-format +#| msgctxt "Language Section" +#| msgid "Configuration" +msgid "Text Navigation" +msgstr "Konfigurasie" + +#: dialogs/katedialogs.cpp:582 +#, fuzzy, kde-format +#| msgid "Character" +msgctxt "Wrap words at (value is at 20 or larger)" +msgid "%v character" +msgid_plural "%v characters" +msgstr[0] "Karakter" +msgstr[1] "Karakter" + +#: dialogs/katedialogs.cpp:587 +#, kde-format +msgid "Feature is not active" +msgstr "" + +#: dialogs/katedialogs.cpp:589 +#, fuzzy, kde-format +#| msgid "Disabled Breakpoint" +msgid "Disable Feature" +msgstr "Gebreklike Breekpunt" + +#: dialogs/katedialogs.cpp:591 +#, kde-format +msgid "May be handy with Markdown" +msgstr "" + +#: dialogs/katedialogs.cpp:593 +#, kde-format +msgid "Mirror characters, similar but not exactly like auto brackets" +msgstr "" + +#: dialogs/katedialogs.cpp:595 +#, fuzzy, kde-format +#| msgid "Character" +msgid "Non letter character" +msgstr "Karakter" + +#: dialogs/katedialogs.cpp:712 +#, kde-format +msgid "Editing" +msgstr "Redigering" + +#: dialogs/katedialogs.cpp:717 +#, kde-format +msgid "Editing Options" +msgstr "Redigering Opsies" + +#: dialogs/katedialogs.cpp:751 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Stata" +msgid "Statusbar" +msgstr "Stata" + +#: dialogs/katedialogs.cpp:753 +#, fuzzy, kde-format +msgid "Off" +msgstr "Af" + +#: dialogs/katedialogs.cpp:754 +#, kde-format +msgid "Follow Line Numbers" +msgstr "Volg Lyn nommers" + +#: dialogs/katedialogs.cpp:945 dialogs/katedialogs.cpp:950 +#, fuzzy, kde-format +msgid "Appearance" +msgstr "Boonste kas" + +#: dialogs/katedialogs.cpp:986 +#, kde-format +msgid "" +"%1 backs up unsaved files to \"swap files.\" Swap files allow %1 to recover " +"your work in the case of a system crash. Disabling swap files may cause data " +"loss in case of a system crash." +msgstr "" + +#: dialogs/katedialogs.cpp:1027 +#, kde-format +msgid "Advanced" +msgstr "" + +#: dialogs/katedialogs.cpp:1092 +#, kde-format +msgid "" +"You did not provide a backup suffix or prefix. Using default suffix: '~'" +msgstr "" +"Jy het nie 'n terugvalkopie voorvoegsel of agtervoegsel gegee nie. Gebruik " +"verstek agtervoegsel: '~'" + +#: dialogs/katedialogs.cpp:1092 +#, kde-format +msgid "No Backup Suffix or Prefix" +msgstr "Geen terugvalkopie Voorvoegstel of agtervoegsel" + +#: dialogs/katedialogs.cpp:1227 +#, kde-format +msgid "Open/Save" +msgstr "Open/Stoor" + +#: dialogs/katedialogs.cpp:1232 +#, kde-format +msgid "File Opening & Saving" +msgstr "Lêer oopmaak en Stoor" + +#: dialogs/katedialogs.cpp:1255 +#, kde-format +msgid "&Line:" +msgstr "" + +#: dialogs/katedialogs.cpp:1256 +#, kde-format +msgid "Go to line number from clipboard" +msgstr "" + +#: dialogs/katedialogs.cpp:1267 +#, kde-format +msgid "Go to" +msgstr "" + +#: dialogs/katedialogs.cpp:1347 +#, kde-format +msgid "No valid line number found in clipboard" +msgstr "" + +#: dialogs/katedialogs.cpp:1411 +#, fuzzy, kde-format +#| msgid "&Section:" +msgid "Dictionary:" +msgstr "Seksie:" + +#: dialogs/katedialogs.cpp:1463 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgid "Enable Auto Reload" +msgstr "Woord Klaarmaak Inprop" + +#: dialogs/katedialogs.cpp:1466 +#, kde-format +msgid "" +"Reloads and will automatically reload without warning about disk changes " +"from now until you close either the tab or window." +msgstr "" + +#: dialogs/katedialogs.cpp:1471 +#, fuzzy, kde-format +#| msgid "&View Difference" +msgid "View &Difference" +msgstr "Vertoon Verskil" + +#: dialogs/katedialogs.cpp:1473 +#, kde-format +msgid "Shows a diff of the changes." +msgstr "" + +#: dialogs/katedialogs.cpp:1478 +#, fuzzy, kde-format +#| msgid "Reloa&d" +msgid "&Reload" +msgstr "Herlaai" + +#: dialogs/katedialogs.cpp:1480 +#, fuzzy, kde-format +#| msgid "" +#| "Reload the file from disk. If you have unsaved changes, they will be lost." +msgid "Reloads the file from disk. Unsaved changes will be lost." +msgstr "" +"Herlaai die lêer van skyf. As jy nie die veranderinge gestoor het nie, sal " +"hulle weg wees." + +#: dialogs/katedialogs.cpp:1484 +#, fuzzy, kde-format +#| msgid "&Reload File" +msgctxt "@action:button closes the opened file" +msgid "&Close File" +msgstr "Herlaai Lêer" + +#: dialogs/katedialogs.cpp:1486 +#, kde-format +msgid "Closes the file, discarding its content." +msgstr "" + +#: dialogs/katedialogs.cpp:1490 +#, fuzzy, kde-format +#| msgid "&Save File As..." +msgctxt "@action" +msgid "&Save As…" +msgstr "Stoor Lêer as..." + +#: dialogs/katedialogs.cpp:1492 +#, kde-format +msgid "Lets you select a location and save the file again." +msgstr "Laat you kies 'n area en stoor die lêer weer." + +#. i18n: ectx: property (text), widget (QPushButton, m_skipBtn) +#: dialogs/katedialogs.cpp:1497 spellcheck/spellcheckbar.ui:143 +#, kde-format +msgid "&Ignore" +msgstr "Ignoreer" + +#: dialogs/katedialogs.cpp:1498 +#, fuzzy, kde-format +#| msgid "Ignore the changes. You will not be prompted again." +msgid "Ignores the changes on disk without any action." +msgstr "Ignoreer die veranderings. Jy sal nie weer gepor word nie." + +#: dialogs/katedialogs.cpp:1567 swapfile/kateswapdiffcreator.cpp:131 +#, kde-format +msgid "" +"The diff command failed. Please make sure that diff(1) is installed and in " +"your PATH." +msgstr "" +"Die verskil opdrag het gevaal. Maak asseblief seker dat verskil(1) is " +"installeer en in jou PATH." + +#: dialogs/katedialogs.cpp:1569 swapfile/kateswapdiffcreator.cpp:89 +#: swapfile/kateswapdiffcreator.cpp:99 swapfile/kateswapdiffcreator.cpp:133 +#, kde-format +msgid "Error Creating Diff" +msgstr "Fout by maak van Verskil" + +#: dialogs/katedialogs.cpp:1576 swapfile/kateswapdiffcreator.cpp:140 +#, kde-format +msgid "The files are identical." +msgstr "" + +#: dialogs/katedialogs.cpp:1576 swapfile/kateswapdiffcreator.cpp:140 +#, kde-format +msgid "Diff Output" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbCursorMovement) +#: dialogs/navigationconfigwidget.ui:29 +#, kde-format +msgid "Text Cursor Movement" +msgstr "Teks Plekaanwyser Beweging" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkSmartHome) +#: dialogs/navigationconfigwidget.ui:35 +#, fuzzy, kde-format +msgid "" +"When selected, pressing the home key will cause the cursor to skip " +"whitespace and go to the start of a line's text. The same applies for the " +"end key." +msgstr "" +"As gekies, druk die huis sleutel sal veroorsaak dat die plekwyser die " +"witspasies verbygaan en na die begin van 'n lyn se teks gaan." + +#. i18n: ectx: property (text), widget (QCheckBox, chkSmartHome) +#: dialogs/navigationconfigwidget.ui:38 +#, fuzzy, kde-format +msgid "Smart ho&me and smart end" +msgstr "Luukse huis" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkPagingMovesCursor) +#: dialogs/navigationconfigwidget.ui:45 +#, kde-format +msgid "" +"Selects whether the PageUp and PageDown keys should alter the vertical " +"position of the cursor relative to the top of the view." +msgstr "" +"Kies of die BladsyOp en BladsyAf sleutels moet verander die vertikale " +"posisie van die plekwyser relatief tot die bokant van die aansig." + +#. i18n: ectx: property (text), widget (QCheckBox, chkPagingMovesCursor) +#: dialogs/navigationconfigwidget.ui:48 +#, kde-format +msgid "&PageUp/PageDown moves cursor" +msgstr "BladOp/BladAf beweeg plekwyser" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkCamelCursor) +#: dialogs/navigationconfigwidget.ui:55 +#, kde-format +msgid "" +"Selects whether cursor stops at camel case humps and underscores within a " +"word." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkCamelCursor) +#: dialogs/navigationconfigwidget.ui:58 +#, kde-format +msgid "" +"Stop at 'camelCase' and 'snake_case' subwords when moving the cursor by word" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:79 +#, fuzzy, kde-format +#| msgid "Autocenter cursor (lines):" +msgid "&Autocenter cursor:" +msgstr "Outosentrum plekwyser (lyne):" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:89 +#, kde-format +msgid "" +"Sets the number of lines to maintain visible above and below the cursor when " +"possible." +msgstr "" +"Instel die aantal lyne om sigbaar te bly bo en onder die plekwyser indien " +"moontlik." + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, spbSwapFileSync) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:92 dialogs/opensaveconfigadvwidget.ui:120 +#: dialogs/opensaveconfigadvwidget.ui:168 +#, kde-format +msgid "Disabled" +msgstr "Deaktiveer" + +#. i18n: ectx: property (suffix), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:95 +#, fuzzy, kde-format +msgid " lines" +msgstr "Onderstreep" + +#. i18n: ectx: property (title), widget (QGroupBox, cbNavigationMisc) +#: dialogs/navigationconfigwidget.ui:120 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Cisco" +msgid "Misc" +msgstr "Cisco" + +#. i18n: ectx: property (text), widget (QLabel, lblTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:128 +#, fuzzy, kde-format +#| msgid "Selection Mode" +msgid "Text selection mode:" +msgstr "Kiesing Module" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:139 inputmode/katenormalinputmode.cpp:64 +#: mode/katemodemanager.cpp:162 +#, fuzzy, kde-format +#| msgid "Normal" +msgid "Normal" +msgstr "Normale" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:144 +#, fuzzy, kde-format +#| msgid "&Persistent" +msgid "Persistent" +msgstr "Aanhoudend" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollPastEnd) +#: dialogs/navigationconfigwidget.ui:167 +#, kde-format +msgid "Allow scrolling past the end of the document" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackspaceRemoveComposed) +#: dialogs/navigationconfigwidget.ui:174 +#, kde-format +msgid "" +"When selected, composed characters are removed with their diacritics instead " +"of only removing the base character. This is useful for Indic locales." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackspaceRemoveComposed) +#: dialogs/navigationconfigwidget.ui:177 +#, kde-format +msgid "Backspace key removes character’s base with its diacritics" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbCycleBookmarks) +#: dialogs/navigationconfigwidget.ui:184 +#, fuzzy, kde-format +#| msgid "Go to the previous bookmark." +msgid "Allow to cycle through bookmarks" +msgstr "Gaan na die vorige boekmerk." + +#. i18n: ectx: property (title), widget (QGroupBox, gbMulticursor) +#: dialogs/navigationconfigwidget.ui:194 +#, fuzzy, kde-format +#| msgid "Wrap c&ursor" +msgid "Multicursor" +msgstr "Oorvloei plekaanduier" + +#. i18n: ectx: property (text), widget (QLabel, lblMulticursormodifiers) +#: dialogs/navigationconfigwidget.ui:200 +#, kde-format +msgid "Multiple Cursor Modifiers" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoReloadVersionControl) +#: dialogs/opensaveconfigadvwidget.ui:34 +#, kde-format +msgid "Auto reload files in version control" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoReloadOnExternalChanges) +#: dialogs/opensaveconfigadvwidget.ui:41 +#, kde-format +msgid "Auto reload files on external changes" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/opensaveconfigadvwidget.ui:48 +#, kde-format +msgid "Write a backup file on save for:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackupLocalFiles) +#: dialogs/opensaveconfigadvwidget.ui:55 +#, fuzzy, kde-format +#| msgid "Check this if you want backups of local files when saving" +msgid "" +"If this option is enabled, backups for local files will be created when " +"saving." +msgstr "" +"Kontroleur hierdie as jy terugvalkopië van lokale lêers wil hê by stoor." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackupLocalFiles) +#: dialogs/opensaveconfigadvwidget.ui:58 +#, fuzzy, kde-format +#| msgid "&Remote files" +msgid "&Local files" +msgstr "Afgeleë lêers" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackupRemoteFiles) +#: dialogs/opensaveconfigadvwidget.ui:65 +#, fuzzy, kde-format +#| msgid "Check this if you want backups of remote files when saving" +msgid "" +"If this option is enabled, backups for remote files will be created when " +"saving." +msgstr "" +"Kontroleur hierdie as jy terugvalkopië van afgeleë lêers wil hê by stoor. " + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackupRemoteFiles) +#: dialogs/opensaveconfigadvwidget.ui:68 +#, kde-format +msgid "&Remote files" +msgstr "Afgeleë lêers" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/opensaveconfigadvwidget.ui:75 +#, kde-format +msgid "Prefix for backup files:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtBackupPrefix) +#: dialogs/opensaveconfigadvwidget.ui:85 +#, fuzzy, kde-format +#| msgid "Enter the prefix to prepend to the backup file names" +msgid "Enter the prefix to prepend to the backup file names." +msgstr "" +"Invoer die voorvoegstel om voor te berei na die terugvalkopie lêer name" + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/opensaveconfigadvwidget.ui:92 +#, kde-format +msgid "Suffix for backup files:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtBackupSuffix) +#: dialogs/opensaveconfigadvwidget.ui:102 +#, fuzzy, kde-format +#| msgid "Enter the suffix to add to the backup file names" +msgid "Enter the suffix to append to the backup file names." +msgstr "Invoer die agtervoegstel om toe te voeg na die terugvalkopie lêer name" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:109 +#, fuzzy, kde-format +#| msgid "New Filetype" +msgid "Swap file mode:" +msgstr "Nuwe Lêertipe" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:125 +#, kde-format +msgid "Enabled, Store In Default Directory" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:130 +#, kde-format +msgid "Enabled, Store In Custom Directory" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapDirectory) +#: dialogs/opensaveconfigadvwidget.ui:138 +#, fuzzy, kde-format +#| msgid "New Filetype" +msgid "Store swap files in:" +msgstr "Nuwe Lêertipe" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapFileSync) +#: dialogs/opensaveconfigadvwidget.ui:158 +#, fuzzy, kde-format +#| msgid "New Filetype" +msgid "Save swap files every:" +msgstr "Nuwe Lêertipe" + +#. i18n: ectx: property (suffix), widget (QSpinBox, spbSwapFileSync) +#: dialogs/opensaveconfigadvwidget.ui:171 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Bash" +msgid "s" +msgstr "Bash" + +#. i18n: ectx: property (text), widget (QLabel, lblExplanatory) +#: dialogs/opensaveconfigadvwidget.ui:196 +#, kde-format +msgid "" +"This string is located in katedialogs.cpp in KateSaveConfigTab's constructor." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkEditorConfig) +#: dialogs/opensaveconfigadvwidget.ui:209 +#, fuzzy, kde-format +#| msgid "Do not use config file" +msgid "Honor settings in .editorconfig file" +msgstr "Gebruik nie konfigureerde Lêer" + +#. i18n: ectx: property (text), widget (QCheckBox, chkUseFirstLineAsDocName) +#: dialogs/opensaveconfigadvwidget.ui:229 +#, fuzzy, kde-format +msgid "Use first line of untitled documents for document name" +msgstr "Druk die huidige dokument." + +#. i18n: ectx: property (title), widget (QGroupBox, gbFileFormat) +#: dialogs/opensaveconfigwidget.ui:29 +#, kde-format +msgid "File Format" +msgstr "Lêer Formaat" + +#. i18n: ectx: property (text), widget (QLabel, lblEncoding) +#: dialogs/opensaveconfigwidget.ui:40 +#, kde-format +msgid "&Encoding:" +msgstr "Enkodering:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncoding) +#: dialogs/opensaveconfigwidget.ui:50 +#, kde-format +msgid "" +"This defines the standard encoding to use to open/save files, if not changed " +"in the open/save dialog or by using a command line option." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblEncodingDetection) +#: dialogs/opensaveconfigwidget.ui:57 +#, fuzzy, kde-format +#| msgid "&Encoding:" +msgid "&Encoding detection:" +msgstr "Enkodering:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncodingDetection) +#: dialogs/opensaveconfigwidget.ui:67 +#, kde-format +msgid "" +"if neither the encoding chosen as standard above, nor the encoding specified " +"in the open/save dialog, nor the encoding specified on command line match " +"the content of the file, this detection will be run." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblEncodingDetection2) +#: dialogs/opensaveconfigwidget.ui:74 +#, fuzzy, kde-format +#| msgid "&Encoding:" +msgid "&Fallback encoding:" +msgstr "Enkodering:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncodingFallback) +#: dialogs/opensaveconfigwidget.ui:84 +#, kde-format +msgid "" +"This defines the fallback encoding to try for opening files if neither the " +"encoding chosen as standard above, nor the encoding specified in the open/" +"save dialog, nor the encoding specified on command line match the content of " +"the file. Before this is used, an attempt will be made to determine the " +"encoding to use by looking for a byte order mark at start of file: if one is " +"found, the right Unicode encoding will be chosen; otherwise encoding " +"detection will run, if both fail the fallback encoding will be tried." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblEOL) +#: dialogs/opensaveconfigwidget.ui:91 +#, fuzzy, kde-format +#| msgid "End &of line:" +msgid "E&nd of line:" +msgstr "Einde van lyn:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:102 +#, kde-format +msgid "UNIX" +msgstr "UNIX" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:107 +#, kde-format +msgid "DOS/Windows" +msgstr "DOS/Windows" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:112 +#, kde-format +msgid "Macintosh" +msgstr "Macintosh" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkDetectEOL) +#: dialogs/opensaveconfigwidget.ui:122 +#, fuzzy, kde-format +#| msgid "" +#| "Check this if you want the editor to autodetect the end of line type.The " +#| "first found end of line type will be used for the whole file." +msgid "" +"If this option is enabled the editor will autodetect the end of line type. " +"The first found end of line type will be used for the whole file." +msgstr "" +"Kontroleur hierdie as jy wil dat die redigeerder outomaties die einde van " +"die lyn tipe opspoor. Die eerste gevinde einde van lyn tipe sal gebruik word " +"vir die hele lêer." + +#. i18n: ectx: property (text), widget (QCheckBox, chkDetectEOL) +#: dialogs/opensaveconfigwidget.ui:125 +#, fuzzy, kde-format +#| msgid "&Automatic end of line detection" +msgid "A&utomatic end of line detection" +msgstr "Automaties einde van lyn opsporing" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkEnableBOM) +#: dialogs/opensaveconfigwidget.ui:132 +#, kde-format +msgid "" +"The byte order mark is a special sequence at the beginning of Unicode " +"encoded documents. It helps editors to open text documents with the correct " +"Unicode encoding. The byte order mark is not visible in the displayed " +"document." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkEnableBOM) +#: dialogs/opensaveconfigwidget.ui:135 +#, kde-format +msgid "Enable byte order mark (BOM)" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/opensaveconfigwidget.ui:142 +#, kde-format +msgid "Line length limit:" +msgstr "" + +#. i18n: ectx: property (specialValueText), widget (QSpinBox, lineLengthLimit) +#: dialogs/opensaveconfigwidget.ui:152 +#, fuzzy, kde-format +msgid "Unlimited" +msgstr "Onbeperk" + +#. i18n: ectx: property (title), widget (QGroupBox, gbCleanups) +#: dialogs/opensaveconfigwidget.ui:168 +#, fuzzy, kde-format +#| msgid "Automatic Cleanups on Load/Save" +msgid "Automatic Cleanups on Save" +msgstr "Outomaties Skoonmaak van Laai/Stoor" + +#. i18n: ectx: property (whatsThis), widget (QLabel, lblRemoveTrailingSpaces) +#. i18n: ectx: property (whatsThis), widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:176 dialogs/opensaveconfigwidget.ui:189 +#, kde-format +msgid "" +"Depending on the choice, trailing spaces are removed when saving a document, " +"either in the entire document or only of modified lines." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:179 +#, fuzzy, kde-format +#| msgid "Re&move trailing spaces" +msgid "Re&move trailing spaces:" +msgstr "Verwyder volgende spasies" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, spbAutoSaveInterval) +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/opensaveconfigwidget.ui:193 dialogs/opensaveconfigwidget.ui:270 +#: dialogs/textareaappearanceconfigwidget.ui:104 +#, kde-format +msgid "Never" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:198 +#, fuzzy, kde-format +#| msgid "Scroll Line Up" +msgid "On Modified Lines" +msgstr "Rol Lyn Begin" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:203 +#, fuzzy, kde-format +#| msgid "&Word Wrap Document" +msgid "In Entire Document" +msgstr "Woord Oorvloei Dokument" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkNewLineAtEof) +#: dialogs/opensaveconfigwidget.ui:226 +#, kde-format +msgid "" +"On save, a line break is appended to the document if not already present. " +"The line break is visible after reloading the file." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkNewLineAtEof) +#: dialogs/opensaveconfigwidget.ui:229 +#, kde-format +msgid "Append newline at end of file on save" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbAutoSave) +#: dialogs/opensaveconfigwidget.ui:239 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgid "Enable Auto Save (local files only)" +msgstr "Woord Klaarmaak Inprop" + +#. i18n: ectx: property (text), widget (QCheckBox, cbAutoSaveOnFocus) +#: dialogs/opensaveconfigwidget.ui:254 +#, kde-format +msgid "Auto save document when the active document is losing focus" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/opensaveconfigwidget.ui:263 +#, kde-format +msgid "Auto save interval:" +msgstr "" + +#. i18n: ectx: property (suffix), widget (QSpinBox, spbAutoSaveInterval) +#: dialogs/opensaveconfigwidget.ui:273 +#, kde-format +msgid " seconds" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowHighlightingMode) +#: dialogs/statusbarconfigwidget.ui:19 +#, fuzzy, kde-format +#| msgid "Kate Syntax Highlighting Parser" +msgid "Show highlighting mode" +msgstr "Kate Sintaks verligting ondersteun" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowInputMode) +#: dialogs/statusbarconfigwidget.ui:26 +#, fuzzy, kde-format +#| msgid "Show &icon border" +msgid "Show input mode" +msgstr "Vertoon ikoon grens" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowActiveDictionary) +#: dialogs/statusbarconfigwidget.ui:33 +#, fuzzy, kde-format +msgid "Show active dictionary" +msgstr "Konfigureer Redigeerder..." + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowTabSetting) +#: dialogs/statusbarconfigwidget.ui:40 +#, fuzzy, kde-format +#| msgid "&Show tabulators" +msgid "Show tab setting" +msgstr "Vertoon tabelvormers" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowLineColumn) +#: dialogs/statusbarconfigwidget.ui:47 +#, fuzzy, kde-format +#| msgid "Show &Line Numbers" +msgid "Show line column" +msgstr "Vertoon Lyn Nommers" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowEncoding) +#: dialogs/statusbarconfigwidget.ui:54 +#, fuzzy, kde-format +#| msgid "E&ncoding" +msgid "Show File Encoding" +msgstr "Enkodering" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowEOL) +#: dialogs/statusbarconfigwidget.ui:61 +#, kde-format +msgid "Show Line Ending Type" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/textareaappearanceconfigwidget.ui:28 +#, fuzzy, kde-format +#| msgid "Plugins" +msgid "Editor font:" +msgstr "Inproppe" + +#. i18n: ectx: property (text), widget (QLabel, lblLineHeight) +#: dialogs/textareaappearanceconfigwidget.ui:48 +#, kde-format +msgid "&Line Height Multiplier:" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QDoubleSpinBox, spbLineHeightMultiplier) +#: dialogs/textareaappearanceconfigwidget.ui:58 +#, kde-format +msgid "" +"This value will be multiplied with the font's default line height. A value " +"of 1.0 means that the default height will be used." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/textareaappearanceconfigwidget.ui:93 +#, fuzzy, kde-format +#| msgid "&Ignore Changes" +msgid "Show whitespace indicators:" +msgstr "Ignoreer Veranderinge" + +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/textareaappearanceconfigwidget.ui:109 +#, fuzzy, kde-format +#| msgid "Select to End of Line" +msgid "At the end of a line" +msgstr "Kies na Einde van Lyn" + +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/textareaappearanceconfigwidget.ui:114 +#, fuzzy, kde-format +msgid "Always" +msgstr "Altyd Aan" + +#. i18n: ectx: property (text), widget (QLabel, lbMarkerDescription) +#: dialogs/textareaappearanceconfigwidget.ui:122 +#, fuzzy, kde-format +#| msgid "Highlighting" +msgid "Whitespace indicator si&ze:" +msgstr "Verligting" + +#. i18n: ectx: property (whatsThis), widget (QSlider, sliSetMarkerSize) +#: dialogs/textareaappearanceconfigwidget.ui:138 +#, kde-format +msgid "Size of the visible highlight marker." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/textareaappearanceconfigwidget.ui:166 +#, fuzzy, kde-format +#| msgid "&Show tabulators" +msgid "Show &tab indicators:" +msgstr "Vertoon tabelvormers" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowTabs) +#: dialogs/textareaappearanceconfigwidget.ui:176 +#, kde-format +msgid "" +"The editor will display a symbol to indicate the presence of a tab in the " +"text." +msgstr "" +"Die redigeerder sal vertoon 'n simbool na aandui Die voorkoms van 'n oortjie " +"in Die teks." + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/textareaappearanceconfigwidget.ui:202 +#, fuzzy, kde-format +#| msgid "Bracket highlight:" +msgid "Bracket matching:" +msgstr "Hakkie verlig:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowWholeBracketExpression) +#: dialogs/textareaappearanceconfigwidget.ui:209 +#, kde-format +msgid "" +"If this is enabled, the range between the selected matching brackets will be " +"highlighted." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowWholeBracketExpression) +#: dialogs/textareaappearanceconfigwidget.ui:212 +#, kde-format +msgid "Highlight range between selected brackets" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:219 +#, kde-format +msgid "Show the matching open bracket and lines adjacent to it for context" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:222 +#, kde-format +msgid "" +"If this is enabled, a preview of the lines near a matching open bracket is " +"shown. This can help in quickly determining the context of a closing " +"bracket, especially in long function/class declarations and deeply nested if " +"blocks" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:225 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Show preview of matching open bracket" +msgstr "Druk die huidige dokument." + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:232 +#, fuzzy, kde-format +#| msgid "Select to Matching Bracket" +msgid "Flash matching brackets" +msgstr "Kies na Ooreenstemmende Hakkie" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:235 +#, kde-format +msgid "" +"If this is enabled, matching brackets are animated for better visibility." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:238 +#, kde-format +msgid "Flash matching bracket when cursor moves to other bracket in pair" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/textareaappearanceconfigwidget.ui:261 +#, kde-format +msgid "Counts:" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowWordCount) +#: dialogs/textareaappearanceconfigwidget.ui:268 +#, kde-format +msgid "Show/hide word count in status bar" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowWordCount) +#: dialogs/textareaappearanceconfigwidget.ui:271 view/katestatusbar.cpp:258 +#, kde-format +msgid "Show word count" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowLineCount) +#: dialogs/textareaappearanceconfigwidget.ui:278 +#, kde-format +msgid "Show/hide line count in status bar" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowLineCount) +#: dialogs/textareaappearanceconfigwidget.ui:281 view/katestatusbar.cpp:255 +#, fuzzy, kde-format +#| msgid "Show &Line Numbers" +msgid "Show line count" +msgstr "Vertoon Lyn Nommers" + +#. i18n: ectx: property (text), widget (QLabel, label_25) +#: dialogs/textareaappearanceconfigwidget.ui:304 +#, fuzzy, kde-format +#| msgid "Go to Line" +msgid "Fold first line:" +msgstr "Gaan na Lyn" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkFoldFirstLine) +#: dialogs/textareaappearanceconfigwidget.ui:317 +#, kde-format +msgid "" +"When this setting is enabled, the editor view automatically folds\n" +"comment blocks that start on the first line of the document. This is\n" +"helpful to hide license headers which are commonly placed at the\n" +"beginning of a file." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbxWordWrap) +#: dialogs/textareaappearanceconfigwidget.ui:337 +#, fuzzy, kde-format +#| msgid "&Dynamic Word Wrap" +msgid "Dynamic Word Wrap:" +msgstr "Dinamiese Woord Oorvloei" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDynWrapAtStaticMarker) +#: dialogs/textareaappearanceconfigwidget.ui:344 +#, fuzzy, kde-format +#| msgid "Hide Static &Word Wrap Marker" +msgid "Wrap dynamically at static word wrap marker" +msgstr "Wegsteek Statiese Woord Oorvloei Merker" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDynWrapAnywhere) +#: dialogs/textareaappearanceconfigwidget.ui:351 +#, kde-format +msgid "Disregard word boundaries for dynamic wrapping" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblDynamicWordWrapIndicators) +#: dialogs/textareaappearanceconfigwidget.ui:358 +#, fuzzy, kde-format +#| msgid "Dynamic Word Wrap Indicators" +msgid "D&ynamic word wrap indicators:" +msgstr "Dinamiese Woord Oorvloei Inkepings" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbDynamicWordWrapIndicator) +#: dialogs/textareaappearanceconfigwidget.ui:368 +#, fuzzy, kde-format +#| msgid "Choose when the Dynamic Word Wrap Indicators should be displayed" +msgid "Choose when the Dynamic Word Wrap Indicators should be displayed." +msgstr "Kies wanneer die Dinamiese Woord Oorvloei Indikators vertoon moet word" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/textareaappearanceconfigwidget.ui:391 +#, fuzzy, kde-format +#| msgid "Indentation Rules" +msgid "I&ndent wrapped lines:" +msgstr "Inkeping Reëls" + +#. i18n: ectx: property (text), widget (QLabel, lblDynamicWordWrapIndicators_2) +#: dialogs/textareaappearanceconfigwidget.ui:408 +#, fuzzy, kde-format +#| msgid "Indentation with Spaces" +msgid "&Don't indent lines wider than:" +msgstr "Inkeping met Spasies" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbDynamicWordWrapDepth) +#: dialogs/textareaappearanceconfigwidget.ui:424 +#, fuzzy, no-c-format, kde-format +#| msgid "" +#| "

Enables the start of dynamically wrapped lines to be aligned " +#| "vertically to the indentation level of the first line. This can help to " +#| "make code and markup more readable.

Additionally, this allows you " +#| "to set a maximum width of the screen, as a percentage, after which " +#| "dynamically wrapped lines will no longer be vertically aligned. For " +#| "example, at 50%, lines whose indentation levels are deeper than 50% of " +#| "the width of the screen will not have vertical alignment applied to " +#| "subsequent wrapped lines.

" +msgid "" +"

Enables the start of dynamically wrapped lines to be aligned vertically " +"to the indentation level of the first line. This can help to make code and " +"markup more readable.

Additionally, this allows you to set a maximum " +"width of the screen, as a percentage, after which dynamically wrapped lines " +"will no longer be vertically aligned. For example, at 50%, lines whose " +"indentation levels are deeper than 50% of the width of the screen will not " +"have vertical alignment applied to subsequent wrapped lines.

" +msgstr "" +"

Aktiveer die begin van dinamiese oorvloeiende lyne om vertikaal in lyn " +"gebring te word soos die inkeping vlak van die eerste lyn. Dit kan help om " +"kode en merkop meer leesbaar te maak.

Addisioneel, laat dit jou toe om " +"'n maksimum wydte van die skerm in te stel, soos 'n persentasie, na wat " +"dinamiese oorvloei lyne nie meer vertikaal in lyn gebring sal word nie. " +"Byvoorbeeld, by 50%, lyne wie se inkeepvlakke dieper is as 50% van die wydte " +"van die skerm sal nie vertikale inlynbringing aangewend word na volgende " +"oorvloei lyne nie.

" + +#. i18n: ectx: property (suffix), widget (QSpinBox, sbDynamicWordWrapDepth) +#: dialogs/textareaappearanceconfigwidget.ui:427 +#, fuzzy, no-c-format, kde-format +#| msgid "% of View Width" +msgid "% of View Width" +msgstr "% van die Aansig Wydte" + +#. i18n: ectx: property (text), widget (QLabel, label_24) +#: dialogs/textareaappearanceconfigwidget.ui:443 +#, fuzzy, kde-format +#| msgid "Show indentation lines" +msgid "Show i&ndentation lines:" +msgstr "Vertoon inkeping Reëls" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowIndentationLines) +#: dialogs/textareaappearanceconfigwidget.ui:453 +#, fuzzy, kde-format +msgid "" +"If this is enabled, the editor will display vertical lines to help identify " +"indent lines." +msgstr "" +"As hierdie aktiveer is, sal die redigeerder alle vertikale lyne vertoon om " +"te help identifiseer die ingekeepde lyne." + +#: document/katebuffer.cpp:135 +#, fuzzy, kde-format +#| msgid "New Filetype" +msgctxt "short translation, user created new file" +msgid "New file" +msgstr "Nuwe Lêertipe" + +#: document/katedocument.cpp:223 +#, fuzzy, kde-format +#| msgid "&Word Wrap Document" +msgid "Auto Reload Document" +msgstr "Woord Oorvloei Dokument" + +#: document/katedocument.cpp:225 +#, kde-format +msgid "Automatic reload the document when it was changed on disk" +msgstr "" + +#: document/katedocument.cpp:2307 +#, fuzzy, kde-format +#| msgid "" +#| "The file %1 could not be loaded, as it was not possible to read from it.\n" +#| "\n" +#| "Check if you have read access to this file." +msgid "" +"The file %1 could not be loaded, as it was not possible to read from it.
Check if you have read access to this file." +msgstr "" +"Die lêer %1 kon nie gelaai word nie, omdat nie moontlik was om te lees " +"daarvan.\n" +"\n" +"Kyk of jy lees toegang tot hierdie lêer het." + +#: document/katedocument.cpp:2312 +#, kde-format +msgctxt "translators: you can also translate 'Try Again' with 'Reload'" +msgid "Try Again" +msgstr "" + +#: document/katedocument.cpp:2316 document/katedocument.cpp:6534 +#, kde-format +msgid "&Close" +msgstr "" + +#: document/katedocument.cpp:2317 document/katedocument.cpp:6535 +#, kde-format +msgctxt "Close the message being displayed" +msgid "Close message" +msgstr "" + +#: document/katedocument.cpp:2449 +#, kde-format +msgid "" +"The file %1 was opened with %2 encoding but contained invalid characters." +"
It is set to read-only mode, as saving might destroy its content.
Either reopen the file with the correct encoding chosen or enable the read-" +"write mode again in the tools menu to be able to edit it." +msgstr "" + +#: document/katedocument.cpp:2468 +#, kde-format +msgid "" +"The file %1 was opened and contained lines longer than the configured Line " +"Length Limit (%2 characters).
The longest of those lines was %3 " +"characters long
Those lines were wrapped and the document is set to read-" +"only mode, as saving will modify its content." +msgstr "" + +#: document/katedocument.cpp:2475 +#, kde-format +msgid "Temporarily raise limit and reload file" +msgstr "" + +#: document/katedocument.cpp:2478 +#, kde-format +msgid "Close" +msgstr "" + +#: document/katedocument.cpp:2505 +#, kde-format +msgid "" +"Do you really want to save this unmodified file? You could overwrite changed " +"data in the file on disk." +msgstr "" +"Wil jy regtig hierdie onmodifiseerde lêer stoor? Jy kan oorskryf veranderde " +"data in die lêer op die skyf." + +#: document/katedocument.cpp:2506 +#, kde-format +msgid "Trying to Save Unmodified File" +msgstr "Probeer om onveranderde Lêer te stoor" + +#: document/katedocument.cpp:2507 document/katedocument.cpp:2518 +#: document/katedocument.cpp:2534 +#, kde-format +msgid "Save Nevertheless" +msgstr "Stoor nogsteeds" + +#: document/katedocument.cpp:2516 +#, kde-format +msgid "" +"Do you really want to save this file? Both your open file and the file on " +"disk were changed. There could be some data lost." +msgstr "" +"Wil jy regtig hierdie lêer stoor? Beide you geopende lêer en die lêer op die " +"skyf was verander. Daar kan sommige data verlies wees." + +#: document/katedocument.cpp:2517 document/katedocument.cpp:2533 +#: document/katedocument.cpp:2853 syntax/katethemeconfig.cpp:1218 +#: syntax/katethemeconfig.cpp:1376 +#, kde-format +msgid "Possible Data Loss" +msgstr "Moontlike Data Verlies" + +#: document/katedocument.cpp:2531 +#, fuzzy, kde-format +#| msgid "" +#| "The selected encoding cannot encode every unicode character in this " +#| "document. Do you really want to save it? There could be some data lost." +msgid "" +"The selected encoding cannot encode every Unicode character in this " +"document. Do you really want to save it? There could be some data lost." +msgstr "" +"Die verkose enkodering van nie enkodeer elke unikode karakter in hierdie " +"dokument. Wil jy dit werklik stoor? Daar kan somige data verlies wees." + +#: document/katedocument.cpp:2601 +#, fuzzy, kde-format +#| msgid "" +#| "The document could not be saved, as it was not possible to write to %1.\n" +#| "\n" +#| "Check that you have write access to this file or that enough disk space " +#| "is available." +msgid "" +"The document could not be saved, as it was not possible to write to %1.\n" +"Check that you have write access to this file or that enough disk space is " +"available.\n" +"The original file may be lost or damaged. Don't quit the application until " +"the file is successfully written." +msgstr "" +"Die dokument kon nie gestoor word nie, omdat dit nie moontlik was om te " +"skryf na %1.\n" +"\n" +"Kontroleur dat jy skryf toegang het na hierdie lêer of dat daar genoeg skryf " +"spasie beskikbaar is." + +#: document/katedocument.cpp:2722 +#, kde-format +msgid "" +"For file %1 no backup copy could be created before saving. If an error " +"occurs while saving, you might lose the data of this file. A reason could be " +"that the media you write to is full or the directory of the file is read-" +"only for you." +msgstr "" + +#: document/katedocument.cpp:2726 +#, kde-format +msgid "Failed to create backup copy." +msgstr "" + +#: document/katedocument.cpp:2727 +#, fuzzy, kde-format +msgid "Try to Save Nevertheless" +msgstr "Stoor nogsteeds" + +#: document/katedocument.cpp:2852 +#, kde-format +msgid "Do you really want to continue to close this file? Data loss may occur." +msgstr "" +"Wil jy regtig voortgaan om die lêer te sluit? Data verlies mag voorkom." + +#: document/katedocument.cpp:2854 +#, kde-format +msgid "Close Nevertheless" +msgstr "Maak nogsteeds toe" + +#: document/katedocument.cpp:4641 +#, fuzzy, kde-format +msgid "Untitled (%1)" +msgstr "Onbeperk" + +#: document/katedocument.cpp:4643 +#, fuzzy, kde-format +msgid "Untitled" +msgstr "Onbeperk" + +#: document/katedocument.cpp:4820 document/katedocument.cpp:5051 +#: document/katedocument.cpp:5061 document/katedocument.cpp:5862 +#: document/katedocument.cpp:6049 +#, kde-format +msgid "Save File" +msgstr "Stoor Lêer" + +#: document/katedocument.cpp:4823 +#, kde-format +msgid "Save failed" +msgstr "Stoor gevaal" + +#: document/katedocument.cpp:5072 +#, fuzzy, kde-format +#| msgid "Save File" +msgid "Save Copy of File" +msgstr "Stoor Lêer" + +#: document/katedocument.cpp:5084 +#, kde-format +msgid "" +"The document could not be saved, as it was not possible to write to %1.\n" +"\n" +"Check that you have write access to this file or that enough disk space is " +"available." +msgstr "" +"Die dokument kon nie gestoor word nie, omdat dit nie moontlik was om te " +"skryf na %1.\n" +"\n" +"Kontroleur dat jy skryf toegang het na hierdie lêer of dat daar genoeg skryf " +"spasie beskikbaar is." + +#: document/katedocument.cpp:5376 +#, kde-format +msgid "" +"Using deprecated modeline 'remove-trailing-space'. Please replace with " +"'remove-trailing-spaces modified;', see https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" +msgstr "" + +#: document/katedocument.cpp:5382 +#, kde-format +msgid "" +"Using deprecated modeline 'replace-trailing-space-save'. Please replace with " +"'remove-trailing-spaces all;', see https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" +msgstr "" + +#: document/katedocument.cpp:5696 +#, fuzzy, kde-format +#| msgid "The file '%1' was modified by another program." +msgid "The file '%1' was modified on disk." +msgstr "Die lêer '%1' was modifiseerd deur 'n ander program." + +#: document/katedocument.cpp:5698 +#, fuzzy, kde-format +#| msgid "The file '%1' was deleted by another program." +msgid "The file '%1' was deleted or moved on disk." +msgstr "Die lêer '%1' was uitgevee deur 'n ander program." + +#: document/katedocument.cpp:6034 +#, kde-format +msgid "" +"The document \"%1\" has been modified.\n" +"Do you want to save your changes or discard them?" +msgstr "" + +#: document/katedocument.cpp:6037 +#, fuzzy, kde-format +#| msgid "&Word Wrap Document" +msgid "Close Document" +msgstr "Woord Oorvloei Dokument" + +#: document/katedocument.cpp:6148 +#, kde-format +msgid "The file %2 is still loading." +msgstr "" + +#: document/katedocument.cpp:6153 +#, kde-format +msgid "&Abort Loading" +msgstr "" + +#: inputmode/katenormalinputmode.cpp:74 +#, kde-format +msgid "OVERWRITE" +msgstr "" + +#: inputmode/katenormalinputmode.cpp:74 +#, kde-format +msgid "INSERT" +msgstr "" + +#: inputmode/katenormalinputmodefactory.cpp:29 +#, fuzzy, kde-format +#| msgid "Normal Text" +msgid "Normal Mode" +msgstr "Normale Teks" + +#: inputmode/kateviinputmode.cpp:31 +#, kde-format +msgctxt "The INSERT mode of VI" +msgid "VI: INSERT" +msgstr "" + +#: inputmode/kateviinputmode.cpp:34 +#, fuzzy, kde-format +#| msgid " NORM " +msgctxt "The NORMAL mode of VI" +msgid "VI: NORMAL" +msgstr "Norm" + +#: inputmode/kateviinputmode.cpp:37 +#, kde-format +msgid "VI: VISUAL" +msgstr "" + +#: inputmode/kateviinputmode.cpp:40 +#, kde-format +msgid "VI: VISUAL BLOCK" +msgstr "" + +#: inputmode/kateviinputmode.cpp:43 +#, kde-format +msgid "VI: VISUAL LINE" +msgstr "" + +#: inputmode/kateviinputmode.cpp:46 +#, kde-format +msgid "VI: REPLACE" +msgstr "" + +#: inputmode/kateviinputmode.cpp:146 +#, kde-format +msgid "vi-mode" +msgstr "" + +#: inputmode/kateviinputmode.cpp:159 +#, fuzzy, kde-format +#| msgid "E&ncoding" +msgid "recording" +msgstr "Enkodering" + +#: inputmode/kateviinputmodefactory.cpp:38 utils/kateglobal.cpp:88 +#: vimode/config/configtab.cpp:237 +#, kde-format +msgid "Vi Input Mode" +msgstr "" + +#: mode/katemodeconfigpage.cpp:46 +#, kde-format +msgid "" +msgstr "" + +#: mode/katemodeconfigpage.cpp:58 +#, fuzzy, kde-format +#| msgid "Use Default Style" +msgid "Use Default" +msgstr "Gebruik Verstek Styl" + +#: mode/katemodeconfigpage.cpp:99 mode/katemodeconfigpage.cpp:241 +#, kde-format +msgid "Properties of %1" +msgstr "Eienskappe van %1" + +#: mode/katemodeconfigpage.cpp:178 +#, kde-format +msgid "New Filetype" +msgstr "Nuwe Lêertipe" + +#: mode/katemodeconfigpage.cpp:293 +#, kde-format +msgid "" +"Select the MimeTypes you want for this file type.\n" +"Please note that this will automatically edit the associated file extensions " +"as well." +msgstr "" +"Kies die Mime-tipes wat jy wil hê vir hierdie lêer tipe.\n" +"Asseblief noteer dat hierdie outomaties sal redigeer die geassosieer lêer " +"uitbreidings ook." + +#: mode/katemodeconfigpage.cpp:295 +#, kde-format +msgid "Select Mime Types" +msgstr "Kies Mime Tipes" + +#: mode/katemodeconfigpage.cpp:312 +#, fuzzy, kde-format +#| msgid "&Filetype" +msgid "Modes && Filetypes" +msgstr "Lêertipe" + +#: mode/katemodemenulist.cpp:138 +#, fuzzy, kde-format +#| msgid "I-Search:" +msgctxt "@info:placeholder" +msgid "Search…" +msgstr "I-Search:" + +#: mode/katemodemenulist.cpp:140 +#, kde-format +msgctxt "ToolTip of the search bar of modes of syntax highlighting" +msgid "" +"Search for syntax highlighting modes by language name or file extension (for " +"example, C++ or .cpp)" +msgstr "" + +#: mode/katemodemenulist.cpp:560 +#, kde-format +msgctxt "A search yielded no results" +msgid "No items matching your search" +msgstr "" + +#: mode/katemodemenulist.cpp:1087 +#, fuzzy, kde-format +#| msgid "Previous Incremental Search Match" +msgctxt "" +"Title (in singular) of the best result in an item search. Please, that the " +"translation doesn't have more than 34 characters, since the menu where it's " +"displayed is small and fixed." +msgid "Best Search Match" +msgstr "Vorige Inkrementele Soektog Ooreenstem" + +#: mode/katemodemenulist.cpp:1092 +#, fuzzy, kde-format +#| msgid "Previous Incremental Search Match" +msgctxt "" +"Title (in plural) of the best results in an item search. Please, that the " +"translation doesn't have more than 34 characters, since the menu where it's " +"displayed is small and fixed." +msgid "Best Search Matches" +msgstr "Vorige Inkrementele Soektog Ooreenstem" + +#: printing/printconfigwidgets.cpp:36 +#, kde-format +msgid "Te&xt Settings" +msgstr "Teks Instellings" + +#: printing/printconfigwidgets.cpp:40 +#, fuzzy, kde-format +#| msgid "Print &line numbers" +msgid "Print line &numbers" +msgstr "Druk lyn nommers" + +#: printing/printconfigwidgets.cpp:43 +#, fuzzy, kde-format +#| msgid "Print &line numbers" +msgid "Print &legend" +msgstr "Druk lyn nommers" + +#: printing/printconfigwidgets.cpp:46 +#, kde-format +msgid "Don't print folded code" +msgstr "" + +#: printing/printconfigwidgets.cpp:54 +#, kde-format +msgid "" +"

If enabled, line numbers will be printed on the left side of the page(s)." +"

" +msgstr "" +"

As geaktiveer, lyn nommers sal wees printed op die links kant van die " +"bladsy(s).

" + +#: printing/printconfigwidgets.cpp:56 +#, fuzzy, kde-format +#| msgid "" +#| "

Print a box displaying typographical conventions for the document " +#| "type, as defined by the syntax highlighting being used." +msgid "" +"

Print a box displaying typographical conventions for the document type, " +"as defined by the syntax highlighting being used.

" +msgstr "" +"

Druk 'n boks wat typografiese gebruike vertoon vir die dokument tipe, " +"soos defineerd deur die syntaks verligting wat gebruik word." + +#: printing/printconfigwidgets.cpp:116 +#, kde-format +msgid "Hea&der && Footer" +msgstr "Opskrif && Voetskrif" + +#: printing/printconfigwidgets.cpp:123 +#, kde-format +msgid "Pr&int header" +msgstr "Druk Opskrif:" + +#: printing/printconfigwidgets.cpp:125 +#, kde-format +msgid "Pri&nt footer" +msgstr "Druk Voetskrif:" + +#: printing/printconfigwidgets.cpp:131 +#, kde-format +msgid "Header/footer font:" +msgstr "Opskrif/voetskrif skrif tipe:" + +#: printing/printconfigwidgets.cpp:137 +#, kde-format +msgid "Header Properties" +msgstr "Opskrif Eienskappe" + +#: printing/printconfigwidgets.cpp:141 +#, kde-format +msgid "&Format:" +msgstr "Formaat:" + +#: printing/printconfigwidgets.cpp:163 printing/printconfigwidgets.cpp:209 +#, kde-format +msgid "Colors:" +msgstr "Kleure:" + +#: printing/printconfigwidgets.cpp:170 printing/printconfigwidgets.cpp:216 +#, kde-format +msgid "Foreground:" +msgstr "Voorgrond:" + +#: printing/printconfigwidgets.cpp:175 +#, kde-format +msgid "Bac&kground" +msgstr "Agtergrond" + +#: printing/printconfigwidgets.cpp:181 +#, kde-format +msgid "Footer Properties" +msgstr "Voetskrif Eienskappe" + +#: printing/printconfigwidgets.cpp:186 +#, kde-format +msgid "For&mat:" +msgstr "Formaat:" + +#: printing/printconfigwidgets.cpp:221 +#, kde-format +msgid "&Background" +msgstr "Agtergrond" + +#: printing/printconfigwidgets.cpp:250 +#, kde-format +msgid "

Format of the page header. The following tags are supported:

" +msgstr "" +"

Formaat van die bladsy opskrif. die volgende etiket word ondersteunde:

" + +#: printing/printconfigwidgets.cpp:252 +#, fuzzy, kde-format +#| msgid "" +#| "
  • %u: current user name
  • %d: complete date/" +#| "time in short format
  • %D: complete date/time in long " +#| "format
  • %h: current time
  • %y: current " +#| "date in short format
  • %Y: current date in long format
  • %f: file name
  • %U: full URL of the " +#| "document
  • %p: page number

Note: Do " +#| "not use the '|' (vertical bar) character." +msgid "" +"
  • %u: current user name
  • %d: complete date/" +"time in short format
  • %D: complete date/time in long format
  • %h: current time
  • %y: current date in short " +"format
  • %Y: current date in long format
  • %f: " +"file name
  • %U: full URL of the document
  • %p: " +"page number
  • %P: total amount of pages

" +msgstr "" +"
  • %u: huidige gebruiker naam
  • %d: volledige " +"datum/tyd in kort formaat
  • %D: volledige datum/tyd in lang " +"formaat
  • %h: huidige tyd
  • %y: huidige datum " +"in kort formaat
  • %Y: huidige datum in lang formaat
  • %f: lêer naam
  • %U: volgrote Url van die " +"dokument
  • %p: bladsy nommer

Nota: Doen " +"nie gebruik die '|' (vertikaal kolom) karakter." + +#: printing/printconfigwidgets.cpp:266 +#, kde-format +msgid "

Format of the page footer. The following tags are supported:

" +msgstr "" +"

Formaat van die bladsy voetskrif. die volgende etiket word ondersteunde:" + +#: printing/printconfigwidgets.cpp:352 +#, kde-format +msgid "Add Placeholder..." +msgstr "" + +#: printing/printconfigwidgets.cpp:354 +#, fuzzy, kde-format +#| msgid "Current line:" +msgid "Current User Name" +msgstr "Huidige lyn:" + +#: printing/printconfigwidgets.cpp:356 +#, kde-format +msgid "Complete Date/Time (short format)" +msgstr "" + +#: printing/printconfigwidgets.cpp:358 +#, kde-format +msgid "Complete Date/Time (long format)" +msgstr "" + +#: printing/printconfigwidgets.cpp:360 +#, fuzzy, kde-format +#| msgid "Current line:" +msgid "Current Time" +msgstr "Huidige lyn:" + +#: printing/printconfigwidgets.cpp:362 +#, kde-format +msgid "Current Date (short format)" +msgstr "" + +#: printing/printconfigwidgets.cpp:364 +#, kde-format +msgid "Current Date (long format)" +msgstr "" + +#: printing/printconfigwidgets.cpp:366 +#, fuzzy, kde-format +#| msgid "File Masks" +msgid "File Name" +msgstr "Lêer Maskers" + +#: printing/printconfigwidgets.cpp:368 +#, kde-format +msgid "Full document URL" +msgstr "" + +#: printing/printconfigwidgets.cpp:370 +#, kde-format +msgid "Page Number" +msgstr "" + +#: printing/printconfigwidgets.cpp:372 +#, kde-format +msgid "Total Amount of Pages" +msgstr "" + +#: printing/printconfigwidgets.cpp:478 +#, kde-format +msgid "L&ayout" +msgstr "Uitleg" + +#: printing/printconfigwidgets.cpp:484 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "&Color theme:" +msgstr "Kleure" + +#: printing/printconfigwidgets.cpp:494 +#, kde-format +msgid "Font:" +msgstr "" + +#: printing/printconfigwidgets.cpp:498 +#, kde-format +msgid "Draw bac&kground color" +msgstr "Teken Agtergrond kleur" + +#: printing/printconfigwidgets.cpp:501 +#, kde-format +msgid "Draw &boxes" +msgstr "Teken bokse" + +#: printing/printconfigwidgets.cpp:505 +#, kde-format +msgid "Box Properties" +msgstr "Boks Eienskappe" + +#: printing/printconfigwidgets.cpp:509 +#, kde-format +msgid "W&idth:" +msgstr "Wydte:" + +#: printing/printconfigwidgets.cpp:517 +#, kde-format +msgid "&Margin:" +msgstr "Kantlyn:" + +#: printing/printconfigwidgets.cpp:525 +#, kde-format +msgid "Co&lor:" +msgstr "Kleur:" + +#: printing/printconfigwidgets.cpp:547 +#, kde-format +msgid "Select the color theme to use for the print." +msgstr "" + +#: printing/printconfigwidgets.cpp:549 +#, fuzzy, kde-format +#| msgid "" +#| "

If enabled, the background color of the editor will be used.

This may be useful if your color scheme is designed for a dark " +#| "background.

" +msgid "" +"

If enabled, the background color of the editor will be used.

This " +"may be useful if your color theme is designed for a dark background.

" +msgstr "" +"

As geaktiveer, die agtergrond kleur van die redigeerder sal wees gebruik " +"word.

Hierdie dalk mag wees bruikbare As jou kleur skema is ontwerp " +"vir 'n donker agtergrond.

" + +#: printing/printconfigwidgets.cpp:552 +#, kde-format +msgid "" +"

If enabled, a box as defined in the properties below will be drawn around " +"the contents of each page. The Header and Footer will be separated from the " +"contents with a line as well.

" +msgstr "" +"

as geaktiveer, 'n boks as gedefinieër in die eienskappe onder sal wees " +"geteken omtrent die inhoud van elke bladsy. die Opskrif en Voetskrif sal " +"wees geskei van die inhoud met 'n lyn as goed.

" + +#: printing/printconfigwidgets.cpp:555 +#, kde-format +msgid "The width of the box outline" +msgstr "Die wydte van Die boks buitelyn" + +#: printing/printconfigwidgets.cpp:556 +#, kde-format +msgid "The margin inside boxes, in pixels" +msgstr "Die kantlyn binne in bokse, in beeld elemente" + +#: printing/printconfigwidgets.cpp:557 +#, kde-format +msgid "The line color to use for boxes" +msgstr "Die lyn kleur na gebruik vir bokse" + +#: printing/printpainter.cpp:269 +#, kde-format +msgid "(Selection of) " +msgstr "(Keuse van) " + +#: printing/printpainter.cpp:522 +#, kde-format +msgid "Typographical Conventions for %1" +msgstr "Tipografiese Gebruike vir %1" + +#: printing/printpainter.cpp:555 +#, fuzzy, kde-format +#| msgid "Context" +msgid "text" +msgstr "Konteks" + +#: script/data/commands/emmet.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Expand Abbreviation" +msgstr "" + +#: script/data/commands/emmet.js:10 script/data/commands/emmet.js:14 +#: script/data/commands/emmet.js:19 script/data/commands/emmet.js:23 +#: script/data/commands/emmet.js:27 script/data/commands/emmet.js:31 +#: script/data/commands/emmet.js:35 script/data/commands/emmet.js:39 +#: script/data/commands/emmet.js:43 script/data/commands/emmet.js:47 +#: script/data/commands/emmet.js:51 script/data/commands/emmet.js:55 +#: script/data/commands/emmet.js:59 script/data/commands/emmet.js:63 +#: script/data/commands/emmet.js:67 script/data/commands/emmet.js:71 +#: script/data/commands/emmet.js:75 script/data/commands/emmet.js:79 +#: script/data/commands/emmet.js:83 +#, kde-format +msgctxt "Script command category" +msgid "Emmet" +msgstr "" + +#: script/data/commands/emmet.js:13 +#, kde-format +msgctxt "Script command name" +msgid "Wrap with Tag" +msgstr "" + +#: script/data/commands/emmet.js:18 +#, fuzzy, kde-format +#| msgid "Move to Matching Bracket" +msgctxt "Script command name" +msgid "Move Cursor to Matching Tag" +msgstr "Beweeg na Ooreenstemmende Hakkie" + +#: script/data/commands/emmet.js:22 +#, kde-format +msgctxt "Script command name" +msgid "Select HTML/XML Tag Contents Inwards" +msgstr "" + +#: script/data/commands/emmet.js:26 +#, kde-format +msgctxt "Script command name" +msgid "Select HTML/XML Tag Contents Outwards" +msgstr "" + +#: script/data/commands/emmet.js:30 +#, fuzzy, kde-format +#| msgid "Comment" +msgctxt "Script command name" +msgid "Toggle Comment" +msgstr "Kommentaar" + +#: script/data/commands/emmet.js:34 +#, fuzzy, kde-format +#| msgid "Select to Next Line" +msgctxt "Script command name" +msgid "Go to Next Edit Point" +msgstr "Kies na Volgende Lyn" + +#: script/data/commands/emmet.js:38 +#, fuzzy, kde-format +#| msgid "Move to Previous Line" +msgctxt "Script command name" +msgid "Go to Previous Edit Point" +msgstr "Beweeg na Vorige Lyn" + +#: script/data/commands/emmet.js:42 +#, fuzzy, kde-format +#| msgid "Select to Next Line" +msgctxt "Script command name" +msgid "Select Next Edit Point" +msgstr "Kies na Volgende Lyn" + +#: script/data/commands/emmet.js:46 +#, fuzzy, kde-format +#| msgid "Select to Previous Line" +msgctxt "Script command name" +msgid "Select Previous Edit Point" +msgstr "Kies na Vorige Lyn" + +#: script/data/commands/emmet.js:50 +#, fuzzy, kde-format +#| msgid "Delete the current file type." +msgctxt "Script command name" +msgid "Delete Tag Under Cursor" +msgstr "Verwyder die huidige lêer tipe." + +#: script/data/commands/emmet.js:54 +#, kde-format +msgctxt "Script command name" +msgid "Split or Join a Tag" +msgstr "" + +#: script/data/commands/emmet.js:58 +#, kde-format +msgctxt "Script command name" +msgid "Evaluate a Simple Math Expression" +msgstr "" + +#: script/data/commands/emmet.js:62 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 1" +msgstr "" + +#: script/data/commands/emmet.js:66 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 10" +msgstr "" + +#: script/data/commands/emmet.js:70 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 0.1" +msgstr "" + +#: script/data/commands/emmet.js:74 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 1" +msgstr "" + +#: script/data/commands/emmet.js:78 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 10" +msgstr "" + +#: script/data/commands/emmet.js:82 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 0.1" +msgstr "" + +#: script/data/commands/emmet.js:96 +#, kde-format +msgid "" +"Expands the abbreviation using Emmet expressions; see http://code.google.com/" +"p/zen-coding/wiki/ZenHTMLSelectorsEn" +msgstr "" + +#: script/data/commands/emmet.js:97 +#, kde-format +msgid "" +"Wraps the selected text in XML tags constructed from the provided Emmet " +"expression (defaults to div)." +msgstr "" + +#: script/data/commands/emmet.js:98 +#, kde-format +msgid "Moves the caret to the current tag's pair" +msgstr "" + +#: script/data/commands/emmet.js:99 +#, kde-format +msgid "" +"Select contents of HTML/XML tag, moving inward on continuous invocations" +msgstr "" + +#: script/data/commands/emmet.js:100 +#, kde-format +msgid "" +"Select contents of HTML/XML tag, moving outwards on continuous invocations" +msgstr "" + +#: script/data/commands/emmet.js:101 +#, kde-format +msgid "Move to the next edit point (tag or empty attribute)." +msgstr "" + +#: script/data/commands/emmet.js:102 +#, kde-format +msgid "Move to the previous edit point (tag or empty attribute)." +msgstr "" + +#: script/data/commands/emmet.js:103 +#, fuzzy, kde-format +#| msgid "Select to Next Line" +msgid "Select next edit point (tag or empty attribute)." +msgstr "Kies na Volgende Lyn" + +#: script/data/commands/emmet.js:104 +#, fuzzy, kde-format +#| msgid "Select to Previous Line" +msgid "Select previous edit point (tag or empty attribute)." +msgstr "Kies na Vorige Lyn" + +#: script/data/commands/emmet.js:105 +#, kde-format +msgid "Toggle comment of current tag or CSS selector" +msgstr "" + +#: script/data/commands/emmet.js:106 +#, fuzzy, kde-format +#| msgid "Delete the current file type." +msgid "Deletes tag under cursor" +msgstr "Verwyder die huidige lêer tipe." + +#: script/data/commands/emmet.js:107 +#, kde-format +msgid "Splits or joins a tag" +msgstr "" + +#: script/data/commands/emmet.js:108 +#, kde-format +msgid "Evaluates a simple math expression" +msgstr "" + +#: script/data/commands/emmet.js:109 +#, kde-format +msgid "Decrement number under cursor by 1" +msgstr "" + +#: script/data/commands/emmet.js:110 +#, kde-format +msgid "Decrement number under cursor by 10" +msgstr "" + +#: script/data/commands/emmet.js:111 +#, kde-format +msgid "Decrement number under cursor by 0.1" +msgstr "" + +#: script/data/commands/emmet.js:112 +#, kde-format +msgid "Increment number under cursor by 1" +msgstr "" + +#: script/data/commands/emmet.js:113 +#, kde-format +msgid "Increment number under cursor by 10" +msgstr "" + +#: script/data/commands/emmet.js:114 +#, kde-format +msgid "Increment number under cursor by 0.1" +msgstr "" + +#: script/data/commands/jumpMatchingIndent.js:9 +#, fuzzy, kde-format +#| msgid "Move to Matching Bracket" +msgctxt "Script command name" +msgid "Move Cursor to Previous Matching Indent" +msgstr "Beweeg na Ooreenstemmende Hakkie" + +#: script/data/commands/jumpMatchingIndent.js:11 +#: script/data/commands/jumpMatchingIndent.js:16 +#: script/data/commands/jumpMatchingIndent.js:21 +#: script/data/commands/jumpMatchingIndent.js:26 +#: script/data/commands/navigation.js:10 script/data/commands/navigation.js:14 +#, fuzzy, kde-format +#| msgctxt "Language Section" +#| msgid "Configuration" +msgctxt "Script command category" +msgid "Navigation" +msgstr "Konfigurasie" + +#: script/data/commands/jumpMatchingIndent.js:14 +#, fuzzy, kde-format +#| msgid "Move to Matching Bracket" +msgctxt "Script command name" +msgid "Move Cursor to Next Matching Indent" +msgstr "Beweeg na Ooreenstemmende Hakkie" + +#: script/data/commands/jumpMatchingIndent.js:19 +#, fuzzy, kde-format +#| msgid "Move to Matching Bracket" +msgctxt "Script command name" +msgid "Move Cursor to Next Blank Line" +msgstr "Beweeg na Ooreenstemmende Hakkie" + +#: script/data/commands/jumpMatchingIndent.js:24 +#, fuzzy, kde-format +#| msgid "Move to Matching Bracket" +msgctxt "Script command name" +msgid "Move Cursor to Previous Blank Line" +msgstr "Beweeg na Ooreenstemmende Hakkie" + +#: script/data/commands/jumpMatchingIndent.js:80 +#, fuzzy, kde-format +#| msgid "Move to Matching Bracket" +msgid "Move cursor to previous matching indent" +msgstr "Beweeg na Ooreenstemmende Hakkie" + +#: script/data/commands/jumpMatchingIndent.js:83 +#, fuzzy, kde-format +#| msgid "Move to Matching Bracket" +msgid "Move cursor to next matching indent" +msgstr "Beweeg na Ooreenstemmende Hakkie" + +#: script/data/commands/jumpMatchingIndent.js:85 +#, fuzzy, kde-format +#| msgid "Move to Matching Bracket" +msgid "Move cursor to next blank line" +msgstr "Beweeg na Ooreenstemmende Hakkie" + +#: script/data/commands/jumpMatchingIndent.js:87 +#, fuzzy, kde-format +#| msgid "Move to Matching Bracket" +msgid "Move cursor to previous blank line" +msgstr "Beweeg na Ooreenstemmende Hakkie" + +#: script/data/commands/navigation.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Go to Next Paragraph" +msgstr "" + +#: script/data/commands/navigation.js:13 +#, fuzzy, kde-format +#| msgid "Move to Previous Line" +msgctxt "Script command name" +msgid "Go to Previous Paragraph" +msgstr "Beweeg na Vorige Lyn" + +#: script/data/commands/utils.js:9 +#, fuzzy, kde-format +#| msgid "Re&move trailing spaces" +msgctxt "Script command name" +msgid "Remove Trailing Spaces" +msgstr "Verwyder volgende spasies" + +#: script/data/commands/utils.js:10 script/data/commands/utils.js:14 +#: script/data/commands/utils.js:18 script/data/commands/utils.js:22 +#: script/data/commands/utils.js:27 script/data/commands/utils.js:32 +#: script/data/commands/utils.js:36 script/data/commands/utils.js:40 +#: script/data/commands/utils.js:44 script/data/commands/utils.js:48 +#: script/data/commands/utils.js:52 script/data/commands/utils.js:56 +#, fuzzy, kde-format +#| msgid "Editing" +msgctxt "Script command category" +msgid "Editing" +msgstr "Redigering" + +#: script/data/commands/utils.js:13 +#, fuzzy, kde-format +#| msgid "Re&move trailing spaces" +msgctxt "Script command name" +msgid "Remove Leading Spaces" +msgstr "Verwyder volgende spasies" + +#: script/data/commands/utils.js:17 +#, fuzzy, kde-format +#| msgid "Re&move trailing spaces" +msgctxt "Script command name" +msgid "Remove Trailing and Leading Spaces" +msgstr "Verwyder volgende spasies" + +#: script/data/commands/utils.js:21 +#, fuzzy, kde-format +#| msgid "Join Lines" +msgctxt "Script command name" +msgid "Join Lines" +msgstr "Verbind Lyne" + +#: script/data/commands/utils.js:25 +#, fuzzy, kde-format +#| msgid "Scroll Line Down" +msgctxt "Script command name" +msgid "Move Lines Down" +msgstr "Rol Lyn Ondertoe" + +#: script/data/commands/utils.js:30 +#, fuzzy, kde-format +#| msgid "Scroll Line Up" +msgctxt "Script command name" +msgid "Move Lines Up" +msgstr "Rol Lyn Begin" + +#: script/data/commands/utils.js:35 +#, fuzzy, kde-format +#| msgid "Selected" +msgctxt "Script command name" +msgid "Duplicate Selected Lines Down" +msgstr "Gekose" + +#: script/data/commands/utils.js:39 +#, fuzzy, kde-format +#| msgid "Selected" +msgctxt "Script command name" +msgid "Duplicate Selected Lines Up" +msgstr "Gekose" + +#: script/data/commands/utils.js:43 +#, fuzzy, kde-format +#| msgid "Selected" +msgctxt "Script command name" +msgid "Duplicate selected text" +msgstr "Gekose" + +#: script/data/commands/utils.js:47 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgctxt "Script command name" +msgid "URI-encode Selected Text" +msgstr "Gekose teks:" + +#: script/data/commands/utils.js:51 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgctxt "Script command name" +msgid "URI-decode Selected Text" +msgstr "Gekose teks:" + +#: script/data/commands/utils.js:55 +#, fuzzy, kde-format +#| msgid "Move to Matching Bracket" +msgctxt "Script command name" +msgid "Remove Empty Lines" +msgstr "Beweeg na Ooreenstemmende Hakkie" + +#: script/data/commands/utils.js:410 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "Sort the selected text or whole document." +msgstr "Kies die hele teks van die huidige dokument." + +#: script/data/commands/utils.js:412 +#, fuzzy, kde-format +#| msgid "Selected" +msgid "Move selected lines down." +msgstr "Gekose" + +#: script/data/commands/utils.js:414 +#, fuzzy, kde-format +#| msgid "Selected" +msgid "Move selected lines up." +msgstr "Gekose" + +#: script/data/commands/utils.js:416 +#, kde-format +msgid "Remove duplicate lines from the selected text or whole document." +msgstr "" + +#: script/data/commands/utils.js:418 +#, kde-format +msgid "" +"Sort the selected text or whole document in natural order.
Here is an " +"example to show the difference to the normal sort method:
sort(a10, a1, " +"a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" +msgstr "" + +#: script/data/commands/utils.js:420 +#, kde-format +msgid "Trims trailing whitespace from selection or whole document." +msgstr "" + +#: script/data/commands/utils.js:422 +#, kde-format +msgid "Trims leading whitespace from selection or whole document." +msgstr "" + +#: script/data/commands/utils.js:424 +#, kde-format +msgid "Trims leading and trailing whitespace from selection or whole document." +msgstr "" + +#: script/data/commands/utils.js:426 +#, kde-format +msgid "" +"Joins selected lines or whole document. Optionally pass a separator to put " +"between each line:
join ', ' will e.g. join lines and " +"separate them by a comma." +msgstr "" + +#: script/data/commands/utils.js:428 +#, kde-format +msgid "Removes empty lines from selection or whole document." +msgstr "" + +#: script/data/commands/utils.js:430 +#, kde-format +msgid "" +"This command aligns lines in the selected block or whole document on the " +"column given by a regular expression given as an argument.

If you " +"give an empty pattern it will align on the first non-blank character by " +"default.
If the pattern has a capture it will indent on the captured " +"match.

Examples:
'alignon -' will insert " +"spaces before the first '-' of each lines to align them all on the same " +"column.
'alignon :\\s+(.)' will insert spaces before the " +"first non-blank character that occurs after a colon to align them all on the " +"same column." +msgstr "" + +#: script/data/commands/utils.js:434 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and replace them with the return value of that callback." +"
Example (join selected lines):
each 'function(lines){return " +"lines.join(\", \");}'
To save you some typing, you can also do " +"this to achieve the same:
each 'lines.join(\", \")'" +msgstr "" + +#: script/data/commands/utils.js:436 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and remove those where the callback returns false." +"
Example (see also rmblank):
filter 'function(l)" +"{return l.length > 0;}'
To save you some typing, you can also do " +"this to achieve the same:
filter 'line.length > 0'" +msgstr "" + +#: script/data/commands/utils.js:438 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and replace the line with the return value of the callback." +"
Example (see also ltrim):
map 'function(line)" +"{return line.replace(/^\\s+/, \"\");}'
To save you some typing, " +"you can also do this to achieve the same:
map 'line.replace(/^\\s" +"+/, \"\")'" +msgstr "" + +#: script/data/commands/utils.js:440 +#, kde-format +msgid "Duplicates the selected lines up." +msgstr "" + +#: script/data/commands/utils.js:442 +#, kde-format +msgid "Duplicates the selected lines down." +msgstr "" + +#: script/data/commands/utils.js:446 +#, kde-format +msgid "" +"Encode special chars in a single line selection, so the result text can be " +"used as URI." +msgstr "" + +#: script/data/commands/utils.js:448 +#, kde-format +msgid "Reverse action of URI encode." +msgstr "" + +#: script/data/commands/utils.js:450 +#, kde-format +msgid "" +"Select text forward from current cursor position to the first occurrence of " +"the given argument after it (or the end of the current line by default)." +msgstr "" + +#: script/data/commands/utils.js:452 +#, kde-format +msgid "" +"Select text backward from current cursor position to the last occurrence of " +"the given argument before it (or the beginning of the current line by " +"default)." +msgstr "" + +#: script/data/indentation/ada.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Ada" +msgctxt "Autoindent mode" +msgid "ada" +msgstr "Ada" + +#: script/data/indentation/cmake.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "CMake" +msgctxt "Autoindent mode" +msgid "CMake" +msgstr "CMaak" + +#: script/data/indentation/cppstyle.js:2 +#, fuzzy, kde-format +#| msgid "C Style" +msgctxt "Autoindent mode" +msgid "C++/boost Style" +msgstr "C Style" + +#: script/data/indentation/cstyle.js:2 +#, fuzzy, kde-format +#| msgid "C Style" +msgctxt "Autoindent mode" +msgid "C Style" +msgstr "C Style" + +#: script/data/indentation/haskell.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Haskell" +msgctxt "Autoindent mode" +msgid "Haskell" +msgstr "Haskell" + +#: script/data/indentation/julia.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Julia" +msgstr "" + +#: script/data/indentation/latex.js:2 +#, fuzzy, kde-format +#| msgid "Latest" +msgctxt "Autoindent mode" +msgid "Latex" +msgstr "Nuutste" + +#: script/data/indentation/lilypond.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "LilyPond" +msgctxt "Autoindent mode" +msgid "LilyPond" +msgstr "LilyPond" + +#: script/data/indentation/lisp.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "LISP" +msgstr "" + +#: script/data/indentation/pascal.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Pascal" +msgctxt "Autoindent mode" +msgid "Pascal" +msgstr "Pascal" + +#: script/data/indentation/python.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Python" +msgctxt "Autoindent mode" +msgid "Python" +msgstr "Python" + +#: script/data/indentation/r.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "R" +msgstr "" + +#: script/data/indentation/replicode.js:2 +#, fuzzy, kde-format +#| msgid "&Replace" +msgctxt "Autoindent mode" +msgid "Replicode" +msgstr "Vervang" + +#: script/data/indentation/ruby.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Ruby" +msgctxt "Autoindent mode" +msgid "Ruby" +msgstr "Ruby" + +#: script/data/indentation/xml.js:2 +#, fuzzy, kde-format +#| msgid "XML Style" +msgctxt "Autoindent mode" +msgid "XML Style" +msgstr "XML Style" + +#: script/katecommandlinescript.cpp:37 +#, kde-format +msgid "Function '%1' not found in script: %2" +msgstr "" + +#: script/katecommandlinescript.cpp:51 +#, fuzzy, kde-format +#| msgid "Error: %1" +msgid "Error calling %1" +msgstr "Fout: %1" + +#: script/katecommandlinescript.cpp:68 +#, kde-format +msgid "Bad quoting in call: %1. Please escape single quotes with a backslash." +msgstr "" + +#: script/katecommandlinescript.cpp:76 utils/katecmds.cpp:217 +#: vimode/cmds.cpp:37 +#, kde-format +msgid "Could not access view" +msgstr "Kon nie toegang verkry na uitsig" + +#: script/katecommandlinescript.cpp:118 +#, kde-format +msgid "Error calling 'help %1'" +msgstr "" + +#: script/katecommandlinescript.cpp:123 +#, kde-format +msgid "No help specified for command '%1' in script %2" +msgstr "" + +#: script/katescript.cpp:282 +#, fuzzy, kde-format +#| msgid "Error: %1" +msgid "Error loading script %1: %2" +msgstr "Fout: %1" + +#: script/katescriptmanager.cpp:319 +#, kde-format +msgid "Reload all JavaScript files (indenters, command line scripts, etc)." +msgstr "" + +#: script/katescriptview.cpp:214 +#, fuzzy, kde-format +msgid "Command not found: %1" +msgstr "Opdrag nie gevind" + +#: search/katesearchbar.cpp:73 +#, kde-format +msgid "Add..." +msgstr "" + +#: search/katesearchbar.cpp:298 +#, fuzzy, kde-format +#| msgid "%1 replacement made." +#| msgid_plural "%1 replacements made." +msgctxt "short translation" +msgid "1 replacement made" +msgid_plural "%1 replacements made" +msgstr[0] "%1 plaasvervanger gemaak" +msgstr[1] "%1 plaasvervanger gemaak" + +#: search/katesearchbar.cpp:300 +#, kde-format +msgctxt "short translation" +msgid "1 match found" +msgid_plural "%1 matches found" +msgstr[0] "" +msgstr[1] "" + +#: search/katesearchbar.cpp:374 +#, kde-format +msgid "Reached top, continued from bottom" +msgstr "" + +#: search/katesearchbar.cpp:376 +#, kde-format +msgid "Reached bottom, continued from top" +msgstr "" + +#: search/katesearchbar.cpp:381 +#, kde-format +msgid "Not found" +msgstr "" + +#: search/katesearchbar.cpp:615 +#, kde-format +msgid "Bottom of file reached. Continue from top?" +msgstr "" + +#: search/katesearchbar.cpp:615 +#, kde-format +msgid "Top of file reached. Continue from bottom?" +msgstr "" + +#: search/katesearchbar.cpp:618 +#, fuzzy, kde-format +#| msgid "Continue from the end?" +msgid "Continue search?" +msgstr "Gaan voort van die einde?" + +#: search/katesearchbar.cpp:920 +#, fuzzy, kde-format +#| msgid "Highlighting" +msgid "SearchHighLight" +msgstr "Verligting" + +#: search/katesearchbar.cpp:1136 search/katesearchbar.cpp:1755 +#, kde-format +msgid "Clear history" +msgstr "" + +#: search/katesearchbar.cpp:1166 +#, fuzzy, kde-format +#| msgid "Move to Beginning of Line" +msgid "Beginning of line" +msgstr "Beweeg na Begin van Lyn" + +#: search/katesearchbar.cpp:1167 +#, fuzzy, kde-format +#| msgid "End &of line:" +msgid "End of line" +msgstr "Einde van lyn:" + +#: search/katesearchbar.cpp:1169 +#, kde-format +msgid "Match any character excluding new line (by default)" +msgstr "" + +#: search/katesearchbar.cpp:1170 +#, kde-format +msgid "One or more occurrences" +msgstr "" + +#: search/katesearchbar.cpp:1171 +#, kde-format +msgid "Zero or more occurrences" +msgstr "" + +#: search/katesearchbar.cpp:1172 +#, kde-format +msgid "Zero or one occurrences" +msgstr "" + +#: search/katesearchbar.cpp:1175 +#, kde-format +msgid " through occurrences" +msgstr "" + +#: search/katesearchbar.cpp:1181 +#, kde-format +msgid "Group, capturing" +msgstr "" + +#: search/katesearchbar.cpp:1182 +#, kde-format +msgid "Or" +msgstr "" + +#: search/katesearchbar.cpp:1183 +#, fuzzy, kde-format +#| msgid "Character" +msgid "Set of characters" +msgstr "Karakter" + +#: search/katesearchbar.cpp:1184 +#, fuzzy, kde-format +#| msgid "Delete Next Character" +msgid "Negative set of characters" +msgstr "Verwyder Volgende Karakter" + +#: search/katesearchbar.cpp:1188 +#, kde-format +msgid "Whole match reference" +msgstr "" + +#: search/katesearchbar.cpp:1199 +#, fuzzy, kde-format +#| msgid "&View Difference" +msgid "Reference" +msgstr "Vertoon Verskil" + +#: search/katesearchbar.cpp:1206 +#, fuzzy, kde-format +#| msgid "Line numbers:" +msgid "Line break" +msgstr "Lyn nommers:" + +#: search/katesearchbar.cpp:1207 +#, kde-format +msgid "Tab" +msgstr "" + +#: search/katesearchbar.cpp:1210 +#, kde-format +msgid "Word boundary" +msgstr "" + +#: search/katesearchbar.cpp:1211 +#, kde-format +msgid "Not word boundary" +msgstr "" + +#: search/katesearchbar.cpp:1212 +#, kde-format +msgid "Digit" +msgstr "" + +#: search/katesearchbar.cpp:1213 +#, kde-format +msgid "Non-digit" +msgstr "" + +#: search/katesearchbar.cpp:1214 +#, kde-format +msgid "Whitespace (excluding line breaks)" +msgstr "" + +#: search/katesearchbar.cpp:1215 +#, fuzzy, kde-format +#| msgid "&Replace" +msgid "Non-whitespace" +msgstr "Vervang" + +#: search/katesearchbar.cpp:1216 +#, kde-format +msgid "Word character (alphanumerics plus '_')" +msgstr "" + +#: search/katesearchbar.cpp:1217 +#, fuzzy, kde-format +#| msgid "Character" +msgid "Non-word character" +msgstr "Karakter" + +#: search/katesearchbar.cpp:1220 +#, kde-format +msgid "Octal character 000 to 377 (2^8-1)" +msgstr "" + +#: search/katesearchbar.cpp:1221 +#, kde-format +msgid "Hex character 0000 to FFFF (2^16-1)" +msgstr "" + +#: search/katesearchbar.cpp:1222 +#, fuzzy, kde-format +#| msgid "Backspace" +msgid "Backslash" +msgstr "Terugruimte" + +#: search/katesearchbar.cpp:1226 +#, kde-format +msgid "Group, non-capturing" +msgstr "" + +#: search/katesearchbar.cpp:1227 +#, kde-format +msgid "Positive Lookahead" +msgstr "" + +#: search/katesearchbar.cpp:1228 +#, kde-format +msgid "Negative lookahead" +msgstr "" + +#: search/katesearchbar.cpp:1232 +#, kde-format +msgid "Fixed-length positive lookbehind" +msgstr "" + +#: search/katesearchbar.cpp:1233 +#, kde-format +msgid "Fixed-length negative lookbehind" +msgstr "" + +#: search/katesearchbar.cpp:1238 +#, kde-format +msgid "Begin lowercase conversion" +msgstr "" + +#: search/katesearchbar.cpp:1239 +#, kde-format +msgid "Begin uppercase conversion" +msgstr "" + +#: search/katesearchbar.cpp:1240 +#, kde-format +msgid "End case conversion" +msgstr "" + +#: search/katesearchbar.cpp:1241 +#, kde-format +msgid "Lowercase first character conversion" +msgstr "" + +#: search/katesearchbar.cpp:1242 +#, kde-format +msgid "Uppercase first character conversion" +msgstr "" + +#: search/katesearchbar.cpp:1243 +#, kde-format +msgid "Replacement counter (for Replace All)" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: search/searchbarincremental.ui:50 +#, fuzzy, kde-format +#| msgid "Find" +msgid "F&ind:" +msgstr "Soek" + +#. i18n: ectx: property (toolTip), widget (QComboBox, pattern) +#: search/searchbarincremental.ui:78 search/searchbarpower.ui:295 +#, kde-format +msgid "Text to search for" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QToolButton, findNext) +#. i18n: ectx: property (toolTip), widget (QToolButton, next) +#: search/searchbarincremental.ui:91 search/searchbarpower.ui:175 +#, kde-format +msgid "Jump to next match" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QToolButton, findPrev) +#. i18n: ectx: property (toolTip), widget (QToolButton, prev) +#: search/searchbarincremental.ui:101 search/searchbarpower.ui:185 +#, fuzzy, kde-format +#| msgid "Go to the previous bookmark." +msgid "Jump to previous match" +msgstr "Gaan na die vorige boekmerk." + +#. i18n: ectx: property (toolTip), widget (QToolButton, matchCase) +#: search/searchbarincremental.ui:111 search/searchbarpower.ui:136 +#, fuzzy, kde-format +#| msgid "Case &sensitive" +msgid "Match case sensitive" +msgstr "Kas Sensitief" + +#. i18n: ectx: property (toolTip), widget (QToolButton, mutate) +#: search/searchbarincremental.ui:146 +#, kde-format +msgid "Switch to power search and replace bar" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: search/searchbarpower.ui:50 +#, kde-format +msgid "Fin&d:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: search/searchbarpower.ui:63 +#, fuzzy, kde-format +msgid "Rep&lace:" +msgstr "Vervang" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: search/searchbarpower.ui:76 +#, fuzzy, kde-format +#| msgid "&Bold" +msgid "&Mode:" +msgstr "Vetdruk" + +#. i18n: ectx: property (toolTip), widget (QComboBox, searchMode) +#: search/searchbarpower.ui:103 +#, fuzzy, kde-format +#| msgid "Search" +msgid "Search mode" +msgstr "Soektog" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:113 +#, fuzzy, kde-format +#| msgid "&Find Next" +msgid "Plain text" +msgstr "Soek Volgende" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:118 +#, kde-format +msgid "Whole words" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:123 +#, kde-format +msgid "Escape sequences" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:128 +#, fuzzy, kde-format +msgid "Regular expression" +msgstr "Gewone Uitdrukking" + +#. i18n: ectx: property (toolTip), widget (QToolButton, selectionOnly) +#: search/searchbarpower.ui:149 +#, fuzzy, kde-format +msgid "Search in the selection only" +msgstr "Keuse Slegs" + +#. i18n: ectx: property (toolTip), widget (QPushButton, replaceNext) +#: search/searchbarpower.ui:195 +#, fuzzy, kde-format +#| msgid "Replace Confirmation" +msgid "Replace next match" +msgstr "Vervang Opstelling" + +#. i18n: ectx: property (text), widget (QPushButton, replaceNext) +#. i18n: ectx: property (text), widget (QPushButton, m_replaceBtn) +#: search/searchbarpower.ui:198 spellcheck/spellcheckbar.ui:130 +#, kde-format +msgid "&Replace" +msgstr "Vervang" + +#. i18n: ectx: property (toolTip), widget (QPushButton, replaceAll) +#: search/searchbarpower.ui:224 +#, fuzzy, kde-format +#| msgid "Replace &All" +msgid "Replace all matches" +msgstr "Vervang Alle" + +#. i18n: ectx: property (text), widget (QPushButton, replaceAll) +#: search/searchbarpower.ui:227 +#, fuzzy, kde-format +#| msgid "Replace &All" +msgid "Replace &All" +msgstr "Vervang Alle" + +#. i18n: ectx: property (text), widget (QPushButton, findAll) +#: search/searchbarpower.ui:234 +#, kde-format +msgid "&Find All" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, cancel) +#: search/searchbarpower.ui:257 +#, kde-format +msgid "Cancel" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QToolButton, mutate) +#: search/searchbarpower.ui:268 +#, fuzzy, kde-format +#| msgid "Next Incremental Search Match" +msgid "Switch to incremental search bar" +msgstr "Volgende Inkrementele Soektog Ooreenstem" + +#. i18n: ectx: property (toolTip), widget (QComboBox, replacement) +#: search/searchbarpower.ui:314 +#, kde-format +msgid "Text to replace with" +msgstr "" + +#: spellcheck/spellcheckbar.cpp:148 +#, fuzzy, kde-format +#| msgid "Spellcheck Selection..." +msgid "Spell check canceled." +msgstr "Spellkontroleur Kiesing..." + +#: spellcheck/spellcheckbar.cpp:245 +#, fuzzy, kde-format +#| msgid "Spellcheck Selection..." +msgctxt "@info:progress" +msgid "Spell checking in progress…" +msgstr "Spellkontroleur Kiesing..." + +#: spellcheck/spellcheckbar.cpp:246 spellcheck/spellcheckbar.cpp:435 +#, kde-format +msgctxt "@title:window" +msgid "Check Spelling" +msgstr "" + +#: spellcheck/spellcheckbar.cpp:432 spellcheck/spellcheckbar.cpp:435 +#, fuzzy, kde-format +#| msgid "Spellcheck Selection..." +msgid "Spell check complete." +msgstr "Spellkontroleur Kiesing..." + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel2) +#. i18n: ectx: property (whatsThis), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:30 spellcheck/spellcheckbar.ui:46 +#, kde-format +msgid "" +"

This word was considered to be an \"unknown word\" because it does " +"not match any entry in the dictionary currently in use. It may also be a " +"word in a foreign language.

\n" +"

If the word is not misspelled, you may add it to the dictionary by " +"clicking Add to Dictionary. If you do not want to add the unknown " +"word to the dictionary, but you want to leave it unchanged, click Ignore or Ignore All.

\n" +"

However, if the word is misspelled, you can try to find the correct " +"replacement in the list below. If you cannot find a replacement there, you " +"may type it in the text box below, and click Replace or Replace " +"All.

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, textLabel2) +#: spellcheck/spellcheckbar.ui:33 +#, fuzzy, kde-format +msgid "Unknown word:" +msgstr "Boks Eienskappe" + +#. i18n: ectx: property (toolTip), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:40 +#, fuzzy, kde-format +msgid "Unknown word" +msgstr "Boks Eienskappe" + +#. i18n: ectx: property (text), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:49 +#, kde-format +msgid "misspelled" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_addBtn) +#: spellcheck/spellcheckbar.ui:72 +#, kde-format +msgid "" +"\n" +"

The unknown word was detected and considered unknown because it is not " +"included in the dictionary.
\n" +"Click here if you consider the unknown word not to be misspelled, and you " +"want to avoid wrongly detecting it again in the future. If you want to let " +"it remain as is, but not add it to the dictionary, then click Ignore " +"or Ignore All instead.

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, m_addBtn) +#: spellcheck/spellcheckbar.ui:75 +#, fuzzy, kde-format +#| msgid "&Section:" +msgid "<< Add to Dictionary" +msgstr "Seksie:" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel4) +#: spellcheck/spellcheckbar.ui:89 +#, kde-format +msgid "" +"\n" +"

If the unknown word is misspelled, you should type the correction for " +"your misspelled word here or select it from the list below.

\n" +"

You can then click Replace if you want to correct only this " +"occurrence of the word or Replace All if you want to correct all " +"occurrences.

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, textLabel4) +#: spellcheck/spellcheckbar.ui:92 +#, fuzzy, kde-format +#| msgid "Replace Confirmation" +msgid "Replace with:" +msgstr "Vervang Opstelling" + +#. i18n: ectx: property (text), widget (QPushButton, m_suggestBtn) +#: spellcheck/spellcheckbar.ui:118 +#, kde-format +msgid "S&uggest" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_replaceBtn) +#: spellcheck/spellcheckbar.ui:127 +#, kde-format +msgid "" +"\n" +"

Click here to replace this occurrence of the unknown text with the text " +"in the edit box above (to the left).

\n" +"
" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_skipBtn) +#: spellcheck/spellcheckbar.ui:140 +#, kde-format +msgid "" +"\n" +"

Click here to let this occurrence of the unknown word remain as is.

\n" +"

This action is useful when the word is a name, an acronym, a foreign word " +"or any other unknown word that you want to use but not add to the dictionary." +"

\n" +"
" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel5) +#. i18n: ectx: property (whatsThis), widget (Sonnet::DictionaryComboBox, m_language) +#: spellcheck/spellcheckbar.ui:156 spellcheck/spellcheckbar.ui:174 +#, kde-format +msgid "" +"\n" +"

Select the language of the document you are proofing here.

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, textLabel5) +#: spellcheck/spellcheckbar.ui:159 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "E Language" +msgid "&Language:" +msgstr "E Taal" + +#. i18n: ectx: property (toolTip), widget (Sonnet::DictionaryComboBox, m_language) +#: spellcheck/spellcheckbar.ui:169 +#, kde-format +msgid "Language Selection" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_autoCorrect) +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_skipAllBtn) +#: spellcheck/spellcheckbar.ui:197 spellcheck/spellcheckbar.ui:222 +#, kde-format +msgid "" +"\n" +"

Click here to let all occurrences of the unknown word remain as they are." +"

\n" +"

This action is useful when the word is a name, an acronym, a foreign word " +"or any other unknown word that you want to use but not add to the dictionary." +"

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, m_autoCorrect) +#: spellcheck/spellcheckbar.ui:200 +#, kde-format +msgid "Autocorrect" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_replaceAllBtn) +#: spellcheck/spellcheckbar.ui:209 +#, kde-format +msgid "" +"\n" +"

Click here to replace all occurrences of the unknown text with the text " +"in the edit box above (to the left).

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, m_replaceAllBtn) +#: spellcheck/spellcheckbar.ui:212 +#, fuzzy, kde-format +#| msgid "Replace &All" +msgid "R&eplace All" +msgstr "Vervang Alle" + +#. i18n: ectx: property (text), widget (QPushButton, m_skipAllBtn) +#: spellcheck/spellcheckbar.ui:225 +#, fuzzy, kde-format +#| msgid "&Ignore" +msgid "I&gnore All" +msgstr "Ignoreer" + +#: spellcheck/spellcheckdialog.cpp:51 +#, fuzzy, kde-format +#| msgid "Spelling (from cursor)..." +msgctxt "@action" +msgid "Spelling (from Cursor)…" +msgstr "Spelling (van plekwyser)..." + +#: spellcheck/spellcheckdialog.cpp:54 +#, kde-format +msgid "Check the document's spelling from the cursor and forward" +msgstr "Kontroleur die dokument se spelling van die plekwyser en vorentoe" + +#: spellcheck/spellingmenu.cpp:76 +#, fuzzy, kde-format +#| msgid "&Ignore" +msgid "Ignore Word" +msgstr "Ignoreer" + +#: spellcheck/spellingmenu.cpp:79 +#, fuzzy, kde-format +#| msgid "&Section:" +msgid "Add to Dictionary" +msgstr "Seksie:" + +#: spellcheck/spellingmenu.cpp:172 +#, kde-format +msgid "Spelling '%1'" +msgstr "" + +#: swapfile/kateswapdiffcreator.cpp:87 +#, fuzzy, kde-format +#| msgid "" +#| "The diff command failed. Please make sure that diff(1) is installed and " +#| "in your PATH." +msgid "" +"The diff command could not be found. Please make sure that diff(1) is " +"installed and in your PATH." +msgstr "" +"Die verskil opdrag het gevaal. Maak asseblief seker dat verskil(1) is " +"installeer en in jou PATH." + +#: swapfile/kateswapdiffcreator.cpp:98 +#, kde-format +msgid "The diff command '%1' could not be started." +msgstr "" + +#: swapfile/kateswapfile.cpp:642 +#, kde-format +msgid "The file was not closed properly." +msgstr "" + +#: swapfile/kateswapfile.cpp:645 +#, fuzzy, kde-format +#| msgid "&Ignore Changes" +msgid "View Changes" +msgstr "Ignoreer Veranderinge" + +#: swapfile/kateswapfile.cpp:646 +#, kde-format +msgid "Recover Data" +msgstr "" + +#: swapfile/kateswapfile.cpp:647 +#, fuzzy, kde-format +#| msgid "Disabled" +msgid "Discard" +msgstr "Deaktiveer" + +#: syntax/katecolortreewidget.cpp:34 syntax/katecolortreewidget.cpp:61 +#, kde-format +msgid "Use default color from the color theme" +msgstr "" + +#: syntax/katehighlightmenu.cpp:39 +#, fuzzy, kde-format +#| msgid "None" +msgid "None" +msgstr "Geen" + +#: syntax/katestyletreewidget.cpp:135 +#, fuzzy, kde-format +#| msgid "Context" +msgctxt "@title:column Meaning of text in editor" +msgid "Context" +msgstr "Konteks" + +#: syntax/katestyletreewidget.cpp:136 +#, fuzzy, kde-format +#| msgid "Normal" +msgctxt "@title:column Text style" +msgid "Normal" +msgstr "Normale" + +#: syntax/katestyletreewidget.cpp:136 +#, fuzzy, kde-format +#| msgid "Selected" +msgctxt "@title:column Text style" +msgid "Selected" +msgstr "Gekose" + +#: syntax/katestyletreewidget.cpp:136 +#, fuzzy, kde-format +#| msgid "Background" +msgctxt "@title:column Text style" +msgid "Background" +msgstr "Agtergrond" + +#: syntax/katestyletreewidget.cpp:137 +#, fuzzy, kde-format +#| msgid "Background Selected" +msgctxt "@title:column Text style" +msgid "Background Selected" +msgstr "Agtergrond Gekies" + +#: syntax/katestyletreewidget.cpp:139 +#, kde-format +msgid "Use Default Style" +msgstr "Gebruik Verstek Styl" + +#: syntax/katestyletreewidget.cpp:238 +#, kde-format +msgid "&Bold" +msgstr "Vetdruk" + +#: syntax/katestyletreewidget.cpp:243 +#, kde-format +msgid "&Italic" +msgstr "Kursief" + +#: syntax/katestyletreewidget.cpp:248 +#, kde-format +msgid "&Underline" +msgstr "Onderstreep" + +#: syntax/katestyletreewidget.cpp:253 +#, kde-format +msgid "S&trikeout" +msgstr "Uitkrap" + +#: syntax/katestyletreewidget.cpp:260 +#, fuzzy, kde-format +#| msgid "Normal &Color..." +msgctxt "@action:inmenu" +msgid "Normal &Color…" +msgstr "Normale Kleur..." + +#: syntax/katestyletreewidget.cpp:263 +#, fuzzy, kde-format +#| msgid "&Selected Color..." +msgctxt "@action:inmenu" +msgid "&Selected Color…" +msgstr "Gekose Kleur..." + +#: syntax/katestyletreewidget.cpp:266 +#, fuzzy, kde-format +#| msgid "&Background Color..." +msgctxt "@action:inmenu" +msgid "&Background Color…" +msgstr "Agtergrond Kleur..." + +#: syntax/katestyletreewidget.cpp:269 +#, fuzzy, kde-format +#| msgid "S&elected Background Color..." +msgctxt "@action:inmenu" +msgid "S&elected Background Color…" +msgstr "Gekose Agtergrond Kleur..." + +#: syntax/katestyletreewidget.cpp:275 +#, fuzzy, kde-format +#| msgid "Normal &Color..." +msgid "Unset Normal Color" +msgstr "Normale Kleur..." + +#: syntax/katestyletreewidget.cpp:278 +#, fuzzy, kde-format +#| msgid "Unset Selected Background Color" +msgid "Unset Selected Color" +msgstr "Wegstel van verkose Agtergrond Kleur" + +#: syntax/katestyletreewidget.cpp:284 +#, kde-format +msgid "Unset Background Color" +msgstr "Wegstel van Agtergrond Kleur" + +#: syntax/katestyletreewidget.cpp:289 +#, kde-format +msgid "Unset Selected Background Color" +msgstr "Wegstel van verkose Agtergrond Kleur" + +#: syntax/katestyletreewidget.cpp:295 +#, kde-format +msgid "Use &Default Style" +msgstr "Gebruik Verstek Styl" + +#: syntax/katestyletreewidget.cpp:408 +#, fuzzy, kde-format +msgctxt "No text or background color set" +msgid "None set" +msgstr "Geen" + +#: syntax/katestyletreewidget.cpp:642 +#, kde-format +msgid "" +"\"Use Default Style\" will be automatically unset when you change any style " +"properties." +msgstr "" +"\"Gebruik Verstek Styl\" sal wees automaties herstel wanneer jy verander " +"enige Styl eienskappe." + +#: syntax/katestyletreewidget.cpp:643 +#, kde-format +msgid "Kate Styles" +msgstr "Kate Style" + +#: syntax/katethemeconfig.cpp:47 +#, fuzzy, kde-format +#| msgid "Normal" +msgctxt "@item:intable Text context" +msgid "Normal" +msgstr "Normale" + +#: syntax/katethemeconfig.cpp:49 +#, fuzzy, kde-format +#| msgid "Keyword" +msgctxt "@item:intable Text context" +msgid "Keyword" +msgstr "Sleutelwoord" + +#: syntax/katethemeconfig.cpp:51 +#, fuzzy, kde-format +#| msgid "Function" +msgctxt "@item:intable Text context" +msgid "Function" +msgstr "Funksie" + +#: syntax/katethemeconfig.cpp:53 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Variable" +msgstr "Veranderlikes:" + +#: syntax/katethemeconfig.cpp:55 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Control Flow" +msgstr "" + +#: syntax/katethemeconfig.cpp:57 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Operator" +msgstr "" + +#: syntax/katethemeconfig.cpp:59 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Built-in" +msgstr "" + +#: syntax/katethemeconfig.cpp:61 +#, fuzzy, kde-format +#| msgid "File e&xtensions:" +msgctxt "@item:intable Text context" +msgid "Extension" +msgstr "Lêer uitbreidings:" + +#: syntax/katethemeconfig.cpp:63 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Preprocessor" +msgstr "" + +#: syntax/katethemeconfig.cpp:65 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Attribute" +msgstr "" + +#: syntax/katethemeconfig.cpp:68 +#, fuzzy, kde-format +#| msgid "Character" +msgctxt "@item:intable Text context" +msgid "Character" +msgstr "Karakter" + +#: syntax/katethemeconfig.cpp:70 +#, fuzzy, kde-format +#| msgid "Character" +msgctxt "@item:intable Text context" +msgid "Special Character" +msgstr "Karakter" + +#: syntax/katethemeconfig.cpp:72 +#, fuzzy, kde-format +#| msgid "String" +msgctxt "@item:intable Text context" +msgid "String" +msgstr "String" + +#: syntax/katethemeconfig.cpp:74 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Verbatim String" +msgstr "" + +#: syntax/katethemeconfig.cpp:76 +#, fuzzy, kde-format +#| msgid "Filetype Specific Settings" +msgctxt "@item:intable Text context" +msgid "Special String" +msgstr "Lêertipe Spesifieke Instellings" + +#: syntax/katethemeconfig.cpp:78 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Imports, Modules, Includes" +msgstr "" + +#: syntax/katethemeconfig.cpp:81 +#, fuzzy, kde-format +#| msgid "Data Type" +msgctxt "@item:intable Text context" +msgid "Data Type" +msgstr "Data Tipe" + +#: syntax/katethemeconfig.cpp:83 +#, fuzzy, kde-format +#| msgid "Decimal/Value" +msgctxt "@item:intable Text context" +msgid "Decimal/Value" +msgstr "Desimaal/Waarde" + +#: syntax/katethemeconfig.cpp:85 +#, fuzzy, kde-format +#| msgid "Base-N Integer" +msgctxt "@item:intable Text context" +msgid "Base-N Integer" +msgstr "Base-N Heelgetal" + +#: syntax/katethemeconfig.cpp:87 +#, fuzzy, kde-format +#| msgid "Floating Point" +msgctxt "@item:intable Text context" +msgid "Floating Point" +msgstr "Wissel Punt" + +#: syntax/katethemeconfig.cpp:89 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Constant" +msgstr "Konteks" + +#: syntax/katethemeconfig.cpp:92 +#, fuzzy, kde-format +#| msgid "Comment" +msgctxt "@item:intable Text context" +msgid "Comment" +msgstr "Kommentaar" + +#: syntax/katethemeconfig.cpp:94 +#, fuzzy, kde-format +#| msgid "Show indentation lines" +msgctxt "@item:intable Text context" +msgid "Documentation" +msgstr "Vertoon inkeping Reëls" + +#: syntax/katethemeconfig.cpp:96 +#, fuzzy, kde-format +#| msgid "Indentation" +msgctxt "@item:intable Text context" +msgid "Annotation" +msgstr "Inkeping" + +#: syntax/katethemeconfig.cpp:98 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Comment Variable" +msgstr "Veranderlikes:" + +#: syntax/katethemeconfig.cpp:101 +#, fuzzy, kde-format +#| msgid "Region Marker" +msgctxt "@item:intable Text context" +msgid "Region Marker" +msgstr "Area Merker" + +#: syntax/katethemeconfig.cpp:103 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Inform" +msgctxt "@item:intable Text context" +msgid "Information" +msgstr "Informeer" + +#: syntax/katethemeconfig.cpp:105 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Warning" +msgstr "String" + +#: syntax/katethemeconfig.cpp:107 +#, fuzzy, kde-format +#| msgid "Alert" +msgctxt "@item:intable Text context" +msgid "Alert" +msgstr "Opmerksaam" + +#: syntax/katethemeconfig.cpp:110 +#, fuzzy, kde-format +#| msgid "Others" +msgctxt "@item:intable Text context" +msgid "Others" +msgstr "Andere" + +#: syntax/katethemeconfig.cpp:113 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Error" +msgstr "Fout: " + +#: syntax/katethemeconfig.cpp:162 +#, fuzzy, kde-format +#| msgid "Use Default Style" +msgid "Use Default Colors" +msgstr "Gebruik Verstek Styl" + +#: syntax/katethemeconfig.cpp:182 +#, fuzzy, kde-format +#| msgid "Unset Background Color" +msgid "Editor Background Colors" +msgstr "Wegstel van Agtergrond Kleur" + +#: syntax/katethemeconfig.cpp:184 +#, fuzzy, kde-format +msgid "Text Area" +msgstr "Teks Area Agtergrond" + +#: syntax/katethemeconfig.cpp:186 +#, kde-format +msgid "

Sets the background color of the editing area.

" +msgstr "

Verstel die agtergrond kleur van die redigering area.

" + +#: syntax/katethemeconfig.cpp:191 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgid "Selected Text" +msgstr "Gekose teks:" + +#: syntax/katethemeconfig.cpp:194 +#, fuzzy, kde-format +#| msgid "" +#| "

Sets the background color of the selection.

To set the text " +#| "color for selected text, use the \"Configure Highlighting\" dialog." +#| "

" +msgid "" +"

Sets the background color of the selection.

To set the text color " +"for selected text, use the "Configure Highlighting" dialog." +"

" +msgstr "" +"

Verstel die agtergrond kleur van die keuse.

Om in te stel die teks " +"kleur vir gekose teks, gebruik die \"Konfigureer Verligting\" dialoog." +"

" + +#: syntax/katethemeconfig.cpp:200 +#, fuzzy, kde-format +#| msgid "Current line:" +msgid "Current Line" +msgstr "Huidige lyn:" + +#: syntax/katethemeconfig.cpp:202 +#, kde-format +msgid "" +"

Sets the background color of the currently active line, which means the " +"line where your cursor is positioned.

" +msgstr "" +"

Verstel die agtergrond kleur van die huidiglik aktiewe lyn, wat beteken " +"die lyn waar jou plekaanduier is geposisioneer.

" + +#: syntax/katethemeconfig.cpp:207 +#, fuzzy, kde-format +#| msgid "Highlighting" +msgid "Search Highlight" +msgstr "Verligting" + +#: syntax/katethemeconfig.cpp:209 +#, fuzzy, kde-format +#| msgid "

Sets the background color of the editing area.

" +msgid "

Sets the background color of search results.

" +msgstr "

Verstel die agtergrond kleur van die redigering area.

" + +#: syntax/katethemeconfig.cpp:214 +#, fuzzy, kde-format +#| msgid "Highlighting" +msgid "Replace Highlight" +msgstr "Verligting" + +#: syntax/katethemeconfig.cpp:216 +#, fuzzy, kde-format +#| msgid "

Sets the background color of the editing area.

" +msgid "

Sets the background color of replaced text.

" +msgstr "

Verstel die agtergrond kleur van die redigering area.

" + +#: syntax/katethemeconfig.cpp:223 +#, fuzzy, kde-format +#| msgid "Show &Icon Border" +msgid "Icon Border" +msgstr "Vertoon Ikoon Grens" + +#: syntax/katethemeconfig.cpp:226 +#, fuzzy, kde-format +#| msgid "Background" +msgid "Background Area" +msgstr "Agtergrond" + +#: syntax/katethemeconfig.cpp:228 +#, fuzzy, kde-format +#| msgid "

Sets the background color of the editing area.

" +msgid "

Sets the background color of the icon border.

" +msgstr "

Verstel die agtergrond kleur van die redigering area.

" + +#: syntax/katethemeconfig.cpp:233 view/screenshotdialog.cpp:265 +#, fuzzy, kde-format +#| msgid "Line numbers:" +msgid "Line Numbers" +msgstr "Lyn nommers:" + +#: syntax/katethemeconfig.cpp:235 +#, fuzzy, kde-format +#| msgid "" +#| "

This color will be used to draw the line numbers (if enabled) and the " +#| "lines in the code-folding pane.

" +msgid "

This color will be used to draw the line numbers (if enabled).

" +msgstr "" +"

Die kleut sal gebruik word om te trek die lyn nommers (as aktiveer) en " +"die lyne in die kode-vou skrifstuk.

" + +#: syntax/katethemeconfig.cpp:240 +#, fuzzy, kde-format +#| msgid "Current line:" +msgid "Current Line Number" +msgstr "Huidige lyn:" + +#: syntax/katethemeconfig.cpp:242 +#, fuzzy, kde-format +#| msgid "" +#| "

This color will be used to draw the line numbers (if enabled) and the " +#| "lines in the code-folding pane.

" +msgid "" +"

This color will be used to draw the number of the current line (if " +"enabled).

" +msgstr "" +"

Die kleut sal gebruik word om te trek die lyn nommers (as aktiveer) en " +"die lyne in die kode-vou skrifstuk.

" + +#: syntax/katethemeconfig.cpp:247 +#, kde-format +msgid "Separator" +msgstr "" + +#: syntax/katethemeconfig.cpp:249 +#, fuzzy, kde-format +#| msgid "" +#| "

This color will be used to draw the line numbers (if enabled) and the " +#| "lines in the code-folding pane.

" +msgid "" +"

This color will be used to draw the line between line numbers and the " +"icon borders, if both are enabled.

" +msgstr "" +"

Die kleut sal gebruik word om te trek die lyn nommers (as aktiveer) en " +"die lyne in die kode-vou skrifstuk.

" + +#: syntax/katethemeconfig.cpp:254 +#, fuzzy, kde-format +#| msgid "Word wrap markers:" +msgid "Word Wrap Marker" +msgstr "Woord oorvloei markeerders:" + +#: syntax/katethemeconfig.cpp:257 +#, kde-format +msgid "" +"

Sets the color of Word Wrap-related markers:

Static Word Wrap
A vertical line which shows the column where text is going to be " +"wrapped
Dynamic Word Wrap
An arrow shown to the left of " +"visually-wrapped lines
" +msgstr "" +"

Instel die kleur van Woord Oorvloei verwante merkers:

Statiese " +"Woord Oorvloei
'n Vertikale lyn wat die kolom vertoon waar die teks " +"gaan oorvloei
Dinamiese Woord Oorvloei
'n Pyltjie wys na " +"links van die visuele-oorvloei lyne
" + +#: syntax/katethemeconfig.cpp:264 +#, kde-format +msgid "Code Folding" +msgstr "Kode vou" + +#: syntax/katethemeconfig.cpp:266 +#, fuzzy, kde-format +#| msgid "

Sets the background color of the editing area.

" +msgid "

Sets the color of the code folding bar.

" +msgstr "

Verstel die agtergrond kleur van die redigering area.

" + +#: syntax/katethemeconfig.cpp:271 +#, fuzzy, kde-format +#| msgid "Scroll Line Up" +msgid "Modified Lines" +msgstr "Rol Lyn Begin" + +#: syntax/katethemeconfig.cpp:273 +#, fuzzy, kde-format +#| msgid "

Sets the color of the tabulator marks:

" +msgid "" +"

Sets the color of the line modification marker for modified lines.

" +msgstr "

Verstel die kleur van die tabelle merke:

" + +#: syntax/katethemeconfig.cpp:278 +#, fuzzy, kde-format +#| msgid "Save File" +msgid "Saved Lines" +msgstr "Stoor Lêer" + +#: syntax/katethemeconfig.cpp:280 +#, fuzzy, kde-format +#| msgid "

Sets the color of the tabulator marks:

" +msgid "

Sets the color of the line modification marker for saved lines.

" +msgstr "

Verstel die kleur van die tabelle merke:

" + +#: syntax/katethemeconfig.cpp:287 +#, fuzzy, kde-format +#| msgid "Selection Mode" +msgid "Text Decorations" +msgstr "Kiesing Module" + +#: syntax/katethemeconfig.cpp:290 +#, kde-format +msgid "Spelling Mistake Line" +msgstr "" + +#: syntax/katethemeconfig.cpp:292 +#, fuzzy, kde-format +#| msgid "

Sets the color of the tabulator marks:

" +msgid "" +"

Sets the color of the line that is used to indicate spelling mistakes.

" +msgstr "

Verstel die kleur van die tabelle merke:

" + +#: syntax/katethemeconfig.cpp:297 +#, fuzzy, kde-format +#| msgid "Tab markers:" +msgid "Tab and Space Markers" +msgstr "GUI-element markeerders:" + +#: syntax/katethemeconfig.cpp:299 +#, fuzzy, kde-format +#| msgid "

Sets the color of the tabulator marks:

" +msgid "

Sets the color of the tabulator marks.

" +msgstr "

Verstel die kleur van die tabelle merke:

" + +#: syntax/katethemeconfig.cpp:304 +#, fuzzy, kde-format +#| msgid "Indentation" +msgid "Indentation Line" +msgstr "Inkeping" + +#: syntax/katethemeconfig.cpp:306 +#, fuzzy, kde-format +#| msgid "

Sets the color of the tabulator marks:

" +msgid "

Sets the color of the vertical indentation lines.

" +msgstr "

Verstel die kleur van die tabelle merke:

" + +#: syntax/katethemeconfig.cpp:311 +#, fuzzy, kde-format +#| msgid "Bracket highlight:" +msgid "Bracket Highlight" +msgstr "Hakkie verlig:" + +#: syntax/katethemeconfig.cpp:314 +#, kde-format +msgid "" +"

Sets the bracket matching color. This means, if you place the cursor e.g. " +"at a (, the matching ) will be highlighted with this color.

" +msgstr "" +"

Verstel die hakkie ooreenstemmende kleur. Hierdie beteken, as jy plaas " +"die plekaanduier bv. na 'n (, die ooreenstemmende ) sal wees " +"verlig met hierdie kleur.

" + +#: syntax/katethemeconfig.cpp:322 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "Marker Colors" +msgstr "Kleure" + +#: syntax/katethemeconfig.cpp:324 view/kateviewhelpers.cpp:1536 +#, kde-format +msgid "Bookmark" +msgstr "Boekmerk" + +#: syntax/katethemeconfig.cpp:325 +#, kde-format +msgid "Active Breakpoint" +msgstr "Aktiewe Breekpunt" + +#: syntax/katethemeconfig.cpp:326 +#, kde-format +msgid "Reached Breakpoint" +msgstr "Bereikte Breekpunt" + +#: syntax/katethemeconfig.cpp:327 +#, kde-format +msgid "Disabled Breakpoint" +msgstr "Gebreklike Breekpunt" + +#: syntax/katethemeconfig.cpp:328 +#, kde-format +msgid "Execution" +msgstr "Uitvoering" + +#: syntax/katethemeconfig.cpp:329 +#, fuzzy, kde-format +msgid "Warning" +msgstr "String" + +#: syntax/katethemeconfig.cpp:330 +#, fuzzy, kde-format +msgid "Error" +msgstr "Fout: " + +#: syntax/katethemeconfig.cpp:332 +#, fuzzy, kde-format +#| msgid "" +#| "

Sets the background color of the selected marker type.

Note: The marker color is displayed lightly because of transparency.

" +msgid "" +"

Sets the background color of mark type.

Note: The marker " +"color is displayed lightly because of transparency.

" +msgstr "" +"

Verstel die agtergrond kleur van die verkose merker tipe.

Nota: Die merker kleur word ligter vertoon as gevolg van deursigtigheid.

" + +#: syntax/katethemeconfig.cpp:344 +#, kde-format +msgid "Text Templates & Snippets" +msgstr "" + +#: syntax/katethemeconfig.cpp:349 +#, fuzzy, kde-format +#| msgid "Background" +msgid "Background" +msgstr "Agtergrond" + +#: syntax/katethemeconfig.cpp:355 +#, kde-format +msgid "Editable Placeholder" +msgstr "" + +#: syntax/katethemeconfig.cpp:361 +#, kde-format +msgid "Focused Editable Placeholder" +msgstr "" + +#: syntax/katethemeconfig.cpp:367 +#, kde-format +msgid "Not Editable Placeholder" +msgstr "" + +#: syntax/katethemeconfig.cpp:501 +#, fuzzy, kde-format +#| msgid "" +#| "This list displays the default styles for the current schema and offers " +#| "the means to edit them. The style name reflects the current style " +#| "settings.

To edit the colors, click the colored squares, or select the " +#| "color to edit from the popup menu.

You can unset the Background and " +#| "Selected Background colors from the popup menu when appropriate." +msgid "" +"

This list displays the default styles for the current color theme and " +"offers the means to edit them. The style name reflects the current style " +"settings.

To edit the colors, click the colored squares, or select the " +"color to edit from the popup menu.

You can unset the Background and " +"Selected Background colors from the popup menu when appropriate.

" +msgstr "" +"Hierdie lys vertoon die verstek style van die huidige skema en bied aan die " +"beteken om hulle te redigeer. Die styl naam reflekteer die huidige styl " +"instellings.

Om te redigeer die kleur, kliek die gekleurde vierkante, of " +"kies die kleur om te redigeer van die opspring kieslys.

Jy kan terugstel " +"die Agtergrond en Verkose Agtergrond kleure van die opspring kieslys wanneer " +"verkies." + +#: syntax/katethemeconfig.cpp:568 +#, fuzzy, kde-format +#| msgid "Normal Text" +msgctxt "@item:intable" +msgid "Normal Text & Source Code" +msgstr "Normale Teks" + +#: syntax/katethemeconfig.cpp:575 +#, kde-format +msgctxt "@item:intable" +msgid "Numbers, Types & Constants" +msgstr "" + +#: syntax/katethemeconfig.cpp:582 +#, fuzzy, kde-format +#| msgid "Character" +msgctxt "@item:intable" +msgid "Strings & Characters" +msgstr "Karakter" + +#: syntax/katethemeconfig.cpp:589 +#, fuzzy, kde-format +#| msgid "Show indentation lines" +msgctxt "@item:intable" +msgid "Comments & Documentation" +msgstr "Vertoon inkeping Reëls" + +#: syntax/katethemeconfig.cpp:596 +#, kde-format +msgctxt "@item:intable" +msgid "Miscellaneous" +msgstr "" + +#: syntax/katethemeconfig.cpp:704 +#, kde-format +msgid "H&ighlight:" +msgstr "Verlig:" + +#: syntax/katethemeconfig.cpp:746 +#, fuzzy, kde-format +#| msgid "" +#| "This list displays the contexts of the current syntax highlight mode and " +#| "offers the means to edit them. The context name reflects the current " +#| "style settings.

To edit using the keyboard, press <SPACE>" +#| " and choose a property from the popup menu.

To edit the " +#| "colors, click the colored squares, or select the color to edit from the " +#| "popup menu.

You can unset the Background and Selected Background colors " +#| "from the context menu when appropriate." +msgid "" +"

This list displays the contexts of the current syntax highlight mode and " +"offers the means to edit them. The context name reflects the current style " +"settings.

To edit using the keyboard, press <SPACE> and choose a property from the popup menu.

To edit the colors, " +"click the colored squares, or select the color to edit from the popup menu.

You can unset the Background and Selected Background colors from the " +"context menu when appropriate.

" +msgstr "" +"Hierdie lys vertoon die kontekste van die huidige sintaks verlig modus en " +"bied die beteken om te redigeer hulle. Die konteks naam reflekteer die " +"huidige styl instellings.

Om te redigeer gebruik die sleutelbord, druk " +"<SPASIEgt; en kies 'n eienskap van die opspring kieslys." +"

Om te redigeer die kleure, kliek die gekleurde vierkante, of kies die " +"kleur om te redigeer van die opspring kieslys.

Jy kan terugstel die " +"Agtergrond en Verkose Agtergrond kleure van die konteks kieslys wanneer " +"verkies." + +#: syntax/katethemeconfig.cpp:1027 +#, fuzzy, kde-format +#| msgid "Normal Text Styles" +msgid "Default Theme" +msgstr "Normale Teks Style" + +#: syntax/katethemeconfig.cpp:1028 +#, fuzzy, kde-format +msgid "Theme Editor" +msgstr "Konfigureer Redigeerder..." + +#: syntax/katethemeconfig.cpp:1046 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgid "Select theme:" +msgstr "Gekose teks:" + +#: syntax/katethemeconfig.cpp:1119 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Scheme" +msgid "&Theme:" +msgstr "Skema" + +#: syntax/katethemeconfig.cpp:1128 +#, fuzzy, kde-format +#| msgid "&Save File As..." +msgctxt "@action:button" +msgid "&Copy…" +msgstr "Stoor Lêer as..." + +#: syntax/katethemeconfig.cpp:1136 +#, fuzzy, kde-format +#| msgid "E&xport as HTML..." +msgctxt "@action:button" +msgid "Export…" +msgstr "Uitvoer as Html..." + +#: syntax/katethemeconfig.cpp:1140 +#, fuzzy, kde-format +#| msgid "Normal &Color..." +msgctxt "@action:button" +msgid "Import…" +msgstr "Normale Kleur..." + +#: syntax/katethemeconfig.cpp:1147 +#, kde-format +msgid "Bundled read-only theme. To modify the theme, please copy it." +msgstr "" + +#: syntax/katethemeconfig.cpp:1160 +#, kde-format +msgid "Colors" +msgstr "Kleure" + +#: syntax/katethemeconfig.cpp:1164 +#, fuzzy, kde-format +#| msgid "Normal Text Styles" +msgid "Default Text Styles" +msgstr "Normale Teks Style" + +#: syntax/katethemeconfig.cpp:1168 +#, kde-format +msgid "Highlighting Text Styles" +msgstr "Verligting Teks Style" + +#: syntax/katethemeconfig.cpp:1180 +#, fuzzy, kde-format +#| msgid "Font & Color Schemas" +msgid "Exporting color theme: %1" +msgstr "Skriftipe & Kleur Skemas" + +#: syntax/katethemeconfig.cpp:1182 syntax/katethemeconfig.cpp:1203 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "Color theme" +msgstr "Kleure" + +#: syntax/katethemeconfig.cpp:1203 +#, fuzzy, kde-format +#| msgid "Font & Color Schemas" +msgid "Importing Color Theme" +msgstr "Skriftipe & Kleur Skemas" + +#: syntax/katethemeconfig.cpp:1217 +#, kde-format +msgid "" +"Importing will overwrite the existing theme file \"%1\". This can not be " +"undone." +msgstr "" + +#: syntax/katethemeconfig.cpp:1219 +#, fuzzy, kde-format +#| msgid "Close Nevertheless" +msgid "Import Nevertheless" +msgstr "Maak nogsteeds toe" + +#: syntax/katethemeconfig.cpp:1308 +#, fuzzy, kde-format +#| msgid "Font & Color Schemas" +msgid "Follow System Color Scheme" +msgstr "Skriftipe & Kleur Skemas" + +#: syntax/katethemeconfig.cpp:1375 +#, kde-format +msgid "Do you really want to delete the theme \"%1\"? This can not be undone." +msgstr "" + +#: syntax/katethemeconfig.cpp:1377 +#, fuzzy, kde-format +#| msgid "Close Nevertheless" +msgid "Delete Nevertheless" +msgstr "Maak nogsteeds toe" + +#: syntax/katethemeconfig.cpp:1419 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "Copy theme" +msgstr "Kleure" + +#: syntax/katethemeconfig.cpp:1420 +#, kde-format +msgid "Name for copy of color theme \"%1\":" +msgstr "" + +#: syntax/katethemeconfig.cpp:1432 +#, kde-format +msgid "" +"

The theme \"%1\" already exists.

Please choose a different theme " +"name.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:1433 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "Copy Theme" +msgstr "Kleure" + +#: syntax/katethemeconfig.cpp:1486 syntax/katethemeconfig.cpp:1491 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "Color Themes" +msgstr "Kleure" + +#: utils/kateautoindent.cpp:88 +#, fuzzy, kde-format +#| msgid "None" +msgctxt "Autoindent mode" +msgid "None" +msgstr "Geen" + +#: utils/kateautoindent.cpp:92 +#, fuzzy, kde-format +#| msgid "Normal" +msgctxt "Autoindent mode" +msgid "Normal" +msgstr "Normale" + +#: utils/katebookmarks.cpp:49 +#, fuzzy, kde-format +#| msgid "Clear &Bookmark" +msgid "Toggle &Bookmark" +msgstr "Maak skoon Boekmerk" + +#: utils/katebookmarks.cpp:53 +#, kde-format +msgid "If a line has no bookmark then add one, otherwise remove it." +msgstr "" +"As 'n lyn het nee boekmerk dan word voeg by een, andersins verwyder dit." + +#: utils/katebookmarks.cpp:56 +#, kde-format +msgid "Clear &All Bookmarks" +msgstr "Maak skoon Alle Boekmerke" + +#: utils/katebookmarks.cpp:59 +#, kde-format +msgid "Remove all bookmarks of the current document." +msgstr "Verwyder alle boekmerke van die huidige dokument." + +#: utils/katebookmarks.cpp:62 utils/katebookmarks.cpp:219 +#, kde-format +msgid "Next Bookmark" +msgstr "Volgende Boekmerk" + +#: utils/katebookmarks.cpp:66 +#, kde-format +msgid "Go to the next bookmark." +msgstr "Gaan na die volgende boekmerk." + +#: utils/katebookmarks.cpp:69 utils/katebookmarks.cpp:220 +#, kde-format +msgid "Previous Bookmark" +msgstr "Vorige Boekmerk" + +#: utils/katebookmarks.cpp:73 +#, kde-format +msgid "Go to the previous bookmark." +msgstr "Gaan na die vorige boekmerk." + +#: utils/katebookmarks.cpp:76 +#, fuzzy, kde-format +msgid "&Bookmarks" +msgstr "Boekmerk" + +#: utils/katebookmarks.cpp:192 +#, kde-format +msgid "&Next: %1 - \"%2\"" +msgstr "Volgende: %1 - \"%2\"" + +#: utils/katebookmarks.cpp:198 +#, kde-format +msgid "&Previous: %1 - \"%2\"" +msgstr "Vorige: %1 - \"%2\"" + +#: utils/katecmds.cpp:53 +#, kde-format +msgid "

indent

Indents the selected lines or the current line

" +msgstr "" + +#: utils/katecmds.cpp:58 +#, kde-format +msgid "

unindent

Unindents the selected lines or current line.

" +msgstr "" + +#: utils/katecmds.cpp:63 +#, kde-format +msgid "" +"

cleanindent

Cleans up the indentation of the selected lines or " +"current line according to the indentation settings in the document.

" +msgstr "" + +#: utils/katecmds.cpp:68 +#, kde-format +msgid "" +"

comment

Inserts comment markers to make the selection or selected " +"lines or current line a comment according to the text format as defined by " +"the syntax highlight definition for the document.

" +msgstr "" + +#: utils/katecmds.cpp:74 +#, kde-format +msgid "" +"

uncomment

Removes comment markers from the selection or selected " +"lines or current line according to the text format as defined by the syntax " +"highlight definition for the document.

" +msgstr "" + +#: utils/katecmds.cpp:80 +#, kde-format +msgid "" +"

goto line number

This command navigates to the specified " +"line number.

" +msgstr "" + +#: utils/katecmds.cpp:85 +#, kde-format +msgid "" +"

set-indent-pasted-text enable

If enabled, indentation of " +"text pasted from the clipboard is adjusted using the current indenter.

Possible true values: 1 on true
possible false values: 0 off false" +msgstr "" + +#: utils/katecmds.cpp:91 +#, fuzzy, kde-format +#| msgid "Delete the current file type." +msgid "Deletes the current line." +msgstr "Verwyder die huidige lêer tipe." + +#: utils/katecmds.cpp:95 +#, kde-format +msgid "" +"

set-tab-width width

Sets the tab width to the number " +"width

" +msgstr "" + +#: utils/katecmds.cpp:100 +#, kde-format +msgid "" +"

set-replace-tab enable

If enabled, tabs are replaced with " +"spaces as you type.

Possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:107 +#, kde-format +msgid "" +"

set-show-tabs enable

If enabled, TAB characters and trailing " +"whitespace will be visualized by a small dot.

Possible true values: 1 " +"on true
possible false values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:114 +#, kde-format +msgid "" +"

set-remove-trailing-spaces mode

Removes the trailing spaces " +"in the document depending on the mode.

Possible values:" +"

  • none: never remove trailing spaces.
  • modified: " +"remove trailing spaces only of modified lines.
  • all: remove " +"trailing spaces in the entire document.

" +msgstr "" + +#: utils/katecmds.cpp:125 +#, kde-format +msgid "" +"

set-indent-width width

Sets the indentation width to the " +"number width. Used only if you are indenting with spaces.

" +msgstr "" + +#: utils/katecmds.cpp:130 +#, kde-format +msgid "" +"

set-indent-mode mode

The mode parameter is a value as seen " +"in the Tools - Indentation menu

" +msgstr "" + +#: utils/katecmds.cpp:135 +#, kde-format +msgid "" +"

set-auto-indent enable

Enable or disable autoindentation.

possible true values: 1 on true
possible false values: 0 off false" +msgstr "" + +#: utils/katecmds.cpp:142 +#, kde-format +msgid "" +"

set-line-numbers enable

Sets the visibility of the line " +"numbers pane.

possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:149 +#, kde-format +msgid "" +"

set-folding-markers enable

Sets the visibility of the " +"folding markers pane.

possible true values: 1 on true
possible " +"false values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:156 +#, kde-format +msgid "" +"

set-icon-border enable

Sets the visibility of the icon " +"border.

possible true values: 1 on true
possible false values: 0 " +"off false

" +msgstr "" + +#: utils/katecmds.cpp:163 +#, kde-format +msgid "" +"

set-word-wrap enable

Enables dynamic word wrap according to " +"enable

possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:170 +#, kde-format +msgid "" +"

set-word-wrap-column width

Sets the line width for hard " +"wrapping to width. This is used if you are having your text wrapped " +"automatically.

" +msgstr "" + +#: utils/katecmds.cpp:175 +#, kde-format +msgid "" +"

set-replace-tabs-save enable

When enabled, tabs will be " +"replaced with whitespace whenever the document is saved.

possible " +"true values: 1 on true
possible false values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:182 +#, kde-format +msgid "" +"

set-highlight highlight

Sets the syntax highlighting system " +"for the document. The argument must be a valid highlight name, as seen in " +"the Tools → Highlighting menu. This command provides an autocompletion list " +"for its argument.

" +msgstr "" + +#: utils/katecmds.cpp:188 +#, kde-format +msgid "

set-mode mode

Sets the mode as seen in Tools - Mode

" +msgstr "" + +#: utils/katecmds.cpp:193 +#, kde-format +msgid "" +"

set-show-indent enable

If enabled, indentation will be " +"visualized by a vertical dotted line.

possible true values: 1 on " +"true
possible false values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:199 +#, fuzzy, kde-format +msgid "

Open the Print dialog to print the current document.

" +msgstr "Druk die huidige dokument." + +#: utils/katecmds.cpp:314 utils/katecmds.cpp:341 +#, kde-format +msgid "Missing argument. Usage: %1 " +msgstr "Vermisde argument. Gebruik: %1 " + +#: utils/katecmds.cpp:327 +#, fuzzy, kde-format +#| msgid "No such highlight '%1'" +msgid "No such highlighting '%1'" +msgstr "Geen so verligting '%1'" + +#: utils/katecmds.cpp:333 +#, fuzzy, kde-format +#| msgid "No such command: \"%1\"" +msgid "No such mode '%1'" +msgstr "Geen so opdrag: \"%1\"" + +#: utils/katecmds.cpp:346 +#, kde-format +msgid "Failed to convert argument '%1' to integer." +msgstr "Gevaal om om te skakel argument '%1' na integraal." + +#: utils/katecmds.cpp:350 utils/katecmds.cpp:355 +#, kde-format +msgid "Width must be at least 1." +msgstr "Wye moet te minste wees 1." + +#: utils/katecmds.cpp:360 +#, kde-format +msgid "Column must be at least 1." +msgstr "Kolom moet ten minste wees 1." + +#: utils/katecmds.cpp:390 +#, kde-format +msgid "Usage: %1 on|off|1|0|true|false" +msgstr "Gebruik: %1 aan|af|1|0|waar|vals" + +#: utils/katecmds.cpp:417 +#, kde-format +msgid "Bad argument '%1'. Usage: %2 on|off|1|0|true|false" +msgstr "Slegte argument '%1'. Gebruik: %2 aan|af|1|0|waar|vals" + +#: utils/katecmds.cpp:421 +#, kde-format +msgid "" +"Usage: set-remove-trailing-spaces 0|-|none or 1|+|mod|modified or 2|*|all" +msgstr "" + +#: utils/katecmds.cpp:435 vimode/cmds.cpp:168 +#, kde-format +msgid "Unknown command '%1'" +msgstr "Onbekende opdrag '%1'" + +#: utils/katecmds.cpp:493 +#, kde-format +msgid "" +"

char identifier

This command allows you to insert literal " +"characters by their numerical identifier, in decimal, octal or hexadecimal " +"form.

Examples:

  • char 234
  • char 0x1234

" +msgstr "" + +#: utils/katecmds.cpp:560 +#, kde-format +msgid "" +"

date or date format

Inserts a date/time string as defined by " +"the specified format, or the format yyyy-MM-dd hh:mm:ss if none is specified." +"

Possible format specifiers are:
dThe day as " +"number without a leading zero (1-31).
ddThe day as " +"number with a leading zero (01-31).
dddThe " +"abbreviated localized day name (e.g. 'Mon'..'Sun').
ddddThe long localized day name (e.g. 'Monday'..'Sunday').
MThe month as number without a leading zero (1-12).
MMThe month as number with a leading zero (01-12).
MMMThe abbreviated localized month name (e.g. " +"'Jan'..'Dec').
yyThe year as two digit number " +"(00-99).
yyyyThe year as four digit number " +"(1752-8000).
hThe hour without a leading zero " +"(0..23 or 1..12 if AM/PM display).
hhThe hour with " +"a leading zero (00..23 or 01..12 if AM/PM display).
mThe minute without a leading zero (0..59).
mmThe minute with a leading zero (00..59).
sThe second without a leading zero (0..59).
ssThe second with a leading zero (00..59).
zThe milliseconds without leading zeroes (0..999).
zzzThe milliseconds with leading zeroes (000..999).
APUse AM/PM display. AP will be replaced by either " +"\"AM\" or \"PM\".
apUse am/pm display. ap will be " +"replaced by either \"am\" or \"pm\".

" +msgstr "" + +#: utils/katecmds.cpp:621 +#, fuzzy, kde-format +#| msgid "Selected" +msgid "Remove Duplicate Lines" +msgstr "Gekose" + +#: utils/katecmds.cpp:622 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgid "Remove Duplicates and Sort Text Alphabetically" +msgstr "Gekose teks:" + +#: utils/katecmds.cpp:623 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgid "Sort Text Naturally" +msgstr "Gekose teks:" + +#: utils/katecmds.cpp:624 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgid "Sort Selected Text Alphabetically" +msgstr "Gekose teks:" + +#: utils/katecmds.cpp:699 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "" +"

sort

Sort the selected text or whole document if there is no " +"selection

" +msgstr "Kies die hele teks van die huidige dokument." + +#: utils/katecmds.cpp:703 +#, kde-format +msgid "" +"

uniq

Remove duplicate lines from the selected text or whole " +"document if there is no selection.

" +msgstr "" + +#: utils/katecmds.cpp:707 +#, kde-format +msgid "" +"

sortuniq

Sort the selected text or whole document and then remove " +"all duplicate lines.

" +msgstr "" + +#: utils/katecmds.cpp:711 +#, kde-format +msgid "" +"

natsort

Sort the selected text or whole document in natural order." +"
Here is an example to show the difference to the normal sort method:" +"
sort(a10, a1, a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" +msgstr "" + +#: utils/kateglobal.cpp:60 +#, kde-format +msgid "Kate Part" +msgstr "Kate Deel" + +#: utils/kateglobal.cpp:62 +#, kde-format +msgid "Embeddable editor component" +msgstr "Inlegbare redigeerder komponent" + +#: utils/kateglobal.cpp:64 +#, fuzzy, kde-format +msgid "(c) 2000-2025 The Kate Authors" +msgstr "(c) 2000-2004 Die Kate Deel Outeure" + +#: utils/kateglobal.cpp:84 +#, kde-format +msgid "Christoph Cullmann" +msgstr "" + +#: utils/kateglobal.cpp:84 +#, kde-format +msgid "Maintainer" +msgstr "Onderhouer" + +#: utils/kateglobal.cpp:85 +#, kde-format +msgid "Dominik Haumann" +msgstr "" + +#: utils/kateglobal.cpp:85 utils/kateglobal.cpp:86 utils/kateglobal.cpp:87 +#: utils/kateglobal.cpp:90 utils/kateglobal.cpp:93 utils/kateglobal.cpp:98 +#, kde-format +msgid "Core Developer" +msgstr "Kern Ontwikkelaar" + +#: utils/kateglobal.cpp:86 +#, kde-format +msgid "Milian Wolff" +msgstr "" + +#: utils/kateglobal.cpp:87 +#, kde-format +msgid "Joseph Wenninger" +msgstr "" + +#: utils/kateglobal.cpp:88 +#, kde-format +msgid "Erlend Hamberg" +msgstr "" + +#: utils/kateglobal.cpp:89 +#, kde-format +msgid "Bernhard Beschow" +msgstr "" + +#: utils/kateglobal.cpp:89 utils/kateglobal.cpp:105 +#, fuzzy, kde-format +msgid "Developer" +msgstr "Kern Ontwikkelaar" + +#: utils/kateglobal.cpp:90 +#, kde-format +msgid "Anders Lund" +msgstr "" + +#: utils/kateglobal.cpp:91 +#, kde-format +msgid "Michel Ludwig" +msgstr "" + +#: utils/kateglobal.cpp:91 +#, fuzzy, kde-format +#| msgid "Spellcheck" +msgid "On-the-fly spell checking" +msgstr "Spelltoetser" + +#: utils/kateglobal.cpp:92 +#, kde-format +msgid "Pascal Létourneau" +msgstr "" + +#: utils/kateglobal.cpp:92 +#, kde-format +msgid "Large scale bug fixing" +msgstr "" + +#: utils/kateglobal.cpp:93 +#, kde-format +msgid "Hamish Rodda" +msgstr "" + +#: utils/kateglobal.cpp:94 +#, kde-format +msgid "Waldo Bastian" +msgstr "" + +#: utils/kateglobal.cpp:94 +#, kde-format +msgid "The cool buffersystem" +msgstr "Die oulike bufferstelsel" + +#: utils/kateglobal.cpp:95 +#, kde-format +msgid "Charles Samuels" +msgstr "" + +#: utils/kateglobal.cpp:95 +#, kde-format +msgid "The Editing Commands" +msgstr "Die Redigering Opdragte" + +#: utils/kateglobal.cpp:96 +#, kde-format +msgid "Matt Newell" +msgstr "" + +#: utils/kateglobal.cpp:96 +#, kde-format +msgid "Testing, ..." +msgstr "Toetsing, ..." + +#: utils/kateglobal.cpp:97 +#, kde-format +msgid "Michael Bartl" +msgstr "" + +#: utils/kateglobal.cpp:97 +#, kde-format +msgid "Former Core Developer" +msgstr "Vorige Kern Ontwikkelaar" + +#: utils/kateglobal.cpp:98 +#, kde-format +msgid "Michael McCallum" +msgstr "" + +#: utils/kateglobal.cpp:99 +#, kde-format +msgid "Michael Koch" +msgstr "" + +#: utils/kateglobal.cpp:99 +#, kde-format +msgid "KWrite port to KParts" +msgstr "Kskryf poort na Kparts" + +#: utils/kateglobal.cpp:100 +#, kde-format +msgid "Christian Gebauer" +msgstr "" + +#: utils/kateglobal.cpp:101 +#, kde-format +msgid "Simon Hausmann" +msgstr "" + +#: utils/kateglobal.cpp:102 +#, fuzzy, kde-format +#| msgid "Region Marker" +msgid "Glen Parker" +msgstr "Area Merker" + +#: utils/kateglobal.cpp:102 +#, kde-format +msgid "KWrite Undo History, Kspell integration" +msgstr "Kskryf Herstel Geskiedenis, Kspell integrasie" + +#: utils/kateglobal.cpp:103 +#, kde-format +msgid "Scott Manson" +msgstr "" + +#: utils/kateglobal.cpp:103 +#, kde-format +msgid "KWrite XML Syntax highlighting support" +msgstr "Kskryf Xml Sintaks verligting ondersteun" + +#: utils/kateglobal.cpp:104 +#, kde-format +msgid "John Firebaugh" +msgstr "" + +#: utils/kateglobal.cpp:104 +#, kde-format +msgid "Patches and more" +msgstr "Lappe en meer" + +#: utils/kateglobal.cpp:105 +#, kde-format +msgid "Andreas Kling" +msgstr "" + +#: utils/kateglobal.cpp:106 +#, kde-format +msgid "Mirko Stocker" +msgstr "" + +#: utils/kateglobal.cpp:106 +#, kde-format +msgid "Various bugfixes" +msgstr "" + +#: utils/kateglobal.cpp:107 +#, kde-format +msgid "Matthew Woehlke" +msgstr "" + +#: utils/kateglobal.cpp:107 +#, kde-format +msgid "Selection, KColorScheme integration" +msgstr "" + +#: utils/kateglobal.cpp:108 +#, kde-format +msgid "Sebastian Pipping" +msgstr "" + +#: utils/kateglobal.cpp:109 +#, kde-format +msgid "Search bar back- and front-end" +msgstr "" + +#: utils/kateglobal.cpp:112 +#, kde-format +msgid "Jochen Wilhelmy" +msgstr "" + +#: utils/kateglobal.cpp:112 +#, fuzzy, kde-format +#| msgid "KWrite Author" +msgid "Original KWrite Author" +msgstr "Kskryf Outeur" + +#: utils/kateglobal.cpp:113 +#, kde-format +msgid "Gerald Senarclens de Grancy" +msgstr "" + +#: utils/kateglobal.cpp:113 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Quake Script" +msgid "QA and Scripting" +msgstr "Quake Skript" + +#: utils/kateglobal.cpp:115 +#, kde-format +msgid "Matteo Merli" +msgstr "" + +#: utils/kateglobal.cpp:115 +#, kde-format +msgid "Highlighting for RPM Spec-Files, Perl, Diff and more" +msgstr "Verligting vir Rpm Spec-Files, Perl, Diff en meer" + +#: utils/kateglobal.cpp:116 +#, kde-format +msgid "Rocky Scaletta" +msgstr "" + +#: utils/kateglobal.cpp:116 +#, kde-format +msgid "Highlighting for VHDL" +msgstr "Verligting vir Vhdl" + +#: utils/kateglobal.cpp:117 +#, kde-format +msgid "Yury Lebedev" +msgstr "" + +#: utils/kateglobal.cpp:117 +#, kde-format +msgid "Highlighting for SQL" +msgstr "Verligting vir Sql" + +#: utils/kateglobal.cpp:118 +#, kde-format +msgid "Chris Ross" +msgstr "" + +#: utils/kateglobal.cpp:118 +#, kde-format +msgid "Highlighting for Ferite" +msgstr "Verligting vir Feriet" + +#: utils/kateglobal.cpp:119 +#, kde-format +msgid "Nick Roux" +msgstr "" + +#: utils/kateglobal.cpp:119 +#, kde-format +msgid "Highlighting for ILERPG" +msgstr "Verligting vir Ilerpg" + +#: utils/kateglobal.cpp:120 +#, kde-format +msgid "Carsten Niehaus" +msgstr "" + +#: utils/kateglobal.cpp:120 +#, kde-format +msgid "Highlighting for LaTeX" +msgstr "Verligting vir Latex" + +#: utils/kateglobal.cpp:121 +#, kde-format +msgid "Per Wigren" +msgstr "" + +#: utils/kateglobal.cpp:121 +#, kde-format +msgid "Highlighting for Makefiles, Python" +msgstr "Verligting vir Makefiles, Python" + +#: utils/kateglobal.cpp:122 +#, kde-format +msgid "Jan Fritz" +msgstr "" + +#: utils/kateglobal.cpp:122 +#, kde-format +msgid "Highlighting for Python" +msgstr "Verligting vir Python" + +#: utils/kateglobal.cpp:123 +#, kde-format +msgid "Daniel Naber" +msgstr "" + +#: utils/kateglobal.cpp:124 +#, kde-format +msgid "Roland Pabel" +msgstr "" + +#: utils/kateglobal.cpp:124 +#, kde-format +msgid "Highlighting for Scheme" +msgstr "Verligting vir Skema" + +#: utils/kateglobal.cpp:125 +#, kde-format +msgid "Cristi Dumitrescu" +msgstr "" + +#: utils/kateglobal.cpp:125 +#, kde-format +msgid "PHP Keyword/Datatype list" +msgstr " php Sleutelwoord/Datatipe lys" + +#: utils/kateglobal.cpp:126 +#, kde-format +msgid "Carsten Pfeiffer" +msgstr "" + +#: utils/kateglobal.cpp:126 +#, kde-format +msgid "Very nice help" +msgstr "Baie oulike hulp" + +#: utils/kateglobal.cpp:127 +#, kde-format +msgid "Bruno Massa" +msgstr "" + +#: utils/kateglobal.cpp:127 +#, fuzzy, kde-format +#| msgid "Highlighting for LaTeX" +msgid "Highlighting for Lua" +msgstr "Verligting vir Latex" + +#: utils/kateglobal.cpp:129 +#, kde-format +msgid "All people who have contributed and I have forgotten to mention" +msgstr "Alle mense wie het bygedra en I het vergeet na vermeld" + +#: utils/kateglobal.cpp:131 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "WEB-Vertaler (http://kde.af.org.za), Juanita Franz " + +#: utils/kateglobal.cpp:131 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "frix@expertron.co.za, juanita.franz@vr-web.de " + +#: utils/kateglobal.cpp:255 +#, fuzzy, kde-format +msgid "Configure" +msgstr "Konfigureer..." + +#: utils/katesedcmd.cpp:268 +#, fuzzy, kde-format +#| msgid "Replace Confirmation" +msgid "replace with %1?" +msgstr "Vervang Opstelling" + +#: utils/katesedcmd.cpp:274 +#, fuzzy, kde-format +msgctxt "%2 is the translation of the next message" +msgid "1 replacement done on %2" +msgid_plural "%1 replacements done on %2" +msgstr[0] "1 plaasvervanger gemaak" +msgstr[1] "%1 plaasvervangings gemaak" + +#: utils/katesedcmd.cpp:277 +#, fuzzy, kde-format +msgctxt "substituted into the previous message" +msgid "1 line" +msgid_plural "%1 lines" +msgstr[0] "Onderstreep" +msgstr[1] "Onderstreep" + +#: utils/katevariableexpansionhelpers.cpp:77 +#, kde-format +msgid "" +msgstr "" + +#: utils/katevariableexpansionhelpers.cpp:161 +#, fuzzy, kde-format +msgid "Insert variable" +msgstr "Inkeep" + +#: utils/katevariableexpansionhelpers.cpp:165 +#, fuzzy, kde-format +msgid "Variables" +msgstr "Veranderlikes:" + +#: utils/katevariableexpansionhelpers.cpp:169 +#, fuzzy, kde-format +#| msgid "String" +msgid "Filter" +msgstr "String" + +#: utils/katevariableexpansionhelpers.cpp:188 +#: utils/katevariableexpansionhelpers.cpp:217 +#, kde-format +msgid "Please select a variable." +msgstr "" + +#: utils/katevariableexpansionhelpers.cpp:206 +#, fuzzy, kde-format +#| msgid "Missing argument. Usage: %1 " +msgid "Current value: %1" +msgstr "Vermisde argument. Gebruik: %1 " + +#: utils/katevariableexpansionhelpers.cpp:214 +#, fuzzy, kde-format +#| msgid "Current line:" +msgid "Current value: %1" +msgstr "Huidige lyn:" + +#: utils/katevariableexpansionmanager.cpp:86 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "File base name without path and suffix of the current document." +msgstr "Kies die hele teks van die huidige dokument." + +#: utils/katevariableexpansionmanager.cpp:94 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "File extension of the current document." +msgstr "Kies die hele teks van die huidige dokument." + +#: utils/katevariableexpansionmanager.cpp:102 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "File name without path of the current document." +msgstr "Kies die hele teks van die huidige dokument." + +#: utils/katevariableexpansionmanager.cpp:110 +#, fuzzy, kde-format +#| msgid "Reload the current document from disk." +msgid "Full path of the current document including the file name." +msgstr "Herlaai die huidige dokument van disket." + +#: utils/katevariableexpansionmanager.cpp:118 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Contents of the current document." +msgstr "Druk die huidige dokument." + +#: utils/katevariableexpansionmanager.cpp:125 +#, fuzzy, kde-format +#| msgid "Reload the current document from disk." +msgid "Full path of the current document excluding the file name." +msgstr "Herlaai die huidige dokument van disket." + +#: utils/katevariableexpansionmanager.cpp:133 +#, kde-format +msgid "" +"Full document path including file name, with native path separator " +"(backslash on Windows)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:141 +#, kde-format +msgid "" +"Full document path excluding file name, with native path separator " +"(backslash on Windows)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:149 +#, kde-format +msgid "" +"Line number of the text cursor position in current document (starts with 0)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:156 +#, kde-format +msgid "" +"Column number of the text cursor position in current document (starts with " +"0)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:163 +#, kde-format +msgid "X component in global screen coordinates of the cursor position." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:170 +#, kde-format +msgid "Y component in global screen coordinates of the cursor position." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:177 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "Text selection of the current document." +msgstr "Kies die hele teks van die huidige dokument." + +#: utils/katevariableexpansionmanager.cpp:184 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "Start line of selected text of the current document." +msgstr "Kies die hele teks van die huidige dokument." + +#: utils/katevariableexpansionmanager.cpp:191 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "Start column of selected text of the current document." +msgstr "Kies die hele teks van die huidige dokument." + +#: utils/katevariableexpansionmanager.cpp:198 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "End line of selected text of the current document." +msgstr "Kies die hele teks van die huidige dokument." + +#: utils/katevariableexpansionmanager.cpp:205 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "End column of selected text of the current document." +msgstr "Kies die hele teks van die huidige dokument." + +#: utils/katevariableexpansionmanager.cpp:212 +#, fuzzy, kde-format +#| msgid "Remove all bookmarks of the current document." +msgid "Number of rows of the current document." +msgstr "Verwyder alle boekmerke van die huidige dokument." + +#: utils/katevariableexpansionmanager.cpp:219 +#, fuzzy, kde-format +#| msgid "End of document reached." +msgid "Read a document variable." +msgstr "Einde van dokument bereik." + +#: utils/katevariableexpansionmanager.cpp:227 +#, kde-format +msgid "The current date in current locale format." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:234 +#, kde-format +msgid "The current date (ISO)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:241 +#, kde-format +msgid "The current date (QDate formatstring)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:249 +#, kde-format +msgid "The current time in current locale format." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:256 +#, kde-format +msgid "The current time (ISO)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:263 +#, kde-format +msgid "The current time (QTime formatstring)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:271 +#, kde-format +msgid "Access to environment variables." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:279 +#, kde-format +msgid "Evaluate simple JavaScript statements." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:289 +#, kde-format +msgid "Encode text to make it URL compatible." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:297 +#, kde-format +msgid "Generate a new UUID." +msgstr "" + +#: variableeditor/variableeditor.cpp:40 +#, kde-format +msgid "Kate Handbook." +msgstr "" + +#: variableeditor/variableeditor.cpp:213 +#, fuzzy, kde-format +msgid "true" +msgstr "Uitkrap" + +#: variableeditor/variableeditor.cpp:214 +#, kde-format +msgid "false" +msgstr "" + +#: variableeditor/variableeditor.cpp:350 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "none" +msgstr "" + +#: variableeditor/variableeditor.cpp:351 +#, fuzzy, kde-format +#| msgid "Scroll Line Up" +msgctxt "value for variable remove-trailing-spaces" +msgid "modified" +msgstr "Rol Lyn Begin" + +#: variableeditor/variableeditor.cpp:352 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "all" +msgstr "" + +#: variableeditor/variablelineedit.cpp:42 +#, kde-format +msgid "Show list of valid variables." +msgstr "" + +#: variableeditor/variablelineedit.cpp:115 +#, fuzzy, kde-format +#| msgid "Select to Matching Bracket" +msgctxt "short translation please" +msgid "Enable automatic insertion of brackets." +msgstr "Kies na Ooreenstemmende Hakkie" + +#: variableeditor/variablelineedit.cpp:121 +#, fuzzy, kde-format +#| msgid "The number of spaces to indent with." +msgctxt "short translation please" +msgid "Set the number of autocenter lines." +msgstr "Die aantal spasies om te inkeep met." + +#: variableeditor/variablelineedit.cpp:126 +#, fuzzy, kde-format +#| msgid "S&elected Background Color..." +msgctxt "short translation please" +msgid "Set the document background color." +msgstr "Gekose Agtergrond Kleur..." + +#: variableeditor/variablelineedit.cpp:131 +#, fuzzy, kde-format +#| msgid "&Backspace key indents" +msgctxt "short translation please" +msgid "Pressing backspace in leading whitespace unindents." +msgstr "Backspace sleutel doen inkeping" + +#: variableeditor/variablelineedit.cpp:139 +#, fuzzy, kde-format +#| msgid "Bl&ock Selection Mode" +msgctxt "short translation please" +msgid "Enable block selection mode." +msgstr "Blok Keuse Module" + +#: variableeditor/variablelineedit.cpp:144 +#, kde-format +msgctxt "short translation please" +msgid "Enable the byte order mark (BOM) when saving Unicode files." +msgstr "" + +#: variableeditor/variablelineedit.cpp:149 +#, kde-format +msgctxt "short translation please" +msgid "Set the color for the bracket highlight." +msgstr "" + +#: variableeditor/variablelineedit.cpp:154 +#, fuzzy, kde-format +#| msgid "

Sets the background color of the editing area.

" +msgctxt "short translation please" +msgid "Set the background color for the current line." +msgstr "

Verstel die agtergrond kleur van die redigering area.

" + +#: variableeditor/variablelineedit.cpp:160 +#, kde-format +msgctxt "short translation please" +msgid "Set the default dictionary used for spell checking." +msgstr "" + +#: variableeditor/variablelineedit.cpp:165 +#, fuzzy, kde-format +#| msgid "Enable static &word wrap" +msgctxt "short translation please" +msgid "Enable dynamic word wrap of long lines." +msgstr "Aktiveer statiese woord oorvloei" + +#: variableeditor/variablelineedit.cpp:172 +#, fuzzy, kde-format +#| msgid "Select to End of Line" +msgctxt "short translation please" +msgid "Sets the end of line mode." +msgstr "Kies na Einde van Lyn" + +#: variableeditor/variablelineedit.cpp:177 +#, kde-format +msgctxt "short translation please" +msgid "" +"Enable whether pressing enter will insert selected auto completion item." +msgstr "" + +#: variableeditor/variablelineedit.cpp:182 +#, kde-format +msgctxt "short translation please" +msgid "Enable folding markers in the editor border." +msgstr "" + +#: variableeditor/variablelineedit.cpp:187 +#, kde-format +msgctxt "short translation please" +msgid "Enable folding preview in the editor border." +msgstr "" + +#: variableeditor/variablelineedit.cpp:193 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgctxt "short translation please" +msgid "Set the point size of the document font." +msgstr "Kies die hele teks van die huidige dokument." + +#: variableeditor/variablelineedit.cpp:198 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgctxt "short translation please" +msgid "Set the font of the document." +msgstr "Kies die hele teks van die huidige dokument." + +#: variableeditor/variablelineedit.cpp:214 +#, fuzzy, kde-format +#| msgid "Kate Syntax Highlighting Parser" +msgctxt "short translation please" +msgid "Set the syntax highlighting." +msgstr "Kate Sintaks verligting ondersteun" + +#: variableeditor/variablelineedit.cpp:219 +#, kde-format +msgctxt "short translation please" +msgid "Set the icon bar color." +msgstr "" + +#: variableeditor/variablelineedit.cpp:224 +#, kde-format +msgctxt "short translation please" +msgid "Enable the icon border in the editor view." +msgstr "" + +#: variableeditor/variablelineedit.cpp:229 +#, fuzzy, kde-format +#| msgid "Show indentation lines" +msgctxt "short translation please" +msgid "Set the auto indentation style." +msgstr "Vertoon inkeping Reëls" + +#: variableeditor/variablelineedit.cpp:234 +#, kde-format +msgctxt "short translation please" +msgid "Adjust indentation of text pasted from the clipboard." +msgstr "" + +#: variableeditor/variablelineedit.cpp:240 +#, kde-format +msgctxt "short translation please" +msgid "Set the indentation depth for each indent level." +msgstr "" + +#: variableeditor/variablelineedit.cpp:245 +#, kde-format +msgctxt "short translation please" +msgid "Allow odd indentation level (no multiple of indent width)." +msgstr "" + +#: variableeditor/variablelineedit.cpp:250 +#, fuzzy, kde-format +#| msgid "Show &line numbers" +msgctxt "short translation please" +msgid "Show line numbers." +msgstr "Vertoon lyn nommers" + +#: variableeditor/variablelineedit.cpp:255 +#, kde-format +msgctxt "short translation please" +msgid "Insert newline at end of file on save." +msgstr "" + +#: variableeditor/variablelineedit.cpp:260 +#, kde-format +msgctxt "short translation please" +msgid "Enable overwrite mode in the document." +msgstr "" + +#: variableeditor/variablelineedit.cpp:265 +#, kde-format +msgctxt "short translation please" +msgid "Enable persistent text selection." +msgstr "" + +#: variableeditor/variablelineedit.cpp:270 +#, kde-format +msgctxt "short translation please" +msgid "Replace tabs with spaces when saving the document." +msgstr "" + +#: variableeditor/variablelineedit.cpp:275 +#, fuzzy, kde-format +#| msgid "Replace &All" +msgctxt "short translation please" +msgid "Replace tabs with spaces." +msgstr "Vervang Alle" + +#: variableeditor/variablelineedit.cpp:280 +#, fuzzy, kde-format +#| msgid "Remove &trailing spaces" +msgctxt "short translation please" +msgid "Remove trailing spaces when saving the document." +msgstr "Verwyder agtervolgende spasies" + +#: variableeditor/variablelineedit.cpp:285 +#, fuzzy, kde-format +#| msgid "Show &scrollbar marks" +msgctxt "short translation please" +msgid "Show scrollbar minimap." +msgstr "Wys rolstaaf merke" + +#: variableeditor/variablelineedit.cpp:290 +#, fuzzy, kde-format +#| msgid "Show &scrollbar marks" +msgctxt "short translation please" +msgid "Show scrollbar preview." +msgstr "Wys rolstaaf merke" + +#: variableeditor/variablelineedit.cpp:301 +#, fuzzy, kde-format +#| msgid "Font & Color Schemas" +msgctxt "short translation please" +msgid "Set the color scheme." +msgstr "Skriftipe & Kleur Skemas" + +#: variableeditor/variablelineedit.cpp:306 +#, kde-format +msgctxt "short translation please" +msgid "Set the text selection color." +msgstr "" + +#: variableeditor/variablelineedit.cpp:311 +#, fuzzy, kde-format +#| msgid "Highlighting Rules" +msgctxt "short translation please" +msgid "Visualize tabs and trailing spaces." +msgstr "Verligting Reëls" + +#: variableeditor/variablelineedit.cpp:316 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgctxt "short translation please" +msgid "Enable smart home navigation." +msgstr "Woord Klaarmaak Inprop" + +#: variableeditor/variablelineedit.cpp:321 +#, fuzzy, kde-format +#| msgid "&Tab key indents" +msgctxt "short translation please" +msgid "Pressing TAB key indents." +msgstr "Oortjie sleutel doen inkeping" + +#: variableeditor/variablelineedit.cpp:327 +#, kde-format +msgctxt "short translation please" +msgid "Set the tab display width." +msgstr "" + +#: variableeditor/variablelineedit.cpp:333 +#, fuzzy, kde-format +#| msgid "" +#| "Sets the number of undo/redo steps to record. More steps uses more memory." +msgctxt "short translation please" +msgid "Set the number of undo steps to remember (0 equals infinity)." +msgstr "" +"Verstel die nommer van herstel/herstel herroep stappe na opneem. Meer stappe " +"gebruik Meer geheue." + +#: variableeditor/variablelineedit.cpp:339 +#, kde-format +msgctxt "short translation please" +msgid "Set the word wrap column." +msgstr "" + +#: variableeditor/variablelineedit.cpp:344 +#, fuzzy, kde-format +#| msgid "S&elected Background Color..." +msgctxt "short translation please" +msgid "Set the word wrap marker color." +msgstr "Gekose Agtergrond Kleur..." + +#: variableeditor/variablelineedit.cpp:349 +#, kde-format +msgctxt "short translation please" +msgid "Enable word wrap while typing text." +msgstr "" + +#: view/katestatusbar.cpp:114 +#, kde-format +msgid "Current cursor position. Click to go to a specific line." +msgstr "" + +#: view/katestatusbar.cpp:127 +#, kde-format +msgid "Insert mode and VI input mode indicator. Click to change the mode." +msgstr "" + +#: view/katestatusbar.cpp:135 +#, fuzzy, kde-format +msgid "Change dictionary" +msgstr "Konfigureer Redigeerder..." + +#: view/katestatusbar.cpp:161 view/katestatusbar.cpp:488 +#, fuzzy, kde-format +#| msgid "Tab width:" +msgid "Tab Width" +msgstr "Oortjie wydte:" + +#: view/katestatusbar.cpp:169 view/katestatusbar.cpp:503 +#, fuzzy, kde-format +#| msgid "Indentation with Spaces" +msgid "Indentation Width" +msgstr "Inkeping met Spasies" + +#: view/katestatusbar.cpp:177 +#, fuzzy, kde-format +#| msgid "&Indentation" +msgid "Indentation Mode" +msgstr "Inkeping" + +#: view/katestatusbar.cpp:179 +#, fuzzy, kde-format +#| msgid "Tabulators" +msgid "Tabulators && Spaces" +msgstr "Tabelvormers" + +#: view/katestatusbar.cpp:182 +#, fuzzy, kde-format +#| msgid "Tabulators" +msgid "Tabulators" +msgstr "Tabelvormers" + +#: view/katestatusbar.cpp:185 +#, fuzzy, kde-format +#| msgid "&Replace" +msgid "Spaces" +msgstr "Vervang" + +#: view/katestatusbar.cpp:197 +#, fuzzy, kde-format +#| msgid "E&ncoding" +msgid "Encoding" +msgstr "Enkodering" + +#: view/katestatusbar.cpp:200 view/katestatusbar.cpp:201 +#, fuzzy, kde-format +#| msgid "End &of line:" +msgid "End of line type" +msgstr "Einde van lyn:" + +#: view/katestatusbar.cpp:207 +#, fuzzy, kde-format +#| msgid "&Bold" +msgid "Mode" +msgstr "Vetdruk" + +#: view/katestatusbar.cpp:209 view/kateview.cpp:703 +#, kde-format +msgid "" +"Here you can choose which mode should be used for the current document. This " +"will influence the highlighting and folding being used, for example." +msgstr "" + +#: view/katestatusbar.cpp:216 +#, fuzzy, kde-format +#| msgid "Kate Syntax Highlighting Parser" +msgid "Syntax highlighting" +msgstr "Kate Sintaks verligting ondersteun" + +#: view/katestatusbar.cpp:261 +#, kde-format +msgid "Line/Column compact mode" +msgstr "" + +#: view/katestatusbar.cpp:307 +#, fuzzy, kde-format +#| msgid " BLK " +msgid "[BLOCK] %1" +msgstr " Blk " + +#: view/katestatusbar.cpp:323 +#, kde-format +msgid "%1/%2:%3" +msgstr "" + +#: view/katestatusbar.cpp:325 +#, kde-format +msgid "%1:%2" +msgstr "" + +#: view/katestatusbar.cpp:329 +#, fuzzy, kde-format +msgid "Line %1 of %2, Column %3" +msgstr "Lyn: %1" + +#: view/katestatusbar.cpp:331 +#, fuzzy, kde-format +msgid "Line %1, Column %2" +msgstr "Lyn: %1" + +#: view/katestatusbar.cpp:405 +#, kde-format +msgid "Soft Tabs: %1" +msgstr "" + +#: view/katestatusbar.cpp:406 +#, kde-format +msgid "Soft Tabs: %1 (%2)" +msgstr "" + +#: view/katestatusbar.cpp:407 +#, fuzzy, kde-format +msgid "Tab Size: %1" +msgstr "Lyn: %1" + +#: view/katestatusbar.cpp:408 +#, kde-format +msgid "Indent/Tab: %1/%2" +msgstr "" + +#: view/katestatusbar.cpp:448 view/katestatusbar.cpp:474 +#, fuzzy, kde-format +msgctxt "@item:inmenu" +msgid "Other…" +msgstr "Ander" + +#: view/katestatusbar.cpp:476 +#, fuzzy, kde-format +msgid "Other (%1)" +msgid_plural "Other (%1)" +msgstr[0] "Ander" +msgstr[1] "Ander" + +#: view/katestatusbar.cpp:488 +#, kde-format +msgid "Please specify the wanted tab width:" +msgstr "" + +#: view/katestatusbar.cpp:504 +#, kde-format +msgid "Please specify the wanted indentation width:" +msgstr "" + +#: view/katestatusbar.cpp:567 +#, kde-format +msgctxt "" +"%1 and %3 are the selected words/chars count, %2 and %4 are the total words/" +"chars count." +msgid "Words %1/%2, Chars %3/%4" +msgstr "" + +#: view/katestatusbar.cpp:573 +#, kde-format +msgctxt "%1 and %2 are the total words/chars count." +msgid "Words %1, Chars %2" +msgstr "" + +#: view/katestatusbar.cpp:588 +#, kde-format +msgid "Zoom: %1%" +msgstr "" + +#: view/kateview.cpp:440 +#, kde-format +msgid "Cut the selected text and move it to the clipboard" +msgstr "Knip die gekose teks en beweeg dit na die klipbord" + +#: view/kateview.cpp:445 +#, kde-format +msgid "Paste previously copied or cut clipboard contents" +msgstr "Plak vorige gekopieër of knip klipbord inhoud" + +#: view/kateview.cpp:448 +#, kde-format +msgid "" +"Use this command to copy the currently selected text to the system clipboard." +msgstr "" +"Gebruik hierdie opdrag om te kopieër die huidiglik gekose teks na die " +"stelsel klipbord." + +#: view/kateview.cpp:454 +#, kde-format +msgid "Clipboard &History Paste" +msgstr "" + +#: view/kateview.cpp:459 +#, fuzzy, kde-format +#| msgid "&Automatic end of line detection" +msgid "Paste Selection" +msgstr "Automaties einde van lyn opsporing" + +#: view/kateview.cpp:461 +#, fuzzy, kde-format +#| msgid "Paste previously copied or cut clipboard contents" +msgid "Paste previously mouse selection contents" +msgstr "Plak vorige gekopieër of knip klipbord inhoud" + +#: view/kateview.cpp:465 +#, kde-format +msgid "Paste From File" +msgstr "" + +#: view/kateview.cpp:469 +#, kde-format +msgid "Copy File Location" +msgstr "" + +#: view/kateview.cpp:470 +#, kde-format +msgid "Copy the current file name and line number" +msgstr "" + +#: view/kateview.cpp:473 +#, fuzzy, kde-format +#| msgid "Paste previously copied or cut clipboard contents" +msgid "Swap with Clipboard Contents" +msgstr "Plak vorige gekopieër of knip klipbord inhoud" + +#: view/kateview.cpp:474 +#, fuzzy, kde-format +#| msgid "Cut the selected text and move it to the clipboard" +msgid "Swap the selected text with the clipboard contents" +msgstr "Knip die gekose teks en beweeg dit na die klipbord" + +#: view/kateview.cpp:477 +#, fuzzy, kde-format +#| msgid "&Automatic end of line detection" +msgid "Take Screenshot of Selection" +msgstr "Automaties einde van lyn opsporing" + +#: view/kateview.cpp:481 +#, kde-format +msgid "Save the current document" +msgstr "Stoor die huidige dokument" + +#: view/kateview.cpp:484 +#, kde-format +msgid "Revert the most recent editing actions" +msgstr "Ongedaan maak die mees onlangse redigering aksies" + +#: view/kateview.cpp:487 +#, kde-format +msgid "Revert the most recent undo operation" +msgstr "Ongedaan maak die mees onlangse herstel operasie" + +#: view/kateview.cpp:491 +#, fuzzy, kde-format +msgid "&Scripts" +msgstr "Skripte" + +#: view/kateview.cpp:495 +#, fuzzy, kde-format +#| msgid "Word Wrap" +msgid "Apply &Word Wrap" +msgstr "Woord Oorvloei" + +#: view/kateview.cpp:497 +#, kde-format +msgid "" +"Use this to wrap the current line, or to reformat the selected lines as " +"paragraph, to fit the 'Wrap words at' setting in the configuration dialog." +"

This is a static word wrap, meaning the document is changed." +msgstr "" + +#: view/kateview.cpp:503 +#, kde-format +msgid "&Clean Indentation" +msgstr "Maak skoon Inkeping" + +#: view/kateview.cpp:505 +#, fuzzy, kde-format +#| msgid "" +#| "Use this to clean the indentation of a selected block of text (only tabs/" +#| "only spaces)

You can configure whether tabs should be honored and " +#| "used or replaced with spaces, in the configuration dialog." +msgid "" +"Use this to clean the indentation of a selected block of text (only tabs/" +"only spaces).

You can configure whether tabs should be honored " +"and used or replaced with spaces, in the configuration dialog." +msgstr "" +"Gebruik hierdie om skoon te maak die inkeping van die verkose blok teks " +"(slegs oortjies/slegs spasies)

Jy kan konfigureer of oortjies geëerd " +"en gebruik moet word of vervang moet word met spasies, in die konfigurasie " +"dialoog." + +#: view/kateview.cpp:510 +#, fuzzy, kde-format +#| msgid "Indentation Rules" +msgid "Convert Indentation to Spaces" +msgstr "Inkeping Reëls" + +#: view/kateview.cpp:517 +#, fuzzy, kde-format +#| msgid "&Indentation" +msgid "Convert Indentation to Tabs" +msgstr "Inkeping" + +#: view/kateview.cpp:532 +#, fuzzy, kde-format +#| msgid "&Indentation" +msgid "&Format Indentation" +msgstr "Inkeping" + +#: view/kateview.cpp:533 +#, fuzzy, kde-format +#| msgid "" +#| "Use this to align the current line or block of text to its proper indent " +#| "level." +msgid "" +"Use this to auto indent the current line or block of text to its proper " +"indent level." +msgstr "" +"Gebruik hierdie om die huidige lyn of blok van teks inlyn te bring na sy " +"ordentlike inkeep vlak." + +#: view/kateview.cpp:537 +#, fuzzy, kde-format +#| msgid "&Align" +msgctxt "@action" +msgid "&Align On…" +msgstr "In lyn" + +#: view/kateview.cpp:539 +#, kde-format +msgid "" +"This command aligns lines in the selected block or whole document on the " +"column given by a regular expression that you will be prompted for.

If you give an empty pattern it will align on the first non-blank " +"character by default.
If the pattern has a capture it will indent on " +"the captured match.

Examples:
With '-' it will insert " +"spaces before the first '-' of each lines to align them all on the same " +"column.
With ':\\s+(.)' it will insert spaces before the first non-" +"blank character that occurs after a colon to align them all on the same " +"column." +msgstr "" + +#: view/kateview.cpp:550 +#, kde-format +msgid "C&omment" +msgstr "Kommentaar" + +#: view/kateview.cpp:553 +#, fuzzy, kde-format +#| msgid "" +#| "This command comments out the current line or a selected block of text." +#| "

The characters for single/multiple line comments are defined " +#| "within the language's highlighting." +msgid "" +"This command comments out the current line or a selected block of text.

The characters for single/multiple line comments are defined within " +"the language's highlighting." +msgstr "" +"Hierdie opdrag kommentaar uit die huidige lyn van 'n gekose blok van teks." +"

die karakters vir enkel/veelvuldige lyn kommentaar word gedefinieër " +"binne in die taal se verligting." + +#: view/kateview.cpp:558 +#, fuzzy, kde-format +#| msgid "Move to Previous Line" +msgid "Go to Previous Editing Location" +msgstr "Beweeg na Vorige Lyn" + +#: view/kateview.cpp:564 +#, fuzzy, kde-format +#| msgid "Select to Next Line" +msgid "Go to Next Editing Location" +msgstr "Kies na Volgende Lyn" + +#: view/kateview.cpp:570 +#, kde-format +msgid "Unco&mment" +msgstr "Verwyder kommentaar" + +#: view/kateview.cpp:573 +#, fuzzy, kde-format +#| msgid "" +#| "This command removes comments from the current line or a selected block " +#| "of text.

The characters for single/multiple line comments are " +#| "defined within the language's highlighting." +msgid "" +"This command removes comments from the current line or a selected block of " +"text.

The characters for single/multiple line comments are " +"defined within the language's highlighting." +msgstr "" +"Hierdie opdrag verwyder kommentaar van die huidige lyn van 'n gekose blok " +"van teks.

die karakters vir enkel/veelvuldige lyn kommentaar word " +"gedefinieër binne in die taal se verligting." + +#: view/kateview.cpp:578 +#, fuzzy, kde-format +#| msgid "Comment" +msgid "Toggle Comment" +msgstr "Kommentaar" + +#: view/kateview.cpp:582 +#, kde-format +msgid "&Read Only Mode" +msgstr "Lees Slegs Modus" + +#: view/kateview.cpp:583 +#, kde-format +msgid "Lock/unlock the document for writing" +msgstr "Sluit/Ontsluit die dokument vir skryf" + +#: view/kateview.cpp:588 +#, kde-format +msgid "&Force RTL Direction" +msgstr "" + +#: view/kateview.cpp:589 +#, fuzzy, kde-format +#| msgid "Selection Mode" +msgid "Force RTL Text Direction" +msgstr "Kiesing Module" + +#: view/kateview.cpp:599 +#, kde-format +msgid "Uppercase" +msgstr "Boonste kas" + +#: view/kateview.cpp:602 +#, kde-format +msgid "" +"Convert the selection to uppercase, or the character to the right of the " +"cursor if no text is selected." +msgstr "" +"Omskakel die verkiesde na die boonste kas, of die karakter na die regterkant " +"van die plekwyser as geen teks gekies is nie. " + +#: view/kateview.cpp:608 +#, kde-format +msgid "Lowercase" +msgstr "Onderste kas" + +#: view/kateview.cpp:611 +#, kde-format +msgid "" +"Convert the selection to lowercase, or the character to the right of the " +"cursor if no text is selected." +msgstr "" +"Omskakel die verkiesde na die onderste kas, of die karakter na die " +"regterkant van die plekwyser as geen teks gekies is nie. " + +#: view/kateview.cpp:617 +#, kde-format +msgid "Capitalize" +msgstr "Kapitaliseer" + +#: view/kateview.cpp:620 +#, kde-format +msgid "" +"Capitalize the selection, or the word under the cursor if no text is " +"selected." +msgstr "" +"Kapitaliseer die verkose deel, of die woord onder die plekwyser as geen teks " +"gekies is nie." + +#: view/kateview.cpp:625 +#, kde-format +msgid "Join Lines" +msgstr "Verbind Lyne" + +#: view/kateview.cpp:630 +#, fuzzy, kde-format +msgid "Invoke Code Completion" +msgstr "Told Voltooi" + +#: view/kateview.cpp:631 +#, kde-format +msgid "" +"Manually invoke command completion, usually by using a shortcut bound to " +"this action." +msgstr "" + +#: view/kateview.cpp:636 +#, fuzzy, kde-format +#| msgid "Re&move trailing spaces" +msgid "Remove Trailing Spaces" +msgstr "Verwyder volgende spasies" + +#: view/kateview.cpp:654 +#, kde-format +msgid "Print the current document." +msgstr "Druk die huidige dokument." + +#: view/kateview.cpp:657 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Show print preview of current document" +msgstr "Druk die huidige dokument." + +#: view/kateview.cpp:661 +#, kde-format +msgid "Reloa&d" +msgstr "Herlaai" + +#: view/kateview.cpp:663 +#, kde-format +msgid "Reload the current document from disk." +msgstr "Herlaai die huidige dokument van disket." + +#: view/kateview.cpp:667 +#, kde-format +msgid "Save the current document to disk, with a name of your choice." +msgstr "Stoor die huidige dokument na disket, met 'n naam van jou keuse." + +#: view/kateview.cpp:669 +#, kde-format +msgctxt "@action" +msgid "Save As with Encodin&g…" +msgstr "" + +#: view/kateview.cpp:675 +#, fuzzy, kde-format +#| msgid "&Save File As..." +msgctxt "@action" +msgid "Save Cop&y As…" +msgstr "Stoor Lêer as..." + +#: view/kateview.cpp:676 +#, fuzzy, kde-format +#| msgid "Reload the current document from disk." +msgid "Save a copy of the current document to disk." +msgstr "Herlaai die huidige dokument van disket." + +#: view/kateview.cpp:680 +#, kde-format +msgid "" +"This command opens a dialog and lets you choose a line that you want the " +"cursor to move to." +msgstr "" +"Hierdie opdrag maak oop 'n dialoog en laat jy jy kies 'n lyn wat jy wil hê " +"die plekaanduier na beweeg na." + +#: view/kateview.cpp:684 +#, fuzzy, kde-format +#| msgid "Move to Previous Line" +msgid "Go to Previous Modified Line" +msgstr "Beweeg na Vorige Lyn" + +#: view/kateview.cpp:685 +#, fuzzy, kde-format +#| msgid "Move to Matching Bracket" +msgid "Move upwards to the previous modified line." +msgstr "Beweeg na Ooreenstemmende Hakkie" + +#: view/kateview.cpp:690 +#, fuzzy, kde-format +#| msgid "Move to Next Line" +msgid "Go to Next Modified Line" +msgstr "Beweeg na Volgende Lyn" + +#: view/kateview.cpp:691 +#, kde-format +msgid "Move downwards to the next modified line." +msgstr "" + +#: view/kateview.cpp:695 +#, fuzzy, kde-format +#| msgid "&Configure Editor..." +msgctxt "@action" +msgid "&Configure Editor…" +msgstr "Konfigureer Redigeerder..." + +#: view/kateview.cpp:697 +#, kde-format +msgid "Configure various aspects of this editor." +msgstr "Konfigureer verskeie aspekte van hierdie redigeerder." + +#: view/kateview.cpp:700 +#, fuzzy, kde-format +#| msgid "&Bold" +msgid "&Mode" +msgstr "Vetdruk" + +#: view/kateview.cpp:706 +#, kde-format +msgid "&Highlighting" +msgstr "Verligting" + +#: view/kateview.cpp:708 +#, kde-format +msgid "Here you can choose how the current document should be highlighted." +msgstr "Hier jy kan kies hoe die huidige dokument moet wees verlig." + +#: view/kateview.cpp:711 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "&Editor Color Theme" +msgstr "Kleure" + +#: view/kateview.cpp:717 +#, kde-format +msgid "&Indentation" +msgstr "Inkeping" + +#: view/kateview.cpp:726 +#, kde-format +msgid "Select the entire text of the current document." +msgstr "Kies die hele teks van die huidige dokument." + +#: view/kateview.cpp:729 +#, kde-format +msgid "" +"If you have selected something within the current document, this will no " +"longer be selected." +msgstr "" +"As jy het gekose iets binne in die huidige dokument, hierdie sal nee langer " +"wees gekose." + +#: view/kateview.cpp:733 +#, kde-format +msgid "Enlarge Font" +msgstr "Vergroot skriftipe" + +#: view/kateview.cpp:735 +#, kde-format +msgid "This increases the display font size." +msgstr "Hierdie vermeerder die grootte van die vertoonde teks." + +#: view/kateview.cpp:742 +#, kde-format +msgid "Shrink Font" +msgstr "Verklein skriftipe" + +#: view/kateview.cpp:744 +#, kde-format +msgid "This decreases the display font size." +msgstr "Hierdie verklein die grootte van die vertoonde teks." + +#: view/kateview.cpp:751 +#, kde-format +msgid "Reset Font Size" +msgstr "" + +#: view/kateview.cpp:753 +#, fuzzy, kde-format +#| msgid "This increases the display font size." +msgid "This resets the display font size." +msgstr "Hierdie vermeerder die grootte van die vertoonde teks." + +#: view/kateview.cpp:756 +#, kde-format +msgid "Bl&ock Selection Mode" +msgstr "Blok Keuse Module" + +#: view/kateview.cpp:759 +#, kde-format +msgid "" +"This command allows switching between the normal (line based) selection mode " +"and the block selection mode." +msgstr "" +"Hierdie opdrag laat toe omskakeling tussen die normale (lyn gebaseerde) " +"keuse modus en die blok keuse modus." + +#: view/kateview.cpp:763 +#, fuzzy, kde-format +#| msgid "Select to End of Line" +msgid "Switch to Next Input Mode" +msgstr "Kies na Einde van Lyn" + +#: view/kateview.cpp:765 +#, fuzzy, kde-format +#| msgid "Select to End of Line" +msgid "Switch to the next input mode." +msgstr "Kies na Einde van Lyn" + +#: view/kateview.cpp:768 +#, kde-format +msgid "Overwr&ite Mode" +msgstr "Oorskryf Modus" + +#: view/kateview.cpp:771 +#, kde-format +msgid "" +"Choose whether you want the text you type to be inserted or to overwrite " +"existing text." +msgstr "" +"Kies hetsy jy wil hê die teks jy tipe na wees ingesit of na oorskryf " +"bestaande teks." + +#: view/kateview.cpp:775 +#, fuzzy, kde-format +#| msgid "&Replace" +msgid "Show Whitespace" +msgstr "Vervang" + +#: view/kateview.cpp:778 +#, fuzzy, kde-format +#| msgid "" +#| "If this option is checked, the text lines will be wrapped at the view " +#| "border on the screen." +msgid "" +"If this option is checked, whitespaces in this document will be visible.

This is only a view option, meaning the document will not be changed." +msgstr "" +"As hierdie opsie is nagegaan, die teks lyne sal wees oorvloei na die " +"besigtig grens op die skerm." + +#: view/kateview.cpp:782 +#, kde-format +msgid "&Dynamic Word Wrap" +msgstr "Dinamiese Woord Oorvloei" + +#: view/kateview.cpp:786 +#, fuzzy, kde-format +#| msgid "" +#| "If this option is checked, the text lines will be wrapped at the view " +#| "border on the screen." +msgid "" +"If this option is checked, the text lines will be wrapped at the view border " +"on the screen.

This is only a view option, meaning the document " +"will not be changed." +msgstr "" +"As hierdie opsie is nagegaan, die teks lyne sal wees oorvloei na die " +"besigtig grens op die skerm." + +#: view/kateview.cpp:790 +#, kde-format +msgid "Dynamic Word Wrap Indicators" +msgstr "Dinamiese Woord Oorvloei Inkepings" + +#: view/kateview.cpp:792 +#, kde-format +msgid "Choose when the Dynamic Word Wrap Indicators should be displayed" +msgstr "Kies wanneer die Dinamiese Woord Oorvloei Indikators vertoon moet word" + +#: view/kateview.cpp:794 +#, kde-format +msgid "&Off" +msgstr "Af" + +#: view/kateview.cpp:794 +#, kde-format +msgid "Follow &Line Numbers" +msgstr "Volg Lyn Nommers" + +#: view/kateview.cpp:794 +#, kde-format +msgid "&Always On" +msgstr "Altyd Aan" + +#: view/kateview.cpp:798 +#, kde-format +msgid "Static Word Wrap" +msgstr "Statiese Woord Oorvloei" + +#: view/kateview.cpp:800 +#, fuzzy, kde-format +#| msgid "" +#| "If this option is checked, the text lines will be wrapped at the view " +#| "border on the screen." +msgid "" +"If this option is checked, the text lines will be wrapped at the column " +"defined in the editing properties." +msgstr "" +"As hierdie opsie is nagegaan, die teks lyne sal wees oorvloei na die " +"besigtig grens op die skerm." + +#: view/kateview.cpp:807 +#, kde-format +msgid "Show Static &Word Wrap Marker" +msgstr "Wys Statiese Woord Oorvloei Merker" + +#: view/kateview.cpp:810 +#, kde-format +msgid "" +"Show/hide the Word Wrap Marker, a vertical line drawn at the word wrap " +"column as defined in the editing properties" +msgstr "" +"Vertoon/Versteek die Woord Oorvloei Merker,'n vertikale lyn getrek by die " +"woord oorvloei kolom soos gedefinieerd in die redigeerde eienskappe" + +#: view/kateview.cpp:814 +#, kde-format +msgid "Show Folding &Markers" +msgstr "Vertoon Vou en Merkers" + +#: view/kateview.cpp:816 +#, kde-format +msgid "" +"You can choose if the codefolding marks should be shown, if codefolding is " +"possible." +msgstr "" +"Jy kan kies of die kodevou merkers getoon moet word, indien kodevouing " +"moontlik is." + +#: view/kateview.cpp:819 +#, kde-format +msgid "Show &Icon Border" +msgstr "Vertoon Ikoon Grens" + +#: view/kateview.cpp:821 +#, fuzzy, kde-format +#| msgid "" +#| "Show/hide the icon border.

The icon border shows bookmark " +#| "symbols, for instance." +msgid "" +"Show/hide the icon border.

The icon border shows bookmark " +"symbols, for instance." +msgstr "" +"Vertoon/steek weg die ikoon grens.

die ikoon grens vertoon boekmerk " +"simbole, vir voorbeeld." + +#: view/kateview.cpp:824 +#, kde-format +msgid "Show &Line Numbers" +msgstr "Vertoon Lyn Nommers" + +#: view/kateview.cpp:826 +#, kde-format +msgid "Show/hide the line numbers on the left hand side of the view." +msgstr "" +"Vertoon/steek weg die lyn nommers op die links hand kant van die besigtig." + +#: view/kateview.cpp:829 +#, kde-format +msgid "Show Scroll&bar Marks" +msgstr "Wys Rolstaaf Merke" + +#: view/kateview.cpp:831 +#, fuzzy, kde-format +#| msgid "" +#| "Show/hide the marks on the vertical scrollbar.

The marks, for " +#| "instance, show bookmarks." +msgid "" +"Show/hide the marks on the vertical scrollbar.

The marks show " +"bookmarks, for instance." +msgstr "" +"Vertoon/steekweg die merke op die vertikale rolstaaf.

Die merke, " +"byvoorbeeld, wys boekmerke." + +#: view/kateview.cpp:834 +#, fuzzy, kde-format +#| msgid "Show Scroll&bar Marks" +msgid "Show Scrollbar Mini-Map" +msgstr "Wys Rolstaaf Merke" + +#: view/kateview.cpp:836 +#, fuzzy, kde-format +#| msgid "" +#| "Show/hide the marks on the vertical scrollbar.

The marks, for " +#| "instance, show bookmarks." +msgid "" +"Show/hide the mini-map on the vertical scrollbar.

The mini-map " +"shows an overview of the whole document." +msgstr "" +"Vertoon/steekweg die merke op die vertikale rolstaaf.

Die merke, " +"byvoorbeeld, wys boekmerke." + +#. i18n("Show the whole document in the Mini-Map"), this); +#. ac->addAction(QLatin1String("view_scrollbar_minimap_all"), a); +#. a->setWhatsThis(i18n("Display the whole document in the mini-map.

With this option set the whole document will be visible in the +#. mini-map.")); connect(a, SIGNAL(triggered(bool)), SlOT(toggleScrollBarMiniMapAll())); connect(m_toggleScrollBarMiniMap, SIGNAL(triggered(bool)), +#. m_toggleScrollBarMiniMapAll, SLOT(setEnabled(bool))); +#: view/kateview.cpp:848 +#, kde-format +msgid "Show Non-Printable Spaces" +msgstr "" + +#: view/kateview.cpp:850 +#, kde-format +msgid "Show/hide bounding box around non-printable spaces" +msgstr "" + +#: view/kateview.cpp:854 +#, kde-format +msgid "Switch to Command Line" +msgstr "Verander na Opdrag Lyn" + +#: view/kateview.cpp:856 +#, kde-format +msgid "Show/hide the command line on the bottom of the view." +msgstr "Vertoon/steekweg die opdrag lyn op die onderkant van die besigtig." + +#: view/kateview.cpp:859 +#, kde-format +msgid "Input Modes" +msgstr "" + +#: view/kateview.cpp:868 +#, kde-format +msgid "Activate/deactivate %1" +msgstr "" + +#: view/kateview.cpp:878 +#, kde-format +msgid "&End of Line" +msgstr "Einde van Lyn" + +#: view/kateview.cpp:880 +#, kde-format +msgid "Choose which line endings should be used, when you save the document" +msgstr "" +"Kies watter lyn eindiging gebruik moet word, wanneer jy die dokument stoor" + +#: view/kateview.cpp:881 +#, fuzzy, kde-format +#| msgid "UNIX" +msgctxt "@item:inmenu End of Line" +msgid "&UNIX" +msgstr "UNIX" + +#: view/kateview.cpp:882 +#, fuzzy, kde-format +#| msgid "DOS/Windows" +msgctxt "@item:inmenu End of Line" +msgid "&Windows/DOS" +msgstr "DOS/Windows" + +#: view/kateview.cpp:883 +#, fuzzy, kde-format +#| msgid "Macintosh" +msgctxt "@item:inmenu End of Line" +msgid "&Macintosh" +msgstr "Macintosh" + +#: view/kateview.cpp:888 +#, kde-format +msgid "Add &Byte Order Mark (BOM)" +msgstr "" + +#: view/kateview.cpp:891 +#, kde-format +msgid "" +"Enable/disable adding of byte order marks for UTF-8/UTF-16 encoded files " +"while saving" +msgstr "" + +#: view/kateview.cpp:895 +#, kde-format +msgid "E&ncoding" +msgstr "Enkodering" + +#: view/kateview.cpp:899 +#, kde-format +msgid "Look up the first occurrence of a piece of text or regular expression." +msgstr "" +"Kyk begin die eerste voorkoms van 'n stuk van teks of gewone uitdrukking." + +#: view/kateview.cpp:903 +#, fuzzy, kde-format +#| msgid "Selected" +msgid "Find Selected" +msgstr "Gekose" + +#: view/kateview.cpp:905 +#, kde-format +msgid "Finds next occurrence of selected text." +msgstr "" + +#: view/kateview.cpp:909 +#, fuzzy, kde-format +#| msgid "Selected" +msgid "Find Selected Backwards" +msgstr "Gekose" + +#: view/kateview.cpp:911 +#, fuzzy, kde-format +#| msgid "Look up the previous occurrence of the search phrase." +msgid "Finds previous occurrence of selected text." +msgstr "Kyk begin die vorige voorkoms van die soektog frase." + +#: view/kateview.cpp:915 +#, kde-format +msgid "Find and Select Next Occurrence" +msgstr "" + +#: view/kateview.cpp:917 +#, kde-format +msgid "Finds next occurrence of the word under cursor and add it to selection." +msgstr "" + +#: view/kateview.cpp:921 +#, kde-format +msgid "Mark Currently Selected Occurrence as Skipped" +msgstr "" + +#: view/kateview.cpp:923 +#, kde-format +msgid "Marks the currently selected word as skipped." +msgstr "" + +#: view/kateview.cpp:927 +#, kde-format +msgid "Find and Select All Occurrences" +msgstr "" + +#: view/kateview.cpp:929 +#, kde-format +msgid "Finds all occurrences of the word under cursor and selects them." +msgstr "" + +#: view/kateview.cpp:933 +#, kde-format +msgid "Look up the next occurrence of the search phrase." +msgstr "Kyk begin die volgende voorkoms van die soektog frase." + +#: view/kateview.cpp:937 +#, kde-format +msgid "Look up the previous occurrence of the search phrase." +msgstr "Kyk begin die vorige voorkoms van die soektog frase." + +#: view/kateview.cpp:941 +#, kde-format +msgid "" +"Look up a piece of text or regular expression and replace the result with " +"some given text." +msgstr "" +"Kyk begin 'n stuk van teks of gewone uitdrukking en vervang die resultaat " +"met sommige gegewe teks." + +#: view/kateview.cpp:944 +#, kde-format +msgid "Add Cursors to Line Ends" +msgstr "" + +#: view/kateview.cpp:946 +#, kde-format +msgid "Creates a cursor at the end of every line in selection." +msgstr "" + +#: view/kateview.cpp:950 +#, kde-format +msgid "Add Caret below Cursor" +msgstr "" + +#: view/kateview.cpp:952 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "Adds a caret in the line below the current caret." +msgstr "Kies die hele teks van die huidige dokument." + +#: view/kateview.cpp:956 +#, kde-format +msgid "Add Caret above Cursor" +msgstr "" + +#: view/kateview.cpp:958 +#, kde-format +msgid "Adds a caret in the line above the current caret." +msgstr "" + +#: view/kateview.cpp:962 +#, fuzzy, kde-format +#| msgid "Text Cursor Movement" +msgid "Toggle Camel Case Cursor Movement" +msgstr "Teks Plekaanwyser Beweging" + +#: view/kateview.cpp:963 +#, kde-format +msgid "Toggle between normal word movement and camel case cursor movement." +msgstr "" + +#: view/kateview.cpp:967 +#, fuzzy, kde-format +#| msgid "Move to Matching Bracket" +msgid "Remove Cursors from Empty Lines" +msgstr "Beweeg na Ooreenstemmende Hakkie" + +#: view/kateview.cpp:968 +#, fuzzy, kde-format +#| msgid "Move to Matching Bracket" +msgid "Remove cursors from empty lines" +msgstr "Beweeg na Ooreenstemmende Hakkie" + +#: view/kateview.cpp:972 +#, fuzzy, kde-format +#| msgid "&Automatic end of line detection" +msgid "Automatic Spell Checking" +msgstr "Automaties einde van lyn opsporing" + +#: view/kateview.cpp:973 +#, kde-format +msgid "Enable/disable automatic spell checking" +msgstr "" + +#: view/kateview.cpp:979 +#, fuzzy, kde-format +msgctxt "@action" +msgid "Change Dictionary…" +msgstr "Konfigureer Redigeerder..." + +#: view/kateview.cpp:980 +#, kde-format +msgid "Change the dictionary that is used for spell checking." +msgstr "" + +#: view/kateview.cpp:984 +#, kde-format +msgid "Clear Dictionary Ranges" +msgstr "" + +#: view/kateview.cpp:986 +#, kde-format +msgid "" +"Remove all the separate dictionary ranges that were set for spell checking." +msgstr "" + +#: view/kateview.cpp:992 +#, kde-format +msgid "Copy as &HTML" +msgstr "Kopie maak as &HTML" + +#: view/kateview.cpp:993 +#, kde-format +msgid "" +"Copy the selection as HTML, formatted using the current syntax highlighting " +"and color scheme settings." +msgstr "" + +#: view/kateview.cpp:997 +#, fuzzy, kde-format +#| msgid "Export File as HTML" +msgctxt "@action" +msgid "E&xport as HTML…" +msgstr "Voer uit Lêer as HTML" + +#: view/kateview.cpp:999 +#, kde-format +msgid "" +"This command allows you to export the current document with all highlighting " +"information into a HTML document." +msgstr "" +"Hierdie opdrag laat jou toe om uit te voer die huidige dokument met alle " +"verligting informasie binne in 'n Html dokument." + +#: view/kateview.cpp:1038 +#, kde-format +msgid "Move Word Left" +msgstr "Beweeg Woord Links" + +#: view/kateview.cpp:1044 +#, kde-format +msgid "Select Character Left" +msgstr "Kies Karakter Links" + +#: view/kateview.cpp:1050 +#, kde-format +msgid "Select Word Left" +msgstr "Kies Woord Links" + +#: view/kateview.cpp:1060 +#, kde-format +msgid "Move Word Right" +msgstr "Beweeg Woord Regterkant" + +#: view/kateview.cpp:1066 +#, kde-format +msgid "Select Character Right" +msgstr "Kies Karakter Regterkant" + +#: view/kateview.cpp:1072 +#, kde-format +msgid "Select Word Right" +msgstr "Kies Woord Regterkant" + +#: view/kateview.cpp:1082 +#, fuzzy, kde-format +#| msgid "&Automatic end of line detection" +msgid "Start the Marked Selection" +msgstr "Automaties einde van lyn opsporing" + +#: view/kateview.cpp:1083 +#, kde-format +msgid "" +"Emulate the Emacs-like selection mode, where the beginning is marked and " +"then the selection is continuously updated." +msgstr "" + +#: view/kateview.cpp:1088 +#, kde-format +msgid "Move to Beginning of Line" +msgstr "Beweeg na Begin van Lyn" + +#: view/kateview.cpp:1094 +#, kde-format +msgid "Move to Beginning of Document" +msgstr "Beweeg na Begin van Dokument" + +#: view/kateview.cpp:1100 +#, kde-format +msgid "Select to Beginning of Line" +msgstr "Kies na Begin van Lyn" + +#: view/kateview.cpp:1110 +#, kde-format +msgid "Select to Beginning of Document" +msgstr "Kies na Begin van Dokument" + +#: view/kateview.cpp:1120 +#, kde-format +msgid "Move to End of Line" +msgstr "Beweeg na Einde van Lyn" + +#: view/kateview.cpp:1126 +#, kde-format +msgid "Move to End of Document" +msgstr "Beweeg na Einde van Dokument" + +#: view/kateview.cpp:1132 +#, kde-format +msgid "Select to End of Line" +msgstr "Kies na Einde van Lyn" + +#: view/kateview.cpp:1142 +#, kde-format +msgid "Select to End of Document" +msgstr "Kies na Einde van Dokument" + +#: view/kateview.cpp:1152 +#, kde-format +msgid "Select to Previous Line" +msgstr "Kies na Vorige Lyn" + +#: view/kateview.cpp:1158 +#, kde-format +msgid "Scroll Line Up" +msgstr "Rol Lyn Begin" + +#: view/kateview.cpp:1167 +#, kde-format +msgid "Move to Next Line" +msgstr "Beweeg na Volgende Lyn" + +#: view/kateview.cpp:1173 +#, kde-format +msgid "Move to Previous Line" +msgstr "Beweeg na Vorige Lyn" + +#: view/kateview.cpp:1179 +#, fuzzy, kde-format +#| msgid "Move Word Right" +msgid "Move Cursor Right" +msgstr "Beweeg Woord Regterkant" + +#: view/kateview.cpp:1185 +#, fuzzy, kde-format +#| msgid "Move Word Left" +msgid "Move Cursor Left" +msgstr "Beweeg Woord Links" + +#: view/kateview.cpp:1191 +#, kde-format +msgid "Select to Next Line" +msgstr "Kies na Volgende Lyn" + +#: view/kateview.cpp:1197 +#, kde-format +msgid "Scroll Line Down" +msgstr "Rol Lyn Ondertoe" + +#: view/kateview.cpp:1206 +#, kde-format +msgid "Scroll Page Up" +msgstr "Rol Bladsy Begin" + +#: view/kateview.cpp:1212 +#, kde-format +msgid "Select Page Up" +msgstr "Kies Bladsy Begin" + +#: view/kateview.cpp:1218 +#, kde-format +msgid "Move to Top of View" +msgstr "Beweeg na Bo van Besigtig" + +#: view/kateview.cpp:1224 +#, kde-format +msgid "Select to Top of View" +msgstr "Kies na Bo van Besigtig" + +#: view/kateview.cpp:1230 +#, kde-format +msgid "Scroll Page Down" +msgstr "Rol Bladsy Ondertoe" + +#: view/kateview.cpp:1236 +#, kde-format +msgid "Select Page Down" +msgstr "Kies Bladsy Ondertoe" + +#: view/kateview.cpp:1242 +#, kde-format +msgid "Move to Bottom of View" +msgstr "Beweeg na Bodem van Besigtig" + +#: view/kateview.cpp:1248 +#, kde-format +msgid "Select to Bottom of View" +msgstr "Kies na Bodem van Besigtig" + +#: view/kateview.cpp:1254 +#, fuzzy, kde-format +#| msgid "Move to Matching Bracket" +msgid "Go to Matching Bracket" +msgstr "Beweeg na Ooreenstemmende Hakkie" + +#: view/kateview.cpp:1260 +#, kde-format +msgid "Select to Matching Bracket" +msgstr "Kies na Ooreenstemmende Hakkie" + +#: view/kateview.cpp:1267 +#, fuzzy, kde-format +#| msgid "Move Word Right" +msgid "Move Sub-Word Right" +msgstr "Beweeg Woord Regterkant" + +#: view/kateview.cpp:1274 +#, fuzzy, kde-format +#| msgid "Select Word Right" +msgid "Select Sub-Word Right" +msgstr "Kies Woord Regterkant" + +#: view/kateview.cpp:1281 +#, fuzzy, kde-format +#| msgid "Move Word Left" +msgid "Move Sub-Word Left" +msgstr "Beweeg Woord Links" + +#: view/kateview.cpp:1288 +#, fuzzy, kde-format +#| msgid "Select Word Left" +msgid "Select Sub-Word Left" +msgstr "Kies Woord Links" + +#: view/kateview.cpp:1298 +#, kde-format +msgid "Transpose Characters" +msgstr "Oordraende Karakters" + +#: view/kateview.cpp:1303 +#, fuzzy, kde-format +#| msgid "Transpose Characters" +msgid "Transpose Words" +msgstr "Oordraende Karakters" + +#: view/kateview.cpp:1308 +#, kde-format +msgid "Delete Line" +msgstr "Uitvee Lyn" + +#: view/kateview.cpp:1314 +#, kde-format +msgid "Delete Word Left" +msgstr "Uitvee Woord Links" + +#: view/kateview.cpp:1320 +#, kde-format +msgid "Delete Word Right" +msgstr "Uitvee Woord Regterkant" + +#: view/kateview.cpp:1326 +#, kde-format +msgid "Delete Next Character" +msgstr "Verwyder Volgende Karakter" + +#: view/kateview.cpp:1332 +#, kde-format +msgid "Backspace" +msgstr "Terugruimte" + +#: view/kateview.cpp:1340 +#, fuzzy, kde-format +#| msgid "I&nsert tab character" +msgid "Insert Tab Character" +msgstr "Invoeg oortjie karakter" + +#: view/kateview.cpp:1345 +#, fuzzy, kde-format +#| msgid "Indent current &line" +msgid "Insert Smart Newline" +msgstr "Inkeping huidige lyn" + +#: view/kateview.cpp:1346 +#, kde-format +msgid "" +"Insert newline including leading characters of the current line which are " +"not letters or numbers." +msgstr "" + +#: view/kateview.cpp:1354 +#, fuzzy, kde-format +#| msgid "Indent current &line" +msgid "Insert a Non-Indented Newline" +msgstr "Inkeping huidige lyn" + +#: view/kateview.cpp:1355 +#, kde-format +msgid "" +"Insert a new line without indentation, regardless of indentation settings." +msgstr "" + +#: view/kateview.cpp:1363 +#, kde-format +msgid "Insert a Newline Above Current Line" +msgstr "" + +#: view/kateview.cpp:1364 +#, kde-format +msgid "" +"Insert a new line above current line without modifying the current line." +msgstr "" + +#: view/kateview.cpp:1372 +#, kde-format +msgid "Insert a Newline Below Current Line" +msgstr "" + +#: view/kateview.cpp:1373 +#, kde-format +msgid "" +"Insert a new line below current line without modifying the current line." +msgstr "" + +#: view/kateview.cpp:1382 +#, kde-format +msgid "&Indent" +msgstr "Inkeep" + +#: view/kateview.cpp:1384 +#, fuzzy, kde-format +#| msgid "" +#| "Use this to indent a selected block of text.

You can configure " +#| "whether tabs should be honored and used or replaced with spaces, in the " +#| "configuration dialog." +msgid "" +"Use this to indent a selected block of text.

You can configure " +"whether tabs should be honored and used or replaced with spaces, in the " +"configuration dialog." +msgstr "" +"Gebruik hierdie om die verkose blok teks in te keep.

Jy kan " +"konfigureer of oortjies geëerd en gebruik moet word of vervang moet word met " +"spasies, in die konfigurasie dialoog." + +#: view/kateview.cpp:1391 +#, kde-format +msgid "&Unindent" +msgstr "Uitkeep" + +#: view/kateview.cpp:1392 +#, kde-format +msgid "Use this to unindent a selected block of text." +msgstr "Gebruik hierdie na uitkeep 'n gekose blok van teks." + +#: view/kateview.cpp:1398 +#, fuzzy, kde-format +#| msgid "Delete Word Left" +msgid "Delete Sub-Word Left" +msgstr "Uitvee Woord Links" + +#: view/kateview.cpp:1405 +#, fuzzy, kde-format +#| msgid "Delete Word Right" +msgid "Delete Sub-Word Right" +msgstr "Uitvee Woord Regterkant" + +#: view/kateview.cpp:1426 +#, fuzzy, kde-format +#| msgid "Collapse Toplevel" +msgid "Fold Toplevel Nodes" +msgstr "Saambreek Boonstevlak" + +#: view/kateview.cpp:1430 +#, fuzzy, kde-format +#| msgid "Expand Toplevel" +msgid "Unfold Toplevel Nodes" +msgstr "Uitbrei Boonste Vlak" + +#: view/kateview.cpp:1434 +#, fuzzy, kde-format +#| msgid "Current line:" +msgid "Toggle Current Node" +msgstr "Huidige lyn:" + +#: view/kateview.cpp:1438 +#, fuzzy, kde-format +#| msgid "Comment" +msgid "Toggle Contained Nodes" +msgstr "Kommentaar" + +#: view/kateview.cpp:1447 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "Say current selection or document" +msgstr "Kies die hele teks van die huidige dokument." + +#: view/kateview.cpp:1457 +#, fuzzy, kde-format +#| msgid "Save the current document" +msgid "Stop current output" +msgstr "Stoor die huidige dokument" + +#: view/kateview.cpp:1463 +#, fuzzy, kde-format +#| msgid "Save the current document" +msgid "Pause current output" +msgstr "Stoor die huidige dokument" + +#: view/kateview.cpp:1469 +#, fuzzy, kde-format +#| msgid "Save the current document" +msgid "Resume current output" +msgstr "Stoor die huidige dokument" + +#: view/kateview.cpp:1640 +#, kde-format +msgid "(R/O) %1" +msgstr "" + +#: view/kateview.cpp:1828 +#, kde-format +msgid "Camel case movement disabled" +msgstr "" + +#: view/kateview.cpp:1830 +#, kde-format +msgid "Camel case movement enabled" +msgstr "" + +#: view/kateview.cpp:2349 +#, fuzzy, kde-format +#| msgid "Search" +msgid "Search wrapped" +msgstr "Soektog" + +#: view/kateview.cpp:3043 +#, fuzzy, kde-format +msgid "Open File" +msgstr "Stoor Lêer" + +#: view/kateview.cpp:3984 +#, fuzzy, kde-format +#| msgid "&Align" +msgid "Align On" +msgstr "In lyn" + +#: view/kateview.cpp:3984 +#, kde-format +msgid "Alignment pattern:" +msgstr "" + +#: view/kateview.cpp:5068 +#, kde-format +msgid "Export File as HTML" +msgstr "Voer uit Lêer as HTML" + +#: view/kateviewhelpers.cpp:302 view/kateviewhelpers.cpp:351 +#: view/kateviewhelpers.cpp:1012 +#, kde-format +msgctxt "from line - to line" +msgid "
%1

%2
" +msgstr "" + +#: view/kateviewhelpers.cpp:1212 +#, kde-format +msgid "Available Commands" +msgstr "Beskikbare Opdragte" + +#: view/kateviewhelpers.cpp:1213 +#, kde-format +msgid "" +"

For help on individual commands, do 'help <command>'" +msgstr "" +"

Vir hulp op individuele opdragte, doen 'help <opdrag>'

" + +#: view/kateviewhelpers.cpp:1220 +#, kde-format +msgid "No help for '%1'" +msgstr "Geen hulp vir '%1'" + +#: view/kateviewhelpers.cpp:1223 +#, kde-format +msgid "No such command %1" +msgstr "Geen so opdrag %1" + +#: view/kateviewhelpers.cpp:1229 +#, fuzzy, kde-format +#| msgid "" +#| "

This is the Katepart command line.
Syntax: command " +#| "[ arguments ]
For a list of available commands, enter " +#| "help list
For help for individual commands, enter " +#| "help <command>

" +msgid "" +"

This is the Katepart command line.
Syntax: command " +"[ arguments ]
For a list of available commands, enter " +"help list
For help for individual commands, enter " +"help <command>

" +msgstr "" +"

Hierdie is die Katepart opdrag lyn.
Syntaks: opdrag " +"[ argumente ]
Vir 'n lys van beskikbare opdragte, voortgaan " +"hulp lys
Vir hulp vir individuele opdragte, voortgaan " +"hulp <opdrag>

" + +#: view/kateviewhelpers.cpp:1317 vimode/emulatedcommandbar/commandmode.cpp:211 +#, kde-format +msgid "No such command: \"%1\"" +msgstr "Geen so opdrag: \"%1\"" + +#: view/kateviewhelpers.cpp:1320 vimode/emulatedcommandbar/commandmode.cpp:193 +#, kde-format +msgid "Error: No range allowed for command \"%1\"." +msgstr "" + +#: view/kateviewhelpers.cpp:1330 vimode/emulatedcommandbar/commandmode.cpp:197 +#, kde-format +msgid "Success: " +msgstr "Sukses: " + +#: view/kateviewhelpers.cpp:1344 vimode/emulatedcommandbar/commandmode.cpp:206 +#, kde-format +msgid "Command \"%1\" failed." +msgstr "Opdrag \"%1\" gevaal." + +#: view/kateviewhelpers.cpp:2632 view/kateviewhelpers.cpp:2633 +#, kde-format +msgid "Mark Type %1" +msgstr "Merk Tipe %1" + +#: view/kateviewhelpers.cpp:2656 +#, kde-format +msgid "Set Default Mark Type" +msgstr "Instel Verstek Merk Tipe" + +#: view/kateviewhelpers.cpp:2801 +#, kde-format +msgid "Disable Annotation Bar" +msgstr "" + +#: view/screenshotdialog.cpp:175 +#, fuzzy, kde-format +#| msgid "Open/Save" +msgid "Save" +msgstr "Open/Stoor" + +#: view/screenshotdialog.cpp:176 +#, fuzzy, kde-format +#| msgid "&Save File As..." +msgid "Copy" +msgstr "Stoor Lêer as..." + +#: view/screenshotdialog.cpp:177 +#, fuzzy, kde-format +#| msgid "&Background Color..." +msgctxt "@action:button" +msgid "Background Color…" +msgstr "Agtergrond Kleur..." + +#: view/screenshotdialog.cpp:179 +#, fuzzy, kde-format +#| msgid "Selection Mode" +msgid "Show Extra Decorations" +msgstr "Kiesing Module" + +#: view/screenshotdialog.cpp:180 +#, fuzzy, kde-format +#| msgid "Show indentation lines" +msgid "Show Window Decorations" +msgstr "Vertoon inkeping Reëls" + +#: view/screenshotdialog.cpp:185 +#, fuzzy, kde-format +#| msgid "&Automatic end of line detection" +msgctxt "@title:window" +msgid "Take Screenshot of Selection" +msgstr "Automaties einde van lyn opsporing" + +#: view/screenshotdialog.cpp:257 +#, fuzzy, kde-format +#| msgid "Show &Line Numbers" +msgid "Don't Show Line Numbers" +msgstr "Vertoon Lyn Nommers" + +#: view/screenshotdialog.cpp:258 +#, fuzzy, kde-format +#| msgid "Show &Line Numbers" +msgid "Show Line Numbers From 1" +msgstr "Vertoon Lyn Nommers" + +#: view/screenshotdialog.cpp:259 +#, fuzzy, kde-format +#| msgid "Show &Line Numbers" +msgid "Show Actual Line Numbers" +msgstr "Vertoon Lyn Nommers" + +#: view/screenshotdialog.cpp:422 +#, kde-format +msgctxt "@title:window" +msgid "Screenshot saving failed" +msgstr "" + +#: view/screenshotdialog.cpp:422 +#, kde-format +msgid "Screenshot saving failed: %1" +msgstr "" + +#: vimode/appcommands.cpp:67 +#, kde-format +msgid "All documents written to disk" +msgstr "" + +#: vimode/appcommands.cpp:70 +#, kde-format +msgid "Document written to disk" +msgstr "" + +#: vimode/appcommands.cpp:202 +#, kde-format +msgid "" +"

w/wa — write document(s) to disk

Usage: w[a]

Writes the current document(s) to disk. It can be called in " +"two ways:
w — writes the current document to disk
" +"wa — writes all documents to disk.

If no file name is " +"associated with the document, a file dialog will be shown.

" +msgstr "" + +#: vimode/appcommands.cpp:213 +#, kde-format +msgid "" +"

q/qa/wq/wqa — [write and] quit

Usage: [w]q[a]

Quits the application. If w is prepended, it also " +"writes the document(s) to disk. This command can be called in several ways:" +"
q — closes the current view.
qa — " +"closes all views, effectively quitting the application.
wq " +"— writes the current document to disk and closes its view.
" +"wqa — writes all documents to disk and quits.

In all " +"cases, if the view being closed is the last view, the application quits. If " +"no file name is associated with the document and it should be written to " +"disk, a file dialog will be shown.

" +msgstr "" + +#: vimode/appcommands.cpp:228 +#, kde-format +msgid "" +"

x/xa — write and quit

Usage: x[a]

Saves document(s) and quits (exits). This command can be called " +"in two ways:
x — closes the current view.
xa — closes all views, effectively quitting the application.

In " +"all cases, if the view being closed is the last view, the application quits. " +"If no file name is associated with the document and it should be written to " +"disk, a file dialog will be shown.

Unlike the 'w' commands, this " +"command only writes the document if it is modified.

" +msgstr "" + +#: vimode/appcommands.cpp:242 +#, kde-format +msgid "" +"

sp,split— Split horizontally the current view into two

Usage: sp[lit]

The result is two views on the " +"same document.

" +msgstr "" + +#: vimode/appcommands.cpp:248 +#, kde-format +msgid "" +"

vs,vsplit— Split vertically the current view into two

Usage: vs[plit]

The result is two views on the " +"same document.

" +msgstr "" + +#: vimode/appcommands.cpp:254 +#, kde-format +msgid "" +"

clo[se]— Close the current view

Usage: clo[se]

After executing it, the current view will be closed.

" +msgstr "" + +#: vimode/appcommands.cpp:260 +#, kde-format +msgid "" +"

[v]new — split view and create new document

Usage: " +"[v]new

Splits the current view and opens a new " +"document in the new view. This command can be called in two ways:
" +"new — splits the view horizontally and opens a new document." +"
vnew — splits the view vertically and opens a new " +"document.

" +msgstr "" + +#: vimode/appcommands.cpp:270 +#, kde-format +msgid "" +"

e[dit] — reload current document

Usage: e[dit]

Starts editing the current document again. This is " +"useful to re-edit the current file, when it was modified on disk.

" +msgstr "" + +#: vimode/appcommands.cpp:518 +#, kde-format +msgid "" +"

b,buffer — Edit document N from the document list

Usage: b[uffer] [N]

" +msgstr "" + +#: vimode/appcommands.cpp:523 +#, kde-format +msgid "" +"

bp,bprev — previous buffer

Usage: bp[revious] " +"[N]

Goes to [N]th previous document (\"buffer" +"\") in document list.

[N] defaults to one.

Wraps " +"around the start of the document list.

" +msgstr "" + +#: vimode/appcommands.cpp:531 +#, kde-format +msgid "" +"

bn,bnext — switch to next document

Usage: " +"bn[ext] [N]

Goes to [N]th next document " +"(\"buffer\") in document list.[N] defaults to one.

Wraps around the end of the document list.

" +msgstr "" + +#: vimode/appcommands.cpp:539 +#, kde-format +msgid "" +"

bf,bfirst — first document

Usage: bf[irst]

Goes to the first document (\"buffer\") in document " +"list.

" +msgstr "" + +#: vimode/appcommands.cpp:545 +#, kde-format +msgid "" +"

bl,blast — last document

Usage: bl[ast]

Goes to the last document (\"buffer\") in document " +"list.

" +msgstr "" + +#: vimode/appcommands.cpp:551 +#, kde-format +msgid "

ls

list current buffers

" +msgstr "" + +#: vimode/cmds.cpp:52 +#, fuzzy, kde-format +#| msgid "Missing argument. Usage: %1 " +msgid "Missing argument. Usage: %1 " +msgstr "Vermisde argument. Gebruik: %1 " + +#: vimode/cmds.cpp:68 +#, kde-format +msgid "No mapping found for \"%1\"" +msgstr "" + +#: vimode/cmds.cpp:71 +#, kde-format +msgid "\"%1\" is mapped to \"%2\"" +msgstr "" + +#: vimode/cmds.cpp:77 +#, fuzzy, kde-format +#| msgid "Missing argument. Usage: %1 " +msgid "Missing argument(s). Usage: %1 []" +msgstr "Vermisde argument. Gebruik: %1 " + +#: vimode/cmds.cpp:145 vimode/cmds.cpp:161 +#, kde-format +msgid "Wrong arguments" +msgstr "" + +#: vimode/config/configtab.cpp:205 +#, fuzzy, kde-format +#| msgid "Unable to open %1" +msgid "Unable to open the config file for reading." +msgstr "Nie moontlik na open %1" + +#: vimode/config/configtab.cpp:205 +#, fuzzy, kde-format +#| msgid "Unable to open %1" +msgid "Unable to open file" +msgstr "Nie moontlik na open %1" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkViCommandsOverride) +#: vimode/config/configwidget.ui:35 +#, kde-format +msgid "" +"When selected, vi commands will override Kate's built-in commands. For " +"example: Ctrl+R will redo, and override the standard action (showing the " +"search and replace dialog)." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkViCommandsOverride) +#: vimode/config/configwidget.ui:38 +#, kde-format +msgid "Let Vi commands override Kate shortcuts" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkViRelLineNumbers) +#: vimode/config/configwidget.ui:45 +#, fuzzy, kde-format +#| msgid "Show/hide the line numbers on the left hand side of the view." +msgid "" +"Show the line number relative to the line with the cursor in front of each " +"line." +msgstr "" +"Vertoon/steek weg die lyn nommers op die links hand kant van die besigtig." + +#. i18n: ectx: property (text), widget (QCheckBox, chkViRelLineNumbers) +#: vimode/config/configwidget.ui:48 +#, fuzzy, kde-format +#| msgid "Print &line numbers" +msgid "Display relative line numbers" +msgstr "Druk lyn nommers" + +#. i18n: ectx: property (whatsThis), widget (QGroupBox, groupBox) +#: vimode/config/configwidget.ui:63 +#, kde-format +msgid "" +"Key mapping is used to change the meaning of typed keys. This allows you to " +"move commands to other keys or make special keypresses for doing a series of " +"commands.\n" +"\n" +"Example:\n" +"\"\" → \"I-- \"\n" +"\n" +"This will prepend \"-- \" to a line when pressing F2." +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, groupBox) +#: vimode/config/configwidget.ui:66 +#, kde-format +msgid "Key Mapping" +msgstr "" + +#. i18n: ectx: attribute (title), widget (QWidget, normalTab) +#: vimode/config/configwidget.ui:76 +#, fuzzy, kde-format +#| msgid "Normal Text" +msgid "Normal mode" +msgstr "Normale Teks" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:95 vimode/config/configwidget.ui:133 +#: vimode/config/configwidget.ui:171 +#, fuzzy, kde-format +#| msgid "Comment" +msgid "Command" +msgstr "Kommentaar" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:100 vimode/config/configwidget.ui:138 +#: vimode/config/configwidget.ui:176 +#, fuzzy, kde-format +msgid "Replacement" +msgstr "Vervang" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:105 vimode/config/configwidget.ui:143 +#: vimode/config/configwidget.ui:181 +#, kde-format +msgid "Recursive?" +msgstr "" + +#. i18n: ectx: attribute (title), widget (QWidget, insertTab) +#: vimode/config/configwidget.ui:114 +#, fuzzy, kde-format +msgid "Insert mode" +msgstr "Inkeep" + +#. i18n: ectx: attribute (title), widget (QWidget, visualTab) +#: vimode/config/configwidget.ui:152 +#, fuzzy, kde-format +#| msgid "Normal Text" +msgid "Visual mode" +msgstr "Normale Teks" + +#. i18n: ectx: property (text), widget (QPushButton, btnRemoveSelectedRows) +#: vimode/config/configwidget.ui:195 +#, fuzzy, kde-format +#| msgid "Selected" +msgid "Remove selected" +msgstr "Gekose" + +#. i18n: ectx: property (text), widget (QPushButton, btnAddNewRow) +#: vimode/config/configwidget.ui:202 +#, kde-format +msgid "Add new mapping" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QPushButton, btnImportNormal) +#: vimode/config/configwidget.ui:209 +#, kde-format +msgid "" +"Read a vimrc file and attempt to import mappings specified with the " +"\"[n]noremap\" command." +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, btnImportNormal) +#: vimode/config/configwidget.ui:212 +#, kde-format +msgid "Import from vimrc file" +msgstr "" + +#: vimode/marks.cpp:117 +#, fuzzy, kde-format +#| msgid "Mark Type %1" +msgid "Mark set: %1" +msgstr "Merk Tipe %1" + +#: vimode/marks.cpp:163 +#, fuzzy, kde-format +#| msgid "Go to the next bookmark." +msgid "There are no more chars for the next bookmark." +msgstr "Gaan na die volgende boekmerk." + +#: vimode/modes/insertvimode.cpp:261 vimode/modes/modebase.cpp:794 +#: vimode/modes/normalvimode.cpp:3567 +#, kde-format +msgid "Nothing in register %1" +msgstr "" + +#: vimode/modes/normalvimode.cpp:1691 +#, kde-format +msgid "'%1' %2, Hex %3, Octal %4" +msgstr "" + +#: vimode/modes/normalvimode.cpp:2534 +#, fuzzy, kde-format +#| msgid "Mark Type %1" +msgid "Mark not set: %1" +msgstr "Merk Tipe %1" + +#~ msgid "Set &Bookmark" +#~ msgstr "Instel van Boekmerk" + +#, fuzzy +#~| msgid "The file '%1' was created by another program." +#~ msgid "The file '%1' was created on disk." +#~ msgstr "Die lêer '%1' is gemaak deur 'n ander program." + +#~ msgid "" +#~ "Use this command to copy the currently selected text as HTML to the " +#~ "system clipboard." +#~ msgstr "" +#~ "Gebruik hierdie opdrag om te kopier die huidiglik gekose teks as HTML na " +#~ "die stelsel klipbord." + +#, fuzzy +#~| msgid "Character" +#~ msgctxt "Wrap words at (value is at 20 or larger)" +#~ msgid " character" +#~ msgid_plural " characters" +#~ msgstr[0] "Karakter" +#~ msgstr[1] "Karakter" + +#, fuzzy +#~| msgid "&Save File As..." +#~ msgid "Save..." +#~ msgstr "Stoor Lêer as..." + +#, fuzzy +#~| msgid "&Save File As..." +#~ msgid "&Copy..." +#~ msgstr "Stoor Lêer as..." + +#, fuzzy +#~ msgid "Other..." +#~ msgstr "Ander" + +#, fuzzy +#~| msgid "&Align" +#~ msgid "&Align On..." +#~ msgstr "In lyn" + +#, fuzzy +#~ msgid "Change Dictionary..." +#~ msgstr "Konfigureer Redigeerder..." + +#~ msgid "" +#~ "The file %1 could not be loaded, as it was not possible to read from it.\n" +#~ "\n" +#~ "Check if you have read access to this file." +#~ msgstr "" +#~ "Die lêer %1 kon nie gelaai word nie, omdat nie moontlik was om te lees " +#~ "daarvan.\n" +#~ "\n" +#~ "Kyk of jy lees toegang tot hierdie lêer het." + +#, fuzzy +#~ msgid "Insert Tab" +#~ msgstr "Inkeep" + +#, fuzzy +#~ msgid "Namespaces" +#~ msgstr "Hoeveelheid spasies:" + +#, fuzzy +#~ msgid "Structs" +#~ msgstr "Kortpaaie" + +#, fuzzy +#~ msgid "Functions" +#~ msgstr "Funksie" + +#, fuzzy +#~ msgid "Enumerations" +#~ msgstr "Konfigurasie" + +#, fuzzy +#~| msgid "Comment" +#~ msgctxt "Script command name" +#~ msgid "Toggle comment" +#~ msgstr "Kommentaar" + +#~ msgid "Choo&se Font..." +#~ msgstr "Kies Skrif tipe..." + +#, fuzzy +#~| msgid "E&ncoding" +#~ msgctxt "Script command category" +#~ msgid "Quick Coding" +#~ msgstr "Enkodering" + +#, fuzzy +#~| msgid "&Default schema for %1:" +#~ msgid "&Default theme for %1:" +#~ msgstr "Verstek skema vir %1:" + +#, fuzzy +#~| msgid "&Automatic end of line detection" +#~ msgid "Automatic Selection" +#~ msgstr "Automaties einde van lyn opsporing" + +#, fuzzy +#~| msgid "The file '%1' was modified by another program." +#~ msgid "Meaning of current icon: Document was modified or deleted on disk" +#~ msgstr "Die lêer '%1' was modifiseerd deur 'n ander program." + +#, fuzzy +#~| msgid "The file '%1' was modified by another program." +#~ msgid "Meaning of current icon: Document is in read-only mode" +#~ msgstr "Die lêer '%1' was modifiseerd deur 'n ander program." + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Lua" +#~ msgctxt "Autoindent mode" +#~ msgid "Lua" +#~ msgstr "Lua" + +#, fuzzy +#~| msgid "Show Folding &Markers" +#~ msgid "Show &folding markers" +#~ msgstr "Vertoon Vou en Merkers" + +#, fuzzy +#~| msgid "Show Folding &Markers" +#~ msgid "Show line modification markers" +#~ msgstr "Vertoon Vou en Merkers" + +#~ msgid "" +#~ "Choose how the bookmarks should be ordered in the Bookmarks menu." +#~ msgstr "" +#~ "Kies hoe die boekmerke moet wees gesorteer in die boekmerke " +#~ "kieslys." + +#, fuzzy +#~| msgid "By c&reation" +#~ msgid "B&y creation" +#~ msgstr "Deur skep" + +#, fuzzy +#~| msgid "By &position" +#~ msgid "By posi&tion" +#~ msgstr "Deur posisie" + +#, fuzzy +#~| msgid "" +#~| "

Backing up on save will cause Kate to copy the disk file to '<" +#~| "prefix><filename><suffix>' before saving changes.

The " +#~| "suffix defaults to ~ and prefix is empty by default" +#~ msgid "" +#~ "

Backing up on save will cause Kate to copy the disk file to '<" +#~ "prefix><filename><suffix>' before saving changes.

The " +#~ "suffix defaults to ~ and prefix is empty by default." +#~ msgstr "" +#~ "

Terugvalkopie maak by stoor sal veroorsaak dat Kate die skyf lêer " +#~ "kopieër na '<prefix><leêrnaam><agtervoegsel>' voor " +#~ "stoor veranderinge.

Die agtervoegsel verstekwaarde na ~ " +#~ "en voorvoegsel word leeggemaak deur verstek" + +#~ msgid "Backup on Save" +#~ msgstr "Terugvalkopie op Stoor" + +#, fuzzy +#~ msgid "&Prefix:" +#~ msgstr "Voorvoegsel:" + +#~ msgid "&Suffix:" +#~ msgstr "Agtervoegsel" + +#, fuzzy +#~| msgid "Disabled" +#~ msgid "Disable" +#~ msgstr "Deaktiveer" + +#, fuzzy +#~| msgid "Folder Config File" +#~ msgid "Directory for swp files" +#~ msgstr "Kabinet Konfigureer Lêer" + +#~ msgid "Enable static &word wrap" +#~ msgstr "Aktiveer statiese woord oorvloei" + +#, fuzzy +#~| msgid "Show Static &Word Wrap Marker" +#~ msgid "Show static word wra&p marker" +#~ msgstr "Wys Statiese Woord Oorvloei Merker" + +#, fuzzy +#~| msgid "&Indentation" +#~ msgid "Input Mode" +#~ msgstr "Inkeping" + +#, fuzzy +#~| msgid "Select to Matching Bracket" +#~ msgid "Enable automatic brackets" +#~ msgstr "Kies na Ooreenstemmende Hakkie" + +#, fuzzy +#~| msgid "Cursor & Selection" +#~ msgid "Chars to enclose selection:" +#~ msgstr "Plekwayser en Verkiesing" + +#, fuzzy +#~| msgid "Vertically align dynamically wrapped lines to indentation depth:" +#~ msgid "&Align dynamically wrapped lines to indentation depth:" +#~ msgstr "Vertikale inlyn dinamiese oorvloei lyne om diepte af te grens:" + +#~ msgid "" +#~ "If this option is checked, the text lines will be wrapped at the view " +#~ "border on the screen." +#~ msgstr "" +#~ "As hierdie opsie is nagegaan, die teks lyne sal wees oorvloei na die " +#~ "besigtig grens op die skerm." + +#, fuzzy +#~| msgid "Dynamic word wrap indicators (if applicable):" +#~ msgid "D&ynamic word wrap indicators (if applicable):" +#~ msgstr "Dinamiese Woord oorvloei indikators (as beskikbaar):" + +#, fuzzy +#~| msgid "Highlighting for Ferite" +#~ msgid "Highlight marker size:" +#~ msgstr "Verligting vir Feriet" + +#, fuzzy +#~ msgid "Highlight tabulators" +#~ msgstr "Verligting" + +#, fuzzy +#~ msgid "Prefix" +#~ msgstr "Voorvoegsel:" + +#, fuzzy +#~ msgid "Scope" +#~ msgstr "Stop" + +#~ msgid "Name" +#~ msgstr "Naam" + +#, fuzzy +#~ msgid "Private" +#~ msgstr "ferite" + +#, fuzzy +#~ msgid "Static" +#~ msgstr "Stata" + +#, fuzzy +#~ msgid "Constant" +#~ msgstr "Konteks" + +#, fuzzy +#~ msgid "Namespace" +#~ msgstr "Terugruimte" + +#, fuzzy +#~ msgid "Struct" +#~ msgstr "Uitkrap" + +#, fuzzy +#~ msgid "Union" +#~ msgstr "Funksie" + +#~ msgid "Function" +#~ msgstr "Funksie" + +#, fuzzy +#~ msgid "Variable" +#~ msgstr "Veranderlikes:" + +#, fuzzy +#~ msgid "Enumeration" +#~ msgstr "Konfigurasie" + +#, fuzzy +#~ msgid "Template" +#~ msgstr "Vervang" + +#, fuzzy +#~ msgid "Override" +#~ msgstr "Oorskryf" + +#, fuzzy +#~ msgid "Inline" +#~ msgstr "Onderstreep" + +#, fuzzy +#~ msgid "Friend" +#~ msgstr "Soek" + +#, fuzzy +#~ msgid "Local Scope" +#~ msgstr "Lokale Lêers" + +#, fuzzy +#~ msgid "Unknown Property" +#~ msgstr "Boks Eienskappe" + +#, fuzzy +#~ msgid "Code Completion Configuration" +#~ msgstr "Woord Klaarmaak Inprop" + +#, fuzzy +#~| msgid "Execution" +#~ msgid "Description" +#~ msgstr "Uitvoering" + +#, fuzzy +#~| msgid "Edit Entry" +#~ msgid "Edit Entry..." +#~ msgstr "Regideer Inskrywing" + +#, fuzzy +#~| msgid "Edit Entry" +#~ msgid "Add Entry..." +#~ msgstr "Regideer Inskrywing" + +#, fuzzy +#~| msgid "Footer Properties" +#~ msgid "Further Notes" +#~ msgstr "Voetskrif Eienskappe" + +#, fuzzy +#~| msgid "The Editing Commands" +#~ msgid "Edit Command" +#~ msgstr "Die Redigering Opdragte" + +#, fuzzy +#~| msgid "Choo&se Font..." +#~ msgid "Choose an icon." +#~ msgstr "Kies Skrif tipe..." + +#, fuzzy +#~| msgid "&Section:" +#~ msgid "&Description:" +#~ msgstr "Seksie:" + +#, fuzzy +#~| msgid "&Pattern:" +#~ msgid "&Category:" +#~ msgstr "Patroon:" + +#, fuzzy +#~| msgid "String" +#~ msgid "Sorting" +#~ msgstr "String" + +#, fuzzy +#~| msgid "Case &sensitive" +#~ msgid "Case sensitive" +#~ msgstr "Kas Sensitief" + +#, fuzzy +#~| msgid "String" +#~ msgid "Filtering" +#~ msgstr "String" + +#, fuzzy +#~| msgid "Footer Properties" +#~ msgid "Access Grouping Properties" +#~ msgstr "Voetskrif Eienskappe" + +#, fuzzy +#~| msgid "Footer Properties" +#~ msgid "Item Grouping properties" +#~ msgstr "Voetskrif Eienskappe" + +#, fuzzy +#~| msgid "Colors" +#~ msgid "Columns" +#~ msgstr "Kleure" + +#, fuzzy +#~ msgid "(c) 2000-2019 The Kate Authors" +#~ msgstr "(c) 2000-2004 Die Kate Deel Outeure" + +#, fuzzy +#~| msgid "What do you want to do?" +#~ msgid "How do you want to import the schema?" +#~ msgstr "Wat wil jy doen?" + +#, fuzzy +#~| msgid "Replace Confirmation" +#~ msgid "Replace current schema?" +#~ msgstr "Vervang Opstelling" + +#, fuzzy +#~| msgid "Replace Confirmation" +#~ msgid "Replace existing schema %1" +#~ msgstr "Vervang Opstelling" + +#, fuzzy +#~| msgid "Name for New Schema" +#~ msgid "Import as new schema:" +#~ msgstr "Naam vir Nuwe Skema" + +#, fuzzy +#~| msgid "Highlighting for Scheme" +#~ msgid "Loading all highlightings for schema" +#~ msgstr "Verligting vir Skema" + +#, fuzzy +#~| msgid "Font & Color Schemas" +#~ msgid "Kate color schema" +#~ msgstr "Skriftipe & Kleur Skemas" + +#, fuzzy +#~| msgid "File Format" +#~ msgid "Fileformat error" +#~ msgstr "Lêer Formaat" + +#~ msgid "&New..." +#~ msgstr "Nuwe..." + +#, fuzzy +#~| msgid "Replace Confirmation" +#~ msgid "Replace existing theme %1" +#~ msgstr "Vervang Opstelling" + +#, fuzzy +#~ msgid "Name unspecified" +#~ msgstr "Terugruimte" + +#~ msgid "Name for New Schema" +#~ msgstr "Naam vir Nuwe Skema" + +#~ msgid "Name:" +#~ msgstr "Naam:" + +#~ msgid "New Schema" +#~ msgstr "Nuwe Skema" + +#~ msgid "&Schema:" +#~ msgstr "Skema:" + +#~ msgid "Fonts & Colors" +#~ msgstr "Skriftipes &Kleure" + +#~ msgid "Font & Color Schemas" +#~ msgstr "Skriftipe & Kleur Skemas" + +#~ msgid "&Schema" +#~ msgstr "Skema" + +#~ msgid "" +#~ "A file named \"%1\" already exists. Are you sure you want to overwrite it?" +#~ msgstr "" +#~ "'n lêer genaamd \"%1\" alreeds bestaan. Word jy seker jy wil hê na " +#~ "oorskryf dit?" + +#~ msgid "Overwrite File?" +#~ msgstr "Oorskryf Lêer?" + +#, fuzzy +#~| msgid "&Show static word wrap marker (if applicable)" +#~ msgid "Show static word wra&p marker (if applicable)" +#~ msgstr "Wys statiese woord oorvloei merker (indien beskikbaar)" + +#, fuzzy +#~| msgid "" +#~| "Use this command to wrap all lines of the current document which are " +#~| "longer than the width of the current view, to fit into this view." +#~| "

This is a static word wrap, meaning it is not updated when the " +#~| "view is resized." +#~ msgid "" +#~ "Use this command to wrap all lines of the current document which are " +#~ "longer than the width of the current view, to fit into this view.

This is a static word wrap, meaning it is not updated when the " +#~ "view is resized." +#~ msgstr "" +#~ "Gebruik hierdie opdrag na oorvloei alle lyne van die huidige dokument wat " +#~ "woord langer as die wydte van die huidige besigtig, na pas binnein " +#~ "hierdie besigtig.

hierdie is 'n statiese woord oorvloei, wat " +#~ "beteken dit is nie opgedateer wanneer die besigtig is hervergroot." + +#, fuzzy +#~| msgid "Highlighting Rules" +#~ msgid "Highlight trailing &spaces" +#~ msgstr "Verligting Reëls" + +#~ msgid "Spellcheck Selection..." +#~ msgstr "Spellkontroleur Kiesing..." + +#~ msgid "Check spelling of the selected text" +#~ msgstr "Kontroleur spelling van die verkose teks" + +#~ msgid "&Go to line:" +#~ msgstr "Gaan na lyn:" + +#~ msgid "What do you want to do?" +#~ msgstr "Wat wil jy doen?" + +#~ msgid "File Was Changed on Disk" +#~ msgstr "Lêer Was Verander op Disket" + +#~ msgid "&Ignore Changes" +#~ msgstr "Ignoreer Veranderinge" + +#, fuzzy +#~| msgid "Highlighting Rules" +#~ msgid "Download Highlighting Files..." +#~ msgstr "Verligting Reëls" + +#~ msgid "Highlight Download" +#~ msgstr "Verlig Aflaai" + +#~ msgid "Select the syntax highlighting files you want to update:" +#~ msgstr "Kies die syntaks verligting lêers wat jy wil opdateer:" + +#~ msgid "Installed" +#~ msgstr "Geïnstalleer" + +#~ msgid "Latest" +#~ msgstr "Nuutste" + +#~ msgid "Note: New versions are selected automatically." +#~ msgstr "Nota: Nuwe uitgawens word outomaties gekies." + +#~ msgid "&Install" +#~ msgstr "Installeer" + +#, fuzzy +#~| msgid "None" +#~ msgctxt "Syntax highlighting" +#~ msgid "None" +#~ msgstr "Geen" + +#~ msgid "Normal Text" +#~ msgstr "Normale Teks" + +#, fuzzy +#~| msgid "" +#~| "%1: Deprecated syntax. Attribute (%2) not addressed by symbolic " +#~| "name
" +#~ msgid "" +#~ "%1: Deprecated syntax. Attribute (%2) not addressed by symbolic " +#~ "name
" +#~ msgstr "" +#~ "%1: Afwysende syntaks. Eienskap (%2) nie geadresseer deur " +#~ "simboliese naam
" + +#, fuzzy +#~| msgid "%1: Deprecated syntax. Context %2 has no symbolic name
" +#~ msgid "%1: Deprecated syntax. Context %2 has no symbolic name
" +#~ msgstr "" +#~ "%1: Afwysende syntaks. Konteks %2 het geen simboliese naam
" + +#~ msgid "" +#~ "%1:Deprecated syntax. Context %2 not addressed by a symbolic name" +#~ msgstr "" +#~ "%1:Afwysende syntaks. Konteks %2 nie geadresseer deur 'n " +#~ "simboliese naam" + +#~ msgid "" +#~ "There were warning(s) and/or error(s) while parsing the syntax " +#~ "highlighting configuration." +#~ msgstr "" +#~ "Daar was waarskuwing(s) en/of fout(e) gedurende verdeling van die syntaks " +#~ "verligting konfigurasie." + +#~ msgid "Kate Syntax Highlighting Parser" +#~ msgstr "Kate Sintaks verligting ondersteun" + +#~ msgid "" +#~ "Since there has been an error parsing the highlighting description, this " +#~ "highlighting will be disabled" +#~ msgstr "" +#~ "Sedert daar het al 'n fout verwerking die verligting beskrywing, hierdie " +#~ "verligting sal wees gestremde" + +#, fuzzy +#~| msgid "" +#~| "%1: Specified multiline comment region (%2) could not be " +#~| "resolved
" +#~ msgid "" +#~ "%1: Specified multiline comment region (%2) could not be " +#~ "resolved
" +#~ msgstr "" +#~ "%1: Spesifiseerde meerlyn aanbeveel area (%2) kon nie heropgelos " +#~ "word nie
" + +#~ msgid "Unable to open %1" +#~ msgstr "Nie moontlik na open %1" + +#, fuzzy +#~| msgid "" +#~| "The error %4
has been detected in the file %1 at %2/%3" +#~ msgid "" +#~ "The error %4
has been detected in the file %1 at %2/%3" +#~ msgstr "" +#~ "Die fout %4
het al opgespoor in Die lêer %1 na %2/%3
" + +#, fuzzy +#~| msgid "Continue from the end?" +#~ msgid "Continuing search from top" +#~ msgstr "Gaan voort van die einde?" + +#, fuzzy +#~| msgid "Continue from the end?" +#~ msgid "Continuing search from bottom" +#~ msgstr "Gaan voort van die einde?" + +#~ msgctxt "Language Section" +#~ msgid "Scripts" +#~ msgstr "Skripte" + +#~ msgctxt "Language Section" +#~ msgid "Sources" +#~ msgstr "Bronne" + +#~ msgctxt "Language" +#~ msgid "ABC" +#~ msgstr "ABC" + +#~ msgctxt "Language Section" +#~ msgid "Other" +#~ msgstr "Ander" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "ActionScript 2.0" +#~ msgstr "Skripte" + +#~ msgctxt "Language" +#~ msgid "Ada" +#~ msgstr "Ada" + +#~ msgctxt "Language" +#~ msgid "AHDL" +#~ msgstr "AHDL" + +#~ msgctxt "Language Section" +#~ msgid "Hardware" +#~ msgstr "Harde ware" + +#~ msgctxt "Language" +#~ msgid "Alerts" +#~ msgstr "Alerts" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Alerts" +#~ msgctxt "Language" +#~ msgid "Alerts_indent" +#~ msgstr "Alerts" + +#~ msgctxt "Language" +#~ msgid "ANSI C89" +#~ msgstr "ANSI C89" + +#~ msgctxt "Language Section" +#~ msgid "Scientific" +#~ msgstr "Wetenskaplik" + +#~ msgctxt "Language" +#~ msgid "Apache Configuration" +#~ msgstr "Apache Konfigurasie" + +#~ msgctxt "Language Section" +#~ msgid "Configuration" +#~ msgstr "Konfigurasie" + +#~ msgctxt "Language Section" +#~ msgid "Assembler" +#~ msgstr "Assembler" + +#~ msgctxt "Language" +#~ msgid "AVR Assembler" +#~ msgstr "AVR Assembler" + +#~ msgctxt "Language" +#~ msgid "Asm6502" +#~ msgstr "Asm6502" + +#~ msgctxt "Language Section" +#~ msgid "Markup" +#~ msgstr "Markup" + +#~ msgctxt "Language" +#~ msgid "ASP" +#~ msgstr "ASP" + +#~ msgctxt "Language" +#~ msgid "AWK" +#~ msgstr "AWK" + +#~ msgctxt "Language" +#~ msgid "Bash" +#~ msgstr "Bash" + +#~ msgctxt "Language" +#~ msgid "BibTeX" +#~ msgstr "BibTeX" + +#~ msgctxt "Language" +#~ msgid "C" +#~ msgstr "C" + +#~ msgctxt "Language" +#~ msgid "Cg" +#~ msgstr "Cg" + +#~ msgctxt "Language" +#~ msgid "CGiS" +#~ msgstr "CGiS" + +#~ msgctxt "Language" +#~ msgid "ChangeLog" +#~ msgstr "Veranderinge-log" + +#~ msgctxt "Language" +#~ msgid "Cisco" +#~ msgstr "Cisco" + +#~ msgctxt "Language" +#~ msgid "Clipper" +#~ msgstr "Clipper" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "CoffeeScript" +#~ msgstr "Skripte" + +#~ msgctxt "Language" +#~ msgid "ColdFusion" +#~ msgstr "ColdFusion" + +#~ msgctxt "Language" +#~ msgid "Common Lisp" +#~ msgstr "Eenvoudige Lisp" + +#~ msgctxt "Language" +#~ msgid "Component-Pascal" +#~ msgstr "Komponent-Pascal" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "CMake" +#~ msgctxt "Language" +#~ msgid "Crack" +#~ msgstr "CMaak" + +#~ msgctxt "Language" +#~ msgid "C#" +#~ msgstr "C#" + +#~ msgctxt "Language" +#~ msgid "CSS" +#~ msgstr "CSS" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "CubeScript" +#~ msgstr "Skripte" + +#~ msgctxt "Language" +#~ msgid "CUE Sheet" +#~ msgstr "CUE Blat" + +#~ msgctxt "Language" +#~ msgid "D" +#~ msgstr "D" + +#~ msgctxt "Language" +#~ msgid "Debian Changelog" +#~ msgstr "Debian Veranderlog" + +#~ msgctxt "Language" +#~ msgid "Debian Control" +#~ msgstr "Debian Kontrole" + +#~ msgctxt "Language" +#~ msgid ".desktop" +#~ msgstr ".werkskerm" + +#~ msgctxt "Language" +#~ msgid "Diff" +#~ msgstr "Diff" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Makefile" +#~ msgctxt "Language" +#~ msgid "Dockerfile" +#~ msgstr "Makefile" + +#~ msgctxt "Language" +#~ msgid "Doxygen" +#~ msgstr "Doxygen" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Doxygen" +#~ msgctxt "Language" +#~ msgid "DoxygenLua" +#~ msgstr "Doxygen" + +#~ msgctxt "Language" +#~ msgid "E Language" +#~ msgstr "E Taal" + +#~ msgctxt "Language" +#~ msgid "Eiffel" +#~ msgstr "Eiffel" + +#~ msgctxt "Language" +#~ msgid "Email" +#~ msgstr "Epos" + +#~ msgctxt "Language" +#~ msgid "Euphoria" +#~ msgstr "Euphoria" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Intel x86 (NASM)" +#~ msgctxt "Language" +#~ msgid "Intel x86 (FASM)" +#~ msgstr "Intel x86 (NASM)" + +#~ msgctxt "Language" +#~ msgid "ferite" +#~ msgstr "ferite" + +#~ msgctxt "Language" +#~ msgid "4GL" +#~ msgstr "4GL" + +#~ msgctxt "Language Section" +#~ msgid "Database" +#~ msgstr "Databasis" + +#~ msgctxt "Language" +#~ msgid "4GL-PER" +#~ msgstr "4GL-PER" + +#~ msgctxt "Language" +#~ msgid "Fortran" +#~ msgstr "Fortran" + +#~ msgctxt "Language" +#~ msgid "fstab" +#~ msgstr "fstab" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "GAP" +#~ msgstr "ASP" + +#, fuzzy +#~| msgid "Backspace" +#~ msgctxt "Language" +#~ msgid "GDB Backtrace" +#~ msgstr "Terugruimte" + +#~ msgctxt "Language" +#~ msgid "GDL" +#~ msgstr "GDL" + +#~ msgctxt "Language" +#~ msgid "GNU Gettext" +#~ msgstr "GNU Kryteks" + +#, fuzzy +#~| msgid "&Ignore" +#~ msgctxt "Language" +#~ msgid "Git Ignore" +#~ msgstr "Ignoreer" + +#~ msgctxt "Language" +#~ msgid "GLSL" +#~ msgstr "GLSL" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "D" +#~ msgctxt "Language Section" +#~ msgid "3D" +#~ msgstr "D" + +#~ msgctxt "Language" +#~ msgid "GNU Assembler" +#~ msgstr "GNU Assembler" + +#~ msgctxt "Language" +#~ msgid "Haskell" +#~ msgstr "Haskell" + +#~ msgctxt "Language" +#~ msgid "HTML" +#~ msgstr "HTML" + +#~ msgctxt "Language" +#~ msgid "Quake Script" +#~ msgstr "Quake Skript" + +#~ msgctxt "Language" +#~ msgid "IDL" +#~ msgstr "IDL" + +#~ msgctxt "Language" +#~ msgid "ILERPG" +#~ msgstr "ILERPG" + +#~ msgctxt "Language" +#~ msgid "Inform" +#~ msgstr "Informeer" + +#~ msgctxt "Language" +#~ msgid "INI Files" +#~ msgstr "INI Lêers" + +#~ msgctxt "Language" +#~ msgid "Java" +#~ msgstr "Java" + +#~ msgctxt "Language" +#~ msgid "Javadoc" +#~ msgstr "Javadoc" + +#~ msgctxt "Language" +#~ msgid "JavaScript" +#~ msgstr "JavaSkript" + +#~ msgctxt "Language" +#~ msgid "JSP" +#~ msgstr "JSP" + +#~ msgctxt "Language" +#~ msgid "KBasic" +#~ msgstr "KBasies" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Kconfig" +#~ msgstr "Konfigureer..." + +#~ msgctxt "Language" +#~ msgid "LaTeX" +#~ msgstr "LaTeX" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Quake Script" +#~ msgctxt "Language" +#~ msgid "GNU Linker Script" +#~ msgstr "Quake Skript" + +#~ msgctxt "Language" +#~ msgid "LDIF" +#~ msgstr "LDIF" + +#~ msgctxt "Language" +#~ msgid "Lex/Flex" +#~ msgstr "Lex/Flex" + +#~ msgctxt "Language" +#~ msgid "LilyPond" +#~ msgstr "LilyPond" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Literate Haskell" +#~ msgctxt "Language" +#~ msgid "Literate Curry" +#~ msgstr "Literate Haskell" + +#~ msgctxt "Language" +#~ msgid "Literate Haskell" +#~ msgstr "Literate Haskell" + +#~ msgctxt "Language" +#~ msgid "Logtalk" +#~ msgstr "Logtalk" + +#~ msgctxt "Language" +#~ msgid "LPC" +#~ msgstr "LPC" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "GLSL" +#~ msgctxt "Language" +#~ msgid "LSL" +#~ msgstr "GLSL" + +#~ msgctxt "Language" +#~ msgid "Lua" +#~ msgstr "Lua" + +#~ msgctxt "Language" +#~ msgid "M3U" +#~ msgstr "M3U" + +#~ msgctxt "Language" +#~ msgid "MAB-DB" +#~ msgstr "MAB-DB" + +#~ msgctxt "Language" +#~ msgid "Makefile" +#~ msgstr "Makefile" + +#~ msgctxt "Language" +#~ msgid "Mason" +#~ msgstr "Mason" + +#~ msgctxt "Language" +#~ msgid "Matlab" +#~ msgstr "Matlab" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "MediaWiki" +#~ msgstr "CMaak" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "SML" +#~ msgctxt "Language" +#~ msgid "MEL" +#~ msgstr "SML" + +#~ msgctxt "Language" +#~ msgid "MIPS Assembler" +#~ msgstr "MIPS Assembler" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Modula-2" +#~ msgctxt "Language" +#~ msgid "Modelica" +#~ msgstr "Modula-2" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Modula-2" +#~ msgctxt "Language" +#~ msgid "Modelines" +#~ msgstr "Modula-2" + +#~ msgctxt "Language" +#~ msgid "Modula-2" +#~ msgstr "Modula-2" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "MonoBasic" +#~ msgstr "KBasies" + +#~ msgctxt "Language" +#~ msgid "Music Publisher" +#~ msgstr "Musiek Publiseerder" + +#~ msgctxt "Language" +#~ msgid "Intel x86 (NASM)" +#~ msgstr "Intel x86 (NASM)" + +#~ msgctxt "Language" +#~ msgid "Objective-C" +#~ msgstr "Objektiewe-C" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Objective-C++" +#~ msgstr "Objektiewe-C" + +#~ msgctxt "Language" +#~ msgid "Objective Caml" +#~ msgstr "Objektiewe Caml" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Objective Caml" +#~ msgctxt "Language" +#~ msgid "Objective Caml Ocamllex" +#~ msgstr "Objektiewe Caml" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Objective Caml" +#~ msgctxt "Language" +#~ msgid "Objective Caml Ocamlyacc" +#~ msgstr "Objektiewe Caml" + +#~ msgctxt "Language" +#~ msgid "Octave" +#~ msgstr "Octave" + +#~ msgctxt "Language" +#~ msgid "Pascal" +#~ msgstr "Pascal" + +#~ msgctxt "Language" +#~ msgid "Perl" +#~ msgstr "Pêrel" + +#~ msgctxt "Language" +#~ msgid "PHP/PHP" +#~ msgstr "PHP/PHP" + +#~ msgctxt "Language" +#~ msgid "PicAsm" +#~ msgstr "PicAsm" + +#~ msgctxt "Language" +#~ msgid "Pike" +#~ msgstr "Pike" + +#~ msgctxt "Language" +#~ msgid "PostScript" +#~ msgstr "PostScript" + +#~ msgctxt "Language" +#~ msgid "POV-Ray" +#~ msgstr "POV-Ray" + +#~ msgctxt "Language" +#~ msgid "progress" +#~ msgstr "Vordering" + +#~ msgctxt "Language" +#~ msgid "PureBasic" +#~ msgstr "SuiwerBasies" + +#~ msgctxt "Language" +#~ msgid "Python" +#~ msgstr "Python" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "CMake" +#~ msgctxt "Language" +#~ msgid "QMake" +#~ msgstr "CMaak" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "SML" +#~ msgctxt "Language" +#~ msgid "QML" +#~ msgstr "SML" + +#~ msgctxt "Language" +#~ msgid "R Script" +#~ msgstr "R Script" + +#, fuzzy +#~| msgid "&Replace" +#~ msgctxt "Language" +#~ msgid "Replicode" +#~ msgstr "Vervang" + +#~ msgctxt "Language" +#~ msgid "REXX" +#~ msgstr "REXX" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Ruby/Rails/RHTML" +#~ msgstr "HTML" + +#~ msgctxt "Language" +#~ msgid "RenderMan RIB" +#~ msgstr "RenderMan RIB" + +#~ msgctxt "Language" +#~ msgid "RPM Spec" +#~ msgstr "RPM Spec" + +#~ msgctxt "Language" +#~ msgid "RSI IDL" +#~ msgstr "RSI IDL" + +#, fuzzy +#~| msgid "File Format" +#~ msgctxt "Language" +#~ msgid "Rich Text Format" +#~ msgstr "Lêer Formaat" + +#~ msgctxt "Language" +#~ msgid "Ruby" +#~ msgstr "Ruby" + +#~ msgctxt "Language" +#~ msgid "Sather" +#~ msgstr "Sather" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Stata" +#~ msgctxt "Language" +#~ msgid "Scala" +#~ msgstr "Stata" + +#~ msgctxt "Language" +#~ msgid "scilab" +#~ msgstr "scilab" + +#~ msgctxt "Language" +#~ msgid "SGML" +#~ msgstr "SGML" + +#~ msgctxt "Language" +#~ msgid "Sieve" +#~ msgstr "Sieve" + +#~ msgctxt "Language" +#~ msgid "SML" +#~ msgstr "SML" + +#~ msgctxt "Language" +#~ msgid "Spice" +#~ msgstr "Spesery" + +#~ msgctxt "Language" +#~ msgid "SQL (MySQL)" +#~ msgstr "SQL (MySQL)" + +#~ msgctxt "Language" +#~ msgid "SQL (PostgreSQL)" +#~ msgstr "SQL (PostgreSQL)" + +#~ msgctxt "Language" +#~ msgid "SQL" +#~ msgstr "SQL" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "GLSL" +#~ msgctxt "Language" +#~ msgid "STL" +#~ msgstr "GLSL" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Verilog" +#~ msgctxt "Language" +#~ msgid "SystemVerilog" +#~ msgstr "Verilog" + +#~ msgctxt "Language" +#~ msgid "Tcl/Tk" +#~ msgstr "Tcl/Tk" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Textile" +#~ msgstr "Teks Area Agtergrond" + +#~ msgctxt "Language" +#~ msgid "TI Basic" +#~ msgstr "TI Basies" + +#~ msgctxt "Language" +#~ msgid "txt2tags" +#~ msgstr "txt2merkers" + +#~ msgctxt "Language" +#~ msgid "UnrealScript" +#~ msgstr "Onegteskrip" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Apache Configuration" +#~ msgctxt "Language" +#~ msgid "Varnish Configuration Language" +#~ msgstr "Apache Konfigurasie" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Apache Configuration" +#~ msgctxt "Language" +#~ msgid "Varnish 4 Configuration Language" +#~ msgstr "Apache Konfigurasie" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Apache Configuration" +#~ msgctxt "Language" +#~ msgid "Varnish Test Case language" +#~ msgstr "Apache Konfigurasie" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Apache Configuration" +#~ msgctxt "Language" +#~ msgid "Varnish 4 Test Case language" +#~ msgstr "Apache Konfigurasie" + +#~ msgctxt "Language" +#~ msgid "Velocity" +#~ msgstr "Velocity" + +#~ msgctxt "Language" +#~ msgid "Verilog" +#~ msgstr "Verilog" + +#~ msgctxt "Language" +#~ msgid "VHDL" +#~ msgstr "VHDL" + +#~ msgctxt "Language" +#~ msgid "VRML" +#~ msgstr "VRML" + +#~ msgctxt "Language" +#~ msgid "WINE Config" +#~ msgstr "WYN Opstelling" + +#~ msgctxt "Language" +#~ msgid "xHarbour" +#~ msgstr "xHarbour" + +#~ msgctxt "Language" +#~ msgid "XML" +#~ msgstr "XML" + +#~ msgctxt "Language" +#~ msgid "XML (Debug)" +#~ msgstr "Xml (Ontfouting)" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "PostScript" +#~ msgctxt "Language" +#~ msgid "Xonotic Script" +#~ msgstr "PostScript" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "x.org Configuration" +#~ msgstr "Konfigurasie" + +#~ msgctxt "Language" +#~ msgid "xslt" +#~ msgstr "xslt" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "XUL" +#~ msgstr "XML" + +#~ msgctxt "Language" +#~ msgid "yacas" +#~ msgstr "yacas" + +#~ msgctxt "Language" +#~ msgid "Yacc/Bison" +#~ msgstr "Yacc/Bison" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Zonnon" +#~ msgstr "(Onbekend)" + +#~ msgid "File Was Deleted on Disk" +#~ msgstr "Lêer het verwyder op Disket" + +#~ msgid "File Changed on Disk" +#~ msgstr "Lêer het verander op Disket" + +#~ msgid "" +#~ "Do nothing. Next time you focus the file, or try to save it or close it, " +#~ "you will be prompted again." +#~ msgstr "" +#~ "Doen niks. Die volgende keer wat jy op hierdie lêer fokus, of probeer om " +#~ "dit te stoor of dit toe te maak sal jy weer gepor word." + +#~ msgid "Overwrite the disk file with the editor content." +#~ msgstr "Oorskryf die disket lêer met die redigeerder inhoud." + +#, fuzzy +#~| msgid "&Word Wrap Document" +#~ msgid "Close the document." +#~ msgstr "Woord Oorvloei Dokument" + +#~ msgid "" +#~ "Ignoring means that you will not be warned again (unless the disk file " +#~ "changes once more): if you save the document, you will overwrite the file " +#~ "on disk; if you do not save then the disk file (if present) is what you " +#~ "have." +#~ msgstr "" +#~ "Ignoreer beteken dat jy nie weer gewaarsku sal word nie (behalwe as die " +#~ "skyf lêer nogmals verander); as jy die dokument stoor, jy sal oorskryf " +#~ "die lêer op die skyf; as jy dan nie stoor nie, is die skyf lêer (indien " +#~ "teenwoordig) wat jy het." + +#~ msgid "You Are on Your Own" +#~ msgstr "Jy Is op Jou Eie" + +#, fuzzy +#~| msgid "" +#~| "Calculates the difference between the editor contents and the disk file " +#~| "using diff(1) and opens the diff file with the default application for " +#~| "that." +#~ msgid "" +#~ "Calculates the difference between the editor contents and the disk file " +#~ "using diff(1)." +#~ msgstr "" +#~ "Kalkuleer die verskil tussen die redigeerder inhoud en die skyf lêer " +#~ "gebruik verskil(1) en maak oop die verskil lêer met die verstek program " +#~ "vir dit." + +#~ msgid "KDE Default" +#~ msgstr "KDE Verstek" + +#, fuzzy +#~| msgid "Context" +#~ msgid "&Next" +#~ msgstr "Konteks" + +#, fuzzy +#~ msgid "&Previous" +#~ msgstr "Vorige Boekmerk" + +#, fuzzy +#~ msgid "Case-sensitive searching" +#~ msgstr "Kas Sensitief" + +#, fuzzy +#~| msgid "&Bold" +#~ msgid "Mo&de:" +#~ msgstr "Vetdruk" + +#, fuzzy +#~| msgid "Character" +#~ msgctxt "spinbox special value for 1" +#~ msgid "1 character" +#~ msgstr "Karakter" + +#, fuzzy +#~| msgid "Character" +#~ msgctxt "suffix for spinbox >1 wrap words at (value is at 20 or larger)" +#~ msgid " characters" +#~ msgstr "Karakter" + +#, fuzzy +#~| msgid "Se&arch depth for config file:" +#~ msgid "Search &depth for config file:" +#~ msgstr "Soek diepte vir konfigureerde lêer:" + +#, fuzzy +#~| msgid "Indentation with Spaces" +#~ msgid "Indentation width" +#~ msgstr "Inkeping met Spasies" + +#, fuzzy +#~| msgid "Error: %1" +#~ msgid "Error calling action(%1)" +#~ msgstr "Fout: %1" + +#~ msgid "Errors!" +#~ msgstr "Foute!" + +#~ msgid "Error: %1" +#~ msgstr "Fout: %1" + +#, fuzzy +#~| msgid "Selected text:" +#~ msgctxt "Language" +#~ msgid "Restructured Text" +#~ msgstr "Gekose teks:" + +#, fuzzy +#~| msgid "Unable to open %1" +#~ msgid "Unable to find '%1'" +#~ msgstr "Nie moontlik na open %1" + +#, fuzzy +#~| msgid "Word Completion Plugin" +#~ msgid "A&uto Word Completion HI" +#~ msgstr "Woord Klaarmaak Inprop" + +#, fuzzy +#~| msgid "Move to Matching Bracket" +#~ msgid "Matching Bracket" +#~ msgstr "Beweeg na Ooreenstemmende Hakkie" + +#~ msgctxt "Language" +#~ msgid "C++" +#~ msgstr "C++" + +#, fuzzy +#~| msgid "" +#~| "The editor will search the given number of folder levels upwards for ." +#~| "kateconfig file and load the settings line from it." +#~ msgid "" +#~ "The editor will search the given number of folder levels upwards for a ." +#~ "kateconfig file and load the settings line from it." +#~ msgstr "" +#~ "Die redigeerder sal soek die gegewe aantal van kabinet vlakke opgaande " +#~ "vir .kateconfig lêer en laai die instellings lyn daarvan." + +#, fuzzy +#~ msgid "Text Area Background" +#~ msgstr "Teks Area Agtergrond" + +#~ msgid "Normal text:" +#~ msgstr "Normale teks:" + +#~ msgid "" +#~ "

Sets the background color of the selection.

To set the text " +#~ "color for selected text, use the \"Configure Highlighting\" dialog." +#~ "

" +#~ msgstr "" +#~ "

Verstel die agtergrond kleur van die keuse.

Om in te stel die " +#~ "teks kleur vir gekose teks, gebruik die \"Konfigureer Verligting\" " +#~ "dialoog.

" + +#~ msgid "

Select the marker type you want to change.

" +#~ msgstr "

Kies die merker tipe wat jy wil verander.

" + +#~ msgid "" +#~ "

Sets the background color of the selected marker type.

Note: The marker color is displayed lightly because of transparency.

" +#~ msgstr "" +#~ "

Verstel die agtergrond kleur van die verkose merker tipe.

Nota: Die merker kleur word ligter vertoon as gevolg van " +#~ "deursigtigheid.

" + +#~ msgid "Additional Elements" +#~ msgstr "Addisionele Elemente" + +#~ msgid "Left border background:" +#~ msgstr "Linker grens agtergrond:" + +#~ msgid "Line numbers:" +#~ msgstr "Lyn nommers:" + +#~ msgid "" +#~ "

This color will be used to draw the line numbers (if enabled) and the " +#~ "lines in the code-folding pane.

" +#~ msgstr "" +#~ "

Die kleut sal gebruik word om te trek die lyn nommers (as aktiveer) en " +#~ "die lyne in die kode-vou skrifstuk.

" + +#~ msgid "Word wrap markers:" +#~ msgstr "Woord oorvloei markeerders:" + +#, fuzzy +#~| msgid "Tab markers:" +#~ msgid "Tab and space markers:" +#~ msgstr "GUI-element markeerders:" + +#, fuzzy +#~ msgid "Na&mespace:" +#~ msgstr "Terugruimte" + +#, fuzzy +#~| msgid "License:" +#~ msgid "&License:" +#~ msgstr "Lisensie:" + +#, fuzzy +#~| msgid "Author:" +#~ msgid "&Authors:" +#~ msgstr "Outeur:" + +#, fuzzy +#~| msgid "&Filetype:" +#~ msgid "&File types:" +#~ msgstr "Lêertipe:" + +#, fuzzy +#~ msgid "Display &Prefix:" +#~ msgstr "Voorvoegsel:" + +#, fuzzy +#~| msgid "Shortcuts" +#~ msgid "Shortcut:" +#~ msgstr "Kortpaaie" + +#, fuzzy +#~ msgid "S&cripts" +#~ msgstr "Skripte" + +#, fuzzy +#~| msgid "Edit Entry" +#~ msgid "" +#~ msgstr "Regideer Inskrywing" + +#, fuzzy +#~ msgid "Output file '%1' could not be opened for writing" +#~ msgstr "" +#~ "Die lêer %1 kon nie volledig gelaai word nie, omdat daar nie genoeg " +#~ "tydelike skryf stoor is nie." + +#, fuzzy +#~| msgid "Edit Entry" +#~ msgid "Cannot open snippet repository %1." +#~ msgstr "Regideer Inskrywing" + +#, fuzzy +#~| msgid "Filetypes" +#~ msgid "Applies to all filetypes" +#~ msgstr "Lêertipes" + +#, fuzzy +#~| msgid "&Section:" +#~ msgid "Add Repository" +#~ msgstr "Seksie:" + +#, fuzzy +#~| msgid "Edit Entry" +#~ msgid "Edit Repository" +#~ msgstr "Regideer Inskrywing" + +#, fuzzy +#~| msgid "Edit Entry" +#~ msgid "Edit Snippet" +#~ msgstr "Regideer Inskrywing" + +#, fuzzy +#~| msgid "Selected" +#~ msgid "Remove Snippet" +#~ msgstr "Gekose" + +#, fuzzy +#~| msgid "String" +#~ msgid "Filter..." +#~ msgstr "String" + +#, fuzzy +#~| msgid "Plugin Manager" +#~ msgid "Extensions Manager" +#~ msgstr "Inplak Bestuurder" + +#, fuzzy +#~| msgid "Selected" +#~ msgid "Create Snippet" +#~ msgstr "Gekose" + +#, fuzzy +#~ msgid "OVR" +#~ msgstr " Ovr " + +#, fuzzy +#~| msgid " INS " +#~ msgid "INS" +#~ msgstr " Byvoeg " + +#, fuzzy +#~| msgid "Move Word Left" +#~ msgid "Move Left" +#~ msgstr "Beweeg Woord Links" + +#, fuzzy +#~| msgid "Move Word Right" +#~ msgid "Move Right" +#~ msgstr "Beweeg Woord Regterkant" + +#, fuzzy +#~| msgid "Scroll Line Up" +#~ msgid "Move Up" +#~ msgstr "Rol Lyn Begin" + +#, fuzzy +#~| msgid "Scroll Line Down" +#~ msgid "Move Down" +#~ msgstr "Rol Lyn Ondertoe" + +#, fuzzy +#~| msgid "Execution" +#~ msgid "Execute" +#~ msgstr "Uitvoering" + +#, fuzzy +#~| msgid "Show/hide the command line on the bottom of the view." +#~ msgid "Show/hide the JavaScript Console on the bottom of the view." +#~ msgstr "Vertoon/steekweg die opdrag lyn op die onderkant van die besigtig." + +#, fuzzy +#~| msgid "Always On" +#~ msgid "Always on" +#~ msgstr "Altyd Aan" + +#, fuzzy +#~| msgid "Print the current document." +#~ msgid "Modify the current snippet" +#~ msgstr "Druk die huidige dokument." + +#, fuzzy +#~| msgid "Create a new file type." +#~ msgid "Create a new repository file" +#~ msgstr "Maak 'n nuwe lêer tipe." + +#, fuzzy +#~| msgid "Selected" +#~ msgid "Kate Snippets" +#~ msgstr "Gekose" + +#, fuzzy +#~| msgid "Selected" +#~ msgid "New Snippet" +#~ msgstr "Gekose" + +#, fuzzy +#~ msgid "No file specified" +#~ msgstr "Terugruimte" + +#, fuzzy +#~ msgid "File could not be copied to repository" +#~ msgstr "" +#~ "Die lêer %1 kon nie volledig gelaai word nie, omdat daar nie genoeg " +#~ "tydelike skryf stoor is nie." + +#, fuzzy +#~| msgid "Edit Entry" +#~ msgid "Snippet Repository:" +#~ msgstr "Regideer Inskrywing" + +#, fuzzy +#~| msgid "Insert File..." +#~ msgid "New Snippet File..." +#~ msgstr "Voeg by Lêer..." + +#, fuzzy +#~| msgid "Selected" +#~ msgid "Get New Snippets..." +#~ msgstr "Gekose" + +#, fuzzy +#~| msgid "Selected" +#~ msgid "Kate Part Snippets" +#~ msgstr "Gekose" + +#, fuzzy +#~| msgid "&Highlighting" +#~ msgid "&Keep highlighting" +#~ msgstr "Verligting" + +#, fuzzy +#~ msgid "R/O" +#~ msgstr " R/O " + +#~ msgid "Show &folding markers (if available)" +#~ msgstr "Wys vou merkers (indien beskikbaar)" + +#~ msgid "Plugins" +#~ msgstr "Inproppe" + +#, fuzzy +#~| msgid "Move Word Left" +#~ msgid "Programmer's Move Word Left" +#~ msgstr "Beweeg Woord Links" + +#, fuzzy +#~| msgid "Select Word Left" +#~ msgid "Programmer's Select Word Left" +#~ msgstr "Kies Woord Links" + +#, fuzzy +#~| msgid "Move Word Right" +#~ msgid "Programmer's Move Word Right" +#~ msgstr "Beweeg Woord Regterkant" + +#, fuzzy +#~| msgid "Select Word Right" +#~ msgid "Programmer's Select Word Right" +#~ msgstr "Kies Woord Regterkant" + +#~ msgctxt "Language" +#~ msgid "Prolog" +#~ msgstr "Voorwoord" + +#~ msgid "" +#~ "Selections will be overwritten by typed text and will be lost on cursor " +#~ "movement." +#~ msgstr "" +#~ "Uitkiesings sal oorskryf word deur getikte teks en sal verlore wees by " +#~ "plekwyser beweging." + +#~ msgid "&Normal" +#~ msgstr "Normale" + +#~ msgid "Selections will stay even after cursor movement and typing." +#~ msgstr "Uitverkiesings sal bly, selfs na plekwyser beweging en tik." + +#~ msgid "" +#~ "When the user types a left bracket ([,(, or {) KateView automatically " +#~ "enters the right bracket (}, ), or ]) to the right of the cursor." +#~ msgstr "" +#~ "Wanneer die gebruiker tipes 'n links hakkie ([,(, van {) Kateview " +#~ "automaties binne gaan die regterkant hakkie (}, ), van ]) na die " +#~ "regterkant van die plekaanduier." + +#~ msgid "The file %1 is a binary, saving it will result in a corrupt file." +#~ msgstr "" +#~ "Die lêer %1 is 'n binêre, stoor daarvan sal in ' korrupte lêer tot gevolg " +#~ "hê." + +#~ msgid "Trying to Save Binary File" +#~ msgstr "Probeer om binêre Lêer te stoor" + +#, fuzzy +#~| msgid "" +#~| "When on, moving the insertion cursor using the Left and Right keys will go on to previous/next line at beginning/end of the line, " +#~| "similar to most editors.

When off, the insertion cursor cannot be " +#~| "moved left of the line start, but it can be moved off the line end, " +#~| "which can be very handy for programmers." +#~ msgid "" +#~ "

When on, moving the insertion cursor using the Left and " +#~ "Right keys will go on to previous/next line at beginning/end of " +#~ "the line, similar to most editors.

When off, the insertion cursor " +#~ "cannot be moved left of the line start, but it can be moved off the line " +#~ "end, which can be very handy for programmers.

" +#~ msgstr "" +#~ "Wanneer op, beweeg die invoeg plekaanduier te gebruik die Links en " +#~ "Regterkant sleutels sal gaan op na vorige/volgende lyn na begin/" +#~ "einde van die lyn, soortgelyk na mees redigeerders.

Wanneer af, die " +#~ "invoeg plekaanduier kan nie wees verskuif Links van die lyn begin, maar " +#~ "dit kan wees verskuif af die lyn einde, wat kan wees baie nuttig vir " +#~ "programmeerders." + +#, fuzzy +#~| msgid "Wrap c&ursor" +#~ msgid "Wrap c&ursor" +#~ msgstr "Oorvloei plekaanduier" + +#, fuzzy +#~| msgid "" +#~| "If this is enabled, the editor will remove any trailing whitespace on " +#~| "lines when they are left by the insertion cursor." +#~ msgid "" +#~ "If this is enabled, the editor will remove any trailing whitespace on " +#~ "lines that are changed through editing." +#~ msgstr "" +#~ "As hierdie aktiveer is, sal die redigeerder alle volgende witspasies op " +#~ "lyne verwyderwanneer hulle gelaat is deur die ingevoegde plekwyser." + +#, fuzzy +#~| msgid "Remove &trailing spaces" +#~ msgid "Remove &trailing spaces while editing" +#~ msgstr "Verwyder agtervolgende spasies" + +#, fuzzy +#~| msgid "" +#~| "The editor will automatically eliminate extra spaces at the ends of " +#~| "lines of text while loading/saving the file." +#~ msgid "" +#~ "The editor will automatically eliminate extra spaces at the ends of lines " +#~ "of text while saving the file. This change is only visible after a save " +#~ "if you reload the file." +#~ msgstr "" +#~ "Die redigeerder sa outomaties elimineer addisionele spasies aan die einde " +#~ "van lyne van teks wanneer laai/stoor die lêer." + +#, fuzzy +#~| msgid "Remove &trailing spaces" +#~ msgctxt "short translation please" +#~ msgid "Remove trailing spaces when editing a line." +#~ msgstr "Verwyder agtervolgende spasies" + +#~ msgid "Overwrite" +#~ msgstr "Oorskryf" + +#, fuzzy +#~| msgid "&Stop" +#~ msgid "Stop" +#~ msgstr "Stop" + +#, fuzzy +#~| msgid "Colors" +#~ msgctxt "@title:column a color button" +#~ msgid "Color" +#~ msgstr "Kleure" + +#, fuzzy +#~| msgid "Normal &Color..." +#~ msgid "Export HlColors..." +#~ msgstr "Normale Kleur..." + +#, fuzzy +#~| msgid "Normal &Color..." +#~ msgid "Import HlColors..." +#~ msgstr "Normale Kleur..." + +#, fuzzy +#~ msgid "Template Background" +#~ msgstr "Teks Area Agtergrond" + +#~ msgid "Collapse One Local Level" +#~ msgstr "Saambreek een Lokale Vlak" + +#~ msgid "Expand One Local Level" +#~ msgstr "UItbrei Een Lokale Vlak" + +#, fuzzy +#~| msgid "Collapse Toplevel" +#~ msgid "Collapse Level 1" +#~ msgstr "Saambreek Boonstevlak" + +#, fuzzy +#~| msgid "Collapse Toplevel" +#~ msgid "Collapse Level 2" +#~ msgstr "Saambreek Boonstevlak" + +#, fuzzy +#~| msgid "Collapse Toplevel" +#~ msgid "Collapse Level 3" +#~ msgstr "Saambreek Boonstevlak" + +#, fuzzy +#~| msgid "Collapse Toplevel" +#~ msgid "Collapse Level 4" +#~ msgstr "Saambreek Boonstevlak" + +#, fuzzy +#~| msgid "Collapse Toplevel" +#~ msgid "Collapse Level 5" +#~ msgstr "Saambreek Boonstevlak" + +#, fuzzy +#~| msgid "Collapse Toplevel" +#~ msgid "Collapse Level 6" +#~ msgstr "Saambreek Boonstevlak" + +#, fuzzy +#~| msgid "Collapse Toplevel" +#~ msgid "Collapse Level 7" +#~ msgstr "Saambreek Boonstevlak" + +#, fuzzy +#~| msgid "Collapse Toplevel" +#~ msgid "Collapse Level 8" +#~ msgstr "Saambreek Boonstevlak" + +#, fuzzy +#~| msgid "Collapse Toplevel" +#~ msgid "Collapse Level 9" +#~ msgstr "Saambreek Boonstevlak" + +#, fuzzy +#~| msgid "Expand Toplevel" +#~ msgid "Expand Level 1" +#~ msgstr "Uitbrei Boonste Vlak" + +#, fuzzy +#~| msgid "Expand Toplevel" +#~ msgid "Expand Level 2" +#~ msgstr "Uitbrei Boonste Vlak" + +#, fuzzy +#~| msgid "Expand Toplevel" +#~ msgid "Expand Level 3" +#~ msgstr "Uitbrei Boonste Vlak" + +#, fuzzy +#~| msgid "Expand Toplevel" +#~ msgid "Expand Level 4" +#~ msgstr "Uitbrei Boonste Vlak" + +#, fuzzy +#~| msgid "Expand Toplevel" +#~ msgid "Expand Level 5" +#~ msgstr "Uitbrei Boonste Vlak" + +#, fuzzy +#~| msgid "Expand Toplevel" +#~ msgid "Expand Level 6" +#~ msgstr "Uitbrei Boonste Vlak" + +#, fuzzy +#~| msgid "Expand Toplevel" +#~ msgid "Expand Level 7" +#~ msgstr "Uitbrei Boonste Vlak" + +#, fuzzy +#~| msgid "Expand Toplevel" +#~ msgid "Expand Level 8" +#~ msgstr "Uitbrei Boonste Vlak" + +#, fuzzy +#~| msgid "Expand Toplevel" +#~ msgid "Expand Level 9" +#~ msgstr "Uitbrei Boonste Vlak" + +#, fuzzy +#~| msgid "Collapse Toplevel" +#~ msgid "&Collapse" +#~ msgstr "Saambreek Boonstevlak" + +#, fuzzy +#~| msgid "&Format:" +#~ msgid "Form" +#~ msgstr "Formaat:" + +#, fuzzy +#~ msgid "Use this command to create a new document" +#~ msgstr "Druk hierdie knoppie om 'n nuwe outoboekmerk teks te maak." + +#, fuzzy +#~ msgid "Create another view containing the current document" +#~ msgstr "Kies die hele teks van die huidige dokument." + +#, fuzzy +#~ msgid "Close the current document view" +#~ msgstr "Stoor die huidige dokument" + +#, fuzzy +#~ msgid "&About Editor Component" +#~ msgstr "Inlegbare redigeerder komponent" + +#~ msgid " INS " +#~ msgstr " Byvoeg " + +#, fuzzy +#~| msgid " INS " +#~ msgid " LINE " +#~ msgstr " Byvoeg " + +#, fuzzy +#~ msgid "Read the contents of stdin" +#~ msgstr "Herlaai die huidige dokument van disket." + +#, fuzzy +#~ msgid "KWrite" +#~ msgstr "ferite" + +#, fuzzy +#~ msgid "KWrite - Text Editor" +#~ msgstr "Kskryf Outeur" + +#, fuzzy +#~ msgid "Choose Editor Component" +#~ msgstr "Inlegbare redigeerder komponent" + +#, fuzzy +#~ msgid "TestRegression" +#~ msgstr "Gewone Uitdrukking" + +#~ msgid "Error: " +#~ msgstr "Fout: " + +#~ msgid "" +#~ "If this is enabled, the editor will calculate the number of spaces up to " +#~ "the next tab position as defined by the tab width, and insert that number " +#~ "of spaces instead of a TAB character." +#~ msgstr "" +#~ "As hierdie aktiveer is, sal die redigeerder uitreken die hoeveelheid " +#~ "spasies na die volgende oortjie posisie soos gedefnieeërd deur die " +#~ "oortjie wydte, en voeg in daardie aantal spasies in plaas van 'n OORTJIE " +#~ "karakter." + +#~ msgid "&Insert spaces instead of tabulators" +#~ msgstr "Gebruik spasies in plaas van tabelvormers" + +#, fuzzy +#~| msgid "&View Difference" +#~ msgid "View Differences" +#~ msgstr "Vertoon Verskil" + +#, fuzzy +#~| msgid "Disabled" +#~ msgctxt "Encodings menu" +#~ msgid "Disabled" +#~ msgstr "Deaktiveer" + +#~ msgid "Binary File Opened" +#~ msgstr "Binêre Lêer Oopgemaak" + +#, fuzzy +#~ msgid "Broken UTF-8 File Opened" +#~ msgstr "Binêre Lêer Oopgemaak" + +#~ msgid "&Word Wrap Document" +#~ msgstr "Woord Oorvloei Dokument" + +#, fuzzy +#~| msgid "Search Options" +#~ msgid "&Options" +#~ msgstr "Soektog Opsies" + +#, fuzzy +#~| msgid "Wrap c&ursor" +#~ msgid "From &cursor" +#~ msgstr "Oorvloei plekaanduier" + +#, fuzzy +#~ msgid "Hi&ghlight all" +#~ msgstr "Verligting" + +#, fuzzy +#~ msgid "(c) 2000-2008 The Kate Authors" +#~ msgstr "(c) 2000-2004 Die Kate Deel Outeure" + +#~ msgid "Developer & Highlight wizard" +#~ msgstr "Ontwikkelaar en Verlig assistent" + +#, fuzzy +#~ msgid "Unable to read file: '%1'" +#~ msgstr "Nie moontlik na open %1" + +#~ msgid "Success" +#~ msgstr "Sukses" + +#~ msgid "Move Character Right" +#~ msgstr "Beweeg Karakter Regterkant" + +#~ msgid "Move Character Left" +#~ msgstr "Beweeg Karakter Links" + +#~ msgid "&Overwrite" +#~ msgstr "Oorskryf" + +#, fuzzy +#~| msgid "&Find Next" +#~ msgid "Plain text\t\t(Alt+1)" +#~ msgstr "Soek Volgende" + +#, fuzzy +#~ msgid "Regular expression\t(Alt+4)" +#~ msgstr "Gewone Uitdrukking" + +#, fuzzy +#~ msgid "Case Sensitive" +#~ msgstr "Kas Sensitief" + +#~ msgid "&Dynamic word wrap" +#~ msgstr "Dinamiese woord oorvloei" + +#, fuzzy +#~ msgid "(c) 2000-2007 The Kate Authors" +#~ msgstr "(c) 2000-2004 Die Kate Deel Outeure" + +#~ msgid "Line must be at least 1" +#~ msgstr "Lyn moet ten minste wees 1" + +#~ msgid "There is not that many lines in this document" +#~ msgstr "Daar is nie daardie baie lyne in hierdie dokument" + +#, fuzzy +#~ msgid "Highlight all matches" +#~ msgstr "Verligting" + +#, fuzzy +#~ msgid "Selection only " +#~ msgstr "Keuse Slegs" + +#~ msgid "Shortcuts Configuration" +#~ msgstr "Kortpaaie Opstelling" + +#~ msgid "" +#~ "The spelling program could not be started. Please make sure you have set " +#~ "the correct spelling program and that it is properly configured and in " +#~ "your PATH." +#~ msgstr "" +#~ "Die spelling program kon nie begin word nie. Maak asseblief seker dat jy " +#~ "die korrekte spelling program ingestel het en dat dit ordentlik " +#~ "konfigureer is en in jou PATH." + +#~ msgid "The spelling program seems to have crashed." +#~ msgstr "Die spelling program blyk om omgeval te wees." + +#, fuzzy +#~ msgid "unknown" +#~ msgstr "(Onbekend)" + +#~ msgid "Exception, line %1: %2" +#~ msgstr "Uitsonderding, lyn %1: %2" + +#, fuzzy +#~ msgid "Could not access view." +#~ msgstr "Kon nie toegang verkry na uitsig" + +#, fuzzy +#~ msgid "Could not access lookup object." +#~ msgstr "Kon nie toegang verkry na uitsig" + +#, fuzzy +#~ msgid "Exception: Unable to find function '%1': %2" +#~ msgstr "Uitsonderding, lyn %1: %2" + +#, fuzzy +#~ msgid "Exception in line %1: %2" +#~ msgstr "Uitsonderding, lyn %1: %2" + +#, fuzzy +#~ msgid "Setup" +#~ msgstr "Stop" + +#, fuzzy +#~| msgid "Maximum undo steps:" +#~ msgid "&Maximum undo steps:" +#~ msgstr "Maksimum herstel stappe:" + +#, fuzzy +#~ msgid " Static" +#~ msgstr "Stata" + +#~ msgid "Print syntax &guide" +#~ msgstr "Druk sintaks leiding" + +#~ msgid "Print &selected text only" +#~ msgstr "Druk net gekiesde teks" + +#~ msgid "" +#~ "

This option is only available if some text is selected in the document." +#~ "

If available and enabled, only the selected text is printed.

" +#~ msgstr "" +#~ "

Hierdie opsie is slegs beskikbaar as sommige teks is gekose in die " +#~ "dokument.

as beskikbaar en geaktiveer, slegs die gekose teks is " +#~ "printed.

" + +#~ msgid "Print %1" +#~ msgstr "Druk %1" + +#~ msgid "Nowhere" +#~ msgstr "Nêrens" + +#~ msgid "Selection, then Current Word" +#~ msgstr "Soeking, dan Huidige Woord" + +#~ msgid "Current Word Only" +#~ msgstr "Huidige Woord Slegs" + +#~ msgid "Current Word, then Selection" +#~ msgstr "Huidige Woord, dan Verkiesing" + +#~ msgid "Smart search t&ext from:" +#~ msgstr "Luukse soek teks vorm:" + +#, fuzzy +#~| msgid "" +#~| "This determines where KateView will get the search text from (this will " +#~| "be automatically entered into the Find Text dialog): " +#~| "
  • Nowhere: Don't guess the search text.
  • Selection Only: Use the current text selection, if " +#~| "available.
  • Selection, then Current Word: Use the current " +#~| "selection if available, otherwise use the current word.
  • Current Word Only: Use the word that the cursor is " +#~| "currently resting on, if available.
  • Current Word, then " +#~| "Selection: Use the current word if available, otherwise use the " +#~| "current selection.
Note that, in all the above modes, if a " +#~| "search string has not been or cannot be determined, then the Find Text " +#~| "Dialog will fall back to the last search text." +#~ msgid "" +#~ "

This determines where a view will get the search text from \n" +#~ "(this will be automatically entered into the Find Text dialog): \n" +#~ "

\n" +#~ "

\n" +#~ "

    \n" +#~ "
  • Nowhere: Don't guess the search text.\n" +#~ "
  • \n" +#~ "
  • Selection Only: Use the current text selection, \n" +#~ "if available.\n" +#~ "
  • \n" +#~ "
  • Selection, then Current Word: Use the current \n" +#~ "selection if available, otherwise use the current word.\n" +#~ "
  • \n" +#~ "
  • Current Word Only: Use the word that the cursor \n" +#~ "is currently resting on, if available.\n" +#~ "
  • \n" +#~ "
  • Current Word, then Selection: Use the current \n" +#~ "word if available, otherwise use the current selection.\n" +#~ "
  • \n" +#~ "
\n" +#~ "

\n" +#~ "

\n" +#~ "Note that, in all the above modes, if a search string has \n" +#~ "not been or cannot be determined, then the Find Text Dialog \n" +#~ "will fall back to the last search text.\n" +#~ "

" +#~ msgstr "" +#~ "Hierdie bepaal waar KateAansig die soek teks sal kry (dit sal outomaties " +#~ "ingevoer word in die Vind Teks dialoog):
  • Nêrens: " +#~ "Moenie raai die toets teks.
  • Kiesing Slegs: Gebruik die " +#~ "huidige teks verkiesing, indien beskikbaar.
  • Kiesing, dan " +#~ "Huidige Woord: Gebruik die huidige verkiesing indien beskikbaar, " +#~ "andersins gebruik die huidige woord.
  • Huidige Woord Slegs: " +#~ "Gebruik die woord waar die plekwyser huidig op rus, indien beskikbaar.
  • Huidige Woord, dan Verkiesing: Gebruik die huidige woord " +#~ "indien beskikbaar, andersins gebruik die huidige verkiesing.
  • Noteer dat, in alle modules hierbo, indien 'n soek string nie bepaal " +#~ "kan word nie, dan sal die Vind Teks Dialoog terug val na die laasste soek " +#~ "teks." + +#, fuzzy +#~ msgid "NORM" +#~ msgstr "Norm" + +#, fuzzy +#~| msgid "Wrap c&ursor" +#~ msgid "&From cursor" +#~ msgstr "Oorvloei plekaanduier" + +#, fuzzy +#~ msgid "&Highlight all" +#~ msgstr "Verligting" + +#~ msgid "Pop Up Completion List" +#~ msgstr "Opspring Klaarmaak lys" + +#~ msgid "Automatically &show completion list" +#~ msgstr "Automatiese vertoon klaarmaak lys" + +#, fuzzy +#~ msgctxt "" +#~ "Translators: This is the first part of two strings which will comprise " +#~ "the sentence 'Show completions when a word is at least N characters'. The " +#~ "first part is on the right side of the N, which is represented by a " +#~ "spinbox widget, followed by the second part: 'characters long'. " +#~ "Characters is a ingeger number between and including 1 and 30. Feel free " +#~ "to leave the second part of the sentence blank if it suits your language " +#~ "better. " +#~ msgid "Show completions &when a word is at least" +#~ msgstr "Wys klaarmaking wanneer 'n woord is ten minste" + +#, fuzzy +#~ msgctxt "" +#~ "This is the second part of two strings that will comprise the sentence " +#~ "'Show completions when a word is at least N characters'" +#~ msgid "characters long." +#~ msgstr "karakters lank." + +#~ msgid "" +#~ "Enable the automatic completion list popup as default. The popup can be " +#~ "disabled on a view basis from the 'Tools' menu." +#~ msgstr "" +#~ "Aktiveer die outomatiese klaarmaak lys inprop as verstek. Die inprop kan " +#~ "deaktiveer word op 'n vertoon basis van die 'Gereedskap' kieslys." + +#~ msgid "" +#~ "Define the length a word should have before the completion list is " +#~ "displayed." +#~ msgstr "" +#~ "Defineer die lengte wat 'n woord moet hê voor die klaarmaak lys vertoon " +#~ "word." + +#~ msgid "Choose File to Insert" +#~ msgstr "Kies Lêer na Voeg by" + +#~ msgid "" +#~ "Failed to load file:\n" +#~ "\n" +#~ msgstr "" +#~ "Gevaal na las lêer:\n" +#~ "\n" + +#~ msgid "Insert File Error" +#~ msgstr "Voeg by Lêer fout" + +#~ msgid "" +#~ "

    The file %1 does not exist or is not readable, " +#~ "aborting." +#~ msgstr "" +#~ "

    Die lêer %1 doen nie bestaan of is nie leesbaar, gaan " +#~ "staak." + +#~ msgid "

    Unable to open file %1, aborting." +#~ msgstr "

    Nie moontlik na open lêer %1, gaan staak." + +#~ msgid "

    File %1 had no contents." +#~ msgstr "

    Lêer %1 moes nee inhoud." + +#~ msgid "Data Tools" +#~ msgstr "Data Nutsprogramme" + +#~ msgid "(not available)" +#~ msgstr "(nie beskikbaar)" + +#~ msgid "" +#~ "Data tools are only available when text is selected, or when the right " +#~ "mouse button is clicked over a word. If no data tools are offered even " +#~ "when text is selected, you need to install them. Some data tools are part " +#~ "of the KOffice package." +#~ msgstr "" +#~ "data nutsprogramme woord slegs beskikbaar wanneer teks is gekose, van " +#~ "wanneer die regterkant muis knoppie is gekliek het bo 'n woord. As nee " +#~ "data nutsprogramme woord aan bied al wanneer teks is gekose, jy benodig " +#~ "na installeer hulle. Sommige data nutsprogramme woord deel van die " +#~ "Koffice paket." + +#~ msgid "AutoBookmarks" +#~ msgstr "OutoBoekmerke" + +#~ msgid "Configure AutoBookmarks" +#~ msgstr "Konfigureer OutoBoekmerke" + +#~ msgid "&Pattern:" +#~ msgstr "Patroon:" + +#~ msgid "

    A regular expression. Matching lines will be bookmarked.

    " +#~ msgstr "

    'n Gewone uitdrukking. Passende lyne sal geboekmerk word.

    " + +#~ msgid "" +#~ "

    If enabled, the pattern matching will be case sensitive, otherwise not." +#~ "

    " +#~ msgstr "" +#~ "

    As ontsper, die patroon passing sal geval sensitief wees, andersins " +#~ "nie.

    " + +#~ msgid "" +#~ "

    If enabled, the pattern matching will use minimal matching; if you do " +#~ "not know what that is, please read the appendix on regular expressions in " +#~ "the kate manual.

    " +#~ msgstr "" +#~ "

    Indien aktiveer, die patroon passing salminimale passing gebruik; " +#~ "indien jy nie weet wat die is nie, lees asseblief die aanhang van gewone " +#~ "uitdrukkings in die kate handleiding.

    " + +#~ msgid "&File mask:" +#~ msgstr "Lêer masker:" + +#~ msgid "" +#~ "

    A list of filename masks, separated by semicolons. This can be used to " +#~ "limit the usage of this entity to files with matching names.

    Use " +#~ "the wizard button to the right of the mimetype entry below to easily fill " +#~ "out both lists.

    " +#~ msgstr "" +#~ "

    'n Lys met lêernaam maskers, geskei deur semidubbelpunte. Dit kan " +#~ "gebruik word om die gebruik te beperk van hierdie teks na lêers met " +#~ "passende name.

    Gebruik die raadgewer knoppie na die regterkant van " +#~ "die mimetipe teks onder om maklik beide lyste uit te vul.

    " + +#~ msgid "" +#~ "

    A list of mime types, separated by semicolon. This can be used to " +#~ "limit the usage of this entity to files with matching mime types.

    Use the wizard button on the right to get a list of existing file " +#~ "types to choose from, using it will fill in the file masks as well.

    " +#~ msgstr "" +#~ "

    'n Lys met mime tipes, geskei deur semidubbelpunt. Dit kan gebruik " +#~ "word om die gebruik van hierdie teks na lêers met passende mime tipes, te " +#~ "beperk.

    Gebruik die raadgewer knoppie regs om 'n lys van bestaande " +#~ "lêer tipes te kry om van te kies, die gebruik daarvan sal die lêer " +#~ "maskers ook vul.

    " + +#~ msgid "" +#~ "

    Click this button to display a checkable list of mimetypes available " +#~ "on your system. When used, the file masks entry above will be filled in " +#~ "with the corresponding masks.

    " +#~ msgstr "" +#~ "

    Kliek hierdie knoppie om te vertoon die kontroleurbare lys van " +#~ "mimetipes beskikbaar op jou stelsel. Wanneer gebruik, die lêer masker " +#~ "inskrywing hierbo sal ingevul word met die korresponderende maskers.

    " + +#~ msgid "" +#~ "Select the MimeTypes for this pattern.\n" +#~ "Please note that this will automatically edit the associated file " +#~ "extensions as well." +#~ msgstr "" +#~ "Kies die Mime-tipes vir hierdie patroon.\n" +#~ "Noteer asseblief dat dit outomaties redigeer die geassosieerde lêer " +#~ "uitbreiding ook." + +#~ msgid "&Patterns" +#~ msgstr "Patrone" + +#~ msgid "Pattern" +#~ msgstr "Patroon" + +#~ msgid "Mime Types" +#~ msgstr "Mime Tipes" + +#~ msgid "" +#~ "

    This list shows your configured autobookmark entities. When a document " +#~ "is opened, each entity is used in the following way:

    1. The entity " +#~ "is dismissed, if a mime and/or filename mask is defined, and neither " +#~ "matches the document.
    2. Otherwise each line of the document is " +#~ "tried against the pattern, and a bookmark is set on matching lines.
    3. Use the buttons below to manage your collection of entities.

      " +#~ msgstr "" +#~ "

      Hierdie lys wys jou gekonfigureerde outoboekmerk tekste. Wanneer 'n " +#~ "dokument oopgemaak is, word elke teks gebruik soos volg:

      1. Die teks " +#~ "is verwerp, as 'n mime en/of lêernaam masker gedefnieër is, en geen " +#~ "daarvan die dokument pas.
      2. Andersins word elke lyn van die " +#~ "dokument probeer teenoor die patroon, en 'n boekmerk word geplaas op die " +#~ "passende lyne.

Gebruik die knoppies hieronder om jou " +#~ "kolleksie van tekste te bestuur.

" + +#~ msgid "Press this button to create a new autobookmark entity." +#~ msgstr "Druk hierdie knoppie om 'n nuwe outoboekmerk teks te maak." + +#~ msgid "Press this button to delete the currently selected entity." +#~ msgstr "" +#~ "Druk hierdie knoppie die huidiglik gekose teks te verwyder klipbord." + +#~ msgid "&Edit..." +#~ msgstr "Redigeer..." + +#~ msgid "Press this button to edit the currently selected entity." +#~ msgstr "Druk hierdie kopie om die huidig gekiesde teks te redigeer." + +#~ msgid "Word Completion Plugin" +#~ msgstr "Woord Klaarmaak Inprop" + +#~ msgid "Configure the Word Completion Plugin" +#~ msgstr "Konfigureer die Woord Klaarmaak Inprop" + +#~ msgid "Configure..." +#~ msgstr "Konfigureer..." + +#~ msgid "Cursor & Selection Behavior" +#~ msgstr "Plekwyser en Keuse Gedrag" + +#, fuzzy +#~ msgid "Script Manager" +#~ msgstr "Inplak Bestuurder" + +#~ msgid "" +#~ "Select the MimeTypes you want highlighted using the '%1' syntax highlight " +#~ "rules.\n" +#~ "Please note that this will automatically edit the associated file " +#~ "extensions as well." +#~ msgstr "" +#~ "Kies die Mime-tipes jy wil hê verlig te gebruik die '%1' sintaks verlig " +#~ "reëls.\n" +#~ "Asseblief nota wat hierdie sal automaties redigeer die geassosieer lêer " +#~ "uitbreidings as goed." + +#~ msgid "Hide Folding &Markers" +#~ msgstr "Versteek Vou en Merkers" + +#~ msgid "Hide &Icon Border" +#~ msgstr "Wegsteek Ikoon Grens" + +#~ msgid "Hide &Line Numbers" +#~ msgstr "Wegsteek Lyn Nommers" + +#~ msgid "Hide Scroll&bar Marks" +#~ msgstr "Wegsteek rolstaaf merke" + +#, fuzzy +#~ msgid "Search string '%1' not found." +#~ msgstr "Soektog string '%1' nie gevind!" + +#~ msgid "Beginning of document reached." +#~ msgstr "Begin van dokument bereik." + +#~ msgid "End of selection reached." +#~ msgstr "Einde van verkose deel bereik." + +#~ msgid "Beginning of selection reached." +#~ msgstr "Begin van verkose deel bereik." + +#~ msgid "Continue from the beginning?" +#~ msgstr "Gaan voort van die begin?" + +#~ msgid "Re&place && Close" +#~ msgstr "Vervang && Sluit" + +#~ msgid "Found an occurrence of your search term. What do you want to do?" +#~ msgstr "Gevind die voorkoms van jou gesoekte term. Wat wil jy doen?" + +#~ msgid "Usage: find[:[bcersw]] PATTERN" +#~ msgstr "Gebruik: vind[:[bcersw]] PATROON" + +#~ msgid "Usage: ifind[:[bcrs]] PATTERN" +#~ msgstr "Gebruik: ivind[:[bcrs]] PATROON" + +#~ msgid "Usage: replace[:[bceprsw]] PATTERN [REPLACEMENT]" +#~ msgstr "Gebruik: vervang[:[bceprsw]] PATROON [VERVANGING]" + +#~ msgid "

Usage: find[:bcersw] PATTERN

" +#~ msgstr "

Gebruik: vind[:bcersw] PATROON

" + +#~ msgid "" +#~ "

Usage: ifind:[:bcrs] PATTERN
ifind does incremental or " +#~ "'as-you-type' search

" +#~ msgstr "" +#~ "

Gebruik: ivind:[:bcrs] PATROON
ivind doen toenemend of " +#~ "'soos-jy-tik' soek

" + +#~ msgid "

Usage: replace[:bceprsw] PATTERN REPLACEMENT

" +#~ msgstr "

Gebruik: vervang[:bceprsw] PATROON VERVANGING

" + +#~ msgid "" +#~ "

Options

b - Search backward
c - " +#~ "Search from cursor
r - Pattern is a regular expression
s - Case sensitive search" +#~ msgstr "" +#~ "

Opsies

b - Soek terugwaarts
c - Soek " +#~ "van plekwyser
r - Patroon is 'n gewone uitdrukking
s " +#~ "- Geval sensitiewe soek" + +#~ msgid "" +#~ "
e - Search in selected text only
w - Search whole " +#~ "words only" +#~ msgstr "" +#~ "
e - Soek slegs in die verkose teks
w - Soek slegs " +#~ "hele woorde" + +#~ msgid "" +#~ "
p - Prompt for replace

If REPLACEMENT is not present, an " +#~ "empty string is used.

If you want to have whitespace in your " +#~ "PATTERN, you need to quote both PATTERN and REPLACEMENT with either " +#~ "single or double quotes. To have the quote characters in the strings, " +#~ "prepend them with a backslash." +#~ msgstr "" +#~ "
p - Por vir vervang

As VERVANGING is nie teenwoordig, 'n " +#~ "leë string word gebruik.

As jy witspasies in jou PATROON wil hê, " +#~ "het jy nodig om aan te haal beide PATROON en VERVANGING met of enkele of " +#~ "dubbele aanhalings. Om die aangehaalde karakters in die stringe te hê, " +#~ "berei dit voor met 'n agteroor skuinsstreep." + +#~ msgid "indenter.register requires 2 parameters (event id, function to call)" +#~ msgstr "" +#~ "indenter.register benodig 2 parameters (gebeur id, funksie om te roep)" + +#~ msgid "" +#~ "indenter.register requires 2 parameters (event id (number), function to " +#~ "call (function))" +#~ msgstr "" +#~ "indenter.register benodig 2 parameters (gebeur id (nommer), funksie om te " +#~ "roep (funksie))" + +#~ msgid "indenter.register:invalid event id" +#~ msgstr "indenter.register:ongeldige gebeur id" + +#~ msgid "indenter.register:there is already a function set for given" +#~ msgstr "indenter.register:daar is reeds 'n funksie stel vir gegewe" + +#~ msgid "document.textLine:One parameter (line number) required" +#~ msgstr "document.textLine:Een parameter (lyn nommer) benodig" + +#~ msgid "document.textLine:One parameter (line number) required (number)" +#~ msgstr "document.textLine:Een parameter (lyn nommer) benodigde (nommer)" + +#~ msgid "" +#~ "document.removeText:Four parameters needed (start line, start col,end " +#~ "line, end col)" +#~ msgstr "" +#~ "document.removeText:Vier parameters benodig (begin lyn, begin kolom,end " +#~ "lyn, end kolom)" + +#~ msgid "" +#~ "document.removeText:Four parameters needed (start line, start col,end " +#~ "line, end col) (4x number)" +#~ msgstr "" +#~ "document.removeText:Vier parameters benodig (begin lyn, begin kolom,end " +#~ "lyn, end kolom) (4x nommer)" + +#~ msgid "document.insertText:Three parameters needed (line,col,text)" +#~ msgstr "document.insertText:Drie parameters benodig (lyn,kolom,teks)" + +#~ msgid "" +#~ "document.removeText:Three parameters needed (line,col,text) (number," +#~ "number,string)" +#~ msgstr "" +#~ "document.removeText:Drie parameters benodig (lyn,kolom,teks) (nommer," +#~ "nommer,string)" + +#~ msgid "LUA interpreter could not be initialized" +#~ msgstr "LUA interpreteerder kon nie inisialiseerd word nie" + +#~ msgid "Lua indenting script had errors: %1" +#~ msgstr "Lua inkeping skrip het foute gehad: %1" + +#~ msgid "" +#~ "This file could not be loaded correctly due to lack of temporary disk " +#~ "space. Saving it could cause data loss.\n" +#~ "\n" +#~ "Do you really want to save it?" +#~ msgstr "" +#~ "Hierdie lêer kon nie korrek gelaai word nie, omdat daar te min tydelike " +#~ "skyf spasie is.Stoor daarvan kan data verlies veroorsaak.\n" +#~ "\n" +#~ "Wil jy die werklik stoor?" + +#~ msgid "N&ame:" +#~ msgstr "Naam:" + +#~ msgid "Insert leading Doxygen \"*\" when typing" +#~ msgstr "Invoeg leidende Doxygen \"*\" wanneer tik" + +#~ msgid "Use &spaces instead of tabs to indent" +#~ msgstr "Gebruik spasies in plaas van oortjies vir inkeep" + +#~ msgid "Emacs style mixed mode" +#~ msgstr "Emacs style gemengde modus" + +#~ msgid "Keep indent &profile" +#~ msgstr "Hou inkeep profiel" + +#~ msgid "Keys to Use" +#~ msgstr "Sleutels om te gebruik" + +#~ msgid "Tab Key Mode if Nothing Selected" +#~ msgstr "Oortjie Sleutel Modus as Niks gekies is" + +#~ msgid "Insert indent &characters" +#~ msgstr "Invoeg inkeep karakters" + +#~ msgid "Check this if you want to indent with spaces rather than tabs." +#~ msgstr "Bevestig hierdie as jy wil inkeep met spasies eerder as oortjies." + +#~ msgid "" +#~ "Indentations of more than the selected number of spaces will not be " +#~ "shortened." +#~ msgstr "" +#~ "Inkeping van meer as die gekose nommer van spasies sal nie wees verkort." + +#~ msgid "" +#~ "This allows the Tab key to be used to increase the indentation " +#~ "level." +#~ msgstr "" +#~ "Hierdie laat toe die Oortjie sleutel om gebruik te word om te " +#~ "vermeerder die inkeep vlak." + +#~ msgid "" +#~ "This allows the Backspace key to be used to decrease the " +#~ "indentation level." +#~ msgstr "" +#~ "Hierdie laat toe die Terugspasie sleutel om gebruik te word om te " +#~ "verklein die inkeep vlak." + +#~ msgid "" +#~ "Automatically inserts a leading \"*\" while typing within a Doxygen style " +#~ "comment." +#~ msgstr "" +#~ "Outomaties invoeg 'n leidende \"*\" wanneer tik binne in 'n Doxygen styl " +#~ "kommentaar." + +#~ msgid "Use a mix of tab and space characters for indentation." +#~ msgstr "Gebruik 'n mengsel van oortjie en spasie karakters vir inkepings" + +#~ msgid "" +#~ "If this button is enabled, additional indenter specific options are " +#~ "available and can be configured in an extra dialog." +#~ msgstr "" +#~ "Indien hierdie knopiie aktiveer is, is adisionele inkeep spesifikasie " +#~ "opsies beskikbaar en kan konfigureer word in 'n ekstra dialoog." + +#~ msgid "Configure Indenter" +#~ msgstr "Konfigureer Inkeper" + +#~ msgid "Collapse toplevel folding nodes" +#~ msgstr "Saambreek boonste vlak vou nodes" + +#~ msgid "Memory Usage" +#~ msgstr "Geheue Gebruik" + +#~ msgid "Maximum loaded &blocks per file:" +#~ msgstr "Maksimum laai en bloks per lêer:" + +#~ msgid "" +#~ "The editor will load given number of blocks (of around 2048 lines) of " +#~ "text into memory; if the filesize is bigger than this the other blocks " +#~ "are swapped to disk and loaded transparently as-needed.
This can " +#~ "cause little delays while navigating in the document; a larger block " +#~ "count increases the editing speed at the cost of memory.
For normal " +#~ "usage, just choose the highest possible block count: limit it only if you " +#~ "have problems with the memory usage." +#~ msgstr "" +#~ "Die redigeerder sal laai gegewe aantal blokke (omtrent 2048 lyne) van " +#~ "teks in die geheue; as die lêergrote groter is as dit, die ander blokke " +#~ "word geruik na die skryf en deursigtig gelaai soos benodig.
Dit kan " +#~ "kort vertragings veroorsaal gedurende navigering in die dokument; 'n " +#~ "groter blok aantal verhoog die redigering spoed ten koste van die geheue. " +#~ "
Vir gewone gebruik, kies slegs die hoogste moontlike blok aantal: " +#~ "beperk dit slegs as jy probleme het met die geheue gebruik." + +#~ msgid "Configure %1" +#~ msgstr "Konfigureer %1" + +#~ msgid "Do&wnload..." +#~ msgstr "Aflaai..." + +#~ msgid "" +#~ "Choose a Syntax Highlight mode from this list to view its " +#~ "properties below." +#~ msgstr "" +#~ "Kies 'n Sintaks Verlig modus van hierdie lys na besigtig sy " +#~ "eienskappe onder." + +#~ msgid "" +#~ "The list of file extensions used to determine which files to highlight " +#~ "using the current syntax highlight mode." +#~ msgstr "" +#~ "Die lys van lêer uitbreidings gebruik word na bepaal wat lêers na verlig " +#~ "te gebruik Die huidige sintaks verlig modus." + +#~ msgid "" +#~ "The list of Mime Types used to determine which files to highlight using " +#~ "the current highlight mode.

Click the wizard button on the left of the " +#~ "entry field to display the MimeType selection dialog." +#~ msgstr "" +#~ "Die lys van Mime Tipes gebruik word na bepaal wat lêers na verlig te " +#~ "gebruik Die huidige verlig modus.

Kliek Die assistent knoppie op Die " +#~ "links van Die inskrywing veld na vertoon Die Mime-tipe keuse dialoog." + +#~ msgid "" +#~ "Display a dialog with a list of all available mime types to choose from." +#~ "

The File Extensions entry will automatically be " +#~ "edited as well." +#~ msgstr "" +#~ "Vertoon 'n dialoog met 'n lys van alle beskikbaar mime tipes na kies van." +#~ "

Die Lêer Uitbreidings inskrywing sal automaties wees " +#~ "geredigeerde as goed." + +#~ msgid "" +#~ "Click this button to download new or updated syntax highlight " +#~ "descriptions from the Kate website." +#~ msgstr "" +#~ "Kliek hierdie knoppie na aflaai nuwe of opgedateer sintaks verlig " +#~ "beskrywings van die Kate webtuiste." + +#~ msgid "JavaScript file not found" +#~ msgstr "JavaScript lêer nie gevind nie" + +#~ msgid "Show the code folding region tree" +#~ msgstr "Wys die kode vou area boom" + +#~ msgid "Basic template code test" +#~ msgstr "Basiese sjabloon kode toets" + +#~ msgid " Col: %1" +#~ msgstr "Kolom: %1" + +#~ msgid "Overwrite the file" +#~ msgstr "Oorskryf die lêer" + +#~ msgid "Python Style" +#~ msgstr "Python Styl" + +#~ msgid "S&S C Style" +#~ msgstr "S&S C Style" + +#~ msgid "Variable Based Indenter" +#~ msgstr "Veranderlik Baseerde Inkeper" + +#~ msgid "Mode must be at least 0." +#~ msgstr "Modus moet ten minste 0 wees" + +#~ msgid "Search Incrementally" +#~ msgstr "Soek toenemend" + +#~ msgid "Search Incrementally Backwards" +#~ msgstr "Soek toenemend Terugwaarts" + +#~ msgid "From Beginning" +#~ msgstr "Van Begin" + +#~ msgctxt "Incremental Search" +#~ msgid "I-Search:" +#~ msgstr "I-Soektog:" + +#~ msgctxt "Incremental Search found no match" +#~ msgid "Failing I-Search:" +#~ msgstr "Gevaalde I-Soektog:" + +#~ msgctxt "Incremental Search in the reverse direction" +#~ msgid "I-Search Backward:" +#~ msgstr "I-Soektog Terugwaarts:" + +#~ msgid "Failing I-Search Backward:" +#~ msgstr "Gevaalde I-Soektog Terugwaarts:" + +#~ msgctxt "Incremental Search has passed the end of the document" +#~ msgid "Wrapped I-Search:" +#~ msgstr "Oorvloei I-Soektog:" + +#~ msgid "Failing Wrapped I-Search:" +#~ msgstr "Gevaalde Oorvloei I-Soektog:" + +#~ msgid "Wrapped I-Search Backward:" +#~ msgstr "Oorvloei I-Soektog Terugwaarts:" + +#~ msgid "Failing Wrapped I-Search Backward:" +#~ msgstr "Gevaalde Oorvloei I-Soektog Terugwaarts:" + +#~ msgctxt "" +#~ "Incremental Search has passed both the end of the document and the " +#~ "original starting position" +#~ msgid "Overwrapped I-Search:" +#~ msgstr "Oorvloei I-Soektog:" + +#~ msgid "Failing Overwrapped I-Search:" +#~ msgstr "Vaal Oorvloeide I-Soektog:" + +#~ msgid "Overwrapped I-Search Backwards:" +#~ msgstr "Oorvloeide I-Soektog terugwaarts:" + +#~ msgid "Failing Overwrapped I-Search Backward:" +#~ msgstr "Vaal Oorvloeide I-Soektog Terugwaats:" + +#~ msgid "Error: unknown i-search state!" +#~ msgstr "Fout: onbekende i-soektog status!" diff --git a/local/recipes/kde/kf6-ktexteditor/source/po/ar/ktexteditor6.po b/local/recipes/kde/kf6-ktexteditor/source/po/ar/ktexteditor6.po new file mode 100644 index 0000000000..d297aab1cb --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/po/ar/ktexteditor6.po @@ -0,0 +1,10234 @@ +# translation of katepart4.po to Arabic +# translation of katepart4.po to +# Copyright (C) 2001-2003, 2004, 2006, 2007, 2008 Free Software Foundation, Inc. +# Ammer Alsabbagh , 2001. +# Isam Bayazidi , 2003. +# Youcef Rabah Rahal , 2003. +# Ahmad M. Zawawi , 2004. +# Tarig Abdu Taha , 2004. +# Mohammed Gamal , 2004. +# Munzir Taha , 2004. +# محمد سعد Mohamed SAAD , 2006. +# Youssef Chahibi , 2007. +# SPDX-FileCopyrightText: 2008, 2024, 2025, 2026 zayed +# Zayed Al-Saidi , 2009, 2022, 2023. +# Safa Alfulaij , 2016, 2017. +msgid "" +msgstr "" +"Project-Id-Version: katepart4\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2026-06-23 00:41+0000\n" +"PO-Revision-Date: 2026-06-21 20:26+0400\n" +"Last-Translator: Zayed Al-Saidi \n" +"Language-Team: ar\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 ? 4 : 5;\n" +"X-Generator: Lokalize 23.08.5\n" + +#: completion/katecompletionmodel.cpp:147 +#, kde-format +msgid "Argument-hints" +msgstr "تلميحات المحددات" + +#: completion/katecompletionmodel.cpp:148 +#, kde-format +msgid "Best matches" +msgstr "أفضل تطابق" + +#: completion/katekeywordcompletion.cpp:143 +#, kde-format +msgid "Language keywords" +msgstr "كلمات اللغة المفتاحيّة" + +#: completion/katewordcompletion.cpp:74 +#, kde-format +msgid "Auto Word Completion" +msgstr "إكمال الكلمات الآليّ" + +#: completion/katewordcompletion.cpp:301 +#, kde-format +msgid "Shell Completion" +msgstr "إكمال الصّدفة" + +#: completion/katewordcompletion.cpp:306 +#, kde-format +msgid "Reuse Word Above" +msgstr "أعد استخدام الكلمة أعلاه" + +#: completion/katewordcompletion.cpp:312 +#, kde-format +msgid "Reuse Word Below" +msgstr "أعد استخدام الكلمة أدناه" + +#. i18n: ectx: Menu (file) +#: data/katepart5ui.rc:4 +#, kde-format +msgid "&File" +msgstr "&ملفّ" + +#. i18n: ectx: Menu (file_export) +#: data/katepart5ui.rc:10 +#, kde-format +msgid "&Print/Export" +msgstr "ا&طبع/صدر" + +#. i18n: ectx: Menu (edit) +#: data/katepart5ui.rc:17 +#, kde-format +msgid "&Edit" +msgstr "&حرّر" + +#. i18n: ectx: Menu (edit_find_menu) +#: data/katepart5ui.rc:36 +#, kde-format +msgid "Find Variants" +msgstr "تنويعات الإيجاد" + +#. i18n: ectx: Menu (selection) +#: data/katepart5ui.rc:46 +#, kde-format +msgid "Selection" +msgstr "التحديد" + +#. i18n: ectx: Menu (capitalization) +#: data/katepart5ui.rc:53 +#, kde-format +msgid "Capitalization" +msgstr "الكتابة بالأحرف الكبيرة" + +#. i18n: ectx: Menu (view) +#: data/katepart5ui.rc:73 +#, kde-format +msgid "&View" +msgstr "من&ظور" + +#. i18n: ectx: Menu (view_menu_word_wrap) +#: data/katepart5ui.rc:78 +#, kde-format +msgid "Word Wrap" +msgstr "لفّ الكلمات" + +#. i18n: ectx: Menu (view_menu_borders) +#: data/katepart5ui.rc:84 dialogs/katedialogs.cpp:747 +#, kde-format +msgid "Borders" +msgstr "الحدود" + +#. i18n: ectx: Menu (codefolding) +#: data/katepart5ui.rc:92 +#, kde-format +msgid "&Code Folding" +msgstr "&طيّ الشفرة" + +#. i18n: ectx: Menu (go) +#: data/katepart5ui.rc:109 +#, kde-format +msgid "&Go" +msgstr "ا&ذهب" + +#. i18n: ectx: Menu (tools) +#: data/katepart5ui.rc:124 +#, kde-format +msgid "&Tools" +msgstr "أ&دوات" + +#. i18n: ectx: Menu (wordcompletion) +#: data/katepart5ui.rc:138 +#, kde-format +msgid "Word Completion" +msgstr "إكمال الكلمات" + +#. i18n: ectx: Menu (spelling) +#: data/katepart5ui.rc:144 spellcheck/spellingmenu.cpp:71 +#: spellcheck/spellingmenu.cpp:195 +#, kde-format +msgid "Spelling" +msgstr "هجاء" + +#. i18n: ectx: Menu (speech) +#: data/katepart5ui.rc:153 data/katepart5ui.rc:184 +#, kde-format +msgid "Text to Speech" +msgstr "نطق النص" + +#. i18n: ectx: Menu (settings) +#: data/katepart5ui.rc:161 +#, kde-format +msgid "&Settings" +msgstr "إ&عدادات" + +#. i18n: ectx: ToolBar (mainToolBar) +#: data/katepart5ui.rc:192 +#, kde-format +msgid "Main Toolbar" +msgstr "شريط الأدوات الرّئيس" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/bordersappearanceconfigwidget.ui:25 +#, kde-format +msgid "Code block folding:" +msgstr "طيّ كتلة الشفرة:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowFoldingMarkers) +#: dialogs/bordersappearanceconfigwidget.ui:32 +#, kde-format +msgid "" +"If this option is checked, every new view will display marks for folding." +msgstr "إن أُشّر هذا الخيار، سيعرض كلّ منظور جديد علامات للطّيّ." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowFoldingMarkers) +#: dialogs/bordersappearanceconfigwidget.ui:35 +#, kde-format +msgid "Show arrows to collapse code blocks" +msgstr "أظهر أسهم لطي كتل الرمز" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowFoldingPreview) +#: dialogs/bordersappearanceconfigwidget.ui:42 +#, kde-format +msgid "" +"If checked, hovering over a folded region shows a preview of the folded text " +"in a popup." +msgstr "إن أُشّر، وضع المؤشّر على منطقة مطويّة سيعرض معاينة للنّصّ المطويّ في منبثقة." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowFoldingPreview) +#: dialogs/bordersappearanceconfigwidget.ui:45 +#, kde-format +msgid "Show preview of folded blocks on hover" +msgstr "أظهر معاينة للكتل المطويّة عند الحوم" + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/bordersappearanceconfigwidget.ui:52 +#, kde-format +msgid "Folding arrows visibility:" +msgstr "ظهور أسهم الطي:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbFoldingArrowVisiblity) +#: dialogs/bordersappearanceconfigwidget.ui:63 +#, kde-format +msgid "Show on Hover" +msgstr "عند التحويم" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbFoldingArrowVisiblity) +#: dialogs/bordersappearanceconfigwidget.ui:68 +#, kde-format +msgid "Show Always" +msgstr "اعرض دائمًا" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/bordersappearanceconfigwidget.ui:92 +#, kde-format +msgid "Left side:" +msgstr "الجانب الأيسر:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkIconBorder) +#: dialogs/bordersappearanceconfigwidget.ui:99 +#, kde-format +msgid "" +"

If this option is checked, every new view will display an icon border on " +"the left hand side.

The icon border shows bookmark signs, for instance." +"

" +msgstr "" +"إن أُشّر هذا الخيار، سيعرض كلّ منظور جديد حدّ أيقونات على الجانب الأيسر.

يعرض حدّ الأيقونات إشارات تدلّ على العلامات مثلًا." + +#. i18n: ectx: property (text), widget (QCheckBox, chkIconBorder) +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMarks) +#: dialogs/bordersappearanceconfigwidget.ui:102 +#: dialogs/bordersappearanceconfigwidget.ui:155 +#, kde-format +msgid "Show marks" +msgstr "أظهر العلامات" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkLineNumbers) +#: dialogs/bordersappearanceconfigwidget.ui:109 +#, kde-format +msgid "" +"If this option is checked, every new view will display line numbers on the " +"left hand side." +msgstr "إن أُشّر هذا الخيار، سيعرض كلّ منظور جديد أرقام الأسطر على الجانب الأيسر." + +#. i18n: ectx: property (text), widget (QCheckBox, chkLineNumbers) +#: dialogs/bordersappearanceconfigwidget.ui:112 +#, kde-format +msgid "Show &line numbers" +msgstr "أظهر أر&قام الأسطر" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowLineModification) +#: dialogs/bordersappearanceconfigwidget.ui:119 +#, kde-format +msgid "" +"If this option is checked, a small indicator for modified and saved lines is " +"shown on the left hand side." +msgstr "" +"إن أُشّر هذا الخيار، ستظهر إشارات صغيرة تدلّ على الأسطر المعدّلة والمحفوظة على " +"الجانب الأيسر." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowLineModification) +#: dialogs/bordersappearanceconfigwidget.ui:122 +#, kde-format +msgid "Highlight changed and unsaved lines" +msgstr "أبرز السطور المغيرة وغير المحفوظة" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/bordersappearanceconfigwidget.ui:145 +#, kde-format +msgid "Scrollbars:" +msgstr "أشرطة التّمرير:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMarks) +#: dialogs/bordersappearanceconfigwidget.ui:152 +#, kde-format +msgid "" +"

If this option is checked, every new view will show marks on the vertical " +"scrollbar.

These marks will show bookmarks, for instance.

" +msgstr "" +"

إن أُشّر هذا الخيار، سيعرض كلّ منظور جديد إشارات على شريط التّمرير العمودي.

ستعرض هذه الإشارات العلامات مثلًا.

" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarPreview) +#: dialogs/bordersappearanceconfigwidget.ui:162 +#, kde-format +msgid "" +"

If this option is checked, hovering over the vertical scrollbar will show " +"a preview of the text.

" +msgstr "" +"

إن أُشّر هذا الخيار، وضع المؤشّر على شريط التّمرير العمودي سيعرض معاينة للنّصّ." +"

" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarPreview) +#: dialogs/bordersappearanceconfigwidget.ui:165 +#, kde-format +msgid "Show preview when hovering over scrollbar" +msgstr "أظهر معاينة للنّصّ عند الحوم فوق شريط التّمرير" + +#. i18n: ectx: property (text), widget (QLabel, lblShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:172 +#, kde-format +msgid "Scro&llbars visibility:" +msgstr "ظهور أشر&طة التّمرير:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:183 dialogs/katedialogs.cpp:755 +#, kde-format +msgid "Always On" +msgstr "ظاهرة دائمًا" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:188 +#, kde-format +msgid "Show When Needed" +msgstr "ظاهرة عند الحاجة" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:193 +#, kde-format +msgid "Always Off" +msgstr "مخفيّة دائمًا" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/bordersappearanceconfigwidget.ui:217 +#, kde-format +msgid "Minimap:" +msgstr "الخريطة المصغرة:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMiniMap) +#: dialogs/bordersappearanceconfigwidget.ui:224 +#, kde-format +msgid "" +"If this option is checked, every new view will show a mini map on the " +"vertical scrollbar." +msgstr "" +"إن أُشّر هذا الخيار، سيعرض كلّ منظور جديد خريطة مصغرة على شريط التّمرير العمودي." + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMiniMap) +#: dialogs/bordersappearanceconfigwidget.ui:227 +#, kde-format +msgid "Show minimap" +msgstr "أظهر خريطة مصغرة" + +#. i18n: ectx: property (text), widget (QLabel, labelMiniMapWidth) +#: dialogs/bordersappearanceconfigwidget.ui:250 +#, kde-format +msgid "Minim&ap width:" +msgstr "عرض ال&خريطة المصغرة:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMiniMapAll) +#: dialogs/bordersappearanceconfigwidget.ui:263 +#, kde-format +msgid "" +"If this option is checked, every new view will show a mini map of the whole " +"document on the vertical scrollbar." +msgstr "" +"إن أُشّر هذا الخيار، سيعرض كلّ منظور جديد خريطة مصغرة للمستند بالكامل على شريط " +"التّمرير العمودي." + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMiniMapAll) +#: dialogs/bordersappearanceconfigwidget.ui:266 +#, kde-format +msgid "Map the whole document" +msgstr "خريطة مصغرة للمستند بالكامل" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbSortBookmarksByCreation) +#: dialogs/bordersappearanceconfigwidget.ui:276 +#, kde-format +msgid "" +"Each new bookmark will be added to the bottom, independently from where it " +"is placed in the document." +msgstr "ستُضاف كلّ علامة جديدة إلى الأسفل، بغضّ النّظر عن مكانها في المستند." + +#. i18n: ectx: property (text), widget (QRadioButton, rbSortBookmarksByCreation) +#: dialogs/bordersappearanceconfigwidget.ui:279 +#, kde-format +msgid "By date created" +msgstr "بتاريخ الإنشاء" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbSortBookmarksByPosition) +#: dialogs/bordersappearanceconfigwidget.ui:286 +#, kde-format +msgid "The bookmarks will be ordered by the line numbers they are placed at." +msgstr "ستُفرز العلامات بأرقام الأسطر المعلّمة." + +#. i18n: ectx: property (text), widget (QRadioButton, rbSortBookmarksByPosition) +#: dialogs/bordersappearanceconfigwidget.ui:289 +#, kde-format +msgid "By line number" +msgstr "برقم السطر" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/bordersappearanceconfigwidget.ui:296 +#, kde-format +msgid "Sort bookmarks menu:" +msgstr "افرز قائمة العلامات:" + +#: dialogs/clipboardhistorydialog.cpp:264 +#, kde-format +msgid "Select text to paste." +msgstr "حدد نص للصقه." + +#: dialogs/clipboardhistorydialog.cpp:296 +#, kde-format +msgid "No entries in clipboard history" +msgstr "لا يوجد مدخلات في الحافظة" + +#. i18n: ectx: property (title), widget (QGroupBox, gbGeneral) +#. i18n: ectx: property (title), widget (QGroupBox, gbViInputMode) +#: dialogs/completionconfigtab.ui:29 dialogs/katedialogs.cpp:609 +#: dialogs/katedialogs.cpp:743 dialogs/katedialogs.cpp:1026 +#: vimode/config/configwidget.ui:29 +#, kde-format +msgid "General" +msgstr "عامّ" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoCompletionEnabled) +#: dialogs/completionconfigtab.ui:35 +#, kde-format +msgid "Enable &auto completion" +msgstr "مكّن الإكمال الآ&ليّ" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoSelectFirstEntry) +#: dialogs/completionconfigtab.ui:42 +#, kde-format +msgid "Auto select &first completion entry" +msgstr "تحديد آليّ &لمدخلة الإكمال الأولى" + +#. i18n: ectx: property (text), widget (QCheckBox, chkTabCompletion) +#: dialogs/completionconfigtab.ui:49 +#, kde-format +msgid "Cycle through the list of completions using Tab / Shift+Tab" +msgstr "تنقل عبر قائمة الإكمالات باستخدام Tab / Shift+Tab" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkEnterCompletion) +#: dialogs/completionconfigtab.ui:56 +#, kde-format +msgid "" +"Pressing enter will insert the text of selected completion item into the " +"editor. If disabled, Tab key or double-click can still be used to trigger " +"completion." +msgstr "" +"سيؤدي الضغط على الإدخال Enter إلى إدراج نص عنصر الإكمال المحدد في المحرر. " +"إذا عُطل، فلا يزال بإمكانك استخدام مفتاح Tab أو النقر المزدوج لتفعيل الإكمال." + +#. i18n: ectx: property (text), widget (QCheckBox, chkEnterCompletion) +#: dialogs/completionconfigtab.ui:59 +#, kde-format +msgid "Use Enter key to insert selected completion" +msgstr "استخدم مفتاح الإدخال لإدراج الإكمال المحدد" + +#. i18n: ectx: property (title), widget (QGroupBox, gbWordCompletion) +#: dialogs/completionconfigtab.ui:69 +#, kde-format +msgid "A&uto word completion" +msgstr "إ&كمال الكلمات الآليّ" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/completionconfigtab.ui:83 +#, kde-format +msgid "Minimal word length to complete:" +msgstr "أدنى طول للكلمة حتى تُكمل:" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, removeTail) +#: dialogs/completionconfigtab.ui:111 +#, kde-format +msgid "Remove tail of a previous word when completion item chosen from a list" +msgstr "أزل زائدة الكلمة السّابقة عند اختيار عنصر إكمال من القائمة" + +#. i18n: ectx: property (text), widget (QCheckBox, removeTail) +#: dialogs/completionconfigtab.ui:114 +#, kde-format +msgid "Remove tail on complete" +msgstr "أزل الزّائدة عند الإكمال" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/completionconfigtab.ui:121 +#, kde-format +msgid "" +"Word completion provides suggestions based on the words found in the document" +msgstr "يوفر إكمال الكلمات اقتراحات بناءً على الكلمات الموجودة في المستند" + +#. i18n: ectx: property (title), widget (QGroupBox, gbKeywordCompletion) +#: dialogs/completionconfigtab.ui:134 +#, kde-format +msgid "&Keyword completion" +msgstr "إكمال الكلمات الم&فتاحيّة" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/completionconfigtab.ui:143 +#, kde-format +msgid "" +"Keyword completion provides suggestions based on the keywords which exist in " +"the document's language." +msgstr "" +"يتوفّر إكمال الكلمات المفتاحيّة اقتراحات بناء على الكلمات المفتاحيّة الموجودة " +"في لغة المستند." + +#. i18n: ectx: property (title), widget (QGroupBox, gbShowDoc) +#: dialogs/completionconfigtab.ui:156 +#, kde-format +msgid "Documentation with completion" +msgstr "التوثيق بالإكمال الآليّ" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/completionconfigtab.ui:165 +#, kde-format +msgid "" +"Show documentation beside completion box. If disabled, documentation can be " +"shown by pressing Alt key." +msgstr "" +"إظهار الوثائق بجانب صندوق الإكمال. في حالة تعطيل هذه الميزة، يمكن عرض " +"الوثائق بالضغط على مفتاح Alt." + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/editconfigwidget.ui:22 +#, kde-format +msgid "Word wrap:" +msgstr "لفّ الكلمات:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkStaticWordWrap) +#: dialogs/editconfigwidget.ui:29 +#, kde-format +msgid "" +"

Automatically start a new line of text when the current line exceeds the " +"length specified by the Wrap words at: option.

This option does " +"not wrap existing lines of text - use the Apply Static Word Wrap " +"option in the Tools menu for that purpose.

If you want lines to " +"be visually wrapped instead, according to the width of the view, " +"enable Dynamic Word Wrap in the Appearance config page.

" +msgstr "" +"

ابدأ سطرًا جديدًا للنّصّ آليًّا عندما يتعدّى النّصّ الحاليّ الطّول الذي يحدّده خيار " +"لفّ الكلمات عند:.

لا يلفّ هذا الخيار الأسطر النّصّيّة الموجودة، " +"استخدم خيار مكّن لفّ الكلمات الثابت في قائمة أدوات لهذا الغرض.

إن أردت أن تبدو الأسطر ملفوفة، وذلك حسب عرض المنظور، فمكّن لفّ " +"الكلمات حركيًّا في صفحة ضبط المظهر.

" + +#. i18n: ectx: property (text), widget (QCheckBox, chkStaticWordWrap) +#: dialogs/editconfigwidget.ui:32 +#, kde-format +msgid "Wrap &words at a fixed column" +msgstr "&لفّ الكلمات عند عمود ثابت" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowStaticWordWrapMarker) +#: dialogs/editconfigwidget.ui:39 +#, kde-format +msgid "" +"

If this option is checked, a vertical line will be drawn at the word wrap " +"column as defined in the Editing properties.

" +msgstr "" +"

إن أُشّر هذا الخيار، فسيُرسم خطّ عمودي عند عمود لفّ الكلمات كما هو محدّد في " +"خصائص التّحرير.

" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowStaticWordWrapMarker) +#: dialogs/editconfigwidget.ui:42 +#, kde-format +msgid "&Draw vertical line at the word wrap column" +msgstr "ارسم خطًا &عموديًا عند عمود التفاف الكلمات" + +#. i18n: ectx: property (text), widget (QLabel, lblWordWrap) +#: dialogs/editconfigwidget.ui:49 +#, kde-format +msgid "Wra&p words at:" +msgstr "&لفّ الكلمات عند:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbWordWrap) +#: dialogs/editconfigwidget.ui:59 +#, kde-format +msgid "" +"If the Word Wrap option is selected this entry determines the length (in " +"characters) at which the editor will automatically start a new line." +msgstr "" +"إن كان خيار لفّ الكلمات محدّدًا، فستحدّد هذه المدخلة الطّول (بالمحارف) الذي سيبدأ " +"فيه المحرّر سطرًا جديدًا آليًّا." + +#. i18n: ectx: property (text), widget (QLabel, lblInputMode) +#: dialogs/editconfigwidget.ui:91 +#, kde-format +msgid "Default input mode:" +msgstr "وضع الدّخل المبدئي:" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/editconfigwidget.ui:120 +#, kde-format +msgid "Brackets:" +msgstr "الأقواس:" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoBrackets) +#: dialogs/editconfigwidget.ui:127 +#, kde-format +msgid "Automatically close brackets when opening bracket is typed" +msgstr "أغلق الأقواس آليّا عند كتابة القوس الأول" + +#. i18n: ectx: property (whatsThis), widget (QLabel, lbEncloseSelection) +#: dialogs/editconfigwidget.ui:140 +#, kde-format +msgid "" +"When some text is selected these chars will be added on both its sides in a " +"way \"Auto Bracket\" do" +msgstr "" +"عند تحديد نص ستضاف هذه المحارف في كلا الطرفين بنفس طريقة \"الأقواس الآليّة\"" + +#. i18n: ectx: property (text), widget (QLabel, lbEncloseSelection) +#: dialogs/editconfigwidget.ui:143 +#, kde-format +msgid "Enclosing characters:" +msgstr "محارف الإحاطة:" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/editconfigwidget.ui:166 +#, kde-format +msgid "Copy and paste:" +msgstr "النسخ واللصق:" + +#. i18n: ectx: property (text), widget (QCheckBox, chkTextDragAndDrop) +#: dialogs/editconfigwidget.ui:173 +#, kde-format +msgid "Move selected text when dragged" +msgstr "انقل النص المحدد عند السحب" + +#. i18n: ectx: property (text), widget (QCheckBox, chkSmartCopyCut) +#: dialogs/editconfigwidget.ui:180 +#, kde-format +msgid "Copy/cut the current line if invoked without any text selected" +msgstr "انسخ/قصّ السّطر الحاليّ إن لم يكن هناك ما هو محدّد" + +#. i18n: ectx: property (text), widget (QCheckBox, chkMousePasteAtCursorPosition) +#: dialogs/editconfigwidget.ui:187 +#, kde-format +msgid "Don't move the text cursor when pasting by mouse" +msgstr "لا تنقل مؤشر النص عند اللصق بالفأرة" + +#. i18n: ectx: property (text), widget (QLabel, lblClipboardHistoryEntries) +#: dialogs/editconfigwidget.ui:194 +#, kde-format +msgid "Max Clipboard History Entries:" +msgstr "أقصى مدخلات تاريخ الحافظة:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbClipboardHistoryEntries) +#: dialogs/editconfigwidget.ui:204 +#, kde-format +msgid "This determines the number of entries to keep in the clipboard history" +msgstr "يحدد هذا عدد الإدخالات التي يجب الاحتفاظ بها في سجل الحافظة" + +#. i18n: ectx: property (text), widget (QLabel, lblBracketHelp) +#: dialogs/editconfigwidget.ui:226 +#, kde-format +msgid "" +"When you type these characters while text is selected, they will surround " +"the selected text instead of replacing it." +msgstr "" +"عندما تكتب هذه الأحرف أثناء تحديد النص، فإنها ستحيط بالنص المحدد بدلاً من " +"استبداله." + +#. i18n: ectx: property (text), widget (QCheckBox, chkAccessibility) +#: dialogs/editconfigwidget.ui:252 +#, kde-format +msgid "Enable accessibility notifications" +msgstr "مكّن إشعارات إمكانية الوصول" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/editconfigwidget.ui:259 +#, kde-format +msgid "Accessibility:" +msgstr "الإتاحة:" + +#. i18n: ectx: property (text), widget (QLabel, lblFiletype) +#: dialogs/filetypeconfigwidget.ui:14 +#, kde-format +msgid "&Filetype:" +msgstr "&نوع الملفّ:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbFiletypes) +#: dialogs/filetypeconfigwidget.ui:24 +#, kde-format +msgid "Select the filetype you want to change." +msgstr "اختر نوع الملفّ الذي تريد تعديله." + +#. i18n: ectx: property (whatsThis), widget (QPushButton, btnNew) +#: dialogs/filetypeconfigwidget.ui:31 +#, kde-format +msgid "Create a new file type." +msgstr "أنشئ نوع ملفّات جديد." + +#. i18n: ectx: property (text), widget (QPushButton, btnNew) +#: dialogs/filetypeconfigwidget.ui:34 +#, kde-format +msgid "&New" +msgstr "&جديد" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, btnDelete) +#: dialogs/filetypeconfigwidget.ui:41 +#, kde-format +msgid "Delete the current file type." +msgstr "احذف نوع الملفّات الحاليّ." + +#. i18n: ectx: property (text), widget (QPushButton, btnDelete) +#: dialogs/filetypeconfigwidget.ui:44 syntax/katethemeconfig.cpp:1132 +#, kde-format +msgid "&Delete" +msgstr "ا&حذف" + +#. i18n: ectx: property (title), widget (QGroupBox, gbProperties) +#: dialogs/filetypeconfigwidget.ui:66 mode/katemodeconfigpage.cpp:272 +#, kde-format +msgid "Properties" +msgstr "خصائص" + +#. i18n: ectx: property (text), widget (QLabel, lblName) +#: dialogs/filetypeconfigwidget.ui:72 +#, kde-format +msgid "&Name:" +msgstr "الا&سم:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtName) +#: dialogs/filetypeconfigwidget.ui:82 +#, kde-format +msgid "" +"The name of the filetype will be the text of the corresponding menu item." +msgstr "اسم نوع الملفّات سيكون نصّ عنصر القائمة المقابل." + +#. i18n: ectx: property (text), widget (QLabel, lblSection) +#: dialogs/filetypeconfigwidget.ui:89 +#, kde-format +msgid "&Section:" +msgstr "ال&قسم:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtSection) +#: dialogs/filetypeconfigwidget.ui:99 +#, kde-format +msgid "The section name is used to organize the file types in menus." +msgstr "يُستخدم اسم القسم لتنظيم أنواع الملفّات في قوائم." + +#. i18n: ectx: property (text), widget (QLabel, lblVariables) +#: dialogs/filetypeconfigwidget.ui:106 +#, kde-format +msgid "&Variables:" +msgstr "ال&متغيّرات:" + +#. i18n: ectx: property (whatsThis), widget (VariableLineEdit, edtVariables) +#: dialogs/filetypeconfigwidget.ui:116 +#, kde-format +msgid "" +"

This string allows to configure Kate's settings for the files selected by " +"this mimetype using Kate variables. Almost any configuration option can be " +"set, such as highlight, indent-mode, encoding, etc.

For a full list of " +"known variables, see the manual.

" +msgstr "" +"

تسمح لك هذه السّلسلة بضبط إعدادات «كيت» للملفّات المحدّدة بنوع Mime هذا " +"باستخدام متغيّرات «كيت». أغلب خيارات الضّبط يمكن ضبطها، مثل الإبراز highlight، " +"ووضع الإزاحة indent-mode والتّرميز encoding وغيرها.

لترى قائمة " +"بالمتغيّرات المعروفة، طالع الدّليل.

" + +#. i18n: ectx: property (text), widget (QLabel, lblHl) +#: dialogs/filetypeconfigwidget.ui:123 +#, kde-format +msgid "&Highlighting:" +msgstr "ال&إبراز:" + +#. i18n: ectx: property (text), widget (QLabel, lblIndenter) +#: dialogs/filetypeconfigwidget.ui:136 +#, kde-format +msgid "&Indentation mode:" +msgstr "وضع الإ&زاحة:" + +#. i18n: ectx: property (text), widget (QLabel, lblExtensions) +#: dialogs/filetypeconfigwidget.ui:149 +#, kde-format +msgid "File e&xtensions:" +msgstr "ا&متدادات الملفّ:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtFileExtensions) +#: dialogs/filetypeconfigwidget.ui:159 +#, kde-format +msgid "" +"The wildcards mask allows to select files by filename. A typical mask uses " +"an asterisk and the file extension, for example *.txt; *.text. " +"The string is a semicolon-separated list of masks." +msgstr "" +"يسمح لك قناع أحرف البدل باختيار الملفّات باسمها. يستخدم القناع نجمة وامتداد " +"الملفّ، مثل ‎*.txt; *.text. السّلسلة هي قائمة أقنعة مفصولة بفواصل " +"منقوطة." + +#. i18n: ectx: property (text), widget (QLabel, lblMimeTypes) +#: dialogs/filetypeconfigwidget.ui:166 +#, kde-format +msgid "MIME &types:" +msgstr "أ&نواع MIME:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtMimeTypes) +#: dialogs/filetypeconfigwidget.ui:181 +#, kde-format +msgid "" +"The mime type mask allows to select files by mimetype. The string is a " +"semicolon-separated list of mimetypes, for example text/plain; text/" +"english." +msgstr "" +"يسمح لك قناع أنواع Mime باختيار الملفّات بنوع Mime. السّلسلة هي قائمة مفصولة " +"بفواصل منقوطة لأنواع الملفّات، مثل text/plain; text/english." + +#. i18n: ectx: property (whatsThis), widget (QToolButton, btnMimeTypes) +#: dialogs/filetypeconfigwidget.ui:188 +#, kde-format +msgid "Displays a wizard that helps you easily select mimetypes." +msgstr "يعرض مرشدًا يساعدك على اختيار أنواع MIME بسهولة." + +#. i18n: ectx: property (text), widget (QLabel, lblPriority) +#: dialogs/filetypeconfigwidget.ui:197 +#, kde-format +msgid "P&riority:" +msgstr "الأ&ولويّة:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbPriority) +#: dialogs/filetypeconfigwidget.ui:207 +#, kde-format +msgid "" +"Sets priority for this file type. If more than one file type selects the " +"same file, the one with the highest priority will be used." +msgstr "" +"يضبط أولويّة نوع الملفّات هذا. إن اختار أكثر من نوع ملفّات واحد الملف نفسه، " +"سيُستخدم النّوع بأعلى أولويّة." + +#. i18n: ectx: property (text), widget (QLabel, lblMode) +#: dialogs/indentationconfigwidget.ui:43 +#, kde-format +msgid "Default indentation mode:" +msgstr "وضع الإزاحة المبدئي:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbMode) +#: dialogs/indentationconfigwidget.ui:53 +#, kde-format +msgid "" +"This is a list of available indentation modes. The specified indentation " +"mode will be used for all new documents. Be aware that it is also possible " +"to set the indentation mode with document variables, modes or a .kateconfig " +"file." +msgstr "" +"هذه قائمة أوضاع الإزاحة المتوفّرة. سيُستخدم وضع الإزاحة المحدّد في كلّ " +"المستندات. انتبه إلى أنّه يمكن ضبط وضع الإزاحة بمتغيّرات المستندات، أو الأوضاع " +"أو بملفّ ‎.kateconfig." + +#. i18n: ectx: property (title), widget (QGroupBox, gbIndentationMode) +#: dialogs/indentationconfigwidget.ui:75 +#, kde-format +msgid "Indent using" +msgstr "أزح باستخدام" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbIndentWidth) +#: dialogs/indentationconfigwidget.ui:81 +#, kde-format +msgid "" +"The indentation width is the number of spaces which is used to indent a " +"line. If the option Insert spaces instead of tabulators in the " +"section Editing is disabled, a Tab character is inserted if " +"the indentation is divisible by the tab width." +msgstr "" +"عرض الإزاحة هو عدد المسافات المُستخدم لإزاحة سطر. إن كان الخيار أدرج " +"مسافات بدل جدولات في قسم التّحرير معطّلًا، فسيُضاف محرف جدولة " +"إن أمكن قسمة الإزاحة على عرض الجدولة." + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentWithSpaces) +#: dialogs/indentationconfigwidget.ui:97 +#, kde-format +msgid "&Spaces" +msgstr "الم&سافات" + +#. i18n: ectx: property (text), widget (QLabel, lblIndentWidth) +#: dialogs/indentationconfigwidget.ui:104 +#, kde-format +msgid "&Indentation width:" +msgstr "عرض الإ&زاحة:" + +#. i18n: ectx: property (text), widget (QLabel, lblTabWidth) +#: dialogs/indentationconfigwidget.ui:114 +#, kde-format +msgid "Tab wi&dth:" +msgstr "ع&رض الجدولة:" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentWithTabs) +#: dialogs/indentationconfigwidget.ui:153 +#, kde-format +msgid "&Tabulators" +msgstr "الج&دولات" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentMixed) +#: dialogs/indentationconfigwidget.ui:160 +#, kde-format +msgid "Tabulators &and Spaces" +msgstr "الجدولات والمسا&فات" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoDetectIndent) +#: dialogs/indentationconfigwidget.ui:167 +#, kde-format +msgid "Automatically detect file indentation" +msgstr "اكتشف إزاحة الملف آليًّا" + +#. i18n: ectx: property (title), widget (QGroupBox, gbProperties) +#: dialogs/indentationconfigwidget.ui:177 +#, kde-format +msgid "Indentation Properties" +msgstr "خصائص الإزاحة" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkKeepExtraSpaces) +#: dialogs/indentationconfigwidget.ui:183 +#, kde-format +msgid "" +"If this option is disabled, changing the indentation level aligns a line to " +"a multiple of the width specified in Indentation width." +msgstr "" +"إن عُطّل هذا الخيار، فتغيير مستوى الإزاحة يحاذي سطرًا إلى أحد أضعاف العرض " +"والمحدّد في عرض الإزاحة." + +#. i18n: ectx: property (text), widget (QCheckBox, chkKeepExtraSpaces) +#: dialogs/indentationconfigwidget.ui:186 +#, kde-format +msgid "&Keep extra spaces" +msgstr "أ&بقِ المسافات الإضافيّة" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkIndentPaste) +#: dialogs/indentationconfigwidget.ui:193 +#, kde-format +msgid "" +"If this option is selected, pasted code from the clipboard is indented. " +"Triggering the undo-action removes the indentation." +msgstr "" +"إن حُدّد هذا الخيار، فسيُزاح الكود الملصوق من الحافظة. تحفيز إجراء تراجع " +"سيزيل الإزاحة." + +#. i18n: ectx: property (text), widget (QCheckBox, chkIndentPaste) +#: dialogs/indentationconfigwidget.ui:196 +#, kde-format +msgid "Adjust indentation of code &pasted from the clipboard" +msgstr "اضبط إزاحة الكود المل&صوق من الحافظة" + +#. i18n: ectx: property (title), widget (QGroupBox, gbKeys) +#: dialogs/indentationconfigwidget.ui:206 +#, kde-format +msgid "Indentation Actions" +msgstr "إجراءات الإزاحة" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackspaceUnindents) +#: dialogs/indentationconfigwidget.ui:212 +#, kde-format +msgid "" +"If this option is selected, the Backspace key decreases the " +"indentation level if the cursor is located in the leading blank space of a " +"line." +msgstr "" +"إذا حُدد هذا الخيار، فإن مفتاح Backspace يقلل مستوى الإزاحة إذا كان " +"المؤشر موجودًا في المساحة الفارغة الأمامية للسطر." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackspaceUnindents) +#: dialogs/indentationconfigwidget.ui:215 +#, kde-format +msgid "&Backspace key in leading blank space unindents" +msgstr "&مفتاح Backspace في المسافة الفارغة الأولى يزيل الإزاحة" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/indentationconfigwidget.ui:225 +#, kde-format +msgid "" +"\n" +"

إجراء مفتاح Tab (إذا لم يكن هناك أي اختيار) Tabمحاذاة السطر الحالي في كتلة التعليمات البرمجية الحالية كما هو " +"الحال في Emacs، فاجعل Tab اختصارًا لإجراء تنسيق الإزاحة." +"\">المزيد ...

" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabAdvances) +#: dialogs/indentationconfigwidget.ui:276 +#, kde-format +msgid "" +"If this option is selected, the Tab key always inserts white space so " +"that the next tab position is reached. If the option Insert spaces " +"instead of tabulators in the section Editing is enabled, spaces " +"are inserted; otherwise, a single tabulator is inserted." +msgstr "" +"إذا حُدد هذا الخيار، يدرج مفتاح Tab دائمًا مسافة بيضاء حتى يصل إلى موضع " +"علامة الجدولة التالي. إذا مُكّن الخيار إدراج مسافات بدلاً من علامات الجدولة في القسم التحرير، ستدرج المسافات؛ وإلا ستدرج علامة جدولة واحدة." + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabAdvances) +#: dialogs/indentationconfigwidget.ui:279 +#, kde-format +msgid "Always advance to the &next tab position" +msgstr "التقدم دائمًا إلى &موضع علامة الجدولة التالية" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabIndents) +#: dialogs/indentationconfigwidget.ui:286 +#, kde-format +msgid "" +"If this option is selected, the Tab key always indents the current " +"line by the number of character positions specified in Indentation width." +msgstr "" +"إذا حُدد هذا الخيار، سيضع مفتاح Tab دائمًا مسافة بادئة للسطر الحالي حسب " +"عدد مواضع الأحرف المحددة في عرض الإزاحة." + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabIndents) +#: dialogs/indentationconfigwidget.ui:289 +#, kde-format +msgid "Always increase indentation &level" +msgstr "دائمًا زد &مستوى الإزاحة" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabSmart) +#: dialogs/indentationconfigwidget.ui:296 +#, kde-format +msgid "" +"If this option is selected, the Tab key either indents the current " +"line or advances to the next tab position.

If the insertion point is at " +"or before the first non-space character in the line, or if there is a " +"selection, the current line is indented by the number of character positions " +"specified in Indentation width.

If the insertion point is located " +"after the first non-space character in the line and there is no selection, " +"white space is inserted so that the next tab position is reached: if the " +"option Insert spaces instead of tabulators in the section Editing is enabled, spaces are inserted; otherwise, a single tabulator is " +"inserted." +msgstr "" +"إذا حُدد هذا الخيار، فإن مفتاح Tab إما أن يزاح السطر الحالي أو أن " +"ينتقل إلى موضع علامة الجدولة التالية.

إذا كانت نقطة الإدراج عند أو قبل " +"أول حرف غير مسافة في السطر، أو إذا كان هناك تحديد، سيزاح السطر الحالي بعدد " +"مواضع الأحرف المحددة في عرض الإزاحة.

إذا كانت نقطة الإدراج تقع بعد " +"أول حرف غير مسافة في السطر ولم يكن هناك تحديد، ستدرج مسافة بيضاء حتى يصل إلى " +"موضع علامة الجدولة التالية: إذا مُكن الخيار إدراج مسافات بدلاً من علامات " +"الجدولة في القسم التحرير ستدرج المسافات؛ وإلا سيدرج علامة جدولة " +"واحدة." + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabSmart) +#: dialogs/indentationconfigwidget.ui:299 +#, kde-format +msgid "Increase indentation level if in l&eading blank space" +msgstr "زد مستوى الإزاحة إذا كانت المسافة الفارغة با&دئة" + +#: dialogs/katedialogs.cpp:185 dialogs/katedialogs.cpp:187 +#, kde-format +msgid "%v character" +msgid_plural "%v characters" +msgstr[0] "لا محارف" +msgstr[1] "محرف واحد" +msgstr[2] "محرفان" +msgstr[3] "%v محارف" +msgstr[4] "%v محرفًا" +msgstr[5] "%v محرف" + +#: dialogs/katedialogs.cpp:211 +#, kde-format +msgid "Indentation" +msgstr "الإزاحة" + +#: dialogs/katedialogs.cpp:295 +#, kde-format +msgid "Auto Completion" +msgstr "الإكمال الآليّ" + +#: dialogs/katedialogs.cpp:362 +#, kde-format +msgid "Spellcheck" +msgstr "تدقيق الهجاء" + +#: dialogs/katedialogs.cpp:410 dialogs/katedialogs.cpp:417 +#, kde-format +msgid "Alt" +msgstr "Alt" + +#: dialogs/katedialogs.cpp:411 dialogs/katedialogs.cpp:419 +#, kde-format +msgid "Ctrl" +msgstr "Ctrl" + +#: dialogs/katedialogs.cpp:412 +#, kde-format +msgid "Meta" +msgstr "Meta" + +#: dialogs/katedialogs.cpp:413 dialogs/katedialogs.cpp:421 +#, kde-format +msgid "Ctrl + Alt" +msgstr "Ctrl + Alt" + +#: dialogs/katedialogs.cpp:414 +#, kde-format +msgid "Meta + Alt" +msgstr "Meta + Alt" + +#: dialogs/katedialogs.cpp:415 +#, kde-format +msgid "Ctrl + Meta" +msgstr "Ctrl + Meta" + +#: dialogs/katedialogs.cpp:418 +#, kde-format +msgid "Cmd" +msgstr "أمر" + +#: dialogs/katedialogs.cpp:420 +#, kde-format +msgid "Cmd + Alt" +msgstr "Cmd + Alt" + +#: dialogs/katedialogs.cpp:422 +#, kde-format +msgid "Cmd + Ctrl" +msgstr "Cmd + Ctrl" + +#: dialogs/katedialogs.cpp:480 +#, kde-format +msgid "Text Navigation" +msgstr "التّنقّل في النّصّ" + +#: dialogs/katedialogs.cpp:582 +#, kde-format +msgctxt "Wrap words at (value is at 20 or larger)" +msgid "%v character" +msgid_plural "%v characters" +msgstr[0] "لا محارف" +msgstr[1] "محرف واحد" +msgstr[2] "محرفان" +msgstr[3] "%v محارف" +msgstr[4] "%v محرفًا" +msgstr[5] "%v محرف" + +#: dialogs/katedialogs.cpp:587 +#, kde-format +msgid "Feature is not active" +msgstr "الميزة غير نشطة" + +#: dialogs/katedialogs.cpp:589 +#, kde-format +msgid "Disable Feature" +msgstr "عطّل ميزة" + +#: dialogs/katedialogs.cpp:591 +#, kde-format +msgid "May be handy with Markdown" +msgstr "قد يكون سهلًا مع مارك‌داون" + +#: dialogs/katedialogs.cpp:593 +#, kde-format +msgid "Mirror characters, similar but not exactly like auto brackets" +msgstr "محارف معكوسة، تشبه الأقواس الآليّة ولكنها لا تشبهها تمامًا" + +#: dialogs/katedialogs.cpp:595 +#, kde-format +msgid "Non letter character" +msgstr "رمز غير حرفي" + +#: dialogs/katedialogs.cpp:712 +#, kde-format +msgid "Editing" +msgstr "التّحرير" + +#: dialogs/katedialogs.cpp:717 +#, kde-format +msgid "Editing Options" +msgstr "خيارات التحرير" + +#: dialogs/katedialogs.cpp:751 +#, kde-format +msgid "Statusbar" +msgstr "شريط الحالة" + +#: dialogs/katedialogs.cpp:753 +#, kde-format +msgid "Off" +msgstr "معطّلة" + +#: dialogs/katedialogs.cpp:754 +#, kde-format +msgid "Follow Line Numbers" +msgstr "تتبع أرقام الأسطر" + +#: dialogs/katedialogs.cpp:945 dialogs/katedialogs.cpp:950 +#, kde-format +msgid "Appearance" +msgstr "المظهر" + +#: dialogs/katedialogs.cpp:986 +#, kde-format +msgid "" +"%1 backs up unsaved files to \"swap files.\" Swap files allow %1 to recover " +"your work in the case of a system crash. Disabling swap files may cause data " +"loss in case of a system crash." +msgstr "" +"يأخذ %1 نسخة احتياطية للملفات غير المحفوظة في \"ملفات المبادلة\". تسمح ملفات " +"المبادلة لـ %1 باستعادة عملك في حالة تعطل النظام. قد يؤدي تعطيل ملفات " +"المبادلة إلى فقد البيانات في حالة تعطل النظام." + +#: dialogs/katedialogs.cpp:1027 +#, kde-format +msgid "Advanced" +msgstr "متقدّم" + +#: dialogs/katedialogs.cpp:1092 +#, kde-format +msgid "" +"You did not provide a backup suffix or prefix. Using default suffix: '~'" +msgstr "لم تقدّم لاحقة أو سابقة للنّسخ الاحتياطيّ. ستُستخدم اللاحقة المبدئية: '~'" + +#: dialogs/katedialogs.cpp:1092 +#, kde-format +msgid "No Backup Suffix or Prefix" +msgstr "لا لاحقة أو سابقة للنّسخ الاحتياطيّ" + +#: dialogs/katedialogs.cpp:1227 +#, kde-format +msgid "Open/Save" +msgstr "الفتح/الحفظ" + +#: dialogs/katedialogs.cpp:1232 +#, kde-format +msgid "File Opening & Saving" +msgstr "فتح الملفّات وحفظها" + +#: dialogs/katedialogs.cpp:1255 +#, kde-format +msgid "&Line:" +msgstr "ال&سّطر:" + +#: dialogs/katedialogs.cpp:1256 +#, kde-format +msgid "Go to line number from clipboard" +msgstr "اذهب لرقم السطر من الحافظة" + +#: dialogs/katedialogs.cpp:1267 +#, kde-format +msgid "Go to" +msgstr "اذهب إلى" + +#: dialogs/katedialogs.cpp:1347 +#, kde-format +msgid "No valid line number found in clipboard" +msgstr "لم يجد رقم سطر صحيح في الحافظة" + +#: dialogs/katedialogs.cpp:1411 +#, kde-format +msgid "Dictionary:" +msgstr "القاموس:" + +#: dialogs/katedialogs.cpp:1463 +#, kde-format +msgid "Enable Auto Reload" +msgstr "مكّن إعادة التحميل الآليّ" + +#: dialogs/katedialogs.cpp:1466 +#, kde-format +msgid "" +"Reloads and will automatically reload without warning about disk changes " +"from now until you close either the tab or window." +msgstr "" +"يعيد التحميل وسيعيد التحميل آليًّا دون تحذير بشأن تغييرات القرص من الآن حتى " +"تقوم بإغلاق اللسان أو النافذة." + +#: dialogs/katedialogs.cpp:1471 +#, kde-format +msgid "View &Difference" +msgstr "ا&عرض الفرق" + +#: dialogs/katedialogs.cpp:1473 +#, kde-format +msgid "Shows a diff of the changes." +msgstr "اعرض فرقًا يبيّن التّغييرات." + +#: dialogs/katedialogs.cpp:1478 +#, kde-format +msgid "&Reload" +msgstr "أ&عد التّحميل" + +#: dialogs/katedialogs.cpp:1480 +#, kde-format +msgid "Reloads the file from disk. Unsaved changes will be lost." +msgstr "يعيد تحميل الملفّ من القرص. ستفقد أيّ تغييرات غير محفوظة." + +#: dialogs/katedialogs.cpp:1484 +#, kde-format +msgctxt "@action:button closes the opened file" +msgid "&Close File" +msgstr "أ&غلق الملف" + +#: dialogs/katedialogs.cpp:1486 +#, kde-format +msgid "Closes the file, discarding its content." +msgstr "تغلق الملف، وتجاهل محتواه." + +#: dialogs/katedialogs.cpp:1490 +#, kde-format +msgctxt "@action" +msgid "&Save As…" +msgstr "ا&حفظ ك‍…" + +#: dialogs/katedialogs.cpp:1492 +#, kde-format +msgid "Lets you select a location and save the file again." +msgstr "يتيح لك اختيار مكان وحفظ الملفّ مجدّدًا." + +#. i18n: ectx: property (text), widget (QPushButton, m_skipBtn) +#: dialogs/katedialogs.cpp:1497 spellcheck/spellcheckbar.ui:143 +#, kde-format +msgid "&Ignore" +msgstr "ت&جاهل" + +#: dialogs/katedialogs.cpp:1498 +#, kde-format +msgid "Ignores the changes on disk without any action." +msgstr "تجاهل التّغييرات على القرص دون أيّ إجراء." + +#: dialogs/katedialogs.cpp:1567 swapfile/kateswapdiffcreator.cpp:131 +#, kde-format +msgid "" +"The diff command failed. Please make sure that diff(1) is installed and in " +"your PATH." +msgstr "فشل أمر الفرق. فضلًا تحقّق بأنّ diff(1)‎ مثبّت وفي مسارك PATH." + +#: dialogs/katedialogs.cpp:1569 swapfile/kateswapdiffcreator.cpp:89 +#: swapfile/kateswapdiffcreator.cpp:99 swapfile/kateswapdiffcreator.cpp:133 +#, kde-format +msgid "Error Creating Diff" +msgstr "خطأ في إنشاء الفرق" + +#: dialogs/katedialogs.cpp:1576 swapfile/kateswapdiffcreator.cpp:140 +#, kde-format +msgid "The files are identical." +msgstr "الملفّات متطابقة." + +#: dialogs/katedialogs.cpp:1576 swapfile/kateswapdiffcreator.cpp:140 +#, kde-format +msgid "Diff Output" +msgstr "خرج الفرق" + +#. i18n: ectx: property (title), widget (QGroupBox, gbCursorMovement) +#: dialogs/navigationconfigwidget.ui:29 +#, kde-format +msgid "Text Cursor Movement" +msgstr "حركة مؤشّر النّصّ" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkSmartHome) +#: dialogs/navigationconfigwidget.ui:35 +#, kde-format +msgid "" +"When selected, pressing the home key will cause the cursor to skip " +"whitespace and go to the start of a line's text. The same applies for the " +"end key." +msgstr "" +"إن حُدّد، فنقر زرّ المنزل سيؤدّي بالمؤشّر إلى تخطّي المسافات والانتقال إلى بداية " +"السّطر. الأمر نفسه ينطبق على زرّ النهاية." + +#. i18n: ectx: property (text), widget (QCheckBox, chkSmartHome) +#: dialogs/navigationconfigwidget.ui:38 +#, kde-format +msgid "Smart ho&me and smart end" +msgstr "م&نزل ونهاية ذكيّان" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkPagingMovesCursor) +#: dialogs/navigationconfigwidget.ui:45 +#, kde-format +msgid "" +"Selects whether the PageUp and PageDown keys should alter the vertical " +"position of the cursor relative to the top of the view." +msgstr "" +"يحدّد فيما إذا كان مفتاحيّ PageUp وPageDown سيغيّران المكان العمودي للمؤشّر نسبة " +"إلى أعلى المنظور." + +#. i18n: ectx: property (text), widget (QCheckBox, chkPagingMovesCursor) +#: dialogs/navigationconfigwidget.ui:48 +#, kde-format +msgid "&PageUp/PageDown moves cursor" +msgstr "م&فاتحيّ PageUp/PageDown يحرّكان المؤشّر" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkCamelCursor) +#: dialogs/navigationconfigwidget.ui:55 +#, kde-format +msgid "" +"Selects whether cursor stops at camel case humps and underscores within a " +"word." +msgstr "" +"يحدد ما إذا كان المؤشر سيتوقف عند علامات الترقيم في حالة الجمل (camel case) " +"والشرطات السفلية داخل الكلمة." + +#. i18n: ectx: property (text), widget (QCheckBox, chkCamelCursor) +#: dialogs/navigationconfigwidget.ui:58 +#, kde-format +msgid "" +"Stop at 'camelCase' and 'snake_case' subwords when moving the cursor by word" +msgstr "" +"توقف عند الكلمات الفرعية 'camelCase' و 'snake_case' عند تحريك المؤشر كلمة " +"بكلمة" + +#. i18n: ectx: property (text), widget (QLabel, lblAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:79 +#, kde-format +msgid "&Autocenter cursor:" +msgstr "وسّط المؤ&شّر آليًّا:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:89 +#, kde-format +msgid "" +"Sets the number of lines to maintain visible above and below the cursor when " +"possible." +msgstr "يحدّد عدد الأسطر لإبقائها ظاهرة أعلى المؤشّر وأسفله عند الإمكان." + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, spbSwapFileSync) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:92 dialogs/opensaveconfigadvwidget.ui:120 +#: dialogs/opensaveconfigadvwidget.ui:168 +#, kde-format +msgid "Disabled" +msgstr "معطّل" + +#. i18n: ectx: property (suffix), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:95 +#, kde-format +msgid " lines" +msgstr " من الأسطر" + +#. i18n: ectx: property (title), widget (QGroupBox, cbNavigationMisc) +#: dialogs/navigationconfigwidget.ui:120 +#, kde-format +msgid "Misc" +msgstr "متنوّع" + +#. i18n: ectx: property (text), widget (QLabel, lblTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:128 +#, kde-format +msgid "Text selection mode:" +msgstr "وضع تحديد النّصّ" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:139 inputmode/katenormalinputmode.cpp:64 +#: mode/katemodemanager.cpp:162 +#, kde-format +msgid "Normal" +msgstr "عاديّ" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:144 +#, kde-format +msgid "Persistent" +msgstr "مستمرّ" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollPastEnd) +#: dialogs/navigationconfigwidget.ui:167 +#, kde-format +msgid "Allow scrolling past the end of the document" +msgstr "اسمح بالتّمرير بعد نهاية المستند" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackspaceRemoveComposed) +#: dialogs/navigationconfigwidget.ui:174 +#, kde-format +msgid "" +"When selected, composed characters are removed with their diacritics instead " +"of only removing the base character. This is useful for Indic locales." +msgstr "" +"إن حُدّد فستُزال الأحرف المركّبة مع حركاتها بدل إزالة الحركة ثم الحرف. هذا يفيد " +"المحليّات الهنديّة. أبقِه معطّلًا ليعمل كما ينبغي مع اللغة العربيّة." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackspaceRemoveComposed) +#: dialogs/navigationconfigwidget.ui:177 +#, kde-format +msgid "Backspace key removes character’s base with its diacritics" +msgstr "مفتاح Backspace يُزيل الحرف مع حركاته" + +#. i18n: ectx: property (text), widget (QCheckBox, cbCycleBookmarks) +#: dialogs/navigationconfigwidget.ui:184 +#, kde-format +msgid "Allow to cycle through bookmarks" +msgstr "اسمح بتنقل بين العلامات." + +#. i18n: ectx: property (title), widget (QGroupBox, gbMulticursor) +#: dialogs/navigationconfigwidget.ui:194 +#, kde-format +msgid "Multicursor" +msgstr "مؤشرات متعددة" + +#. i18n: ectx: property (text), widget (QLabel, lblMulticursormodifiers) +#: dialogs/navigationconfigwidget.ui:200 +#, kde-format +msgid "Multiple Cursor Modifiers" +msgstr "معدلات المؤشرات المتعددة" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoReloadVersionControl) +#: dialogs/opensaveconfigadvwidget.ui:34 +#, kde-format +msgid "Auto reload files in version control" +msgstr "إعادة تحميل الملفات آليًّا في التحكم في الإصدار" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoReloadOnExternalChanges) +#: dialogs/opensaveconfigadvwidget.ui:41 +#, kde-format +msgid "Auto reload files on external changes" +msgstr "إعادة تحميل الملفات آليًّا عند التغييرات الخارجية" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/opensaveconfigadvwidget.ui:48 +#, kde-format +msgid "Write a backup file on save for:" +msgstr "اكتب ملف النسخ الاحتياطي عند الحفظ لـ:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackupLocalFiles) +#: dialogs/opensaveconfigadvwidget.ui:55 +#, kde-format +msgid "" +"If this option is enabled, backups for local files will be created when " +"saving." +msgstr "إن فُعّل هذا الخيار، ستُنشأ نسخ احتياطيّة للملفّات المحليّة عند حفظها." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackupLocalFiles) +#: dialogs/opensaveconfigadvwidget.ui:58 +#, kde-format +msgid "&Local files" +msgstr "الملفّات الم&حليّة" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackupRemoteFiles) +#: dialogs/opensaveconfigadvwidget.ui:65 +#, kde-format +msgid "" +"If this option is enabled, backups for remote files will be created when " +"saving." +msgstr "إن فُعّل هذا الخيار، ستُنشأ نسخ احتياطيّة للملفّات البعيدة عند حفظها." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackupRemoteFiles) +#: dialogs/opensaveconfigadvwidget.ui:68 +#, kde-format +msgid "&Remote files" +msgstr "الملفّات ال&بعيدة" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/opensaveconfigadvwidget.ui:75 +#, kde-format +msgid "Prefix for backup files:" +msgstr "بادئة لملفات النسخ الاحتياطي:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtBackupPrefix) +#: dialogs/opensaveconfigadvwidget.ui:85 +#, kde-format +msgid "Enter the prefix to prepend to the backup file names." +msgstr "أدخل سابقة لإضافتها قبل أسماء الملفّات المنسوخة احتياطيًّا." + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/opensaveconfigadvwidget.ui:92 +#, kde-format +msgid "Suffix for backup files:" +msgstr "لاحقة لملفات النسخ الاحتياطي:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtBackupSuffix) +#: dialogs/opensaveconfigadvwidget.ui:102 +#, kde-format +msgid "Enter the suffix to append to the backup file names." +msgstr "أدخل لاحقة لإضافتها بعد أسماء الملفّات المنسوخة احتياطيًّا." + +#. i18n: ectx: property (text), widget (QLabel, lblSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:109 +#, kde-format +msgid "Swap file mode:" +msgstr "وضع ملفّ التّبديل:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:125 +#, kde-format +msgid "Enabled, Store In Default Directory" +msgstr "ممكّن، الحفظ في الدليل المبدئي" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:130 +#, kde-format +msgid "Enabled, Store In Custom Directory" +msgstr "ممكّن، الحفظ في الدليل المخصص" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapDirectory) +#: dialogs/opensaveconfigadvwidget.ui:138 +#, kde-format +msgid "Store swap files in:" +msgstr "خزن ملفّ التّبديل في :" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapFileSync) +#: dialogs/opensaveconfigadvwidget.ui:158 +#, kde-format +msgid "Save swap files every:" +msgstr "احفظ ملفّ التّبديل كل:" + +#. i18n: ectx: property (suffix), widget (QSpinBox, spbSwapFileSync) +#: dialogs/opensaveconfigadvwidget.ui:171 +#, kde-format +msgid "s" +msgstr "ثا" + +#. i18n: ectx: property (text), widget (QLabel, lblExplanatory) +#: dialogs/opensaveconfigadvwidget.ui:196 +#, kde-format +msgid "" +"This string is located in katedialogs.cpp in KateSaveConfigTab's constructor." +msgstr "توجد هذه السلسلة في katedialogs.cpp في مُنشئ KateSaveConfigTab." + +#. i18n: ectx: property (text), widget (QCheckBox, chkEditorConfig) +#: dialogs/opensaveconfigadvwidget.ui:209 +#, kde-format +msgid "Honor settings in .editorconfig file" +msgstr "إعدادات الشرف في ملف .editorconfig" + +#. i18n: ectx: property (text), widget (QCheckBox, chkUseFirstLineAsDocName) +#: dialogs/opensaveconfigadvwidget.ui:229 +#, kde-format +msgid "Use first line of untitled documents for document name" +msgstr "استخدام السطر الأول من المستندات غير المترجمة لاسم المستند" + +#. i18n: ectx: property (title), widget (QGroupBox, gbFileFormat) +#: dialogs/opensaveconfigwidget.ui:29 +#, kde-format +msgid "File Format" +msgstr "نسق الملفّ" + +#. i18n: ectx: property (text), widget (QLabel, lblEncoding) +#: dialogs/opensaveconfigwidget.ui:40 +#, kde-format +msgid "&Encoding:" +msgstr "التّر&ميز:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncoding) +#: dialogs/opensaveconfigwidget.ui:50 +#, kde-format +msgid "" +"This defines the standard encoding to use to open/save files, if not changed " +"in the open/save dialog or by using a command line option." +msgstr "" +"يعرّف هذا التّرميز المبدئي لاستخدامه لفتح الملفّات وحفظها، وذلك إن لم تتغيّر في " +"حواريّ الفتح/الحفظ أو باستخدام خيار سطر الأوامر." + +#. i18n: ectx: property (text), widget (QLabel, lblEncodingDetection) +#: dialogs/opensaveconfigwidget.ui:57 +#, kde-format +msgid "&Encoding detection:" +msgstr "اكت&شاف التّرميز:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncodingDetection) +#: dialogs/opensaveconfigwidget.ui:67 +#, kde-format +msgid "" +"if neither the encoding chosen as standard above, nor the encoding specified " +"in the open/save dialog, nor the encoding specified on command line match " +"the content of the file, this detection will be run." +msgstr "" +"إن لم يطابق لا التّرميز المنتقى كقياسيّ أعلاه، ولا المحدّد في حواريّ الفتح/" +"الحفظ، ولا في سطر الأوامر - إن لم يطابق محتوى الملفّ، ستجري عمليّة اكتشاف " +"التّرميز." + +#. i18n: ectx: property (text), widget (QLabel, lblEncodingDetection2) +#: dialogs/opensaveconfigwidget.ui:74 +#, kde-format +msgid "&Fallback encoding:" +msgstr "التّرميز الا&حتياطيّ:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncodingFallback) +#: dialogs/opensaveconfigwidget.ui:84 +#, kde-format +msgid "" +"This defines the fallback encoding to try for opening files if neither the " +"encoding chosen as standard above, nor the encoding specified in the open/" +"save dialog, nor the encoding specified on command line match the content of " +"the file. Before this is used, an attempt will be made to determine the " +"encoding to use by looking for a byte order mark at start of file: if one is " +"found, the right Unicode encoding will be chosen; otherwise encoding " +"detection will run, if both fail the fallback encoding will be tried." +msgstr "" +"يعرّف هذا التّرميز الاحتياطيّ لمحاولة فتح الملفّات به إن لم يطابق لا التّرميز " +"المنتقى كقياسيّ أعلاه، ولا المحدّد في حواريّ الفتح/الحفظ، ولا في سطر الأوامر - " +"إن لم يطابق محتوى الملفّ. قبل استخدام هذا، ستُجرى محاولة لتحديد التّرميز بالبحث " +"عن علامة ترتيب البايتات، فإن وُجدت واحدة، سيُنتقى ترميز يونيكود الصّحيح، وإلّا " +"فتجري عمليّة اكتشاف التّرميز، وإن فشلت العمليّتين ستجري محاولة لاستخدام التّرميز " +"الاحتياطيّ." + +#. i18n: ectx: property (text), widget (QLabel, lblEOL) +#: dialogs/opensaveconfigwidget.ui:91 +#, kde-format +msgid "E&nd of line:" +msgstr "نهاية ال&سّطر:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:102 +#, kde-format +msgid "UNIX" +msgstr "يونكس" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:107 +#, kde-format +msgid "DOS/Windows" +msgstr "دوس/وندوز" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:112 +#, kde-format +msgid "Macintosh" +msgstr "ماكنتوش" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkDetectEOL) +#: dialogs/opensaveconfigwidget.ui:122 +#, kde-format +msgid "" +"If this option is enabled the editor will autodetect the end of line type. " +"The first found end of line type will be used for the whole file." +msgstr "" +"إن فُعّل هذا الخيار فسيكتشف المحرّر آليًّا نوع نهاية السّطر. سيُستخدم أوّل نوع نهاية " +"سطر للملفّ بالكامل." + +#. i18n: ectx: property (text), widget (QCheckBox, chkDetectEOL) +#: dialogs/opensaveconfigwidget.ui:125 +#, kde-format +msgid "A&utomatic end of line detection" +msgstr "اكتشف نهاية السّ&طر آليًّا" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkEnableBOM) +#: dialogs/opensaveconfigwidget.ui:132 +#, kde-format +msgid "" +"The byte order mark is a special sequence at the beginning of Unicode " +"encoded documents. It helps editors to open text documents with the correct " +"Unicode encoding. The byte order mark is not visible in the displayed " +"document." +msgstr "" +"علامة ترتيب البايتات هي سلسلة خاصّة تقع في بداية المستندات المرمّزة بـيونيكود. " +"تساعد العلامة المحرّرات في فتح المستندات النّصيّة بترميز يونيكود الصّحيح. علامة " +"ترتيب البايتات لا تُعرض في المستند." + +#. i18n: ectx: property (text), widget (QCheckBox, chkEnableBOM) +#: dialogs/opensaveconfigwidget.ui:135 +#, kde-format +msgid "Enable byte order mark (BOM)" +msgstr "مكّن علامة ترتيب البايتات (BOM)" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/opensaveconfigwidget.ui:142 +#, kde-format +msgid "Line length limit:" +msgstr "حدّ طول السّطر:" + +#. i18n: ectx: property (specialValueText), widget (QSpinBox, lineLengthLimit) +#: dialogs/opensaveconfigwidget.ui:152 +#, kde-format +msgid "Unlimited" +msgstr "بلا حدّ" + +#. i18n: ectx: property (title), widget (QGroupBox, gbCleanups) +#: dialogs/opensaveconfigwidget.ui:168 +#, kde-format +msgid "Automatic Cleanups on Save" +msgstr "التّنظيف آليًّا عند الحفظ" + +#. i18n: ectx: property (whatsThis), widget (QLabel, lblRemoveTrailingSpaces) +#. i18n: ectx: property (whatsThis), widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:176 dialogs/opensaveconfigwidget.ui:189 +#, kde-format +msgid "" +"Depending on the choice, trailing spaces are removed when saving a document, " +"either in the entire document or only of modified lines." +msgstr "" +"تبعًا لاختيارك، ستُزال المسافات الزّائدة عند حفظ المستند، إمّا للمستند بالكامل " +"أو للأسطر المعدّلة فقط." + +#. i18n: ectx: property (text), widget (QLabel, lblRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:179 +#, kde-format +msgid "Re&move trailing spaces:" +msgstr "أ&زل المسافات الزّائدة:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, spbAutoSaveInterval) +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/opensaveconfigwidget.ui:193 dialogs/opensaveconfigwidget.ui:270 +#: dialogs/textareaappearanceconfigwidget.ui:104 +#, kde-format +msgid "Never" +msgstr "أبدًا" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:198 +#, kde-format +msgid "On Modified Lines" +msgstr "للأسطر المعدّلة" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:203 +#, kde-format +msgid "In Entire Document" +msgstr "للمستند بالكامل" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkNewLineAtEof) +#: dialogs/opensaveconfigwidget.ui:226 +#, kde-format +msgid "" +"On save, a line break is appended to the document if not already present. " +"The line break is visible after reloading the file." +msgstr "" +"عند الحفظ يُضاف كاسر أسطر إلى نهاية المستند إن لم يكن موجودًا فعلًا. سيظهر كاسر " +"الأسطر بعد إعادة تحميل الملفّ." + +#. i18n: ectx: property (text), widget (QCheckBox, chkNewLineAtEof) +#: dialogs/opensaveconfigwidget.ui:229 +#, kde-format +msgid "Append newline at end of file on save" +msgstr "أضف سطرًا جديدًا نهاية الملفّ عند الحفظ" + +#. i18n: ectx: property (title), widget (QGroupBox, gbAutoSave) +#: dialogs/opensaveconfigwidget.ui:239 +#, kde-format +msgid "Enable Auto Save (local files only)" +msgstr "مكّن الحفظ الآليّ (للملفات المحلية فقط)" + +#. i18n: ectx: property (text), widget (QCheckBox, cbAutoSaveOnFocus) +#: dialogs/opensaveconfigwidget.ui:254 +#, kde-format +msgid "Auto save document when the active document is losing focus" +msgstr "حفظ المستند آليًّا عندما يفقد المستند النشط التركيز" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/opensaveconfigwidget.ui:263 +#, kde-format +msgid "Auto save interval:" +msgstr "فترة الحفظ آليّ:" + +#. i18n: ectx: property (suffix), widget (QSpinBox, spbAutoSaveInterval) +#: dialogs/opensaveconfigwidget.ui:273 +#, kde-format +msgid " seconds" +msgstr " ثانية" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowHighlightingMode) +#: dialogs/statusbarconfigwidget.ui:19 +#, kde-format +msgid "Show highlighting mode" +msgstr "أظهر نمط إبراز الصّياغة" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowInputMode) +#: dialogs/statusbarconfigwidget.ui:26 +#, kde-format +msgid "Show input mode" +msgstr "أظهر نمط الإدخال" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowActiveDictionary) +#: dialogs/statusbarconfigwidget.ui:33 +#, kde-format +msgid "Show active dictionary" +msgstr "أظهر القاموس النشط" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowTabSetting) +#: dialogs/statusbarconfigwidget.ui:40 +#, kde-format +msgid "Show tab setting" +msgstr "أظهر إعدادات الجدولة" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowLineColumn) +#: dialogs/statusbarconfigwidget.ui:47 +#, kde-format +msgid "Show line column" +msgstr "أظهر رقم العمود" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowEncoding) +#: dialogs/statusbarconfigwidget.ui:54 +#, kde-format +msgid "Show File Encoding" +msgstr "أظهر ترميز الملف" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowEOL) +#: dialogs/statusbarconfigwidget.ui:61 +#, kde-format +msgid "Show Line Ending Type" +msgstr "أظهر نوع نهاية السطر" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/textareaappearanceconfigwidget.ui:28 +#, kde-format +msgid "Editor font:" +msgstr "خطّ المحرّر:" + +#. i18n: ectx: property (text), widget (QLabel, lblLineHeight) +#: dialogs/textareaappearanceconfigwidget.ui:48 +#, kde-format +msgid "&Line Height Multiplier:" +msgstr "&مضاعف ارتفاع السّطر:" + +#. i18n: ectx: property (toolTip), widget (QDoubleSpinBox, spbLineHeightMultiplier) +#: dialogs/textareaappearanceconfigwidget.ui:58 +#, kde-format +msgid "" +"This value will be multiplied with the font's default line height. A value " +"of 1.0 means that the default height will be used." +msgstr "" +"ستُضرب هذه القيمة في ارتفاع السطر المبدئي للخط. تعني القيمة 1.0 أنه سيُستخدم " +"الارتفاع المبدئي." + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/textareaappearanceconfigwidget.ui:93 +#, kde-format +msgid "Show whitespace indicators:" +msgstr "أَظهِر مؤشرات المسافة البيضاء:" + +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/textareaappearanceconfigwidget.ui:109 +#, kde-format +msgid "At the end of a line" +msgstr "عند نهاية الأسطر" + +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/textareaappearanceconfigwidget.ui:114 +#, kde-format +msgid "Always" +msgstr "دائمًا" + +#. i18n: ectx: property (text), widget (QLabel, lbMarkerDescription) +#: dialogs/textareaappearanceconfigwidget.ui:122 +#, kde-format +msgid "Whitespace indicator si&ze:" +msgstr "حجم مؤشر المسافة البيضاء:" + +#. i18n: ectx: property (whatsThis), widget (QSlider, sliSetMarkerSize) +#: dialogs/textareaappearanceconfigwidget.ui:138 +#, kde-format +msgid "Size of the visible highlight marker." +msgstr "حجم علامة التمييز المرئية." + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/textareaappearanceconfigwidget.ui:166 +#, kde-format +msgid "Show &tab indicators:" +msgstr "أظهر إشارات الجدولة:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowTabs) +#: dialogs/textareaappearanceconfigwidget.ui:176 +#, kde-format +msgid "" +"The editor will display a symbol to indicate the presence of a tab in the " +"text." +msgstr "سيعرض المحرّر رمزًا للدّلالة على وجود جدولة في النّصّ." + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/textareaappearanceconfigwidget.ui:202 +#, kde-format +msgid "Bracket matching:" +msgstr "مطابقة القوس:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowWholeBracketExpression) +#: dialogs/textareaappearanceconfigwidget.ui:209 +#, kde-format +msgid "" +"If this is enabled, the range between the selected matching brackets will be " +"highlighted." +msgstr "إن فُعّل هذا، فسيُبرز ما بين الأطواق المطابقة المحدّدة." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowWholeBracketExpression) +#: dialogs/textareaappearanceconfigwidget.ui:212 +#, kde-format +msgid "Highlight range between selected brackets" +msgstr "أبرز المجال بين الأقواس المحدّدة" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:219 +#, kde-format +msgid "Show the matching open bracket and lines adjacent to it for context" +msgstr "أظهر القوس المفتوح المطابق والخطوط المجاورة له للسياق" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:222 +#, kde-format +msgid "" +"If this is enabled, a preview of the lines near a matching open bracket is " +"shown. This can help in quickly determining the context of a closing " +"bracket, especially in long function/class declarations and deeply nested if " +"blocks" +msgstr "" +"إذا مكنت هذا الخيار، سيعرض معاينة للأسطر بالقرب من قوس مفتوح مطابق. يمكن أن " +"يساعد هذا في تحديد سياق قوس الإغلاق بسرعة، وخاصة في إعلانات الوظائف/الفئات " +"الطويلة وكتل if المتداخلة بعمق" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:225 +#, kde-format +msgid "Show preview of matching open bracket" +msgstr "أظهر معاينة القوس المفتوح المطابق" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:232 +#, kde-format +msgid "Flash matching brackets" +msgstr "أومض الأقواس المطابقة" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:235 +#, kde-format +msgid "" +"If this is enabled, matching brackets are animated for better visibility." +msgstr "إن فُعّل هذا، سيكون للأقواس المطابقة حركة ليسهل رؤيتها." + +#. i18n: ectx: property (text), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:238 +#, kde-format +msgid "Flash matching bracket when cursor moves to other bracket in pair" +msgstr "شريحة مطابقة الفلاش عندما يتحرك المؤشر إلى شريحة أخرى في الزوج" + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/textareaappearanceconfigwidget.ui:261 +#, kde-format +msgid "Counts:" +msgstr "العد:" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowWordCount) +#: dialogs/textareaappearanceconfigwidget.ui:268 +#, kde-format +msgid "Show/hide word count in status bar" +msgstr "أظهر/أخفِ عدد الكلمات في شريط الحالة" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowWordCount) +#: dialogs/textareaappearanceconfigwidget.ui:271 view/katestatusbar.cpp:258 +#, kde-format +msgid "Show word count" +msgstr "أظهر عدد الكلمات" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowLineCount) +#: dialogs/textareaappearanceconfigwidget.ui:278 +#, kde-format +msgid "Show/hide line count in status bar" +msgstr "أظهر/أخفِ عدّاد السطور في شريط الحالة" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowLineCount) +#: dialogs/textareaappearanceconfigwidget.ui:281 view/katestatusbar.cpp:255 +#, kde-format +msgid "Show line count" +msgstr "أظهر عدد الأسطر" + +#. i18n: ectx: property (text), widget (QLabel, label_25) +#: dialogs/textareaappearanceconfigwidget.ui:304 +#, kde-format +msgid "Fold first line:" +msgstr "اطو أوّل سطر:" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkFoldFirstLine) +#: dialogs/textareaappearanceconfigwidget.ui:317 +#, kde-format +msgid "" +"When this setting is enabled, the editor view automatically folds\n" +"comment blocks that start on the first line of the document. This is\n" +"helpful to hide license headers which are commonly placed at the\n" +"beginning of a file." +msgstr "" +"عند تفعيل هذا الخيار، سيطوي منظور المحرّر آليًّا\n" +"كتل التّعليقات التي تبدأ في أوّل سطر من المستند. هذا مفيد\n" +"لإخفاء ترويسات الرّخص التي توضع غالبًا\n" +"بداية الملفّ." + +#. i18n: ectx: property (text), widget (QCheckBox, cbxWordWrap) +#: dialogs/textareaappearanceconfigwidget.ui:337 +#, kde-format +msgid "Dynamic Word Wrap:" +msgstr "لفّ الكلمات حركيًّا:" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDynWrapAtStaticMarker) +#: dialogs/textareaappearanceconfigwidget.ui:344 +#, kde-format +msgid "Wrap dynamically at static word wrap marker" +msgstr "لفّ ديناميكيًا عند علامة التفاف الكلمات الثابتة" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDynWrapAnywhere) +#: dialogs/textareaappearanceconfigwidget.ui:351 +#, kde-format +msgid "Disregard word boundaries for dynamic wrapping" +msgstr "تجاهل حدود الكلمات للالتفاف الديناميكي" + +#. i18n: ectx: property (text), widget (QLabel, lblDynamicWordWrapIndicators) +#: dialogs/textareaappearanceconfigwidget.ui:358 +#, kde-format +msgid "D&ynamic word wrap indicators:" +msgstr "&مؤشرات لف الكلمات الحركي:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbDynamicWordWrapIndicator) +#: dialogs/textareaappearanceconfigwidget.ui:368 +#, kde-format +msgid "Choose when the Dynamic Word Wrap Indicators should be displayed." +msgstr "اختر متى يجب عرض مؤشّرات لفّ الكلمات حركيًّا." + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/textareaappearanceconfigwidget.ui:391 +#, kde-format +msgid "I&ndent wrapped lines:" +msgstr "أزح السطور الملفوفة:" + +#. i18n: ectx: property (text), widget (QLabel, lblDynamicWordWrapIndicators_2) +#: dialogs/textareaappearanceconfigwidget.ui:408 +#, kde-format +msgid "&Don't indent lines wider than:" +msgstr "لا تزيح السطور أعرض من:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbDynamicWordWrapDepth) +#: dialogs/textareaappearanceconfigwidget.ui:424 +#, no-c-format, kde-format +msgid "" +"

Enables the start of dynamically wrapped lines to be aligned vertically " +"to the indentation level of the first line. This can help to make code and " +"markup more readable.

Additionally, this allows you to set a maximum " +"width of the screen, as a percentage, after which dynamically wrapped lines " +"will no longer be vertically aligned. For example, at 50%, lines whose " +"indentation levels are deeper than 50% of the width of the screen will not " +"have vertical alignment applied to subsequent wrapped lines.

" +msgstr "" +"

يتيح محاذاة بداية السطور الملتفة ديناميكيًا عموديًا إلى مستوى الإزاحة للسطر " +"الأول. يمكن أن يساعد هذا في جعل التعليمات البرمجية والعلامات أكثر قابلية " +"للقراءة.

بالإضافة إلى ذلك، يسمح لك هذا بتعيين أقصى عرض للشاشة كنسبة " +"مئوية، وبعد ذلك لن تكون السطور الملتفة ديناميكيًا محاذية عموديًا. على سبيل " +"المثال، عند 50%، لن تطبق المحاذاة العمودية على السطور الملتفة اللاحقة التي " +"تكون مستويات المسافة البادئة فيها أعمق من 50% من عرض الشاشة.

" + +#. i18n: ectx: property (suffix), widget (QSpinBox, sbDynamicWordWrapDepth) +#: dialogs/textareaappearanceconfigwidget.ui:427 +#, no-c-format, kde-format +msgid "% of View Width" +msgstr "% من عرض المنظور" + +#. i18n: ectx: property (text), widget (QLabel, label_24) +#: dialogs/textareaappearanceconfigwidget.ui:443 +#, kde-format +msgid "Show i&ndentation lines:" +msgstr "أظهر أسطر الإزا&حة:" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowIndentationLines) +#: dialogs/textareaappearanceconfigwidget.ui:453 +#, kde-format +msgid "" +"If this is enabled, the editor will display vertical lines to help identify " +"indent lines." +msgstr "إن فُعّل هذا، سيعرض المحرّر أسطر عمودية تساعد في التّعرف على أسطر الإزاحة." + +#: document/katebuffer.cpp:135 +#, kde-format +msgctxt "short translation, user created new file" +msgid "New file" +msgstr "ملفّ جديد" + +#: document/katedocument.cpp:223 +#, kde-format +msgid "Auto Reload Document" +msgstr "أعد تحميل المستند آليّا" + +#: document/katedocument.cpp:225 +#, kde-format +msgid "Automatic reload the document when it was changed on disk" +msgstr "إعادة تحميل المستند آليًّا عند تغييره على القرص" + +#: document/katedocument.cpp:2307 +#, kde-format +msgid "" +"The file %1 could not be loaded, as it was not possible to read from it.
Check if you have read access to this file." +msgstr "" +"تعذّر تحميل الملفّ %1، إذ لم يكن ممكنًا قراءته.
افحص صلاحيّات القراءة لديك " +"للملفّ." + +#: document/katedocument.cpp:2312 +#, kde-format +msgctxt "translators: you can also translate 'Try Again' with 'Reload'" +msgid "Try Again" +msgstr "جرّب مجدّدًا" + +#: document/katedocument.cpp:2316 document/katedocument.cpp:6534 +#, kde-format +msgid "&Close" +msgstr "أ&غلق" + +#: document/katedocument.cpp:2317 document/katedocument.cpp:6535 +#, kde-format +msgctxt "Close the message being displayed" +msgid "Close message" +msgstr "أغلق الرّسالة" + +#: document/katedocument.cpp:2449 +#, kde-format +msgid "" +"The file %1 was opened with %2 encoding but contained invalid characters." +"
It is set to read-only mode, as saving might destroy its content.
Either reopen the file with the correct encoding chosen or enable the read-" +"write mode again in the tools menu to be able to edit it." +msgstr "" +"فُتح الملفّ %1 بالتّرميز %2 ولكنّه يحوي محارف غير صالحة.
ضُبط الملفّ إلى وضع " +"القراءة فقط، إذ أنّ الحفظ قد يتلف محتواه.
إمّا أن تعيد فتح الملفّ بالتّرميز " +"الصّحيح أو أن تمكّن وضع القراءة فقط مجدّدًا من قائمة \"أدوات\" لتحرّره." + +#: document/katedocument.cpp:2468 +#, kde-format +msgid "" +"The file %1 was opened and contained lines longer than the configured Line " +"Length Limit (%2 characters).
The longest of those lines was %3 " +"characters long
Those lines were wrapped and the document is set to read-" +"only mode, as saving will modify its content." +msgstr "" +"فُتح الملفّ %1 وكان يحوي أسطرًا أطور من حدّ طول الأسطر المضبوط (%2 من المحارف)." +"
أطول هذه الأسطر كان بطول %3 من المحارف
لُفّت هذه الأسطر وضُبط وضع " +"المستند إلى القراءة فقط، حيث أنّ الحفظ سيعدّل محتواه." + +#: document/katedocument.cpp:2475 +#, kde-format +msgid "Temporarily raise limit and reload file" +msgstr "ارفع الحدّ مؤقّتًا وأعد تحميل الملفّ" + +#: document/katedocument.cpp:2478 +#, kde-format +msgid "Close" +msgstr "أغلق" + +#: document/katedocument.cpp:2505 +#, kde-format +msgid "" +"Do you really want to save this unmodified file? You could overwrite changed " +"data in the file on disk." +msgstr "" +"أمتأكّد من حفظ الملفّ غير المعدّل؟ قد تكتب فوق البيانات المتغيّرة في الملفّ على " +"القرص." + +#: document/katedocument.cpp:2506 +#, kde-format +msgid "Trying to Save Unmodified File" +msgstr "محاولة حفظ ملفّ غير معدّل" + +#: document/katedocument.cpp:2507 document/katedocument.cpp:2518 +#: document/katedocument.cpp:2534 +#, kde-format +msgid "Save Nevertheless" +msgstr "احفظ على أية حال" + +#: document/katedocument.cpp:2516 +#, kde-format +msgid "" +"Do you really want to save this file? Both your open file and the file on " +"disk were changed. There could be some data lost." +msgstr "" +"أمتأكّد من حفظ هذا الملفّ؟ بيانات الملفّ المفتوح لديك والملفّ على القرص قد " +"تغيّرت. قد تفقد بعض البيانات." + +#: document/katedocument.cpp:2517 document/katedocument.cpp:2533 +#: document/katedocument.cpp:2853 syntax/katethemeconfig.cpp:1218 +#: syntax/katethemeconfig.cpp:1376 +#, kde-format +msgid "Possible Data Loss" +msgstr "احتمال لفقد البيانات" + +#: document/katedocument.cpp:2531 +#, kde-format +msgid "" +"The selected encoding cannot encode every Unicode character in this " +"document. Do you really want to save it? There could be some data lost." +msgstr "" +"التّرميز المحدّد لا يمكنه ترميز كلّ محرف يونيكوديّ في هذا المستند. أمتأكّد من " +"حفظه؟ قد تفقد بعض البيانات." + +#: document/katedocument.cpp:2601 +#, kde-format +msgid "" +"The document could not be saved, as it was not possible to write to %1.\n" +"Check that you have write access to this file or that enough disk space is " +"available.\n" +"The original file may be lost or damaged. Don't quit the application until " +"the file is successfully written." +msgstr "" +"تعذر حفظ المستند، لأنه لم يكن من الممكن الكتابة إلى %1.\n" +"تأكد من أن لديك حق الوصول للكتابة إلى هذا الملف أو من توفر مساحة كافية على " +"القرص.\n" +"قد يكون الملف الأصلي مفقودًا أو تالفًا. لا تنه التطبيق حتى تكتب الملف بنجاح." + +#: document/katedocument.cpp:2722 +#, kde-format +msgid "" +"For file %1 no backup copy could be created before saving. If an error " +"occurs while saving, you might lose the data of this file. A reason could be " +"that the media you write to is full or the directory of the file is read-" +"only for you." +msgstr "" +"بالنسبة للملف %1، لا يمكن إنشاء نسخة احتياطية قبل الحفظ. إذا حدث خطأ أثناء " +"الحفظ، فقد تفقد بيانات هذا الملف. قد يكون السبب هو أن الوسائط التي تكتب " +"عليها ممتلئة أو أن دليل الملف للقراءة فقط بالنسبة لك." + +#: document/katedocument.cpp:2726 +#, kde-format +msgid "Failed to create backup copy." +msgstr "فشل إنشاء نسخة احتياطيّة." + +#: document/katedocument.cpp:2727 +#, kde-format +msgid "Try to Save Nevertheless" +msgstr "حاول الحفظ على أية حال" + +#: document/katedocument.cpp:2852 +#, kde-format +msgid "Do you really want to continue to close this file? Data loss may occur." +msgstr "أمتأكّد من متابعة إغلاق هذا الملفّ؟ قد يحدث فقدان للبيانات." + +#: document/katedocument.cpp:2854 +#, kde-format +msgid "Close Nevertheless" +msgstr "أغلق رغم ذلك" + +#: document/katedocument.cpp:4641 +#, kde-format +msgid "Untitled (%1)" +msgstr "غير معنون (%1)" + +#: document/katedocument.cpp:4643 +#, kde-format +msgid "Untitled" +msgstr "غير معنون" + +#: document/katedocument.cpp:4820 document/katedocument.cpp:5051 +#: document/katedocument.cpp:5061 document/katedocument.cpp:5862 +#: document/katedocument.cpp:6049 +#, kde-format +msgid "Save File" +msgstr "احفظ الملفّ" + +#: document/katedocument.cpp:4823 +#, kde-format +msgid "Save failed" +msgstr "فشل الحفظ" + +#: document/katedocument.cpp:5072 +#, kde-format +msgid "Save Copy of File" +msgstr "احفظ نسخة من الملفّ" + +#: document/katedocument.cpp:5084 +#, kde-format +msgid "" +"The document could not be saved, as it was not possible to write to %1.\n" +"\n" +"Check that you have write access to this file or that enough disk space is " +"available." +msgstr "" +"تعذّر حفظ المستند، إذ لم يكن ممكنًا الكتابة إلى %1.\n" +"\n" +"افحص صلاحيّات الكتابة لديك إلى هذا الملفّ أو توفّر مساحة كافية على القرص." + +#: document/katedocument.cpp:5376 +#, kde-format +msgid "" +"Using deprecated modeline 'remove-trailing-space'. Please replace with " +"'remove-trailing-spaces modified;', see https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" +msgstr "" +"استخدمت نموذج قديم \"remove-trailing-space\". يُرجى استخدام \"remove-trailing-" +"spaces modified;\"، راجع https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" + +#: document/katedocument.cpp:5382 +#, kde-format +msgid "" +"Using deprecated modeline 'replace-trailing-space-save'. Please replace with " +"'remove-trailing-spaces all;', see https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" +msgstr "" +"استخدامت نموذج قديم 'replace-trailing-space-save'. يُرجى استخدام 'remove-" +"trailing-spaces all;'، راجع https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" + +#: document/katedocument.cpp:5696 +#, kde-format +msgid "The file '%1' was modified on disk." +msgstr "لقد عُدّل الملفّ '%1' على القرص." + +#: document/katedocument.cpp:5698 +#, kde-format +msgid "The file '%1' was deleted or moved on disk." +msgstr "حُذف الملفّ '%1' أو نُقل على القرص." + +#: document/katedocument.cpp:6034 +#, kde-format +msgid "" +"The document \"%1\" has been modified.\n" +"Do you want to save your changes or discard them?" +msgstr "" +"عُدّل المستند \"%1\" ولم يُحفظ.\n" +"أتريد حفظ التّعديلات أو رفضها؟" + +#: document/katedocument.cpp:6037 +#, kde-format +msgid "Close Document" +msgstr "أغلق المستند" + +#: document/katedocument.cpp:6148 +#, kde-format +msgid "The file %2 is still loading." +msgstr "ما زال الملفّ %2 يحمّل." + +#: document/katedocument.cpp:6153 +#, kde-format +msgid "&Abort Loading" +msgstr "أ&جهض التّحميل" + +#: inputmode/katenormalinputmode.cpp:74 +#, kde-format +msgid "OVERWRITE" +msgstr "كتابة فوقيّة" + +#: inputmode/katenormalinputmode.cpp:74 +#, kde-format +msgid "INSERT" +msgstr "إدراج" + +#: inputmode/katenormalinputmodefactory.cpp:29 +#, kde-format +msgid "Normal Mode" +msgstr "الوضع العاديّ" + +#: inputmode/kateviinputmode.cpp:31 +#, kde-format +msgctxt "The INSERT mode of VI" +msgid "VI: INSERT" +msgstr "في‌آي: إدراج" + +#: inputmode/kateviinputmode.cpp:34 +#, kde-format +msgctxt "The NORMAL mode of VI" +msgid "VI: NORMAL" +msgstr "في‌آي: عاديّ" + +#: inputmode/kateviinputmode.cpp:37 +#, kde-format +msgid "VI: VISUAL" +msgstr "في‌آي: مرئيّ" + +#: inputmode/kateviinputmode.cpp:40 +#, kde-format +msgid "VI: VISUAL BLOCK" +msgstr "في‌آي: كتلة مرئيّة" + +#: inputmode/kateviinputmode.cpp:43 +#, kde-format +msgid "VI: VISUAL LINE" +msgstr "في‌آي: سطر مرئيّ" + +#: inputmode/kateviinputmode.cpp:46 +#, kde-format +msgid "VI: REPLACE" +msgstr "في‌آي: استبدال" + +#: inputmode/kateviinputmode.cpp:146 +#, kde-format +msgid "vi-mode" +msgstr "وضع في‌آي" + +#: inputmode/kateviinputmode.cpp:159 +#, kde-format +msgid "recording" +msgstr "يسجّل" + +#: inputmode/kateviinputmodefactory.cpp:38 utils/kateglobal.cpp:88 +#: vimode/config/configtab.cpp:237 +#, kde-format +msgid "Vi Input Mode" +msgstr "وضع دخل في‌آي" + +#: mode/katemodeconfigpage.cpp:46 +#, kde-format +msgid "" +msgstr "<لم يُعدّل>" + +#: mode/katemodeconfigpage.cpp:58 +#, kde-format +msgid "Use Default" +msgstr "استخدم المبدئي" + +#: mode/katemodeconfigpage.cpp:99 mode/katemodeconfigpage.cpp:241 +#, kde-format +msgid "Properties of %1" +msgstr "خصائص %1" + +#: mode/katemodeconfigpage.cpp:178 +#, kde-format +msgid "New Filetype" +msgstr "نوع ملفّات جديد" + +#: mode/katemodeconfigpage.cpp:293 +#, kde-format +msgid "" +"Select the MimeTypes you want for this file type.\n" +"Please note that this will automatically edit the associated file extensions " +"as well." +msgstr "" +"اختر أنواع Mime لنوع الملفّات هذا.\n" +"فضلًا لاحظ بأنّ هذا سيحرّر آليًّا امتدادات الملفّات المرتبطة أيضًا." + +#: mode/katemodeconfigpage.cpp:295 +#, kde-format +msgid "Select Mime Types" +msgstr "اختر أنواع Mime" + +#: mode/katemodeconfigpage.cpp:312 +#, kde-format +msgid "Modes && Filetypes" +msgstr "الأوضاع وأنواع الملفّات" + +#: mode/katemodemenulist.cpp:138 +#, kde-format +msgctxt "@info:placeholder" +msgid "Search…" +msgstr "ابحث…" + +#: mode/katemodemenulist.cpp:140 +#, kde-format +msgctxt "ToolTip of the search bar of modes of syntax highlighting" +msgid "" +"Search for syntax highlighting modes by language name or file extension (for " +"example, C++ or .cpp)" +msgstr "" +"ابحث عن أوضاع تمييز بناء الجملة حسب اسم اللغة أو ملحق الملف (على سبيل " +"المثال، C++ أو .cpp)" + +#: mode/katemodemenulist.cpp:560 +#, kde-format +msgctxt "A search yielded no results" +msgid "No items matching your search" +msgstr "لا توجد عناصر مطابقة لبحثك" + +#: mode/katemodemenulist.cpp:1087 +#, kde-format +msgctxt "" +"Title (in singular) of the best result in an item search. Please, that the " +"translation doesn't have more than 34 characters, since the menu where it's " +"displayed is small and fixed." +msgid "Best Search Match" +msgstr "أفضل تطابق بحث" + +#: mode/katemodemenulist.cpp:1092 +#, kde-format +msgctxt "" +"Title (in plural) of the best results in an item search. Please, that the " +"translation doesn't have more than 34 characters, since the menu where it's " +"displayed is small and fixed." +msgid "Best Search Matches" +msgstr "أفضل تطابق" + +#: printing/printconfigwidgets.cpp:36 +#, kde-format +msgid "Te&xt Settings" +msgstr "إعدادات ال&نّصّ" + +#: printing/printconfigwidgets.cpp:40 +#, kde-format +msgid "Print line &numbers" +msgstr "اطبع أرقام الأ&سطر" + +#: printing/printconfigwidgets.cpp:43 +#, kde-format +msgid "Print &legend" +msgstr "اطبع دليل المصطلحات" + +#: printing/printconfigwidgets.cpp:46 +#, kde-format +msgid "Don't print folded code" +msgstr "لا تطبع الكود المطوي" + +#: printing/printconfigwidgets.cpp:54 +#, kde-format +msgid "" +"

If enabled, line numbers will be printed on the left side of the page(s)." +"

" +msgstr "

إن فُعّل، ستُطبع أرقام الصّفحات على الجانب الأيسر من الصّفحات.

" + +#: printing/printconfigwidgets.cpp:56 +#, kde-format +msgid "" +"

Print a box displaying typographical conventions for the document type, " +"as defined by the syntax highlighting being used.

" +msgstr "" +"

اطبع مربّعًا يعرض المعايير المطبعيّة لنوع المستند، كما هي معرّفة في إبراز " +"الصّياغة المُستخدم.

" + +#: printing/printconfigwidgets.cpp:116 +#, kde-format +msgid "Hea&der && Footer" +msgstr "ال&تّرويسة و التّذييل" + +#: printing/printconfigwidgets.cpp:123 +#, kde-format +msgid "Pr&int header" +msgstr "ا&طبع التّرويسة" + +#: printing/printconfigwidgets.cpp:125 +#, kde-format +msgid "Pri&nt footer" +msgstr "اطبع ال&تّذييل" + +#: printing/printconfigwidgets.cpp:131 +#, kde-format +msgid "Header/footer font:" +msgstr "خطّ التّرويسة/التّذييل:" + +#: printing/printconfigwidgets.cpp:137 +#, kde-format +msgid "Header Properties" +msgstr "خصائص التّرويسة" + +#: printing/printconfigwidgets.cpp:141 +#, kde-format +msgid "&Format:" +msgstr "النّ&سق:" + +#: printing/printconfigwidgets.cpp:163 printing/printconfigwidgets.cpp:209 +#, kde-format +msgid "Colors:" +msgstr "الألوان:" + +#: printing/printconfigwidgets.cpp:170 printing/printconfigwidgets.cpp:216 +#, kde-format +msgid "Foreground:" +msgstr "الأماميّة:" + +#: printing/printconfigwidgets.cpp:175 +#, kde-format +msgid "Bac&kground" +msgstr "ال&خلفيّة" + +#: printing/printconfigwidgets.cpp:181 +#, kde-format +msgid "Footer Properties" +msgstr "خصائص التّذييل" + +#: printing/printconfigwidgets.cpp:186 +#, kde-format +msgid "For&mat:" +msgstr "النّس&ق:" + +#: printing/printconfigwidgets.cpp:221 +#, kde-format +msgid "&Background" +msgstr "الخ&لفيّة" + +#: printing/printconfigwidgets.cpp:250 +#, kde-format +msgid "

Format of the page header. The following tags are supported:

" +msgstr "

نسق ترويسة الصّفحة. الوسوم الآتية مدعومة:

" + +#: printing/printconfigwidgets.cpp:252 +#, kde-format +msgid "" +"
  • %u: current user name
  • %d: complete date/" +"time in short format
  • %D: complete date/time in long format
  • %h: current time
  • %y: current date in short " +"format
  • %Y: current date in long format
  • %f: " +"file name
  • %U: full URL of the document
  • %p: " +"page number
  • %P: total amount of pages

" +msgstr "" +"
  • ‎%u: اسم المستخدم الحاليّ
  • ‎%d: الوقت والتّاريخ " +"كاملين بالنّسق القصير
  • ‎%D: الوقت والتّاريخ كاملين بالنّسق " +"الطّويل
  • ‎%h: الوقت الحاليّ
  • ‎%y: التّاريخ الحاليّ " +"بالنّسق القصير
  • ‎%Y: التّاريخ الحاليّ بالنّسق الطّويل
  • ‎" +"%f: اسم الملفّ
  • ‎%U: عنوان المستند الكامل
  • ‎%p: رقم الصّفحة
  • ‎%P: إجماليّ عدد الصّفحات

" + +#: printing/printconfigwidgets.cpp:266 +#, kde-format +msgid "

Format of the page footer. The following tags are supported:

" +msgstr "

نسق تذييل الصّفحة الوسوم الآتية مدعومة:

" + +#: printing/printconfigwidgets.cpp:352 +#, kde-format +msgid "Add Placeholder..." +msgstr "أضف حافظ مكان..." + +#: printing/printconfigwidgets.cpp:354 +#, kde-format +msgid "Current User Name" +msgstr "اسم المستخدم الحاليّ" + +#: printing/printconfigwidgets.cpp:356 +#, kde-format +msgid "Complete Date/Time (short format)" +msgstr "الوقت والتّاريخ كاملين (النّسق القصير)" + +#: printing/printconfigwidgets.cpp:358 +#, kde-format +msgid "Complete Date/Time (long format)" +msgstr "الوقت والتّاريخ كاملين (النّسق الطّويل)" + +#: printing/printconfigwidgets.cpp:360 +#, kde-format +msgid "Current Time" +msgstr "الوقت الحاليّ" + +#: printing/printconfigwidgets.cpp:362 +#, kde-format +msgid "Current Date (short format)" +msgstr "التّاريخ الحاليّ (النّسق القصير)" + +#: printing/printconfigwidgets.cpp:364 +#, kde-format +msgid "Current Date (long format)" +msgstr "التّاريخ الحاليّ (النّسق الطّويل)" + +#: printing/printconfigwidgets.cpp:366 +#, kde-format +msgid "File Name" +msgstr "اسم الملفّ" + +#: printing/printconfigwidgets.cpp:368 +#, kde-format +msgid "Full document URL" +msgstr "عنوان المستند الكامل" + +#: printing/printconfigwidgets.cpp:370 +#, kde-format +msgid "Page Number" +msgstr "رقم الصّفحة" + +#: printing/printconfigwidgets.cpp:372 +#, kde-format +msgid "Total Amount of Pages" +msgstr "إجماليّ عدد الصّفحات" + +#: printing/printconfigwidgets.cpp:478 +#, kde-format +msgid "L&ayout" +msgstr "الت&خطيط" + +#: printing/printconfigwidgets.cpp:484 +#, kde-format +msgid "&Color theme:" +msgstr "&سمة الألوان:" + +#: printing/printconfigwidgets.cpp:494 +#, kde-format +msgid "Font:" +msgstr "الخط:" + +#: printing/printconfigwidgets.cpp:498 +#, kde-format +msgid "Draw bac&kground color" +msgstr "ارسم لون ال&خلفيّة" + +#: printing/printconfigwidgets.cpp:501 +#, kde-format +msgid "Draw &boxes" +msgstr "ارسم مربّ&عات" + +#: printing/printconfigwidgets.cpp:505 +#, kde-format +msgid "Box Properties" +msgstr "خصائص المربّع" + +#: printing/printconfigwidgets.cpp:509 +#, kde-format +msgid "W&idth:" +msgstr "ال&عرض:" + +#: printing/printconfigwidgets.cpp:517 +#, kde-format +msgid "&Margin:" +msgstr "ال&هامش:" + +#: printing/printconfigwidgets.cpp:525 +#, kde-format +msgid "Co&lor:" +msgstr "اللو&ن:" + +#: printing/printconfigwidgets.cpp:547 +#, kde-format +msgid "Select the color theme to use for the print." +msgstr "اختر سمة الألوان لاستخدامها للطّباعة." + +#: printing/printconfigwidgets.cpp:549 +#, kde-format +msgid "" +"

If enabled, the background color of the editor will be used.

This " +"may be useful if your color theme is designed for a dark background.

" +msgstr "" +"

إن فُعّل، سيُستخدم لون خلفيّة المحرّر.

قد يكون هذا مفيدًا إن كانت سمة " +"الألوان مصمّمة لخلفيّة قاتمة.

" + +#: printing/printconfigwidgets.cpp:552 +#, kde-format +msgid "" +"

If enabled, a box as defined in the properties below will be drawn around " +"the contents of each page. The Header and Footer will be separated from the " +"contents with a line as well.

" +msgstr "" +"

إذا مكنت هذه الميزة، فسيرسم مربع كما هو محدد في الخصائص أدناه حول محتويات " +"كل صفحة. وسيفصل الرأس والتذييل عن المحتويات بسطر أيضًا.

" + +#: printing/printconfigwidgets.cpp:555 +#, kde-format +msgid "The width of the box outline" +msgstr "عرض مخطط المربع" + +#: printing/printconfigwidgets.cpp:556 +#, kde-format +msgid "The margin inside boxes, in pixels" +msgstr "الهامش داخل المربّعات، بالبكسل" + +#: printing/printconfigwidgets.cpp:557 +#, kde-format +msgid "The line color to use for boxes" +msgstr "لون الخطّ لاستخدامه للمربّعات" + +#: printing/printpainter.cpp:269 +#, kde-format +msgid "(Selection of) " +msgstr "(اختيار من) " + +#: printing/printpainter.cpp:522 +#, kde-format +msgid "Typographical Conventions for %1" +msgstr "معايير %1 المطبعيّة" + +#: printing/printpainter.cpp:555 +#, kde-format +msgid "text" +msgstr "نصّ" + +#: script/data/commands/emmet.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Expand Abbreviation" +msgstr "وسّع الاختصار" + +#: script/data/commands/emmet.js:10 script/data/commands/emmet.js:14 +#: script/data/commands/emmet.js:19 script/data/commands/emmet.js:23 +#: script/data/commands/emmet.js:27 script/data/commands/emmet.js:31 +#: script/data/commands/emmet.js:35 script/data/commands/emmet.js:39 +#: script/data/commands/emmet.js:43 script/data/commands/emmet.js:47 +#: script/data/commands/emmet.js:51 script/data/commands/emmet.js:55 +#: script/data/commands/emmet.js:59 script/data/commands/emmet.js:63 +#: script/data/commands/emmet.js:67 script/data/commands/emmet.js:71 +#: script/data/commands/emmet.js:75 script/data/commands/emmet.js:79 +#: script/data/commands/emmet.js:83 +#, kde-format +msgctxt "Script command category" +msgid "Emmet" +msgstr "ايميت" + +#: script/data/commands/emmet.js:13 +#, kde-format +msgctxt "Script command name" +msgid "Wrap with Tag" +msgstr "التفاف بالوسم" + +#: script/data/commands/emmet.js:18 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Matching Tag" +msgstr "انقل المؤشّر إلى الوسم المطابق" + +#: script/data/commands/emmet.js:22 +#, kde-format +msgctxt "Script command name" +msgid "Select HTML/XML Tag Contents Inwards" +msgstr "حدد محتويات علامة HTML/XML للداخل" + +#: script/data/commands/emmet.js:26 +#, kde-format +msgctxt "Script command name" +msgid "Select HTML/XML Tag Contents Outwards" +msgstr "حدد محتويات علامة HTML/XML للخارج" + +#: script/data/commands/emmet.js:30 +#, kde-format +msgctxt "Script command name" +msgid "Toggle Comment" +msgstr "بدّل بين التّعليقات" + +#: script/data/commands/emmet.js:34 +#, kde-format +msgctxt "Script command name" +msgid "Go to Next Edit Point" +msgstr "انتقل إلى نقطة التّحرير التّالية" + +#: script/data/commands/emmet.js:38 +#, kde-format +msgctxt "Script command name" +msgid "Go to Previous Edit Point" +msgstr "انتقل إلى نقطة التّحرير السّابقة" + +#: script/data/commands/emmet.js:42 +#, kde-format +msgctxt "Script command name" +msgid "Select Next Edit Point" +msgstr "حدد نقطة التّحرير التّالية" + +#: script/data/commands/emmet.js:46 +#, kde-format +msgctxt "Script command name" +msgid "Select Previous Edit Point" +msgstr "حدد نقطة التّحرير السابقة" + +#: script/data/commands/emmet.js:50 +#, kde-format +msgctxt "Script command name" +msgid "Delete Tag Under Cursor" +msgstr "احذف الوسم أسفل المؤشّر" + +#: script/data/commands/emmet.js:54 +#, kde-format +msgctxt "Script command name" +msgid "Split or Join a Tag" +msgstr "اقسم أو ادمج وسم" + +#: script/data/commands/emmet.js:58 +#, kde-format +msgctxt "Script command name" +msgid "Evaluate a Simple Math Expression" +msgstr "احسب تعبيرًا رياضيًّا بسيطًا" + +#: script/data/commands/emmet.js:62 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 1" +msgstr "أنقص العدد بمقدار 1" + +#: script/data/commands/emmet.js:66 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 10" +msgstr "أنقص العدد بمقدار 10" + +#: script/data/commands/emmet.js:70 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 0.1" +msgstr "أنقص العدد بمقدار 0٫1" + +#: script/data/commands/emmet.js:74 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 1" +msgstr "زِد العدد بمقدار 1" + +#: script/data/commands/emmet.js:78 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 10" +msgstr "زِد العدد بمقدار 10" + +#: script/data/commands/emmet.js:82 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 0.1" +msgstr "زِد العدد بمقدار 0٫1" + +#: script/data/commands/emmet.js:96 +#, kde-format +msgid "" +"Expands the abbreviation using Emmet expressions; see http://code.google.com/" +"p/zen-coding/wiki/ZenHTMLSelectorsEn" +msgstr "" +"يوسّع الاختصار باستخدام تعبيرات Emmet، طالع http://code.google.com/p/zen-" +"coding/wiki/ZenHTMLSelectorsEn" + +#: script/data/commands/emmet.js:97 +#, kde-format +msgid "" +"Wraps the selected text in XML tags constructed from the provided Emmet " +"expression (defaults to div)." +msgstr "" +"يُغلف النص المحدد في علامات XML التي المنشئة من تعبير Emmet المتوفر " +"(المبدئيات هي div)." + +#: script/data/commands/emmet.js:98 +#, kde-format +msgid "Moves the caret to the current tag's pair" +msgstr "ينقل المؤشّر إلى زوج الوسم الحاليّ" + +#: script/data/commands/emmet.js:99 +#, kde-format +msgid "" +"Select contents of HTML/XML tag, moving inward on continuous invocations" +msgstr "" +"حدد محتويات علامة HTML/XML، مع التحرك نحو الداخل عند الاستدعاءات المستمرة" + +#: script/data/commands/emmet.js:100 +#, kde-format +msgid "" +"Select contents of HTML/XML tag, moving outwards on continuous invocations" +msgstr "حدد محتويات علامة HTML/XML، مع التحرك للخارج عند الاستدعاءات المستمرة" + +#: script/data/commands/emmet.js:101 +#, kde-format +msgid "Move to the next edit point (tag or empty attribute)." +msgstr "انتقل إلى نقطة التّحرير التّالية (وسم أو صفة فارغة)." + +#: script/data/commands/emmet.js:102 +#, kde-format +msgid "Move to the previous edit point (tag or empty attribute)." +msgstr "انتقل إلى نقطة التّحرير السّابقة (وسم أو صفة فارغة)." + +#: script/data/commands/emmet.js:103 +#, kde-format +msgid "Select next edit point (tag or empty attribute)." +msgstr "حدد نقطة التحرير التالية (علامة أو سمة فارغة)." + +#: script/data/commands/emmet.js:104 +#, kde-format +msgid "Select previous edit point (tag or empty attribute)." +msgstr "حدد نقطة التعديل السابقة (علامة أو سمة فارغة)." + +#: script/data/commands/emmet.js:105 +#, kde-format +msgid "Toggle comment of current tag or CSS selector" +msgstr "تبديل تعليق الوسم الحالي أو محدد CSS" + +#: script/data/commands/emmet.js:106 +#, kde-format +msgid "Deletes tag under cursor" +msgstr "يحذف الوسم أسفل المؤشّر" + +#: script/data/commands/emmet.js:107 +#, kde-format +msgid "Splits or joins a tag" +msgstr "يقسم أو يدمج وسمًا" + +#: script/data/commands/emmet.js:108 +#, kde-format +msgid "Evaluates a simple math expression" +msgstr "يقدّر تعبيرًا رياضيًّا بسيطًا" + +#: script/data/commands/emmet.js:109 +#, kde-format +msgid "Decrement number under cursor by 1" +msgstr "أنقص العدد أسفل المؤشّر بمقدار 1" + +#: script/data/commands/emmet.js:110 +#, kde-format +msgid "Decrement number under cursor by 10" +msgstr "أنقص العدد أسفل المؤشّر بمقدار 10" + +#: script/data/commands/emmet.js:111 +#, kde-format +msgid "Decrement number under cursor by 0.1" +msgstr "أنقص العدد أسفل المؤشّر بمقدار 0.1" + +#: script/data/commands/emmet.js:112 +#, kde-format +msgid "Increment number under cursor by 1" +msgstr "زِد العدد أسفل المؤشّر بمقدار 1" + +#: script/data/commands/emmet.js:113 +#, kde-format +msgid "Increment number under cursor by 10" +msgstr "زِد العدد أسفل المؤشّر بمقدار 10" + +#: script/data/commands/emmet.js:114 +#, kde-format +msgid "Increment number under cursor by 0.1" +msgstr "زِد العدد أسفل المؤشّر بمقدار 0.1" + +#: script/data/commands/jumpMatchingIndent.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Previous Matching Indent" +msgstr "انقل المؤشّر إلى الإزاحة المطابقة السّابقة" + +#: script/data/commands/jumpMatchingIndent.js:11 +#: script/data/commands/jumpMatchingIndent.js:16 +#: script/data/commands/jumpMatchingIndent.js:21 +#: script/data/commands/jumpMatchingIndent.js:26 +#: script/data/commands/navigation.js:10 script/data/commands/navigation.js:14 +#, kde-format +msgctxt "Script command category" +msgid "Navigation" +msgstr "التّنقّل" + +#: script/data/commands/jumpMatchingIndent.js:14 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Next Matching Indent" +msgstr "انقل المؤشّر إلى الإزاحة المطابقة التّالية" + +#: script/data/commands/jumpMatchingIndent.js:19 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Next Blank Line" +msgstr "انقل المؤشر إلى السطر الفارغ التالي" + +#: script/data/commands/jumpMatchingIndent.js:24 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Previous Blank Line" +msgstr "انقل المؤشر إلى السطر الفارغ السابق" + +#: script/data/commands/jumpMatchingIndent.js:80 +#, kde-format +msgid "Move cursor to previous matching indent" +msgstr "انقل المؤشّر إلى الإزاحة المطابقة السّابقة" + +#: script/data/commands/jumpMatchingIndent.js:83 +#, kde-format +msgid "Move cursor to next matching indent" +msgstr "انقل المؤشّر إلى الإزاحة المطابقة التّالية" + +#: script/data/commands/jumpMatchingIndent.js:85 +#, kde-format +msgid "Move cursor to next blank line" +msgstr "انقل المؤشر إلى السطر الفارغ التالي" + +#: script/data/commands/jumpMatchingIndent.js:87 +#, kde-format +msgid "Move cursor to previous blank line" +msgstr "انقل المؤشر إلى السطر الفارغ السابق" + +#: script/data/commands/navigation.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Go to Next Paragraph" +msgstr "اذهب إلى الفقرة التالية" + +#: script/data/commands/navigation.js:13 +#, kde-format +msgctxt "Script command name" +msgid "Go to Previous Paragraph" +msgstr "اذهب إلى الفقرة السابقة" + +#: script/data/commands/utils.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Remove Trailing Spaces" +msgstr "أ&زل المسافات الزّائدة" + +#: script/data/commands/utils.js:10 script/data/commands/utils.js:14 +#: script/data/commands/utils.js:18 script/data/commands/utils.js:22 +#: script/data/commands/utils.js:27 script/data/commands/utils.js:32 +#: script/data/commands/utils.js:36 script/data/commands/utils.js:40 +#: script/data/commands/utils.js:44 script/data/commands/utils.js:48 +#: script/data/commands/utils.js:52 script/data/commands/utils.js:56 +#, kde-format +msgctxt "Script command category" +msgid "Editing" +msgstr "التّحرير" + +#: script/data/commands/utils.js:13 +#, kde-format +msgctxt "Script command name" +msgid "Remove Leading Spaces" +msgstr "أزل المسافات البادئة" + +#: script/data/commands/utils.js:17 +#, kde-format +msgctxt "Script command name" +msgid "Remove Trailing and Leading Spaces" +msgstr "أزل المسافات الزائدة والبادئة" + +#: script/data/commands/utils.js:21 +#, kde-format +msgctxt "Script command name" +msgid "Join Lines" +msgstr "ضُمّ الأسطر" + +#: script/data/commands/utils.js:25 +#, kde-format +msgctxt "Script command name" +msgid "Move Lines Down" +msgstr "انقل الأسطر لأسفل" + +#: script/data/commands/utils.js:30 +#, kde-format +msgctxt "Script command name" +msgid "Move Lines Up" +msgstr "انقل الأسطر لأعلى" + +#: script/data/commands/utils.js:35 +#, kde-format +msgctxt "Script command name" +msgid "Duplicate Selected Lines Down" +msgstr "كرّر الأسطر المحدّدة لأسفل" + +#: script/data/commands/utils.js:39 +#, kde-format +msgctxt "Script command name" +msgid "Duplicate Selected Lines Up" +msgstr "كرّر الأسطر المحدّدة لأعلى" + +#: script/data/commands/utils.js:43 +#, kde-format +msgctxt "Script command name" +msgid "Duplicate selected text" +msgstr "كرر النص المحدد" + +#: script/data/commands/utils.js:47 +#, kde-format +msgctxt "Script command name" +msgid "URI-encode Selected Text" +msgstr "ترميز النّصّ المحدّد ل‍URI" + +#: script/data/commands/utils.js:51 +#, kde-format +msgctxt "Script command name" +msgid "URI-decode Selected Text" +msgstr "فكّ ترميز النّصّ المحدّد من URI" + +#: script/data/commands/utils.js:55 +#, kde-format +msgctxt "Script command name" +msgid "Remove Empty Lines" +msgstr "أزل الأسطر الفارغة" + +#: script/data/commands/utils.js:410 +#, kde-format +msgid "Sort the selected text or whole document." +msgstr "افرز النّصّ المحدّد أو المستند بالكامل." + +#: script/data/commands/utils.js:412 +#, kde-format +msgid "Move selected lines down." +msgstr "انقر الأسطر المحدّدة لأسفل." + +#: script/data/commands/utils.js:414 +#, kde-format +msgid "Move selected lines up." +msgstr "انقر الأسطر المحدّدة لأعلى." + +#: script/data/commands/utils.js:416 +#, kde-format +msgid "Remove duplicate lines from the selected text or whole document." +msgstr "أزل الأسطر المكرّرة من النّصّ المحدّد أو المستند بالكامل." + +#: script/data/commands/utils.js:418 +#, kde-format +msgid "" +"Sort the selected text or whole document in natural order.
Here is an " +"example to show the difference to the normal sort method:
sort(a10, a1, " +"a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" +msgstr "" +"افرز النص المحدد أو الوثيقة بأكملها بالترتيب الطبيعي.
إليك مثال لإظهار " +"الفرق عن طريقة الفرز العادية:
‎sort(a10, a1, a2) => a1, a10, " +"a2
‎natsort(a10, a1, a2) => a1, a2, a10" + +#: script/data/commands/utils.js:420 +#, kde-format +msgid "Trims trailing whitespace from selection or whole document." +msgstr "إزالة المسافة البيضاء الزائدة من التحديد أو الوثيقة بأكملها." + +#: script/data/commands/utils.js:422 +#, kde-format +msgid "Trims leading whitespace from selection or whole document." +msgstr "إزالة المسافة البيضاء من التحديد أو الوثيقة بأكملها." + +#: script/data/commands/utils.js:424 +#, kde-format +msgid "Trims leading and trailing whitespace from selection or whole document." +msgstr "إزالة المسافات البيضاء البادئة واللاحقة من التحديد أو الوثيقة بأكملها." + +#: script/data/commands/utils.js:426 +#, kde-format +msgid "" +"Joins selected lines or whole document. Optionally pass a separator to put " +"between each line:
join ', ' will e.g. join lines and " +"separate them by a comma." +msgstr "" +"يربط الأسطر المحددة أو المستند بالكامل. يمكنك اختياريًا تمرير فاصل لوضعه بين " +"كل سطر:
join ', ' على سبيل المثال يربط الأسطر ويفصل بينها " +"بفاصلة." + +#: script/data/commands/utils.js:428 +#, kde-format +msgid "Removes empty lines from selection or whole document." +msgstr "يزيل الأسطر الفارغة من التّحديد أو المستند بالكامل." + +#: script/data/commands/utils.js:430 +#, kde-format +msgid "" +"This command aligns lines in the selected block or whole document on the " +"column given by a regular expression given as an argument.

If you " +"give an empty pattern it will align on the first non-blank character by " +"default.
If the pattern has a capture it will indent on the captured " +"match.

Examples:
'alignon -' will insert " +"spaces before the first '-' of each lines to align them all on the same " +"column.
'alignon :\\s+(.)' will insert spaces before the " +"first non-blank character that occurs after a colon to align them all on the " +"same column." +msgstr "" +"يحاذي هذا الأمر الأسطر في الكتلة المحددة أو المستند بالكامل على العمود " +"المحدد بواسطة تعبير نمطي يقدم كوسيط.

إذا أعطيت نمطا فارغا، فسيحاذى " +"عند أول حرف غير فارغ بشكل مبدئي.
إذا كان النمط يحتوي على التقاط، فستوضع " +"مسافة بادئة عند المطابقة الملتقطة.

أمثلة:
'alignon -' سيُدخل مسافات قبل أول '-' من كل سطر لمحاذاتها جميعًا في نفس العمود." +"
'alignon :\\s+(.)' سيُدخل مسافات قبل أول حرف غير فارغ يظهر " +"بعد النقطتين لمحاذاتها جميعًا في نفس العمود." + +#: script/data/commands/utils.js:434 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and replace them with the return value of that callback." +"
Example (join selected lines):
each 'function(lines){return " +"lines.join(\", \");}'
To save you some typing, you can also do " +"this to achieve the same:
each 'lines.join(\", \")'" +msgstr "" +"بالنظر إلى دالة جافاسكربت كوسيط، فاستدعها لقائمة الأسطر (المحددة) واستبدلها " +"بقيمة الإرجاع الخاصة بهذه الدالة الراجعة.
مثال (الانضمام إلى الأسطر " +"المحددة):
each 'function(lines){return lines.join(\", \");}'
لتوفير بعض الكتابة، يمكنك هكذا لتحقق نفس النتيجة:
each " +"'lines.join(\", \")'" + +#: script/data/commands/utils.js:436 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and remove those where the callback returns false." +"
Example (see also rmblank):
filter 'function(l)" +"{return l.length > 0;}'
To save you some typing, you can also do " +"this to achieve the same:
filter 'line.length > 0'" +msgstr "" +"عند إعطاء دالة جافاسكربت كوسيط، استدعها لقائمة الأسطر (المحددة) وإزالة " +"الأسطر التي ترجع فيها دالة الاستدعاء قيمة false.
مثال (انظر أيضًا " +"rmblank):
filter 'function(l){return l.length > 0;}'
يمكنك كتابتها هكذا لتحصل على نفس النتيجة:
filter 'line." +"length > 0'" + +#: script/data/commands/utils.js:438 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and replace the line with the return value of the callback." +"
Example (see also ltrim):
map 'function(line)" +"{return line.replace(/^\\s+/, \"\");}'
To save you some typing, " +"you can also do this to achieve the same:
map 'line.replace(/^\\s" +"+/, \"\")'" +msgstr "" +"عند إعطاء دالة جافاسكربت كوسيط، استدعها لقائمة الأسطر (المحددة) واستبدل " +"السطر بقيمة الإرجاع من معاودة الاتصال.
مثال (انظر أيضًا ltrim):
map 'function(line){return line.replace(/^\\s+/, \"\");}'
يمكنك كتابتها هكذا لتحصل على نفس النتيجة:
map 'line." +"replace(/^\\s+/, \"\")'" + +#: script/data/commands/utils.js:440 +#, kde-format +msgid "Duplicates the selected lines up." +msgstr "يكرّر الأسطر المحدّدة لأعلى." + +#: script/data/commands/utils.js:442 +#, kde-format +msgid "Duplicates the selected lines down." +msgstr "يكرّر الأسطر المحدّدة لأسفل." + +#: script/data/commands/utils.js:446 +#, kde-format +msgid "" +"Encode special chars in a single line selection, so the result text can be " +"used as URI." +msgstr "" +"رمّز الأحرف الخاصة في تحديد سطر واحد، حتى يمكن استخدام النص الناتج كعنوان URI." + +#: script/data/commands/utils.js:448 +#, kde-format +msgid "Reverse action of URI encode." +msgstr "اعكس إجراء ترميز URI." + +#: script/data/commands/utils.js:450 +#, kde-format +msgid "" +"Select text forward from current cursor position to the first occurrence of " +"the given argument after it (or the end of the current line by default)." +msgstr "" +"حدد النص للأمام من موضع المؤشر الحالي إلى أول ظهور للحجة المحددة بعده (أو " +"نهاية السطر الحالي بشكل مبدئي)." + +#: script/data/commands/utils.js:452 +#, kde-format +msgid "" +"Select text backward from current cursor position to the last occurrence of " +"the given argument before it (or the beginning of the current line by " +"default)." +msgstr "" +"حدد النص للخلف من موضع المؤشر الحالي إلى آخر ظهور للحجة المحددة قبله (أو " +"بداية السطر الحالي بشكل مبدئي)." + +#: script/data/indentation/ada.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "ada" +msgstr "أدا" + +#: script/data/indentation/cmake.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "CMake" +msgstr "سي ميك" + +#: script/data/indentation/cppstyle.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "C++/boost Style" +msgstr "نمط سي++/بوست" + +#: script/data/indentation/cstyle.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "C Style" +msgstr "نمط سي" + +#: script/data/indentation/haskell.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Haskell" +msgstr "هاسكل" + +#: script/data/indentation/julia.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Julia" +msgstr "جوليا" + +#: script/data/indentation/latex.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Latex" +msgstr "لاتخ" + +#: script/data/indentation/lilypond.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "LilyPond" +msgstr "ليلي بوند" + +#: script/data/indentation/lisp.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "LISP" +msgstr "لِسب" + +#: script/data/indentation/pascal.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Pascal" +msgstr "باسكال" + +#: script/data/indentation/python.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Python" +msgstr "بيثون" + +#: script/data/indentation/r.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "R" +msgstr "أر" + +#: script/data/indentation/replicode.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Replicode" +msgstr "ريبلكود" + +#: script/data/indentation/ruby.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Ruby" +msgstr "روبي" + +#: script/data/indentation/xml.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "XML Style" +msgstr "نمط XML" + +#: script/katecommandlinescript.cpp:37 +#, kde-format +msgid "Function '%1' not found in script: %2" +msgstr "لم توجد الدّالة '%1' في السّكربت: %2" + +#: script/katecommandlinescript.cpp:51 +#, kde-format +msgid "Error calling %1" +msgstr "خطأ في نداء %1" + +#: script/katecommandlinescript.cpp:68 +#, kde-format +msgid "Bad quoting in call: %1. Please escape single quotes with a backslash." +msgstr "" +"علامات اقتباس سيّئة في النّداء: %1. فضلًا هرّب علامات الاقتباس المفردة بشرطة " +"مائلة معكوسة." + +#: script/katecommandlinescript.cpp:76 utils/katecmds.cpp:217 +#: vimode/cmds.cpp:37 +#, kde-format +msgid "Could not access view" +msgstr "تعذّر النّفاذ إلى المنظور" + +#: script/katecommandlinescript.cpp:118 +#, kde-format +msgid "Error calling 'help %1'" +msgstr "خطأ في منادات 'help %1'" + +#: script/katecommandlinescript.cpp:123 +#, kde-format +msgid "No help specified for command '%1' in script %2" +msgstr "لا مساعدة مخصّصة للأمر '%1' في السّكربت %2" + +#: script/katescript.cpp:282 +#, kde-format +msgid "Error loading script %1: %2" +msgstr "خطأ في تحميل السّكربت %1: %2" + +#: script/katescriptmanager.cpp:319 +#, kde-format +msgid "Reload all JavaScript files (indenters, command line scripts, etc)." +msgstr "" +"إعادة تحميل كافة ملفات جافاسكربت (المسافات البادئة، البرامج النصية لسطر " +"الأوامر، إلخ)." + +#: script/katescriptview.cpp:214 +#, kde-format +msgid "Command not found: %1" +msgstr "لم يوجد الأمر: %1" + +#: search/katesearchbar.cpp:73 +#, kde-format +msgid "Add..." +msgstr "أضف..." + +#: search/katesearchbar.cpp:298 +#, kde-format +msgctxt "short translation" +msgid "1 replacement made" +msgid_plural "%1 replacements made" +msgstr[0] "لم يغير شيء" +msgstr[1] "استبدال واحد" +msgstr[2] "استبدالان" +msgstr[3] "%1 استبدالات" +msgstr[4] "%1 استبدالًا" +msgstr[5] "%1 استبدال" + +#: search/katesearchbar.cpp:300 +#, kde-format +msgctxt "short translation" +msgid "1 match found" +msgid_plural "%1 matches found" +msgstr[0] "لم توجد مطابقات" +msgstr[1] "وُجدت مطابقة واحدة" +msgstr[2] "وُجدت مطابقتان" +msgstr[3] "وُجدت %1 مطابقات" +msgstr[4] "وُجدت %1 مطابقة" +msgstr[5] "وُجدت %1 مطابقة" + +#: search/katesearchbar.cpp:374 +#, kde-format +msgid "Reached top, continued from bottom" +msgstr "وصلت أعلى المستند، تابعت من أدناه" + +#: search/katesearchbar.cpp:376 +#, kde-format +msgid "Reached bottom, continued from top" +msgstr "وصلت أدنى المستند، تابعت من أعلاه" + +#: search/katesearchbar.cpp:381 +#, kde-format +msgid "Not found" +msgstr "لم يوجد" + +#: search/katesearchbar.cpp:615 +#, kde-format +msgid "Bottom of file reached. Continue from top?" +msgstr "وصلت أسفل الملفّ. أأتابع من الأعلى؟" + +#: search/katesearchbar.cpp:615 +#, kde-format +msgid "Top of file reached. Continue from bottom?" +msgstr "وصلت أعلى الملفّ. أأتابع من الأسفل؟" + +#: search/katesearchbar.cpp:618 +#, kde-format +msgid "Continue search?" +msgstr "أأتابع البحث؟" + +#: search/katesearchbar.cpp:920 +#, kde-format +msgid "SearchHighLight" +msgstr "إبراز البحث" + +#: search/katesearchbar.cpp:1136 search/katesearchbar.cpp:1755 +#, kde-format +msgid "Clear history" +msgstr "امحُ التاريخ" + +#: search/katesearchbar.cpp:1166 +#, kde-format +msgid "Beginning of line" +msgstr "بداية السّطر" + +#: search/katesearchbar.cpp:1167 +#, kde-format +msgid "End of line" +msgstr "نهاية السّطر" + +#: search/katesearchbar.cpp:1169 +#, kde-format +msgid "Match any character excluding new line (by default)" +msgstr "مطابقة أي حرف باستثناء السطر الجديد (مبدئيًا)" + +#: search/katesearchbar.cpp:1170 +#, kde-format +msgid "One or more occurrences" +msgstr "حدوث واحد أو أكثر" + +#: search/katesearchbar.cpp:1171 +#, kde-format +msgid "Zero or more occurrences" +msgstr "لا حدوثات أو أكثر" + +#: search/katesearchbar.cpp:1172 +#, kde-format +msgid "Zero or one occurrences" +msgstr "لا حدوثات أو حدوث واحد" + +#: search/katesearchbar.cpp:1175 +#, kde-format +msgid " through occurrences" +msgstr "تكرار من إلى " + +#: search/katesearchbar.cpp:1181 +#, kde-format +msgid "Group, capturing" +msgstr "مجموعة لاقطة" + +#: search/katesearchbar.cpp:1182 +#, kde-format +msgid "Or" +msgstr "أو" + +#: search/katesearchbar.cpp:1183 +#, kde-format +msgid "Set of characters" +msgstr "مجموعة محارف" + +#: search/katesearchbar.cpp:1184 +#, kde-format +msgid "Negative set of characters" +msgstr "عكس مجموعة المحارف" + +#: search/katesearchbar.cpp:1188 +#, kde-format +msgid "Whole match reference" +msgstr "مرجع للمطابقة بالكامل" + +#: search/katesearchbar.cpp:1199 +#, kde-format +msgid "Reference" +msgstr "المرجع" + +#: search/katesearchbar.cpp:1206 +#, kde-format +msgid "Line break" +msgstr "كاسر أسطر" + +#: search/katesearchbar.cpp:1207 +#, kde-format +msgid "Tab" +msgstr "محرف جدولة" + +#: search/katesearchbar.cpp:1210 +#, kde-format +msgid "Word boundary" +msgstr "حدود الكلمة" + +#: search/katesearchbar.cpp:1211 +#, kde-format +msgid "Not word boundary" +msgstr "ليست حدود الكلمة" + +#: search/katesearchbar.cpp:1212 +#, kde-format +msgid "Digit" +msgstr "رقميّ" + +#: search/katesearchbar.cpp:1213 +#, kde-format +msgid "Non-digit" +msgstr "غير رقميّ" + +#: search/katesearchbar.cpp:1214 +#, kde-format +msgid "Whitespace (excluding line breaks)" +msgstr "مسافة (عدى كاسر الأسطر)" + +#: search/katesearchbar.cpp:1215 +#, kde-format +msgid "Non-whitespace" +msgstr "ليست-مسافات" + +#: search/katesearchbar.cpp:1216 +#, kde-format +msgid "Word character (alphanumerics plus '_')" +msgstr "محرف كلميّ (الأبجديّة مع '_')" + +#: search/katesearchbar.cpp:1217 +#, kde-format +msgid "Non-word character" +msgstr "محرف غير كلميّ" + +#: search/katesearchbar.cpp:1220 +#, kde-format +msgid "Octal character 000 to 377 (2^8-1)" +msgstr "محرف ثمانيّ 000 إلى 377 (‎2^8-1)" + +#: search/katesearchbar.cpp:1221 +#, kde-format +msgid "Hex character 0000 to FFFF (2^16-1)" +msgstr "محرف ستّ عشريّ 0000 إلى FFFF ‏(‎2^16-1)" + +#: search/katesearchbar.cpp:1222 +#, kde-format +msgid "Backslash" +msgstr "شرطة مائلة معكوسة" + +#: search/katesearchbar.cpp:1226 +#, kde-format +msgid "Group, non-capturing" +msgstr "مجموعة غير لاقطة" + +#: search/katesearchbar.cpp:1227 +#, kde-format +msgid "Positive Lookahead" +msgstr "طالع أمامًا" + +#: search/katesearchbar.cpp:1228 +#, kde-format +msgid "Negative lookahead" +msgstr "طالع خلفًا" + +#: search/katesearchbar.cpp:1232 +#, kde-format +msgid "Fixed-length positive lookbehind" +msgstr "نظرة خلفية إيجابية ذات طول ثابت" + +#: search/katesearchbar.cpp:1233 +#, kde-format +msgid "Fixed-length negative lookbehind" +msgstr "نظرة خلفية سلبية ذات طول ثابت" + +#: search/katesearchbar.cpp:1238 +#, kde-format +msgid "Begin lowercase conversion" +msgstr "بدء التّحويل إلى الحالة الصّغيرة" + +#: search/katesearchbar.cpp:1239 +#, kde-format +msgid "Begin uppercase conversion" +msgstr "بدء التّحويل إلى الحالة الكبيرة" + +#: search/katesearchbar.cpp:1240 +#, kde-format +msgid "End case conversion" +msgstr "إنهاء تحويل الحالة" + +#: search/katesearchbar.cpp:1241 +#, kde-format +msgid "Lowercase first character conversion" +msgstr "تحويل أوّل حرف إلى الحالة الصّغيرة" + +#: search/katesearchbar.cpp:1242 +#, kde-format +msgid "Uppercase first character conversion" +msgstr "تحويل أوّل حرف إلى الحالة الكبيرة" + +#: search/katesearchbar.cpp:1243 +#, kde-format +msgid "Replacement counter (for Replace All)" +msgstr "عدّاد الاستبدال (ل‍\"استبدل الكلّ\")" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: search/searchbarincremental.ui:50 +#, kde-format +msgid "F&ind:" +msgstr "أو&جد:" + +#. i18n: ectx: property (toolTip), widget (QComboBox, pattern) +#: search/searchbarincremental.ui:78 search/searchbarpower.ui:295 +#, kde-format +msgid "Text to search for" +msgstr "النّصّ للبحث عنه" + +#. i18n: ectx: property (toolTip), widget (QToolButton, findNext) +#. i18n: ectx: property (toolTip), widget (QToolButton, next) +#: search/searchbarincremental.ui:91 search/searchbarpower.ui:175 +#, kde-format +msgid "Jump to next match" +msgstr "انتقل إلى المطابقة التّالية" + +#. i18n: ectx: property (toolTip), widget (QToolButton, findPrev) +#. i18n: ectx: property (toolTip), widget (QToolButton, prev) +#: search/searchbarincremental.ui:101 search/searchbarpower.ui:185 +#, kde-format +msgid "Jump to previous match" +msgstr "انتقل إلى المطابقة السّابقة" + +#. i18n: ectx: property (toolTip), widget (QToolButton, matchCase) +#: search/searchbarincremental.ui:111 search/searchbarpower.ui:136 +#, kde-format +msgid "Match case sensitive" +msgstr "حسّاس لحالة الأحرف" + +#. i18n: ectx: property (toolTip), widget (QToolButton, mutate) +#: search/searchbarincremental.ui:146 +#, kde-format +msgid "Switch to power search and replace bar" +msgstr "حوّل إلى البحث المتقدّم وشريط الاستبدال" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: search/searchbarpower.ui:50 +#, kde-format +msgid "Fin&d:" +msgstr "ا&عثر:" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: search/searchbarpower.ui:63 +#, kde-format +msgid "Rep&lace:" +msgstr "ا&ستبدل ب‍:" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: search/searchbarpower.ui:76 +#, kde-format +msgid "&Mode:" +msgstr "الو&ضع:" + +#. i18n: ectx: property (toolTip), widget (QComboBox, searchMode) +#: search/searchbarpower.ui:103 +#, kde-format +msgid "Search mode" +msgstr "وضع البحث" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:113 +#, kde-format +msgid "Plain text" +msgstr "نصّ صرف" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:118 +#, kde-format +msgid "Whole words" +msgstr "كلمات كاملة" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:123 +#, kde-format +msgid "Escape sequences" +msgstr "سلاسل هروب" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:128 +#, kde-format +msgid "Regular expression" +msgstr "تعبير نمطيّ" + +#. i18n: ectx: property (toolTip), widget (QToolButton, selectionOnly) +#: search/searchbarpower.ui:149 +#, kde-format +msgid "Search in the selection only" +msgstr "ابحث في التّحديد فقط" + +#. i18n: ectx: property (toolTip), widget (QPushButton, replaceNext) +#: search/searchbarpower.ui:195 +#, kde-format +msgid "Replace next match" +msgstr "استبدل المطابقة التّالية" + +#. i18n: ectx: property (text), widget (QPushButton, replaceNext) +#. i18n: ectx: property (text), widget (QPushButton, m_replaceBtn) +#: search/searchbarpower.ui:198 spellcheck/spellcheckbar.ui:130 +#, kde-format +msgid "&Replace" +msgstr "اس&تبدل" + +#. i18n: ectx: property (toolTip), widget (QPushButton, replaceAll) +#: search/searchbarpower.ui:224 +#, kde-format +msgid "Replace all matches" +msgstr "استبدل كلّ المطابقات" + +#. i18n: ectx: property (text), widget (QPushButton, replaceAll) +#: search/searchbarpower.ui:227 +#, kde-format +msgid "Replace &All" +msgstr "ا&ستبدل الكلّ" + +#. i18n: ectx: property (text), widget (QPushButton, findAll) +#: search/searchbarpower.ui:234 +#, kde-format +msgid "&Find All" +msgstr "أو&جد الكلّ" + +#. i18n: ectx: property (text), widget (QPushButton, cancel) +#: search/searchbarpower.ui:257 +#, kde-format +msgid "Cancel" +msgstr "ألغِ" + +#. i18n: ectx: property (toolTip), widget (QToolButton, mutate) +#: search/searchbarpower.ui:268 +#, kde-format +msgid "Switch to incremental search bar" +msgstr "حوّل إلى شريط البحث التّزايديّ" + +#. i18n: ectx: property (toolTip), widget (QComboBox, replacement) +#: search/searchbarpower.ui:314 +#, kde-format +msgid "Text to replace with" +msgstr "النّصّ ليكون الاستبدال به" + +#: spellcheck/spellcheckbar.cpp:148 +#, kde-format +msgid "Spell check canceled." +msgstr "أُلغي تدقيق الهجاء." + +#: spellcheck/spellcheckbar.cpp:245 +#, kde-format +msgctxt "@info:progress" +msgid "Spell checking in progress…" +msgstr "تدقيق الهجاء جارٍ…" + +#: spellcheck/spellcheckbar.cpp:246 spellcheck/spellcheckbar.cpp:435 +#, kde-format +msgctxt "@title:window" +msgid "Check Spelling" +msgstr "تدقيق الهجاء" + +#: spellcheck/spellcheckbar.cpp:432 spellcheck/spellcheckbar.cpp:435 +#, kde-format +msgid "Spell check complete." +msgstr "اكتمل تدقيق الهجاء." + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel2) +#. i18n: ectx: property (whatsThis), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:30 spellcheck/spellcheckbar.ui:46 +#, kde-format +msgid "" +"

This word was considered to be an \"unknown word\" because it does " +"not match any entry in the dictionary currently in use. It may also be a " +"word in a foreign language.

\n" +"

If the word is not misspelled, you may add it to the dictionary by " +"clicking Add to Dictionary. If you do not want to add the unknown " +"word to the dictionary, but you want to leave it unchanged, click Ignore or Ignore All.

\n" +"

However, if the word is misspelled, you can try to find the correct " +"replacement in the list below. If you cannot find a replacement there, you " +"may type it in the text box below, and click Replace or Replace " +"All.

\n" +"
" +msgstr "" +"

اعتُبرت هذه الكلمة \"كلمة مجهولة\" لأنّها لا تطابق أيّة مدخلة في القاموس " +"المستخدم حاليًّا. قد تكون أيضًا كلمة في لغة أجنبيّة.

\n" +"

إن لم تكن الكلمة مهجّأة خطأ، يمكنك إضافتها إلى القاموس بنقر أضف إلى " +"القاموس. إن لم ترد إضافة الكلمة المجهولة إلى القاموس، بل تركها كما هي، " +"انقر تجاهل أو تجاهل الكلّ.

\n" +"

بأيّ حال، إن كانت الكلمة مهجّأة خطأ، يمكنك إيجاد التّهجئة الصّحيحة في القائمة " +"أدناه. إن لم تجدها فيمكنك كتابتها في مربّع النّصّ أدناه، ونقر استبدل أو " +"استبدل الكلّ.

\n" +"
" + +#. i18n: ectx: property (text), widget (QLabel, textLabel2) +#: spellcheck/spellcheckbar.ui:33 +#, kde-format +msgid "Unknown word:" +msgstr "كلمة مجهولة:" + +#. i18n: ectx: property (toolTip), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:40 +#, kde-format +msgid "Unknown word" +msgstr "كلمة مجهولة" + +#. i18n: ectx: property (text), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:49 +#, kde-format +msgid "misspelled" +msgstr "مهجّأة خطأ" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_addBtn) +#: spellcheck/spellcheckbar.ui:72 +#, kde-format +msgid "" +"\n" +"

The unknown word was detected and considered unknown because it is not " +"included in the dictionary.
\n" +"Click here if you consider the unknown word not to be misspelled, and you " +"want to avoid wrongly detecting it again in the future. If you want to let " +"it remain as is, but not add it to the dictionary, then click Ignore " +"or Ignore All instead.

\n" +"
" +msgstr "" +"\n" +"

اكتُشفت الكلمة المجهولة واعتُبرت مجهولة لأنّها غير موجودة في القاموس.
\n" +"انقر هنا إن كنت تعتقد أنّ الكلمة المجهولة ليست مهجّأة خطأ، وتريد تجنّب اكتشافها " +"خطأ في المستقبل. إن أردت تركها كما هي، ولكن دون إضافتها إلى القاموس، فانقر " +"تجاهل أو تجاهل الكلّ.

\n" +"
" + +#. i18n: ectx: property (text), widget (QPushButton, m_addBtn) +#: spellcheck/spellcheckbar.ui:75 +#, kde-format +msgid "<< Add to Dictionary" +msgstr "<< أضف إلى القاموس" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel4) +#: spellcheck/spellcheckbar.ui:89 +#, kde-format +msgid "" +"\n" +"

If the unknown word is misspelled, you should type the correction for " +"your misspelled word here or select it from the list below.

\n" +"

You can then click Replace if you want to correct only this " +"occurrence of the word or Replace All if you want to correct all " +"occurrences.

\n" +"
" +msgstr "" +"\n" +"

إن كانت الكلمة المجهولة مهجّأة خطأ، فعليك كتابة التّصحيح هنا أو اختياره من " +"القائمة أدناه.

\n" +"

يمكنك أيضًا نقر استبدل إن أردت تصحيح هذا الحدوث للكلمة فقط أو " +"استبدل الكلّ إن أردت تصحيح كلّ الحدوثات.

\n" +"
" + +#. i18n: ectx: property (text), widget (QLabel, textLabel4) +#: spellcheck/spellcheckbar.ui:92 +#, kde-format +msgid "Replace with:" +msgstr "استبدلها ب‍:" + +#. i18n: ectx: property (text), widget (QPushButton, m_suggestBtn) +#: spellcheck/spellcheckbar.ui:118 +#, kde-format +msgid "S&uggest" +msgstr "ا&قترح" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_replaceBtn) +#: spellcheck/spellcheckbar.ui:127 +#, kde-format +msgid "" +"\n" +"

Click here to replace this occurrence of the unknown text with the text " +"in the edit box above (to the left).

\n" +"
" +msgstr "" +"\n" +"

انقر هنا لاستبدال هذا الحدوث للكلمة المجهولة بالنّصّ في مربّع النّصّ أعلاه " +"(إلى اليمين).

\n" +"
" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_skipBtn) +#: spellcheck/spellcheckbar.ui:140 +#, kde-format +msgid "" +"\n" +"

Click here to let this occurrence of the unknown word remain as is.

\n" +"

This action is useful when the word is a name, an acronym, a foreign word " +"or any other unknown word that you want to use but not add to the dictionary." +"

\n" +"
" +msgstr "" +"\n" +"

انقر هنا لإبقاء هذا الحدوث من الكلمة المجهولة كما هو.

\n" +"

هذا الإجراء مفيد إن كانت الكلمة اسمًا، أو اختصارًا أو كلمة أجنبيّة أو أيّة " +"كلمة مجهولة تريد استخدامها دون إضافتها إلى القاموس.

\n" +"
" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel5) +#. i18n: ectx: property (whatsThis), widget (Sonnet::DictionaryComboBox, m_language) +#: spellcheck/spellcheckbar.ui:156 spellcheck/spellcheckbar.ui:174 +#, kde-format +msgid "" +"\n" +"

Select the language of the document you are proofing here.

\n" +"
" +msgstr "" +"\n" +"

اختر هنا لغة المستند الذي تدقّقه.

\n" +"
" + +#. i18n: ectx: property (text), widget (QLabel, textLabel5) +#: spellcheck/spellcheckbar.ui:159 +#, kde-format +msgid "&Language:" +msgstr "الل&غة:" + +#. i18n: ectx: property (toolTip), widget (Sonnet::DictionaryComboBox, m_language) +#: spellcheck/spellcheckbar.ui:169 +#, kde-format +msgid "Language Selection" +msgstr "اختيار اللغة" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_autoCorrect) +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_skipAllBtn) +#: spellcheck/spellcheckbar.ui:197 spellcheck/spellcheckbar.ui:222 +#, kde-format +msgid "" +"\n" +"

Click here to let all occurrences of the unknown word remain as they are." +"

\n" +"

This action is useful when the word is a name, an acronym, a foreign word " +"or any other unknown word that you want to use but not add to the dictionary." +"

\n" +"
" +msgstr "" +"\n" +"

انقر هنا لإبقاء كلّ حدوثات الكلمة المجهولة كما هي

\n" +"

هذا الإجراء مفيد إن كانت الكلمة اسمًا، أو اختصارًا أو كلمة أجنبيّة أو أيّة " +"كلمة مجهولة تريد استخدامها دون إضافتها إلى القاموس.

\n" +"
" + +#. i18n: ectx: property (text), widget (QPushButton, m_autoCorrect) +#: spellcheck/spellcheckbar.ui:200 +#, kde-format +msgid "Autocorrect" +msgstr "صحّح آليًّا" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_replaceAllBtn) +#: spellcheck/spellcheckbar.ui:209 +#, kde-format +msgid "" +"\n" +"

Click here to replace all occurrences of the unknown text with the text " +"in the edit box above (to the left).

\n" +"
" +msgstr "" +"\n" +"

انقر هنا لاستبدال كلّ حدوثات الكلمة المجهولة بالنّصّ في مربّع النّصّ أعلاه (إلى " +"اليمين).

\n" +"
" + +#. i18n: ectx: property (text), widget (QPushButton, m_replaceAllBtn) +#: spellcheck/spellcheckbar.ui:212 +#, kde-format +msgid "R&eplace All" +msgstr "ا&ستبدل الكلّ" + +#. i18n: ectx: property (text), widget (QPushButton, m_skipAllBtn) +#: spellcheck/spellcheckbar.ui:225 +#, kde-format +msgid "I&gnore All" +msgstr "تجا&هل الكلّ" + +#: spellcheck/spellcheckdialog.cpp:51 +#, kde-format +msgctxt "@action" +msgid "Spelling (from Cursor)…" +msgstr "الهجاء (من المؤشّر)…" + +#: spellcheck/spellcheckdialog.cpp:54 +#, kde-format +msgid "Check the document's spelling from the cursor and forward" +msgstr "دقّق هجاء المستند من المؤشّر فصاعدًا" + +#: spellcheck/spellingmenu.cpp:76 +#, kde-format +msgid "Ignore Word" +msgstr "تجاهل الكلمة" + +#: spellcheck/spellingmenu.cpp:79 +#, kde-format +msgid "Add to Dictionary" +msgstr "أضف إلى القاموس" + +#: spellcheck/spellingmenu.cpp:172 +#, kde-format +msgid "Spelling '%1'" +msgstr "هجاء '%1'" + +#: swapfile/kateswapdiffcreator.cpp:87 +#, kde-format +msgid "" +"The diff command could not be found. Please make sure that diff(1) is " +"installed and in your PATH." +msgstr "لم يعثر على أمر الفرق. فضلًا تحقّق بأنّ diff(1)‎ مثبّت وفي مسارك PATH." + +#: swapfile/kateswapdiffcreator.cpp:98 +#, kde-format +msgid "The diff command '%1' could not be started." +msgstr "تعذر بدء الأمر diff '%1'." + +#: swapfile/kateswapfile.cpp:642 +#, kde-format +msgid "The file was not closed properly." +msgstr "لم يُغلق الملفّ كما ينبغي." + +#: swapfile/kateswapfile.cpp:645 +#, kde-format +msgid "View Changes" +msgstr "اعرض التّغييرات" + +#: swapfile/kateswapfile.cpp:646 +#, kde-format +msgid "Recover Data" +msgstr "استعد البيانات" + +#: swapfile/kateswapfile.cpp:647 +#, kde-format +msgid "Discard" +msgstr "ارفض" + +#: syntax/katecolortreewidget.cpp:34 syntax/katecolortreewidget.cpp:61 +#, kde-format +msgid "Use default color from the color theme" +msgstr "استخدم الألوان المبدئية من سمة الألوان" + +#: syntax/katehighlightmenu.cpp:39 +#, kde-format +msgid "None" +msgstr "لا شيء" + +#: syntax/katestyletreewidget.cpp:135 +#, kde-format +msgctxt "@title:column Meaning of text in editor" +msgid "Context" +msgstr "السّياق" + +#: syntax/katestyletreewidget.cpp:136 +#, kde-format +msgctxt "@title:column Text style" +msgid "Normal" +msgstr "عاديّ" + +#: syntax/katestyletreewidget.cpp:136 +#, kde-format +msgctxt "@title:column Text style" +msgid "Selected" +msgstr "محدّد" + +#: syntax/katestyletreewidget.cpp:136 +#, kde-format +msgctxt "@title:column Text style" +msgid "Background" +msgstr "الخلفيّة" + +#: syntax/katestyletreewidget.cpp:137 +#, kde-format +msgctxt "@title:column Text style" +msgid "Background Selected" +msgstr "خلفيّة التّحديد" + +#: syntax/katestyletreewidget.cpp:139 +#, kde-format +msgid "Use Default Style" +msgstr "استخدم النّمط المبدئي" + +#: syntax/katestyletreewidget.cpp:238 +#, kde-format +msgid "&Bold" +msgstr "&ثخين" + +#: syntax/katestyletreewidget.cpp:243 +#, kde-format +msgid "&Italic" +msgstr "&مائل" + +#: syntax/katestyletreewidget.cpp:248 +#, kde-format +msgid "&Underline" +msgstr "&مسطّر" + +#: syntax/katestyletreewidget.cpp:253 +#, kde-format +msgid "S&trikeout" +msgstr "م&شطوب" + +#: syntax/katestyletreewidget.cpp:260 +#, kde-format +msgctxt "@action:inmenu" +msgid "Normal &Color…" +msgstr "ال&لون العاديّ…" + +#: syntax/katestyletreewidget.cpp:263 +#, kde-format +msgctxt "@action:inmenu" +msgid "&Selected Color…" +msgstr "لون التّ&حديد…" + +#: syntax/katestyletreewidget.cpp:266 +#, kde-format +msgctxt "@action:inmenu" +msgid "&Background Color…" +msgstr "لون ال&خلفيّة…" + +#: syntax/katestyletreewidget.cpp:269 +#, kde-format +msgctxt "@action:inmenu" +msgid "S&elected Background Color…" +msgstr "لون خلفيّة التّح&ديد…" + +#: syntax/katestyletreewidget.cpp:275 +#, kde-format +msgid "Unset Normal Color" +msgstr "أزل ضبط اللون المبدئي" + +#: syntax/katestyletreewidget.cpp:278 +#, kde-format +msgid "Unset Selected Color" +msgstr "أزل ضبط لون التّحديد" + +#: syntax/katestyletreewidget.cpp:284 +#, kde-format +msgid "Unset Background Color" +msgstr "أزل ضبط لون الخلفيّة" + +#: syntax/katestyletreewidget.cpp:289 +#, kde-format +msgid "Unset Selected Background Color" +msgstr "أزل ضبط لون خلفيّة التّحديد" + +#: syntax/katestyletreewidget.cpp:295 +#, kde-format +msgid "Use &Default Style" +msgstr "استخدم النّم&ط المبدئي" + +#: syntax/katestyletreewidget.cpp:408 +#, kde-format +msgctxt "No text or background color set" +msgid "None set" +msgstr "لم يُضبط" + +#: syntax/katestyletreewidget.cpp:642 +#, kde-format +msgid "" +"\"Use Default Style\" will be automatically unset when you change any style " +"properties." +msgstr "سيُزال ضبط \"استخدم النّمط المبدئي\" آليًّا عند تغيير أيّة خاصيّة في النّمط." + +#: syntax/katestyletreewidget.cpp:643 +#, kde-format +msgid "Kate Styles" +msgstr "أنماط كيت" + +#: syntax/katethemeconfig.cpp:47 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Normal" +msgstr "عاديّ" + +#: syntax/katethemeconfig.cpp:49 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Keyword" +msgstr "الكلمات المفتاحيّة" + +#: syntax/katethemeconfig.cpp:51 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Function" +msgstr "الدّوال" + +#: syntax/katethemeconfig.cpp:53 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Variable" +msgstr "المتغيّرات" + +#: syntax/katethemeconfig.cpp:55 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Control Flow" +msgstr "تدفق السيطرة" + +#: syntax/katethemeconfig.cpp:57 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Operator" +msgstr "المُعامل" + +#: syntax/katethemeconfig.cpp:59 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Built-in" +msgstr "المضمّنة" + +#: syntax/katethemeconfig.cpp:61 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Extension" +msgstr "الامتدادات" + +#: syntax/katethemeconfig.cpp:63 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Preprocessor" +msgstr "معالج مسبق" + +#: syntax/katethemeconfig.cpp:65 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Attribute" +msgstr "الصّفات" + +#: syntax/katethemeconfig.cpp:68 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Character" +msgstr "المحارف" + +#: syntax/katethemeconfig.cpp:70 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Special Character" +msgstr "المحارف الخاصّة" + +#: syntax/katethemeconfig.cpp:72 +#, kde-format +msgctxt "@item:intable Text context" +msgid "String" +msgstr "السّلاسل" + +#: syntax/katethemeconfig.cpp:74 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Verbatim String" +msgstr "سلسلة حرفية" + +#: syntax/katethemeconfig.cpp:76 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Special String" +msgstr "السّلاسل الخاصّة" + +#: syntax/katethemeconfig.cpp:78 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Imports, Modules, Includes" +msgstr "الاستيرادات، والوحدات والتّضمينات" + +#: syntax/katethemeconfig.cpp:81 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Data Type" +msgstr "أنواع البيانات" + +#: syntax/katethemeconfig.cpp:83 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Decimal/Value" +msgstr "عشري/قيمة" + +#: syntax/katethemeconfig.cpp:85 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Base-N Integer" +msgstr "عدد صحيح بقاعدة متغيرة" + +#: syntax/katethemeconfig.cpp:87 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Floating Point" +msgstr "نقطة عائمة" + +#: syntax/katethemeconfig.cpp:89 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Constant" +msgstr "الثّوابت" + +#: syntax/katethemeconfig.cpp:92 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Comment" +msgstr "التّعليقات" + +#: syntax/katethemeconfig.cpp:94 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Documentation" +msgstr "التّوثيق" + +#: syntax/katethemeconfig.cpp:96 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Annotation" +msgstr "شرح" + +#: syntax/katethemeconfig.cpp:98 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Comment Variable" +msgstr "متغير التعليق" + +#: syntax/katethemeconfig.cpp:101 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Region Marker" +msgstr "مؤشر المنطقة" + +#: syntax/katethemeconfig.cpp:103 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Information" +msgstr "المعلومات" + +#: syntax/katethemeconfig.cpp:105 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Warning" +msgstr "التّحذيرات" + +#: syntax/katethemeconfig.cpp:107 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Alert" +msgstr "الإنذارات" + +#: syntax/katethemeconfig.cpp:110 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Others" +msgstr "أخرى" + +#: syntax/katethemeconfig.cpp:113 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Error" +msgstr "الأخطاء" + +#: syntax/katethemeconfig.cpp:162 +#, kde-format +msgid "Use Default Colors" +msgstr "استخدم الألوان المبدئية" + +#: syntax/katethemeconfig.cpp:182 +#, kde-format +msgid "Editor Background Colors" +msgstr "ألوان خلفيّة المحرّر" + +#: syntax/katethemeconfig.cpp:184 +#, kde-format +msgid "Text Area" +msgstr "منطقة النّصّ" + +#: syntax/katethemeconfig.cpp:186 +#, kde-format +msgid "

Sets the background color of the editing area.

" +msgstr "

يضبط لون خلفيّة منطقة التّحرير.

" + +#: syntax/katethemeconfig.cpp:191 +#, kde-format +msgid "Selected Text" +msgstr "النّص المحدّد" + +#: syntax/katethemeconfig.cpp:194 +#, kde-format +msgid "" +"

Sets the background color of the selection.

To set the text color " +"for selected text, use the "Configure Highlighting" dialog." +"

" +msgstr "" +"

يضبط لون خلفيّة التّحديد.

لضبط لون النّصّ المحدّد، استخدم حواريّ "" +"اضبط الإبراز".

" + +#: syntax/katethemeconfig.cpp:200 +#, kde-format +msgid "Current Line" +msgstr "السّطر الحاليّ" + +#: syntax/katethemeconfig.cpp:202 +#, kde-format +msgid "" +"

Sets the background color of the currently active line, which means the " +"line where your cursor is positioned.

" +msgstr "" +"

يضبط لون خلفيّة السّطر النّشط حاليًّا، أي المكان الذي موجود فيه المؤشّر.

" + +#: syntax/katethemeconfig.cpp:207 +#, kde-format +msgid "Search Highlight" +msgstr "إبراز البحث" + +#: syntax/katethemeconfig.cpp:209 +#, kde-format +msgid "

Sets the background color of search results.

" +msgstr "

يضبط لون خلفيّة نتائج البحث.

" + +#: syntax/katethemeconfig.cpp:214 +#, kde-format +msgid "Replace Highlight" +msgstr "إبراز الاستبدال" + +#: syntax/katethemeconfig.cpp:216 +#, kde-format +msgid "

Sets the background color of replaced text.

" +msgstr "

يضبط لون خلفيّة النّص المُستبدل.

" + +#: syntax/katethemeconfig.cpp:223 +#, kde-format +msgid "Icon Border" +msgstr "حدود الأيقونات" + +#: syntax/katethemeconfig.cpp:226 +#, kde-format +msgid "Background Area" +msgstr "منطقة الخلفيّة" + +#: syntax/katethemeconfig.cpp:228 +#, kde-format +msgid "

Sets the background color of the icon border.

" +msgstr "

يضبط لون خلفيّة حدّ الأيقونات.

" + +#: syntax/katethemeconfig.cpp:233 view/screenshotdialog.cpp:265 +#, kde-format +msgid "Line Numbers" +msgstr "أرقام الأسطر" + +#: syntax/katethemeconfig.cpp:235 +#, kde-format +msgid "

This color will be used to draw the line numbers (if enabled).

" +msgstr "

سيُستخدم هذا اللون في رسم أرقام الأسطر (إن فُعّلت).

" + +#: syntax/katethemeconfig.cpp:240 +#, kde-format +msgid "Current Line Number" +msgstr "رقم السّطر الحاليّ" + +#: syntax/katethemeconfig.cpp:242 +#, kde-format +msgid "" +"

This color will be used to draw the number of the current line (if " +"enabled).

" +msgstr "

سيُستخدم هذا اللون في رسم رقم السّطر الحاليّ (إن فُعّل).

" + +#: syntax/katethemeconfig.cpp:247 +#, kde-format +msgid "Separator" +msgstr "الفاصل" + +#: syntax/katethemeconfig.cpp:249 +#, kde-format +msgid "" +"

This color will be used to draw the line between line numbers and the " +"icon borders, if both are enabled.

" +msgstr "" +"

سيُستخدم هذا اللون في رسم الخطّ الفاصل بين أرقام الأسطر وحدود الأيقونات، إن " +"كانا ممكّنين.

" + +#: syntax/katethemeconfig.cpp:254 +#, kde-format +msgid "Word Wrap Marker" +msgstr "علامة لفّ الكلمات" + +#: syntax/katethemeconfig.cpp:257 +#, kde-format +msgid "" +"

Sets the color of Word Wrap-related markers:

Static Word Wrap
A vertical line which shows the column where text is going to be " +"wrapped
Dynamic Word Wrap
An arrow shown to the left of " +"visually-wrapped lines
" +msgstr "" +"

يضبط لون علامات لفّ الكلمات:

لفّ الكلمات الثابت
خطّ عمودي " +"يعرض العمود الذي سيُلفّ عنده النّصّ
لفّ الكلمات حركيًّا
سهم يُعرض " +"يسار الأسهم الملفوفة
" + +#: syntax/katethemeconfig.cpp:264 +#, kde-format +msgid "Code Folding" +msgstr "طيّ الكود" + +#: syntax/katethemeconfig.cpp:266 +#, kde-format +msgid "

Sets the color of the code folding bar.

" +msgstr "

يضبط لون شريط طيّ الكود.

" + +#: syntax/katethemeconfig.cpp:271 +#, kde-format +msgid "Modified Lines" +msgstr "الأسطر المعدّلة" + +#: syntax/katethemeconfig.cpp:273 +#, kde-format +msgid "" +"

Sets the color of the line modification marker for modified lines.

" +msgstr "

يضبط لون علامة الأسطر المعدّلة.

" + +#: syntax/katethemeconfig.cpp:278 +#, kde-format +msgid "Saved Lines" +msgstr "الأسطر المحفوظة" + +#: syntax/katethemeconfig.cpp:280 +#, kde-format +msgid "

Sets the color of the line modification marker for saved lines.

" +msgstr "

يضبط لون علامة الأسطر المحفوظة.

" + +#: syntax/katethemeconfig.cpp:287 +#, kde-format +msgid "Text Decorations" +msgstr "تزيينات النّصّ" + +#: syntax/katethemeconfig.cpp:290 +#, kde-format +msgid "Spelling Mistake Line" +msgstr "سطر الخطأ الهجائيّ" + +#: syntax/katethemeconfig.cpp:292 +#, kde-format +msgid "" +"

Sets the color of the line that is used to indicate spelling mistakes.

" +msgstr "

يضبط لون الخطّ المُستخدم في الإشارة إلى الأخطاء الهجائيّة.

" + +#: syntax/katethemeconfig.cpp:297 +#, kde-format +msgid "Tab and Space Markers" +msgstr "علامات الجدولات والمسافات" + +#: syntax/katethemeconfig.cpp:299 +#, kde-format +msgid "

Sets the color of the tabulator marks.

" +msgstr "

يضبط لون علامات الجدولة.

" + +#: syntax/katethemeconfig.cpp:304 +#, kde-format +msgid "Indentation Line" +msgstr "سطر الإزاحة" + +#: syntax/katethemeconfig.cpp:306 +#, kde-format +msgid "

Sets the color of the vertical indentation lines.

" +msgstr "

يضبط لون أسطر الإزاحة العمودية.

" + +#: syntax/katethemeconfig.cpp:311 +#, kde-format +msgid "Bracket Highlight" +msgstr "إبراز الأقواس" + +#: syntax/katethemeconfig.cpp:314 +#, kde-format +msgid "" +"

Sets the bracket matching color. This means, if you place the cursor e.g. " +"at a (, the matching ) will be highlighted with this color.

" +msgstr "" +"

يضبط لون القوس المطابق. هذا يعني أنّه إن وضعت المؤشّر قرب (، فسيُبرز " +") المطابق بهذا اللون.

" + +#: syntax/katethemeconfig.cpp:322 +#, kde-format +msgid "Marker Colors" +msgstr "ألوان العلامات" + +#: syntax/katethemeconfig.cpp:324 view/kateviewhelpers.cpp:1536 +#, kde-format +msgid "Bookmark" +msgstr "علامة" + +#: syntax/katethemeconfig.cpp:325 +#, kde-format +msgid "Active Breakpoint" +msgstr "نقطة مقاطعة نشطة" + +#: syntax/katethemeconfig.cpp:326 +#, kde-format +msgid "Reached Breakpoint" +msgstr "وصلتُ إلى نقطة المقاطعة" + +#: syntax/katethemeconfig.cpp:327 +#, kde-format +msgid "Disabled Breakpoint" +msgstr "نقطة مقاطعة معطّلة" + +#: syntax/katethemeconfig.cpp:328 +#, kde-format +msgid "Execution" +msgstr "تنفيذ" + +#: syntax/katethemeconfig.cpp:329 +#, kde-format +msgid "Warning" +msgstr "تحذير" + +#: syntax/katethemeconfig.cpp:330 +#, kde-format +msgid "Error" +msgstr "خطأ" + +#: syntax/katethemeconfig.cpp:332 +#, kde-format +msgid "" +"

Sets the background color of mark type.

Note: The marker " +"color is displayed lightly because of transparency.

" +msgstr "" +"

يضبط لون خلفيّة نوع العلامة.

لاحظ: لون العلامة معروض بخفّة " +"بسبب الشّفافيّة.

" + +#: syntax/katethemeconfig.cpp:344 +#, kde-format +msgid "Text Templates & Snippets" +msgstr "قوالب النّصوص والقصاصات" + +#: syntax/katethemeconfig.cpp:349 +#, kde-format +msgid "Background" +msgstr "الخلفيّة" + +#: syntax/katethemeconfig.cpp:355 +#, kde-format +msgid "Editable Placeholder" +msgstr "حافظ مكان يمكن تحريره" + +#: syntax/katethemeconfig.cpp:361 +#, kde-format +msgid "Focused Editable Placeholder" +msgstr "حافظ مكان يمكن تحرير مُركّز عليه" + +#: syntax/katethemeconfig.cpp:367 +#, kde-format +msgid "Not Editable Placeholder" +msgstr "حافظ مكان لا يمكن تحريره" + +#: syntax/katethemeconfig.cpp:501 +#, kde-format +msgid "" +"

This list displays the default styles for the current color theme and " +"offers the means to edit them. The style name reflects the current style " +"settings.

To edit the colors, click the colored squares, or select the " +"color to edit from the popup menu.

You can unset the Background and " +"Selected Background colors from the popup menu when appropriate.

" +msgstr "" +"

تعرض هذه القائمة الأنماط المبدئية لسمة الألوان الحاليّة وتوفّر طرقًا " +"لتحريرها. اسم النّمط يعكس إعدادات النّمط الحاليّ.

لتحرير الألوان، انقر " +"المربّعات الملوّنة، أو اختر لونًا لتحريره من القائمة المنبثقة.

يمكنك " +"إزالة ضبط الخلفيّة وألوان الخلفيّة المحدّدة من القائمة المنبثقة عند

" + +#: syntax/katethemeconfig.cpp:568 +#, kde-format +msgctxt "@item:intable" +msgid "Normal Text & Source Code" +msgstr "النّصوص العاديّة والأكواد المصدريّة" + +#: syntax/katethemeconfig.cpp:575 +#, kde-format +msgctxt "@item:intable" +msgid "Numbers, Types & Constants" +msgstr "الأرقام والأنواع والثّوابت" + +#: syntax/katethemeconfig.cpp:582 +#, kde-format +msgctxt "@item:intable" +msgid "Strings & Characters" +msgstr "السّلاسل والمحارف" + +#: syntax/katethemeconfig.cpp:589 +#, kde-format +msgctxt "@item:intable" +msgid "Comments & Documentation" +msgstr "التّعليقات والتّوثيق" + +#: syntax/katethemeconfig.cpp:596 +#, kde-format +msgctxt "@item:intable" +msgid "Miscellaneous" +msgstr "متنوّع" + +#: syntax/katethemeconfig.cpp:704 +#, kde-format +msgid "H&ighlight:" +msgstr "الإ&براز:" + +#: syntax/katethemeconfig.cpp:746 +#, kde-format +msgid "" +"

This list displays the contexts of the current syntax highlight mode and " +"offers the means to edit them. The context name reflects the current style " +"settings.

To edit using the keyboard, press <SPACE> and choose a property from the popup menu.

To edit the colors, " +"click the colored squares, or select the color to edit from the popup menu.

You can unset the Background and Selected Background colors from the " +"context menu when appropriate.

" +msgstr "" +"

تعرض هذه القائمة سياقات وضع تمييز بناء الجملة الحالي وتقدم الوسائل " +"لتحريرها. يعكس اسم السياق إعدادات الأسلوب الحالية.

للتحرير باستخدام " +"لوحة المفاتيح، اضغط على <SPACE> واختر خاصية من " +"القائمة المنبثقة.

لتحرير الألوان، انقر فوق المربعات الملونة، أو حدد " +"اللون لتحريره من القائمة المنبثقة.

يمكنك إلغاء تعيين ألوان الخلفية " +"والخلفية المحددة من قائمة السياق عند الاقتضاء.

" + +#: syntax/katethemeconfig.cpp:1027 +#, kde-format +msgid "Default Theme" +msgstr "السّمة المبدئيّة" + +#: syntax/katethemeconfig.cpp:1028 +#, kde-format +msgid "Theme Editor" +msgstr "محرّر سمات" + +#: syntax/katethemeconfig.cpp:1046 +#, kde-format +msgid "Select theme:" +msgstr "حدّد سمة:" + +#: syntax/katethemeconfig.cpp:1119 +#, kde-format +msgid "&Theme:" +msgstr "ال&سّمة:" + +#: syntax/katethemeconfig.cpp:1128 +#, kde-format +msgctxt "@action:button" +msgid "&Copy…" +msgstr "ا&نسخ…" + +#: syntax/katethemeconfig.cpp:1136 +#, kde-format +msgctxt "@action:button" +msgid "Export…" +msgstr "صدر…" + +#: syntax/katethemeconfig.cpp:1140 +#, kde-format +msgctxt "@action:button" +msgid "Import…" +msgstr "استورد…" + +#: syntax/katethemeconfig.cpp:1147 +#, kde-format +msgid "Bundled read-only theme. To modify the theme, please copy it." +msgstr "سمة مُجمَّعة للقراءة فقط. لتعديل السمة؛ يُرجى نسخها." + +#: syntax/katethemeconfig.cpp:1160 +#, kde-format +msgid "Colors" +msgstr "الألوان" + +#: syntax/katethemeconfig.cpp:1164 +#, kde-format +msgid "Default Text Styles" +msgstr "أنماط النّصّ المبدئية" + +#: syntax/katethemeconfig.cpp:1168 +#, kde-format +msgid "Highlighting Text Styles" +msgstr "أنماط نصوص الإبراز" + +#: syntax/katethemeconfig.cpp:1180 +#, kde-format +msgid "Exporting color theme: %1" +msgstr "تصدير سمة الألوان: %1" + +#: syntax/katethemeconfig.cpp:1182 syntax/katethemeconfig.cpp:1203 +#, kde-format +msgid "Color theme" +msgstr "سمة الألوان" + +#: syntax/katethemeconfig.cpp:1203 +#, kde-format +msgid "Importing Color Theme" +msgstr "استيراد سمة ألوان" + +#: syntax/katethemeconfig.cpp:1217 +#, kde-format +msgid "" +"Importing will overwrite the existing theme file \"%1\". This can not be " +"undone." +msgstr "" +"سيؤدي الاستيراد إلى استبدال ملف السمة الحالي \"%1\". لا يمكن التراجع عن هذا." + +#: syntax/katethemeconfig.cpp:1219 +#, kde-format +msgid "Import Nevertheless" +msgstr "استورد على أية حال" + +#: syntax/katethemeconfig.cpp:1308 +#, kde-format +msgid "Follow System Color Scheme" +msgstr "استخدم مخطّط ألوان النظام" + +#: syntax/katethemeconfig.cpp:1375 +#, kde-format +msgid "Do you really want to delete the theme \"%1\"? This can not be undone." +msgstr "هل تريد حقًا حذف السمة \"%1\"؟ لا يمكن التراجع عن هذا." + +#: syntax/katethemeconfig.cpp:1377 +#, kde-format +msgid "Delete Nevertheless" +msgstr "احذف على أية حال" + +#: syntax/katethemeconfig.cpp:1419 +#, kde-format +msgid "Copy theme" +msgstr "انسخ سمة" + +#: syntax/katethemeconfig.cpp:1420 +#, kde-format +msgid "Name for copy of color theme \"%1\":" +msgstr "اسم نسخة السمة الملونة \"%1\":" + +#: syntax/katethemeconfig.cpp:1432 +#, kde-format +msgid "" +"

The theme \"%1\" already exists.

Please choose a different theme " +"name.

" +msgstr "

السمة %1 موجودة فعلًا.

فضلًا اختر اسمًا آخر للسمة.

" + +#: syntax/katethemeconfig.cpp:1433 +#, kde-format +msgid "Copy Theme" +msgstr "انسخ سمة" + +#: syntax/katethemeconfig.cpp:1486 syntax/katethemeconfig.cpp:1491 +#, kde-format +msgid "Color Themes" +msgstr "الألوان السمات" + +#: utils/kateautoindent.cpp:88 +#, kde-format +msgctxt "Autoindent mode" +msgid "None" +msgstr "لا شيء" + +#: utils/kateautoindent.cpp:92 +#, kde-format +msgctxt "Autoindent mode" +msgid "Normal" +msgstr "عاديّ" + +#: utils/katebookmarks.cpp:49 +#, kde-format +msgid "Toggle &Bookmark" +msgstr "أضف/أزل &علامة" + +#: utils/katebookmarks.cpp:53 +#, kde-format +msgid "If a line has no bookmark then add one, otherwise remove it." +msgstr "إن لم يكن في السّطر علامة فأضف واحدة، وإلّا أزلها." + +#: utils/katebookmarks.cpp:56 +#, kde-format +msgid "Clear &All Bookmarks" +msgstr "امحُ &كلّ العلامات" + +#: utils/katebookmarks.cpp:59 +#, kde-format +msgid "Remove all bookmarks of the current document." +msgstr "أزل كلّ العلامات من المستند الحاليّ." + +#: utils/katebookmarks.cpp:62 utils/katebookmarks.cpp:219 +#, kde-format +msgid "Next Bookmark" +msgstr "العلامة التّالية" + +#: utils/katebookmarks.cpp:66 +#, kde-format +msgid "Go to the next bookmark." +msgstr "انتقل إلى العلامة التّالية." + +#: utils/katebookmarks.cpp:69 utils/katebookmarks.cpp:220 +#, kde-format +msgid "Previous Bookmark" +msgstr "العلامة السّابقة" + +#: utils/katebookmarks.cpp:73 +#, kde-format +msgid "Go to the previous bookmark." +msgstr "انتقل إلى العلامة السّابقة." + +#: utils/katebookmarks.cpp:76 +#, kde-format +msgid "&Bookmarks" +msgstr "ال&علامات" + +#: utils/katebookmarks.cpp:192 +#, kde-format +msgid "&Next: %1 - \"%2\"" +msgstr "ال&تّالية: %1 - \"%2\"" + +#: utils/katebookmarks.cpp:198 +#, kde-format +msgid "&Previous: %1 - \"%2\"" +msgstr "ال&سّابقة: %1 - \"%2\"" + +#: utils/katecmds.cpp:53 +#, kde-format +msgid "

indent

Indents the selected lines or the current line

" +msgstr "

indent

يزيح الأسطر المحدّدة أو السّطر الحاليّ

" + +#: utils/katecmds.cpp:58 +#, kde-format +msgid "

unindent

Unindents the selected lines or current line.

" +msgstr "

unindent

يزيل إزاحة الأسطر المحدّدة أو السّطر الحاليّ.

" + +#: utils/katecmds.cpp:63 +#, kde-format +msgid "" +"

cleanindent

Cleans up the indentation of the selected lines or " +"current line according to the indentation settings in the document.

" +msgstr "" +"

cleanindent

ينظّف إزاحة الأسطر المحدّدة أو السّطر الحاليّ حسب إعدادات " +"الإزاحة للمستند.

" + +#: utils/katecmds.cpp:68 +#, kde-format +msgid "" +"

comment

Inserts comment markers to make the selection or selected " +"lines or current line a comment according to the text format as defined by " +"the syntax highlight definition for the document.

" +msgstr "" +"

comment

يدرج علامات تعليق لجعل التّحديد أو الأسطر/السّطر المحدّد " +"تعليقًا حسب نسق النّصّ المحدّد في تعريف إبراز صياغة المستند.

" + +#: utils/katecmds.cpp:74 +#, kde-format +msgid "" +"

uncomment

Removes comment markers from the selection or selected " +"lines or current line according to the text format as defined by the syntax " +"highlight definition for the document.

" +msgstr "" +"

uncomment

يزيل علامات التّعليق من التّحديد أو الأسطر/السّطر المحدّد حسب " +"نسق النّصّ المحدّد في تعريف إبراز صياغة المستند.

" + +#: utils/katecmds.cpp:80 +#, kde-format +msgid "" +"

goto line number

This command navigates to the specified " +"line number.

" +msgstr "" +"

goto رقم السّطر

ينقلك هذا الأمر إلى رقم السّطر المحدّد.

" + +#: utils/katecmds.cpp:85 +#, kde-format +msgid "" +"

set-indent-pasted-text enable

If enabled, indentation of " +"text pasted from the clipboard is adjusted using the current indenter.

Possible true values: 1 on true
possible false values: 0 off false" +msgstr "" +"

set-indent-pasted-text enable

إن فُعّل، فستُعدل الإزاحة للنص " +"الذي الملصق من الحافظة باستخدام الإزاحة الحالية..

قيم \"صحيح\" " +"الممكنة: 1 on true
قيم \"خطأ\" الممكنة: 0 off false

" + +#: utils/katecmds.cpp:91 +#, kde-format +msgid "Deletes the current line." +msgstr "يحذف السّطر الحاليّ." + +#: utils/katecmds.cpp:95 +#, kde-format +msgid "" +"

set-tab-width width

Sets the tab width to the number " +"width

" +msgstr "" +"

set-tab-width العرض

يضبط عرض الجدولة حسب معامل العرض" + +#: utils/katecmds.cpp:100 +#, kde-format +msgid "" +"

set-replace-tab enable

If enabled, tabs are replaced with " +"spaces as you type.

Possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" +"

set-replace-tab enable

إن فُعّل، تُستبدل الجدولات بمسافات وأنت " +"تكتب.

قيم \"صحيح\" الممكنة: 1 on true
قيم \"خطأ\" الممكنة: 0 off " +"false

" + +#: utils/katecmds.cpp:107 +#, kde-format +msgid "" +"

set-show-tabs enable

If enabled, TAB characters and trailing " +"whitespace will be visualized by a small dot.

Possible true values: 1 " +"on true
possible false values: 0 off false

" +msgstr "" +"

set-show-tabs enable

إذا مُكن، سيعرض أحرف TAB والمسافة " +"البيضاء اللاحقة بواسطة نقطة صغيرة.

القيم الصحيحة المحتملة: 1 عند " +"القيمة true
القيم الخاطئة المحتملة: 0 عند القيمة false

" + +#: utils/katecmds.cpp:114 +#, kde-format +msgid "" +"

set-remove-trailing-spaces mode

Removes the trailing spaces " +"in the document depending on the mode.

Possible values:" +"

  • none: never remove trailing spaces.
  • modified: " +"remove trailing spaces only of modified lines.
  • all: remove " +"trailing spaces in the entire document.

" +msgstr "" +"

set-remove-trailing-spaces mode

يزيل المسافات الزائدة في " +"المستند وفقًا للوضع.

القيم الممكنة:

  • none: لا تزيل أي " +"المسافات الزائدة.
  • modified: أزل المسافات الزائدة فقط من " +"الأسطر المعدلة.
  • all: أزل المسافات الزائدة في المستند بالكامل." +"

" + +#: utils/katecmds.cpp:125 +#, kde-format +msgid "" +"

set-indent-width width

Sets the indentation width to the " +"number width. Used only if you are indenting with spaces.

" +msgstr "" +"

set-indent-width العرض

يضبط عرض الإزاحة حسب معامل العرض. يُستخدم فقط إن كانت الإزاحة بمسافات.

" + +#: utils/katecmds.cpp:130 +#, kde-format +msgid "" +"

set-indent-mode mode

The mode parameter is a value as seen " +"in the Tools - Indentation menu

" +msgstr "" +"

set-indent-mode الوضع

يضبط وضع الإزاحة. معامل \"الوضع\" هو " +"النّصّ الإنجليزيّ للعناصر في قائمة أدوات ← الإزاحة

" + +#: utils/katecmds.cpp:135 +#, kde-format +msgid "" +"

set-auto-indent enable

Enable or disable autoindentation.

possible true values: 1 on true
possible false values: 0 off false" +msgstr "" +"

set-auto-indent enable

تمكين أو تعطيل الإزاحة الآليّة.

القيم الصحيحة المحتملة: 1 on true
القيم الخاطئة المحتملة: 0 off " +"false

" + +#: utils/katecmds.cpp:142 +#, kde-format +msgid "" +"

set-line-numbers enable

Sets the visibility of the line " +"numbers pane.

possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" +"

set-line-numbers enable

يضبط ظهور لوحة أرقام الأسطر.

" +"قيم \"صحيح\" الممكنة: 1 on true
قيم \"خطأ\" الممكنة: 0 off false

" + +#: utils/katecmds.cpp:149 +#, kde-format +msgid "" +"

set-folding-markers enable

Sets the visibility of the " +"folding markers pane.

possible true values: 1 on true
possible " +"false values: 0 off false

" +msgstr "" +"

set-folding-markers enable

يضبط ظهور لوحة علامات الطّيّ.

قيم \"صحيح\" الممكنة: 1 on true
قيم \"خطأ\" الممكنة: 0 off false" + +#: utils/katecmds.cpp:156 +#, kde-format +msgid "" +"

set-icon-border enable

Sets the visibility of the icon " +"border.

possible true values: 1 on true
possible false values: 0 " +"off false

" +msgstr "" +"

set-icon-border enable

يضبط ظهور حدّ الأيقونات.

قيم " +"\"صحيح\" الممكنة: 1 on true
قيم \"خطأ\" الممكنة: 0 off false

" + +#: utils/katecmds.cpp:163 +#, kde-format +msgid "" +"

set-word-wrap enable

Enables dynamic word wrap according to " +"enable

possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" +"

set-word-wrap enable

يمكّن لفّ الكلمات حركيًّا حسب enable

قيم \"صحيح\" الممكنة: 1 on true
قيم \"خطأ\" الممكنة: 0 off " +"false

" + +#: utils/katecmds.cpp:170 +#, kde-format +msgid "" +"

set-word-wrap-column width

Sets the line width for hard " +"wrapping to width. This is used if you are having your text wrapped " +"automatically.

" +msgstr "" +"

set-word-wrap-column width

يضبط عرض السطر للف الثابت على " +"width. يُستخدم هذا إذا كنت تريد لف النص آليًّا.

" + +#: utils/katecmds.cpp:175 +#, kde-format +msgid "" +"

set-replace-tabs-save enable

When enabled, tabs will be " +"replaced with whitespace whenever the document is saved.

possible " +"true values: 1 on true
possible false values: 0 off false

" +msgstr "" +"

set-replace-tabs-save enable

عند التمكين، ستستبدل بعلامات " +"الجدولة مسافات بيضاء كلما حُفظ المستند.

القيم الصحيحة المحتملة: 1 on " +"true
القيم الخاطئة المحتملة: 0 off false

" + +#: utils/katecmds.cpp:182 +#, kde-format +msgid "" +"

set-highlight highlight

Sets the syntax highlighting system " +"for the document. The argument must be a valid highlight name, as seen in " +"the Tools → Highlighting menu. This command provides an autocompletion list " +"for its argument.

" +msgstr "" +"

set-highlight highlight

يحدد نظام تمييز بناء الجملة " +"للمستند. يجب أن يكون الوسيط اسم تمييز صالحًا، كما هو موضح في قائمة أدوات ⇽ " +"التمييز. يوفر هذا الأمر قائمة إكمال آليّة لحجته.

" + +#: utils/katecmds.cpp:188 +#, kde-format +msgid "

set-mode mode

Sets the mode as seen in Tools - Mode

" +msgstr "" +"

set-mode mode

يضبط الوضع حسب النّصّ الإنجليزيّ للعناصر في أدوات " +"← الوضع

" + +#: utils/katecmds.cpp:193 +#, kde-format +msgid "" +"

set-show-indent enable

If enabled, indentation will be " +"visualized by a vertical dotted line.

possible true values: 1 on " +"true
possible false values: 0 off false

" +msgstr "" +"

set-show-indent enable

إذا مُكن هذا الخيار، فستعرض الإزاحة " +"بواسطة خط منقط عمودي.

القيمة الصحيحة المحتملة: 1 on true
القيم " +"الخاطئة المحتملة: 0 off false

" + +#: utils/katecmds.cpp:199 +#, kde-format +msgid "

Open the Print dialog to print the current document.

" +msgstr "

افتح حواريّ الطّباعة لطباعة المستند الحاليّ.

" + +#: utils/katecmds.cpp:314 utils/katecmds.cpp:341 +#, kde-format +msgid "Missing argument. Usage: %1 " +msgstr "المعامل ناقص. الاستخدام: %1 <القيمة>" + +#: utils/katecmds.cpp:327 +#, kde-format +msgid "No such highlighting '%1'" +msgstr "لا إبراز كهذا '%1'" + +#: utils/katecmds.cpp:333 +#, kde-format +msgid "No such mode '%1'" +msgstr "لا وضع كهذا '%1'" + +#: utils/katecmds.cpp:346 +#, kde-format +msgid "Failed to convert argument '%1' to integer." +msgstr "فشل تحويل المعامل '%1' إلى عدد صحيح." + +#: utils/katecmds.cpp:350 utils/katecmds.cpp:355 +#, kde-format +msgid "Width must be at least 1." +msgstr "على العرض أن يكون 1 على الأقلّ." + +#: utils/katecmds.cpp:360 +#, kde-format +msgid "Column must be at least 1." +msgstr "على العمود أن يكون 1 على الأقلّ." + +#: utils/katecmds.cpp:390 +#, kde-format +msgid "Usage: %1 on|off|1|0|true|false" +msgstr "الاستخدام: ‎%1 on|off|1|0|true|false" + +#: utils/katecmds.cpp:417 +#, kde-format +msgid "Bad argument '%1'. Usage: %2 on|off|1|0|true|false" +msgstr "وسيطة سيئة '%1'. الاستخدام: %2 on|off|1|0|true|false" + +#: utils/katecmds.cpp:421 +#, kde-format +msgid "" +"Usage: set-remove-trailing-spaces 0|-|none or 1|+|mod|modified or 2|*|all" +msgstr "" +"الاستخدام: ‎set-remove-trailing-spaces 0|-|none أو ‎1|+|mod|modified أو ‎2|*|all" + +#: utils/katecmds.cpp:435 vimode/cmds.cpp:168 +#, kde-format +msgid "Unknown command '%1'" +msgstr "الأمر '%1' مجهول" + +#: utils/katecmds.cpp:493 +#, kde-format +msgid "" +"

char identifier

This command allows you to insert literal " +"characters by their numerical identifier, in decimal, octal or hexadecimal " +"form.

Examples:

  • char 234
  • char 0x1234

" +msgstr "" +"

char identifier

يتيح لك هذا الأمر إدراج أحرف حرفية حسب " +"معرفها الرقمي، في شكل عشري أو ثماني أو سداسي عشري.

الأمثلة:" +"

  • char 234
  • char 0x1234

" + +#: utils/katecmds.cpp:560 +#, kde-format +msgid "" +"

date or date format

Inserts a date/time string as defined by " +"the specified format, or the format yyyy-MM-dd hh:mm:ss if none is specified." +"

Possible format specifiers are:
dThe day as " +"number without a leading zero (1-31).
ddThe day as " +"number with a leading zero (01-31).
dddThe " +"abbreviated localized day name (e.g. 'Mon'..'Sun').
ddddThe long localized day name (e.g. 'Monday'..'Sunday').
MThe month as number without a leading zero (1-12).
MMThe month as number with a leading zero (01-12).
MMMThe abbreviated localized month name (e.g. " +"'Jan'..'Dec').
yyThe year as two digit number " +"(00-99).
yyyyThe year as four digit number " +"(1752-8000).
hThe hour without a leading zero " +"(0..23 or 1..12 if AM/PM display).
hhThe hour with " +"a leading zero (00..23 or 01..12 if AM/PM display).
mThe minute without a leading zero (0..59).
mmThe minute with a leading zero (00..59).
sThe second without a leading zero (0..59).
ssThe second with a leading zero (00..59).
zThe milliseconds without leading zeroes (0..999).
zzzThe milliseconds with leading zeroes (000..999).
APUse AM/PM display. AP will be replaced by either " +"\"AM\" or \"PM\".
apUse am/pm display. ap will be " +"replaced by either \"am\" or \"pm\".

" +msgstr "" +"

date or date format

يُدرج سلسلة تاريخ/وقت كما هو محدد " +"بالتنسيق المحدد، أو التنسيق yyyy-MM-dd hh:mm:ss إذا لم يُحدد أي تنسيق.

مواصفات التنسيق الممكنة هي:
dاليوم كرقم دون صفر " +"بادئ (1-31).
ddاليوم كرقم بصفر بادئ (01-31).
dddاسم اليوم المختصر الموضعي (على سبيل المثال " +"'Mon'..'Sun').
ddddاليوم الموضعي الطويل الاسم (على " +"سبيل المثال، 'الاثنين'..'الأحد').
Mالشهر كرقم دون " +"صفر بادئ (1-12).
MMالشهر كرقم بصفر بادئ (01-12).
MMMاسم الشهر المختصر المحلي (على سبيل المثال، " +"'يناير'..'ديسمبر').
yyالسنة كرقم مكون من رقمين " +"(00-99).
yyyyالسنة كرقم مكون من أربعة أرقام " +"(1752-8000).
hالساعة دون صفر في المقدمة (0..23 أو " +"1..12 إذا كانت الشاشة صباحًا/مساءً).
hhالساعة التي " +"بها صفر في المقدمة (00..23 أو 01..12 إذا كانت الشاشة صباحًا/مساءً).
mالدقيقة التي بها صفر في المقدمة (0..59).
mmالدقيقة التي بها صفر في المقدمة (00..59).
sالثانية التي بها صفر في المقدمة (0..59).
ssالثانية التي تبدأ بصفر (00..59).
zالملي ثانية دون أصفار (0..999).
zzzالملي " +"ثانية التي تبدأ بأصفار (000..999).
APاستخدم عرض AM/" +"PM. سيستبدل AP بـ \"AM\" أو \"PM\".
apاستخدم عرض " +"AM/PM. سيستبدل ap بـ \"am\" أو \"pm\".

" + +#: utils/katecmds.cpp:621 +#, kde-format +msgid "Remove Duplicate Lines" +msgstr "أزل الأسطر المكررة" + +#: utils/katecmds.cpp:622 +#, kde-format +msgid "Remove Duplicates and Sort Text Alphabetically" +msgstr "أزل التكرارات وافرز النص أبجديًا" + +#: utils/katecmds.cpp:623 +#, kde-format +msgid "Sort Text Naturally" +msgstr "فرز النص بشكل طبيعي" + +#: utils/katecmds.cpp:624 +#, kde-format +msgid "Sort Selected Text Alphabetically" +msgstr "افرز النّصّ المحدّد أبجديًا" + +#: utils/katecmds.cpp:699 +#, kde-format +msgid "" +"

sort

Sort the selected text or whole document if there is no " +"selection

" +msgstr "" +"

sort

افرز النص المحدد أو الوثيقة بأكملها إذا لم يكن هناك تحديد

" + +#: utils/katecmds.cpp:703 +#, kde-format +msgid "" +"

uniq

Remove duplicate lines from the selected text or whole " +"document if there is no selection.

" +msgstr "" +"

uniq

أزل الأسطر المكررة من النص المحدد أو الوثيقة بأكملها إذا لم " +"يكن هناك تحديد.

" + +#: utils/katecmds.cpp:707 +#, kde-format +msgid "" +"

sortuniq

Sort the selected text or whole document and then remove " +"all duplicate lines.

" +msgstr "" +"

sortuniq

افرز النص المحدد أو المستند بأكمله ثم أزل جميع الأسطر " +"المكررة.

" + +#: utils/katecmds.cpp:711 +#, kde-format +msgid "" +"

natsort

Sort the selected text or whole document in natural order." +"
Here is an example to show the difference to the normal sort method:" +"
sort(a10, a1, a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" +msgstr "" +"

natsort

افرز النص المحدد أو الوثيقة بأكملها بالترتيب الطبيعي.
" +"إليك مثال لإظهار الفرق عن طريقة الفرز العادية:
sort(a10, a1, a2) => a1, " +"a10, a2
natsort(a10, a1, a2) => a1, a2, a10

" + +#: utils/kateglobal.cpp:60 +#, kde-format +msgid "Kate Part" +msgstr "جزء كيت" + +#: utils/kateglobal.cpp:62 +#, kde-format +msgid "Embeddable editor component" +msgstr "مكوّن محرّر مدمج" + +#: utils/kateglobal.cpp:64 +#, kde-format +msgid "(c) 2000-2025 The Kate Authors" +msgstr "© 2000-2025 مؤلّفو «كيت»" + +#: utils/kateglobal.cpp:84 +#, kde-format +msgid "Christoph Cullmann" +msgstr "Christoph Cullmann" + +#: utils/kateglobal.cpp:84 +#, kde-format +msgid "Maintainer" +msgstr "الصائن" + +#: utils/kateglobal.cpp:85 +#, kde-format +msgid "Dominik Haumann" +msgstr "Dominik Haumann" + +#: utils/kateglobal.cpp:85 utils/kateglobal.cpp:86 utils/kateglobal.cpp:87 +#: utils/kateglobal.cpp:90 utils/kateglobal.cpp:93 utils/kateglobal.cpp:98 +#, kde-format +msgid "Core Developer" +msgstr "مطوّر اللبّ" + +#: utils/kateglobal.cpp:86 +#, kde-format +msgid "Milian Wolff" +msgstr "Milian Wolff" + +#: utils/kateglobal.cpp:87 +#, kde-format +msgid "Joseph Wenninger" +msgstr "Joseph Wenninger" + +#: utils/kateglobal.cpp:88 +#, kde-format +msgid "Erlend Hamberg" +msgstr "Erlend Hamberg" + +#: utils/kateglobal.cpp:89 +#, kde-format +msgid "Bernhard Beschow" +msgstr "Bernhard Beschow" + +#: utils/kateglobal.cpp:89 utils/kateglobal.cpp:105 +#, kde-format +msgid "Developer" +msgstr "المطور" + +#: utils/kateglobal.cpp:90 +#, kde-format +msgid "Anders Lund" +msgstr "Anders Lund" + +#: utils/kateglobal.cpp:91 +#, kde-format +msgid "Michel Ludwig" +msgstr "Michel Ludwig" + +#: utils/kateglobal.cpp:91 +#, kde-format +msgid "On-the-fly spell checking" +msgstr "تدقيق الهجاء المباشر" + +#: utils/kateglobal.cpp:92 +#, kde-format +msgid "Pascal Létourneau" +msgstr "Pascal Létourneau" + +#: utils/kateglobal.cpp:92 +#, kde-format +msgid "Large scale bug fixing" +msgstr "إصلاحات كثيرة للعلل" + +#: utils/kateglobal.cpp:93 +#, kde-format +msgid "Hamish Rodda" +msgstr "Hamish Rodda" + +#: utils/kateglobal.cpp:94 +#, kde-format +msgid "Waldo Bastian" +msgstr "Waldo Bastian" + +#: utils/kateglobal.cpp:94 +#, kde-format +msgid "The cool buffersystem" +msgstr "نظام الصِّوانات الرائع" + +#: utils/kateglobal.cpp:95 +#, kde-format +msgid "Charles Samuels" +msgstr "Charles Samuels" + +#: utils/kateglobal.cpp:95 +#, kde-format +msgid "The Editing Commands" +msgstr "أوامر التّحرير" + +#: utils/kateglobal.cpp:96 +#, kde-format +msgid "Matt Newell" +msgstr "Matt Newell" + +#: utils/kateglobal.cpp:96 +#, kde-format +msgid "Testing, ..." +msgstr "الاختبار، ..." + +#: utils/kateglobal.cpp:97 +#, kde-format +msgid "Michael Bartl" +msgstr "مايكل بارتل" + +#: utils/kateglobal.cpp:97 +#, kde-format +msgid "Former Core Developer" +msgstr "مطوّر اللبّ السّابق" + +#: utils/kateglobal.cpp:98 +#, kde-format +msgid "Michael McCallum" +msgstr "Michael McCallum" + +#: utils/kateglobal.cpp:99 +#, kde-format +msgid "Michael Koch" +msgstr "Michael Koch" + +#: utils/kateglobal.cpp:99 +#, kde-format +msgid "KWrite port to KParts" +msgstr "نقل «كاتبك» إلى «أجزائك»" + +#: utils/kateglobal.cpp:100 +#, kde-format +msgid "Christian Gebauer" +msgstr "Christian Gebauer" + +#: utils/kateglobal.cpp:101 +#, kde-format +msgid "Simon Hausmann" +msgstr "Simon Hausmann" + +#: utils/kateglobal.cpp:102 +#, kde-format +msgid "Glen Parker" +msgstr "Glen Parker" + +#: utils/kateglobal.cpp:102 +#, kde-format +msgid "KWrite Undo History, Kspell integration" +msgstr "تأريخ التّراجع في «كاتبك»، التّكامل مع «هجائك»" + +#: utils/kateglobal.cpp:103 +#, kde-format +msgid "Scott Manson" +msgstr "Scott Manson" + +#: utils/kateglobal.cpp:103 +#, kde-format +msgid "KWrite XML Syntax highlighting support" +msgstr "دعم إبراز صياغة XML في «كاتبك»" + +#: utils/kateglobal.cpp:104 +#, kde-format +msgid "John Firebaugh" +msgstr "John Firebaugh" + +#: utils/kateglobal.cpp:104 +#, kde-format +msgid "Patches and more" +msgstr "الرّقع وغيرها" + +#: utils/kateglobal.cpp:105 +#, kde-format +msgid "Andreas Kling" +msgstr "Andreas Kling" + +#: utils/kateglobal.cpp:106 +#, kde-format +msgid "Mirko Stocker" +msgstr "Mirko Stocker" + +#: utils/kateglobal.cpp:106 +#, kde-format +msgid "Various bugfixes" +msgstr "إصلاحات علل متنوّعة" + +#: utils/kateglobal.cpp:107 +#, kde-format +msgid "Matthew Woehlke" +msgstr "Matthew Woehlke" + +#: utils/kateglobal.cpp:107 +#, kde-format +msgid "Selection, KColorScheme integration" +msgstr "التّحديد، تكامل «مخطّط ألوانك»" + +#: utils/kateglobal.cpp:108 +#, kde-format +msgid "Sebastian Pipping" +msgstr "Sebastian Pipping" + +#: utils/kateglobal.cpp:109 +#, kde-format +msgid "Search bar back- and front-end" +msgstr "سند شريط البحث وصدره" + +#: utils/kateglobal.cpp:112 +#, kde-format +msgid "Jochen Wilhelmy" +msgstr "Jochen Wilhelmy" + +#: utils/kateglobal.cpp:112 +#, kde-format +msgid "Original KWrite Author" +msgstr "مؤلّف «كاتبك» الأصليّ" + +#: utils/kateglobal.cpp:113 +#, kde-format +msgid "Gerald Senarclens de Grancy" +msgstr "Gerald Senarclens de Grancy" + +#: utils/kateglobal.cpp:113 +#, kde-format +msgid "QA and Scripting" +msgstr "ضمان الجودة والسّكربتة" + +#: utils/kateglobal.cpp:115 +#, kde-format +msgid "Matteo Merli" +msgstr "Matteo Merli" + +#: utils/kateglobal.cpp:115 +#, kde-format +msgid "Highlighting for RPM Spec-Files, Perl, Diff and more" +msgstr "إبراز ملفّات المواصفات ل‍RPM، وبيرل، وملفّات الفرق وغيرها" + +#: utils/kateglobal.cpp:116 +#, kde-format +msgid "Rocky Scaletta" +msgstr "Rocky Scaletta" + +#: utils/kateglobal.cpp:116 +#, kde-format +msgid "Highlighting for VHDL" +msgstr "إبراز VHDL" + +#: utils/kateglobal.cpp:117 +#, kde-format +msgid "Yury Lebedev" +msgstr "Yury Lebedev" + +#: utils/kateglobal.cpp:117 +#, kde-format +msgid "Highlighting for SQL" +msgstr "إبراز SQL" + +#: utils/kateglobal.cpp:118 +#, kde-format +msgid "Chris Ross" +msgstr "Chris Ross" + +#: utils/kateglobal.cpp:118 +#, kde-format +msgid "Highlighting for Ferite" +msgstr "إبراز فرّيت" + +#: utils/kateglobal.cpp:119 +#, kde-format +msgid "Nick Roux" +msgstr "Nick Roux" + +#: utils/kateglobal.cpp:119 +#, kde-format +msgid "Highlighting for ILERPG" +msgstr "إبراز ILERPG" + +#: utils/kateglobal.cpp:120 +#, kde-format +msgid "Carsten Niehaus" +msgstr "Carsten Niehaus" + +#: utils/kateglobal.cpp:120 +#, kde-format +msgid "Highlighting for LaTeX" +msgstr "إبراز لاتخ" + +#: utils/kateglobal.cpp:121 +#, kde-format +msgid "Per Wigren" +msgstr "Per Wigren" + +#: utils/kateglobal.cpp:121 +#, kde-format +msgid "Highlighting for Makefiles, Python" +msgstr "إبراز Makefile وبيثون" + +#: utils/kateglobal.cpp:122 +#, kde-format +msgid "Jan Fritz" +msgstr "Jan Fritz" + +#: utils/kateglobal.cpp:122 +#, kde-format +msgid "Highlighting for Python" +msgstr "إبراز بيثون" + +#: utils/kateglobal.cpp:123 +#, kde-format +msgid "Daniel Naber" +msgstr "Daniel Naber" + +#: utils/kateglobal.cpp:124 +#, kde-format +msgid "Roland Pabel" +msgstr "Roland Pabel" + +#: utils/kateglobal.cpp:124 +#, kde-format +msgid "Highlighting for Scheme" +msgstr "إبراز سكيم" + +#: utils/kateglobal.cpp:125 +#, kde-format +msgid "Cristi Dumitrescu" +msgstr "Cristi Dumitrescu" + +#: utils/kateglobal.cpp:125 +#, kde-format +msgid "PHP Keyword/Datatype list" +msgstr "قائمة أنواع البيانات والكلمات المفتاحيّة ل‍PHP" + +#: utils/kateglobal.cpp:126 +#, kde-format +msgid "Carsten Pfeiffer" +msgstr "Carsten Pfeiffer" + +#: utils/kateglobal.cpp:126 +#, kde-format +msgid "Very nice help" +msgstr "مساعدة لطيفة جدًّا" + +#: utils/kateglobal.cpp:127 +#, kde-format +msgid "Bruno Massa" +msgstr "Bruno Massa" + +#: utils/kateglobal.cpp:127 +#, kde-format +msgid "Highlighting for Lua" +msgstr "إبراز لوا" + +#: utils/kateglobal.cpp:129 +#, kde-format +msgid "All people who have contributed and I have forgotten to mention" +msgstr "كلّ مَن ساهم ونسيت ذكره" + +#: utils/kateglobal.cpp:131 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" +"عصام بايزيدي,وسيم بكر,أحمد محمد زواوي,يوسف الشهيبي,زايد السعيدي,صفا الفليج" + +#: utils/kateglobal.cpp:131 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" +"bayazidi@arabeyes.org,bakr@mit.edu,zawawi@arabeyes.org,chahibi@gmail.com," +"zayed.alsaidi@gmail.com,safa1996alfulaij@gmail.com" + +#: utils/kateglobal.cpp:255 +#, kde-format +msgid "Configure" +msgstr "الضّبط" + +#: utils/katesedcmd.cpp:268 +#, kde-format +msgid "replace with %1?" +msgstr "أأستبدل ب‍%1؟" + +#: utils/katesedcmd.cpp:274 +#, kde-format +msgctxt "%2 is the translation of the next message" +msgid "1 replacement done on %2" +msgid_plural "%1 replacements done on %2" +msgstr[0] "لم يغير شيء على %2" +msgstr[1] "استبدال واحد على %2" +msgstr[2] "استبدالان على %2" +msgstr[3] "%1 استبدالات على %2" +msgstr[4] "%1 استبدالًا على %2" +msgstr[5] "%1 استبدال على %2" + +#: utils/katesedcmd.cpp:277 +#, kde-format +msgctxt "substituted into the previous message" +msgid "1 line" +msgid_plural "%1 lines" +msgstr[0] "لا أسطر" +msgstr[1] "سطر واحد" +msgstr[2] "سطران" +msgstr[3] "%1 أسطر" +msgstr[4] "%1 سطرًا" +msgstr[5] "%1 سطر" + +#: utils/katevariableexpansionhelpers.cpp:77 +#, kde-format +msgid "" +msgstr "" + +#: utils/katevariableexpansionhelpers.cpp:161 +#, kde-format +msgid "Insert variable" +msgstr "أدرج متغيّرًا" + +#: utils/katevariableexpansionhelpers.cpp:165 +#, kde-format +msgid "Variables" +msgstr "المتغيّرات" + +#: utils/katevariableexpansionhelpers.cpp:169 +#, kde-format +msgid "Filter" +msgstr "المرشّح" + +#: utils/katevariableexpansionhelpers.cpp:188 +#: utils/katevariableexpansionhelpers.cpp:217 +#, kde-format +msgid "Please select a variable." +msgstr "رجاءً اختر متغيرًا." + +#: utils/katevariableexpansionhelpers.cpp:206 +#, kde-format +msgid "Current value: %1" +msgstr "القيمة الحالية: %1" + +#: utils/katevariableexpansionhelpers.cpp:214 +#, kde-format +msgid "Current value: %1" +msgstr "القيمة الحالية: %1" + +#: utils/katevariableexpansionmanager.cpp:86 +#, kde-format +msgid "File base name without path and suffix of the current document." +msgstr "الاسم الأساسي للملف دون المسار واللاحقة للوثيقة الحالية." + +#: utils/katevariableexpansionmanager.cpp:94 +#, kde-format +msgid "File extension of the current document." +msgstr "امتداد الملف للمستند الحالي." + +#: utils/katevariableexpansionmanager.cpp:102 +#, kde-format +msgid "File name without path of the current document." +msgstr "اسم الملف دون مسار الوثيقة الحالية." + +#: utils/katevariableexpansionmanager.cpp:110 +#, kde-format +msgid "Full path of the current document including the file name." +msgstr "المسار الكامل للوثيقة الحالية بما في ذلك اسم الملف." + +#: utils/katevariableexpansionmanager.cpp:118 +#, kde-format +msgid "Contents of the current document." +msgstr "محتويات الوثيقة الحالية." + +#: utils/katevariableexpansionmanager.cpp:125 +#, kde-format +msgid "Full path of the current document excluding the file name." +msgstr "المسار الكامل للوثيقة الحالية باستثناء اسم الملف." + +#: utils/katevariableexpansionmanager.cpp:133 +#, kde-format +msgid "" +"Full document path including file name, with native path separator " +"(backslash on Windows)." +msgstr "" +"المسار الكامل للمستند بما في ذلك اسم الملف، مع فاصل المسار الأصلي (الشرطة " +"المائلة للخلف على نظام التشغيل Windows)." + +#: utils/katevariableexpansionmanager.cpp:141 +#, kde-format +msgid "" +"Full document path excluding file name, with native path separator " +"(backslash on Windows)." +msgstr "" +"المسار الكامل للمستند باستثناء اسم الملف، مع فاصل المسار الأصلي (الشرطة " +"المائلة للخلف على نظام التشغيل Windows)." + +#: utils/katevariableexpansionmanager.cpp:149 +#, kde-format +msgid "" +"Line number of the text cursor position in current document (starts with 0)." +msgstr "رقم سطر موضع مؤشر النص في المستند الحالي (يبدأ بـ 0)." + +#: utils/katevariableexpansionmanager.cpp:156 +#, kde-format +msgid "" +"Column number of the text cursor position in current document (starts with " +"0)." +msgstr "رقم العمود موضع مؤشر النص في المستند الحالي (يبدأ بـ 0)." + +#: utils/katevariableexpansionmanager.cpp:163 +#, kde-format +msgid "X component in global screen coordinates of the cursor position." +msgstr "مكون س في إحداثيات الشاشة العامة لموضع المؤشر." + +#: utils/katevariableexpansionmanager.cpp:170 +#, kde-format +msgid "Y component in global screen coordinates of the cursor position." +msgstr "مكون ص في إحداثيات الشاشة العامة لموضع المؤشر." + +#: utils/katevariableexpansionmanager.cpp:177 +#, kde-format +msgid "Text selection of the current document." +msgstr "تحديد النص للمستند الحالي." + +#: utils/katevariableexpansionmanager.cpp:184 +#, kde-format +msgid "Start line of selected text of the current document." +msgstr "سطر البداية للنص المحدد للمستند الحالي." + +#: utils/katevariableexpansionmanager.cpp:191 +#, kde-format +msgid "Start column of selected text of the current document." +msgstr "عمود البداية للنص المحدد للمستند الحالي." + +#: utils/katevariableexpansionmanager.cpp:198 +#, kde-format +msgid "End line of selected text of the current document." +msgstr "سطر النهاية للنص المحدد للمستند الحالي." + +#: utils/katevariableexpansionmanager.cpp:205 +#, kde-format +msgid "End column of selected text of the current document." +msgstr "عمود النهاية للنص المحدد للمستند الحالي." + +#: utils/katevariableexpansionmanager.cpp:212 +#, kde-format +msgid "Number of rows of the current document." +msgstr "عدد صفوف الوثيقة الحالية." + +#: utils/katevariableexpansionmanager.cpp:219 +#, kde-format +msgid "Read a document variable." +msgstr "إقراء متغير المستند." + +#: utils/katevariableexpansionmanager.cpp:227 +#, kde-format +msgid "The current date in current locale format." +msgstr "التاريخ الحالي بتنسيق الإعدادات المحلية الحالي." + +#: utils/katevariableexpansionmanager.cpp:234 +#, kde-format +msgid "The current date (ISO)." +msgstr "التاريخ الحالي (ايزو)." + +#: utils/katevariableexpansionmanager.cpp:241 +#, kde-format +msgid "The current date (QDate formatstring)." +msgstr "التاريخ الحالي (سلسلة تنسيق QDate)." + +#: utils/katevariableexpansionmanager.cpp:249 +#, kde-format +msgid "The current time in current locale format." +msgstr "الوقت الحالي بتنسيق الإعدادات المحلية الحالي." + +#: utils/katevariableexpansionmanager.cpp:256 +#, kde-format +msgid "The current time (ISO)." +msgstr "الوقت الحالي (ايزو)." + +#: utils/katevariableexpansionmanager.cpp:263 +#, kde-format +msgid "The current time (QTime formatstring)." +msgstr "الوقت الحالي (تنسيق QTime)." + +#: utils/katevariableexpansionmanager.cpp:271 +#, kde-format +msgid "Access to environment variables." +msgstr "الوصول إلى متغيرات البيئة." + +#: utils/katevariableexpansionmanager.cpp:279 +#, kde-format +msgid "Evaluate simple JavaScript statements." +msgstr "تقييم عبارات جافاسكربت البسيطة." + +#: utils/katevariableexpansionmanager.cpp:289 +#, kde-format +msgid "Encode text to make it URL compatible." +msgstr "ترميز النص لجعله متوافقًا مع عنوان URL." + +#: utils/katevariableexpansionmanager.cpp:297 +#, kde-format +msgid "Generate a new UUID." +msgstr "أنشئ UUID جديدًا." + +#: variableeditor/variableeditor.cpp:40 +#, kde-format +msgid "Kate Handbook." +msgstr "كتيّب «كيت»." + +#: variableeditor/variableeditor.cpp:213 +#, kde-format +msgid "true" +msgstr "صحيح" + +#: variableeditor/variableeditor.cpp:214 +#, kde-format +msgid "false" +msgstr "خطأ" + +#: variableeditor/variableeditor.cpp:350 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "none" +msgstr "بلا" + +#: variableeditor/variableeditor.cpp:351 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "modified" +msgstr "المعدّل" + +#: variableeditor/variableeditor.cpp:352 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "all" +msgstr "الكلّ" + +#: variableeditor/variablelineedit.cpp:42 +#, kde-format +msgid "Show list of valid variables." +msgstr "أظهر قائمة المتغيّرات الصّالحة." + +#: variableeditor/variablelineedit.cpp:115 +#, kde-format +msgctxt "short translation please" +msgid "Enable automatic insertion of brackets." +msgstr "مكّن إدراج الأقواس آليًّا." + +#: variableeditor/variablelineedit.cpp:121 +#, kde-format +msgctxt "short translation please" +msgid "Set the number of autocenter lines." +msgstr "اضبط عدد أسطر التّوسيط الآليّ." + +#: variableeditor/variablelineedit.cpp:126 +#, kde-format +msgctxt "short translation please" +msgid "Set the document background color." +msgstr "اضبط لون خلفيّة المحرّر." + +#: variableeditor/variablelineedit.cpp:131 +#, kde-format +msgctxt "short translation please" +msgid "Pressing backspace in leading whitespace unindents." +msgstr "" +"يؤدي الضغط على زر الرجوع إلى الخلف في المسافة البيضاء البادئة إلى إزالة " +"الإزاحة." + +#: variableeditor/variablelineedit.cpp:139 +#, kde-format +msgctxt "short translation please" +msgid "Enable block selection mode." +msgstr "مكّن وضع التّحديد الكتليّ." + +#: variableeditor/variablelineedit.cpp:144 +#, kde-format +msgctxt "short translation please" +msgid "Enable the byte order mark (BOM) when saving Unicode files." +msgstr "مكّن علامة ترتيب البايتات (BOM) عند حفظ ملفّات يونيكوديّة." + +#: variableeditor/variablelineedit.cpp:149 +#, kde-format +msgctxt "short translation please" +msgid "Set the color for the bracket highlight." +msgstr "اضبط لون إبراز الأقواس." + +#: variableeditor/variablelineedit.cpp:154 +#, kde-format +msgctxt "short translation please" +msgid "Set the background color for the current line." +msgstr "اضبط لون خلفيّة السّطر الحاليّ." + +#: variableeditor/variablelineedit.cpp:160 +#, kde-format +msgctxt "short translation please" +msgid "Set the default dictionary used for spell checking." +msgstr "اضبط القاموس المستخدم مبدئيًا لتدقيق الهجاء." + +#: variableeditor/variablelineedit.cpp:165 +#, kde-format +msgctxt "short translation please" +msgid "Enable dynamic word wrap of long lines." +msgstr "مكّن لفّ الكلمات الحركيّ للأسطر الطّويلة." + +#: variableeditor/variablelineedit.cpp:172 +#, kde-format +msgctxt "short translation please" +msgid "Sets the end of line mode." +msgstr "يضبط وضع نهاية الأسطر." + +#: variableeditor/variablelineedit.cpp:177 +#, kde-format +msgctxt "short translation please" +msgid "" +"Enable whether pressing enter will insert selected auto completion item." +msgstr "" +"مكّن ما إذا كان الضغط على مفتاح الإدخال سيؤدي إلى إدراج عنصر الإكمال الآليّ " +"المحدد." + +#: variableeditor/variablelineedit.cpp:182 +#, kde-format +msgctxt "short translation please" +msgid "Enable folding markers in the editor border." +msgstr "اضبط علامات الطّوي في حدّ المحرّر." + +#: variableeditor/variablelineedit.cpp:187 +#, kde-format +msgctxt "short translation please" +msgid "Enable folding preview in the editor border." +msgstr "تمكين المعاينة القابلة للطي في حدود المحرر." + +#: variableeditor/variablelineedit.cpp:193 +#, kde-format +msgctxt "short translation please" +msgid "Set the point size of the document font." +msgstr "اضبط حجم نقطة خطّ المستند." + +#: variableeditor/variablelineedit.cpp:198 +#, kde-format +msgctxt "short translation please" +msgid "Set the font of the document." +msgstr "اضبط خطّ المستند." + +#: variableeditor/variablelineedit.cpp:214 +#, kde-format +msgctxt "short translation please" +msgid "Set the syntax highlighting." +msgstr "اضبط إبراز الصّياغة." + +#: variableeditor/variablelineedit.cpp:219 +#, kde-format +msgctxt "short translation please" +msgid "Set the icon bar color." +msgstr "اضبط لون شريط الأيقونات." + +#: variableeditor/variablelineedit.cpp:224 +#, kde-format +msgctxt "short translation please" +msgid "Enable the icon border in the editor view." +msgstr "مكّن حدّ الأيقونات في منظور المحرّر." + +#: variableeditor/variablelineedit.cpp:229 +#, kde-format +msgctxt "short translation please" +msgid "Set the auto indentation style." +msgstr "اضبط نمط الإزاحة الآليّ." + +#: variableeditor/variablelineedit.cpp:234 +#, kde-format +msgctxt "short translation please" +msgid "Adjust indentation of text pasted from the clipboard." +msgstr "اضبط إزاحة النّص الملصوق من الحافظة." + +#: variableeditor/variablelineedit.cpp:240 +#, kde-format +msgctxt "short translation please" +msgid "Set the indentation depth for each indent level." +msgstr "عيّن عمق الإزاحة لكل مستوى من مستويات المسافة البادئة." + +#: variableeditor/variablelineedit.cpp:245 +#, kde-format +msgctxt "short translation please" +msgid "Allow odd indentation level (no multiple of indent width)." +msgstr "اسمح بمستوى إزاحة فردية (لا يوجد مضاعفات لعرض الإزاحة)." + +#: variableeditor/variablelineedit.cpp:250 +#, kde-format +msgctxt "short translation please" +msgid "Show line numbers." +msgstr "أظهر أرقام الأسطر." + +#: variableeditor/variablelineedit.cpp:255 +#, kde-format +msgctxt "short translation please" +msgid "Insert newline at end of file on save." +msgstr "أدرج سطرًا جديدًا نهاية الملفّ عند الحفظ." + +#: variableeditor/variablelineedit.cpp:260 +#, kde-format +msgctxt "short translation please" +msgid "Enable overwrite mode in the document." +msgstr "مكّن وضع الكتابة الفوقيّة في للمستند." + +#: variableeditor/variablelineedit.cpp:265 +#, kde-format +msgctxt "short translation please" +msgid "Enable persistent text selection." +msgstr "مكّن تحديد النص الباقي." + +#: variableeditor/variablelineedit.cpp:270 +#, kde-format +msgctxt "short translation please" +msgid "Replace tabs with spaces when saving the document." +msgstr "استبدل الجدولات بمسافات عند حفظ المستند." + +#: variableeditor/variablelineedit.cpp:275 +#, kde-format +msgctxt "short translation please" +msgid "Replace tabs with spaces." +msgstr "استبدل الجدولات بمسافات." + +#: variableeditor/variablelineedit.cpp:280 +#, kde-format +msgctxt "short translation please" +msgid "Remove trailing spaces when saving the document." +msgstr "أزل المسافات الزّائدة عند حفظ المستند." + +#: variableeditor/variablelineedit.cpp:285 +#, kde-format +msgctxt "short translation please" +msgid "Show scrollbar minimap." +msgstr "أظهر الخريطة الصّغيرة على شريط التّمرير." + +#: variableeditor/variablelineedit.cpp:290 +#, kde-format +msgctxt "short translation please" +msgid "Show scrollbar preview." +msgstr "أظهر معاينة شريط التّمرير." + +#: variableeditor/variablelineedit.cpp:301 +#, kde-format +msgctxt "short translation please" +msgid "Set the color scheme." +msgstr "اضبط مخطّط الألوان." + +#: variableeditor/variablelineedit.cpp:306 +#, kde-format +msgctxt "short translation please" +msgid "Set the text selection color." +msgstr "اضبط لون تحديد النّصّ." + +#: variableeditor/variablelineedit.cpp:311 +#, kde-format +msgctxt "short translation please" +msgid "Visualize tabs and trailing spaces." +msgstr "اجعل علامات الجدولة والمسافات اللاحقة مرئية." + +#: variableeditor/variablelineedit.cpp:316 +#, kde-format +msgctxt "short translation please" +msgid "Enable smart home navigation." +msgstr "مكّن الملاحة المنزلية الذكية." + +#: variableeditor/variablelineedit.cpp:321 +#, kde-format +msgctxt "short translation please" +msgid "Pressing TAB key indents." +msgstr "الضغط على مفتاح TAB يؤدي إلى إزاحة." + +#: variableeditor/variablelineedit.cpp:327 +#, kde-format +msgctxt "short translation please" +msgid "Set the tab display width." +msgstr "اضبط عرض الجدولة." + +#: variableeditor/variablelineedit.cpp:333 +#, kde-format +msgctxt "short translation please" +msgid "Set the number of undo steps to remember (0 equals infinity)." +msgstr "اضبط عدد خطوات التّراجع لتذكّرها (0 يعني ما لانهاية)." + +#: variableeditor/variablelineedit.cpp:339 +#, kde-format +msgctxt "short translation please" +msgid "Set the word wrap column." +msgstr "اضبط عمود لفّ الكلمات." + +#: variableeditor/variablelineedit.cpp:344 +#, kde-format +msgctxt "short translation please" +msgid "Set the word wrap marker color." +msgstr "اضبط لون علامة لفّ الكلمات." + +#: variableeditor/variablelineedit.cpp:349 +#, kde-format +msgctxt "short translation please" +msgid "Enable word wrap while typing text." +msgstr "مكّن لفّ الكلمات أثناء الكتابة." + +#: view/katestatusbar.cpp:114 +#, kde-format +msgid "Current cursor position. Click to go to a specific line." +msgstr "موضع المؤشر الحالي. انقر للانتقال إلى سطر معين." + +#: view/katestatusbar.cpp:127 +#, kde-format +msgid "Insert mode and VI input mode indicator. Click to change the mode." +msgstr "وضع الإدخال ومؤشر وضع الإدخال VI. انقر لتغيير الوضع." + +#: view/katestatusbar.cpp:135 +#, kde-format +msgid "Change dictionary" +msgstr "غيّر القاموس" + +#: view/katestatusbar.cpp:161 view/katestatusbar.cpp:488 +#, kde-format +msgid "Tab Width" +msgstr "عرض الجدولة" + +#: view/katestatusbar.cpp:169 view/katestatusbar.cpp:503 +#, kde-format +msgid "Indentation Width" +msgstr "عرض الإزاحة" + +#: view/katestatusbar.cpp:177 +#, kde-format +msgid "Indentation Mode" +msgstr "وضع الإزاحة" + +#: view/katestatusbar.cpp:179 +#, kde-format +msgid "Tabulators && Spaces" +msgstr "جدولات ومسافات" + +#: view/katestatusbar.cpp:182 +#, kde-format +msgid "Tabulators" +msgstr "جدولات" + +#: view/katestatusbar.cpp:185 +#, kde-format +msgid "Spaces" +msgstr "مسافات" + +#: view/katestatusbar.cpp:197 +#, kde-format +msgid "Encoding" +msgstr "التّرميز" + +#: view/katestatusbar.cpp:200 view/katestatusbar.cpp:201 +#, kde-format +msgid "End of line type" +msgstr "نوع نهاية السّطر" + +#: view/katestatusbar.cpp:207 +#, kde-format +msgid "Mode" +msgstr "الوضع" + +#: view/katestatusbar.cpp:209 view/kateview.cpp:703 +#, kde-format +msgid "" +"Here you can choose which mode should be used for the current document. This " +"will influence the highlighting and folding being used, for example." +msgstr "" +"يمكنك هنا اختيار أيّ وضع يجب استخدامه للمستند الحاليّ. هذا سيحدّد (مثلًا) " +"الإبراز والطّيّ المستخدمين." + +#: view/katestatusbar.cpp:216 +#, kde-format +msgid "Syntax highlighting" +msgstr "إبراز الصّياغة" + +#: view/katestatusbar.cpp:261 +#, kde-format +msgid "Line/Column compact mode" +msgstr "وضع ضغط الخط/العمود" + +#: view/katestatusbar.cpp:307 +#, kde-format +msgid "[BLOCK] %1" +msgstr "[كتلة] %1" + +#: view/katestatusbar.cpp:323 +#, kde-format +msgid "%1/%2:%3" +msgstr "%1/%2:%3" + +#: view/katestatusbar.cpp:325 +#, kde-format +msgid "%1:%2" +msgstr "%1:%2" + +#: view/katestatusbar.cpp:329 +#, kde-format +msgid "Line %1 of %2, Column %3" +msgstr "السطر %1 من %2، العمود %3" + +#: view/katestatusbar.cpp:331 +#, kde-format +msgid "Line %1, Column %2" +msgstr "السّطر %1، العمود %2" + +#: view/katestatusbar.cpp:405 +#, kde-format +msgid "Soft Tabs: %1" +msgstr "جدولات خفيفة: %1" + +#: view/katestatusbar.cpp:406 +#, kde-format +msgid "Soft Tabs: %1 (%2)" +msgstr "جدولات خفيفة: %1 (%2)" + +#: view/katestatusbar.cpp:407 +#, kde-format +msgid "Tab Size: %1" +msgstr "حجم الجدولة: %1" + +#: view/katestatusbar.cpp:408 +#, kde-format +msgid "Indent/Tab: %1/%2" +msgstr "الإزاحة/الجدولة: %1/%2" + +#: view/katestatusbar.cpp:448 view/katestatusbar.cpp:474 +#, kde-format +msgctxt "@item:inmenu" +msgid "Other…" +msgstr "أخرى…" + +#: view/katestatusbar.cpp:476 +#, kde-format +msgid "Other (%1)" +msgid_plural "Other (%1)" +msgstr[0] "أخرى (%1)" +msgstr[1] "أخرى (%1)" +msgstr[2] "أخرى (%1)" +msgstr[3] "أخرى (%1)" +msgstr[4] "أخرى (%1)" +msgstr[5] "أخرى (%1)" + +#: view/katestatusbar.cpp:488 +#, kde-format +msgid "Please specify the wanted tab width:" +msgstr "فضلًا حدّد عرض الجدولة المطلوب:" + +#: view/katestatusbar.cpp:504 +#, kde-format +msgid "Please specify the wanted indentation width:" +msgstr "فضلًا حدّد عرض الإزاحة المطلوب:" + +#: view/katestatusbar.cpp:567 +#, kde-format +msgctxt "" +"%1 and %3 are the selected words/chars count, %2 and %4 are the total words/" +"chars count." +msgid "Words %1/%2, Chars %3/%4" +msgstr "الكلمات %1/%2، الأحرف %3/%4" + +#: view/katestatusbar.cpp:573 +#, kde-format +msgctxt "%1 and %2 are the total words/chars count." +msgid "Words %1, Chars %2" +msgstr "الكلمات %1، الأحرف %2" + +#: view/katestatusbar.cpp:588 +#, kde-format +msgid "Zoom: %1%" +msgstr "التكبير: %1٪" + +#: view/kateview.cpp:440 +#, kde-format +msgid "Cut the selected text and move it to the clipboard" +msgstr "قصّ النصّ المحدّد وانسخه إلى الحافظة" + +#: view/kateview.cpp:445 +#, kde-format +msgid "Paste previously copied or cut clipboard contents" +msgstr "ألصق محتويات الحافظة المنسوخة أو المقصوصة مسبقًا" + +#: view/kateview.cpp:448 +#, kde-format +msgid "" +"Use this command to copy the currently selected text to the system clipboard." +msgstr "استخدم هذا الأمر لنسخ النّص المحدّد حاليًّا إلى حافظة النّظام." + +#: view/kateview.cpp:454 +#, kde-format +msgid "Clipboard &History Paste" +msgstr "&لصق سجل الحافظة" + +#: view/kateview.cpp:459 +#, kde-format +msgid "Paste Selection" +msgstr "ألصق المحدد" + +#: view/kateview.cpp:461 +#, kde-format +msgid "Paste previously mouse selection contents" +msgstr "ألصق محتويات تحديد الفأرة سابقاً" + +#: view/kateview.cpp:465 +#, kde-format +msgid "Paste From File" +msgstr "ألصق من ملف" + +#: view/kateview.cpp:469 +#, kde-format +msgid "Copy File Location" +msgstr "انسخ موقع الملف" + +#: view/kateview.cpp:470 +#, kde-format +msgid "Copy the current file name and line number" +msgstr "انسخ اسم الملف الحالي ورقم السّطر" + +#: view/kateview.cpp:473 +#, kde-format +msgid "Swap with Clipboard Contents" +msgstr "استبدل مع محتويات الحافظة" + +#: view/kateview.cpp:474 +#, kde-format +msgid "Swap the selected text with the clipboard contents" +msgstr "استبدل محتويات الحافظة بالنص المحدد" + +#: view/kateview.cpp:477 +#, kde-format +msgid "Take Screenshot of Selection" +msgstr "خذ لقطة شاشة للتحديد" + +#: view/kateview.cpp:481 +#, kde-format +msgid "Save the current document" +msgstr "احفظ المستند الحاليّ" + +#: view/kateview.cpp:484 +#, kde-format +msgid "Revert the most recent editing actions" +msgstr "اعكس آخر إجراء تحرير" + +#: view/kateview.cpp:487 +#, kde-format +msgid "Revert the most recent undo operation" +msgstr "اعكس آخر عمليّة تراجع" + +#: view/kateview.cpp:491 +#, kde-format +msgid "&Scripts" +msgstr "س&كربتات" + +#: view/kateview.cpp:495 +#, kde-format +msgid "Apply &Word Wrap" +msgstr "طبّق لفّ ال&كلمات" + +#: view/kateview.cpp:497 +#, kde-format +msgid "" +"Use this to wrap the current line, or to reformat the selected lines as " +"paragraph, to fit the 'Wrap words at' setting in the configuration dialog." +"

This is a static word wrap, meaning the document is changed." +msgstr "" +"استخدم هذا للفّ السطر الحالي، أو لإعادة تنسيق الأسطر المحددة كفقرة، لملاءمة " +"الإعداد \"لف الكلمات عند\" في مربع حوار الضبط.

هذا التفاف كلمات " +"ثابت، مما يعني أن المستند قد تغيير." + +#: view/kateview.cpp:503 +#, kde-format +msgid "&Clean Indentation" +msgstr "ا&محُ الإزاحة" + +#: view/kateview.cpp:505 +#, kde-format +msgid "" +"Use this to clean the indentation of a selected block of text (only tabs/" +"only spaces).

You can configure whether tabs should be honored " +"and used or replaced with spaces, in the configuration dialog." +msgstr "" +"استخدم هذا لمحو إزاحة كتلة نصّ محدّدة (فقط جدولات/فقط مسافات).

بإمكانك ضبط ما إذا كان يجب احترام علامات الجدولة واستخدامها أو استبدالها " +"بمسافات، في مربع حوار الضبط." + +#: view/kateview.cpp:510 +#, kde-format +msgid "Convert Indentation to Spaces" +msgstr "حوّل الإزاحة إلى مسافات" + +#: view/kateview.cpp:517 +#, kde-format +msgid "Convert Indentation to Tabs" +msgstr "حول الإزاحة إلى جدولات" + +#: view/kateview.cpp:532 +#, kde-format +msgid "&Format Indentation" +msgstr "&تنسيق الإزاحة" + +#: view/kateview.cpp:533 +#, kde-format +msgid "" +"Use this to auto indent the current line or block of text to its proper " +"indent level." +msgstr "" +"استخدم هذا لإزاحة السّطر الحاليّ آليًّا أو كتلة النّصّ إلى مستوى الإزاحة الصّحيح." + +#: view/kateview.cpp:537 +#, kde-format +msgctxt "@action" +msgid "&Align On…" +msgstr "&حاذِ على…" + +#: view/kateview.cpp:539 +#, kde-format +msgid "" +"This command aligns lines in the selected block or whole document on the " +"column given by a regular expression that you will be prompted for.

If you give an empty pattern it will align on the first non-blank " +"character by default.
If the pattern has a capture it will indent on " +"the captured match.

Examples:
With '-' it will insert " +"spaces before the first '-' of each lines to align them all on the same " +"column.
With ':\\s+(.)' it will insert spaces before the first non-" +"blank character that occurs after a colon to align them all on the same " +"column." +msgstr "" +"يحاذي هذا الأمر الأسطر في الكتلة المحددة أو المستند بالكامل في العمود المحدد " +"بواسطة تعبير عادي سيُطلب منك.

إذا أعطيت نمط فارغ، فسيحذا عند أول " +"حرف غير فارغ بشكل مبدئي.
إذا كان النمط يحتوي على التقاط، فستوضع مسافة " +"بادئة عند المطابقة الملتقطة.

أمثلة:
باستخدام '-'، " +"سيدرج مسافات قبل أول '-' من كل سطر لمحاذاتها جميعًا في نفس العمود.
باستخدام ':\\s+(.)'، سيدرج مسافات قبل أول حرف غير فارغ يأتي بعد النقطتين " +"لمحاذاتها جميعًا في نفس العمود." + +#: view/kateview.cpp:550 +#, kde-format +msgid "C&omment" +msgstr "&علّق" + +#: view/kateview.cpp:553 +#, kde-format +msgid "" +"This command comments out the current line or a selected block of text.

The characters for single/multiple line comments are defined within " +"the language's highlighting." +msgstr "" +"يحوّل هذا الأمر السّطر الحاليّ أو كتلة النّصّ المحدّدة إلى تعليق.

محارف " +"التّعليق للأسطر المفردة والمزدوجة معرّفة في إبراز اللغة." + +#: view/kateview.cpp:558 +#, kde-format +msgid "Go to Previous Editing Location" +msgstr "انتقل إلى موقع التحرير السابق" + +#: view/kateview.cpp:564 +#, kde-format +msgid "Go to Next Editing Location" +msgstr "انتقل إلى موقع التحرير التالي" + +#: view/kateview.cpp:570 +#, kde-format +msgid "Unco&mment" +msgstr "أزل التّ&عليق" + +#: view/kateview.cpp:573 +#, kde-format +msgid "" +"This command removes comments from the current line or a selected block of " +"text.

The characters for single/multiple line comments are " +"defined within the language's highlighting." +msgstr "" +"يزيل هذا الأمر تعليق السّطر الحاليّ أو كتلة النّصّ المحدّدة.

محارف " +"التّعليق للأسطر المفردة والمزدوجة معرّفة في إبراز اللغة." + +#: view/kateview.cpp:578 +#, kde-format +msgid "Toggle Comment" +msgstr "بدّل بين التّعليقات" + +#: view/kateview.cpp:582 +#, kde-format +msgid "&Read Only Mode" +msgstr "وضع ال&قراءة فقط" + +#: view/kateview.cpp:583 +#, kde-format +msgid "Lock/unlock the document for writing" +msgstr "اقفل/فكّ قفل المستند للكتابة" + +#: view/kateview.cpp:588 +#, kde-format +msgid "&Force RTL Direction" +msgstr "ا&فرض الاتجاه من اليمين إلى اليسار" + +#: view/kateview.cpp:589 +#, kde-format +msgid "Force RTL Text Direction" +msgstr "افرض اتجاه النص من اليمين إلى اليسار" + +#: view/kateview.cpp:599 +#, kde-format +msgid "Uppercase" +msgstr "حالة كبيرة" + +#: view/kateview.cpp:602 +#, kde-format +msgid "" +"Convert the selection to uppercase, or the character to the right of the " +"cursor if no text is selected." +msgstr "" +"حوّل التّحديد إلى حالة نصوص كبيرة، أو المحرف إلى يمين المؤشّر إن لم يكن هناك ما " +"هو محدّد." + +#: view/kateview.cpp:608 +#, kde-format +msgid "Lowercase" +msgstr "حالة صغيرة" + +#: view/kateview.cpp:611 +#, kde-format +msgid "" +"Convert the selection to lowercase, or the character to the right of the " +"cursor if no text is selected." +msgstr "" +"حوّل التّحديد إلى حالة نصوص صغيرة، أو المحرف إلى يمين المؤشّر إن لم يكن هناك ما " +"هو محدّد." + +#: view/kateview.cpp:617 +#, kde-format +msgid "Capitalize" +msgstr "كبّر أوّل حرف" + +#: view/kateview.cpp:620 +#, kde-format +msgid "" +"Capitalize the selection, or the word under the cursor if no text is " +"selected." +msgstr "كبّر أوّل حرف للتّحديد، أو الكلمة أسفل المؤشّر إن لم يكن هناك ما هو محدّد." + +#: view/kateview.cpp:625 +#, kde-format +msgid "Join Lines" +msgstr "ضُمّ الأسطر" + +#: view/kateview.cpp:630 +#, kde-format +msgid "Invoke Code Completion" +msgstr "استدعِ إكمال الكود" + +#: view/kateview.cpp:631 +#, kde-format +msgid "" +"Manually invoke command completion, usually by using a shortcut bound to " +"this action." +msgstr "استدعِ أمر إكمال الكود يدويًّا، غالبًا بضغط اختصار مرتبط بهذا الإجراء." + +#: view/kateview.cpp:636 +#, kde-format +msgid "Remove Trailing Spaces" +msgstr "أ&زل المسافات الزّائدة" + +#: view/kateview.cpp:654 +#, kde-format +msgid "Print the current document." +msgstr "اطبع المستند الحاليّ." + +#: view/kateview.cpp:657 +#, kde-format +msgid "Show print preview of current document" +msgstr "أظهر معاينة طباعة للمستند الحاليّ" + +#: view/kateview.cpp:661 +#, kde-format +msgid "Reloa&d" +msgstr "أ&عد التّحميل" + +#: view/kateview.cpp:663 +#, kde-format +msgid "Reload the current document from disk." +msgstr "أعد تحميل المستند الحاليّ من القرص." + +#: view/kateview.cpp:667 +#, kde-format +msgid "Save the current document to disk, with a name of your choice." +msgstr "احفظ المستند الحاليّ إلى القرص، باسم من اختيارك." + +#: view/kateview.cpp:669 +#, kde-format +msgctxt "@action" +msgid "Save As with Encodin&g…" +msgstr "ا&حفظ بترميز ك‍…" + +#: view/kateview.cpp:675 +#, kde-format +msgctxt "@action" +msgid "Save Cop&y As…" +msgstr "احفظ نس&خة ك‍..." + +#: view/kateview.cpp:676 +#, kde-format +msgid "Save a copy of the current document to disk." +msgstr "انسخ نسخة من المستند الحاليّ إلى القرص." + +#: view/kateview.cpp:680 +#, kde-format +msgid "" +"This command opens a dialog and lets you choose a line that you want the " +"cursor to move to." +msgstr "يفتح هذا الأمر حواريًّا يتيح لك اختيار سطر تنقل المؤشّر إليه." + +#: view/kateview.cpp:684 +#, kde-format +msgid "Go to Previous Modified Line" +msgstr "اذهب إلى السّطر المعدّل السّابق" + +#: view/kateview.cpp:685 +#, kde-format +msgid "Move upwards to the previous modified line." +msgstr "انتقل لأعلى إلى السطر المعدل السابق." + +#: view/kateview.cpp:690 +#, kde-format +msgid "Go to Next Modified Line" +msgstr "اذهب إلى السّطر المعدّل التّالي" + +#: view/kateview.cpp:691 +#, kde-format +msgid "Move downwards to the next modified line." +msgstr "انتقل لأسفل إلى السطر المعدل التالي." + +#: view/kateview.cpp:695 +#, kde-format +msgctxt "@action" +msgid "&Configure Editor…" +msgstr "ا&ضبط المحرّر…" + +#: view/kateview.cpp:697 +#, kde-format +msgid "Configure various aspects of this editor." +msgstr "اضبط مختلف نواحي هذا المحرّر." + +#: view/kateview.cpp:700 +#, kde-format +msgid "&Mode" +msgstr "الو&ضع" + +#: view/kateview.cpp:706 +#, kde-format +msgid "&Highlighting" +msgstr "الإ&براز" + +#: view/kateview.cpp:708 +#, kde-format +msgid "Here you can choose how the current document should be highlighted." +msgstr "يمكنك هنا اختيار كيف يجب أن يُبرز المستند الحاليّ." + +#: view/kateview.cpp:711 +#, kde-format +msgid "&Editor Color Theme" +msgstr "&سمة ألوان المحرر" + +#: view/kateview.cpp:717 +#, kde-format +msgid "&Indentation" +msgstr "ال&إزاحة" + +#: view/kateview.cpp:726 +#, kde-format +msgid "Select the entire text of the current document." +msgstr "حدّد كامل نصّ المستند الحاليّ." + +#: view/kateview.cpp:729 +#, kde-format +msgid "" +"If you have selected something within the current document, this will no " +"longer be selected." +msgstr "إن حدّدت شيئًا ما داخل المستند، سيزيل هذا تحديده." + +#: view/kateview.cpp:733 +#, kde-format +msgid "Enlarge Font" +msgstr "كبّر الخطّ" + +#: view/kateview.cpp:735 +#, kde-format +msgid "This increases the display font size." +msgstr "يكبّر هذا حجم خطّ العرض." + +#: view/kateview.cpp:742 +#, kde-format +msgid "Shrink Font" +msgstr "قلّص الخطّ" + +#: view/kateview.cpp:744 +#, kde-format +msgid "This decreases the display font size." +msgstr "يصغّر هذا حجم خطّ العرض." + +#: view/kateview.cpp:751 +#, kde-format +msgid "Reset Font Size" +msgstr "صفّر حجم الخط" + +#: view/kateview.cpp:753 +#, kde-format +msgid "This resets the display font size." +msgstr "هذا يصفّر حجم خطّ العرض." + +#: view/kateview.cpp:756 +#, kde-format +msgid "Bl&ock Selection Mode" +msgstr "وضع التّحديد ال&كتليّ" + +#: view/kateview.cpp:759 +#, kde-format +msgid "" +"This command allows switching between the normal (line based) selection mode " +"and the block selection mode." +msgstr "" +"يسمح هذا الأمر بالتّبديل بين وضعي التّحديد العاديّ (السّطريّ) والتّحديد الكتليّ." + +#: view/kateview.cpp:763 +#, kde-format +msgid "Switch to Next Input Mode" +msgstr "بدّل إلى وضع الإدخال التّالي" + +#: view/kateview.cpp:765 +#, kde-format +msgid "Switch to the next input mode." +msgstr "بدّل إلى وضع الدّخل التّالي." + +#: view/kateview.cpp:768 +#, kde-format +msgid "Overwr&ite Mode" +msgstr "وضع الكتابة الفو&قيّة" + +#: view/kateview.cpp:771 +#, kde-format +msgid "" +"Choose whether you want the text you type to be inserted or to overwrite " +"existing text." +msgstr "اختر فيما إذا أردت للنّصّ الذي تكتبه بأن يُدرج أو يكتب فوق النّصّ الموجود." + +#: view/kateview.cpp:775 +#, kde-format +msgid "Show Whitespace" +msgstr "أظهر الفراغ" + +#: view/kateview.cpp:778 +#, kde-format +msgid "" +"If this option is checked, whitespaces in this document will be visible.

This is only a view option, meaning the document will not be changed." +msgstr "" +"إن أُشّر هذا الخيار، فستكون المسافات البيضاء في هذا المستند مرئية.

هذا خيار عرض فقط، مما يعني أن المستند لن يتغير." + +#: view/kateview.cpp:782 +#, kde-format +msgid "&Dynamic Word Wrap" +msgstr "لفّ الكلمات حر&كيًّا" + +#: view/kateview.cpp:786 +#, kde-format +msgid "" +"If this option is checked, the text lines will be wrapped at the view border " +"on the screen.

This is only a view option, meaning the document " +"will not be changed." +msgstr "" +"إن أُشّر هذا الخيار، ستُلّف أسطر النص عند حدّ المنظور في الشّاشة.

هذا " +"خيار عرض فقط، مما يعني أن المستند لن يتغير." + +#: view/kateview.cpp:790 +#, kde-format +msgid "Dynamic Word Wrap Indicators" +msgstr "مؤشرات لف الكلمات الحركي" + +#: view/kateview.cpp:792 +#, kde-format +msgid "Choose when the Dynamic Word Wrap Indicators should be displayed" +msgstr "اختر إذا كان يجب أن تظهر مؤشرات لف الكلمات الحركي." + +#: view/kateview.cpp:794 +#, kde-format +msgid "&Off" +msgstr "مع&طّلة" + +#: view/kateview.cpp:794 +#, kde-format +msgid "Follow &Line Numbers" +msgstr "تتبع أرقام الأ&سطر" + +#: view/kateview.cpp:794 +#, kde-format +msgid "&Always On" +msgstr "&دائمًا تعمل" + +#: view/kateview.cpp:798 +#, kde-format +msgid "Static Word Wrap" +msgstr "لفّ الكلمات الثابت" + +#: view/kateview.cpp:800 +#, kde-format +msgid "" +"If this option is checked, the text lines will be wrapped at the column " +"defined in the editing properties." +msgstr "إن أُشّر هذا الخيار، ستُلّف الأسطر عند العمود المحدد في خصائص التحرير." + +#: view/kateview.cpp:807 +#, kde-format +msgid "Show Static &Word Wrap Marker" +msgstr "أظهر علامة ل&فّ الكلمات الثابت" + +#: view/kateview.cpp:810 +#, kde-format +msgid "" +"Show/hide the Word Wrap Marker, a vertical line drawn at the word wrap " +"column as defined in the editing properties" +msgstr "" +"أظهر/أخفِ علامة لفّ الكلمات، وهي خطّ عمودي يُرسم عند عمود لفّ الكلمات كما هو محدّد " +"في خصائص التّحرير." + +#: view/kateview.cpp:814 +#, kde-format +msgid "Show Folding &Markers" +msgstr "أظهر &علامات الطّي" + +#: view/kateview.cpp:816 +#, kde-format +msgid "" +"You can choose if the codefolding marks should be shown, if codefolding is " +"possible." +msgstr "" +"يمكنك اختيار ما إذا كان يجب إظهار علامات طي الشفرة؛ إذا كان هذا الخيار ممكناَ." + +#: view/kateview.cpp:819 +#, kde-format +msgid "Show &Icon Border" +msgstr "أظهر إ&طار الأيقونات" + +#: view/kateview.cpp:821 +#, kde-format +msgid "" +"Show/hide the icon border.

The icon border shows bookmark " +"symbols, for instance." +msgstr "" +"اعرض/اخف إطار الأيقونات

إطار الأيقونات يعرض العلامات على سبيل " +"المثال." + +#: view/kateview.cpp:824 +#, kde-format +msgid "Show &Line Numbers" +msgstr "أظهر أر&قام الأسطر" + +#: view/kateview.cpp:826 +#, kde-format +msgid "Show/hide the line numbers on the left hand side of the view." +msgstr "إظهار/إخفاء عدد الأسطر على الجانب الأيسر من العرض ." + +#: view/kateview.cpp:829 +#, kde-format +msgid "Show Scroll&bar Marks" +msgstr "أظهر علامات &شريط التّمرير" + +#: view/kateview.cpp:831 +#, kde-format +msgid "" +"Show/hide the marks on the vertical scrollbar.

The marks show " +"bookmarks, for instance." +msgstr "" +"اعرض/اخف العلامات من على شريط التمرير العمودي

تعرض العلامات " +"علامات المفضلة على سبيل المثال." + +#: view/kateview.cpp:834 +#, kde-format +msgid "Show Scrollbar Mini-Map" +msgstr "أظهر خريطة صغيرة على شريط التّمرير" + +#: view/kateview.cpp:836 +#, kde-format +msgid "" +"Show/hide the mini-map on the vertical scrollbar.

The mini-map " +"shows an overview of the whole document." +msgstr "" +"أظهر/أخفِ الخريطة الصّغيرة على شريط التّمرير العمودي.

تعرض هذه " +"الخريطة نظرة عامّة على المستند بالكامل." + +#. i18n("Show the whole document in the Mini-Map"), this); +#. ac->addAction(QLatin1String("view_scrollbar_minimap_all"), a); +#. a->setWhatsThis(i18n("Display the whole document in the mini-map.

With this option set the whole document will be visible in the +#. mini-map.")); connect(a, SIGNAL(triggered(bool)), SlOT(toggleScrollBarMiniMapAll())); connect(m_toggleScrollBarMiniMap, SIGNAL(triggered(bool)), +#. m_toggleScrollBarMiniMapAll, SLOT(setEnabled(bool))); +#: view/kateview.cpp:848 +#, kde-format +msgid "Show Non-Printable Spaces" +msgstr "أظهر المسافات غير المطبوعة" + +#: view/kateview.cpp:850 +#, kde-format +msgid "Show/hide bounding box around non-printable spaces" +msgstr "أظهر/أخفِ مربّع يحيط بالمسافات غير المطبوعة." + +#: view/kateview.cpp:854 +#, kde-format +msgid "Switch to Command Line" +msgstr "حوّل إلى سطر الأوامر" + +#: view/kateview.cpp:856 +#, kde-format +msgid "Show/hide the command line on the bottom of the view." +msgstr "أظهر/أخف سطر الأوامر أدنى المنظور." + +#: view/kateview.cpp:859 +#, kde-format +msgid "Input Modes" +msgstr "أوضاع الدّخل" + +#: view/kateview.cpp:868 +#, kde-format +msgid "Activate/deactivate %1" +msgstr "مكّن/أزل تفعيل %1" + +#: view/kateview.cpp:878 +#, kde-format +msgid "&End of Line" +msgstr "&نهاية السّطر" + +#: view/kateview.cpp:880 +#, kde-format +msgid "Choose which line endings should be used, when you save the document" +msgstr "اختر أيّ نهاية أسطر يجب استخدامها، وذلك عند حفظ المستند." + +#: view/kateview.cpp:881 +#, kde-format +msgctxt "@item:inmenu End of Line" +msgid "&UNIX" +msgstr "يو&نكس" + +#: view/kateview.cpp:882 +#, kde-format +msgctxt "@item:inmenu End of Line" +msgid "&Windows/DOS" +msgstr "&وندوز/دوس" + +#: view/kateview.cpp:883 +#, kde-format +msgctxt "@item:inmenu End of Line" +msgid "&Macintosh" +msgstr "ماكنتو&ش" + +#: view/kateview.cpp:888 +#, kde-format +msgid "Add &Byte Order Mark (BOM)" +msgstr "أضف علامات ترتيب الباي&تات (BOM)" + +#: view/kateview.cpp:891 +#, kde-format +msgid "" +"Enable/disable adding of byte order marks for UTF-8/UTF-16 encoded files " +"while saving" +msgstr "" +"مكّن/عطّل إضافة علامات ترتيب البايتات للملفّات المرمّزة ب‍UTF-8/UTF-16 أثناء الحفظ" + +#: view/kateview.cpp:895 +#, kde-format +msgid "E&ncoding" +msgstr "التّ&رميز" + +#: view/kateview.cpp:899 +#, kde-format +msgid "Look up the first occurrence of a piece of text or regular expression." +msgstr "ابحث عن أوّل حدوث لنصّ ما أو تعبير نمطيّ." + +#: view/kateview.cpp:903 +#, kde-format +msgid "Find Selected" +msgstr "جِد المحدّد" + +#: view/kateview.cpp:905 +#, kde-format +msgid "Finds next occurrence of selected text." +msgstr "جِد الحدوث التّالي للنّصّ المحدّد." + +#: view/kateview.cpp:909 +#, kde-format +msgid "Find Selected Backwards" +msgstr "اعثر على المحدد إلى الوراء" + +#: view/kateview.cpp:911 +#, kde-format +msgid "Finds previous occurrence of selected text." +msgstr "جِد الحدوث السّابق للنّصّ المحدّد." + +#: view/kateview.cpp:915 +#, kde-format +msgid "Find and Select Next Occurrence" +msgstr "ابحث عن الحدث التالي وحدده" + +#: view/kateview.cpp:917 +#, kde-format +msgid "Finds next occurrence of the word under cursor and add it to selection." +msgstr "يبحث عن التواجد التالي للكلمة تحت المؤشر وإضافته إلى التحديد." + +#: view/kateview.cpp:921 +#, kde-format +msgid "Mark Currently Selected Occurrence as Skipped" +msgstr "ضع علامة على الحدث المحدد حالياً على أنك تجاوزته" + +#: view/kateview.cpp:923 +#, kde-format +msgid "Marks the currently selected word as skipped." +msgstr "يضع علامة على الكلمة المحددة حالياً ككلمة متخطاة." + +#: view/kateview.cpp:927 +#, kde-format +msgid "Find and Select All Occurrences" +msgstr "ابحث عن جميع الأحداث وحددها" + +#: view/kateview.cpp:929 +#, kde-format +msgid "Finds all occurrences of the word under cursor and selects them." +msgstr "يبحث عن كل تكرارات الكلمة الموجودة تحت المؤشر ويختارها." + +#: view/kateview.cpp:933 +#, kde-format +msgid "Look up the next occurrence of the search phrase." +msgstr "ابحث عن الحدوث التّالي لعبارة البحث." + +#: view/kateview.cpp:937 +#, kde-format +msgid "Look up the previous occurrence of the search phrase." +msgstr "ابحث عن الحدوث السّابق لعبارة البحث." + +#: view/kateview.cpp:941 +#, kde-format +msgid "" +"Look up a piece of text or regular expression and replace the result with " +"some given text." +msgstr "ابحث عن نصّ ما أو تعبير نمطيّ واستبدل النّتيجة بالنّصّ المُعطى." + +#: view/kateview.cpp:944 +#, kde-format +msgid "Add Cursors to Line Ends" +msgstr "أضف مؤشرات إلى نهايات السطر" + +#: view/kateview.cpp:946 +#, kde-format +msgid "Creates a cursor at the end of every line in selection." +msgstr "إنشاء مؤشر في نهاية كل سطر في التحديد." + +#: view/kateview.cpp:950 +#, kde-format +msgid "Add Caret below Cursor" +msgstr "أضف علامة إقحام أسفل المؤشر" + +#: view/kateview.cpp:952 +#, kde-format +msgid "Adds a caret in the line below the current caret." +msgstr "إضافة علامة إقحام في السطر الموجود أسفل علامة الإقحام الحالية." + +#: view/kateview.cpp:956 +#, kde-format +msgid "Add Caret above Cursor" +msgstr "أضف علامة الإقحام فوق المؤشر" + +#: view/kateview.cpp:958 +#, kde-format +msgid "Adds a caret in the line above the current caret." +msgstr "يضيف علامة إقحام في السطر الموجود أعلى علامة الإقحام الحالية." + +#: view/kateview.cpp:962 +#, kde-format +msgid "Toggle Camel Case Cursor Movement" +msgstr "تبديل حركة المؤشر لحالة الجمل" + +#: view/kateview.cpp:963 +#, kde-format +msgid "Toggle between normal word movement and camel case cursor movement." +msgstr "التبديل بين حركة الكلمة العادية وحركة مؤشر حالة الجمل." + +#: view/kateview.cpp:967 +#, kde-format +msgid "Remove Cursors from Empty Lines" +msgstr "أزل المؤشرات من الأسطر الفارغة" + +#: view/kateview.cpp:968 +#, kde-format +msgid "Remove cursors from empty lines" +msgstr "أزل المؤشرات من الأسطر الفارغة" + +#: view/kateview.cpp:972 +#, kde-format +msgid "Automatic Spell Checking" +msgstr "تدقيق آليّ للهجاء" + +#: view/kateview.cpp:973 +#, kde-format +msgid "Enable/disable automatic spell checking" +msgstr "مكّن/عطّل تدقيق الهجاء الآليّ" + +#: view/kateview.cpp:979 +#, kde-format +msgctxt "@action" +msgid "Change Dictionary…" +msgstr "غيّر القاموس…" + +#: view/kateview.cpp:980 +#, kde-format +msgid "Change the dictionary that is used for spell checking." +msgstr "غيّر القاموس المستخدم في تدقيق الهجاء." + +#: view/kateview.cpp:984 +#, kde-format +msgid "Clear Dictionary Ranges" +msgstr "امحُ حدود القاموس" + +#: view/kateview.cpp:986 +#, kde-format +msgid "" +"Remove all the separate dictionary ranges that were set for spell checking." +msgstr "أزل كافة نطاقات القاموس المنفصلة التي عُينت للتدقيق الإملائي." + +#: view/kateview.cpp:992 +#, kde-format +msgid "Copy as &HTML" +msgstr "انسخ &ك‍HTML" + +#: view/kateview.cpp:993 +#, kde-format +msgid "" +"Copy the selection as HTML, formatted using the current syntax highlighting " +"and color scheme settings." +msgstr "" +"انسخ التحديد بصيغة HTML، منسقًا باستخدام إعدادات تمييز بناء الجملة الحالي " +"ومخطط الألوان." + +#: view/kateview.cpp:997 +#, kde-format +msgctxt "@action" +msgid "E&xport as HTML…" +msgstr "ص&دّر ك‍HTML…" + +#: view/kateview.cpp:999 +#, kde-format +msgid "" +"This command allows you to export the current document with all highlighting " +"information into a HTML document." +msgstr "" +"يسمح هذا الأمر بتصدير المستند الحاليّ بكلّ معلومات الإبراز إلى مستند HTML." + +#: view/kateview.cpp:1038 +#, kde-format +msgid "Move Word Left" +msgstr "انتقل كلمة إلى اليسار" + +#: view/kateview.cpp:1044 +#, kde-format +msgid "Select Character Left" +msgstr "حدّد محرفًا إلى اليسار" + +#: view/kateview.cpp:1050 +#, kde-format +msgid "Select Word Left" +msgstr "حدّد كلمة إلى اليسار" + +#: view/kateview.cpp:1060 +#, kde-format +msgid "Move Word Right" +msgstr "انتقل كلمة إلى اليمين" + +#: view/kateview.cpp:1066 +#, kde-format +msgid "Select Character Right" +msgstr "انتقل كلمة إلى اليمين" + +#: view/kateview.cpp:1072 +#, kde-format +msgid "Select Word Right" +msgstr "انتقل كلمة إلى اليمين" + +#: view/kateview.cpp:1082 +#, kde-format +msgid "Start the Marked Selection" +msgstr "ابدأ التحديد المحدد" + +#: view/kateview.cpp:1083 +#, kde-format +msgid "" +"Emulate the Emacs-like selection mode, where the beginning is marked and " +"then the selection is continuously updated." +msgstr "" +"حاكي وضع التحديد الشبيه بـ Emacs، حيث تُحدد البداية ثم يُحدث التحديد باستمرار." + +#: view/kateview.cpp:1088 +#, kde-format +msgid "Move to Beginning of Line" +msgstr "انتقل إلى بداية السّطر" + +#: view/kateview.cpp:1094 +#, kde-format +msgid "Move to Beginning of Document" +msgstr "انتقل إلى بداية المستند" + +#: view/kateview.cpp:1100 +#, kde-format +msgid "Select to Beginning of Line" +msgstr "حدّد إلى بداية السّطر" + +#: view/kateview.cpp:1110 +#, kde-format +msgid "Select to Beginning of Document" +msgstr "حدّد إلى بداية المستند" + +#: view/kateview.cpp:1120 +#, kde-format +msgid "Move to End of Line" +msgstr "انتقل إلى نهاية السّطر" + +#: view/kateview.cpp:1126 +#, kde-format +msgid "Move to End of Document" +msgstr "انتقل إلى نهاية المستند" + +#: view/kateview.cpp:1132 +#, kde-format +msgid "Select to End of Line" +msgstr "حدّد إلى نهاية السّطر" + +#: view/kateview.cpp:1142 +#, kde-format +msgid "Select to End of Document" +msgstr "حدّد إلى نهاية المستند" + +#: view/kateview.cpp:1152 +#, kde-format +msgid "Select to Previous Line" +msgstr "حدّد إلى السّطر السّابق" + +#: view/kateview.cpp:1158 +#, kde-format +msgid "Scroll Line Up" +msgstr "مرّر سطرًا لأعلى" + +#: view/kateview.cpp:1167 +#, kde-format +msgid "Move to Next Line" +msgstr "انتقل إلى السّطر التّالي" + +#: view/kateview.cpp:1173 +#, kde-format +msgid "Move to Previous Line" +msgstr "انتقل إلى السّطر السّابق" + +#: view/kateview.cpp:1179 +#, kde-format +msgid "Move Cursor Right" +msgstr "حرّك المؤشّر يمينًا" + +#: view/kateview.cpp:1185 +#, kde-format +msgid "Move Cursor Left" +msgstr "حرّك المؤشّر يسارًا" + +#: view/kateview.cpp:1191 +#, kde-format +msgid "Select to Next Line" +msgstr "حدّد إلى السّطر التّالي" + +#: view/kateview.cpp:1197 +#, kde-format +msgid "Scroll Line Down" +msgstr "مرّر سطرًا لأسفل" + +#: view/kateview.cpp:1206 +#, kde-format +msgid "Scroll Page Up" +msgstr "مرّر صفحة لأعلى" + +#: view/kateview.cpp:1212 +#, kde-format +msgid "Select Page Up" +msgstr "حدّد صفحة لأعلى" + +#: view/kateview.cpp:1218 +#, kde-format +msgid "Move to Top of View" +msgstr "انتقل إلى أعلى المنظور" + +#: view/kateview.cpp:1224 +#, kde-format +msgid "Select to Top of View" +msgstr "حدّد إلى أعلى المنظور" + +#: view/kateview.cpp:1230 +#, kde-format +msgid "Scroll Page Down" +msgstr "مرّر صفحة لأسفل" + +#: view/kateview.cpp:1236 +#, kde-format +msgid "Select Page Down" +msgstr "حدّد صفحة لأسفل" + +#: view/kateview.cpp:1242 +#, kde-format +msgid "Move to Bottom of View" +msgstr "انتقل إلى أدنى المنظور" + +#: view/kateview.cpp:1248 +#, kde-format +msgid "Select to Bottom of View" +msgstr "حدّد إلى أدنى المنظور" + +#: view/kateview.cpp:1254 +#, kde-format +msgid "Go to Matching Bracket" +msgstr "اذهب إلى قوس المطابق" + +#: view/kateview.cpp:1260 +#, kde-format +msgid "Select to Matching Bracket" +msgstr "حدّد إلى القوس المطابق" + +#: view/kateview.cpp:1267 +#, kde-format +msgid "Move Sub-Word Right" +msgstr "انقل الكلمة الفرعية إلى اليمين" + +#: view/kateview.cpp:1274 +#, kde-format +msgid "Select Sub-Word Right" +msgstr "حدد الكلمة الفرعية اليمنى" + +#: view/kateview.cpp:1281 +#, kde-format +msgid "Move Sub-Word Left" +msgstr "انقل الكلمة الفرعية إلى اليسار" + +#: view/kateview.cpp:1288 +#, kde-format +msgid "Select Sub-Word Left" +msgstr "حدد الكلمة الفرعية اليسرى" + +#: view/kateview.cpp:1298 +#, kde-format +msgid "Transpose Characters" +msgstr "تبديل الأحرف" + +#: view/kateview.cpp:1303 +#, kde-format +msgid "Transpose Words" +msgstr "تبديل الكلمات" + +#: view/kateview.cpp:1308 +#, kde-format +msgid "Delete Line" +msgstr "احذف السّطر" + +#: view/kateview.cpp:1314 +#, kde-format +msgid "Delete Word Left" +msgstr "احذف الكلمة على اليسار" + +#: view/kateview.cpp:1320 +#, kde-format +msgid "Delete Word Right" +msgstr "احذف الكلمة على اليمين" + +#: view/kateview.cpp:1326 +#, kde-format +msgid "Delete Next Character" +msgstr "احذف المحرف التّالي" + +#: view/kateview.cpp:1332 +#, kde-format +msgid "Backspace" +msgstr "فراغ عكسي" + +#: view/kateview.cpp:1340 +#, kde-format +msgid "Insert Tab Character" +msgstr "أدرج حرف الجدولة" + +#: view/kateview.cpp:1345 +#, kde-format +msgid "Insert Smart Newline" +msgstr "أدرج سطرًا جديدًا ذكيًّا" + +#: view/kateview.cpp:1346 +#, kde-format +msgid "" +"Insert newline including leading characters of the current line which are " +"not letters or numbers." +msgstr "" +"أدرج سطرًا جديدًا بما في ذلك الأحرف البادئة للسطر الحالي التي ليست حروفًا أو " +"أرقامًا." + +#: view/kateview.cpp:1354 +#, kde-format +msgid "Insert a Non-Indented Newline" +msgstr "أدرج سطرًا جديدًا دون إزاحة" + +#: view/kateview.cpp:1355 +#, kde-format +msgid "" +"Insert a new line without indentation, regardless of indentation settings." +msgstr "أدخل سطر جديد دون إزاحة، بغض النظر عن إعدادات الإزاحة." + +#: view/kateview.cpp:1363 +#, kde-format +msgid "Insert a Newline Above Current Line" +msgstr "أدرج سطرًا جديدًا فوق السطر الحالي" + +#: view/kateview.cpp:1364 +#, kde-format +msgid "" +"Insert a new line above current line without modifying the current line." +msgstr "أدخل سطر جديد فوق السطر الحالي دون تعديل السطر الحالي." + +#: view/kateview.cpp:1372 +#, kde-format +msgid "Insert a Newline Below Current Line" +msgstr "أدخل سطرًا جديدًا أسفل السطر الحالي" + +#: view/kateview.cpp:1373 +#, kde-format +msgid "" +"Insert a new line below current line without modifying the current line." +msgstr "أدخل سطر جديد أسفل السطر الحالي دون تعديل السطر الحالي." + +#: view/kateview.cpp:1382 +#, kde-format +msgid "&Indent" +msgstr "أ&زح" + +#: view/kateview.cpp:1384 +#, kde-format +msgid "" +"Use this to indent a selected block of text.

You can configure " +"whether tabs should be honored and used or replaced with spaces, in the " +"configuration dialog." +msgstr "" +"استخدم هذا لإزاحة الكتلة نصية المحددة.

يمكنك ضبط إذا كان يجب " +"احترام علامات الجدولة واستخدامها أو استبدالها بمسافات، في مربع حوار الضبط." + +#: view/kateview.cpp:1391 +#, kde-format +msgid "&Unindent" +msgstr "أ&زل الإزاحة" + +#: view/kateview.cpp:1392 +#, kde-format +msgid "Use this to unindent a selected block of text." +msgstr "استخدم هذا لإزالة إزاحة كتلة النّصّ المحدّدة." + +#: view/kateview.cpp:1398 +#, kde-format +msgid "Delete Sub-Word Left" +msgstr "حذف الكلمة الفرعية اليسرى" + +#: view/kateview.cpp:1405 +#, kde-format +msgid "Delete Sub-Word Right" +msgstr "حذف الكلمة الفرعية اليمنى" + +#: view/kateview.cpp:1426 +#, kde-format +msgid "Fold Toplevel Nodes" +msgstr "اطوِ العقد الأعلى مستوى" + +#: view/kateview.cpp:1430 +#, kde-format +msgid "Unfold Toplevel Nodes" +msgstr "أزل طوي العقد الأعلى مستوى" + +#: view/kateview.cpp:1434 +#, kde-format +msgid "Toggle Current Node" +msgstr "تبديل العقدة الحالية" + +#: view/kateview.cpp:1438 +#, kde-format +msgid "Toggle Contained Nodes" +msgstr "تبديل العقد المتضمنة" + +#: view/kateview.cpp:1447 +#, kde-format +msgid "Say current selection or document" +msgstr "قل الاختيار أو الوثيقة الحالية" + +#: view/kateview.cpp:1457 +#, kde-format +msgid "Stop current output" +msgstr "إيقاف الإخراج الحالي" + +#: view/kateview.cpp:1463 +#, kde-format +msgid "Pause current output" +msgstr "إيقاف الإخراج الحالي مؤقتًا" + +#: view/kateview.cpp:1469 +#, kde-format +msgid "Resume current output" +msgstr "استئناف الإخراج الحالي" + +#: view/kateview.cpp:1640 +#, kde-format +msgid "(R/O) %1" +msgstr "(ق/ف) %1" + +#: view/kateview.cpp:1828 +#, kde-format +msgid "Camel case movement disabled" +msgstr "حركة حالة الجمل معطلة" + +#: view/kateview.cpp:1830 +#, kde-format +msgid "Camel case movement enabled" +msgstr "حركة حالة الجمل ممكنة" + +#: view/kateview.cpp:2349 +#, kde-format +msgid "Search wrapped" +msgstr "البحث ملفوف" + +#: view/kateview.cpp:3043 +#, kde-format +msgid "Open File" +msgstr "افتح ملف" + +#: view/kateview.cpp:3984 +#, kde-format +msgid "Align On" +msgstr "حاذِ على" + +#: view/kateview.cpp:3984 +#, kde-format +msgid "Alignment pattern:" +msgstr "نمط المحاذاة:" + +#: view/kateview.cpp:5068 +#, kde-format +msgid "Export File as HTML" +msgstr "صدّر الملفّ ك‍HTML" + +#: view/kateviewhelpers.cpp:302 view/kateviewhelpers.cpp:351 +#: view/kateviewhelpers.cpp:1012 +#, kde-format +msgctxt "from line - to line" +msgid "
%1

%2
" +msgstr "
%1

%2
" + +#: view/kateviewhelpers.cpp:1212 +#, kde-format +msgid "Available Commands" +msgstr "الأوامر المتوفرّة" + +#: view/kateviewhelpers.cpp:1213 +#, kde-format +msgid "" +"

For help on individual commands, do 'help <command>'" +msgstr "

لتطّلع على مساعدة الأوامر، نفّذ '‪help <الأمر>‬'

" + +#: view/kateviewhelpers.cpp:1220 +#, kde-format +msgid "No help for '%1'" +msgstr "لا مساعدة ل‍'%1'" + +#: view/kateviewhelpers.cpp:1223 +#, kde-format +msgid "No such command %1" +msgstr "لا أمر كهذا %1" + +#: view/kateviewhelpers.cpp:1229 +#, kde-format +msgid "" +"

This is the Katepart command line.
Syntax: command " +"[ arguments ]
For a list of available commands, enter " +"help list
For help for individual commands, enter " +"help <command>

" +msgstr "" +"

هذا سطر أوامر «جزء كيت».
الصّياغة: ‪الأمر ‎" +"[ المعاملات ]‎‬
لتعرف الأوامر المتوفّرة، أدخل help " +"list
لتطّلع على مساعدة الأوامر، نفّذ '‪help <" +"الأمر>‬'

" + +#: view/kateviewhelpers.cpp:1317 vimode/emulatedcommandbar/commandmode.cpp:211 +#, kde-format +msgid "No such command: \"%1\"" +msgstr "لا أمر كهذا: \"%1\"" + +#: view/kateviewhelpers.cpp:1320 vimode/emulatedcommandbar/commandmode.cpp:193 +#, kde-format +msgid "Error: No range allowed for command \"%1\"." +msgstr "خطأ: لا يُسمح بنطاق للأمر \"%1\"." + +#: view/kateviewhelpers.cpp:1330 vimode/emulatedcommandbar/commandmode.cpp:197 +#, kde-format +msgid "Success: " +msgstr "نجح: " + +#: view/kateviewhelpers.cpp:1344 vimode/emulatedcommandbar/commandmode.cpp:206 +#, kde-format +msgid "Command \"%1\" failed." +msgstr "فشل الأمر \"%1\"." + +#: view/kateviewhelpers.cpp:2632 view/kateviewhelpers.cpp:2633 +#, kde-format +msgid "Mark Type %1" +msgstr "نوع العلامة %1" + +#: view/kateviewhelpers.cpp:2656 +#, kde-format +msgid "Set Default Mark Type" +msgstr "عين نوع العلامة المبدئية" + +#: view/kateviewhelpers.cpp:2801 +#, kde-format +msgid "Disable Annotation Bar" +msgstr "عطل شريط التعليقات التوضيحية" + +#: view/screenshotdialog.cpp:175 +#, kde-format +msgid "Save" +msgstr "احفظ" + +#: view/screenshotdialog.cpp:176 +#, kde-format +msgid "Copy" +msgstr "انسخ" + +#: view/screenshotdialog.cpp:177 +#, kde-format +msgctxt "@action:button" +msgid "Background Color…" +msgstr "لون ال&خلفيّة…" + +#: view/screenshotdialog.cpp:179 +#, kde-format +msgid "Show Extra Decorations" +msgstr "أظهر الزخارف الإضافية" + +#: view/screenshotdialog.cpp:180 +#, kde-format +msgid "Show Window Decorations" +msgstr "أظهر زخارف النوافذ" + +#: view/screenshotdialog.cpp:185 +#, kde-format +msgctxt "@title:window" +msgid "Take Screenshot of Selection" +msgstr "خذ لقطة شاشة للتحديد" + +#: view/screenshotdialog.cpp:257 +#, kde-format +msgid "Don't Show Line Numbers" +msgstr "لا تظهر أرقام الأسطر" + +#: view/screenshotdialog.cpp:258 +#, kde-format +msgid "Show Line Numbers From 1" +msgstr "أظهر أرقام الأسطر من 1" + +#: view/screenshotdialog.cpp:259 +#, kde-format +msgid "Show Actual Line Numbers" +msgstr "أظهر أرقام الأسطر الفعلية" + +#: view/screenshotdialog.cpp:422 +#, kde-format +msgctxt "@title:window" +msgid "Screenshot saving failed" +msgstr "فشل حفظ لقطة الشاشة" + +#: view/screenshotdialog.cpp:422 +#, kde-format +msgid "Screenshot saving failed: %1" +msgstr "فشل حفظ لقطة الشاشة: %1" + +#: vimode/appcommands.cpp:67 +#, kde-format +msgid "All documents written to disk" +msgstr "كُتبت كلّ المستندات إلى القرص" + +#: vimode/appcommands.cpp:70 +#, kde-format +msgid "Document written to disk" +msgstr "كُتب المستند إلى القرص" + +#: vimode/appcommands.cpp:202 +#, kde-format +msgid "" +"

w/wa — write document(s) to disk

Usage: w[a]

Writes the current document(s) to disk. It can be called in " +"two ways:
w — writes the current document to disk
" +"wa — writes all documents to disk.

If no file name is " +"associated with the document, a file dialog will be shown.

" +msgstr "" +"

w/wa — كتابة المستندات على القرص

الاستخدام: " +"w[a]

يكتب المستندات الحالية على القرص. ويمكن استدعاؤه " +"بطريقتين:
w — كتابة المستند الحالي على القرص
wa — كتابة جميع المستندات على القرص.

إذا لم يكن هناك " +"اسم ملف مرتبط بالمستند، فسيعرض مربع حوار ملف.

" + +#: vimode/appcommands.cpp:213 +#, kde-format +msgid "" +"

q/qa/wq/wqa — [write and] quit

Usage: [w]q[a]

Quits the application. If w is prepended, it also " +"writes the document(s) to disk. This command can be called in several ways:" +"
q — closes the current view.
qa — " +"closes all views, effectively quitting the application.
wq " +"— writes the current document to disk and closes its view.
" +"wqa — writes all documents to disk and quits.

In all " +"cases, if the view being closed is the last view, the application quits. If " +"no file name is associated with the document and it should be written to " +"disk, a file dialog will be shown.

" +msgstr "" +"

q/qa/wq/wqa — [write and] quit

الاستخدام: " +"[w]q[a]

إنهاء التطبيق. إذا أضيفت w مسبقًا، " +"فإنه يكتب أيضًا المستندات على القرص. يمكن استدعاء هذا الأمر بعدة طرق:
q — يغلق العرض الحالي.
qa — يغلق جميع " +"العروض، وينهي التطبيق فعليًا.
wq — يكتب المستند الحالي " +"على القرص ويغلق عرضه.
wqa — يكتب جميع المستندات على " +"القرص وينهي.

في جميع الحالات، إذا كان العرض المُغلق هو العرض الأخير، " +"فإن التطبيق يخرج. إذا لم يكن هناك اسم ملف مرتبط بالمستند وكان يجب كتابته على " +"القرص، فسيعرض مربع حوار الملف.

" + +#: vimode/appcommands.cpp:228 +#, kde-format +msgid "" +"

x/xa — write and quit

Usage: x[a]

Saves document(s) and quits (exits). This command can be called " +"in two ways:
x — closes the current view.
xa — closes all views, effectively quitting the application.

In " +"all cases, if the view being closed is the last view, the application quits. " +"If no file name is associated with the document and it should be written to " +"disk, a file dialog will be shown.

Unlike the 'w' commands, this " +"command only writes the document if it is modified.

" +msgstr "" +"

x/xa — اكتب وأنه

الاستخدام: x[a]

يحفظ المستندات ويخرج منها (exits). يمكن استدعاء هذا الأمر " +"بطريقتين:
x — يغلق العرض الحالي.
xa " +"— يغلق جميع العروض، ويخرج التطبيق فعليًا.

في جميع الحالات، إذا " +"كان العرض المُغلق هو العرض الأخير، يخرج التطبيق. إذا لم يكن هناك اسم ملف " +"مرتبط بالمستند ويجب كتابته على القرص، فسيُعرض مربع حوار ملف.

على عكس " +"أوامر \"w\"، يكتب هذا الأمر المستند فقط إذا عُدل.

" + +#: vimode/appcommands.cpp:242 +#, kde-format +msgid "" +"

sp,split— Split horizontally the current view into two

Usage: sp[lit]

The result is two views on the " +"same document.

" +msgstr "" +"

sp,split— تقسيم العرض الحالي أفقيًا إلى عرضين

الاستخدام: sp[lit]

النتيجة هي عرضين على نفس " +"المستند.

" + +#: vimode/appcommands.cpp:248 +#, kde-format +msgid "" +"

vs,vsplit— Split vertically the current view into two

Usage: vs[plit]

The result is two views on the " +"same document.

" +msgstr "" +"

vs,vsplit— تقسيم العرض الحالي عموديًا إلى عرضين

الاستخدام: vs[plit]

النتيجة هي عرضين على نفس " +"المستند.

" + +#: vimode/appcommands.cpp:254 +#, kde-format +msgid "" +"

clo[se]— Close the current view

Usage: clo[se]

After executing it, the current view will be closed.

" +msgstr "" +"

clo[se]— إغلاق العرض الحالي

الاستخدام: clo[se]

بعد تنفيذه، سيغلق العرض الحالي.

" + +#: vimode/appcommands.cpp:260 +#, kde-format +msgid "" +"

[v]new — split view and create new document

Usage: " +"[v]new

Splits the current view and opens a new " +"document in the new view. This command can be called in two ways:
" +"new — splits the view horizontally and opens a new document." +"
vnew — splits the view vertically and opens a new " +"document.

" +msgstr "" +"

[v]new — تقسيم العرض وإنشاء مستند جديد

الاستخدام: " +"[v]new

تقسيم العرض الحالي وفتح مستند جديد في العرض " +"الجديد. يمكن استدعاء هذا الأمر بطريقتين:
new — تقسيم " +"العرض أفقيًا وفتح مستند جديد.
vnew — تقسيم العرض عموديًا " +"وفتح مستند جديد.

" + +#: vimode/appcommands.cpp:270 +#, kde-format +msgid "" +"

e[dit] — reload current document

Usage: e[dit]

Starts editing the current document again. This is " +"useful to re-edit the current file, when it was modified on disk.

" +msgstr "" +"

e[dit] — إعادة تحميل المستند الحالي

الاستخدام: " +"e[dit]

يبدأ تحريرالمستند الحالي مرة أخرى. وهذا " +"مفيد لإعادة تحرير الملف الحالي، عندما يُعدل على القرص.

" + +#: vimode/appcommands.cpp:518 +#, kde-format +msgid "" +"

b,buffer — Edit document N from the document list

Usage: b[uffer] [N]

" +msgstr "" +"

b,buffer - تحرير المستند N من قائمة المستندات

الاستخدام: " +"b[uffer] [N]

" + +#: vimode/appcommands.cpp:523 +#, kde-format +msgid "" +"

bp,bprev — previous buffer

Usage: bp[revious] " +"[N]

Goes to [N]th previous document (\"buffer" +"\") in document list.

[N] defaults to one.

Wraps " +"around the start of the document list.

" +msgstr "" +"

bp,bprev — previous buffer

الاستخدام: " +"bp[revious] [N]

ينتقل إلى المستند السابق [N] " +"(\"buffer\") في قائمة المستندات.

[N] يكون مبدئيًا " +"واحدًا.

يلتف حول بداية قائمة المستندات.

" + +#: vimode/appcommands.cpp:531 +#, kde-format +msgid "" +"

bn,bnext — switch to next document

Usage: " +"bn[ext] [N]

Goes to [N]th next document " +"(\"buffer\") in document list.[N] defaults to one.

Wraps around the end of the document list.

" +msgstr "" +"

bn,bnext — التبديل إلى المستند التالي

الاستخدام: " +"bn[ext] [N]

ينتقل إلى المستند التالي ([N]) " +"(\"buffer\") في قائمة المستندات.[N] يكون مبدئيًا واحدًا.

يلتف حول نهاية قائمة المستندات.

" + +#: vimode/appcommands.cpp:539 +#, kde-format +msgid "" +"

bf,bfirst — first document

Usage: bf[irst]

Goes to the first document (\"buffer\") in document " +"list.

" +msgstr "" +"

bf,bfirst — المستند الأول

الاستخدام: bf[irst]

ينتقل إلى المستند first (\"buffer\") في قائمة " +"المستندات.

" + +#: vimode/appcommands.cpp:545 +#, kde-format +msgid "" +"

bl,blast — last document

Usage: bl[ast]

Goes to the last document (\"buffer\") in document " +"list.

" +msgstr "" +"

bl,blast — المستند الأخير

الاستخدام: bl[ast]

ينتقل إلى المستند الأخير (\"buffer\") في قائمة " +"المستندات.

" + +#: vimode/appcommands.cpp:551 +#, kde-format +msgid "

ls

list current buffers

" +msgstr "

ls

قائمة المخازن المؤقتة الحالية

" + +#: vimode/cmds.cpp:52 +#, kde-format +msgid "Missing argument. Usage: %1 " +msgstr "المعامل ناقص. الاستخدام: %1 <من>" + +#: vimode/cmds.cpp:68 +#, kde-format +msgid "No mapping found for \"%1\"" +msgstr "لم يعثر على ربط لـ \"%1\"" + +#: vimode/cmds.cpp:71 +#, kde-format +msgid "\"%1\" is mapped to \"%2\"" +msgstr "رُبط \"%1\" إلى \"%2\"" + +#: vimode/cmds.cpp:77 +#, kde-format +msgid "Missing argument(s). Usage: %1 []" +msgstr "وسيط مفقود. الاستخدام: %1 <من> [<إلى>]" + +#: vimode/cmds.cpp:145 vimode/cmds.cpp:161 +#, kde-format +msgid "Wrong arguments" +msgstr "المعاملات خاطئة" + +#: vimode/config/configtab.cpp:205 +#, kde-format +msgid "Unable to open the config file for reading." +msgstr "تعذّر فتح ملفّ الضّبط للقراءة." + +#: vimode/config/configtab.cpp:205 +#, kde-format +msgid "Unable to open file" +msgstr "تعذّر فتح الملفّ" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkViCommandsOverride) +#: vimode/config/configwidget.ui:35 +#, kde-format +msgid "" +"When selected, vi commands will override Kate's built-in commands. For " +"example: Ctrl+R will redo, and override the standard action (showing the " +"search and replace dialog)." +msgstr "" +"إن حُدّد، فستغلب أوامر في‌آي على أوامر «كيت» المضمّنة. فمثلًا، Ctrl+R ستكرّر، " +"وستغلب على الإجراء القياسيّ (إظهار حواريّ البحث والاستبدال)." + +#. i18n: ectx: property (text), widget (QCheckBox, chkViCommandsOverride) +#: vimode/config/configwidget.ui:38 +#, kde-format +msgid "Let Vi commands override Kate shortcuts" +msgstr "فلتغلب أوامر في‌آي على اختصارات «كيت»" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkViRelLineNumbers) +#: vimode/config/configwidget.ui:45 +#, kde-format +msgid "" +"Show the line number relative to the line with the cursor in front of each " +"line." +msgstr "أظهر رقم السطر بالنسبة إلى السطر الذي يوجد به المؤشر أمام كل سطر." + +#. i18n: ectx: property (text), widget (QCheckBox, chkViRelLineNumbers) +#: vimode/config/configwidget.ui:48 +#, kde-format +msgid "Display relative line numbers" +msgstr "اعرض أرقام الأسطر النسبية" + +#. i18n: ectx: property (whatsThis), widget (QGroupBox, groupBox) +#: vimode/config/configwidget.ui:63 +#, kde-format +msgid "" +"Key mapping is used to change the meaning of typed keys. This allows you to " +"move commands to other keys or make special keypresses for doing a series of " +"commands.\n" +"\n" +"Example:\n" +"\"\" → \"I-- \"\n" +"\n" +"This will prepend \"-- \" to a line when pressing F2." +msgstr "" +"تُستخدم عملية تعيين المفاتيح لتغيير معنى المفاتيح المكتوبة. يتيح لك هذا نقل " +"الأوامر إلى مفاتيح أخرى أو إجراء ضغطات مفاتيح خاصة لتنفيذ سلسلة من الأوامر.\n" +"\n" +"مثال:\n" +"\"\" → \"I-- \"\n" +"\n" +"سيؤدي هذا إلى إضافة \"-- \" إلى سطر عند الضغط على F2." + +#. i18n: ectx: property (title), widget (QGroupBox, groupBox) +#: vimode/config/configwidget.ui:66 +#, kde-format +msgid "Key Mapping" +msgstr "ربط المفاتيح" + +#. i18n: ectx: attribute (title), widget (QWidget, normalTab) +#: vimode/config/configwidget.ui:76 +#, kde-format +msgid "Normal mode" +msgstr "الوضع العاديّ" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:95 vimode/config/configwidget.ui:133 +#: vimode/config/configwidget.ui:171 +#, kde-format +msgid "Command" +msgstr "الأمر" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:100 vimode/config/configwidget.ui:138 +#: vimode/config/configwidget.ui:176 +#, kde-format +msgid "Replacement" +msgstr "الاستبدال" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:105 vimode/config/configwidget.ui:143 +#: vimode/config/configwidget.ui:181 +#, kde-format +msgid "Recursive?" +msgstr "تكراريّ؟" + +#. i18n: ectx: attribute (title), widget (QWidget, insertTab) +#: vimode/config/configwidget.ui:114 +#, kde-format +msgid "Insert mode" +msgstr "وضع الإدراج" + +#. i18n: ectx: attribute (title), widget (QWidget, visualTab) +#: vimode/config/configwidget.ui:152 +#, kde-format +msgid "Visual mode" +msgstr "الوضع المرئيّ" + +#. i18n: ectx: property (text), widget (QPushButton, btnRemoveSelectedRows) +#: vimode/config/configwidget.ui:195 +#, kde-format +msgid "Remove selected" +msgstr "أزل المحدّد" + +#. i18n: ectx: property (text), widget (QPushButton, btnAddNewRow) +#: vimode/config/configwidget.ui:202 +#, kde-format +msgid "Add new mapping" +msgstr "أضف ربطًا جديدًا" + +#. i18n: ectx: property (toolTip), widget (QPushButton, btnImportNormal) +#: vimode/config/configwidget.ui:209 +#, kde-format +msgid "" +"Read a vimrc file and attempt to import mappings specified with the " +"\"[n]noremap\" command." +msgstr "" +"اقرأ ملف vimrc وحاول استيراد التعيينات المحددة باستخدام الأمر \"[n]noremap\"." + +#. i18n: ectx: property (text), widget (QPushButton, btnImportNormal) +#: vimode/config/configwidget.ui:212 +#, kde-format +msgid "Import from vimrc file" +msgstr "استورد من ملفّ vimrc" + +#: vimode/marks.cpp:117 +#, kde-format +msgid "Mark set: %1" +msgstr "مجموعة العلامات: %1" + +#: vimode/marks.cpp:163 +#, kde-format +msgid "There are no more chars for the next bookmark." +msgstr "لا يوجد المزيد من الأحرف للإشارة المرجعية التالية." + +#: vimode/modes/insertvimode.cpp:261 vimode/modes/modebase.cpp:794 +#: vimode/modes/normalvimode.cpp:3567 +#, kde-format +msgid "Nothing in register %1" +msgstr "لا شيء في السجل %1" + +#: vimode/modes/normalvimode.cpp:1691 +#, kde-format +msgid "'%1' %2, Hex %3, Octal %4" +msgstr "'%1' %2، السّت عشري %3، الثّمانيّ %4" + +#: vimode/modes/normalvimode.cpp:2534 +#, kde-format +msgid "Mark not set: %1" +msgstr "لم تعين العلامة: %1" + +#~ msgid "Enable camel case cursor movement" +#~ msgstr "مكِّن حركة حالة الجمل للمؤشر" + +#~ msgid "The file '%1' was created on disk." +#~ msgstr "أنشأ الملفّ '%1' على القرص." + +#~ msgid "" +#~ "Use this command to copy the currently selected text as HTML to the " +#~ "system clipboard." +#~ msgstr "استخدم هذا الأمر لنسخ النّص المحدّد حاليًّا ك‍HTML إلى حافظة النّظام." + +#~ msgctxt "Wrap words at (value is at 20 or larger)" +#~ msgid " character" +#~ msgid_plural " characters" +#~ msgstr[0] " (لا محارف)" +#~ msgstr[1] " (محرف واحد)" +#~ msgstr[2] " (محرفان)" +#~ msgstr[3] " محارف" +#~ msgstr[4] " محرفًا" +#~ msgstr[5] " محرف" + +#, fuzzy +#~| msgid "&Save As..." +#~ msgid "Save..." +#~ msgstr "ا&حفظ ك‍..." + +#~ msgid "&Copy..." +#~ msgstr "ا&نسخ…" + +#~ msgid "Other..." +#~ msgstr "أخرى..." + +#, fuzzy +#~| msgid "&Align" +#~ msgid "&Align On..." +#~ msgstr "حا&ذِ" + +#~ msgid "Change Dictionary..." +#~ msgstr "غيّر القاموس..." + +#~ msgid "The file %1 does not exist." +#~ msgstr "الملفّ %1 غير موجود." + +#~ msgid "" +#~ "The file %1 could not be loaded, as it was not possible to read from it.\n" +#~ "\n" +#~ "Check if you have read access to this file." +#~ msgstr "" +#~ "تعذّر تحميل الملفّ %1، إذ لم يكن ممكنًا قراءته.\n" +#~ "\n" +#~ "افحص صلاحيّات القراءة لديك للملفّ." + +#~ msgid "" +#~ "The file %1 was opened with %2 encoding but contained invalid characters. " +#~ "It is set to read-only mode, as saving might destroy its content. Either " +#~ "reopen the file with the correct encoding chosen or enable the read-write " +#~ "mode again in the tools menu to be able to edit it." +#~ msgstr "" +#~ "فُتح الملفّ %1 بالتّرميز %2 ولكنّه يحوي محارف غير صالحة. ضُبط الملفّ إلى وضع " +#~ "القراءة فقط، إذ أنّ الحفظ قد يتلف محتواه. إمّا أن تعيد فتح الملفّ بالتّرميز " +#~ "الصّحيح أو أن تفعّل وضع القراءة فقط مجدّدًا من قائمة \"أدوات\" لتحرّره." + +#~ msgid "" +#~ "The file %1 was opened and contained lines longer than the configured " +#~ "Line Length Limit (%2 characters).
The longest of those lines was %3 " +#~ "characters long
Those lines were wrapped and the document is set to " +#~ "read-only mode, as saving will modify its content." +#~ msgstr "" +#~ "فُتح الملفّ %1 وكان يحوي أسطرًا أطور من حدّ طول الأسطر المضبوط (%2 من " +#~ "المحارف).
أطول هذه الأسطر كان بطول %3 من المحارف
لُفّت هذه الأسطر " +#~ "وضُبط وضع المستند إلى القراءة فقط، حيث أنّ الحفظ سيعدّل محتواه." + +#~ msgid "Error loading script %1\n" +#~ msgstr "خطأ في تحميل السّكربت %1\n" + +#~ msgid "Export/Print" +#~ msgstr "صدّر/اطبع" + +#~ msgid "Namespaces" +#~ msgstr "نطاقات الأسماء" + +#~ msgid "Classes" +#~ msgstr "الأصناف" + +#~ msgid "Structs" +#~ msgstr "البنى" + +#~ msgid "Unions" +#~ msgstr "الاتّحادات" + +#~ msgid "Functions" +#~ msgstr "الدّوال" + +#~ msgid "Enumerations" +#~ msgstr "القوائم" + +#~ msgid "Preview:" +#~ msgstr "معاينة:" + +#~ msgctxt "Script command name" +#~ msgid "Expand abbreviation" +#~ msgstr "وسّع الاختصار" + +#~ msgid "Choo&se Font..." +#~ msgstr "ا&ختر خطًّا..." + +#~ msgctxt "Script command category" +#~ msgid "Quick Coding" +#~ msgstr "البرمجة السّريعة" + +#~ msgid "Expand Quick Coding Abbreviation" +#~ msgstr "وسّع اختصار البرمجة السّريعة" + +#~ msgid "Go To" +#~ msgstr "انتقل إلى" + +#, fuzzy +#~| msgid "&Default schema for %1:" +#~ msgid "&Default theme for %1:" +#~ msgstr "مخطّط %1 الافتراضيّ:" + +#, fuzzy +#~| msgid "Automatic Spell Checking" +#~ msgid "Automatic Selection" +#~ msgstr "تدقيق آليّ للهجاء" + +#~ msgid "" +#~ "Meaning of current icon: Document was not modified since it was loaded" +#~ msgstr "معنى الأيقونة الحاليّة: لم يُعدّل المستند منذ تحميله" + +#~ msgid "Meaning of current icon: Document was modified since it was loaded" +#~ msgstr "معنى الأيقونة الحاليّة: عُدّل المستند منذ تحميله" + +#, fuzzy +#~| msgid "" +#~| "Meaning of current icon: Document was modified or deleted by another " +#~| "program" +#~ msgid "Meaning of current icon: Document was modified or deleted on disk" +#~ msgstr "معنى الأيقونة الحاليّة: عُدّل المستند أو حُذف ببرنامج آخر" + +#, fuzzy +#~| msgid "Meaning of current icon: Document was modified since it was loaded" +#~ msgid "Meaning of current icon: Document is in read-only mode" +#~ msgstr "معنى الأيقونة الحاليّة: عُدّل المستند منذ تحميله" + +#~ msgctxt "Autoindent mode" +#~ msgid "Lua" +#~ msgstr "لوا" + +#~ msgid "Show &folding markers" +#~ msgstr "أظهر علامات ال&طّي" + +#~ msgid "Show &icon border" +#~ msgstr "أظهر ح&دّ الأيقونات" + +#~ msgid "Show line modification markers" +#~ msgstr "أظهر إشارات تعديل الأسطر" + +#~ msgid "" +#~ "Choose how the bookmarks should be ordered in the Bookmarks menu." +#~ msgstr "اختر كيفيّة ترتيب العلامات في قائمة علامات." + +#~ msgid "B&y creation" +#~ msgstr "بالإن&شاء" + +#~ msgid "By posi&tion" +#~ msgstr "بالم&كان" + +#~ msgid "" +#~ "

Backing up on save will cause Kate to copy the disk file to '<" +#~ "prefix><filename><suffix>' before saving changes.

The " +#~ "suffix defaults to ~ and prefix is empty by default." +#~ msgstr "" +#~ "

النّسخ الاحتياطيّ عند الحفظ سيجعل «كيت» ينسخ ملفّ القرص إلى '<سابقة>" +#~ "<اسم‌الملف><لاحقة>' قبل حفظ التّغييرات.

القيمة الافتراضيّة " +#~ "للّاحقة هو ~ وللسّابقة لا شيء." + +#~ msgid "Backup on Save" +#~ msgstr "النّسخ الاحتياطيّ عند الحفظ" + +#~ msgid "&Prefix:" +#~ msgstr "ال&سّابقة:" + +#~ msgid "&Suffix:" +#~ msgstr "اللا&حقة:" + +#~ msgid "Disable" +#~ msgstr "معطّل" + +#~ msgid "Enable" +#~ msgstr "مفعّل" + +#~ msgid "Alternative Directory" +#~ msgstr "دليل بديل" + +#~ msgid "Directory:" +#~ msgstr "الدّليل:" + +#~ msgid "Directory for swp files" +#~ msgstr "دليل ملفّات التّبديل" + +#~ msgid "Sync every:" +#~ msgstr "زامن كلّ:" + +#~ msgid "" +#~ "Be aware, that disabling the swap file synchronization may lead to data " +#~ "loss in case of a system crash." +#~ msgstr "" +#~ "انتبه إلى أنّ تعطيل مزامنة ملفّ التّبديل قد يؤدّي إلى فقدان البيانات عند " +#~ "انهيار النّظام." + +#~ msgid "Enable static &word wrap" +#~ msgstr "فعّل لفّ الكلمات &سكونيًّا" + +#, fuzzy +#~| msgid "Show Static &Word Wrap Marker" +#~ msgid "Show static word wra&p marker" +#~ msgstr "أظهر علامة ل&فّ الكلمات سكونيًّا" + +#~ msgid "Input Mode" +#~ msgstr "وضع الدّخل" + +#~ msgid "Enable automatic brackets" +#~ msgstr "فعّل الأقواس الآليّة" + +#, fuzzy +#~| msgid "Cursor && Selection" +#~ msgid "Chars to enclose selection:" +#~ msgstr "المؤشرة والتحديد" + +#, fuzzy +#~ msgid "&Align dynamically wrapped lines to indentation depth:" +#~ msgstr "حاذِ الأسطر الملفوفة حركيًّا إلى عمق الإبراز:" + +#~ msgid "" +#~ "If this option is checked, the text lines will be wrapped at the view " +#~ "border on the screen." +#~ msgstr "إن أُشّر هذا الخيار، ستُلّف الأسطر عند حدّ المنظور في الشّاشة." + +#, fuzzy +#~ msgid "D&ynamic word wrap indicators (if applicable):" +#~ msgstr "مؤشّرات لفّ ال&كلمات حركيًّا " + +#, fuzzy +#~| msgctxt "value for variale remove-trailing-spaces" +#~| msgid "all" +#~ msgid "All" +#~ msgstr "الكلّ" + +#, fuzzy +#~| msgid "Highlighting for Ferite" +#~ msgid "Highlight marker size:" +#~ msgstr "إبراز فرّيت" + +#, fuzzy +#~| msgid "&Highlight tabulators" +#~ msgid "Highlight tabulators" +#~ msgstr "أبرز ال&جدولات" + +#, fuzzy +#~ msgid "Prefix" +#~ msgstr "السّابقة" + +#, fuzzy +#~ msgid "Icon" +#~ msgstr "الأيقونة" + +#~ msgid "Name" +#~ msgstr "الاسم" + +#, fuzzy +#~ msgid "Arguments" +#~ msgstr "المعاملات" + +#, fuzzy +#~ msgid "Public" +#~ msgstr "العامّ" + +#, fuzzy +#~ msgid "Protected" +#~ msgstr "المحميّ" + +#, fuzzy +#~ msgid "Private" +#~ msgstr "الخاصّ" + +#, fuzzy +#~ msgid "Constant" +#~ msgstr "الثّابت" + +#, fuzzy +#~ msgid "Namespace" +#~ msgstr "نطاق الأسماء" + +#, fuzzy +#~ msgid "Class" +#~ msgstr "الصّنف" + +#, fuzzy +#~ msgid "Struct" +#~ msgstr "البنية" + +#, fuzzy +#~ msgid "Union" +#~ msgstr "الاتّحاد" + +#, fuzzy +#~ msgid "Function" +#~ msgstr "الدّالة" + +#, fuzzy +#~ msgid "Variable" +#~ msgstr "المتغيّر" + +#, fuzzy +#~ msgid "Template" +#~ msgstr "القالب" + +#, fuzzy +#~ msgid "Virtual" +#~ msgstr "افتراضي" + +#, fuzzy +#~ msgid "Override" +#~ msgstr "تجاوز" + +#, fuzzy +#~ msgid "Inline" +#~ msgstr "في السطر" + +#, fuzzy +#~ msgid "Friend" +#~ msgstr "صديق" + +#, fuzzy +#~ msgid "Signal" +#~ msgstr "إشارة" + +#, fuzzy +#~ msgid "Slot" +#~ msgstr "فتحة" + +#, fuzzy +#~ msgid "Local Scope" +#~ msgstr "مدى محلي" + +#, fuzzy +#~ msgid "Namespace Scope" +#~ msgstr "مدى فضاء تسمية" + +#, fuzzy +#~ msgid "Global Scope" +#~ msgstr "مدى شامل" + +#, fuzzy +#~ msgid "Unknown Property" +#~ msgstr "خاصية مجهولة" + +#~ msgid "Code Completion Configuration" +#~ msgstr "ضبط إكمال الكود" + +#~ msgid "Description" +#~ msgstr "الوصف" + +#~ msgid "Edit Entry..." +#~ msgstr "حرّر المدخلة..." + +#~ msgid "Remove Entry" +#~ msgstr "احذف المدخلة" + +#~ msgid "Add Entry..." +#~ msgstr "أضف مدخلة..." + +#~ msgid "Further Notes" +#~ msgstr "ملاحظات أخرى" + +#, fuzzy +#~ msgid "" +#~ "

The entries are accessible through the submenu Commands in the " +#~ "Tools menu. For faster access it is possible to assign " +#~ "shortcuts in the shortcut configuration page after applying the " +#~ "changes.

" +#~ msgstr "" +#~ "

يمكن الوصول إلى المدخلات عبر قائمة Commands الفرعيّة في قائمة " +#~ "أدوات. لنفاذ أسرع يمكن إسناد اختصارات في صفحة ضبط " +#~ "الاختصارات بعد تطبيق التّغييرات.

" + +#~ msgid "Edit Command" +#~ msgstr "حرّر الأمر" + +#~ msgid "&Associated command:" +#~ msgstr "الأمر المرتب&ط:" + +#~ msgid "Choose an icon." +#~ msgstr "اختر أيقونة." + +#~ msgid "

This icon will be displayed in the menu and toolbar.

" +#~ msgstr "

ستظهر هذه الأيقونة في القائمة وشريط الأدوات.

" + +#~ msgid "&Description:" +#~ msgstr "ال&وصف:" + +#~ msgid "&Category:" +#~ msgstr "ال&فئة:" + +#~ msgid "Sorting" +#~ msgstr "الفرز" + +#~ msgid "Alphabetical" +#~ msgstr "أبجديًّا" + +#~ msgid "Reverse" +#~ msgstr "بالعكس" + +#~ msgid "Case sensitive" +#~ msgstr "حسّاس للحالة" + +#~ msgid "Inheritance depth" +#~ msgstr "عمق التّوارث" + +#~ msgid "Order of Groupings (select a grouping method to configure):" +#~ msgstr "ترتيب التّجميع (اختر طريقة تجميع لضبطها):" + +#~ msgid "^" +#~ msgstr "^" + +#~ msgid "\\/" +#~ msgstr "\\/" + +#~ msgid "Filtering" +#~ msgstr "التّرشيح" + +#~ msgid "Suitable context matches only" +#~ msgstr "التّطابقات المناسبة للسياق فقط" + +#~ msgid "Hide completions with the following attributes:" +#~ msgstr "أخفِ كلمات الإكمال بالصّفات الآتية:" + +#~ msgid "Maximum inheritance depth:" +#~ msgstr "عمق التّوارث الأقصى:" + +#~ msgid "Infinity" +#~ msgstr "ما لا نهاية" + +#~ msgid "Grouping" +#~ msgstr "التّجميع" + +#~ msgid "Grouping Method" +#~ msgstr "طريقة التّجميع" + +#, fuzzy +#~ msgid "Scope type (local, namespace, global)" +#~ msgstr "نوع المدى (محلي، فضاء تسمية، شامل)" + +#, fuzzy +#~ msgid "Scope (eg. per class)" +#~ msgstr "المدى (مثلا بالنسبة لصنف)" + +#~ msgid "Access type (public etc.)" +#~ msgstr "نوع النّفاذ (عامّ، إلخ)" + +#~ msgid "Item type (function etc.)" +#~ msgstr "نوع العنصر (دالّة، إلخ)" + +#~ msgid "Access Grouping Properties" +#~ msgstr "النّفاذ إلى خصائص المجموعة" + +#~ msgid "Include signals and slots in grouping" +#~ msgstr "ضمّن الإشارات والأتلام في التّجميع" + +#~ msgid "Item Grouping properties" +#~ msgstr "خصائص تجميع العناصر" + +#~ msgid "Include templates in grouping" +#~ msgstr "ضمّن القوالب في التّجميع" + +#~ msgid "Column Merging" +#~ msgstr "دمج الأعمدة" + +#~ msgid "Columns" +#~ msgstr "الأعمدة" + +#, fuzzy +#~| msgid "(c) 2000-2016 The Kate Authors" +#~ msgid "(c) 2000-2019 The Kate Authors" +#~ msgstr "© 2000-2016 مؤلّفو «كيت»" + +#~ msgid "How do you want to import the schema?" +#~ msgstr "كيف تريد استيراد المخطّط؟" + +#~ msgid "Replace current schema?" +#~ msgstr "أأستبدل المخطّط الحاليّ؟" + +#~ msgid "Replace existing schema %1" +#~ msgstr "استبدل المخطّط %1 الموجود" + +#~ msgid "Import as new schema:" +#~ msgstr "استورد كمخطّط جديد:" + +#~ msgid "Loading all highlightings for schema" +#~ msgstr "يحمّل كلّ إبرازات المخطّط" + +#~ msgid "Importing colors for single highlighting" +#~ msgstr "استيراد ألوان لإبراز واحد" + +#~ msgid "Kate color schema" +#~ msgstr "مخطّط ألوان كيت" + +#~ msgid "File is not a single highlighting color file" +#~ msgstr "الملفّ ليس ملفّ ألوان إبراز واحد" + +#~ msgid "Fileformat error" +#~ msgstr "خطأ في نسق الملفّ" + +#~ msgid "The selected file contains colors for a non existing highlighting:%1" +#~ msgstr "الملفّ المحدّد يحوي ألوان لإبراز غير موجود: %1" + +#~ msgid "Import failure" +#~ msgstr "فشل في الاستيراد" + +#~ msgid "Colors have been imported for highlighting: %1" +#~ msgstr "استوردت الألوان للإبراز: %1" + +#~ msgid "Import has finished" +#~ msgstr "انتهى الاستيراد" + +#~ msgid "Exporting colors for single highlighting: %1" +#~ msgstr "تصدير ألوان إبراز واحد: %1" + +#~ msgid "&New..." +#~ msgstr "&جديد..." + +#~ msgid "Exporting schema" +#~ msgstr "يصدّر المخطّط" + +#, fuzzy +#~| msgid "Replace existing schema %1" +#~ msgid "Replace existing theme %1" +#~ msgstr "استبدل المخطّط %1 الموجود" + +#~ msgid "The file does not contain a full color schema." +#~ msgstr "الملفّ لا يحوي مخطّط ألوان كامل." + +#~ msgid "Name unspecified" +#~ msgstr "الاسم غير محدّد" + +#~ msgid "Importing schema" +#~ msgstr "يستورد المخطّط" + +#~ msgid "Name for New Schema" +#~ msgstr "اسم المخطّط الجديد" + +#~ msgid "Name:" +#~ msgstr "الاسم:" + +#~ msgid "New Schema" +#~ msgstr "مخطّط جديد" + +#~ msgid "&Schema:" +#~ msgstr "الم&خطّط:" + +#~ msgid "Fonts & Colors" +#~ msgstr "الخطوط والألوان" + +#~ msgid "Font & Color Schemas" +#~ msgstr "الخطّ ومخطّطات الألوان" + +#~ msgid "&Schema" +#~ msgstr "الم&خطّط" + +#~ msgid "Non-whitespace (excluding line breaks)" +#~ msgstr "ليست مسافة (عدى كاسر الأسطر)" + +#~ msgid "Lookahead" +#~ msgstr "طالع أمامًا" + +#~ msgid "" +#~ "A file named \"%1\" already exists. Are you sure you want to overwrite it?" +#~ msgstr "الملفّ بالاسم \"%1\" موجود فعلًا. أمتأكّد من الكتابة فوقه؟" + +#~ msgid "Overwrite File?" +#~ msgstr "أأكتب فوق الملفّ؟" + +#~ msgid "Unfold Current Node" +#~ msgstr "أزل طوي العقدة الحاليّة" + +#~ msgid "" +#~ "Use this command to wrap all lines of the current document which are " +#~ "longer than the width of the current view, to fit into this view.

This is a static word wrap, meaning it is not updated when the " +#~ "view is resized." +#~ msgstr "" +#~ "استخدم هذا الأمر للفّ كلّ أسطر المستند الحاليّ الأكبر من عرض المنظور الحاليّ، " +#~ "وذلك لملاءمتها في هذا المنظور.

هذا هو لفّ الكلمات سكونيًّا، أي " +#~ "أنّه لا يتحدّث إن تغيّر حجم المنظور." + +#~ msgid "Highlight trailing &spaces" +#~ msgstr "أبرز الم&سافات الزّائدة" + +#~ msgid "Spellcheck Selection..." +#~ msgstr "دقّق هجاء التّحديد..." + +#~ msgid "Check spelling of the selected text" +#~ msgstr "دقّق هجاء النّصّ المحدّد" + +#~ msgid "&Go to line:" +#~ msgstr "ا&نتقل إلى السّطر:" + +#~ msgid "Words and Chars count in document/selection." +#~ msgstr "عدد الكلمات والمحارف في المستند/التّحديد." + +#~ msgid "[BLOCK] %1" +#~ msgstr "[كتليّ] %1" + +#~ msgid "What do you want to do?" +#~ msgstr "ما الذي تريد فعله؟" + +#~ msgid "File Was Changed on Disk" +#~ msgstr "تغيّر ملفّ في القرص" + +#~ msgid "&Reload File" +#~ msgstr "أ&عد تحميل الملفّ" + +#~ msgid "&Ignore Changes" +#~ msgstr "ت&جاهل التّغييرات" + +#~ msgid "Download Highlighting Files..." +#~ msgstr "نزّل ملفّات إبراز..." + +#~ msgid "Highlight Download" +#~ msgstr "تنزيل إبراز" + +#~ msgid "Select the syntax highlighting files you want to update:" +#~ msgstr "حدّد ملفّات إبراز الصّياغة التي تريد تحديثها:" + +#~ msgid "Installed" +#~ msgstr "المثبّتة" + +#~ msgid "Latest" +#~ msgstr "الأخيرة" + +#~ msgid "Note: New versions are selected automatically." +#~ msgstr "ملاحظة: تُحدّد الإصدارات الجديدة آليًّا." + +#~ msgid "&Install" +#~ msgstr "&ثبّت" + +#~ msgid "" +#~ "The list of highlightings could not be found on / retrieved from the " +#~ "server" +#~ msgstr "تعذّر إيجاد/جلب قائمة الإبرازات من الخادوم" + +#~ msgctxt "Syntax highlighting" +#~ msgid "None" +#~ msgstr "بلا" + +#~ msgid "Normal Text" +#~ msgstr "نصّ عاديّ" + +#, fuzzy +#~ msgid "" +#~ "%1: Deprecated syntax. Attribute (%2) not addressed by symbolic " +#~ "name
" +#~ msgstr "" +#~ "%1: صياغة بائدة. الصّفة (%2) not addressed by symbolic name
" + +#~ msgid "" +#~ "There were warning(s) and/or error(s) while parsing the syntax " +#~ "highlighting configuration." +#~ msgstr "حدثت تحذيرات و/أو أخطاء أثناء تحليل ضبط إبراز الصّياغة." + +#~ msgid "Kate Syntax Highlighting Parser" +#~ msgstr "محلّل إبراز صياغة كيت" + +#~ msgid "" +#~ "Since there has been an error parsing the highlighting description, this " +#~ "highlighting will be disabled" +#~ msgstr "بسبب حدوث خطأ في تحليل وصف الإبراز، سيُعطّل هذا الإبراز" + +#~ msgid "Unable to open %1" +#~ msgstr "تعذّر فتح %1" + +#~ msgid "" +#~ "The error %4
has been detected in the file %1 at %2/%3" +#~ msgstr "اكتُشف الخطأ %4
في الملفّ %1 في %2/%3
" + +#~ msgid "Continuing search from top" +#~ msgstr "تابعت البحث من الأعلى" + +#~ msgid "Continuing search from bottom" +#~ msgstr "تابعت البحث من الأسفل" + +#~ msgctxt "Language Section" +#~ msgid "Scripts" +#~ msgstr "السّكربتات" + +#~ msgctxt "Language Section" +#~ msgid "Sources" +#~ msgstr "المصادر" + +#~ msgctxt "Language Section" +#~ msgid "Other" +#~ msgstr "أخرى" + +#~ msgctxt "Language" +#~ msgid "Ada" +#~ msgstr "أدا" + +#~ msgctxt "Language Section" +#~ msgid "Hardware" +#~ msgstr "العتاد" + +#~ msgctxt "Language" +#~ msgid "Apache Configuration" +#~ msgstr "ضبط Apache" + +#~ msgctxt "Language Section" +#~ msgid "Configuration" +#~ msgstr "الضّبط" + +#~ msgctxt "Language" +#~ msgid "Motorola DSP56k" +#~ msgstr "موتورولّا DSP56k" + +#~ msgctxt "Language" +#~ msgid "Motorola 68k (VASM/Devpac)" +#~ msgstr "موتورولّا 68k ‏(VASM/Devpac)" + +#~ msgctxt "Language Section" +#~ msgid "Markup" +#~ msgstr "رقْم" + +#~ msgctxt "Language" +#~ msgid "AWK" +#~ msgstr "أوْك" + +#~ msgctxt "Language" +#~ msgid "Bash" +#~ msgstr "باش" + +#~ msgctxt "Language" +#~ msgid "BibTeX" +#~ msgstr "بِب‌تخ" + +#~ msgctxt "Language" +#~ msgid "C" +#~ msgstr "سي" + +#~ msgctxt "Language" +#~ msgid "Cg" +#~ msgstr "Cg" + +#~ msgctxt "Language" +#~ msgid "ChangeLog" +#~ msgstr "سجلّ التّغييرات" + +#~ msgctxt "Language" +#~ msgid "Cisco" +#~ msgstr "سيسكو" + +#~ msgctxt "Language" +#~ msgid "Component-Pascal" +#~ msgstr "مكوّن-باسكال" + +#~ msgctxt "Language" +#~ msgid "C#" +#~ msgstr "سي#" + +#~ msgctxt "Language" +#~ msgid "CSS" +#~ msgstr "صفحات الطّرز المتراصّة" + +#~ msgctxt "Language" +#~ msgid "Debian Changelog" +#~ msgstr "سجل تغييرات دبيان" + +#~ msgctxt "Language" +#~ msgid "Debian Control" +#~ msgstr "تحكّم دبيان" + +#~ msgctxt "Language" +#~ msgid "Diff" +#~ msgstr "الفرق" + +#~ msgctxt "Language" +#~ msgid "Django HTML Template" +#~ msgstr "قالب دجانغو HTML" + +#~ msgctxt "Language" +#~ msgid "MS-DOS Batch" +#~ msgstr "رقعة مايكروسوفت دوس" + +#~ msgctxt "Language" +#~ msgid "Doxygen" +#~ msgstr "دوكسجين" + +#~ msgctxt "Language" +#~ msgid "DoxygenLua" +#~ msgstr "دوكسجين‌لوا" + +#~ msgctxt "Language" +#~ msgid "E Language" +#~ msgstr "لغة E" + +#~ msgctxt "Language" +#~ msgid "Email" +#~ msgstr "البريد الإلكترونيّ" + +#~ msgctxt "Language" +#~ msgid "Erlang" +#~ msgstr "إيرلانغ" + +#~ msgctxt "Language Section" +#~ msgid "Database" +#~ msgstr "قواعد البيانات" + +#~ msgctxt "Language" +#~ msgid "Fortran" +#~ msgstr "فورتران" + +#~ msgctxt "Language" +#~ msgid "GNU Gettext" +#~ msgstr "غنو غِت‌تكست" + +#~ msgctxt "Language" +#~ msgid "Haskell" +#~ msgstr "هاسكل" + +#~ msgctxt "Language" +#~ msgid "INI Files" +#~ msgstr "ملفّات INI" + +#~ msgctxt "Language" +#~ msgid "Java" +#~ msgstr "جافا" + +#~ msgctxt "Language" +#~ msgid "JavaScript" +#~ msgstr "جافاسكربت" + +#~ msgctxt "Language" +#~ msgid "LaTeX" +#~ msgstr "لاتخ" + +#~ msgctxt "Language" +#~ msgid "Lua" +#~ msgstr "لوا" + +#~ msgctxt "Language" +#~ msgid "Makefile" +#~ msgstr "ملفّ Make" + +#~ msgctxt "Language" +#~ msgid "Markdown" +#~ msgstr "مارك‌داون" + +#~ msgctxt "Language" +#~ msgid "Maxima" +#~ msgstr "ماكسيكا" + +#~ msgctxt "Language" +#~ msgid "MediaWiki" +#~ msgstr "ميديا ويكي" + +#~ msgctxt "Language" +#~ msgid "Objective-C" +#~ msgstr "أوبجيكتف سي" + +#~ msgctxt "Language" +#~ msgid "Objective-C++" +#~ msgstr "أوبجيكتف سي++" + +#~ msgctxt "Language" +#~ msgid "OpenCL" +#~ msgstr "أوبن‌سي‌إل" + +#~ msgctxt "Language" +#~ msgid "Pango" +#~ msgstr "بانغو" + +#~ msgctxt "Language" +#~ msgid "Pascal" +#~ msgstr "باسكال" + +#~ msgctxt "Language" +#~ msgid "Perl" +#~ msgstr "بيرل" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Puppet" +#~ msgstr "بَبِت" + +#~ msgctxt "Language" +#~ msgid "Python" +#~ msgstr "بيثون" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "QML" +#~ msgstr "كيو‌إم‌إل" + +#~ msgctxt "Language" +#~ msgid "Replicode" +#~ msgstr "ريبلكود" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "R Markdown" +#~ msgstr "مارك‌داون آر" + +#~ msgctxt "Language" +#~ msgid "Rich Text Format" +#~ msgstr "نسق الملفّات الغنيّ" + +#~ msgctxt "Language" +#~ msgid "Ruby" +#~ msgstr "روبي" + +#~ msgctxt "Language" +#~ msgid "Rust" +#~ msgstr "رَسْت" + +#~ msgctxt "Language" +#~ msgid "Vala" +#~ msgstr "فالا" + +#~ msgctxt "Language" +#~ msgid "Vera" +#~ msgstr "فيرا" + +#~ msgctxt "Language" +#~ msgid "WINE Config" +#~ msgstr "ضبط واين" + +#~ msgctxt "Language" +#~ msgid "YAML" +#~ msgstr "YAML" + +#~ msgctxt "short translation please" +#~ msgid "Auto insert asterisk in doxygen comments." +#~ msgstr "أدرج آليًّا نجمة في تعليقات دوكسجين" + +#~ msgid "File Was Deleted on Disk" +#~ msgstr "حُذف ملفّ من القرص" + +#~ msgid "File Changed on Disk" +#~ msgstr "تغيّر ملفّ في القرص" + +#~ msgid "" +#~ "Do nothing. Next time you focus the file, or try to save it or close it, " +#~ "you will be prompted again." +#~ msgstr "" +#~ "لا تفعل شيئا. ستُسأل في المرة القادمة التي ستركّز فيها على الملفّ أو تحفظه " +#~ "أو تغلقه." + +#~ msgid "Overwrite the disk file with the editor content." +#~ msgstr "اكتب فوق الملفّ الموجود على القرص بمحتوى المحرّر." + +#~ msgid "Close the document." +#~ msgstr "أغلق المستند." + +#~ msgid "Ignoring amount of white space changed, the files are identical." +#~ msgstr "بتجاهل عدد المسافات البيضاء الذي تغيّر، الملفّات متطابقة." + +#~ msgid "" +#~ "Ignoring means that you will not be warned again (unless the disk file " +#~ "changes once more): if you save the document, you will overwrite the file " +#~ "on disk; if you do not save then the disk file (if present) is what you " +#~ "have." +#~ msgstr "" +#~ "يعني التّجهال عدم تنبيهك مجدّدًا (إلّا في حال تغيّر ملفّ القرص مجدّدًا): إن حفظت " +#~ "المستند ستكتب فوق الملفّ على القرص، وإن لم تحفظ فسيكون ملفّ القرص (إن كان " +#~ "موجودًا) هو ما لديك." + +#~ msgid "You Are on Your Own" +#~ msgstr "أنت وحدك" + +#~ msgid "" +#~ "Calculates the difference between the editor contents and the disk file " +#~ "using diff(1)." +#~ msgstr "يحسب الفرق بين محتويات المحرّر وملفّ القرص باستخدام diff(1)‎." + +#~ msgid "KDE Default" +#~ msgstr "افتراضي كِيدِي" + +#, fuzzy +#~| msgid "Vi Input Mode" +#~ msgid "InputMode" +#~ msgstr "نمط إدخال VI" + +#~ msgid "&Next" +#~ msgstr "ال&تالي" + +#~ msgid "&Previous" +#~ msgstr "ال&سابق" + +#~ msgid "&Match case" +#~ msgstr "&طابق الحالة" + +#~ msgid "Case-sensitive searching" +#~ msgstr "بحث حساس لحالة الأحرف" + +#, fuzzy +#~ msgid "Mo&de:" +#~ msgstr "الو&ضع" + +#, fuzzy +#~| msgid " character" +#~| msgid_plural " characters" +#~ msgctxt "spinbox special value for 1" +#~ msgid "1 character" +#~ msgstr " " + +#, fuzzy +#~| msgid " character" +#~| msgid_plural " characters" +#~ msgctxt "suffix for spinbox >1 wrap words at (value is at 20 or larger)" +#~ msgid " characters" +#~ msgstr " " + +#~ msgid "Search &depth for config file:" +#~ msgstr "&عمق البحث لملف الضبط:" + +#, fuzzy +#~ msgid "Indentation width" +#~ msgstr "عرض الإزاحة:" + +#, fuzzy +#~ msgid "Function 'action' not found in script: %1" +#~ msgstr "الدالة '%1' لا توجد في سكربت: %2" + +#, fuzzy +#~ msgid "Error calling action(%1)" +#~ msgstr "خطأ مناداة %1" + +#~ msgid "Errors!" +#~ msgstr "أخطاء!" + +#~ msgid "Error: %1" +#~ msgstr "الخطأ: %1" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Restructured Text" +#~ msgstr "النص المحدد:" + +#~ msgid "Unable to find '%1'" +#~ msgstr "لا يمكن إيجاد '%1'" + +#, fuzzy +#~| msgid "Auto Word Completion" +#~ msgid "A&uto Word Completion HI" +#~ msgstr "إكمال الآلي للكلمة" + +#~ msgid "&VI Input Mode" +#~ msgstr "نمط إد&خال VI" + +#~ msgid "" +#~ "When selected, the vi input mode will be enabled when opening a new view. " +#~ "You can still toggle the vi input mode on/off for a particular view in " +#~ "the Edit menu." +#~ msgstr "" +#~ "عندما تختاره ، فإن نمط إدخال VI سوف يفتح عرض جديد. يمكنك تفعيل أو تعطيل " +#~ "نمط إدخال VI لأي عرض تريد بواسطة قائمة عرض." + +#, fuzzy +#~| msgid "Move to Matching Bracket" +#~ msgid "Matching Bracket" +#~ msgstr "حرك إلى القوس المطابق" + +#~ msgctxt "Language" +#~ msgid "C++" +#~ msgstr "C++" + +#~ msgid "" +#~ "Changing the power user mode affects only newly opened / created " +#~ "documents. In KWrite a restart is recommended." +#~ msgstr "" +#~ "تغير وضع المستخدم المتقدم سوف يؤثر في المستندات التي ستفتح / تنشئ من جديد " +#~ "في ك.رايت. يوصى بإعادة التشغيل البرنامج." + +#~ msgid "Power user mode changed" +#~ msgstr "غُير نمط المستخدم المتقدم" + +#~ msgid "" +#~ "The editor will search the given number of folder levels upwards for a ." +#~ "kateconfig file and load the settings line from it." +#~ msgstr "" +#~ "سيبحث المحرر في المجلدات الفرعية حسب العمق المحدد عن ملف ضبط لكيت وسيحمل " +#~ "سطر الإعداد منه." + +#~ msgid "Text Area Background" +#~ msgstr "خلفية مساحة النص" + +#~ msgid "Normal text:" +#~ msgstr "نص عادي:" + +#~ msgid "" +#~ "

Sets the background color of the selection.

To set the text " +#~ "color for selected text, use the \"Configure Highlighting\" dialog." +#~ "

" +#~ msgstr "" +#~ "

يحدد لون خلفية التحديد.

لتحديد لون النص المحدد ، استعمل حوار " +#~ "\"اضبط الإبراز\".

" + +#~ msgid "

Select the marker type you want to change.

" +#~ msgstr "

اختر نوع الواسم الذي تريد تغييره.

" + +#~ msgid "" +#~ "

Sets the background color of the selected marker type.

Note: The marker color is displayed lightly because of transparency.

" +#~ msgstr "" +#~ "

يحدد لون الخلفية لنوع الواسم المحدد.

ملاحظة:لون الواسم " +#~ "باهت قليلا بسبب الشفافية.

" + +#~ msgid "Additional Elements" +#~ msgstr "عناصر إضافية" + +#~ msgid "Left border background:" +#~ msgstr "خلفية الحد الأيسر:" + +#~ msgid "Line numbers:" +#~ msgstr "عدد الأسطر:" + +#~ msgid "" +#~ "

This color will be used to draw the line numbers (if enabled) and the " +#~ "lines in the code-folding pane.

" +#~ msgstr "" +#~ "

سيستعمل هذا اللون لرسم أرقام الأسطر (إذا فُعّلت) وأسطر لوحة طي الشفرة." + +#~ msgid "Bracket highlight:" +#~ msgstr "إبراز أزواج الأقواس:" + +#~ msgid "Word wrap markers:" +#~ msgstr "واسمات لف الكلمات:" + +#~ msgid "Tab and space markers:" +#~ msgstr "واسمات التبويب والفراغ:" + +#~ msgid "Spelling mistake line:" +#~ msgstr "سطر الخطأ الإملائي:" + +#~ msgid "" +#~ "Changing this mode affects only newly opened / created documents. In " +#~ "KWrite a restart is recommended." +#~ msgstr "" +#~ "تغير هذا الوضع سوف يؤثر في المستندات التي سوف تفتح / تنشئ من جديد. يوصى " +#~ "بإعادة التشغيل في ك.رايت." + +#~ msgid "Enable power user mode (KDE 3 mode)" +#~ msgstr "مكّن وضع المستخدم المتقدم (وضع KDE 3 )" + +#, fuzzy +#~ msgid "Na&mespace:" +#~ msgstr "فضاء تسمية" + +#, fuzzy +#~ msgid "&File types:" +#~ msgstr "&نوع الملف:" + +#, fuzzy +#~ msgid "Help" +#~ msgstr "م&ساعدة" + +#, fuzzy +#~ msgid "Display &Prefix:" +#~ msgstr "ال&سابقة:" + +#, fuzzy +#~ msgid "Display &Arguments:" +#~ msgstr "المحددات" + +#, fuzzy +#~ msgid "S&cripts" +#~ msgstr "سكربتات" + +#, fuzzy +#~ msgid "" +#~ msgstr "احذف المدخلة" + +#, fuzzy +#~ msgid "Output file '%1' could not be opened for writing" +#~ msgstr "تعذر فتح الملف '%1': لأنه ليس بملف عادي، فهو مجلد." + +#, fuzzy +#~ msgid "Cannot open snippet repository %1." +#~ msgstr "احذف المدخلة" + +#, fuzzy +#~ msgid "Applies to all filetypes" +#~ msgstr "اخف التتمات بالصفات التالية:" + +#, fuzzy +#~ msgid "Applies to the following filetypes: %1" +#~ msgstr "اخف التتمات بالصفات التالية:" + +#, fuzzy +#~ msgid "Add Repository" +#~ msgstr "أضف إلى القاموس" + +#, fuzzy +#~ msgid "Remove Repository" +#~ msgstr "احذف المدخلة" + +#, fuzzy +#~ msgid "Remove Snippet" +#~ msgstr "احذف المدخلة" + +#, fuzzy +#~ msgid "Filter..." +#~ msgstr "الترشيح" + +#~ msgid "Extensions Manager" +#~ msgstr "مدير التمديدات" + +#, fuzzy +#~ msgid "Create Snippet" +#~ msgstr "احذف المدخلة" + +#~ msgid "OVR" +#~ msgstr "يطمس" + +#~ msgid "INS" +#~ msgstr "يدرج" + +#, fuzzy +#~ msgid "Move Left" +#~ msgstr "حرك الكلمة لليسار" + +#, fuzzy +#~ msgid "Move Right" +#~ msgstr "حرك كلمة لليمين" + +#, fuzzy +#~ msgid "Move Up" +#~ msgstr "حرّك سطرا إلى الأعلى" + +#, fuzzy +#~ msgid "Move Down" +#~ msgstr "حرّك سطرا إلى الأسفل" + +#, fuzzy +#~ msgid "Execute" +#~ msgstr "تنفيذ" + +#, fuzzy +#~ msgid "Show/hide the JavaScript Console on the bottom of the view." +#~ msgstr "إظهار/إخفاء سطر الأوامر فى أسفل العرض." + +#, fuzzy +#~| msgid "Always On" +#~ msgid "Always on" +#~ msgstr "مشغل دائماً" + +#~ msgid "Sorry, but Kate is not able to replace newlines, yet" +#~ msgstr "عذرا ، لا يمكن لكيت استبدال الأسطر حاليا" + +#, fuzzy +#~| msgid "Print the current document." +#~ msgid "Modify the current snippet" +#~ msgstr "اطبع الوثيقة الحالية." + +#, fuzzy +#~| msgid "Create a new file type." +#~ msgid "Create a new repository file" +#~ msgstr "أنشِئ نوعا جديدا للملفات." + +#, fuzzy +#~| msgid "Remove Entry" +#~ msgid "Kate Snippets" +#~ msgstr "احذف المدخلة" + +#, fuzzy +#~| msgid "Remove Entry" +#~ msgid "New Snippet" +#~ msgstr "احذف المدخلة" + +#, fuzzy +#~| msgid "&Filetype:" +#~ msgid "all file types" +#~ msgstr "&نوع الملف:" + +#, fuzzy +#~| msgid "Namespace" +#~ msgid "No file specified" +#~ msgstr "فضاء تسمية" + +#, fuzzy +#~| msgid "" +#~| "The file '%1' could not be opened: it is not a normal file, it is a " +#~| "folder." +#~ msgid "File could not be copied to repository" +#~ msgstr "تعذر فتح الملف '%1': لأنه ليس بملف عادي، فهو مجلد." + +#, fuzzy +#~| msgid "Add to Dictionary" +#~ msgid "Snippet Repository:" +#~ msgstr "أضف إلى القاموس" + +#, fuzzy +#~| msgid "Remove Entry" +#~ msgid "Get New Snippets..." +#~ msgstr "احذف المدخلة" + +#, fuzzy +#~| msgid "Remove Entry" +#~ msgid "Kate Part Snippets" +#~ msgstr "احذف المدخلة" + +#~ msgid "" +#~ "By default, an extra status bar will be used when the Vi input mode is " +#~ "enabled. This status bar shows commands while they are being typed and " +#~ "messages/errors produced by Vi commands.\n" +#~ "\n" +#~ "Checking this options will hide this extra status line." +#~ msgstr "" +#~ "بشكل افتراضي ، سيظهر شريط حالة إضافي عند تفعيل نمط ادخال VI . هذا الشريط " +#~ "يعرض الأوامر حال ادخالها و رسائل الخطأ و التحذيرات التي تصدرها أوامر " +#~ "VI .\n" +#~ "\n" +#~ "اختيار هذا الخيار سوف يخفي شريط الحالة الإضافي." + +#~ msgid "Hide the Vi mode status bar" +#~ msgstr "اخف شريط حالة VI." + +#, fuzzy +#~| msgid "&Highlighting" +#~ msgid "&Keep highlighting" +#~ msgstr "الإ&براز" + +#~ msgid "R/O" +#~ msgstr "يقرأ فقط" + +#~ msgid "Show &folding markers (if available)" +#~ msgstr "أظهر علامات ال&طي (إذا كان متوفرا)" + +#~ msgid "Plugins" +#~ msgstr "الملحقات" + +#, fuzzy +#~| msgid "Move Word Left" +#~ msgid "Programmer's Move Word Left" +#~ msgstr "حرك الكلمة لليسار" + +#, fuzzy +#~| msgid "Select Word Left" +#~ msgid "Programmer's Select Word Left" +#~ msgstr "حدد كلمة لليسار" + +#, fuzzy +#~| msgid "Move Word Right" +#~ msgid "Programmer's Move Word Right" +#~ msgstr "حرك كلمة لليمين" + +#, fuzzy +#~| msgid "Select Word Right" +#~ msgid "Programmer's Select Word Right" +#~ msgstr "حدد كلمة لليمين" + +#~ msgctxt "Language" +#~ msgid "Prolog" +#~ msgstr "Prolog" + +#~ msgid "" +#~ "Selections will be overwritten by typed text and will be lost on cursor " +#~ "movement." +#~ msgstr "ستطمس المحددات بكتابة نص و تفقد بحركة المؤشر." + +#~ msgid "&Normal" +#~ msgstr "&عادي" + +#~ msgid "Selections will stay even after cursor movement and typing." +#~ msgstr "ستبقى المحددات حتى عند تحريك المؤشر و الكتابة." + +#~ msgid "" +#~ "The filter/check plugin '%1' could not be found, still continue saving of " +#~ "%2" +#~ msgstr "الملحق '%1' الترشيح/التأكد لا يمكن إيجاده ، ما زال يحفظ %2" + +#~ msgid "Saving problems" +#~ msgstr "مشاكل في الحفظ" + +#~ msgid "" +#~ "When the user types a left bracket ([,(, or {) KateView automatically " +#~ "enters the right bracket (}, ), or ]) to the right of the cursor." +#~ msgstr "" +#~ "عندما يدخل المستخدم قوس أيمن مثل : ( ، [ ، أو { يقوم KateView بوضع القوس " +#~ "الأيسر ( ) أو ] أو } ) المقابل له على يسار المؤشر (أي بعده)" + +#~ msgid "The file %1 is a binary, saving it will result in a corrupt file." +#~ msgstr "الملف %1 ملف ثنائي، سينتج إثر حفظه ملفٌّ فاسد." + +#~ msgid "Trying to Save Binary File" +#~ msgstr "محاولة حفظ ملف ثنائي" + +#~ msgid "" +#~ "

When on, moving the insertion cursor using the Left and " +#~ "Right keys will go on to previous/next line at beginning/end of " +#~ "the line, similar to most editors.

When off, the insertion cursor " +#~ "cannot be moved left of the line start, but it can be moved off the line " +#~ "end, which can be very handy for programmers.

" +#~ msgstr "" +#~ "

عندما يكون مشغلا، من الممكن نقل مؤشر الإدراج باستعمال زري اليمين و اليسار إلى السطر التالي أو السابق سواء ببداية السطر أو " +#~ "نهايته، كما هو الحال في معظم محررات النصوص.

أما إذا كان هذا " +#~ "الخيار متوقفا، لا يكون من الممكن تحريك مؤشر الإدراج إلى يسار بداية السطر " +#~ "(أو يمينها في العربية)، لكن من الممكن تحريكه بعد نهاية السطر. هذا الخيار " +#~ "مفيد جدا للمبرمجين.

" + +#~ msgid "Wrap c&ursor" +#~ msgstr "لف الم&ؤشر" + +#, fuzzy +#~| msgid "" +#~| "If this is enabled, the editor will remove any trailing whitespace on " +#~| "lines when they are left by the insertion cursor." +#~ msgid "" +#~ "If this is enabled, the editor will remove any trailing whitespace on " +#~ "lines that are changed through editing." +#~ msgstr "" +#~ "إذا كان هذا الخيار فعالا، سيحذف المحرر أي فراغ نهائي في الأسطر التي " +#~ "يتركها مؤشر الإدراج." + +#~ msgid "Remove &trailing spaces while editing" +#~ msgstr "أزل الفراغات ال&نهائية خلال التحرير" + +#, fuzzy +#~| msgid "" +#~| "The editor will automatically eliminate extra spaces at the ends of " +#~| "lines of text while loading/saving the file. This change is only visible " +#~| "after a save if you reload the file." +#~ msgid "" +#~ "The editor will automatically eliminate extra spaces at the ends of lines " +#~ "of text while saving the file. This change is only visible after a save " +#~ "if you reload the file." +#~ msgstr "" +#~ "سيحذف المحرر آليا الفراغات الإضافية في نهاية السطور عند الحفظ أو التحميل. " +#~ "لن يظهر الفرق إلا بعد حفظ أو تحميل الملف مرة أخرى." + +#, fuzzy +#~| msgid "Remove &trailing spaces while editing" +#~ msgctxt "short translation please" +#~ msgid "Remove trailing spaces when editing a line." +#~ msgstr "أزل الفراغات ال&نهائية خلال التحرير" + +#, fuzzy +#~| msgid "" +#~| "\n" +#~| "

إجراء مفتاح التبويب (إذا لم يحدد شيء) Tab " +#~ "لمحاذاة نص السطر الحالي في كتلة الشفرة الحالية كما في إيماكس، اجعل " +#~ "التبويب إختصار للإجراء Tab حاذ.\">للمزيد ...

" + +#, fuzzy +#~| msgid "Scope" +#~ msgid "Stop" +#~ msgstr "المدى" + +#, fuzzy +#~| msgid "Colors" +#~ msgctxt "@title:column a color button" +#~ msgid "Color" +#~ msgstr "الألوان" + +#, fuzzy +#~| msgid "Normal &Color..." +#~ msgid "Export HlColors..." +#~ msgstr "ال&لون العادي..." + +#, fuzzy +#~| msgid "Normal &Color..." +#~ msgid "Import HlColors..." +#~ msgstr "ال&لون العادي..." + +#~ msgid "Template Background" +#~ msgstr "خلفية القالب" + +#~ msgid "Collapse One Local Level" +#~ msgstr "طي مستوى محلّي واحد" + +#~ msgid "Expand One Local Level" +#~ msgstr "توسيع مستوى محلّي واحد" + +#, fuzzy +#~| msgid "Collapse Toplevel" +#~ msgid "Collapse Level 1" +#~ msgstr "طي المستوى الأعلى" + +#, fuzzy +#~| msgid "Collapse Toplevel" +#~ msgid "Collapse Level 2" +#~ msgstr "طي المستوى الأعلى" + +#, fuzzy +#~| msgid "Collapse Toplevel" +#~ msgid "Collapse Level 3" +#~ msgstr "طي المستوى الأعلى" + +#, fuzzy +#~| msgid "Collapse Toplevel" +#~ msgid "Collapse Level 4" +#~ msgstr "طي المستوى الأعلى" + +#, fuzzy +#~| msgid "Collapse Toplevel" +#~ msgid "Collapse Level 5" +#~ msgstr "طي المستوى الأعلى" + +#, fuzzy +#~| msgid "Collapse Toplevel" +#~ msgid "Collapse Level 6" +#~ msgstr "طي المستوى الأعلى" + +#, fuzzy +#~| msgid "Collapse Toplevel" +#~ msgid "Collapse Level 7" +#~ msgstr "طي المستوى الأعلى" + +#, fuzzy +#~| msgid "Collapse Toplevel" +#~ msgid "Collapse Level 8" +#~ msgstr "طي المستوى الأعلى" + +#, fuzzy +#~| msgid "Collapse Toplevel" +#~ msgid "Collapse Level 9" +#~ msgstr "طي المستوى الأعلى" + +#, fuzzy +#~| msgid "Expand Toplevel" +#~ msgid "Expand Level 1" +#~ msgstr "توسيع المستوى الأعلى" + +#, fuzzy +#~| msgid "Expand Toplevel" +#~ msgid "Expand Level 2" +#~ msgstr "توسيع المستوى الأعلى" + +#, fuzzy +#~| msgid "Expand Toplevel" +#~ msgid "Expand Level 3" +#~ msgstr "توسيع المستوى الأعلى" + +#, fuzzy +#~| msgid "Expand Toplevel" +#~ msgid "Expand Level 4" +#~ msgstr "توسيع المستوى الأعلى" + +#, fuzzy +#~| msgid "Expand Toplevel" +#~ msgid "Expand Level 5" +#~ msgstr "توسيع المستوى الأعلى" + +#, fuzzy +#~| msgid "Expand Toplevel" +#~ msgid "Expand Level 6" +#~ msgstr "توسيع المستوى الأعلى" + +#, fuzzy +#~| msgid "Expand Toplevel" +#~ msgid "Expand Level 7" +#~ msgstr "توسيع المستوى الأعلى" + +#, fuzzy +#~| msgid "Expand Toplevel" +#~ msgid "Expand Level 8" +#~ msgstr "توسيع المستوى الأعلى" + +#, fuzzy +#~| msgid "Expand Toplevel" +#~ msgid "Expand Level 9" +#~ msgstr "توسيع المستوى الأعلى" + +#, fuzzy +#~| msgid "Collapse Toplevel" +#~ msgid "&Collapse" +#~ msgstr "طي المستوى الأعلى" + +#, fuzzy +#~| msgid "&Format:" +#~ msgid "Form" +#~ msgstr "ال&تنسيق:" + +#~ msgid "" +#~ "A KDE text-editor component could not be found;\n" +#~ "please check your KDE installation." +#~ msgstr "" +#~ "تعذر العثور على مكون محرر النصوص لكِيدِي ؛\n" +#~ "المرجو فحص تثبيتك لكِيدِي." + +#~ msgid "Use this command to create a new document" +#~ msgstr "استعمل هذا الأمر لإنشاء وثيقة جديدة" + +#~ msgid "Use this command to open an existing document for editing" +#~ msgstr "استعمل هذا الأمر لفتح ملف موجود لتحريره" + +#~ msgid "" +#~ "This lists files which you have opened recently, and allows you to easily " +#~ "open them again." +#~ msgstr "" +#~ "يسرد هذا الملفاتَ التي فتحتها مؤخرا، ويسمح لك بفتحها بسهولة مرة أخرى." + +#~ msgid "&New Window" +#~ msgstr "نافذة &جديدة" + +#~ msgid "Create another view containing the current document" +#~ msgstr "أنشئ عرضا أخر يحوي الوثيقة الحالية." + +#~ msgid "Override the system-wide setting for the default editing component" +#~ msgstr "تجاوز الإعدادات العامة للنظام للمكون التحرير الإفتراضي" + +#~ msgid "Close the current document view" +#~ msgstr "أغلق عرض الوثيقة الحالية" + +#~ msgid "Use this command to show or hide the view's statusbar" +#~ msgstr "استعمل هذا الأمر لإظهار أو إخفاء شريط حالة العرض" + +#~ msgid "Sho&w Path" +#~ msgstr "أ&ظهر المسار" + +#~ msgid "Show the complete document path in the window caption" +#~ msgstr "أظهر المسار الكامل للوثيقة في عنوان النافذة" + +#~ msgid "Configure the application's keyboard shortcut assignments." +#~ msgstr "اضبط اسناد اختصارات لوحة المفاتيح للتطبيق." + +#~ msgid "Configure which items should appear in the toolbar(s)." +#~ msgstr "اضبط العناصر التي تريد أن تضعها في شريط أو شرائط الأدوات." + +#~ msgid "&About Editor Component" +#~ msgstr "&حول مكون التحرير" + +#~ msgid " INS " +#~ msgstr "يدرج" + +#~ msgid " LINE " +#~ msgstr "سطر " + +#~ msgid "" +#~ "The given file could not be read, check if it exists or if it is readable " +#~ "for the current user." +#~ msgstr "" +#~ "تعذرت قراءة الملف المعطى، تأكد من وجوده وقابلية قراءته للمستخدم الحال." + +#~ msgid "Read the contents of stdin" +#~ msgstr "اقرأ محتويات الدفق الداخل" + +#~ msgid "Set encoding for the file to open" +#~ msgstr "حدد ترميز الملف المراد فتحه" + +#~ msgid "Navigate to this line" +#~ msgstr "تصفح إلى هذا السطر" + +#~ msgid "Navigate to this column" +#~ msgstr "تصفح إلى هذا العمود" + +#~ msgid "KWrite" +#~ msgstr "ك.رايت" + +#~ msgid "KWrite - Text Editor" +#~ msgstr "ك.رايت - محرر النصوص" + +#~ msgid "Choose Editor Component" +#~ msgstr "اختر مكون التحرير" + +#~ msgid "Directory containing tests, basedir and output directories." +#~ msgstr "الدليل الذي يحوي الاختبارات والدليل الأساسي ودليل الخرج." + +#~ msgid "" +#~ "Compare failures of this testrun against snapshot . Defaults to " +#~ "the most recently captured failure snapshot or none if none exists." +#~ msgstr "" +#~ "قارن أخطاء اختبار التشغيل بلقطة . تُستعمل مبدئيا أحدث لقطة " +#~ "ملتقطة أو لا شيء إن لم توجد أية لقطة." + +#~ msgid "Do not suppress debug output" +#~ msgstr "لا تمح خرج التنقيح" + +#~ msgid "Regenerate baseline (instead of checking)" +#~ msgstr "أعد توليد السطر الأساسي (بدل الفحص)" + +#~ msgid "Keep output files even on success" +#~ msgstr "احتفظ بملفات الخرج ولو بعد النجاح" + +#~ msgid "Save failures of this testrun as failure snapshot " +#~ msgstr "احفظ أخطاء هذا الاختبار كلقطة فشل " + +#~ msgid "Show the window while running tests" +#~ msgstr "أظهر النافذة خلال إجراء الاختبارات" + +#~ msgid "Only run a single test. Multiple options allowed." +#~ msgstr "أجر اختبارا واحدا فقط. يسمح بالخيارات المتعددة." + +#~ msgid "Put output in instead of /output" +#~ msgstr "ضع الخرج في بدلا من /output" + +#~ msgid "Run each test case in a separate process." +#~ msgstr "شغل كل حالة اختبار في عملية منفصلة" + +#~ msgid "" +#~ "Directory containing tests, basedir and output directories. Only regarded " +#~ "if -b is not specified." +#~ msgstr "" +#~ "الدليل الذي يحوي دلائل الاختبارات والدليل الأساسي والخرج. يؤخذ بعين " +#~ "الاعتبار فقط إذا لم يحدد -b." + +#~ msgid "" +#~ "Relative path to testcase, or directory of testcases to be run " +#~ "(equivalent to -t)." +#~ msgstr "" +#~ "المسار النسبي إلى صندوق الاختبارات، أو دليل صناديق الاختبار المراد " +#~ "تشغيلها (مقابل ل -t)." + +#~ msgid "TestRegression" +#~ msgstr "اختبار التراجع" + +#~ msgid "Regression tester for kate" +#~ msgstr "مختبِر التراجع لكيت" + +#~ msgid "Error: " +#~ msgstr "خطأ: " + +#~ msgid "Error calling '%1'. Please check for syntax errors." +#~ msgstr "خطأ في مناداة '%1'. الرجاء التأكد من أخطاء بنية الجمل." + +#~ msgid "" +#~ "If this is enabled, the editor will calculate the number of spaces up to " +#~ "the next tab position as defined by the tab width, and insert that number " +#~ "of spaces instead of a TAB character." +#~ msgstr "" +#~ "إذا كان هذا فعالا، سيحسب المحرر عدد الفراغات التي قد توصل إلى التبويب " +#~ "التالي كما هو محدد في عرض التبويب، ويدرج هذا العدد من الفراغات عوضا عن " +#~ "محرف التبويب." + +#~ msgid "&Insert spaces instead of tabulators" +#~ msgstr "أ&درج فراغات بدل التبويبات" + +#, fuzzy +#~| msgid "&View Difference" +#~ msgid "View Differences" +#~ msgstr "ا&عرض الفرق" + +#~ msgctxt "Encodings menu" +#~ msgid "Disabled" +#~ msgstr "معطل" + +#, fuzzy +#~| msgid "" +#~| "The file %1 was opened with UTF-8 encoding but contained invalid " +#~| "characters. It is set to read-only mode, as saving might destroy its " +#~| "content. Either reopen the file with the correct encoding chosen or " +#~| "enable the read-write mode again in the menu to be able to edit it." +#~ msgid "" +#~ "The file %1 was opened with 2 encoding but contained invalid characters. " +#~ "It is set to read-only mode, as saving might destroy its content. Either " +#~ "reopen the file with the correct encoding chosen or enable the read-write " +#~ "mode again in the menu to be able to edit it." +#~ msgstr "" +#~ "فُتح الملف %1 باعتباره مرمّزا ب‍ UTF-8، لكنه يحتوي على محارف غير صالحة. لذا " +#~ "فهو في وضع القراءة فقط، لأن حفظه قد يؤدي إلى إتلاف محتواه. إما أن تعيد " +#~ "فتحه باستعمال الترميز الصحيح ، أو أن تفعّل نمط القراءة والكتابة معا من " +#~ "القائمة للتمكن من تحريره." + +#~ msgid "Binary File Opened" +#~ msgstr "فُتح ملف ثنائي" + +#~ msgid "Broken UTF-8 File Opened" +#~ msgstr "فُتح ملف UTF-8 فاسد" + +#~ msgid "Universal" +#~ msgstr "عالمي" + +#~ msgid "&Word Wrap Document" +#~ msgstr "ل&فّ كلمات المستند" + +#~ msgid "Modify search behavior" +#~ msgstr "عدّل سلوك البحث" + +#~ msgid "&Options" +#~ msgstr "&خيارات" + +#~ msgid "Hi&ghlight all" +#~ msgstr "أبر&ز الكل " + +#~ msgid "Add &BOM" +#~ msgstr "أ&ضف BOM" + +#~ msgid "(c) 2000-2008 The Kate Authors" +#~ msgstr "(c) 2000-2008 مؤلفو كيت" + +#~ msgid "Developer & Highlight wizard" +#~ msgstr "المطور وصاحب بميزة الإبراز" + +#~ msgid "Unable to read file: '%1'" +#~ msgstr "تعذَرت قراءة الملف '%1'" + +#~ msgid "Failed to start interpreter for script %1, command %2" +#~ msgstr "فشل بدء المؤول للمخطوط %1, الأمر %2" + +#~ msgid "This executes the current document as JavaScript within Kate." +#~ msgstr "هذا سينفذ المستند الحالي كجافاسكربت في داخل Kate." + +#~ msgid "Success" +#~ msgstr "نجاح" + +#~ msgid "Move Character Right" +#~ msgstr "انقل المحرف يمينا" + +#~ msgid "Move Character Left" +#~ msgstr "انقل المحرف يسارا" + +#~ msgid "&Overwrite" +#~ msgstr "ا&طمس" diff --git a/local/recipes/kde/kf6-ktexteditor/source/po/ast/ktexteditor6.po b/local/recipes/kde/kf6-ktexteditor/source/po/ast/ktexteditor6.po new file mode 100644 index 0000000000..655ebe428c --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/po/ast/ktexteditor6.po @@ -0,0 +1,7830 @@ +# Copyright (C) 2023 This file is copyright: +# This file is distributed under the same license as the ktexteditor package. +# +# SPDX-FileCopyrightText: 2023 Enol P. +msgid "" +msgstr "" +"Project-Id-Version: ktexteditor\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2026-06-23 00:41+0000\n" +"PO-Revision-Date: 2023-11-07 21:27+0100\n" +"Last-Translator: Enol P. \n" +"Language-Team: \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 23.08.2\n" + +#: completion/katecompletionmodel.cpp:147 +#, kde-format +msgid "Argument-hints" +msgstr "" + +#: completion/katecompletionmodel.cpp:148 +#, kde-format +msgid "Best matches" +msgstr "" + +#: completion/katekeywordcompletion.cpp:143 +#, kde-format +msgid "Language keywords" +msgstr "" + +#: completion/katewordcompletion.cpp:74 +#, kde-format +msgid "Auto Word Completion" +msgstr "" + +#: completion/katewordcompletion.cpp:301 +#, kde-format +msgid "Shell Completion" +msgstr "" + +#: completion/katewordcompletion.cpp:306 +#, kde-format +msgid "Reuse Word Above" +msgstr "" + +#: completion/katewordcompletion.cpp:312 +#, kde-format +msgid "Reuse Word Below" +msgstr "" + +#. i18n: ectx: Menu (file) +#: data/katepart5ui.rc:4 +#, kde-format +msgid "&File" +msgstr "" + +#. i18n: ectx: Menu (file_export) +#: data/katepart5ui.rc:10 +#, kde-format +msgid "&Print/Export" +msgstr "" + +#. i18n: ectx: Menu (edit) +#: data/katepart5ui.rc:17 +#, kde-format +msgid "&Edit" +msgstr "" + +#. i18n: ectx: Menu (edit_find_menu) +#: data/katepart5ui.rc:36 +#, kde-format +msgid "Find Variants" +msgstr "" + +#. i18n: ectx: Menu (selection) +#: data/katepart5ui.rc:46 +#, kde-format +msgid "Selection" +msgstr "" + +#. i18n: ectx: Menu (capitalization) +#: data/katepart5ui.rc:53 +#, kde-format +msgid "Capitalization" +msgstr "" + +#. i18n: ectx: Menu (view) +#: data/katepart5ui.rc:73 +#, kde-format +msgid "&View" +msgstr "" + +#. i18n: ectx: Menu (view_menu_word_wrap) +#: data/katepart5ui.rc:78 +#, kde-format +msgid "Word Wrap" +msgstr "" + +#. i18n: ectx: Menu (view_menu_borders) +#: data/katepart5ui.rc:84 dialogs/katedialogs.cpp:747 +#, kde-format +msgid "Borders" +msgstr "" + +#. i18n: ectx: Menu (codefolding) +#: data/katepart5ui.rc:92 +#, kde-format +msgid "&Code Folding" +msgstr "" + +#. i18n: ectx: Menu (go) +#: data/katepart5ui.rc:109 +#, kde-format +msgid "&Go" +msgstr "" + +#. i18n: ectx: Menu (tools) +#: data/katepart5ui.rc:124 +#, kde-format +msgid "&Tools" +msgstr "" + +#. i18n: ectx: Menu (wordcompletion) +#: data/katepart5ui.rc:138 +#, kde-format +msgid "Word Completion" +msgstr "" + +#. i18n: ectx: Menu (spelling) +#: data/katepart5ui.rc:144 spellcheck/spellingmenu.cpp:71 +#: spellcheck/spellingmenu.cpp:195 +#, kde-format +msgid "Spelling" +msgstr "" + +#. i18n: ectx: Menu (speech) +#: data/katepart5ui.rc:153 data/katepart5ui.rc:184 +#, kde-format +msgid "Text to Speech" +msgstr "" + +#. i18n: ectx: Menu (settings) +#: data/katepart5ui.rc:161 +#, kde-format +msgid "&Settings" +msgstr "" + +#. i18n: ectx: ToolBar (mainToolBar) +#: data/katepart5ui.rc:192 +#, kde-format +msgid "Main Toolbar" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/bordersappearanceconfigwidget.ui:25 +#, kde-format +msgid "Code block folding:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowFoldingMarkers) +#: dialogs/bordersappearanceconfigwidget.ui:32 +#, kde-format +msgid "" +"If this option is checked, every new view will display marks for folding." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowFoldingMarkers) +#: dialogs/bordersappearanceconfigwidget.ui:35 +#, kde-format +msgid "Show arrows to collapse code blocks" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowFoldingPreview) +#: dialogs/bordersappearanceconfigwidget.ui:42 +#, kde-format +msgid "" +"If checked, hovering over a folded region shows a preview of the folded text " +"in a popup." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowFoldingPreview) +#: dialogs/bordersappearanceconfigwidget.ui:45 +#, kde-format +msgid "Show preview of folded blocks on hover" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/bordersappearanceconfigwidget.ui:52 +#, kde-format +msgid "Folding arrows visibility:" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbFoldingArrowVisiblity) +#: dialogs/bordersappearanceconfigwidget.ui:63 +#, kde-format +msgid "Show on Hover" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbFoldingArrowVisiblity) +#: dialogs/bordersappearanceconfigwidget.ui:68 +#, kde-format +msgid "Show Always" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/bordersappearanceconfigwidget.ui:92 +#, kde-format +msgid "Left side:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkIconBorder) +#: dialogs/bordersappearanceconfigwidget.ui:99 +#, kde-format +msgid "" +"

If this option is checked, every new view will display an icon border on " +"the left hand side.

The icon border shows bookmark signs, for instance." +"

" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkIconBorder) +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMarks) +#: dialogs/bordersappearanceconfigwidget.ui:102 +#: dialogs/bordersappearanceconfigwidget.ui:155 +#, kde-format +msgid "Show marks" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkLineNumbers) +#: dialogs/bordersappearanceconfigwidget.ui:109 +#, kde-format +msgid "" +"If this option is checked, every new view will display line numbers on the " +"left hand side." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkLineNumbers) +#: dialogs/bordersappearanceconfigwidget.ui:112 +#, kde-format +msgid "Show &line numbers" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowLineModification) +#: dialogs/bordersappearanceconfigwidget.ui:119 +#, kde-format +msgid "" +"If this option is checked, a small indicator for modified and saved lines is " +"shown on the left hand side." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowLineModification) +#: dialogs/bordersappearanceconfigwidget.ui:122 +#, kde-format +msgid "Highlight changed and unsaved lines" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/bordersappearanceconfigwidget.ui:145 +#, kde-format +msgid "Scrollbars:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMarks) +#: dialogs/bordersappearanceconfigwidget.ui:152 +#, kde-format +msgid "" +"

If this option is checked, every new view will show marks on the vertical " +"scrollbar.

These marks will show bookmarks, for instance.

" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarPreview) +#: dialogs/bordersappearanceconfigwidget.ui:162 +#, kde-format +msgid "" +"

If this option is checked, hovering over the vertical scrollbar will show " +"a preview of the text.

" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarPreview) +#: dialogs/bordersappearanceconfigwidget.ui:165 +#, kde-format +msgid "Show preview when hovering over scrollbar" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:172 +#, kde-format +msgid "Scro&llbars visibility:" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:183 dialogs/katedialogs.cpp:755 +#, kde-format +msgid "Always On" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:188 +#, kde-format +msgid "Show When Needed" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:193 +#, kde-format +msgid "Always Off" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/bordersappearanceconfigwidget.ui:217 +#, kde-format +msgid "Minimap:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMiniMap) +#: dialogs/bordersappearanceconfigwidget.ui:224 +#, kde-format +msgid "" +"If this option is checked, every new view will show a mini map on the " +"vertical scrollbar." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMiniMap) +#: dialogs/bordersappearanceconfigwidget.ui:227 +#, kde-format +msgid "Show minimap" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, labelMiniMapWidth) +#: dialogs/bordersappearanceconfigwidget.ui:250 +#, kde-format +msgid "Minim&ap width:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMiniMapAll) +#: dialogs/bordersappearanceconfigwidget.ui:263 +#, kde-format +msgid "" +"If this option is checked, every new view will show a mini map of the whole " +"document on the vertical scrollbar." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMiniMapAll) +#: dialogs/bordersappearanceconfigwidget.ui:266 +#, kde-format +msgid "Map the whole document" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbSortBookmarksByCreation) +#: dialogs/bordersappearanceconfigwidget.ui:276 +#, kde-format +msgid "" +"Each new bookmark will be added to the bottom, independently from where it " +"is placed in the document." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbSortBookmarksByCreation) +#: dialogs/bordersappearanceconfigwidget.ui:279 +#, kde-format +msgid "By date created" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbSortBookmarksByPosition) +#: dialogs/bordersappearanceconfigwidget.ui:286 +#, kde-format +msgid "The bookmarks will be ordered by the line numbers they are placed at." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbSortBookmarksByPosition) +#: dialogs/bordersappearanceconfigwidget.ui:289 +#, kde-format +msgid "By line number" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/bordersappearanceconfigwidget.ui:296 +#, kde-format +msgid "Sort bookmarks menu:" +msgstr "" + +#: dialogs/clipboardhistorydialog.cpp:264 +#, kde-format +msgid "Select text to paste." +msgstr "" + +#: dialogs/clipboardhistorydialog.cpp:296 +#, kde-format +msgid "No entries in clipboard history" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbGeneral) +#. i18n: ectx: property (title), widget (QGroupBox, gbViInputMode) +#: dialogs/completionconfigtab.ui:29 dialogs/katedialogs.cpp:609 +#: dialogs/katedialogs.cpp:743 dialogs/katedialogs.cpp:1026 +#: vimode/config/configwidget.ui:29 +#, kde-format +msgid "General" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoCompletionEnabled) +#: dialogs/completionconfigtab.ui:35 +#, kde-format +msgid "Enable &auto completion" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoSelectFirstEntry) +#: dialogs/completionconfigtab.ui:42 +#, kde-format +msgid "Auto select &first completion entry" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkTabCompletion) +#: dialogs/completionconfigtab.ui:49 +#, kde-format +msgid "Cycle through the list of completions using Tab / Shift+Tab" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkEnterCompletion) +#: dialogs/completionconfigtab.ui:56 +#, kde-format +msgid "" +"Pressing enter will insert the text of selected completion item into the " +"editor. If disabled, Tab key or double-click can still be used to trigger " +"completion." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkEnterCompletion) +#: dialogs/completionconfigtab.ui:59 +#, kde-format +msgid "Use Enter key to insert selected completion" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbWordCompletion) +#: dialogs/completionconfigtab.ui:69 +#, kde-format +msgid "A&uto word completion" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/completionconfigtab.ui:83 +#, kde-format +msgid "Minimal word length to complete:" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, removeTail) +#: dialogs/completionconfigtab.ui:111 +#, kde-format +msgid "Remove tail of a previous word when completion item chosen from a list" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, removeTail) +#: dialogs/completionconfigtab.ui:114 +#, kde-format +msgid "Remove tail on complete" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/completionconfigtab.ui:121 +#, kde-format +msgid "" +"Word completion provides suggestions based on the words found in the document" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbKeywordCompletion) +#: dialogs/completionconfigtab.ui:134 +#, kde-format +msgid "&Keyword completion" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/completionconfigtab.ui:143 +#, kde-format +msgid "" +"Keyword completion provides suggestions based on the keywords which exist in " +"the document's language." +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbShowDoc) +#: dialogs/completionconfigtab.ui:156 +#, kde-format +msgid "Documentation with completion" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/completionconfigtab.ui:165 +#, kde-format +msgid "" +"Show documentation beside completion box. If disabled, documentation can be " +"shown by pressing Alt key." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/editconfigwidget.ui:22 +#, kde-format +msgid "Word wrap:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkStaticWordWrap) +#: dialogs/editconfigwidget.ui:29 +#, kde-format +msgid "" +"

Automatically start a new line of text when the current line exceeds the " +"length specified by the Wrap words at: option.

This option does " +"not wrap existing lines of text - use the Apply Static Word Wrap " +"option in the Tools menu for that purpose.

If you want lines to " +"be visually wrapped instead, according to the width of the view, " +"enable Dynamic Word Wrap in the Appearance config page.

" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkStaticWordWrap) +#: dialogs/editconfigwidget.ui:32 +#, kde-format +msgid "Wrap &words at a fixed column" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowStaticWordWrapMarker) +#: dialogs/editconfigwidget.ui:39 +#, kde-format +msgid "" +"

If this option is checked, a vertical line will be drawn at the word wrap " +"column as defined in the Editing properties.

" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowStaticWordWrapMarker) +#: dialogs/editconfigwidget.ui:42 +#, kde-format +msgid "&Draw vertical line at the word wrap column" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblWordWrap) +#: dialogs/editconfigwidget.ui:49 +#, kde-format +msgid "Wra&p words at:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbWordWrap) +#: dialogs/editconfigwidget.ui:59 +#, kde-format +msgid "" +"If the Word Wrap option is selected this entry determines the length (in " +"characters) at which the editor will automatically start a new line." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblInputMode) +#: dialogs/editconfigwidget.ui:91 +#, kde-format +msgid "Default input mode:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/editconfigwidget.ui:120 +#, kde-format +msgid "Brackets:" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoBrackets) +#: dialogs/editconfigwidget.ui:127 +#, kde-format +msgid "Automatically close brackets when opening bracket is typed" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLabel, lbEncloseSelection) +#: dialogs/editconfigwidget.ui:140 +#, kde-format +msgid "" +"When some text is selected these chars will be added on both its sides in a " +"way \"Auto Bracket\" do" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lbEncloseSelection) +#: dialogs/editconfigwidget.ui:143 +#, kde-format +msgid "Enclosing characters:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/editconfigwidget.ui:166 +#, kde-format +msgid "Copy and paste:" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkTextDragAndDrop) +#: dialogs/editconfigwidget.ui:173 +#, kde-format +msgid "Move selected text when dragged" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkSmartCopyCut) +#: dialogs/editconfigwidget.ui:180 +#, kde-format +msgid "Copy/cut the current line if invoked without any text selected" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkMousePasteAtCursorPosition) +#: dialogs/editconfigwidget.ui:187 +#, kde-format +msgid "Don't move the text cursor when pasting by mouse" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblClipboardHistoryEntries) +#: dialogs/editconfigwidget.ui:194 +#, kde-format +msgid "Max Clipboard History Entries:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbClipboardHistoryEntries) +#: dialogs/editconfigwidget.ui:204 +#, kde-format +msgid "This determines the number of entries to keep in the clipboard history" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblBracketHelp) +#: dialogs/editconfigwidget.ui:226 +#, kde-format +msgid "" +"When you type these characters while text is selected, they will surround " +"the selected text instead of replacing it." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAccessibility) +#: dialogs/editconfigwidget.ui:252 +#, kde-format +msgid "Enable accessibility notifications" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/editconfigwidget.ui:259 +#, kde-format +msgid "Accessibility:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblFiletype) +#: dialogs/filetypeconfigwidget.ui:14 +#, kde-format +msgid "&Filetype:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbFiletypes) +#: dialogs/filetypeconfigwidget.ui:24 +#, kde-format +msgid "Select the filetype you want to change." +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, btnNew) +#: dialogs/filetypeconfigwidget.ui:31 +#, kde-format +msgid "Create a new file type." +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, btnNew) +#: dialogs/filetypeconfigwidget.ui:34 +#, kde-format +msgid "&New" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, btnDelete) +#: dialogs/filetypeconfigwidget.ui:41 +#, kde-format +msgid "Delete the current file type." +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, btnDelete) +#: dialogs/filetypeconfigwidget.ui:44 syntax/katethemeconfig.cpp:1132 +#, kde-format +msgid "&Delete" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbProperties) +#: dialogs/filetypeconfigwidget.ui:66 mode/katemodeconfigpage.cpp:272 +#, kde-format +msgid "Properties" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblName) +#: dialogs/filetypeconfigwidget.ui:72 +#, kde-format +msgid "&Name:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtName) +#: dialogs/filetypeconfigwidget.ui:82 +#, kde-format +msgid "" +"The name of the filetype will be the text of the corresponding menu item." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblSection) +#: dialogs/filetypeconfigwidget.ui:89 +#, kde-format +msgid "&Section:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtSection) +#: dialogs/filetypeconfigwidget.ui:99 +#, kde-format +msgid "The section name is used to organize the file types in menus." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblVariables) +#: dialogs/filetypeconfigwidget.ui:106 +#, kde-format +msgid "&Variables:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (VariableLineEdit, edtVariables) +#: dialogs/filetypeconfigwidget.ui:116 +#, kde-format +msgid "" +"

This string allows to configure Kate's settings for the files selected by " +"this mimetype using Kate variables. Almost any configuration option can be " +"set, such as highlight, indent-mode, encoding, etc.

For a full list of " +"known variables, see the manual.

" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblHl) +#: dialogs/filetypeconfigwidget.ui:123 +#, kde-format +msgid "&Highlighting:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblIndenter) +#: dialogs/filetypeconfigwidget.ui:136 +#, kde-format +msgid "&Indentation mode:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblExtensions) +#: dialogs/filetypeconfigwidget.ui:149 +#, kde-format +msgid "File e&xtensions:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtFileExtensions) +#: dialogs/filetypeconfigwidget.ui:159 +#, kde-format +msgid "" +"The wildcards mask allows to select files by filename. A typical mask uses " +"an asterisk and the file extension, for example *.txt; *.text. " +"The string is a semicolon-separated list of masks." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblMimeTypes) +#: dialogs/filetypeconfigwidget.ui:166 +#, kde-format +msgid "MIME &types:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtMimeTypes) +#: dialogs/filetypeconfigwidget.ui:181 +#, kde-format +msgid "" +"The mime type mask allows to select files by mimetype. The string is a " +"semicolon-separated list of mimetypes, for example text/plain; text/" +"english." +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QToolButton, btnMimeTypes) +#: dialogs/filetypeconfigwidget.ui:188 +#, kde-format +msgid "Displays a wizard that helps you easily select mimetypes." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblPriority) +#: dialogs/filetypeconfigwidget.ui:197 +#, kde-format +msgid "P&riority:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbPriority) +#: dialogs/filetypeconfigwidget.ui:207 +#, kde-format +msgid "" +"Sets priority for this file type. If more than one file type selects the " +"same file, the one with the highest priority will be used." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblMode) +#: dialogs/indentationconfigwidget.ui:43 +#, kde-format +msgid "Default indentation mode:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbMode) +#: dialogs/indentationconfigwidget.ui:53 +#, kde-format +msgid "" +"This is a list of available indentation modes. The specified indentation " +"mode will be used for all new documents. Be aware that it is also possible " +"to set the indentation mode with document variables, modes or a .kateconfig " +"file." +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbIndentationMode) +#: dialogs/indentationconfigwidget.ui:75 +#, kde-format +msgid "Indent using" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbIndentWidth) +#: dialogs/indentationconfigwidget.ui:81 +#, kde-format +msgid "" +"The indentation width is the number of spaces which is used to indent a " +"line. If the option Insert spaces instead of tabulators in the " +"section Editing is disabled, a Tab character is inserted if " +"the indentation is divisible by the tab width." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentWithSpaces) +#: dialogs/indentationconfigwidget.ui:97 +#, kde-format +msgid "&Spaces" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblIndentWidth) +#: dialogs/indentationconfigwidget.ui:104 +#, kde-format +msgid "&Indentation width:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblTabWidth) +#: dialogs/indentationconfigwidget.ui:114 +#, kde-format +msgid "Tab wi&dth:" +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentWithTabs) +#: dialogs/indentationconfigwidget.ui:153 +#, kde-format +msgid "&Tabulators" +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentMixed) +#: dialogs/indentationconfigwidget.ui:160 +#, kde-format +msgid "Tabulators &and Spaces" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoDetectIndent) +#: dialogs/indentationconfigwidget.ui:167 +#, kde-format +msgid "Automatically detect file indentation" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbProperties) +#: dialogs/indentationconfigwidget.ui:177 +#, kde-format +msgid "Indentation Properties" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkKeepExtraSpaces) +#: dialogs/indentationconfigwidget.ui:183 +#, kde-format +msgid "" +"If this option is disabled, changing the indentation level aligns a line to " +"a multiple of the width specified in Indentation width." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkKeepExtraSpaces) +#: dialogs/indentationconfigwidget.ui:186 +#, kde-format +msgid "&Keep extra spaces" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkIndentPaste) +#: dialogs/indentationconfigwidget.ui:193 +#, kde-format +msgid "" +"If this option is selected, pasted code from the clipboard is indented. " +"Triggering the undo-action removes the indentation." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkIndentPaste) +#: dialogs/indentationconfigwidget.ui:196 +#, kde-format +msgid "Adjust indentation of code &pasted from the clipboard" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbKeys) +#: dialogs/indentationconfigwidget.ui:206 +#, kde-format +msgid "Indentation Actions" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackspaceUnindents) +#: dialogs/indentationconfigwidget.ui:212 +#, kde-format +msgid "" +"If this option is selected, the Backspace key decreases the " +"indentation level if the cursor is located in the leading blank space of a " +"line." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackspaceUnindents) +#: dialogs/indentationconfigwidget.ui:215 +#, kde-format +msgid "&Backspace key in leading blank space unindents" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/indentationconfigwidget.ui:225 +#, kde-format +msgid "" +"\n" +"

Tab key action (if no selection exists) Tab to align the current line in the current code block like in emacs, " +#~| "make Tab a shortcut to the action Align.\">More ...

" +#~ msgid "" +#~ "\n" +#~ "

Data Recovery (Help)

Could " +#~ "not recover all data. The swap file was probably incomplete.

" +#~ msgstr "" +#~ "\n" +#~ "

إجراء مفتاح التبويب (إذا لم يحدد شيء) Tab " +#~ "لمحاذاة نص السطر الحالي في كتلة الشفرة الحالية كما في إيماكس، اجعل " +#~ "التبويب إختصار للإجراء Tab حاذ.\">للمزيد ...

" + +#~ msgid "Overwrite" +#~ msgstr "اطمس" + +#, fuzzy +#~| msgid "" +#~| "\n" +#~| "

Tab key action (if no selection exists) Tab to align the current line in the current code block like in emacs, " +#~| "make Tab a shortcut to the action Align.\">More ...

" +#~ msgid "" +#~ "\n" +#~ "

Data Recovery (Help)

The file was not closed appropriately. Do you want to recover the " +#~ "data?

" +#~ msgstr "" +#~ "\n" +#~ "
" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabAdvances) +#: dialogs/indentationconfigwidget.ui:276 +#, kde-format +msgid "" +"If this option is selected, the Tab key always inserts white space so " +"that the next tab position is reached. If the option Insert spaces " +"instead of tabulators in the section Editing is enabled, spaces " +"are inserted; otherwise, a single tabulator is inserted." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabAdvances) +#: dialogs/indentationconfigwidget.ui:279 +#, kde-format +msgid "Always advance to the &next tab position" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabIndents) +#: dialogs/indentationconfigwidget.ui:286 +#, kde-format +msgid "" +"If this option is selected, the Tab key always indents the current " +"line by the number of character positions specified in Indentation width." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabIndents) +#: dialogs/indentationconfigwidget.ui:289 +#, kde-format +msgid "Always increase indentation &level" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabSmart) +#: dialogs/indentationconfigwidget.ui:296 +#, kde-format +msgid "" +"If this option is selected, the Tab key either indents the current " +"line or advances to the next tab position.

If the insertion point is at " +"or before the first non-space character in the line, or if there is a " +"selection, the current line is indented by the number of character positions " +"specified in Indentation width.

If the insertion point is located " +"after the first non-space character in the line and there is no selection, " +"white space is inserted so that the next tab position is reached: if the " +"option Insert spaces instead of tabulators in the section Editing is enabled, spaces are inserted; otherwise, a single tabulator is " +"inserted." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabSmart) +#: dialogs/indentationconfigwidget.ui:299 +#, kde-format +msgid "Increase indentation level if in l&eading blank space" +msgstr "" + +#: dialogs/katedialogs.cpp:185 dialogs/katedialogs.cpp:187 +#, kde-format +msgid "%v character" +msgid_plural "%v characters" +msgstr[0] "" +msgstr[1] "" + +#: dialogs/katedialogs.cpp:211 +#, kde-format +msgid "Indentation" +msgstr "" + +#: dialogs/katedialogs.cpp:295 +#, kde-format +msgid "Auto Completion" +msgstr "" + +#: dialogs/katedialogs.cpp:362 +#, kde-format +msgid "Spellcheck" +msgstr "" + +#: dialogs/katedialogs.cpp:410 dialogs/katedialogs.cpp:417 +#, kde-format +msgid "Alt" +msgstr "" + +#: dialogs/katedialogs.cpp:411 dialogs/katedialogs.cpp:419 +#, kde-format +msgid "Ctrl" +msgstr "" + +#: dialogs/katedialogs.cpp:412 +#, kde-format +msgid "Meta" +msgstr "" + +#: dialogs/katedialogs.cpp:413 dialogs/katedialogs.cpp:421 +#, kde-format +msgid "Ctrl + Alt" +msgstr "" + +#: dialogs/katedialogs.cpp:414 +#, kde-format +msgid "Meta + Alt" +msgstr "" + +#: dialogs/katedialogs.cpp:415 +#, kde-format +msgid "Ctrl + Meta" +msgstr "" + +#: dialogs/katedialogs.cpp:418 +#, kde-format +msgid "Cmd" +msgstr "" + +#: dialogs/katedialogs.cpp:420 +#, kde-format +msgid "Cmd + Alt" +msgstr "" + +#: dialogs/katedialogs.cpp:422 +#, kde-format +msgid "Cmd + Ctrl" +msgstr "" + +#: dialogs/katedialogs.cpp:480 +#, kde-format +msgid "Text Navigation" +msgstr "" + +#: dialogs/katedialogs.cpp:582 +#, kde-format +msgctxt "Wrap words at (value is at 20 or larger)" +msgid "%v character" +msgid_plural "%v characters" +msgstr[0] "" +msgstr[1] "" + +#: dialogs/katedialogs.cpp:587 +#, kde-format +msgid "Feature is not active" +msgstr "" + +#: dialogs/katedialogs.cpp:589 +#, kde-format +msgid "Disable Feature" +msgstr "" + +#: dialogs/katedialogs.cpp:591 +#, kde-format +msgid "May be handy with Markdown" +msgstr "" + +#: dialogs/katedialogs.cpp:593 +#, kde-format +msgid "Mirror characters, similar but not exactly like auto brackets" +msgstr "" + +#: dialogs/katedialogs.cpp:595 +#, kde-format +msgid "Non letter character" +msgstr "" + +#: dialogs/katedialogs.cpp:712 +#, kde-format +msgid "Editing" +msgstr "" + +#: dialogs/katedialogs.cpp:717 +#, kde-format +msgid "Editing Options" +msgstr "" + +#: dialogs/katedialogs.cpp:751 +#, kde-format +msgid "Statusbar" +msgstr "" + +#: dialogs/katedialogs.cpp:753 +#, kde-format +msgid "Off" +msgstr "" + +#: dialogs/katedialogs.cpp:754 +#, kde-format +msgid "Follow Line Numbers" +msgstr "" + +#: dialogs/katedialogs.cpp:945 dialogs/katedialogs.cpp:950 +#, kde-format +msgid "Appearance" +msgstr "" + +#: dialogs/katedialogs.cpp:986 +#, kde-format +msgid "" +"%1 backs up unsaved files to \"swap files.\" Swap files allow %1 to recover " +"your work in the case of a system crash. Disabling swap files may cause data " +"loss in case of a system crash." +msgstr "" + +#: dialogs/katedialogs.cpp:1027 +#, kde-format +msgid "Advanced" +msgstr "" + +#: dialogs/katedialogs.cpp:1092 +#, kde-format +msgid "" +"You did not provide a backup suffix or prefix. Using default suffix: '~'" +msgstr "" + +#: dialogs/katedialogs.cpp:1092 +#, kde-format +msgid "No Backup Suffix or Prefix" +msgstr "" + +#: dialogs/katedialogs.cpp:1227 +#, kde-format +msgid "Open/Save" +msgstr "" + +#: dialogs/katedialogs.cpp:1232 +#, kde-format +msgid "File Opening & Saving" +msgstr "" + +#: dialogs/katedialogs.cpp:1255 +#, kde-format +msgid "&Line:" +msgstr "" + +#: dialogs/katedialogs.cpp:1256 +#, kde-format +msgid "Go to line number from clipboard" +msgstr "" + +#: dialogs/katedialogs.cpp:1267 +#, kde-format +msgid "Go to" +msgstr "" + +#: dialogs/katedialogs.cpp:1347 +#, kde-format +msgid "No valid line number found in clipboard" +msgstr "" + +#: dialogs/katedialogs.cpp:1411 +#, kde-format +msgid "Dictionary:" +msgstr "" + +#: dialogs/katedialogs.cpp:1463 +#, kde-format +msgid "Enable Auto Reload" +msgstr "" + +#: dialogs/katedialogs.cpp:1466 +#, kde-format +msgid "" +"Reloads and will automatically reload without warning about disk changes " +"from now until you close either the tab or window." +msgstr "" + +#: dialogs/katedialogs.cpp:1471 +#, kde-format +msgid "View &Difference" +msgstr "" + +#: dialogs/katedialogs.cpp:1473 +#, kde-format +msgid "Shows a diff of the changes." +msgstr "" + +#: dialogs/katedialogs.cpp:1478 +#, kde-format +msgid "&Reload" +msgstr "" + +#: dialogs/katedialogs.cpp:1480 +#, kde-format +msgid "Reloads the file from disk. Unsaved changes will be lost." +msgstr "" + +#: dialogs/katedialogs.cpp:1484 +#, kde-format +msgctxt "@action:button closes the opened file" +msgid "&Close File" +msgstr "" + +#: dialogs/katedialogs.cpp:1486 +#, kde-format +msgid "Closes the file, discarding its content." +msgstr "" + +#: dialogs/katedialogs.cpp:1490 +#, kde-format +msgctxt "@action" +msgid "&Save As…" +msgstr "" + +#: dialogs/katedialogs.cpp:1492 +#, kde-format +msgid "Lets you select a location and save the file again." +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, m_skipBtn) +#: dialogs/katedialogs.cpp:1497 spellcheck/spellcheckbar.ui:143 +#, kde-format +msgid "&Ignore" +msgstr "" + +#: dialogs/katedialogs.cpp:1498 +#, kde-format +msgid "Ignores the changes on disk without any action." +msgstr "" + +#: dialogs/katedialogs.cpp:1567 swapfile/kateswapdiffcreator.cpp:131 +#, kde-format +msgid "" +"The diff command failed. Please make sure that diff(1) is installed and in " +"your PATH." +msgstr "" + +#: dialogs/katedialogs.cpp:1569 swapfile/kateswapdiffcreator.cpp:89 +#: swapfile/kateswapdiffcreator.cpp:99 swapfile/kateswapdiffcreator.cpp:133 +#, kde-format +msgid "Error Creating Diff" +msgstr "" + +#: dialogs/katedialogs.cpp:1576 swapfile/kateswapdiffcreator.cpp:140 +#, kde-format +msgid "The files are identical." +msgstr "" + +#: dialogs/katedialogs.cpp:1576 swapfile/kateswapdiffcreator.cpp:140 +#, kde-format +msgid "Diff Output" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbCursorMovement) +#: dialogs/navigationconfigwidget.ui:29 +#, kde-format +msgid "Text Cursor Movement" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkSmartHome) +#: dialogs/navigationconfigwidget.ui:35 +#, kde-format +msgid "" +"When selected, pressing the home key will cause the cursor to skip " +"whitespace and go to the start of a line's text. The same applies for the " +"end key." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkSmartHome) +#: dialogs/navigationconfigwidget.ui:38 +#, kde-format +msgid "Smart ho&me and smart end" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkPagingMovesCursor) +#: dialogs/navigationconfigwidget.ui:45 +#, kde-format +msgid "" +"Selects whether the PageUp and PageDown keys should alter the vertical " +"position of the cursor relative to the top of the view." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkPagingMovesCursor) +#: dialogs/navigationconfigwidget.ui:48 +#, kde-format +msgid "&PageUp/PageDown moves cursor" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkCamelCursor) +#: dialogs/navigationconfigwidget.ui:55 +#, kde-format +msgid "" +"Selects whether cursor stops at camel case humps and underscores within a " +"word." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkCamelCursor) +#: dialogs/navigationconfigwidget.ui:58 +#, kde-format +msgid "" +"Stop at 'camelCase' and 'snake_case' subwords when moving the cursor by word" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:79 +#, kde-format +msgid "&Autocenter cursor:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:89 +#, kde-format +msgid "" +"Sets the number of lines to maintain visible above and below the cursor when " +"possible." +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, spbSwapFileSync) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:92 dialogs/opensaveconfigadvwidget.ui:120 +#: dialogs/opensaveconfigadvwidget.ui:168 +#, kde-format +msgid "Disabled" +msgstr "" + +#. i18n: ectx: property (suffix), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:95 +#, kde-format +msgid " lines" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, cbNavigationMisc) +#: dialogs/navigationconfigwidget.ui:120 +#, kde-format +msgid "Misc" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:128 +#, kde-format +msgid "Text selection mode:" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:139 inputmode/katenormalinputmode.cpp:64 +#: mode/katemodemanager.cpp:162 +#, kde-format +msgid "Normal" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:144 +#, kde-format +msgid "Persistent" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollPastEnd) +#: dialogs/navigationconfigwidget.ui:167 +#, kde-format +msgid "Allow scrolling past the end of the document" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackspaceRemoveComposed) +#: dialogs/navigationconfigwidget.ui:174 +#, kde-format +msgid "" +"When selected, composed characters are removed with their diacritics instead " +"of only removing the base character. This is useful for Indic locales." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackspaceRemoveComposed) +#: dialogs/navigationconfigwidget.ui:177 +#, kde-format +msgid "Backspace key removes character’s base with its diacritics" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbCycleBookmarks) +#: dialogs/navigationconfigwidget.ui:184 +#, kde-format +msgid "Allow to cycle through bookmarks" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbMulticursor) +#: dialogs/navigationconfigwidget.ui:194 +#, kde-format +msgid "Multicursor" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblMulticursormodifiers) +#: dialogs/navigationconfigwidget.ui:200 +#, kde-format +msgid "Multiple Cursor Modifiers" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoReloadVersionControl) +#: dialogs/opensaveconfigadvwidget.ui:34 +#, kde-format +msgid "Auto reload files in version control" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoReloadOnExternalChanges) +#: dialogs/opensaveconfigadvwidget.ui:41 +#, kde-format +msgid "Auto reload files on external changes" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/opensaveconfigadvwidget.ui:48 +#, kde-format +msgid "Write a backup file on save for:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackupLocalFiles) +#: dialogs/opensaveconfigadvwidget.ui:55 +#, kde-format +msgid "" +"If this option is enabled, backups for local files will be created when " +"saving." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackupLocalFiles) +#: dialogs/opensaveconfigadvwidget.ui:58 +#, kde-format +msgid "&Local files" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackupRemoteFiles) +#: dialogs/opensaveconfigadvwidget.ui:65 +#, kde-format +msgid "" +"If this option is enabled, backups for remote files will be created when " +"saving." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackupRemoteFiles) +#: dialogs/opensaveconfigadvwidget.ui:68 +#, kde-format +msgid "&Remote files" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/opensaveconfigadvwidget.ui:75 +#, kde-format +msgid "Prefix for backup files:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtBackupPrefix) +#: dialogs/opensaveconfigadvwidget.ui:85 +#, kde-format +msgid "Enter the prefix to prepend to the backup file names." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/opensaveconfigadvwidget.ui:92 +#, kde-format +msgid "Suffix for backup files:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtBackupSuffix) +#: dialogs/opensaveconfigadvwidget.ui:102 +#, kde-format +msgid "Enter the suffix to append to the backup file names." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:109 +#, kde-format +msgid "Swap file mode:" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:125 +#, kde-format +msgid "Enabled, Store In Default Directory" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:130 +#, kde-format +msgid "Enabled, Store In Custom Directory" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapDirectory) +#: dialogs/opensaveconfigadvwidget.ui:138 +#, kde-format +msgid "Store swap files in:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapFileSync) +#: dialogs/opensaveconfigadvwidget.ui:158 +#, kde-format +msgid "Save swap files every:" +msgstr "" + +#. i18n: ectx: property (suffix), widget (QSpinBox, spbSwapFileSync) +#: dialogs/opensaveconfigadvwidget.ui:171 +#, kde-format +msgid "s" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblExplanatory) +#: dialogs/opensaveconfigadvwidget.ui:196 +#, kde-format +msgid "" +"This string is located in katedialogs.cpp in KateSaveConfigTab's constructor." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkEditorConfig) +#: dialogs/opensaveconfigadvwidget.ui:209 +#, kde-format +msgid "Honor settings in .editorconfig file" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkUseFirstLineAsDocName) +#: dialogs/opensaveconfigadvwidget.ui:229 +#, kde-format +msgid "Use first line of untitled documents for document name" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbFileFormat) +#: dialogs/opensaveconfigwidget.ui:29 +#, kde-format +msgid "File Format" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblEncoding) +#: dialogs/opensaveconfigwidget.ui:40 +#, kde-format +msgid "&Encoding:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncoding) +#: dialogs/opensaveconfigwidget.ui:50 +#, kde-format +msgid "" +"This defines the standard encoding to use to open/save files, if not changed " +"in the open/save dialog or by using a command line option." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblEncodingDetection) +#: dialogs/opensaveconfigwidget.ui:57 +#, kde-format +msgid "&Encoding detection:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncodingDetection) +#: dialogs/opensaveconfigwidget.ui:67 +#, kde-format +msgid "" +"if neither the encoding chosen as standard above, nor the encoding specified " +"in the open/save dialog, nor the encoding specified on command line match " +"the content of the file, this detection will be run." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblEncodingDetection2) +#: dialogs/opensaveconfigwidget.ui:74 +#, kde-format +msgid "&Fallback encoding:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncodingFallback) +#: dialogs/opensaveconfigwidget.ui:84 +#, kde-format +msgid "" +"This defines the fallback encoding to try for opening files if neither the " +"encoding chosen as standard above, nor the encoding specified in the open/" +"save dialog, nor the encoding specified on command line match the content of " +"the file. Before this is used, an attempt will be made to determine the " +"encoding to use by looking for a byte order mark at start of file: if one is " +"found, the right Unicode encoding will be chosen; otherwise encoding " +"detection will run, if both fail the fallback encoding will be tried." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblEOL) +#: dialogs/opensaveconfigwidget.ui:91 +#, kde-format +msgid "E&nd of line:" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:102 +#, kde-format +msgid "UNIX" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:107 +#, kde-format +msgid "DOS/Windows" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:112 +#, kde-format +msgid "Macintosh" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkDetectEOL) +#: dialogs/opensaveconfigwidget.ui:122 +#, kde-format +msgid "" +"If this option is enabled the editor will autodetect the end of line type. " +"The first found end of line type will be used for the whole file." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDetectEOL) +#: dialogs/opensaveconfigwidget.ui:125 +#, kde-format +msgid "A&utomatic end of line detection" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkEnableBOM) +#: dialogs/opensaveconfigwidget.ui:132 +#, kde-format +msgid "" +"The byte order mark is a special sequence at the beginning of Unicode " +"encoded documents. It helps editors to open text documents with the correct " +"Unicode encoding. The byte order mark is not visible in the displayed " +"document." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkEnableBOM) +#: dialogs/opensaveconfigwidget.ui:135 +#, kde-format +msgid "Enable byte order mark (BOM)" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/opensaveconfigwidget.ui:142 +#, kde-format +msgid "Line length limit:" +msgstr "" + +#. i18n: ectx: property (specialValueText), widget (QSpinBox, lineLengthLimit) +#: dialogs/opensaveconfigwidget.ui:152 +#, kde-format +msgid "Unlimited" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbCleanups) +#: dialogs/opensaveconfigwidget.ui:168 +#, kde-format +msgid "Automatic Cleanups on Save" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLabel, lblRemoveTrailingSpaces) +#. i18n: ectx: property (whatsThis), widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:176 dialogs/opensaveconfigwidget.ui:189 +#, kde-format +msgid "" +"Depending on the choice, trailing spaces are removed when saving a document, " +"either in the entire document or only of modified lines." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:179 +#, kde-format +msgid "Re&move trailing spaces:" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, spbAutoSaveInterval) +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/opensaveconfigwidget.ui:193 dialogs/opensaveconfigwidget.ui:270 +#: dialogs/textareaappearanceconfigwidget.ui:104 +#, kde-format +msgid "Never" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:198 +#, kde-format +msgid "On Modified Lines" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:203 +#, kde-format +msgid "In Entire Document" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkNewLineAtEof) +#: dialogs/opensaveconfigwidget.ui:226 +#, kde-format +msgid "" +"On save, a line break is appended to the document if not already present. " +"The line break is visible after reloading the file." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkNewLineAtEof) +#: dialogs/opensaveconfigwidget.ui:229 +#, kde-format +msgid "Append newline at end of file on save" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbAutoSave) +#: dialogs/opensaveconfigwidget.ui:239 +#, kde-format +msgid "Enable Auto Save (local files only)" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbAutoSaveOnFocus) +#: dialogs/opensaveconfigwidget.ui:254 +#, kde-format +msgid "Auto save document when the active document is losing focus" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/opensaveconfigwidget.ui:263 +#, kde-format +msgid "Auto save interval:" +msgstr "" + +#. i18n: ectx: property (suffix), widget (QSpinBox, spbAutoSaveInterval) +#: dialogs/opensaveconfigwidget.ui:273 +#, kde-format +msgid " seconds" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowHighlightingMode) +#: dialogs/statusbarconfigwidget.ui:19 +#, kde-format +msgid "Show highlighting mode" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowInputMode) +#: dialogs/statusbarconfigwidget.ui:26 +#, kde-format +msgid "Show input mode" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowActiveDictionary) +#: dialogs/statusbarconfigwidget.ui:33 +#, kde-format +msgid "Show active dictionary" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowTabSetting) +#: dialogs/statusbarconfigwidget.ui:40 +#, kde-format +msgid "Show tab setting" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowLineColumn) +#: dialogs/statusbarconfigwidget.ui:47 +#, kde-format +msgid "Show line column" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowEncoding) +#: dialogs/statusbarconfigwidget.ui:54 +#, kde-format +msgid "Show File Encoding" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowEOL) +#: dialogs/statusbarconfigwidget.ui:61 +#, kde-format +msgid "Show Line Ending Type" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/textareaappearanceconfigwidget.ui:28 +#, kde-format +msgid "Editor font:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblLineHeight) +#: dialogs/textareaappearanceconfigwidget.ui:48 +#, kde-format +msgid "&Line Height Multiplier:" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QDoubleSpinBox, spbLineHeightMultiplier) +#: dialogs/textareaappearanceconfigwidget.ui:58 +#, kde-format +msgid "" +"This value will be multiplied with the font's default line height. A value " +"of 1.0 means that the default height will be used." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/textareaappearanceconfigwidget.ui:93 +#, kde-format +msgid "Show whitespace indicators:" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/textareaappearanceconfigwidget.ui:109 +#, kde-format +msgid "At the end of a line" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/textareaappearanceconfigwidget.ui:114 +#, kde-format +msgid "Always" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lbMarkerDescription) +#: dialogs/textareaappearanceconfigwidget.ui:122 +#, kde-format +msgid "Whitespace indicator si&ze:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QSlider, sliSetMarkerSize) +#: dialogs/textareaappearanceconfigwidget.ui:138 +#, kde-format +msgid "Size of the visible highlight marker." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/textareaappearanceconfigwidget.ui:166 +#, kde-format +msgid "Show &tab indicators:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowTabs) +#: dialogs/textareaappearanceconfigwidget.ui:176 +#, kde-format +msgid "" +"The editor will display a symbol to indicate the presence of a tab in the " +"text." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/textareaappearanceconfigwidget.ui:202 +#, kde-format +msgid "Bracket matching:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowWholeBracketExpression) +#: dialogs/textareaappearanceconfigwidget.ui:209 +#, kde-format +msgid "" +"If this is enabled, the range between the selected matching brackets will be " +"highlighted." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowWholeBracketExpression) +#: dialogs/textareaappearanceconfigwidget.ui:212 +#, kde-format +msgid "Highlight range between selected brackets" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:219 +#, kde-format +msgid "Show the matching open bracket and lines adjacent to it for context" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:222 +#, kde-format +msgid "" +"If this is enabled, a preview of the lines near a matching open bracket is " +"shown. This can help in quickly determining the context of a closing " +"bracket, especially in long function/class declarations and deeply nested if " +"blocks" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:225 +#, kde-format +msgid "Show preview of matching open bracket" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:232 +#, kde-format +msgid "Flash matching brackets" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:235 +#, kde-format +msgid "" +"If this is enabled, matching brackets are animated for better visibility." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:238 +#, kde-format +msgid "Flash matching bracket when cursor moves to other bracket in pair" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/textareaappearanceconfigwidget.ui:261 +#, kde-format +msgid "Counts:" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowWordCount) +#: dialogs/textareaappearanceconfigwidget.ui:268 +#, kde-format +msgid "Show/hide word count in status bar" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowWordCount) +#: dialogs/textareaappearanceconfigwidget.ui:271 view/katestatusbar.cpp:258 +#, kde-format +msgid "Show word count" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowLineCount) +#: dialogs/textareaappearanceconfigwidget.ui:278 +#, kde-format +msgid "Show/hide line count in status bar" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowLineCount) +#: dialogs/textareaappearanceconfigwidget.ui:281 view/katestatusbar.cpp:255 +#, kde-format +msgid "Show line count" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_25) +#: dialogs/textareaappearanceconfigwidget.ui:304 +#, kde-format +msgid "Fold first line:" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkFoldFirstLine) +#: dialogs/textareaappearanceconfigwidget.ui:317 +#, kde-format +msgid "" +"When this setting is enabled, the editor view automatically folds\n" +"comment blocks that start on the first line of the document. This is\n" +"helpful to hide license headers which are commonly placed at the\n" +"beginning of a file." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbxWordWrap) +#: dialogs/textareaappearanceconfigwidget.ui:337 +#, kde-format +msgid "Dynamic Word Wrap:" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDynWrapAtStaticMarker) +#: dialogs/textareaappearanceconfigwidget.ui:344 +#, kde-format +msgid "Wrap dynamically at static word wrap marker" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDynWrapAnywhere) +#: dialogs/textareaappearanceconfigwidget.ui:351 +#, kde-format +msgid "Disregard word boundaries for dynamic wrapping" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblDynamicWordWrapIndicators) +#: dialogs/textareaappearanceconfigwidget.ui:358 +#, kde-format +msgid "D&ynamic word wrap indicators:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbDynamicWordWrapIndicator) +#: dialogs/textareaappearanceconfigwidget.ui:368 +#, kde-format +msgid "Choose when the Dynamic Word Wrap Indicators should be displayed." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/textareaappearanceconfigwidget.ui:391 +#, kde-format +msgid "I&ndent wrapped lines:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblDynamicWordWrapIndicators_2) +#: dialogs/textareaappearanceconfigwidget.ui:408 +#, kde-format +msgid "&Don't indent lines wider than:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbDynamicWordWrapDepth) +#: dialogs/textareaappearanceconfigwidget.ui:424 +#, no-c-format, kde-format +msgid "" +"

Enables the start of dynamically wrapped lines to be aligned vertically " +"to the indentation level of the first line. This can help to make code and " +"markup more readable.

Additionally, this allows you to set a maximum " +"width of the screen, as a percentage, after which dynamically wrapped lines " +"will no longer be vertically aligned. For example, at 50%, lines whose " +"indentation levels are deeper than 50% of the width of the screen will not " +"have vertical alignment applied to subsequent wrapped lines.

" +msgstr "" + +#. i18n: ectx: property (suffix), widget (QSpinBox, sbDynamicWordWrapDepth) +#: dialogs/textareaappearanceconfigwidget.ui:427 +#, no-c-format, kde-format +msgid "% of View Width" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_24) +#: dialogs/textareaappearanceconfigwidget.ui:443 +#, kde-format +msgid "Show i&ndentation lines:" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowIndentationLines) +#: dialogs/textareaappearanceconfigwidget.ui:453 +#, kde-format +msgid "" +"If this is enabled, the editor will display vertical lines to help identify " +"indent lines." +msgstr "" + +#: document/katebuffer.cpp:135 +#, kde-format +msgctxt "short translation, user created new file" +msgid "New file" +msgstr "" + +#: document/katedocument.cpp:223 +#, kde-format +msgid "Auto Reload Document" +msgstr "" + +#: document/katedocument.cpp:225 +#, kde-format +msgid "Automatic reload the document when it was changed on disk" +msgstr "" + +#: document/katedocument.cpp:2307 +#, kde-format +msgid "" +"The file %1 could not be loaded, as it was not possible to read from it.
Check if you have read access to this file." +msgstr "" + +#: document/katedocument.cpp:2312 +#, kde-format +msgctxt "translators: you can also translate 'Try Again' with 'Reload'" +msgid "Try Again" +msgstr "" + +#: document/katedocument.cpp:2316 document/katedocument.cpp:6534 +#, kde-format +msgid "&Close" +msgstr "" + +#: document/katedocument.cpp:2317 document/katedocument.cpp:6535 +#, kde-format +msgctxt "Close the message being displayed" +msgid "Close message" +msgstr "" + +#: document/katedocument.cpp:2449 +#, kde-format +msgid "" +"The file %1 was opened with %2 encoding but contained invalid characters." +"
It is set to read-only mode, as saving might destroy its content.
Either reopen the file with the correct encoding chosen or enable the read-" +"write mode again in the tools menu to be able to edit it." +msgstr "" + +#: document/katedocument.cpp:2468 +#, kde-format +msgid "" +"The file %1 was opened and contained lines longer than the configured Line " +"Length Limit (%2 characters).
The longest of those lines was %3 " +"characters long
Those lines were wrapped and the document is set to read-" +"only mode, as saving will modify its content." +msgstr "" + +#: document/katedocument.cpp:2475 +#, kde-format +msgid "Temporarily raise limit and reload file" +msgstr "" + +#: document/katedocument.cpp:2478 +#, kde-format +msgid "Close" +msgstr "" + +#: document/katedocument.cpp:2505 +#, kde-format +msgid "" +"Do you really want to save this unmodified file? You could overwrite changed " +"data in the file on disk." +msgstr "" + +#: document/katedocument.cpp:2506 +#, kde-format +msgid "Trying to Save Unmodified File" +msgstr "" + +#: document/katedocument.cpp:2507 document/katedocument.cpp:2518 +#: document/katedocument.cpp:2534 +#, kde-format +msgid "Save Nevertheless" +msgstr "" + +#: document/katedocument.cpp:2516 +#, kde-format +msgid "" +"Do you really want to save this file? Both your open file and the file on " +"disk were changed. There could be some data lost." +msgstr "" + +#: document/katedocument.cpp:2517 document/katedocument.cpp:2533 +#: document/katedocument.cpp:2853 syntax/katethemeconfig.cpp:1218 +#: syntax/katethemeconfig.cpp:1376 +#, kde-format +msgid "Possible Data Loss" +msgstr "" + +#: document/katedocument.cpp:2531 +#, kde-format +msgid "" +"The selected encoding cannot encode every Unicode character in this " +"document. Do you really want to save it? There could be some data lost." +msgstr "" + +#: document/katedocument.cpp:2601 +#, kde-format +msgid "" +"The document could not be saved, as it was not possible to write to %1.\n" +"Check that you have write access to this file or that enough disk space is " +"available.\n" +"The original file may be lost or damaged. Don't quit the application until " +"the file is successfully written." +msgstr "" + +#: document/katedocument.cpp:2722 +#, kde-format +msgid "" +"For file %1 no backup copy could be created before saving. If an error " +"occurs while saving, you might lose the data of this file. A reason could be " +"that the media you write to is full or the directory of the file is read-" +"only for you." +msgstr "" + +#: document/katedocument.cpp:2726 +#, kde-format +msgid "Failed to create backup copy." +msgstr "" + +#: document/katedocument.cpp:2727 +#, kde-format +msgid "Try to Save Nevertheless" +msgstr "" + +#: document/katedocument.cpp:2852 +#, kde-format +msgid "Do you really want to continue to close this file? Data loss may occur." +msgstr "" + +#: document/katedocument.cpp:2854 +#, kde-format +msgid "Close Nevertheless" +msgstr "" + +#: document/katedocument.cpp:4641 +#, kde-format +msgid "Untitled (%1)" +msgstr "" + +#: document/katedocument.cpp:4643 +#, kde-format +msgid "Untitled" +msgstr "" + +#: document/katedocument.cpp:4820 document/katedocument.cpp:5051 +#: document/katedocument.cpp:5061 document/katedocument.cpp:5862 +#: document/katedocument.cpp:6049 +#, kde-format +msgid "Save File" +msgstr "" + +#: document/katedocument.cpp:4823 +#, kde-format +msgid "Save failed" +msgstr "" + +#: document/katedocument.cpp:5072 +#, kde-format +msgid "Save Copy of File" +msgstr "" + +#: document/katedocument.cpp:5084 +#, kde-format +msgid "" +"The document could not be saved, as it was not possible to write to %1.\n" +"\n" +"Check that you have write access to this file or that enough disk space is " +"available." +msgstr "" + +#: document/katedocument.cpp:5376 +#, kde-format +msgid "" +"Using deprecated modeline 'remove-trailing-space'. Please replace with " +"'remove-trailing-spaces modified;', see https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" +msgstr "" + +#: document/katedocument.cpp:5382 +#, kde-format +msgid "" +"Using deprecated modeline 'replace-trailing-space-save'. Please replace with " +"'remove-trailing-spaces all;', see https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" +msgstr "" + +#: document/katedocument.cpp:5696 +#, kde-format +msgid "The file '%1' was modified on disk." +msgstr "" + +#: document/katedocument.cpp:5698 +#, kde-format +msgid "The file '%1' was deleted or moved on disk." +msgstr "" + +#: document/katedocument.cpp:6034 +#, kde-format +msgid "" +"The document \"%1\" has been modified.\n" +"Do you want to save your changes or discard them?" +msgstr "" + +#: document/katedocument.cpp:6037 +#, kde-format +msgid "Close Document" +msgstr "" + +#: document/katedocument.cpp:6148 +#, kde-format +msgid "The file %2 is still loading." +msgstr "" + +#: document/katedocument.cpp:6153 +#, kde-format +msgid "&Abort Loading" +msgstr "" + +#: inputmode/katenormalinputmode.cpp:74 +#, kde-format +msgid "OVERWRITE" +msgstr "" + +#: inputmode/katenormalinputmode.cpp:74 +#, kde-format +msgid "INSERT" +msgstr "" + +#: inputmode/katenormalinputmodefactory.cpp:29 +#, kde-format +msgid "Normal Mode" +msgstr "" + +#: inputmode/kateviinputmode.cpp:31 +#, kde-format +msgctxt "The INSERT mode of VI" +msgid "VI: INSERT" +msgstr "" + +#: inputmode/kateviinputmode.cpp:34 +#, kde-format +msgctxt "The NORMAL mode of VI" +msgid "VI: NORMAL" +msgstr "" + +#: inputmode/kateviinputmode.cpp:37 +#, kde-format +msgid "VI: VISUAL" +msgstr "" + +#: inputmode/kateviinputmode.cpp:40 +#, kde-format +msgid "VI: VISUAL BLOCK" +msgstr "" + +#: inputmode/kateviinputmode.cpp:43 +#, kde-format +msgid "VI: VISUAL LINE" +msgstr "" + +#: inputmode/kateviinputmode.cpp:46 +#, kde-format +msgid "VI: REPLACE" +msgstr "" + +#: inputmode/kateviinputmode.cpp:146 +#, kde-format +msgid "vi-mode" +msgstr "" + +#: inputmode/kateviinputmode.cpp:159 +#, kde-format +msgid "recording" +msgstr "" + +#: inputmode/kateviinputmodefactory.cpp:38 utils/kateglobal.cpp:88 +#: vimode/config/configtab.cpp:237 +#, kde-format +msgid "Vi Input Mode" +msgstr "" + +#: mode/katemodeconfigpage.cpp:46 +#, kde-format +msgid "" +msgstr "" + +#: mode/katemodeconfigpage.cpp:58 +#, kde-format +msgid "Use Default" +msgstr "" + +#: mode/katemodeconfigpage.cpp:99 mode/katemodeconfigpage.cpp:241 +#, kde-format +msgid "Properties of %1" +msgstr "" + +#: mode/katemodeconfigpage.cpp:178 +#, kde-format +msgid "New Filetype" +msgstr "" + +#: mode/katemodeconfigpage.cpp:293 +#, kde-format +msgid "" +"Select the MimeTypes you want for this file type.\n" +"Please note that this will automatically edit the associated file extensions " +"as well." +msgstr "" + +#: mode/katemodeconfigpage.cpp:295 +#, kde-format +msgid "Select Mime Types" +msgstr "" + +#: mode/katemodeconfigpage.cpp:312 +#, kde-format +msgid "Modes && Filetypes" +msgstr "" + +#: mode/katemodemenulist.cpp:138 +#, kde-format +msgctxt "@info:placeholder" +msgid "Search…" +msgstr "" + +#: mode/katemodemenulist.cpp:140 +#, kde-format +msgctxt "ToolTip of the search bar of modes of syntax highlighting" +msgid "" +"Search for syntax highlighting modes by language name or file extension (for " +"example, C++ or .cpp)" +msgstr "" + +#: mode/katemodemenulist.cpp:560 +#, kde-format +msgctxt "A search yielded no results" +msgid "No items matching your search" +msgstr "" + +#: mode/katemodemenulist.cpp:1087 +#, kde-format +msgctxt "" +"Title (in singular) of the best result in an item search. Please, that the " +"translation doesn't have more than 34 characters, since the menu where it's " +"displayed is small and fixed." +msgid "Best Search Match" +msgstr "" + +#: mode/katemodemenulist.cpp:1092 +#, kde-format +msgctxt "" +"Title (in plural) of the best results in an item search. Please, that the " +"translation doesn't have more than 34 characters, since the menu where it's " +"displayed is small and fixed." +msgid "Best Search Matches" +msgstr "" + +#: printing/printconfigwidgets.cpp:36 +#, kde-format +msgid "Te&xt Settings" +msgstr "" + +#: printing/printconfigwidgets.cpp:40 +#, kde-format +msgid "Print line &numbers" +msgstr "" + +#: printing/printconfigwidgets.cpp:43 +#, kde-format +msgid "Print &legend" +msgstr "" + +#: printing/printconfigwidgets.cpp:46 +#, kde-format +msgid "Don't print folded code" +msgstr "" + +#: printing/printconfigwidgets.cpp:54 +#, kde-format +msgid "" +"

If enabled, line numbers will be printed on the left side of the page(s)." +"

" +msgstr "" + +#: printing/printconfigwidgets.cpp:56 +#, kde-format +msgid "" +"

Print a box displaying typographical conventions for the document type, " +"as defined by the syntax highlighting being used.

" +msgstr "" + +#: printing/printconfigwidgets.cpp:116 +#, kde-format +msgid "Hea&der && Footer" +msgstr "" + +#: printing/printconfigwidgets.cpp:123 +#, kde-format +msgid "Pr&int header" +msgstr "" + +#: printing/printconfigwidgets.cpp:125 +#, kde-format +msgid "Pri&nt footer" +msgstr "" + +#: printing/printconfigwidgets.cpp:131 +#, kde-format +msgid "Header/footer font:" +msgstr "" + +#: printing/printconfigwidgets.cpp:137 +#, kde-format +msgid "Header Properties" +msgstr "" + +#: printing/printconfigwidgets.cpp:141 +#, kde-format +msgid "&Format:" +msgstr "" + +#: printing/printconfigwidgets.cpp:163 printing/printconfigwidgets.cpp:209 +#, kde-format +msgid "Colors:" +msgstr "" + +#: printing/printconfigwidgets.cpp:170 printing/printconfigwidgets.cpp:216 +#, kde-format +msgid "Foreground:" +msgstr "" + +#: printing/printconfigwidgets.cpp:175 +#, kde-format +msgid "Bac&kground" +msgstr "" + +#: printing/printconfigwidgets.cpp:181 +#, kde-format +msgid "Footer Properties" +msgstr "" + +#: printing/printconfigwidgets.cpp:186 +#, kde-format +msgid "For&mat:" +msgstr "" + +#: printing/printconfigwidgets.cpp:221 +#, kde-format +msgid "&Background" +msgstr "" + +#: printing/printconfigwidgets.cpp:250 +#, kde-format +msgid "

Format of the page header. The following tags are supported:

" +msgstr "" + +#: printing/printconfigwidgets.cpp:252 +#, kde-format +msgid "" +"
  • %u: current user name
  • %d: complete date/" +"time in short format
  • %D: complete date/time in long format
  • %h: current time
  • %y: current date in short " +"format
  • %Y: current date in long format
  • %f: " +"file name
  • %U: full URL of the document
  • %p: " +"page number
  • %P: total amount of pages

" +msgstr "" + +#: printing/printconfigwidgets.cpp:266 +#, kde-format +msgid "

Format of the page footer. The following tags are supported:

" +msgstr "" + +#: printing/printconfigwidgets.cpp:352 +#, kde-format +msgid "Add Placeholder..." +msgstr "" + +#: printing/printconfigwidgets.cpp:354 +#, kde-format +msgid "Current User Name" +msgstr "" + +#: printing/printconfigwidgets.cpp:356 +#, kde-format +msgid "Complete Date/Time (short format)" +msgstr "" + +#: printing/printconfigwidgets.cpp:358 +#, kde-format +msgid "Complete Date/Time (long format)" +msgstr "" + +#: printing/printconfigwidgets.cpp:360 +#, kde-format +msgid "Current Time" +msgstr "" + +#: printing/printconfigwidgets.cpp:362 +#, kde-format +msgid "Current Date (short format)" +msgstr "" + +#: printing/printconfigwidgets.cpp:364 +#, kde-format +msgid "Current Date (long format)" +msgstr "" + +#: printing/printconfigwidgets.cpp:366 +#, kde-format +msgid "File Name" +msgstr "" + +#: printing/printconfigwidgets.cpp:368 +#, kde-format +msgid "Full document URL" +msgstr "" + +#: printing/printconfigwidgets.cpp:370 +#, kde-format +msgid "Page Number" +msgstr "" + +#: printing/printconfigwidgets.cpp:372 +#, kde-format +msgid "Total Amount of Pages" +msgstr "" + +#: printing/printconfigwidgets.cpp:478 +#, kde-format +msgid "L&ayout" +msgstr "" + +#: printing/printconfigwidgets.cpp:484 +#, kde-format +msgid "&Color theme:" +msgstr "" + +#: printing/printconfigwidgets.cpp:494 +#, kde-format +msgid "Font:" +msgstr "" + +#: printing/printconfigwidgets.cpp:498 +#, kde-format +msgid "Draw bac&kground color" +msgstr "" + +#: printing/printconfigwidgets.cpp:501 +#, kde-format +msgid "Draw &boxes" +msgstr "" + +#: printing/printconfigwidgets.cpp:505 +#, kde-format +msgid "Box Properties" +msgstr "" + +#: printing/printconfigwidgets.cpp:509 +#, kde-format +msgid "W&idth:" +msgstr "" + +#: printing/printconfigwidgets.cpp:517 +#, kde-format +msgid "&Margin:" +msgstr "" + +#: printing/printconfigwidgets.cpp:525 +#, kde-format +msgid "Co&lor:" +msgstr "" + +#: printing/printconfigwidgets.cpp:547 +#, kde-format +msgid "Select the color theme to use for the print." +msgstr "" + +#: printing/printconfigwidgets.cpp:549 +#, kde-format +msgid "" +"

If enabled, the background color of the editor will be used.

This " +"may be useful if your color theme is designed for a dark background.

" +msgstr "" + +#: printing/printconfigwidgets.cpp:552 +#, kde-format +msgid "" +"

If enabled, a box as defined in the properties below will be drawn around " +"the contents of each page. The Header and Footer will be separated from the " +"contents with a line as well.

" +msgstr "" + +#: printing/printconfigwidgets.cpp:555 +#, kde-format +msgid "The width of the box outline" +msgstr "" + +#: printing/printconfigwidgets.cpp:556 +#, kde-format +msgid "The margin inside boxes, in pixels" +msgstr "" + +#: printing/printconfigwidgets.cpp:557 +#, kde-format +msgid "The line color to use for boxes" +msgstr "" + +#: printing/printpainter.cpp:269 +#, kde-format +msgid "(Selection of) " +msgstr "" + +#: printing/printpainter.cpp:522 +#, kde-format +msgid "Typographical Conventions for %1" +msgstr "" + +#: printing/printpainter.cpp:555 +#, kde-format +msgid "text" +msgstr "" + +#: script/data/commands/emmet.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Expand Abbreviation" +msgstr "" + +#: script/data/commands/emmet.js:10 script/data/commands/emmet.js:14 +#: script/data/commands/emmet.js:19 script/data/commands/emmet.js:23 +#: script/data/commands/emmet.js:27 script/data/commands/emmet.js:31 +#: script/data/commands/emmet.js:35 script/data/commands/emmet.js:39 +#: script/data/commands/emmet.js:43 script/data/commands/emmet.js:47 +#: script/data/commands/emmet.js:51 script/data/commands/emmet.js:55 +#: script/data/commands/emmet.js:59 script/data/commands/emmet.js:63 +#: script/data/commands/emmet.js:67 script/data/commands/emmet.js:71 +#: script/data/commands/emmet.js:75 script/data/commands/emmet.js:79 +#: script/data/commands/emmet.js:83 +#, kde-format +msgctxt "Script command category" +msgid "Emmet" +msgstr "" + +#: script/data/commands/emmet.js:13 +#, kde-format +msgctxt "Script command name" +msgid "Wrap with Tag" +msgstr "" + +#: script/data/commands/emmet.js:18 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Matching Tag" +msgstr "" + +#: script/data/commands/emmet.js:22 +#, kde-format +msgctxt "Script command name" +msgid "Select HTML/XML Tag Contents Inwards" +msgstr "" + +#: script/data/commands/emmet.js:26 +#, kde-format +msgctxt "Script command name" +msgid "Select HTML/XML Tag Contents Outwards" +msgstr "" + +#: script/data/commands/emmet.js:30 +#, kde-format +msgctxt "Script command name" +msgid "Toggle Comment" +msgstr "" + +#: script/data/commands/emmet.js:34 +#, kde-format +msgctxt "Script command name" +msgid "Go to Next Edit Point" +msgstr "" + +#: script/data/commands/emmet.js:38 +#, kde-format +msgctxt "Script command name" +msgid "Go to Previous Edit Point" +msgstr "" + +#: script/data/commands/emmet.js:42 +#, kde-format +msgctxt "Script command name" +msgid "Select Next Edit Point" +msgstr "" + +#: script/data/commands/emmet.js:46 +#, kde-format +msgctxt "Script command name" +msgid "Select Previous Edit Point" +msgstr "" + +#: script/data/commands/emmet.js:50 +#, kde-format +msgctxt "Script command name" +msgid "Delete Tag Under Cursor" +msgstr "" + +#: script/data/commands/emmet.js:54 +#, kde-format +msgctxt "Script command name" +msgid "Split or Join a Tag" +msgstr "" + +#: script/data/commands/emmet.js:58 +#, kde-format +msgctxt "Script command name" +msgid "Evaluate a Simple Math Expression" +msgstr "" + +#: script/data/commands/emmet.js:62 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 1" +msgstr "" + +#: script/data/commands/emmet.js:66 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 10" +msgstr "" + +#: script/data/commands/emmet.js:70 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 0.1" +msgstr "" + +#: script/data/commands/emmet.js:74 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 1" +msgstr "" + +#: script/data/commands/emmet.js:78 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 10" +msgstr "" + +#: script/data/commands/emmet.js:82 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 0.1" +msgstr "" + +#: script/data/commands/emmet.js:96 +#, kde-format +msgid "" +"Expands the abbreviation using Emmet expressions; see http://code.google.com/" +"p/zen-coding/wiki/ZenHTMLSelectorsEn" +msgstr "" + +#: script/data/commands/emmet.js:97 +#, kde-format +msgid "" +"Wraps the selected text in XML tags constructed from the provided Emmet " +"expression (defaults to div)." +msgstr "" + +#: script/data/commands/emmet.js:98 +#, kde-format +msgid "Moves the caret to the current tag's pair" +msgstr "" + +#: script/data/commands/emmet.js:99 +#, kde-format +msgid "" +"Select contents of HTML/XML tag, moving inward on continuous invocations" +msgstr "" + +#: script/data/commands/emmet.js:100 +#, kde-format +msgid "" +"Select contents of HTML/XML tag, moving outwards on continuous invocations" +msgstr "" + +#: script/data/commands/emmet.js:101 +#, kde-format +msgid "Move to the next edit point (tag or empty attribute)." +msgstr "" + +#: script/data/commands/emmet.js:102 +#, kde-format +msgid "Move to the previous edit point (tag or empty attribute)." +msgstr "" + +#: script/data/commands/emmet.js:103 +#, kde-format +msgid "Select next edit point (tag or empty attribute)." +msgstr "" + +#: script/data/commands/emmet.js:104 +#, kde-format +msgid "Select previous edit point (tag or empty attribute)." +msgstr "" + +#: script/data/commands/emmet.js:105 +#, kde-format +msgid "Toggle comment of current tag or CSS selector" +msgstr "" + +#: script/data/commands/emmet.js:106 +#, kde-format +msgid "Deletes tag under cursor" +msgstr "" + +#: script/data/commands/emmet.js:107 +#, kde-format +msgid "Splits or joins a tag" +msgstr "" + +#: script/data/commands/emmet.js:108 +#, kde-format +msgid "Evaluates a simple math expression" +msgstr "" + +#: script/data/commands/emmet.js:109 +#, kde-format +msgid "Decrement number under cursor by 1" +msgstr "" + +#: script/data/commands/emmet.js:110 +#, kde-format +msgid "Decrement number under cursor by 10" +msgstr "" + +#: script/data/commands/emmet.js:111 +#, kde-format +msgid "Decrement number under cursor by 0.1" +msgstr "" + +#: script/data/commands/emmet.js:112 +#, kde-format +msgid "Increment number under cursor by 1" +msgstr "" + +#: script/data/commands/emmet.js:113 +#, kde-format +msgid "Increment number under cursor by 10" +msgstr "" + +#: script/data/commands/emmet.js:114 +#, kde-format +msgid "Increment number under cursor by 0.1" +msgstr "" + +#: script/data/commands/jumpMatchingIndent.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Previous Matching Indent" +msgstr "" + +#: script/data/commands/jumpMatchingIndent.js:11 +#: script/data/commands/jumpMatchingIndent.js:16 +#: script/data/commands/jumpMatchingIndent.js:21 +#: script/data/commands/jumpMatchingIndent.js:26 +#: script/data/commands/navigation.js:10 script/data/commands/navigation.js:14 +#, kde-format +msgctxt "Script command category" +msgid "Navigation" +msgstr "" + +#: script/data/commands/jumpMatchingIndent.js:14 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Next Matching Indent" +msgstr "" + +#: script/data/commands/jumpMatchingIndent.js:19 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Next Blank Line" +msgstr "" + +#: script/data/commands/jumpMatchingIndent.js:24 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Previous Blank Line" +msgstr "" + +#: script/data/commands/jumpMatchingIndent.js:80 +#, kde-format +msgid "Move cursor to previous matching indent" +msgstr "" + +#: script/data/commands/jumpMatchingIndent.js:83 +#, kde-format +msgid "Move cursor to next matching indent" +msgstr "" + +#: script/data/commands/jumpMatchingIndent.js:85 +#, kde-format +msgid "Move cursor to next blank line" +msgstr "" + +#: script/data/commands/jumpMatchingIndent.js:87 +#, kde-format +msgid "Move cursor to previous blank line" +msgstr "" + +#: script/data/commands/navigation.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Go to Next Paragraph" +msgstr "" + +#: script/data/commands/navigation.js:13 +#, kde-format +msgctxt "Script command name" +msgid "Go to Previous Paragraph" +msgstr "" + +#: script/data/commands/utils.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Remove Trailing Spaces" +msgstr "" + +#: script/data/commands/utils.js:10 script/data/commands/utils.js:14 +#: script/data/commands/utils.js:18 script/data/commands/utils.js:22 +#: script/data/commands/utils.js:27 script/data/commands/utils.js:32 +#: script/data/commands/utils.js:36 script/data/commands/utils.js:40 +#: script/data/commands/utils.js:44 script/data/commands/utils.js:48 +#: script/data/commands/utils.js:52 script/data/commands/utils.js:56 +#, kde-format +msgctxt "Script command category" +msgid "Editing" +msgstr "" + +#: script/data/commands/utils.js:13 +#, kde-format +msgctxt "Script command name" +msgid "Remove Leading Spaces" +msgstr "" + +#: script/data/commands/utils.js:17 +#, kde-format +msgctxt "Script command name" +msgid "Remove Trailing and Leading Spaces" +msgstr "" + +#: script/data/commands/utils.js:21 +#, kde-format +msgctxt "Script command name" +msgid "Join Lines" +msgstr "" + +#: script/data/commands/utils.js:25 +#, kde-format +msgctxt "Script command name" +msgid "Move Lines Down" +msgstr "" + +#: script/data/commands/utils.js:30 +#, kde-format +msgctxt "Script command name" +msgid "Move Lines Up" +msgstr "" + +#: script/data/commands/utils.js:35 +#, kde-format +msgctxt "Script command name" +msgid "Duplicate Selected Lines Down" +msgstr "" + +#: script/data/commands/utils.js:39 +#, kde-format +msgctxt "Script command name" +msgid "Duplicate Selected Lines Up" +msgstr "" + +#: script/data/commands/utils.js:43 +#, kde-format +msgctxt "Script command name" +msgid "Duplicate selected text" +msgstr "" + +#: script/data/commands/utils.js:47 +#, kde-format +msgctxt "Script command name" +msgid "URI-encode Selected Text" +msgstr "" + +#: script/data/commands/utils.js:51 +#, kde-format +msgctxt "Script command name" +msgid "URI-decode Selected Text" +msgstr "" + +#: script/data/commands/utils.js:55 +#, kde-format +msgctxt "Script command name" +msgid "Remove Empty Lines" +msgstr "" + +#: script/data/commands/utils.js:410 +#, kde-format +msgid "Sort the selected text or whole document." +msgstr "" + +#: script/data/commands/utils.js:412 +#, kde-format +msgid "Move selected lines down." +msgstr "" + +#: script/data/commands/utils.js:414 +#, kde-format +msgid "Move selected lines up." +msgstr "" + +#: script/data/commands/utils.js:416 +#, kde-format +msgid "Remove duplicate lines from the selected text or whole document." +msgstr "" + +#: script/data/commands/utils.js:418 +#, kde-format +msgid "" +"Sort the selected text or whole document in natural order.
Here is an " +"example to show the difference to the normal sort method:
sort(a10, a1, " +"a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" +msgstr "" + +#: script/data/commands/utils.js:420 +#, kde-format +msgid "Trims trailing whitespace from selection or whole document." +msgstr "" + +#: script/data/commands/utils.js:422 +#, kde-format +msgid "Trims leading whitespace from selection or whole document." +msgstr "" + +#: script/data/commands/utils.js:424 +#, kde-format +msgid "Trims leading and trailing whitespace from selection or whole document." +msgstr "" + +#: script/data/commands/utils.js:426 +#, kde-format +msgid "" +"Joins selected lines or whole document. Optionally pass a separator to put " +"between each line:
join ', ' will e.g. join lines and " +"separate them by a comma." +msgstr "" + +#: script/data/commands/utils.js:428 +#, kde-format +msgid "Removes empty lines from selection or whole document." +msgstr "" + +#: script/data/commands/utils.js:430 +#, kde-format +msgid "" +"This command aligns lines in the selected block or whole document on the " +"column given by a regular expression given as an argument.

If you " +"give an empty pattern it will align on the first non-blank character by " +"default.
If the pattern has a capture it will indent on the captured " +"match.

Examples:
'alignon -' will insert " +"spaces before the first '-' of each lines to align them all on the same " +"column.
'alignon :\\s+(.)' will insert spaces before the " +"first non-blank character that occurs after a colon to align them all on the " +"same column." +msgstr "" + +#: script/data/commands/utils.js:434 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and replace them with the return value of that callback." +"
Example (join selected lines):
each 'function(lines){return " +"lines.join(\", \");}'
To save you some typing, you can also do " +"this to achieve the same:
each 'lines.join(\", \")'" +msgstr "" + +#: script/data/commands/utils.js:436 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and remove those where the callback returns false." +"
Example (see also rmblank):
filter 'function(l)" +"{return l.length > 0;}'
To save you some typing, you can also do " +"this to achieve the same:
filter 'line.length > 0'" +msgstr "" + +#: script/data/commands/utils.js:438 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and replace the line with the return value of the callback." +"
Example (see also ltrim):
map 'function(line)" +"{return line.replace(/^\\s+/, \"\");}'
To save you some typing, " +"you can also do this to achieve the same:
map 'line.replace(/^\\s" +"+/, \"\")'" +msgstr "" + +#: script/data/commands/utils.js:440 +#, kde-format +msgid "Duplicates the selected lines up." +msgstr "" + +#: script/data/commands/utils.js:442 +#, kde-format +msgid "Duplicates the selected lines down." +msgstr "" + +#: script/data/commands/utils.js:446 +#, kde-format +msgid "" +"Encode special chars in a single line selection, so the result text can be " +"used as URI." +msgstr "" + +#: script/data/commands/utils.js:448 +#, kde-format +msgid "Reverse action of URI encode." +msgstr "" + +#: script/data/commands/utils.js:450 +#, kde-format +msgid "" +"Select text forward from current cursor position to the first occurrence of " +"the given argument after it (or the end of the current line by default)." +msgstr "" + +#: script/data/commands/utils.js:452 +#, kde-format +msgid "" +"Select text backward from current cursor position to the last occurrence of " +"the given argument before it (or the beginning of the current line by " +"default)." +msgstr "" + +#: script/data/indentation/ada.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "ada" +msgstr "" + +#: script/data/indentation/cmake.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "CMake" +msgstr "" + +#: script/data/indentation/cppstyle.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "C++/boost Style" +msgstr "" + +#: script/data/indentation/cstyle.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "C Style" +msgstr "" + +#: script/data/indentation/haskell.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Haskell" +msgstr "Haskell" + +#: script/data/indentation/julia.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Julia" +msgstr "" + +#: script/data/indentation/latex.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Latex" +msgstr "" + +#: script/data/indentation/lilypond.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "LilyPond" +msgstr "" + +#: script/data/indentation/lisp.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "LISP" +msgstr "" + +#: script/data/indentation/pascal.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Pascal" +msgstr "" + +#: script/data/indentation/python.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Python" +msgstr "" + +#: script/data/indentation/r.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "R" +msgstr "" + +#: script/data/indentation/replicode.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Replicode" +msgstr "" + +#: script/data/indentation/ruby.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Ruby" +msgstr "" + +#: script/data/indentation/xml.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "XML Style" +msgstr "" + +#: script/katecommandlinescript.cpp:37 +#, kde-format +msgid "Function '%1' not found in script: %2" +msgstr "" + +#: script/katecommandlinescript.cpp:51 +#, kde-format +msgid "Error calling %1" +msgstr "" + +#: script/katecommandlinescript.cpp:68 +#, kde-format +msgid "Bad quoting in call: %1. Please escape single quotes with a backslash." +msgstr "" + +#: script/katecommandlinescript.cpp:76 utils/katecmds.cpp:217 +#: vimode/cmds.cpp:37 +#, kde-format +msgid "Could not access view" +msgstr "" + +#: script/katecommandlinescript.cpp:118 +#, kde-format +msgid "Error calling 'help %1'" +msgstr "" + +#: script/katecommandlinescript.cpp:123 +#, kde-format +msgid "No help specified for command '%1' in script %2" +msgstr "" + +#: script/katescript.cpp:282 +#, kde-format +msgid "Error loading script %1: %2" +msgstr "" + +#: script/katescriptmanager.cpp:319 +#, kde-format +msgid "Reload all JavaScript files (indenters, command line scripts, etc)." +msgstr "" + +#: script/katescriptview.cpp:214 +#, kde-format +msgid "Command not found: %1" +msgstr "" + +#: search/katesearchbar.cpp:73 +#, kde-format +msgid "Add..." +msgstr "" + +#: search/katesearchbar.cpp:298 +#, kde-format +msgctxt "short translation" +msgid "1 replacement made" +msgid_plural "%1 replacements made" +msgstr[0] "" +msgstr[1] "" + +#: search/katesearchbar.cpp:300 +#, kde-format +msgctxt "short translation" +msgid "1 match found" +msgid_plural "%1 matches found" +msgstr[0] "" +msgstr[1] "" + +#: search/katesearchbar.cpp:374 +#, kde-format +msgid "Reached top, continued from bottom" +msgstr "" + +#: search/katesearchbar.cpp:376 +#, kde-format +msgid "Reached bottom, continued from top" +msgstr "" + +#: search/katesearchbar.cpp:381 +#, kde-format +msgid "Not found" +msgstr "" + +#: search/katesearchbar.cpp:615 +#, kde-format +msgid "Bottom of file reached. Continue from top?" +msgstr "" + +#: search/katesearchbar.cpp:615 +#, kde-format +msgid "Top of file reached. Continue from bottom?" +msgstr "" + +#: search/katesearchbar.cpp:618 +#, kde-format +msgid "Continue search?" +msgstr "" + +#: search/katesearchbar.cpp:920 +#, kde-format +msgid "SearchHighLight" +msgstr "" + +#: search/katesearchbar.cpp:1136 search/katesearchbar.cpp:1755 +#, kde-format +msgid "Clear history" +msgstr "" + +#: search/katesearchbar.cpp:1166 +#, kde-format +msgid "Beginning of line" +msgstr "" + +#: search/katesearchbar.cpp:1167 +#, kde-format +msgid "End of line" +msgstr "" + +#: search/katesearchbar.cpp:1169 +#, kde-format +msgid "Match any character excluding new line (by default)" +msgstr "" + +#: search/katesearchbar.cpp:1170 +#, kde-format +msgid "One or more occurrences" +msgstr "" + +#: search/katesearchbar.cpp:1171 +#, kde-format +msgid "Zero or more occurrences" +msgstr "" + +#: search/katesearchbar.cpp:1172 +#, kde-format +msgid "Zero or one occurrences" +msgstr "" + +#: search/katesearchbar.cpp:1175 +#, kde-format +msgid " through occurrences" +msgstr "" + +#: search/katesearchbar.cpp:1181 +#, kde-format +msgid "Group, capturing" +msgstr "" + +#: search/katesearchbar.cpp:1182 +#, kde-format +msgid "Or" +msgstr "" + +#: search/katesearchbar.cpp:1183 +#, kde-format +msgid "Set of characters" +msgstr "" + +#: search/katesearchbar.cpp:1184 +#, kde-format +msgid "Negative set of characters" +msgstr "" + +#: search/katesearchbar.cpp:1188 +#, kde-format +msgid "Whole match reference" +msgstr "" + +#: search/katesearchbar.cpp:1199 +#, kde-format +msgid "Reference" +msgstr "" + +#: search/katesearchbar.cpp:1206 +#, kde-format +msgid "Line break" +msgstr "" + +#: search/katesearchbar.cpp:1207 +#, kde-format +msgid "Tab" +msgstr "" + +#: search/katesearchbar.cpp:1210 +#, kde-format +msgid "Word boundary" +msgstr "" + +#: search/katesearchbar.cpp:1211 +#, kde-format +msgid "Not word boundary" +msgstr "" + +#: search/katesearchbar.cpp:1212 +#, kde-format +msgid "Digit" +msgstr "" + +#: search/katesearchbar.cpp:1213 +#, kde-format +msgid "Non-digit" +msgstr "" + +#: search/katesearchbar.cpp:1214 +#, kde-format +msgid "Whitespace (excluding line breaks)" +msgstr "" + +#: search/katesearchbar.cpp:1215 +#, kde-format +msgid "Non-whitespace" +msgstr "" + +#: search/katesearchbar.cpp:1216 +#, kde-format +msgid "Word character (alphanumerics plus '_')" +msgstr "" + +#: search/katesearchbar.cpp:1217 +#, kde-format +msgid "Non-word character" +msgstr "" + +#: search/katesearchbar.cpp:1220 +#, kde-format +msgid "Octal character 000 to 377 (2^8-1)" +msgstr "" + +#: search/katesearchbar.cpp:1221 +#, kde-format +msgid "Hex character 0000 to FFFF (2^16-1)" +msgstr "" + +#: search/katesearchbar.cpp:1222 +#, kde-format +msgid "Backslash" +msgstr "" + +#: search/katesearchbar.cpp:1226 +#, kde-format +msgid "Group, non-capturing" +msgstr "" + +#: search/katesearchbar.cpp:1227 +#, kde-format +msgid "Positive Lookahead" +msgstr "" + +#: search/katesearchbar.cpp:1228 +#, kde-format +msgid "Negative lookahead" +msgstr "" + +#: search/katesearchbar.cpp:1232 +#, kde-format +msgid "Fixed-length positive lookbehind" +msgstr "" + +#: search/katesearchbar.cpp:1233 +#, kde-format +msgid "Fixed-length negative lookbehind" +msgstr "" + +#: search/katesearchbar.cpp:1238 +#, kde-format +msgid "Begin lowercase conversion" +msgstr "" + +#: search/katesearchbar.cpp:1239 +#, kde-format +msgid "Begin uppercase conversion" +msgstr "" + +#: search/katesearchbar.cpp:1240 +#, kde-format +msgid "End case conversion" +msgstr "" + +#: search/katesearchbar.cpp:1241 +#, kde-format +msgid "Lowercase first character conversion" +msgstr "" + +#: search/katesearchbar.cpp:1242 +#, kde-format +msgid "Uppercase first character conversion" +msgstr "" + +#: search/katesearchbar.cpp:1243 +#, kde-format +msgid "Replacement counter (for Replace All)" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: search/searchbarincremental.ui:50 +#, kde-format +msgid "F&ind:" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QComboBox, pattern) +#: search/searchbarincremental.ui:78 search/searchbarpower.ui:295 +#, kde-format +msgid "Text to search for" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QToolButton, findNext) +#. i18n: ectx: property (toolTip), widget (QToolButton, next) +#: search/searchbarincremental.ui:91 search/searchbarpower.ui:175 +#, kde-format +msgid "Jump to next match" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QToolButton, findPrev) +#. i18n: ectx: property (toolTip), widget (QToolButton, prev) +#: search/searchbarincremental.ui:101 search/searchbarpower.ui:185 +#, kde-format +msgid "Jump to previous match" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QToolButton, matchCase) +#: search/searchbarincremental.ui:111 search/searchbarpower.ui:136 +#, kde-format +msgid "Match case sensitive" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QToolButton, mutate) +#: search/searchbarincremental.ui:146 +#, kde-format +msgid "Switch to power search and replace bar" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: search/searchbarpower.ui:50 +#, kde-format +msgid "Fin&d:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: search/searchbarpower.ui:63 +#, kde-format +msgid "Rep&lace:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: search/searchbarpower.ui:76 +#, kde-format +msgid "&Mode:" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QComboBox, searchMode) +#: search/searchbarpower.ui:103 +#, kde-format +msgid "Search mode" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:113 +#, kde-format +msgid "Plain text" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:118 +#, kde-format +msgid "Whole words" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:123 +#, kde-format +msgid "Escape sequences" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:128 +#, kde-format +msgid "Regular expression" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QToolButton, selectionOnly) +#: search/searchbarpower.ui:149 +#, kde-format +msgid "Search in the selection only" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QPushButton, replaceNext) +#: search/searchbarpower.ui:195 +#, kde-format +msgid "Replace next match" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, replaceNext) +#. i18n: ectx: property (text), widget (QPushButton, m_replaceBtn) +#: search/searchbarpower.ui:198 spellcheck/spellcheckbar.ui:130 +#, kde-format +msgid "&Replace" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QPushButton, replaceAll) +#: search/searchbarpower.ui:224 +#, kde-format +msgid "Replace all matches" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, replaceAll) +#: search/searchbarpower.ui:227 +#, kde-format +msgid "Replace &All" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, findAll) +#: search/searchbarpower.ui:234 +#, kde-format +msgid "&Find All" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, cancel) +#: search/searchbarpower.ui:257 +#, kde-format +msgid "Cancel" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QToolButton, mutate) +#: search/searchbarpower.ui:268 +#, kde-format +msgid "Switch to incremental search bar" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QComboBox, replacement) +#: search/searchbarpower.ui:314 +#, kde-format +msgid "Text to replace with" +msgstr "" + +#: spellcheck/spellcheckbar.cpp:148 +#, kde-format +msgid "Spell check canceled." +msgstr "" + +#: spellcheck/spellcheckbar.cpp:245 +#, kde-format +msgctxt "@info:progress" +msgid "Spell checking in progress…" +msgstr "" + +#: spellcheck/spellcheckbar.cpp:246 spellcheck/spellcheckbar.cpp:435 +#, kde-format +msgctxt "@title:window" +msgid "Check Spelling" +msgstr "" + +#: spellcheck/spellcheckbar.cpp:432 spellcheck/spellcheckbar.cpp:435 +#, kde-format +msgid "Spell check complete." +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel2) +#. i18n: ectx: property (whatsThis), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:30 spellcheck/spellcheckbar.ui:46 +#, kde-format +msgid "" +"

This word was considered to be an \"unknown word\" because it does " +"not match any entry in the dictionary currently in use. It may also be a " +"word in a foreign language.

\n" +"

If the word is not misspelled, you may add it to the dictionary by " +"clicking Add to Dictionary. If you do not want to add the unknown " +"word to the dictionary, but you want to leave it unchanged, click Ignore or Ignore All.

\n" +"

However, if the word is misspelled, you can try to find the correct " +"replacement in the list below. If you cannot find a replacement there, you " +"may type it in the text box below, and click Replace or Replace " +"All.

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, textLabel2) +#: spellcheck/spellcheckbar.ui:33 +#, kde-format +msgid "Unknown word:" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:40 +#, kde-format +msgid "Unknown word" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:49 +#, kde-format +msgid "misspelled" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_addBtn) +#: spellcheck/spellcheckbar.ui:72 +#, kde-format +msgid "" +"\n" +"

The unknown word was detected and considered unknown because it is not " +"included in the dictionary.
\n" +"Click here if you consider the unknown word not to be misspelled, and you " +"want to avoid wrongly detecting it again in the future. If you want to let " +"it remain as is, but not add it to the dictionary, then click Ignore " +"or Ignore All instead.

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, m_addBtn) +#: spellcheck/spellcheckbar.ui:75 +#, kde-format +msgid "<< Add to Dictionary" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel4) +#: spellcheck/spellcheckbar.ui:89 +#, kde-format +msgid "" +"\n" +"

If the unknown word is misspelled, you should type the correction for " +"your misspelled word here or select it from the list below.

\n" +"

You can then click Replace if you want to correct only this " +"occurrence of the word or Replace All if you want to correct all " +"occurrences.

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, textLabel4) +#: spellcheck/spellcheckbar.ui:92 +#, kde-format +msgid "Replace with:" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, m_suggestBtn) +#: spellcheck/spellcheckbar.ui:118 +#, kde-format +msgid "S&uggest" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_replaceBtn) +#: spellcheck/spellcheckbar.ui:127 +#, kde-format +msgid "" +"\n" +"

Click here to replace this occurrence of the unknown text with the text " +"in the edit box above (to the left).

\n" +"
" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_skipBtn) +#: spellcheck/spellcheckbar.ui:140 +#, kde-format +msgid "" +"\n" +"

Click here to let this occurrence of the unknown word remain as is.

\n" +"

This action is useful when the word is a name, an acronym, a foreign word " +"or any other unknown word that you want to use but not add to the dictionary." +"

\n" +"
" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel5) +#. i18n: ectx: property (whatsThis), widget (Sonnet::DictionaryComboBox, m_language) +#: spellcheck/spellcheckbar.ui:156 spellcheck/spellcheckbar.ui:174 +#, kde-format +msgid "" +"\n" +"

Select the language of the document you are proofing here.

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, textLabel5) +#: spellcheck/spellcheckbar.ui:159 +#, kde-format +msgid "&Language:" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (Sonnet::DictionaryComboBox, m_language) +#: spellcheck/spellcheckbar.ui:169 +#, kde-format +msgid "Language Selection" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_autoCorrect) +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_skipAllBtn) +#: spellcheck/spellcheckbar.ui:197 spellcheck/spellcheckbar.ui:222 +#, kde-format +msgid "" +"\n" +"

Click here to let all occurrences of the unknown word remain as they are." +"

\n" +"

This action is useful when the word is a name, an acronym, a foreign word " +"or any other unknown word that you want to use but not add to the dictionary." +"

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, m_autoCorrect) +#: spellcheck/spellcheckbar.ui:200 +#, kde-format +msgid "Autocorrect" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_replaceAllBtn) +#: spellcheck/spellcheckbar.ui:209 +#, kde-format +msgid "" +"\n" +"

Click here to replace all occurrences of the unknown text with the text " +"in the edit box above (to the left).

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, m_replaceAllBtn) +#: spellcheck/spellcheckbar.ui:212 +#, kde-format +msgid "R&eplace All" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, m_skipAllBtn) +#: spellcheck/spellcheckbar.ui:225 +#, kde-format +msgid "I&gnore All" +msgstr "" + +#: spellcheck/spellcheckdialog.cpp:51 +#, kde-format +msgctxt "@action" +msgid "Spelling (from Cursor)…" +msgstr "" + +#: spellcheck/spellcheckdialog.cpp:54 +#, kde-format +msgid "Check the document's spelling from the cursor and forward" +msgstr "" + +#: spellcheck/spellingmenu.cpp:76 +#, kde-format +msgid "Ignore Word" +msgstr "" + +#: spellcheck/spellingmenu.cpp:79 +#, kde-format +msgid "Add to Dictionary" +msgstr "" + +#: spellcheck/spellingmenu.cpp:172 +#, kde-format +msgid "Spelling '%1'" +msgstr "" + +#: swapfile/kateswapdiffcreator.cpp:87 +#, kde-format +msgid "" +"The diff command could not be found. Please make sure that diff(1) is " +"installed and in your PATH." +msgstr "" + +#: swapfile/kateswapdiffcreator.cpp:98 +#, kde-format +msgid "The diff command '%1' could not be started." +msgstr "" + +#: swapfile/kateswapfile.cpp:642 +#, kde-format +msgid "The file was not closed properly." +msgstr "" + +#: swapfile/kateswapfile.cpp:645 +#, kde-format +msgid "View Changes" +msgstr "" + +#: swapfile/kateswapfile.cpp:646 +#, kde-format +msgid "Recover Data" +msgstr "" + +#: swapfile/kateswapfile.cpp:647 +#, kde-format +msgid "Discard" +msgstr "" + +#: syntax/katecolortreewidget.cpp:34 syntax/katecolortreewidget.cpp:61 +#, kde-format +msgid "Use default color from the color theme" +msgstr "" + +#: syntax/katehighlightmenu.cpp:39 +#, kde-format +msgid "None" +msgstr "" + +#: syntax/katestyletreewidget.cpp:135 +#, kde-format +msgctxt "@title:column Meaning of text in editor" +msgid "Context" +msgstr "" + +#: syntax/katestyletreewidget.cpp:136 +#, kde-format +msgctxt "@title:column Text style" +msgid "Normal" +msgstr "" + +#: syntax/katestyletreewidget.cpp:136 +#, kde-format +msgctxt "@title:column Text style" +msgid "Selected" +msgstr "" + +#: syntax/katestyletreewidget.cpp:136 +#, kde-format +msgctxt "@title:column Text style" +msgid "Background" +msgstr "" + +#: syntax/katestyletreewidget.cpp:137 +#, kde-format +msgctxt "@title:column Text style" +msgid "Background Selected" +msgstr "" + +#: syntax/katestyletreewidget.cpp:139 +#, kde-format +msgid "Use Default Style" +msgstr "" + +#: syntax/katestyletreewidget.cpp:238 +#, kde-format +msgid "&Bold" +msgstr "" + +#: syntax/katestyletreewidget.cpp:243 +#, kde-format +msgid "&Italic" +msgstr "" + +#: syntax/katestyletreewidget.cpp:248 +#, kde-format +msgid "&Underline" +msgstr "" + +#: syntax/katestyletreewidget.cpp:253 +#, kde-format +msgid "S&trikeout" +msgstr "" + +#: syntax/katestyletreewidget.cpp:260 +#, kde-format +msgctxt "@action:inmenu" +msgid "Normal &Color…" +msgstr "" + +#: syntax/katestyletreewidget.cpp:263 +#, kde-format +msgctxt "@action:inmenu" +msgid "&Selected Color…" +msgstr "" + +#: syntax/katestyletreewidget.cpp:266 +#, kde-format +msgctxt "@action:inmenu" +msgid "&Background Color…" +msgstr "" + +#: syntax/katestyletreewidget.cpp:269 +#, kde-format +msgctxt "@action:inmenu" +msgid "S&elected Background Color…" +msgstr "" + +#: syntax/katestyletreewidget.cpp:275 +#, kde-format +msgid "Unset Normal Color" +msgstr "" + +#: syntax/katestyletreewidget.cpp:278 +#, kde-format +msgid "Unset Selected Color" +msgstr "" + +#: syntax/katestyletreewidget.cpp:284 +#, kde-format +msgid "Unset Background Color" +msgstr "" + +#: syntax/katestyletreewidget.cpp:289 +#, kde-format +msgid "Unset Selected Background Color" +msgstr "" + +#: syntax/katestyletreewidget.cpp:295 +#, kde-format +msgid "Use &Default Style" +msgstr "" + +#: syntax/katestyletreewidget.cpp:408 +#, kde-format +msgctxt "No text or background color set" +msgid "None set" +msgstr "" + +#: syntax/katestyletreewidget.cpp:642 +#, kde-format +msgid "" +"\"Use Default Style\" will be automatically unset when you change any style " +"properties." +msgstr "" + +#: syntax/katestyletreewidget.cpp:643 +#, kde-format +msgid "Kate Styles" +msgstr "" + +#: syntax/katethemeconfig.cpp:47 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Normal" +msgstr "" + +#: syntax/katethemeconfig.cpp:49 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Keyword" +msgstr "" + +#: syntax/katethemeconfig.cpp:51 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Function" +msgstr "" + +#: syntax/katethemeconfig.cpp:53 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Variable" +msgstr "" + +#: syntax/katethemeconfig.cpp:55 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Control Flow" +msgstr "" + +#: syntax/katethemeconfig.cpp:57 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Operator" +msgstr "" + +#: syntax/katethemeconfig.cpp:59 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Built-in" +msgstr "" + +#: syntax/katethemeconfig.cpp:61 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Extension" +msgstr "" + +#: syntax/katethemeconfig.cpp:63 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Preprocessor" +msgstr "" + +#: syntax/katethemeconfig.cpp:65 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Attribute" +msgstr "" + +#: syntax/katethemeconfig.cpp:68 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Character" +msgstr "" + +#: syntax/katethemeconfig.cpp:70 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Special Character" +msgstr "" + +#: syntax/katethemeconfig.cpp:72 +#, kde-format +msgctxt "@item:intable Text context" +msgid "String" +msgstr "" + +#: syntax/katethemeconfig.cpp:74 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Verbatim String" +msgstr "" + +#: syntax/katethemeconfig.cpp:76 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Special String" +msgstr "" + +#: syntax/katethemeconfig.cpp:78 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Imports, Modules, Includes" +msgstr "" + +#: syntax/katethemeconfig.cpp:81 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Data Type" +msgstr "" + +#: syntax/katethemeconfig.cpp:83 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Decimal/Value" +msgstr "" + +#: syntax/katethemeconfig.cpp:85 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Base-N Integer" +msgstr "" + +#: syntax/katethemeconfig.cpp:87 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Floating Point" +msgstr "" + +#: syntax/katethemeconfig.cpp:89 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Constant" +msgstr "" + +#: syntax/katethemeconfig.cpp:92 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Comment" +msgstr "" + +#: syntax/katethemeconfig.cpp:94 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Documentation" +msgstr "" + +#: syntax/katethemeconfig.cpp:96 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Annotation" +msgstr "" + +#: syntax/katethemeconfig.cpp:98 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Comment Variable" +msgstr "" + +#: syntax/katethemeconfig.cpp:101 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Region Marker" +msgstr "" + +#: syntax/katethemeconfig.cpp:103 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Information" +msgstr "" + +#: syntax/katethemeconfig.cpp:105 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Warning" +msgstr "" + +#: syntax/katethemeconfig.cpp:107 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Alert" +msgstr "" + +#: syntax/katethemeconfig.cpp:110 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Others" +msgstr "" + +#: syntax/katethemeconfig.cpp:113 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Error" +msgstr "" + +#: syntax/katethemeconfig.cpp:162 +#, kde-format +msgid "Use Default Colors" +msgstr "" + +#: syntax/katethemeconfig.cpp:182 +#, kde-format +msgid "Editor Background Colors" +msgstr "" + +#: syntax/katethemeconfig.cpp:184 +#, kde-format +msgid "Text Area" +msgstr "" + +#: syntax/katethemeconfig.cpp:186 +#, kde-format +msgid "

Sets the background color of the editing area.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:191 +#, kde-format +msgid "Selected Text" +msgstr "" + +#: syntax/katethemeconfig.cpp:194 +#, kde-format +msgid "" +"

Sets the background color of the selection.

To set the text color " +"for selected text, use the "Configure Highlighting" dialog." +"

" +msgstr "" + +#: syntax/katethemeconfig.cpp:200 +#, kde-format +msgid "Current Line" +msgstr "" + +#: syntax/katethemeconfig.cpp:202 +#, kde-format +msgid "" +"

Sets the background color of the currently active line, which means the " +"line where your cursor is positioned.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:207 +#, kde-format +msgid "Search Highlight" +msgstr "" + +#: syntax/katethemeconfig.cpp:209 +#, kde-format +msgid "

Sets the background color of search results.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:214 +#, kde-format +msgid "Replace Highlight" +msgstr "" + +#: syntax/katethemeconfig.cpp:216 +#, kde-format +msgid "

Sets the background color of replaced text.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:223 +#, kde-format +msgid "Icon Border" +msgstr "" + +#: syntax/katethemeconfig.cpp:226 +#, kde-format +msgid "Background Area" +msgstr "" + +#: syntax/katethemeconfig.cpp:228 +#, kde-format +msgid "

Sets the background color of the icon border.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:233 view/screenshotdialog.cpp:265 +#, kde-format +msgid "Line Numbers" +msgstr "" + +#: syntax/katethemeconfig.cpp:235 +#, kde-format +msgid "

This color will be used to draw the line numbers (if enabled).

" +msgstr "" + +#: syntax/katethemeconfig.cpp:240 +#, kde-format +msgid "Current Line Number" +msgstr "" + +#: syntax/katethemeconfig.cpp:242 +#, kde-format +msgid "" +"

This color will be used to draw the number of the current line (if " +"enabled).

" +msgstr "" + +#: syntax/katethemeconfig.cpp:247 +#, kde-format +msgid "Separator" +msgstr "" + +#: syntax/katethemeconfig.cpp:249 +#, kde-format +msgid "" +"

This color will be used to draw the line between line numbers and the " +"icon borders, if both are enabled.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:254 +#, kde-format +msgid "Word Wrap Marker" +msgstr "" + +#: syntax/katethemeconfig.cpp:257 +#, kde-format +msgid "" +"

Sets the color of Word Wrap-related markers:

Static Word Wrap
A vertical line which shows the column where text is going to be " +"wrapped
Dynamic Word Wrap
An arrow shown to the left of " +"visually-wrapped lines
" +msgstr "" + +#: syntax/katethemeconfig.cpp:264 +#, kde-format +msgid "Code Folding" +msgstr "" + +#: syntax/katethemeconfig.cpp:266 +#, kde-format +msgid "

Sets the color of the code folding bar.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:271 +#, kde-format +msgid "Modified Lines" +msgstr "" + +#: syntax/katethemeconfig.cpp:273 +#, kde-format +msgid "" +"

Sets the color of the line modification marker for modified lines.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:278 +#, kde-format +msgid "Saved Lines" +msgstr "" + +#: syntax/katethemeconfig.cpp:280 +#, kde-format +msgid "

Sets the color of the line modification marker for saved lines.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:287 +#, kde-format +msgid "Text Decorations" +msgstr "" + +#: syntax/katethemeconfig.cpp:290 +#, kde-format +msgid "Spelling Mistake Line" +msgstr "" + +#: syntax/katethemeconfig.cpp:292 +#, kde-format +msgid "" +"

Sets the color of the line that is used to indicate spelling mistakes.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:297 +#, kde-format +msgid "Tab and Space Markers" +msgstr "" + +#: syntax/katethemeconfig.cpp:299 +#, kde-format +msgid "

Sets the color of the tabulator marks.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:304 +#, kde-format +msgid "Indentation Line" +msgstr "" + +#: syntax/katethemeconfig.cpp:306 +#, kde-format +msgid "

Sets the color of the vertical indentation lines.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:311 +#, kde-format +msgid "Bracket Highlight" +msgstr "" + +#: syntax/katethemeconfig.cpp:314 +#, kde-format +msgid "" +"

Sets the bracket matching color. This means, if you place the cursor e.g. " +"at a (, the matching ) will be highlighted with this color.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:322 +#, kde-format +msgid "Marker Colors" +msgstr "" + +#: syntax/katethemeconfig.cpp:324 view/kateviewhelpers.cpp:1536 +#, kde-format +msgid "Bookmark" +msgstr "" + +#: syntax/katethemeconfig.cpp:325 +#, kde-format +msgid "Active Breakpoint" +msgstr "" + +#: syntax/katethemeconfig.cpp:326 +#, kde-format +msgid "Reached Breakpoint" +msgstr "" + +#: syntax/katethemeconfig.cpp:327 +#, kde-format +msgid "Disabled Breakpoint" +msgstr "" + +#: syntax/katethemeconfig.cpp:328 +#, kde-format +msgid "Execution" +msgstr "" + +#: syntax/katethemeconfig.cpp:329 +#, kde-format +msgid "Warning" +msgstr "" + +#: syntax/katethemeconfig.cpp:330 +#, kde-format +msgid "Error" +msgstr "" + +#: syntax/katethemeconfig.cpp:332 +#, kde-format +msgid "" +"

Sets the background color of mark type.

Note: The marker " +"color is displayed lightly because of transparency.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:344 +#, kde-format +msgid "Text Templates & Snippets" +msgstr "" + +#: syntax/katethemeconfig.cpp:349 +#, kde-format +msgid "Background" +msgstr "" + +#: syntax/katethemeconfig.cpp:355 +#, kde-format +msgid "Editable Placeholder" +msgstr "" + +#: syntax/katethemeconfig.cpp:361 +#, kde-format +msgid "Focused Editable Placeholder" +msgstr "" + +#: syntax/katethemeconfig.cpp:367 +#, kde-format +msgid "Not Editable Placeholder" +msgstr "" + +#: syntax/katethemeconfig.cpp:501 +#, kde-format +msgid "" +"

This list displays the default styles for the current color theme and " +"offers the means to edit them. The style name reflects the current style " +"settings.

To edit the colors, click the colored squares, or select the " +"color to edit from the popup menu.

You can unset the Background and " +"Selected Background colors from the popup menu when appropriate.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:568 +#, kde-format +msgctxt "@item:intable" +msgid "Normal Text & Source Code" +msgstr "" + +#: syntax/katethemeconfig.cpp:575 +#, kde-format +msgctxt "@item:intable" +msgid "Numbers, Types & Constants" +msgstr "" + +#: syntax/katethemeconfig.cpp:582 +#, kde-format +msgctxt "@item:intable" +msgid "Strings & Characters" +msgstr "" + +#: syntax/katethemeconfig.cpp:589 +#, kde-format +msgctxt "@item:intable" +msgid "Comments & Documentation" +msgstr "" + +#: syntax/katethemeconfig.cpp:596 +#, kde-format +msgctxt "@item:intable" +msgid "Miscellaneous" +msgstr "" + +#: syntax/katethemeconfig.cpp:704 +#, kde-format +msgid "H&ighlight:" +msgstr "" + +#: syntax/katethemeconfig.cpp:746 +#, kde-format +msgid "" +"

This list displays the contexts of the current syntax highlight mode and " +"offers the means to edit them. The context name reflects the current style " +"settings.

To edit using the keyboard, press <SPACE> and choose a property from the popup menu.

To edit the colors, " +"click the colored squares, or select the color to edit from the popup menu.

You can unset the Background and Selected Background colors from the " +"context menu when appropriate.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:1027 +#, kde-format +msgid "Default Theme" +msgstr "" + +#: syntax/katethemeconfig.cpp:1028 +#, kde-format +msgid "Theme Editor" +msgstr "" + +#: syntax/katethemeconfig.cpp:1046 +#, kde-format +msgid "Select theme:" +msgstr "" + +#: syntax/katethemeconfig.cpp:1119 +#, kde-format +msgid "&Theme:" +msgstr "" + +#: syntax/katethemeconfig.cpp:1128 +#, kde-format +msgctxt "@action:button" +msgid "&Copy…" +msgstr "" + +#: syntax/katethemeconfig.cpp:1136 +#, kde-format +msgctxt "@action:button" +msgid "Export…" +msgstr "" + +#: syntax/katethemeconfig.cpp:1140 +#, kde-format +msgctxt "@action:button" +msgid "Import…" +msgstr "" + +#: syntax/katethemeconfig.cpp:1147 +#, kde-format +msgid "Bundled read-only theme. To modify the theme, please copy it." +msgstr "" + +#: syntax/katethemeconfig.cpp:1160 +#, kde-format +msgid "Colors" +msgstr "" + +#: syntax/katethemeconfig.cpp:1164 +#, kde-format +msgid "Default Text Styles" +msgstr "" + +#: syntax/katethemeconfig.cpp:1168 +#, kde-format +msgid "Highlighting Text Styles" +msgstr "" + +#: syntax/katethemeconfig.cpp:1180 +#, kde-format +msgid "Exporting color theme: %1" +msgstr "" + +#: syntax/katethemeconfig.cpp:1182 syntax/katethemeconfig.cpp:1203 +#, kde-format +msgid "Color theme" +msgstr "" + +#: syntax/katethemeconfig.cpp:1203 +#, kde-format +msgid "Importing Color Theme" +msgstr "" + +#: syntax/katethemeconfig.cpp:1217 +#, kde-format +msgid "" +"Importing will overwrite the existing theme file \"%1\". This can not be " +"undone." +msgstr "" + +#: syntax/katethemeconfig.cpp:1219 +#, kde-format +msgid "Import Nevertheless" +msgstr "" + +#: syntax/katethemeconfig.cpp:1308 +#, kde-format +msgid "Follow System Color Scheme" +msgstr "" + +#: syntax/katethemeconfig.cpp:1375 +#, kde-format +msgid "Do you really want to delete the theme \"%1\"? This can not be undone." +msgstr "" + +#: syntax/katethemeconfig.cpp:1377 +#, kde-format +msgid "Delete Nevertheless" +msgstr "" + +#: syntax/katethemeconfig.cpp:1419 +#, kde-format +msgid "Copy theme" +msgstr "" + +#: syntax/katethemeconfig.cpp:1420 +#, kde-format +msgid "Name for copy of color theme \"%1\":" +msgstr "" + +#: syntax/katethemeconfig.cpp:1432 +#, kde-format +msgid "" +"

The theme \"%1\" already exists.

Please choose a different theme " +"name.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:1433 +#, kde-format +msgid "Copy Theme" +msgstr "" + +#: syntax/katethemeconfig.cpp:1486 syntax/katethemeconfig.cpp:1491 +#, kde-format +msgid "Color Themes" +msgstr "" + +#: utils/kateautoindent.cpp:88 +#, kde-format +msgctxt "Autoindent mode" +msgid "None" +msgstr "" + +#: utils/kateautoindent.cpp:92 +#, kde-format +msgctxt "Autoindent mode" +msgid "Normal" +msgstr "" + +#: utils/katebookmarks.cpp:49 +#, kde-format +msgid "Toggle &Bookmark" +msgstr "" + +#: utils/katebookmarks.cpp:53 +#, kde-format +msgid "If a line has no bookmark then add one, otherwise remove it." +msgstr "" + +#: utils/katebookmarks.cpp:56 +#, kde-format +msgid "Clear &All Bookmarks" +msgstr "" + +#: utils/katebookmarks.cpp:59 +#, kde-format +msgid "Remove all bookmarks of the current document." +msgstr "" + +#: utils/katebookmarks.cpp:62 utils/katebookmarks.cpp:219 +#, kde-format +msgid "Next Bookmark" +msgstr "" + +#: utils/katebookmarks.cpp:66 +#, kde-format +msgid "Go to the next bookmark." +msgstr "" + +#: utils/katebookmarks.cpp:69 utils/katebookmarks.cpp:220 +#, kde-format +msgid "Previous Bookmark" +msgstr "" + +#: utils/katebookmarks.cpp:73 +#, kde-format +msgid "Go to the previous bookmark." +msgstr "" + +#: utils/katebookmarks.cpp:76 +#, kde-format +msgid "&Bookmarks" +msgstr "" + +#: utils/katebookmarks.cpp:192 +#, kde-format +msgid "&Next: %1 - \"%2\"" +msgstr "" + +#: utils/katebookmarks.cpp:198 +#, kde-format +msgid "&Previous: %1 - \"%2\"" +msgstr "" + +#: utils/katecmds.cpp:53 +#, kde-format +msgid "

indent

Indents the selected lines or the current line

" +msgstr "" + +#: utils/katecmds.cpp:58 +#, kde-format +msgid "

unindent

Unindents the selected lines or current line.

" +msgstr "" + +#: utils/katecmds.cpp:63 +#, kde-format +msgid "" +"

cleanindent

Cleans up the indentation of the selected lines or " +"current line according to the indentation settings in the document.

" +msgstr "" + +#: utils/katecmds.cpp:68 +#, kde-format +msgid "" +"

comment

Inserts comment markers to make the selection or selected " +"lines or current line a comment according to the text format as defined by " +"the syntax highlight definition for the document.

" +msgstr "" + +#: utils/katecmds.cpp:74 +#, kde-format +msgid "" +"

uncomment

Removes comment markers from the selection or selected " +"lines or current line according to the text format as defined by the syntax " +"highlight definition for the document.

" +msgstr "" + +#: utils/katecmds.cpp:80 +#, kde-format +msgid "" +"

goto line number

This command navigates to the specified " +"line number.

" +msgstr "" + +#: utils/katecmds.cpp:85 +#, kde-format +msgid "" +"

set-indent-pasted-text enable

If enabled, indentation of " +"text pasted from the clipboard is adjusted using the current indenter.

Possible true values: 1 on true
possible false values: 0 off false" +msgstr "" + +#: utils/katecmds.cpp:91 +#, kde-format +msgid "Deletes the current line." +msgstr "" + +#: utils/katecmds.cpp:95 +#, kde-format +msgid "" +"

set-tab-width width

Sets the tab width to the number " +"width

" +msgstr "" + +#: utils/katecmds.cpp:100 +#, kde-format +msgid "" +"

set-replace-tab enable

If enabled, tabs are replaced with " +"spaces as you type.

Possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:107 +#, kde-format +msgid "" +"

set-show-tabs enable

If enabled, TAB characters and trailing " +"whitespace will be visualized by a small dot.

Possible true values: 1 " +"on true
possible false values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:114 +#, kde-format +msgid "" +"

set-remove-trailing-spaces mode

Removes the trailing spaces " +"in the document depending on the mode.

Possible values:" +"

  • none: never remove trailing spaces.
  • modified: " +"remove trailing spaces only of modified lines.
  • all: remove " +"trailing spaces in the entire document.

" +msgstr "" + +#: utils/katecmds.cpp:125 +#, kde-format +msgid "" +"

set-indent-width width

Sets the indentation width to the " +"number width. Used only if you are indenting with spaces.

" +msgstr "" + +#: utils/katecmds.cpp:130 +#, kde-format +msgid "" +"

set-indent-mode mode

The mode parameter is a value as seen " +"in the Tools - Indentation menu

" +msgstr "" + +#: utils/katecmds.cpp:135 +#, kde-format +msgid "" +"

set-auto-indent enable

Enable or disable autoindentation.

possible true values: 1 on true
possible false values: 0 off false" +msgstr "" + +#: utils/katecmds.cpp:142 +#, kde-format +msgid "" +"

set-line-numbers enable

Sets the visibility of the line " +"numbers pane.

possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:149 +#, kde-format +msgid "" +"

set-folding-markers enable

Sets the visibility of the " +"folding markers pane.

possible true values: 1 on true
possible " +"false values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:156 +#, kde-format +msgid "" +"

set-icon-border enable

Sets the visibility of the icon " +"border.

possible true values: 1 on true
possible false values: 0 " +"off false

" +msgstr "" + +#: utils/katecmds.cpp:163 +#, kde-format +msgid "" +"

set-word-wrap enable

Enables dynamic word wrap according to " +"enable

possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:170 +#, kde-format +msgid "" +"

set-word-wrap-column width

Sets the line width for hard " +"wrapping to width. This is used if you are having your text wrapped " +"automatically.

" +msgstr "" + +#: utils/katecmds.cpp:175 +#, kde-format +msgid "" +"

set-replace-tabs-save enable

When enabled, tabs will be " +"replaced with whitespace whenever the document is saved.

possible " +"true values: 1 on true
possible false values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:182 +#, kde-format +msgid "" +"

set-highlight highlight

Sets the syntax highlighting system " +"for the document. The argument must be a valid highlight name, as seen in " +"the Tools → Highlighting menu. This command provides an autocompletion list " +"for its argument.

" +msgstr "" + +#: utils/katecmds.cpp:188 +#, kde-format +msgid "

set-mode mode

Sets the mode as seen in Tools - Mode

" +msgstr "" + +#: utils/katecmds.cpp:193 +#, kde-format +msgid "" +"

set-show-indent enable

If enabled, indentation will be " +"visualized by a vertical dotted line.

possible true values: 1 on " +"true
possible false values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:199 +#, kde-format +msgid "

Open the Print dialog to print the current document.

" +msgstr "" + +#: utils/katecmds.cpp:314 utils/katecmds.cpp:341 +#, kde-format +msgid "Missing argument. Usage: %1 " +msgstr "" + +#: utils/katecmds.cpp:327 +#, kde-format +msgid "No such highlighting '%1'" +msgstr "" + +#: utils/katecmds.cpp:333 +#, kde-format +msgid "No such mode '%1'" +msgstr "" + +#: utils/katecmds.cpp:346 +#, kde-format +msgid "Failed to convert argument '%1' to integer." +msgstr "" + +#: utils/katecmds.cpp:350 utils/katecmds.cpp:355 +#, kde-format +msgid "Width must be at least 1." +msgstr "" + +#: utils/katecmds.cpp:360 +#, kde-format +msgid "Column must be at least 1." +msgstr "" + +#: utils/katecmds.cpp:390 +#, kde-format +msgid "Usage: %1 on|off|1|0|true|false" +msgstr "" + +#: utils/katecmds.cpp:417 +#, kde-format +msgid "Bad argument '%1'. Usage: %2 on|off|1|0|true|false" +msgstr "" + +#: utils/katecmds.cpp:421 +#, kde-format +msgid "" +"Usage: set-remove-trailing-spaces 0|-|none or 1|+|mod|modified or 2|*|all" +msgstr "" + +#: utils/katecmds.cpp:435 vimode/cmds.cpp:168 +#, kde-format +msgid "Unknown command '%1'" +msgstr "" + +#: utils/katecmds.cpp:493 +#, kde-format +msgid "" +"

char identifier

This command allows you to insert literal " +"characters by their numerical identifier, in decimal, octal or hexadecimal " +"form.

Examples:

  • char 234
  • char 0x1234

" +msgstr "" + +#: utils/katecmds.cpp:560 +#, kde-format +msgid "" +"

date or date format

Inserts a date/time string as defined by " +"the specified format, or the format yyyy-MM-dd hh:mm:ss if none is specified." +"

Possible format specifiers are:
dThe day as " +"number without a leading zero (1-31).
ddThe day as " +"number with a leading zero (01-31).
dddThe " +"abbreviated localized day name (e.g. 'Mon'..'Sun').
ddddThe long localized day name (e.g. 'Monday'..'Sunday').
MThe month as number without a leading zero (1-12).
MMThe month as number with a leading zero (01-12).
MMMThe abbreviated localized month name (e.g. " +"'Jan'..'Dec').
yyThe year as two digit number " +"(00-99).
yyyyThe year as four digit number " +"(1752-8000).
hThe hour without a leading zero " +"(0..23 or 1..12 if AM/PM display).
hhThe hour with " +"a leading zero (00..23 or 01..12 if AM/PM display).
mThe minute without a leading zero (0..59).
mmThe minute with a leading zero (00..59).
sThe second without a leading zero (0..59).
ssThe second with a leading zero (00..59).
zThe milliseconds without leading zeroes (0..999).
zzzThe milliseconds with leading zeroes (000..999).
APUse AM/PM display. AP will be replaced by either " +"\"AM\" or \"PM\".
apUse am/pm display. ap will be " +"replaced by either \"am\" or \"pm\".

" +msgstr "" + +#: utils/katecmds.cpp:621 +#, kde-format +msgid "Remove Duplicate Lines" +msgstr "" + +#: utils/katecmds.cpp:622 +#, kde-format +msgid "Remove Duplicates and Sort Text Alphabetically" +msgstr "" + +#: utils/katecmds.cpp:623 +#, kde-format +msgid "Sort Text Naturally" +msgstr "" + +#: utils/katecmds.cpp:624 +#, kde-format +msgid "Sort Selected Text Alphabetically" +msgstr "" + +#: utils/katecmds.cpp:699 +#, kde-format +msgid "" +"

sort

Sort the selected text or whole document if there is no " +"selection

" +msgstr "" + +#: utils/katecmds.cpp:703 +#, kde-format +msgid "" +"

uniq

Remove duplicate lines from the selected text or whole " +"document if there is no selection.

" +msgstr "" + +#: utils/katecmds.cpp:707 +#, kde-format +msgid "" +"

sortuniq

Sort the selected text or whole document and then remove " +"all duplicate lines.

" +msgstr "" + +#: utils/katecmds.cpp:711 +#, kde-format +msgid "" +"

natsort

Sort the selected text or whole document in natural order." +"
Here is an example to show the difference to the normal sort method:" +"
sort(a10, a1, a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" +msgstr "" + +#: utils/kateglobal.cpp:60 +#, kde-format +msgid "Kate Part" +msgstr "" + +#: utils/kateglobal.cpp:62 +#, kde-format +msgid "Embeddable editor component" +msgstr "" + +#: utils/kateglobal.cpp:64 +#, kde-format +msgid "(c) 2000-2025 The Kate Authors" +msgstr "" + +#: utils/kateglobal.cpp:84 +#, kde-format +msgid "Christoph Cullmann" +msgstr "" + +#: utils/kateglobal.cpp:84 +#, kde-format +msgid "Maintainer" +msgstr "" + +#: utils/kateglobal.cpp:85 +#, kde-format +msgid "Dominik Haumann" +msgstr "" + +#: utils/kateglobal.cpp:85 utils/kateglobal.cpp:86 utils/kateglobal.cpp:87 +#: utils/kateglobal.cpp:90 utils/kateglobal.cpp:93 utils/kateglobal.cpp:98 +#, kde-format +msgid "Core Developer" +msgstr "" + +#: utils/kateglobal.cpp:86 +#, kde-format +msgid "Milian Wolff" +msgstr "" + +#: utils/kateglobal.cpp:87 +#, kde-format +msgid "Joseph Wenninger" +msgstr "" + +#: utils/kateglobal.cpp:88 +#, kde-format +msgid "Erlend Hamberg" +msgstr "" + +#: utils/kateglobal.cpp:89 +#, kde-format +msgid "Bernhard Beschow" +msgstr "" + +#: utils/kateglobal.cpp:89 utils/kateglobal.cpp:105 +#, kde-format +msgid "Developer" +msgstr "" + +#: utils/kateglobal.cpp:90 +#, kde-format +msgid "Anders Lund" +msgstr "" + +#: utils/kateglobal.cpp:91 +#, kde-format +msgid "Michel Ludwig" +msgstr "" + +#: utils/kateglobal.cpp:91 +#, kde-format +msgid "On-the-fly spell checking" +msgstr "" + +#: utils/kateglobal.cpp:92 +#, kde-format +msgid "Pascal Létourneau" +msgstr "" + +#: utils/kateglobal.cpp:92 +#, kde-format +msgid "Large scale bug fixing" +msgstr "" + +#: utils/kateglobal.cpp:93 +#, kde-format +msgid "Hamish Rodda" +msgstr "" + +#: utils/kateglobal.cpp:94 +#, kde-format +msgid "Waldo Bastian" +msgstr "" + +#: utils/kateglobal.cpp:94 +#, kde-format +msgid "The cool buffersystem" +msgstr "" + +#: utils/kateglobal.cpp:95 +#, kde-format +msgid "Charles Samuels" +msgstr "" + +#: utils/kateglobal.cpp:95 +#, kde-format +msgid "The Editing Commands" +msgstr "" + +#: utils/kateglobal.cpp:96 +#, kde-format +msgid "Matt Newell" +msgstr "" + +#: utils/kateglobal.cpp:96 +#, kde-format +msgid "Testing, ..." +msgstr "" + +#: utils/kateglobal.cpp:97 +#, kde-format +msgid "Michael Bartl" +msgstr "" + +#: utils/kateglobal.cpp:97 +#, kde-format +msgid "Former Core Developer" +msgstr "" + +#: utils/kateglobal.cpp:98 +#, kde-format +msgid "Michael McCallum" +msgstr "" + +#: utils/kateglobal.cpp:99 +#, kde-format +msgid "Michael Koch" +msgstr "" + +#: utils/kateglobal.cpp:99 +#, kde-format +msgid "KWrite port to KParts" +msgstr "" + +#: utils/kateglobal.cpp:100 +#, kde-format +msgid "Christian Gebauer" +msgstr "" + +#: utils/kateglobal.cpp:101 +#, kde-format +msgid "Simon Hausmann" +msgstr "" + +#: utils/kateglobal.cpp:102 +#, kde-format +msgid "Glen Parker" +msgstr "" + +#: utils/kateglobal.cpp:102 +#, kde-format +msgid "KWrite Undo History, Kspell integration" +msgstr "" + +#: utils/kateglobal.cpp:103 +#, kde-format +msgid "Scott Manson" +msgstr "" + +#: utils/kateglobal.cpp:103 +#, kde-format +msgid "KWrite XML Syntax highlighting support" +msgstr "" + +#: utils/kateglobal.cpp:104 +#, kde-format +msgid "John Firebaugh" +msgstr "" + +#: utils/kateglobal.cpp:104 +#, kde-format +msgid "Patches and more" +msgstr "" + +#: utils/kateglobal.cpp:105 +#, kde-format +msgid "Andreas Kling" +msgstr "" + +#: utils/kateglobal.cpp:106 +#, kde-format +msgid "Mirko Stocker" +msgstr "" + +#: utils/kateglobal.cpp:106 +#, kde-format +msgid "Various bugfixes" +msgstr "" + +#: utils/kateglobal.cpp:107 +#, kde-format +msgid "Matthew Woehlke" +msgstr "" + +#: utils/kateglobal.cpp:107 +#, kde-format +msgid "Selection, KColorScheme integration" +msgstr "" + +#: utils/kateglobal.cpp:108 +#, kde-format +msgid "Sebastian Pipping" +msgstr "" + +#: utils/kateglobal.cpp:109 +#, kde-format +msgid "Search bar back- and front-end" +msgstr "" + +#: utils/kateglobal.cpp:112 +#, kde-format +msgid "Jochen Wilhelmy" +msgstr "" + +#: utils/kateglobal.cpp:112 +#, kde-format +msgid "Original KWrite Author" +msgstr "" + +#: utils/kateglobal.cpp:113 +#, kde-format +msgid "Gerald Senarclens de Grancy" +msgstr "" + +#: utils/kateglobal.cpp:113 +#, kde-format +msgid "QA and Scripting" +msgstr "" + +#: utils/kateglobal.cpp:115 +#, kde-format +msgid "Matteo Merli" +msgstr "" + +#: utils/kateglobal.cpp:115 +#, kde-format +msgid "Highlighting for RPM Spec-Files, Perl, Diff and more" +msgstr "" + +#: utils/kateglobal.cpp:116 +#, kde-format +msgid "Rocky Scaletta" +msgstr "" + +#: utils/kateglobal.cpp:116 +#, kde-format +msgid "Highlighting for VHDL" +msgstr "" + +#: utils/kateglobal.cpp:117 +#, kde-format +msgid "Yury Lebedev" +msgstr "" + +#: utils/kateglobal.cpp:117 +#, kde-format +msgid "Highlighting for SQL" +msgstr "" + +#: utils/kateglobal.cpp:118 +#, kde-format +msgid "Chris Ross" +msgstr "" + +#: utils/kateglobal.cpp:118 +#, kde-format +msgid "Highlighting for Ferite" +msgstr "" + +#: utils/kateglobal.cpp:119 +#, kde-format +msgid "Nick Roux" +msgstr "" + +#: utils/kateglobal.cpp:119 +#, kde-format +msgid "Highlighting for ILERPG" +msgstr "" + +#: utils/kateglobal.cpp:120 +#, kde-format +msgid "Carsten Niehaus" +msgstr "" + +#: utils/kateglobal.cpp:120 +#, kde-format +msgid "Highlighting for LaTeX" +msgstr "" + +#: utils/kateglobal.cpp:121 +#, kde-format +msgid "Per Wigren" +msgstr "" + +#: utils/kateglobal.cpp:121 +#, kde-format +msgid "Highlighting for Makefiles, Python" +msgstr "" + +#: utils/kateglobal.cpp:122 +#, kde-format +msgid "Jan Fritz" +msgstr "" + +#: utils/kateglobal.cpp:122 +#, kde-format +msgid "Highlighting for Python" +msgstr "" + +#: utils/kateglobal.cpp:123 +#, kde-format +msgid "Daniel Naber" +msgstr "" + +#: utils/kateglobal.cpp:124 +#, kde-format +msgid "Roland Pabel" +msgstr "" + +#: utils/kateglobal.cpp:124 +#, kde-format +msgid "Highlighting for Scheme" +msgstr "" + +#: utils/kateglobal.cpp:125 +#, kde-format +msgid "Cristi Dumitrescu" +msgstr "" + +#: utils/kateglobal.cpp:125 +#, kde-format +msgid "PHP Keyword/Datatype list" +msgstr "" + +#: utils/kateglobal.cpp:126 +#, kde-format +msgid "Carsten Pfeiffer" +msgstr "" + +#: utils/kateglobal.cpp:126 +#, kde-format +msgid "Very nice help" +msgstr "" + +#: utils/kateglobal.cpp:127 +#, kde-format +msgid "Bruno Massa" +msgstr "" + +#: utils/kateglobal.cpp:127 +#, kde-format +msgid "Highlighting for Lua" +msgstr "" + +#: utils/kateglobal.cpp:129 +#, kde-format +msgid "All people who have contributed and I have forgotten to mention" +msgstr "" + +#: utils/kateglobal.cpp:131 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Softastur" + +#: utils/kateglobal.cpp:131 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "alministradores@softastur.org" + +#: utils/kateglobal.cpp:255 +#, kde-format +msgid "Configure" +msgstr "" + +#: utils/katesedcmd.cpp:268 +#, kde-format +msgid "replace with %1?" +msgstr "" + +#: utils/katesedcmd.cpp:274 +#, kde-format +msgctxt "%2 is the translation of the next message" +msgid "1 replacement done on %2" +msgid_plural "%1 replacements done on %2" +msgstr[0] "" +msgstr[1] "" + +#: utils/katesedcmd.cpp:277 +#, kde-format +msgctxt "substituted into the previous message" +msgid "1 line" +msgid_plural "%1 lines" +msgstr[0] "" +msgstr[1] "" + +#: utils/katevariableexpansionhelpers.cpp:77 +#, kde-format +msgid "" +msgstr "" + +#: utils/katevariableexpansionhelpers.cpp:161 +#, kde-format +msgid "Insert variable" +msgstr "" + +#: utils/katevariableexpansionhelpers.cpp:165 +#, kde-format +msgid "Variables" +msgstr "" + +#: utils/katevariableexpansionhelpers.cpp:169 +#, kde-format +msgid "Filter" +msgstr "" + +#: utils/katevariableexpansionhelpers.cpp:188 +#: utils/katevariableexpansionhelpers.cpp:217 +#, kde-format +msgid "Please select a variable." +msgstr "" + +#: utils/katevariableexpansionhelpers.cpp:206 +#, kde-format +msgid "Current value: %1" +msgstr "" + +#: utils/katevariableexpansionhelpers.cpp:214 +#, kde-format +msgid "Current value: %1" +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:86 +#, kde-format +msgid "File base name without path and suffix of the current document." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:94 +#, kde-format +msgid "File extension of the current document." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:102 +#, kde-format +msgid "File name without path of the current document." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:110 +#, kde-format +msgid "Full path of the current document including the file name." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:118 +#, kde-format +msgid "Contents of the current document." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:125 +#, kde-format +msgid "Full path of the current document excluding the file name." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:133 +#, kde-format +msgid "" +"Full document path including file name, with native path separator " +"(backslash on Windows)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:141 +#, kde-format +msgid "" +"Full document path excluding file name, with native path separator " +"(backslash on Windows)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:149 +#, kde-format +msgid "" +"Line number of the text cursor position in current document (starts with 0)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:156 +#, kde-format +msgid "" +"Column number of the text cursor position in current document (starts with " +"0)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:163 +#, kde-format +msgid "X component in global screen coordinates of the cursor position." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:170 +#, kde-format +msgid "Y component in global screen coordinates of the cursor position." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:177 +#, kde-format +msgid "Text selection of the current document." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:184 +#, kde-format +msgid "Start line of selected text of the current document." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:191 +#, kde-format +msgid "Start column of selected text of the current document." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:198 +#, kde-format +msgid "End line of selected text of the current document." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:205 +#, kde-format +msgid "End column of selected text of the current document." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:212 +#, kde-format +msgid "Number of rows of the current document." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:219 +#, kde-format +msgid "Read a document variable." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:227 +#, kde-format +msgid "The current date in current locale format." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:234 +#, kde-format +msgid "The current date (ISO)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:241 +#, kde-format +msgid "The current date (QDate formatstring)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:249 +#, kde-format +msgid "The current time in current locale format." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:256 +#, kde-format +msgid "The current time (ISO)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:263 +#, kde-format +msgid "The current time (QTime formatstring)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:271 +#, kde-format +msgid "Access to environment variables." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:279 +#, kde-format +msgid "Evaluate simple JavaScript statements." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:289 +#, kde-format +msgid "Encode text to make it URL compatible." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:297 +#, kde-format +msgid "Generate a new UUID." +msgstr "" + +#: variableeditor/variableeditor.cpp:40 +#, kde-format +msgid "Kate Handbook." +msgstr "" + +#: variableeditor/variableeditor.cpp:213 +#, kde-format +msgid "true" +msgstr "" + +#: variableeditor/variableeditor.cpp:214 +#, kde-format +msgid "false" +msgstr "" + +#: variableeditor/variableeditor.cpp:350 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "none" +msgstr "" + +#: variableeditor/variableeditor.cpp:351 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "modified" +msgstr "" + +#: variableeditor/variableeditor.cpp:352 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "all" +msgstr "" + +#: variableeditor/variablelineedit.cpp:42 +#, kde-format +msgid "Show list of valid variables." +msgstr "" + +#: variableeditor/variablelineedit.cpp:115 +#, kde-format +msgctxt "short translation please" +msgid "Enable automatic insertion of brackets." +msgstr "" + +#: variableeditor/variablelineedit.cpp:121 +#, kde-format +msgctxt "short translation please" +msgid "Set the number of autocenter lines." +msgstr "" + +#: variableeditor/variablelineedit.cpp:126 +#, kde-format +msgctxt "short translation please" +msgid "Set the document background color." +msgstr "" + +#: variableeditor/variablelineedit.cpp:131 +#, kde-format +msgctxt "short translation please" +msgid "Pressing backspace in leading whitespace unindents." +msgstr "" + +#: variableeditor/variablelineedit.cpp:139 +#, kde-format +msgctxt "short translation please" +msgid "Enable block selection mode." +msgstr "" + +#: variableeditor/variablelineedit.cpp:144 +#, kde-format +msgctxt "short translation please" +msgid "Enable the byte order mark (BOM) when saving Unicode files." +msgstr "" + +#: variableeditor/variablelineedit.cpp:149 +#, kde-format +msgctxt "short translation please" +msgid "Set the color for the bracket highlight." +msgstr "" + +#: variableeditor/variablelineedit.cpp:154 +#, kde-format +msgctxt "short translation please" +msgid "Set the background color for the current line." +msgstr "" + +#: variableeditor/variablelineedit.cpp:160 +#, kde-format +msgctxt "short translation please" +msgid "Set the default dictionary used for spell checking." +msgstr "" + +#: variableeditor/variablelineedit.cpp:165 +#, kde-format +msgctxt "short translation please" +msgid "Enable dynamic word wrap of long lines." +msgstr "" + +#: variableeditor/variablelineedit.cpp:172 +#, kde-format +msgctxt "short translation please" +msgid "Sets the end of line mode." +msgstr "" + +#: variableeditor/variablelineedit.cpp:177 +#, kde-format +msgctxt "short translation please" +msgid "" +"Enable whether pressing enter will insert selected auto completion item." +msgstr "" + +#: variableeditor/variablelineedit.cpp:182 +#, kde-format +msgctxt "short translation please" +msgid "Enable folding markers in the editor border." +msgstr "" + +#: variableeditor/variablelineedit.cpp:187 +#, kde-format +msgctxt "short translation please" +msgid "Enable folding preview in the editor border." +msgstr "" + +#: variableeditor/variablelineedit.cpp:193 +#, kde-format +msgctxt "short translation please" +msgid "Set the point size of the document font." +msgstr "" + +#: variableeditor/variablelineedit.cpp:198 +#, kde-format +msgctxt "short translation please" +msgid "Set the font of the document." +msgstr "" + +#: variableeditor/variablelineedit.cpp:214 +#, kde-format +msgctxt "short translation please" +msgid "Set the syntax highlighting." +msgstr "" + +#: variableeditor/variablelineedit.cpp:219 +#, kde-format +msgctxt "short translation please" +msgid "Set the icon bar color." +msgstr "" + +#: variableeditor/variablelineedit.cpp:224 +#, kde-format +msgctxt "short translation please" +msgid "Enable the icon border in the editor view." +msgstr "" + +#: variableeditor/variablelineedit.cpp:229 +#, kde-format +msgctxt "short translation please" +msgid "Set the auto indentation style." +msgstr "" + +#: variableeditor/variablelineedit.cpp:234 +#, kde-format +msgctxt "short translation please" +msgid "Adjust indentation of text pasted from the clipboard." +msgstr "" + +#: variableeditor/variablelineedit.cpp:240 +#, kde-format +msgctxt "short translation please" +msgid "Set the indentation depth for each indent level." +msgstr "" + +#: variableeditor/variablelineedit.cpp:245 +#, kde-format +msgctxt "short translation please" +msgid "Allow odd indentation level (no multiple of indent width)." +msgstr "" + +#: variableeditor/variablelineedit.cpp:250 +#, kde-format +msgctxt "short translation please" +msgid "Show line numbers." +msgstr "" + +#: variableeditor/variablelineedit.cpp:255 +#, kde-format +msgctxt "short translation please" +msgid "Insert newline at end of file on save." +msgstr "" + +#: variableeditor/variablelineedit.cpp:260 +#, kde-format +msgctxt "short translation please" +msgid "Enable overwrite mode in the document." +msgstr "" + +#: variableeditor/variablelineedit.cpp:265 +#, kde-format +msgctxt "short translation please" +msgid "Enable persistent text selection." +msgstr "" + +#: variableeditor/variablelineedit.cpp:270 +#, kde-format +msgctxt "short translation please" +msgid "Replace tabs with spaces when saving the document." +msgstr "" + +#: variableeditor/variablelineedit.cpp:275 +#, kde-format +msgctxt "short translation please" +msgid "Replace tabs with spaces." +msgstr "" + +#: variableeditor/variablelineedit.cpp:280 +#, kde-format +msgctxt "short translation please" +msgid "Remove trailing spaces when saving the document." +msgstr "" + +#: variableeditor/variablelineedit.cpp:285 +#, kde-format +msgctxt "short translation please" +msgid "Show scrollbar minimap." +msgstr "" + +#: variableeditor/variablelineedit.cpp:290 +#, kde-format +msgctxt "short translation please" +msgid "Show scrollbar preview." +msgstr "" + +#: variableeditor/variablelineedit.cpp:301 +#, kde-format +msgctxt "short translation please" +msgid "Set the color scheme." +msgstr "" + +#: variableeditor/variablelineedit.cpp:306 +#, kde-format +msgctxt "short translation please" +msgid "Set the text selection color." +msgstr "" + +#: variableeditor/variablelineedit.cpp:311 +#, kde-format +msgctxt "short translation please" +msgid "Visualize tabs and trailing spaces." +msgstr "" + +#: variableeditor/variablelineedit.cpp:316 +#, kde-format +msgctxt "short translation please" +msgid "Enable smart home navigation." +msgstr "" + +#: variableeditor/variablelineedit.cpp:321 +#, kde-format +msgctxt "short translation please" +msgid "Pressing TAB key indents." +msgstr "" + +#: variableeditor/variablelineedit.cpp:327 +#, kde-format +msgctxt "short translation please" +msgid "Set the tab display width." +msgstr "" + +#: variableeditor/variablelineedit.cpp:333 +#, kde-format +msgctxt "short translation please" +msgid "Set the number of undo steps to remember (0 equals infinity)." +msgstr "" + +#: variableeditor/variablelineedit.cpp:339 +#, kde-format +msgctxt "short translation please" +msgid "Set the word wrap column." +msgstr "" + +#: variableeditor/variablelineedit.cpp:344 +#, kde-format +msgctxt "short translation please" +msgid "Set the word wrap marker color." +msgstr "" + +#: variableeditor/variablelineedit.cpp:349 +#, kde-format +msgctxt "short translation please" +msgid "Enable word wrap while typing text." +msgstr "" + +#: view/katestatusbar.cpp:114 +#, kde-format +msgid "Current cursor position. Click to go to a specific line." +msgstr "" + +#: view/katestatusbar.cpp:127 +#, kde-format +msgid "Insert mode and VI input mode indicator. Click to change the mode." +msgstr "" + +#: view/katestatusbar.cpp:135 +#, kde-format +msgid "Change dictionary" +msgstr "" + +#: view/katestatusbar.cpp:161 view/katestatusbar.cpp:488 +#, kde-format +msgid "Tab Width" +msgstr "" + +#: view/katestatusbar.cpp:169 view/katestatusbar.cpp:503 +#, kde-format +msgid "Indentation Width" +msgstr "" + +#: view/katestatusbar.cpp:177 +#, kde-format +msgid "Indentation Mode" +msgstr "" + +#: view/katestatusbar.cpp:179 +#, kde-format +msgid "Tabulators && Spaces" +msgstr "" + +#: view/katestatusbar.cpp:182 +#, kde-format +msgid "Tabulators" +msgstr "" + +#: view/katestatusbar.cpp:185 +#, kde-format +msgid "Spaces" +msgstr "" + +#: view/katestatusbar.cpp:197 +#, kde-format +msgid "Encoding" +msgstr "" + +#: view/katestatusbar.cpp:200 view/katestatusbar.cpp:201 +#, kde-format +msgid "End of line type" +msgstr "" + +#: view/katestatusbar.cpp:207 +#, kde-format +msgid "Mode" +msgstr "" + +#: view/katestatusbar.cpp:209 view/kateview.cpp:703 +#, kde-format +msgid "" +"Here you can choose which mode should be used for the current document. This " +"will influence the highlighting and folding being used, for example." +msgstr "" + +#: view/katestatusbar.cpp:216 +#, kde-format +msgid "Syntax highlighting" +msgstr "" + +#: view/katestatusbar.cpp:261 +#, kde-format +msgid "Line/Column compact mode" +msgstr "" + +#: view/katestatusbar.cpp:307 +#, kde-format +msgid "[BLOCK] %1" +msgstr "" + +#: view/katestatusbar.cpp:323 +#, kde-format +msgid "%1/%2:%3" +msgstr "" + +#: view/katestatusbar.cpp:325 +#, kde-format +msgid "%1:%2" +msgstr "" + +#: view/katestatusbar.cpp:329 +#, kde-format +msgid "Line %1 of %2, Column %3" +msgstr "" + +#: view/katestatusbar.cpp:331 +#, kde-format +msgid "Line %1, Column %2" +msgstr "" + +#: view/katestatusbar.cpp:405 +#, kde-format +msgid "Soft Tabs: %1" +msgstr "" + +#: view/katestatusbar.cpp:406 +#, kde-format +msgid "Soft Tabs: %1 (%2)" +msgstr "" + +#: view/katestatusbar.cpp:407 +#, kde-format +msgid "Tab Size: %1" +msgstr "" + +#: view/katestatusbar.cpp:408 +#, kde-format +msgid "Indent/Tab: %1/%2" +msgstr "" + +#: view/katestatusbar.cpp:448 view/katestatusbar.cpp:474 +#, kde-format +msgctxt "@item:inmenu" +msgid "Other…" +msgstr "" + +#: view/katestatusbar.cpp:476 +#, kde-format +msgid "Other (%1)" +msgid_plural "Other (%1)" +msgstr[0] "" +msgstr[1] "" + +#: view/katestatusbar.cpp:488 +#, kde-format +msgid "Please specify the wanted tab width:" +msgstr "" + +#: view/katestatusbar.cpp:504 +#, kde-format +msgid "Please specify the wanted indentation width:" +msgstr "" + +#: view/katestatusbar.cpp:567 +#, kde-format +msgctxt "" +"%1 and %3 are the selected words/chars count, %2 and %4 are the total words/" +"chars count." +msgid "Words %1/%2, Chars %3/%4" +msgstr "" + +#: view/katestatusbar.cpp:573 +#, kde-format +msgctxt "%1 and %2 are the total words/chars count." +msgid "Words %1, Chars %2" +msgstr "" + +#: view/katestatusbar.cpp:588 +#, kde-format +msgid "Zoom: %1%" +msgstr "" + +#: view/kateview.cpp:440 +#, kde-format +msgid "Cut the selected text and move it to the clipboard" +msgstr "" + +#: view/kateview.cpp:445 +#, kde-format +msgid "Paste previously copied or cut clipboard contents" +msgstr "" + +#: view/kateview.cpp:448 +#, kde-format +msgid "" +"Use this command to copy the currently selected text to the system clipboard." +msgstr "" + +#: view/kateview.cpp:454 +#, kde-format +msgid "Clipboard &History Paste" +msgstr "" + +#: view/kateview.cpp:459 +#, kde-format +msgid "Paste Selection" +msgstr "" + +#: view/kateview.cpp:461 +#, kde-format +msgid "Paste previously mouse selection contents" +msgstr "" + +#: view/kateview.cpp:465 +#, kde-format +msgid "Paste From File" +msgstr "" + +#: view/kateview.cpp:469 +#, kde-format +msgid "Copy File Location" +msgstr "" + +#: view/kateview.cpp:470 +#, kde-format +msgid "Copy the current file name and line number" +msgstr "" + +#: view/kateview.cpp:473 +#, kde-format +msgid "Swap with Clipboard Contents" +msgstr "" + +#: view/kateview.cpp:474 +#, kde-format +msgid "Swap the selected text with the clipboard contents" +msgstr "" + +#: view/kateview.cpp:477 +#, kde-format +msgid "Take Screenshot of Selection" +msgstr "" + +#: view/kateview.cpp:481 +#, kde-format +msgid "Save the current document" +msgstr "" + +#: view/kateview.cpp:484 +#, kde-format +msgid "Revert the most recent editing actions" +msgstr "" + +#: view/kateview.cpp:487 +#, kde-format +msgid "Revert the most recent undo operation" +msgstr "" + +#: view/kateview.cpp:491 +#, kde-format +msgid "&Scripts" +msgstr "" + +#: view/kateview.cpp:495 +#, kde-format +msgid "Apply &Word Wrap" +msgstr "" + +#: view/kateview.cpp:497 +#, kde-format +msgid "" +"Use this to wrap the current line, or to reformat the selected lines as " +"paragraph, to fit the 'Wrap words at' setting in the configuration dialog." +"

This is a static word wrap, meaning the document is changed." +msgstr "" + +#: view/kateview.cpp:503 +#, kde-format +msgid "&Clean Indentation" +msgstr "" + +#: view/kateview.cpp:505 +#, kde-format +msgid "" +"Use this to clean the indentation of a selected block of text (only tabs/" +"only spaces).

You can configure whether tabs should be honored " +"and used or replaced with spaces, in the configuration dialog." +msgstr "" + +#: view/kateview.cpp:510 +#, kde-format +msgid "Convert Indentation to Spaces" +msgstr "" + +#: view/kateview.cpp:517 +#, kde-format +msgid "Convert Indentation to Tabs" +msgstr "" + +#: view/kateview.cpp:532 +#, kde-format +msgid "&Format Indentation" +msgstr "" + +#: view/kateview.cpp:533 +#, kde-format +msgid "" +"Use this to auto indent the current line or block of text to its proper " +"indent level." +msgstr "" + +#: view/kateview.cpp:537 +#, kde-format +msgctxt "@action" +msgid "&Align On…" +msgstr "" + +#: view/kateview.cpp:539 +#, kde-format +msgid "" +"This command aligns lines in the selected block or whole document on the " +"column given by a regular expression that you will be prompted for.

If you give an empty pattern it will align on the first non-blank " +"character by default.
If the pattern has a capture it will indent on " +"the captured match.

Examples:
With '-' it will insert " +"spaces before the first '-' of each lines to align them all on the same " +"column.
With ':\\s+(.)' it will insert spaces before the first non-" +"blank character that occurs after a colon to align them all on the same " +"column." +msgstr "" + +#: view/kateview.cpp:550 +#, kde-format +msgid "C&omment" +msgstr "" + +#: view/kateview.cpp:553 +#, kde-format +msgid "" +"This command comments out the current line or a selected block of text.

The characters for single/multiple line comments are defined within " +"the language's highlighting." +msgstr "" + +#: view/kateview.cpp:558 +#, kde-format +msgid "Go to Previous Editing Location" +msgstr "" + +#: view/kateview.cpp:564 +#, kde-format +msgid "Go to Next Editing Location" +msgstr "" + +#: view/kateview.cpp:570 +#, kde-format +msgid "Unco&mment" +msgstr "" + +#: view/kateview.cpp:573 +#, kde-format +msgid "" +"This command removes comments from the current line or a selected block of " +"text.

The characters for single/multiple line comments are " +"defined within the language's highlighting." +msgstr "" + +#: view/kateview.cpp:578 +#, kde-format +msgid "Toggle Comment" +msgstr "" + +#: view/kateview.cpp:582 +#, kde-format +msgid "&Read Only Mode" +msgstr "" + +#: view/kateview.cpp:583 +#, kde-format +msgid "Lock/unlock the document for writing" +msgstr "" + +#: view/kateview.cpp:588 +#, kde-format +msgid "&Force RTL Direction" +msgstr "" + +#: view/kateview.cpp:589 +#, kde-format +msgid "Force RTL Text Direction" +msgstr "" + +#: view/kateview.cpp:599 +#, kde-format +msgid "Uppercase" +msgstr "" + +#: view/kateview.cpp:602 +#, kde-format +msgid "" +"Convert the selection to uppercase, or the character to the right of the " +"cursor if no text is selected." +msgstr "" + +#: view/kateview.cpp:608 +#, kde-format +msgid "Lowercase" +msgstr "" + +#: view/kateview.cpp:611 +#, kde-format +msgid "" +"Convert the selection to lowercase, or the character to the right of the " +"cursor if no text is selected." +msgstr "" + +#: view/kateview.cpp:617 +#, kde-format +msgid "Capitalize" +msgstr "" + +#: view/kateview.cpp:620 +#, kde-format +msgid "" +"Capitalize the selection, or the word under the cursor if no text is " +"selected." +msgstr "" + +#: view/kateview.cpp:625 +#, kde-format +msgid "Join Lines" +msgstr "" + +#: view/kateview.cpp:630 +#, kde-format +msgid "Invoke Code Completion" +msgstr "" + +#: view/kateview.cpp:631 +#, kde-format +msgid "" +"Manually invoke command completion, usually by using a shortcut bound to " +"this action." +msgstr "" + +#: view/kateview.cpp:636 +#, kde-format +msgid "Remove Trailing Spaces" +msgstr "" + +#: view/kateview.cpp:654 +#, kde-format +msgid "Print the current document." +msgstr "" + +#: view/kateview.cpp:657 +#, kde-format +msgid "Show print preview of current document" +msgstr "" + +#: view/kateview.cpp:661 +#, kde-format +msgid "Reloa&d" +msgstr "" + +#: view/kateview.cpp:663 +#, kde-format +msgid "Reload the current document from disk." +msgstr "" + +#: view/kateview.cpp:667 +#, kde-format +msgid "Save the current document to disk, with a name of your choice." +msgstr "" + +#: view/kateview.cpp:669 +#, kde-format +msgctxt "@action" +msgid "Save As with Encodin&g…" +msgstr "" + +#: view/kateview.cpp:675 +#, kde-format +msgctxt "@action" +msgid "Save Cop&y As…" +msgstr "" + +#: view/kateview.cpp:676 +#, kde-format +msgid "Save a copy of the current document to disk." +msgstr "" + +#: view/kateview.cpp:680 +#, kde-format +msgid "" +"This command opens a dialog and lets you choose a line that you want the " +"cursor to move to." +msgstr "" + +#: view/kateview.cpp:684 +#, kde-format +msgid "Go to Previous Modified Line" +msgstr "" + +#: view/kateview.cpp:685 +#, kde-format +msgid "Move upwards to the previous modified line." +msgstr "" + +#: view/kateview.cpp:690 +#, kde-format +msgid "Go to Next Modified Line" +msgstr "" + +#: view/kateview.cpp:691 +#, kde-format +msgid "Move downwards to the next modified line." +msgstr "" + +#: view/kateview.cpp:695 +#, kde-format +msgctxt "@action" +msgid "&Configure Editor…" +msgstr "" + +#: view/kateview.cpp:697 +#, kde-format +msgid "Configure various aspects of this editor." +msgstr "" + +#: view/kateview.cpp:700 +#, kde-format +msgid "&Mode" +msgstr "" + +#: view/kateview.cpp:706 +#, kde-format +msgid "&Highlighting" +msgstr "" + +#: view/kateview.cpp:708 +#, kde-format +msgid "Here you can choose how the current document should be highlighted." +msgstr "" + +#: view/kateview.cpp:711 +#, kde-format +msgid "&Editor Color Theme" +msgstr "" + +#: view/kateview.cpp:717 +#, kde-format +msgid "&Indentation" +msgstr "" + +#: view/kateview.cpp:726 +#, kde-format +msgid "Select the entire text of the current document." +msgstr "" + +#: view/kateview.cpp:729 +#, kde-format +msgid "" +"If you have selected something within the current document, this will no " +"longer be selected." +msgstr "" + +#: view/kateview.cpp:733 +#, kde-format +msgid "Enlarge Font" +msgstr "" + +#: view/kateview.cpp:735 +#, kde-format +msgid "This increases the display font size." +msgstr "" + +#: view/kateview.cpp:742 +#, kde-format +msgid "Shrink Font" +msgstr "" + +#: view/kateview.cpp:744 +#, kde-format +msgid "This decreases the display font size." +msgstr "" + +#: view/kateview.cpp:751 +#, kde-format +msgid "Reset Font Size" +msgstr "" + +#: view/kateview.cpp:753 +#, kde-format +msgid "This resets the display font size." +msgstr "" + +#: view/kateview.cpp:756 +#, kde-format +msgid "Bl&ock Selection Mode" +msgstr "" + +#: view/kateview.cpp:759 +#, kde-format +msgid "" +"This command allows switching between the normal (line based) selection mode " +"and the block selection mode." +msgstr "" + +#: view/kateview.cpp:763 +#, kde-format +msgid "Switch to Next Input Mode" +msgstr "" + +#: view/kateview.cpp:765 +#, kde-format +msgid "Switch to the next input mode." +msgstr "" + +#: view/kateview.cpp:768 +#, kde-format +msgid "Overwr&ite Mode" +msgstr "" + +#: view/kateview.cpp:771 +#, kde-format +msgid "" +"Choose whether you want the text you type to be inserted or to overwrite " +"existing text." +msgstr "" + +#: view/kateview.cpp:775 +#, kde-format +msgid "Show Whitespace" +msgstr "" + +#: view/kateview.cpp:778 +#, kde-format +msgid "" +"If this option is checked, whitespaces in this document will be visible.

This is only a view option, meaning the document will not be changed." +msgstr "" + +#: view/kateview.cpp:782 +#, kde-format +msgid "&Dynamic Word Wrap" +msgstr "" + +#: view/kateview.cpp:786 +#, kde-format +msgid "" +"If this option is checked, the text lines will be wrapped at the view border " +"on the screen.

This is only a view option, meaning the document " +"will not be changed." +msgstr "" + +#: view/kateview.cpp:790 +#, kde-format +msgid "Dynamic Word Wrap Indicators" +msgstr "" + +#: view/kateview.cpp:792 +#, kde-format +msgid "Choose when the Dynamic Word Wrap Indicators should be displayed" +msgstr "" + +#: view/kateview.cpp:794 +#, kde-format +msgid "&Off" +msgstr "" + +#: view/kateview.cpp:794 +#, kde-format +msgid "Follow &Line Numbers" +msgstr "" + +#: view/kateview.cpp:794 +#, kde-format +msgid "&Always On" +msgstr "" + +#: view/kateview.cpp:798 +#, kde-format +msgid "Static Word Wrap" +msgstr "" + +#: view/kateview.cpp:800 +#, kde-format +msgid "" +"If this option is checked, the text lines will be wrapped at the column " +"defined in the editing properties." +msgstr "" + +#: view/kateview.cpp:807 +#, kde-format +msgid "Show Static &Word Wrap Marker" +msgstr "" + +#: view/kateview.cpp:810 +#, kde-format +msgid "" +"Show/hide the Word Wrap Marker, a vertical line drawn at the word wrap " +"column as defined in the editing properties" +msgstr "" + +#: view/kateview.cpp:814 +#, kde-format +msgid "Show Folding &Markers" +msgstr "" + +#: view/kateview.cpp:816 +#, kde-format +msgid "" +"You can choose if the codefolding marks should be shown, if codefolding is " +"possible." +msgstr "" + +#: view/kateview.cpp:819 +#, kde-format +msgid "Show &Icon Border" +msgstr "" + +#: view/kateview.cpp:821 +#, kde-format +msgid "" +"Show/hide the icon border.

The icon border shows bookmark " +"symbols, for instance." +msgstr "" + +#: view/kateview.cpp:824 +#, kde-format +msgid "Show &Line Numbers" +msgstr "" + +#: view/kateview.cpp:826 +#, kde-format +msgid "Show/hide the line numbers on the left hand side of the view." +msgstr "" + +#: view/kateview.cpp:829 +#, kde-format +msgid "Show Scroll&bar Marks" +msgstr "" + +#: view/kateview.cpp:831 +#, kde-format +msgid "" +"Show/hide the marks on the vertical scrollbar.

The marks show " +"bookmarks, for instance." +msgstr "" + +#: view/kateview.cpp:834 +#, kde-format +msgid "Show Scrollbar Mini-Map" +msgstr "" + +#: view/kateview.cpp:836 +#, kde-format +msgid "" +"Show/hide the mini-map on the vertical scrollbar.

The mini-map " +"shows an overview of the whole document." +msgstr "" + +#. i18n("Show the whole document in the Mini-Map"), this); +#. ac->addAction(QLatin1String("view_scrollbar_minimap_all"), a); +#. a->setWhatsThis(i18n("Display the whole document in the mini-map.

With this option set the whole document will be visible in the +#. mini-map.")); connect(a, SIGNAL(triggered(bool)), SlOT(toggleScrollBarMiniMapAll())); connect(m_toggleScrollBarMiniMap, SIGNAL(triggered(bool)), +#. m_toggleScrollBarMiniMapAll, SLOT(setEnabled(bool))); +#: view/kateview.cpp:848 +#, kde-format +msgid "Show Non-Printable Spaces" +msgstr "" + +#: view/kateview.cpp:850 +#, kde-format +msgid "Show/hide bounding box around non-printable spaces" +msgstr "" + +#: view/kateview.cpp:854 +#, kde-format +msgid "Switch to Command Line" +msgstr "" + +#: view/kateview.cpp:856 +#, kde-format +msgid "Show/hide the command line on the bottom of the view." +msgstr "" + +#: view/kateview.cpp:859 +#, kde-format +msgid "Input Modes" +msgstr "" + +#: view/kateview.cpp:868 +#, kde-format +msgid "Activate/deactivate %1" +msgstr "" + +#: view/kateview.cpp:878 +#, kde-format +msgid "&End of Line" +msgstr "" + +#: view/kateview.cpp:880 +#, kde-format +msgid "Choose which line endings should be used, when you save the document" +msgstr "" + +#: view/kateview.cpp:881 +#, kde-format +msgctxt "@item:inmenu End of Line" +msgid "&UNIX" +msgstr "" + +#: view/kateview.cpp:882 +#, kde-format +msgctxt "@item:inmenu End of Line" +msgid "&Windows/DOS" +msgstr "" + +#: view/kateview.cpp:883 +#, kde-format +msgctxt "@item:inmenu End of Line" +msgid "&Macintosh" +msgstr "" + +#: view/kateview.cpp:888 +#, kde-format +msgid "Add &Byte Order Mark (BOM)" +msgstr "" + +#: view/kateview.cpp:891 +#, kde-format +msgid "" +"Enable/disable adding of byte order marks for UTF-8/UTF-16 encoded files " +"while saving" +msgstr "" + +#: view/kateview.cpp:895 +#, kde-format +msgid "E&ncoding" +msgstr "" + +#: view/kateview.cpp:899 +#, kde-format +msgid "Look up the first occurrence of a piece of text or regular expression." +msgstr "" + +#: view/kateview.cpp:903 +#, kde-format +msgid "Find Selected" +msgstr "" + +#: view/kateview.cpp:905 +#, kde-format +msgid "Finds next occurrence of selected text." +msgstr "" + +#: view/kateview.cpp:909 +#, kde-format +msgid "Find Selected Backwards" +msgstr "" + +#: view/kateview.cpp:911 +#, kde-format +msgid "Finds previous occurrence of selected text." +msgstr "" + +#: view/kateview.cpp:915 +#, kde-format +msgid "Find and Select Next Occurrence" +msgstr "" + +#: view/kateview.cpp:917 +#, kde-format +msgid "Finds next occurrence of the word under cursor and add it to selection." +msgstr "" + +#: view/kateview.cpp:921 +#, kde-format +msgid "Mark Currently Selected Occurrence as Skipped" +msgstr "" + +#: view/kateview.cpp:923 +#, kde-format +msgid "Marks the currently selected word as skipped." +msgstr "" + +#: view/kateview.cpp:927 +#, kde-format +msgid "Find and Select All Occurrences" +msgstr "" + +#: view/kateview.cpp:929 +#, kde-format +msgid "Finds all occurrences of the word under cursor and selects them." +msgstr "" + +#: view/kateview.cpp:933 +#, kde-format +msgid "Look up the next occurrence of the search phrase." +msgstr "" + +#: view/kateview.cpp:937 +#, kde-format +msgid "Look up the previous occurrence of the search phrase." +msgstr "" + +#: view/kateview.cpp:941 +#, kde-format +msgid "" +"Look up a piece of text or regular expression and replace the result with " +"some given text." +msgstr "" + +#: view/kateview.cpp:944 +#, kde-format +msgid "Add Cursors to Line Ends" +msgstr "" + +#: view/kateview.cpp:946 +#, kde-format +msgid "Creates a cursor at the end of every line in selection." +msgstr "" + +#: view/kateview.cpp:950 +#, kde-format +msgid "Add Caret below Cursor" +msgstr "" + +#: view/kateview.cpp:952 +#, kde-format +msgid "Adds a caret in the line below the current caret." +msgstr "" + +#: view/kateview.cpp:956 +#, kde-format +msgid "Add Caret above Cursor" +msgstr "" + +#: view/kateview.cpp:958 +#, kde-format +msgid "Adds a caret in the line above the current caret." +msgstr "" + +#: view/kateview.cpp:962 +#, kde-format +msgid "Toggle Camel Case Cursor Movement" +msgstr "" + +#: view/kateview.cpp:963 +#, kde-format +msgid "Toggle between normal word movement and camel case cursor movement." +msgstr "" + +#: view/kateview.cpp:967 +#, kde-format +msgid "Remove Cursors from Empty Lines" +msgstr "" + +#: view/kateview.cpp:968 +#, kde-format +msgid "Remove cursors from empty lines" +msgstr "" + +#: view/kateview.cpp:972 +#, kde-format +msgid "Automatic Spell Checking" +msgstr "" + +#: view/kateview.cpp:973 +#, kde-format +msgid "Enable/disable automatic spell checking" +msgstr "" + +#: view/kateview.cpp:979 +#, kde-format +msgctxt "@action" +msgid "Change Dictionary…" +msgstr "" + +#: view/kateview.cpp:980 +#, kde-format +msgid "Change the dictionary that is used for spell checking." +msgstr "" + +#: view/kateview.cpp:984 +#, kde-format +msgid "Clear Dictionary Ranges" +msgstr "" + +#: view/kateview.cpp:986 +#, kde-format +msgid "" +"Remove all the separate dictionary ranges that were set for spell checking." +msgstr "" + +#: view/kateview.cpp:992 +#, kde-format +msgid "Copy as &HTML" +msgstr "" + +#: view/kateview.cpp:993 +#, kde-format +msgid "" +"Copy the selection as HTML, formatted using the current syntax highlighting " +"and color scheme settings." +msgstr "" + +#: view/kateview.cpp:997 +#, kde-format +msgctxt "@action" +msgid "E&xport as HTML…" +msgstr "" + +#: view/kateview.cpp:999 +#, kde-format +msgid "" +"This command allows you to export the current document with all highlighting " +"information into a HTML document." +msgstr "" + +#: view/kateview.cpp:1038 +#, kde-format +msgid "Move Word Left" +msgstr "" + +#: view/kateview.cpp:1044 +#, kde-format +msgid "Select Character Left" +msgstr "" + +#: view/kateview.cpp:1050 +#, kde-format +msgid "Select Word Left" +msgstr "" + +#: view/kateview.cpp:1060 +#, kde-format +msgid "Move Word Right" +msgstr "" + +#: view/kateview.cpp:1066 +#, kde-format +msgid "Select Character Right" +msgstr "" + +#: view/kateview.cpp:1072 +#, kde-format +msgid "Select Word Right" +msgstr "" + +#: view/kateview.cpp:1082 +#, kde-format +msgid "Start the Marked Selection" +msgstr "" + +#: view/kateview.cpp:1083 +#, kde-format +msgid "" +"Emulate the Emacs-like selection mode, where the beginning is marked and " +"then the selection is continuously updated." +msgstr "" + +#: view/kateview.cpp:1088 +#, kde-format +msgid "Move to Beginning of Line" +msgstr "" + +#: view/kateview.cpp:1094 +#, kde-format +msgid "Move to Beginning of Document" +msgstr "" + +#: view/kateview.cpp:1100 +#, kde-format +msgid "Select to Beginning of Line" +msgstr "" + +#: view/kateview.cpp:1110 +#, kde-format +msgid "Select to Beginning of Document" +msgstr "" + +#: view/kateview.cpp:1120 +#, kde-format +msgid "Move to End of Line" +msgstr "" + +#: view/kateview.cpp:1126 +#, kde-format +msgid "Move to End of Document" +msgstr "" + +#: view/kateview.cpp:1132 +#, kde-format +msgid "Select to End of Line" +msgstr "" + +#: view/kateview.cpp:1142 +#, kde-format +msgid "Select to End of Document" +msgstr "" + +#: view/kateview.cpp:1152 +#, kde-format +msgid "Select to Previous Line" +msgstr "" + +#: view/kateview.cpp:1158 +#, kde-format +msgid "Scroll Line Up" +msgstr "" + +#: view/kateview.cpp:1167 +#, kde-format +msgid "Move to Next Line" +msgstr "" + +#: view/kateview.cpp:1173 +#, kde-format +msgid "Move to Previous Line" +msgstr "" + +#: view/kateview.cpp:1179 +#, kde-format +msgid "Move Cursor Right" +msgstr "" + +#: view/kateview.cpp:1185 +#, kde-format +msgid "Move Cursor Left" +msgstr "" + +#: view/kateview.cpp:1191 +#, kde-format +msgid "Select to Next Line" +msgstr "" + +#: view/kateview.cpp:1197 +#, kde-format +msgid "Scroll Line Down" +msgstr "" + +#: view/kateview.cpp:1206 +#, kde-format +msgid "Scroll Page Up" +msgstr "" + +#: view/kateview.cpp:1212 +#, kde-format +msgid "Select Page Up" +msgstr "" + +#: view/kateview.cpp:1218 +#, kde-format +msgid "Move to Top of View" +msgstr "" + +#: view/kateview.cpp:1224 +#, kde-format +msgid "Select to Top of View" +msgstr "" + +#: view/kateview.cpp:1230 +#, kde-format +msgid "Scroll Page Down" +msgstr "" + +#: view/kateview.cpp:1236 +#, kde-format +msgid "Select Page Down" +msgstr "" + +#: view/kateview.cpp:1242 +#, kde-format +msgid "Move to Bottom of View" +msgstr "" + +#: view/kateview.cpp:1248 +#, kde-format +msgid "Select to Bottom of View" +msgstr "" + +#: view/kateview.cpp:1254 +#, kde-format +msgid "Go to Matching Bracket" +msgstr "" + +#: view/kateview.cpp:1260 +#, kde-format +msgid "Select to Matching Bracket" +msgstr "" + +#: view/kateview.cpp:1267 +#, kde-format +msgid "Move Sub-Word Right" +msgstr "" + +#: view/kateview.cpp:1274 +#, kde-format +msgid "Select Sub-Word Right" +msgstr "" + +#: view/kateview.cpp:1281 +#, kde-format +msgid "Move Sub-Word Left" +msgstr "" + +#: view/kateview.cpp:1288 +#, kde-format +msgid "Select Sub-Word Left" +msgstr "" + +#: view/kateview.cpp:1298 +#, kde-format +msgid "Transpose Characters" +msgstr "" + +#: view/kateview.cpp:1303 +#, kde-format +msgid "Transpose Words" +msgstr "" + +#: view/kateview.cpp:1308 +#, kde-format +msgid "Delete Line" +msgstr "" + +#: view/kateview.cpp:1314 +#, kde-format +msgid "Delete Word Left" +msgstr "" + +#: view/kateview.cpp:1320 +#, kde-format +msgid "Delete Word Right" +msgstr "" + +#: view/kateview.cpp:1326 +#, kde-format +msgid "Delete Next Character" +msgstr "" + +#: view/kateview.cpp:1332 +#, kde-format +msgid "Backspace" +msgstr "" + +#: view/kateview.cpp:1340 +#, kde-format +msgid "Insert Tab Character" +msgstr "" + +#: view/kateview.cpp:1345 +#, kde-format +msgid "Insert Smart Newline" +msgstr "" + +#: view/kateview.cpp:1346 +#, kde-format +msgid "" +"Insert newline including leading characters of the current line which are " +"not letters or numbers." +msgstr "" + +#: view/kateview.cpp:1354 +#, kde-format +msgid "Insert a Non-Indented Newline" +msgstr "" + +#: view/kateview.cpp:1355 +#, kde-format +msgid "" +"Insert a new line without indentation, regardless of indentation settings." +msgstr "" + +#: view/kateview.cpp:1363 +#, kde-format +msgid "Insert a Newline Above Current Line" +msgstr "" + +#: view/kateview.cpp:1364 +#, kde-format +msgid "" +"Insert a new line above current line without modifying the current line." +msgstr "" + +#: view/kateview.cpp:1372 +#, kde-format +msgid "Insert a Newline Below Current Line" +msgstr "" + +#: view/kateview.cpp:1373 +#, kde-format +msgid "" +"Insert a new line below current line without modifying the current line." +msgstr "" + +#: view/kateview.cpp:1382 +#, kde-format +msgid "&Indent" +msgstr "" + +#: view/kateview.cpp:1384 +#, kde-format +msgid "" +"Use this to indent a selected block of text.

You can configure " +"whether tabs should be honored and used or replaced with spaces, in the " +"configuration dialog." +msgstr "" + +#: view/kateview.cpp:1391 +#, kde-format +msgid "&Unindent" +msgstr "" + +#: view/kateview.cpp:1392 +#, kde-format +msgid "Use this to unindent a selected block of text." +msgstr "" + +#: view/kateview.cpp:1398 +#, kde-format +msgid "Delete Sub-Word Left" +msgstr "" + +#: view/kateview.cpp:1405 +#, kde-format +msgid "Delete Sub-Word Right" +msgstr "" + +#: view/kateview.cpp:1426 +#, kde-format +msgid "Fold Toplevel Nodes" +msgstr "" + +#: view/kateview.cpp:1430 +#, kde-format +msgid "Unfold Toplevel Nodes" +msgstr "" + +#: view/kateview.cpp:1434 +#, kde-format +msgid "Toggle Current Node" +msgstr "" + +#: view/kateview.cpp:1438 +#, kde-format +msgid "Toggle Contained Nodes" +msgstr "" + +#: view/kateview.cpp:1447 +#, kde-format +msgid "Say current selection or document" +msgstr "" + +#: view/kateview.cpp:1457 +#, kde-format +msgid "Stop current output" +msgstr "" + +#: view/kateview.cpp:1463 +#, kde-format +msgid "Pause current output" +msgstr "" + +#: view/kateview.cpp:1469 +#, kde-format +msgid "Resume current output" +msgstr "" + +#: view/kateview.cpp:1640 +#, kde-format +msgid "(R/O) %1" +msgstr "" + +#: view/kateview.cpp:1828 +#, kde-format +msgid "Camel case movement disabled" +msgstr "" + +#: view/kateview.cpp:1830 +#, kde-format +msgid "Camel case movement enabled" +msgstr "" + +#: view/kateview.cpp:2349 +#, kde-format +msgid "Search wrapped" +msgstr "" + +#: view/kateview.cpp:3043 +#, kde-format +msgid "Open File" +msgstr "" + +#: view/kateview.cpp:3984 +#, kde-format +msgid "Align On" +msgstr "" + +#: view/kateview.cpp:3984 +#, kde-format +msgid "Alignment pattern:" +msgstr "" + +#: view/kateview.cpp:5068 +#, kde-format +msgid "Export File as HTML" +msgstr "" + +#: view/kateviewhelpers.cpp:302 view/kateviewhelpers.cpp:351 +#: view/kateviewhelpers.cpp:1012 +#, kde-format +msgctxt "from line - to line" +msgid "

%1

%2
" +msgstr "" + +#: view/kateviewhelpers.cpp:1212 +#, kde-format +msgid "Available Commands" +msgstr "" + +#: view/kateviewhelpers.cpp:1213 +#, kde-format +msgid "" +"

For help on individual commands, do 'help <command>'" +msgstr "" + +#: view/kateviewhelpers.cpp:1220 +#, kde-format +msgid "No help for '%1'" +msgstr "" + +#: view/kateviewhelpers.cpp:1223 +#, kde-format +msgid "No such command %1" +msgstr "" + +#: view/kateviewhelpers.cpp:1229 +#, kde-format +msgid "" +"

This is the Katepart command line.
Syntax: command " +"[ arguments ]
For a list of available commands, enter " +"help list
For help for individual commands, enter " +"help <command>

" +msgstr "" + +#: view/kateviewhelpers.cpp:1317 vimode/emulatedcommandbar/commandmode.cpp:211 +#, kde-format +msgid "No such command: \"%1\"" +msgstr "" + +#: view/kateviewhelpers.cpp:1320 vimode/emulatedcommandbar/commandmode.cpp:193 +#, kde-format +msgid "Error: No range allowed for command \"%1\"." +msgstr "" + +#: view/kateviewhelpers.cpp:1330 vimode/emulatedcommandbar/commandmode.cpp:197 +#, kde-format +msgid "Success: " +msgstr "" + +#: view/kateviewhelpers.cpp:1344 vimode/emulatedcommandbar/commandmode.cpp:206 +#, kde-format +msgid "Command \"%1\" failed." +msgstr "" + +#: view/kateviewhelpers.cpp:2632 view/kateviewhelpers.cpp:2633 +#, kde-format +msgid "Mark Type %1" +msgstr "" + +#: view/kateviewhelpers.cpp:2656 +#, kde-format +msgid "Set Default Mark Type" +msgstr "" + +#: view/kateviewhelpers.cpp:2801 +#, kde-format +msgid "Disable Annotation Bar" +msgstr "" + +#: view/screenshotdialog.cpp:175 +#, kde-format +msgid "Save" +msgstr "" + +#: view/screenshotdialog.cpp:176 +#, kde-format +msgid "Copy" +msgstr "" + +#: view/screenshotdialog.cpp:177 +#, kde-format +msgctxt "@action:button" +msgid "Background Color…" +msgstr "" + +#: view/screenshotdialog.cpp:179 +#, kde-format +msgid "Show Extra Decorations" +msgstr "" + +#: view/screenshotdialog.cpp:180 +#, kde-format +msgid "Show Window Decorations" +msgstr "" + +#: view/screenshotdialog.cpp:185 +#, kde-format +msgctxt "@title:window" +msgid "Take Screenshot of Selection" +msgstr "" + +#: view/screenshotdialog.cpp:257 +#, kde-format +msgid "Don't Show Line Numbers" +msgstr "" + +#: view/screenshotdialog.cpp:258 +#, kde-format +msgid "Show Line Numbers From 1" +msgstr "" + +#: view/screenshotdialog.cpp:259 +#, kde-format +msgid "Show Actual Line Numbers" +msgstr "" + +#: view/screenshotdialog.cpp:422 +#, kde-format +msgctxt "@title:window" +msgid "Screenshot saving failed" +msgstr "" + +#: view/screenshotdialog.cpp:422 +#, kde-format +msgid "Screenshot saving failed: %1" +msgstr "" + +#: vimode/appcommands.cpp:67 +#, kde-format +msgid "All documents written to disk" +msgstr "" + +#: vimode/appcommands.cpp:70 +#, kde-format +msgid "Document written to disk" +msgstr "" + +#: vimode/appcommands.cpp:202 +#, kde-format +msgid "" +"

w/wa — write document(s) to disk

Usage: w[a]

Writes the current document(s) to disk. It can be called in " +"two ways:
w — writes the current document to disk
" +"wa — writes all documents to disk.

If no file name is " +"associated with the document, a file dialog will be shown.

" +msgstr "" + +#: vimode/appcommands.cpp:213 +#, kde-format +msgid "" +"

q/qa/wq/wqa — [write and] quit

Usage: [w]q[a]

Quits the application. If w is prepended, it also " +"writes the document(s) to disk. This command can be called in several ways:" +"
q — closes the current view.
qa — " +"closes all views, effectively quitting the application.
wq " +"— writes the current document to disk and closes its view.
" +"wqa — writes all documents to disk and quits.

In all " +"cases, if the view being closed is the last view, the application quits. If " +"no file name is associated with the document and it should be written to " +"disk, a file dialog will be shown.

" +msgstr "" + +#: vimode/appcommands.cpp:228 +#, kde-format +msgid "" +"

x/xa — write and quit

Usage: x[a]

Saves document(s) and quits (exits). This command can be called " +"in two ways:
x — closes the current view.
xa — closes all views, effectively quitting the application.

In " +"all cases, if the view being closed is the last view, the application quits. " +"If no file name is associated with the document and it should be written to " +"disk, a file dialog will be shown.

Unlike the 'w' commands, this " +"command only writes the document if it is modified.

" +msgstr "" + +#: vimode/appcommands.cpp:242 +#, kde-format +msgid "" +"

sp,split— Split horizontally the current view into two

Usage: sp[lit]

The result is two views on the " +"same document.

" +msgstr "" + +#: vimode/appcommands.cpp:248 +#, kde-format +msgid "" +"

vs,vsplit— Split vertically the current view into two

Usage: vs[plit]

The result is two views on the " +"same document.

" +msgstr "" + +#: vimode/appcommands.cpp:254 +#, kde-format +msgid "" +"

clo[se]— Close the current view

Usage: clo[se]

After executing it, the current view will be closed.

" +msgstr "" + +#: vimode/appcommands.cpp:260 +#, kde-format +msgid "" +"

[v]new — split view and create new document

Usage: " +"[v]new

Splits the current view and opens a new " +"document in the new view. This command can be called in two ways:
" +"new — splits the view horizontally and opens a new document." +"
vnew — splits the view vertically and opens a new " +"document.

" +msgstr "" + +#: vimode/appcommands.cpp:270 +#, kde-format +msgid "" +"

e[dit] — reload current document

Usage: e[dit]

Starts editing the current document again. This is " +"useful to re-edit the current file, when it was modified on disk.

" +msgstr "" + +#: vimode/appcommands.cpp:518 +#, kde-format +msgid "" +"

b,buffer — Edit document N from the document list

Usage: b[uffer] [N]

" +msgstr "" + +#: vimode/appcommands.cpp:523 +#, kde-format +msgid "" +"

bp,bprev — previous buffer

Usage: bp[revious] " +"[N]

Goes to [N]th previous document (\"buffer" +"\") in document list.

[N] defaults to one.

Wraps " +"around the start of the document list.

" +msgstr "" + +#: vimode/appcommands.cpp:531 +#, kde-format +msgid "" +"

bn,bnext — switch to next document

Usage: " +"bn[ext] [N]

Goes to [N]th next document " +"(\"buffer\") in document list.[N] defaults to one.

Wraps around the end of the document list.

" +msgstr "" + +#: vimode/appcommands.cpp:539 +#, kde-format +msgid "" +"

bf,bfirst — first document

Usage: bf[irst]

Goes to the first document (\"buffer\") in document " +"list.

" +msgstr "" + +#: vimode/appcommands.cpp:545 +#, kde-format +msgid "" +"

bl,blast — last document

Usage: bl[ast]

Goes to the last document (\"buffer\") in document " +"list.

" +msgstr "" + +#: vimode/appcommands.cpp:551 +#, kde-format +msgid "

ls

list current buffers

" +msgstr "" + +#: vimode/cmds.cpp:52 +#, kde-format +msgid "Missing argument. Usage: %1 " +msgstr "" + +#: vimode/cmds.cpp:68 +#, kde-format +msgid "No mapping found for \"%1\"" +msgstr "" + +#: vimode/cmds.cpp:71 +#, kde-format +msgid "\"%1\" is mapped to \"%2\"" +msgstr "" + +#: vimode/cmds.cpp:77 +#, kde-format +msgid "Missing argument(s). Usage: %1 []" +msgstr "" + +#: vimode/cmds.cpp:145 vimode/cmds.cpp:161 +#, kde-format +msgid "Wrong arguments" +msgstr "" + +#: vimode/config/configtab.cpp:205 +#, kde-format +msgid "Unable to open the config file for reading." +msgstr "" + +#: vimode/config/configtab.cpp:205 +#, kde-format +msgid "Unable to open file" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkViCommandsOverride) +#: vimode/config/configwidget.ui:35 +#, kde-format +msgid "" +"When selected, vi commands will override Kate's built-in commands. For " +"example: Ctrl+R will redo, and override the standard action (showing the " +"search and replace dialog)." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkViCommandsOverride) +#: vimode/config/configwidget.ui:38 +#, kde-format +msgid "Let Vi commands override Kate shortcuts" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkViRelLineNumbers) +#: vimode/config/configwidget.ui:45 +#, kde-format +msgid "" +"Show the line number relative to the line with the cursor in front of each " +"line." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkViRelLineNumbers) +#: vimode/config/configwidget.ui:48 +#, kde-format +msgid "Display relative line numbers" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QGroupBox, groupBox) +#: vimode/config/configwidget.ui:63 +#, kde-format +msgid "" +"Key mapping is used to change the meaning of typed keys. This allows you to " +"move commands to other keys or make special keypresses for doing a series of " +"commands.\n" +"\n" +"Example:\n" +"\"\" → \"I-- \"\n" +"\n" +"This will prepend \"-- \" to a line when pressing F2." +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, groupBox) +#: vimode/config/configwidget.ui:66 +#, kde-format +msgid "Key Mapping" +msgstr "" + +#. i18n: ectx: attribute (title), widget (QWidget, normalTab) +#: vimode/config/configwidget.ui:76 +#, kde-format +msgid "Normal mode" +msgstr "" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:95 vimode/config/configwidget.ui:133 +#: vimode/config/configwidget.ui:171 +#, kde-format +msgid "Command" +msgstr "" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:100 vimode/config/configwidget.ui:138 +#: vimode/config/configwidget.ui:176 +#, kde-format +msgid "Replacement" +msgstr "" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:105 vimode/config/configwidget.ui:143 +#: vimode/config/configwidget.ui:181 +#, kde-format +msgid "Recursive?" +msgstr "" + +#. i18n: ectx: attribute (title), widget (QWidget, insertTab) +#: vimode/config/configwidget.ui:114 +#, kde-format +msgid "Insert mode" +msgstr "" + +#. i18n: ectx: attribute (title), widget (QWidget, visualTab) +#: vimode/config/configwidget.ui:152 +#, kde-format +msgid "Visual mode" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, btnRemoveSelectedRows) +#: vimode/config/configwidget.ui:195 +#, kde-format +msgid "Remove selected" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, btnAddNewRow) +#: vimode/config/configwidget.ui:202 +#, kde-format +msgid "Add new mapping" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QPushButton, btnImportNormal) +#: vimode/config/configwidget.ui:209 +#, kde-format +msgid "" +"Read a vimrc file and attempt to import mappings specified with the " +"\"[n]noremap\" command." +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, btnImportNormal) +#: vimode/config/configwidget.ui:212 +#, kde-format +msgid "Import from vimrc file" +msgstr "" + +#: vimode/marks.cpp:117 +#, kde-format +msgid "Mark set: %1" +msgstr "" + +#: vimode/marks.cpp:163 +#, kde-format +msgid "There are no more chars for the next bookmark." +msgstr "" + +#: vimode/modes/insertvimode.cpp:261 vimode/modes/modebase.cpp:794 +#: vimode/modes/normalvimode.cpp:3567 +#, kde-format +msgid "Nothing in register %1" +msgstr "" + +#: vimode/modes/normalvimode.cpp:1691 +#, kde-format +msgid "'%1' %2, Hex %3, Octal %4" +msgstr "" + +#: vimode/modes/normalvimode.cpp:2534 +#, kde-format +msgid "Mark not set: %1" +msgstr "" diff --git a/local/recipes/kde/kf6-ktexteditor/source/po/az/ktexteditor6.po b/local/recipes/kde/kf6-ktexteditor/source/po/az/ktexteditor6.po new file mode 100644 index 0000000000..79c68defc8 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/po/az/ktexteditor6.po @@ -0,0 +1,9135 @@ +# Copyright (C) 2026 This file is copyright: +# This file is distributed under the same license as the ktexteditor package. +# +# SPDX-FileCopyrightText: 2026 X əyyam +# SPDX-FileCopyrightText: 2026 Kheyyam +msgid "" +msgstr "" +"Project-Id-Version: ktexteditor\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2026-06-23 00:41+0000\n" +"PO-Revision-Date: 2026-02-05 00:09+0400\n" +"Last-Translator: Kheyyam \n" +"Language-Team: Azerbaijani \n" +"Language: az\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 25.12.1\n" + +#: completion/katecompletionmodel.cpp:147 +#, kde-format +msgid "Argument-hints" +msgstr "Arqument ipucları" + +#: completion/katecompletionmodel.cpp:148 +#, kde-format +msgid "Best matches" +msgstr "Ən çox uyğun gələnlər" + +#: completion/katekeywordcompletion.cpp:143 +#, kde-format +msgid "Language keywords" +msgstr "Dil açar sözləri" + +#: completion/katewordcompletion.cpp:74 +#, kde-format +msgid "Auto Word Completion" +msgstr "Mətn Doldurma" + +#: completion/katewordcompletion.cpp:301 +#, kde-format +msgid "Shell Completion" +msgstr "Əmrlər üzlüyündəki kimi tamamlama" + +#: completion/katewordcompletion.cpp:306 +#, kde-format +msgid "Reuse Word Above" +msgstr "Yuxarıdakı sözü istifadə etmək" + +#: completion/katewordcompletion.cpp:312 +#, kde-format +msgid "Reuse Word Below" +msgstr "Aşağıdakı sözü istifadə etmək" + +#. i18n: ectx: Menu (file) +#: data/katepart5ui.rc:4 +#, kde-format +msgid "&File" +msgstr "&Fayl" + +#. i18n: ectx: Menu (file_export) +#: data/katepart5ui.rc:10 +#, kde-format +msgid "&Print/Export" +msgstr "" + +#. i18n: ectx: Menu (edit) +#: data/katepart5ui.rc:17 +#, kde-format +msgid "&Edit" +msgstr "&Düzəliş et" + +#. i18n: ectx: Menu (edit_find_menu) +#: data/katepart5ui.rc:36 +#, kde-format +msgid "Find Variants" +msgstr "Variantları tapın" + +#. i18n: ectx: Menu (selection) +#: data/katepart5ui.rc:46 +#, kde-format +msgid "Selection" +msgstr "Seçim" + +#. i18n: ectx: Menu (capitalization) +#: data/katepart5ui.rc:53 +#, kde-format +msgid "Capitalization" +msgstr "Böyük hərf ilə" + +#. i18n: ectx: Menu (view) +#: data/katepart5ui.rc:73 +#, kde-format +msgid "&View" +msgstr "&Görünüş" + +#. i18n: ectx: Menu (view_menu_word_wrap) +#: data/katepart5ui.rc:78 +#, kde-format +msgid "Word Wrap" +msgstr "Sətirdən sətirə keçmə" + +#. i18n: ectx: Menu (view_menu_borders) +#: data/katepart5ui.rc:84 dialogs/katedialogs.cpp:747 +#, kde-format +msgid "Borders" +msgstr "Sərhədlər" + +#. i18n: ectx: Menu (codefolding) +#: data/katepart5ui.rc:92 +#, kde-format +msgid "&Code Folding" +msgstr "&Kod bloklarını gizlətmək" + +#. i18n: ectx: Menu (go) +#: data/katepart5ui.rc:109 +#, kde-format +msgid "&Go" +msgstr "&İrəli" + +#. i18n: ectx: Menu (tools) +#: data/katepart5ui.rc:124 +#, kde-format +msgid "&Tools" +msgstr "&Alətlər" + +#. i18n: ectx: Menu (wordcompletion) +#: data/katepart5ui.rc:138 +#, kde-format +msgid "Word Completion" +msgstr "Soz Tamamlama" + +#. i18n: ectx: Menu (spelling) +#: data/katepart5ui.rc:144 spellcheck/spellingmenu.cpp:71 +#: spellcheck/spellingmenu.cpp:195 +#, kde-format +msgid "Spelling" +msgstr "Orfoqrafiya" + +#. i18n: ectx: Menu (speech) +#: data/katepart5ui.rc:153 data/katepart5ui.rc:184 +#, fuzzy, kde-format +#| msgid "Text to search for" +msgid "Text to Speech" +msgstr "Axtarış üçün mətn" + +#. i18n: ectx: Menu (settings) +#: data/katepart5ui.rc:161 +#, kde-format +msgid "&Settings" +msgstr "&Ayarlar" + +#. i18n: ectx: ToolBar (mainToolBar) +#: data/katepart5ui.rc:192 +#, kde-format +msgid "Main Toolbar" +msgstr "Əsas Alətlər Paneli" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/bordersappearanceconfigwidget.ui:25 +#, kde-format +msgid "Code block folding:" +msgstr "Kod bloklarının bükülməsi:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowFoldingMarkers) +#: dialogs/bordersappearanceconfigwidget.ui:32 +#, kde-format +msgid "" +"If this option is checked, every new view will display marks for folding." +msgstr "Əgər bu seçim edilibsə hər yeni görünüş gizlətmə işarəsi göstərəcək" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowFoldingMarkers) +#: dialogs/bordersappearanceconfigwidget.ui:35 +#, kde-format +msgid "Show arrows to collapse code blocks" +msgstr "Yığılmış kod bloklarına oxları göstərmək" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowFoldingPreview) +#: dialogs/bordersappearanceconfigwidget.ui:42 +#, kde-format +msgid "" +"If checked, hovering over a folded region shows a preview of the folded text " +"in a popup." +msgstr "" +"Siçanın kursorunu gizlədilmiş mətn sahəsi üzərində saxlasanız tərkibi " +"göstərilməklə kiçik pəncərə açılacaq." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowFoldingPreview) +#: dialogs/bordersappearanceconfigwidget.ui:45 +#, kde-format +msgid "Show preview of folded blocks on hover" +msgstr "Üzərində olduqda bükülmüş kod bloklarının önizləməsini göstərmək" + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/bordersappearanceconfigwidget.ui:52 +#, kde-format +msgid "Folding arrows visibility:" +msgstr "Bükülmə oxunun görünməsi" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbFoldingArrowVisiblity) +#: dialogs/bordersappearanceconfigwidget.ui:63 +#, kde-format +msgid "Show on Hover" +msgstr "Üzərində olduqda göstərmək" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbFoldingArrowVisiblity) +#: dialogs/bordersappearanceconfigwidget.ui:68 +#, kde-format +msgid "Show Always" +msgstr "Həmişə göstərmək" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/bordersappearanceconfigwidget.ui:92 +#, kde-format +msgid "Left side:" +msgstr "Sol tərəf:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkIconBorder) +#: dialogs/bordersappearanceconfigwidget.ui:99 +#, kde-format +msgid "" +"

If this option is checked, every new view will display an icon border on " +"the left hand side.

The icon border shows bookmark signs, for instance." +"

" +msgstr "" +"

Bu seçim hər yeni pəncərə üçün işarə zolağını aktiv edəcək.

Bu " +"zolaqda əlfəcinlər göstərilir.

" + +#. i18n: ectx: property (text), widget (QCheckBox, chkIconBorder) +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMarks) +#: dialogs/bordersappearanceconfigwidget.ui:102 +#: dialogs/bordersappearanceconfigwidget.ui:155 +#, kde-format +msgid "Show marks" +msgstr "İşarələri göstərməı" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkLineNumbers) +#: dialogs/bordersappearanceconfigwidget.ui:109 +#, kde-format +msgid "" +"If this option is checked, every new view will display line numbers on the " +"left hand side." +msgstr "" +"Bu seçim işarələnibsə hər yeni görünüşdə sol yan tərəfdə sətir nömrələri " +"görünəcəkdir." + +#. i18n: ectx: property (text), widget (QCheckBox, chkLineNumbers) +#: dialogs/bordersappearanceconfigwidget.ui:112 +#, kde-format +msgid "Show &line numbers" +msgstr "Sətir nömrələrini göstər" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowLineModification) +#: dialogs/bordersappearanceconfigwidget.ui:119 +#, kde-format +msgid "" +"If this option is checked, a small indicator for modified and saved lines is " +"shown on the left hand side." +msgstr "" +"Əgər bu seçim işarələnibsə sol tərəfdə dəyişdirilən və qeydlər edilən " +"sətirlər üçün kiçik bir bildiriş göstəriləcəkdir." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowLineModification) +#: dialogs/bordersappearanceconfigwidget.ui:122 +#, kde-format +msgid "Highlight changed and unsaved lines" +msgstr "Dəyişdirilmiş və saxlanılmamış sətirləri vurğulamaq" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/bordersappearanceconfigwidget.ui:145 +#, fuzzy, kde-format +#| msgid "Scrollbars" +msgid "Scrollbars:" +msgstr "Sürüşdürmə zolaqları" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMarks) +#: dialogs/bordersappearanceconfigwidget.ui:152 +#, kde-format +msgid "" +"

If this option is checked, every new view will show marks on the vertical " +"scrollbar.

These marks will show bookmarks, for instance.

" +msgstr "" +"

Bu seçim olunarsa hər yeni görünüşdə şaquli sürüşdürmə zolağında nişanlar " +"görünəcəkdir.

Məsələn, bu nişanlar əlfəcinləri göstərəcək.

" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarPreview) +#: dialogs/bordersappearanceconfigwidget.ui:162 +#, kde-format +msgid "" +"

If this option is checked, hovering over the vertical scrollbar will show " +"a preview of the text.

" +msgstr "" +"

Bu seçim işarələnibsə kursoru dik sürüşdürmə zolağının üzərində " +"saxladıqda mətnin önizləməsini göstərir.

" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarPreview) +#: dialogs/bordersappearanceconfigwidget.ui:165 +#, kde-format +msgid "Show preview when hovering over scrollbar" +msgstr "Sürüşdürmə zolağının üzərində dayandıqda önbaxış göstərilsin" + +#. i18n: ectx: property (text), widget (QLabel, lblShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:172 +#, kde-format +msgid "Scro&llbars visibility:" +msgstr "Sürüşdürmə zolağının görünüş sahəsi" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:183 dialogs/katedialogs.cpp:755 +#, kde-format +msgid "Always On" +msgstr "Həmişə görünür" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:188 +#, kde-format +msgid "Show When Needed" +msgstr "Lazım olanda görünür" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:193 +#, kde-format +msgid "Always Off" +msgstr "Heç vaxt görünmür" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/bordersappearanceconfigwidget.ui:217 +#, kde-format +msgid "Minimap:" +msgstr "Mini xəritə:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMiniMap) +#: dialogs/bordersappearanceconfigwidget.ui:224 +#, kde-format +msgid "" +"If this option is checked, every new view will show a mini map on the " +"vertical scrollbar." +msgstr "" +"Əgər bu seçim işarələnibsə, hər yeni görünüşdə dik sürüşdürmə zolağında " +"kiçik xəritə göstəriləcəkdir." + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMiniMap) +#: dialogs/bordersappearanceconfigwidget.ui:227 +#, kde-format +msgid "Show minimap" +msgstr "Mini xəritəni göstərin" + +#. i18n: ectx: property (text), widget (QLabel, labelMiniMapWidth) +#: dialogs/bordersappearanceconfigwidget.ui:250 +#, kde-format +msgid "Minim&ap width:" +msgstr "&Kiçik xəritənin eni" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMiniMapAll) +#: dialogs/bordersappearanceconfigwidget.ui:263 +#, kde-format +msgid "" +"If this option is checked, every new view will show a mini map of the whole " +"document on the vertical scrollbar." +msgstr "" +"Əgər bu seçim işarələnibsə, hər yeni görünüş dik sürüşdürmə zolağında bütün " +"sənədin kiçik xəritəsini göstərəcək." + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMiniMapAll) +#: dialogs/bordersappearanceconfigwidget.ui:266 +#, kde-format +msgid "Map the whole document" +msgstr "Bütün sənədin xəritəsi" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbSortBookmarksByCreation) +#: dialogs/bordersappearanceconfigwidget.ui:276 +#, kde-format +msgid "" +"Each new bookmark will be added to the bottom, independently from where it " +"is placed in the document." +msgstr "" +"Hər yeni əlfəcin sənədin daxilində haraya yerləşdirildiyindən asılı " +"olmayaraq səhifənin ən sonuna əlavə olunacaqdır." + +#. i18n: ectx: property (text), widget (QRadioButton, rbSortBookmarksByCreation) +#: dialogs/bordersappearanceconfigwidget.ui:279 +#, kde-format +msgid "By date created" +msgstr "Yaradılma tarixinə görə" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbSortBookmarksByPosition) +#: dialogs/bordersappearanceconfigwidget.ui:286 +#, kde-format +msgid "The bookmarks will be ordered by the line numbers they are placed at." +msgstr "Bu əlfəcinlər yarləşdikləri sətirlərin sıra nömrəsi ilə göstəriləcək." + +#. i18n: ectx: property (text), widget (QRadioButton, rbSortBookmarksByPosition) +#: dialogs/bordersappearanceconfigwidget.ui:289 +#, kde-format +msgid "By line number" +msgstr "Sətir nömrəsinə görə" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/bordersappearanceconfigwidget.ui:296 +#, kde-format +msgid "Sort bookmarks menu:" +msgstr "Əlfəcinlər menyusunu çeşidləyin:" + +#: dialogs/clipboardhistorydialog.cpp:264 +#, kde-format +msgid "Select text to paste." +msgstr "Yerləşdiriləcək mətni seç." + +#: dialogs/clipboardhistorydialog.cpp:296 +#, kde-format +msgid "No entries in clipboard history" +msgstr "Mübadilə tarixçəsi boşdur" + +#. i18n: ectx: property (title), widget (QGroupBox, gbGeneral) +#. i18n: ectx: property (title), widget (QGroupBox, gbViInputMode) +#: dialogs/completionconfigtab.ui:29 dialogs/katedialogs.cpp:609 +#: dialogs/katedialogs.cpp:743 dialogs/katedialogs.cpp:1026 +#: vimode/config/configwidget.ui:29 +#, kde-format +msgid "General" +msgstr "Əsas" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoCompletionEnabled) +#: dialogs/completionconfigtab.ui:35 +#, kde-format +msgid "Enable &auto completion" +msgstr "&Avtotamamlamanı aktiv et" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoSelectFirstEntry) +#: dialogs/completionconfigtab.ui:42 +#, kde-format +msgid "Auto select &first completion entry" +msgstr "&İlk girişin avtomatik seçimi başa çatdı" + +#. i18n: ectx: property (text), widget (QCheckBox, chkTabCompletion) +#: dialogs/completionconfigtab.ui:49 +#, kde-format +msgid "Cycle through the list of completions using Tab / Shift+Tab" +msgstr "Tab/Shift düymələri ilə tamamlamalar siyahısında seçin" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkEnterCompletion) +#: dialogs/completionconfigtab.ui:56 +#, kde-format +msgid "" +"Pressing enter will insert the text of selected completion item into the " +"editor. If disabled, Tab key or double-click can still be used to trigger " +"completion." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkEnterCompletion) +#: dialogs/completionconfigtab.ui:59 +#, fuzzy, kde-format +#| msgid "Use this to unindent a selected block of text." +msgid "Use Enter key to insert selected completion" +msgstr "Mətnin seçilmiş hissəsini bir addım sola sürüşdürür." + +#. i18n: ectx: property (title), widget (QGroupBox, gbWordCompletion) +#: dialogs/completionconfigtab.ui:69 +#, kde-format +msgid "A&uto word completion" +msgstr "A&vtomatik soz tamamlama" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/completionconfigtab.ui:83 +#, kde-format +msgid "Minimal word length to complete:" +msgstr "Tamamlanacaq sözün ən qısası:" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, removeTail) +#: dialogs/completionconfigtab.ui:111 +#, kde-format +msgid "Remove tail of a previous word when completion item chosen from a list" +msgstr "Siyahıdan təqdim olunan seçildikdə əvvəlki sözün sonluğunu çıxarın" + +#. i18n: ectx: property (text), widget (QCheckBox, removeTail) +#: dialogs/completionconfigtab.ui:114 +#, kde-format +msgid "Remove tail on complete" +msgstr "Başa çatdıqda sonluqları silin" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/completionconfigtab.ui:121 +#, kde-format +msgid "" +"Word completion provides suggestions based on the words found in the document" +msgstr "Söz tamamlama, sənəddə tapılmış sözlərə əsasən təklifləri təqdim edir" + +#. i18n: ectx: property (title), widget (QGroupBox, gbKeywordCompletion) +#: dialogs/completionconfigtab.ui:134 +#, kde-format +msgid "&Keyword completion" +msgstr "&Açar sözlərin avto tamamlanması" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/completionconfigtab.ui:143 +#, kde-format +msgid "" +"Keyword completion provides suggestions based on the keywords which exist in " +"the document's language." +msgstr "" +"Açar sözlərin tatamlanması funksiyası sənədin dilindəki sözlərdən nümunələr " +"təqdim edir." + +#. i18n: ectx: property (title), widget (QGroupBox, gbShowDoc) +#: dialogs/completionconfigtab.ui:156 +#, kde-format +msgid "Documentation with completion" +msgstr "Avtomatik tamamlam ilə sənədləşmə" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/completionconfigtab.ui:165 +#, kde-format +msgid "" +"Show documentation beside completion box. If disabled, documentation can be " +"shown by pressing Alt key." +msgstr "" +"Sənədləşməni avtotamamlama qutusunun yanında göstərmək. Əgər söndürülərsə, " +"sənədləşmə Alt düyməsi başıldıqda göstərilə bilər." + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/editconfigwidget.ui:22 +#, kde-format +msgid "Word wrap:" +msgstr "Sətirdən sətirə keçmə:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkStaticWordWrap) +#: dialogs/editconfigwidget.ui:29 +#, kde-format +msgid "" +"

Automatically start a new line of text when the current line exceeds the " +"length specified by the Wrap words at: option.

This option does " +"not wrap existing lines of text - use the Apply Static Word Wrap " +"option in the Tools menu for that purpose.

If you want lines to " +"be visually wrapped instead, according to the width of the view, " +"enable Dynamic Word Wrap in the Appearance config page.

" +msgstr "" +"

Cari sətir Sətrə keç:seçimi ilə göstərilən uzunluğu aşdıqda " +"avtomatik olaraq yeni bir mətn sətrinə başlayın.

Bu seçim mövcud mətn " +"sətirlərini silmir - bu məqsəd üçün Alətlər menyusunda Sətrə Sabit " +"Keçişi tətbiq edin seçimini istifadə edin.

Görünüşün genişliyinə " +"uyğun olaraq, sətrlərə vizual olaraq keçilməsini istəsəniz," +"Görünüş konfiqurasiya səhifəsində Sətrə Dinamik Keçiş " +"funksiyasını aktiv edin.

" + +#. i18n: ectx: property (text), widget (QCheckBox, chkStaticWordWrap) +#: dialogs/editconfigwidget.ui:32 +#, kde-format +msgid "Wrap &words at a fixed column" +msgstr "Sabitlənmiş sütunda &sətirə keçmə" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowStaticWordWrapMarker) +#: dialogs/editconfigwidget.ui:39 +#, kde-format +msgid "" +"

If this option is checked, a vertical line will be drawn at the word wrap " +"column as defined in the Editing properties.

" +msgstr "" +"

Bu seçim işarələnibsə, Düzəliş bölməsinin " +"xüsusiyyətlərinə uyğun olaraq sətrə keçiş sütununda şaquli xətt " +"göstəriləcəkdir.

" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowStaticWordWrapMarker) +#: dialogs/editconfigwidget.ui:42 +#, kde-format +msgid "&Draw vertical line at the word wrap column" +msgstr "Sətirə keçmə sütununda şaquli xətt &çəkmək" + +#. i18n: ectx: property (text), widget (QLabel, lblWordWrap) +#: dialogs/editconfigwidget.ui:49 +#, kde-format +msgid "Wra&p words at:" +msgstr "Sətrə bu sütunda &keç:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbWordWrap) +#: dialogs/editconfigwidget.ui:59 +#, kde-format +msgid "" +"If the Word Wrap option is selected this entry determines the length (in " +"characters) at which the editor will automatically start a new line." +msgstr "" +"Əgər sətrə keç seçilmişsə, bu redaktorun avtomatik başladacağı yeni sətrin " +"uzunluğunu (işarələrlə) müəyyənləşdirir." + +#. i18n: ectx: property (text), widget (QLabel, lblInputMode) +#: dialogs/editconfigwidget.ui:91 +#, kde-format +msgid "Default input mode:" +msgstr "Əsas daxil etmə rejimi:" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/editconfigwidget.ui:120 +#, kde-format +msgid "Brackets:" +msgstr "Qoşa mötərizələr:" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoBrackets) +#: dialogs/editconfigwidget.ui:127 +#, kde-format +msgid "Automatically close brackets when opening bracket is typed" +msgstr "Açıq mötərizə yazıldıqda mötərizə avtomatik bağlansın" + +#. i18n: ectx: property (whatsThis), widget (QLabel, lbEncloseSelection) +#: dialogs/editconfigwidget.ui:140 +#, kde-format +msgid "" +"When some text is selected these chars will be added on both its sides in a " +"way \"Auto Bracket\" do" +msgstr "" +"Hər hansı bir mətn seçildikdə bu simvollar seçilmiş mətnin hər iki kənarına " +"\"Qoşa Mötərizə\" formasında əlavə ediləcək" + +#. i18n: ectx: property (text), widget (QLabel, lbEncloseSelection) +#: dialogs/editconfigwidget.ui:143 +#, kde-format +msgid "Enclosing characters:" +msgstr "Əhatələyən simvollar:" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/editconfigwidget.ui:166 +#, kde-format +msgid "Copy and paste:" +msgstr "Kopyala və Yerləşdir:" + +#. i18n: ectx: property (text), widget (QCheckBox, chkTextDragAndDrop) +#: dialogs/editconfigwidget.ui:173 +#, kde-format +msgid "Move selected text when dragged" +msgstr "Seçilmiş mətnin tutaraq yerini dəyişin" + +#. i18n: ectx: property (text), widget (QCheckBox, chkSmartCopyCut) +#: dialogs/editconfigwidget.ui:180 +#, kde-format +msgid "Copy/cut the current line if invoked without any text selected" +msgstr "Mətn seçimədən çağrılmışsa cari mətni kopyalamaq və yerləşdirmək" + +#. i18n: ectx: property (text), widget (QCheckBox, chkMousePasteAtCursorPosition) +#: dialogs/editconfigwidget.ui:187 +#, kde-format +msgid "Don't move the text cursor when pasting by mouse" +msgstr "Siçan ilə yerləşdirildiyində kursoru hərəkət etməsin" + +#. i18n: ectx: property (text), widget (QLabel, lblClipboardHistoryEntries) +#: dialogs/editconfigwidget.ui:194 +#, kde-format +msgid "Max Clipboard History Entries:" +msgstr "Ən çox mübadilə tarixçəsi girişləri:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbClipboardHistoryEntries) +#: dialogs/editconfigwidget.ui:204 +#, kde-format +msgid "This determines the number of entries to keep in the clipboard history" +msgstr "Bu mübadilə tarixçəsində saxlanılacaq girişlərin sayını müəyyən edir" + +#. i18n: ectx: property (text), widget (QLabel, lblBracketHelp) +#: dialogs/editconfigwidget.ui:226 +#, kde-format +msgid "" +"When you type these characters while text is selected, they will surround " +"the selected text instead of replacing it." +msgstr "" +"Mətn seçilərkən bu simvolları yazdığınız zaman, onların əvəzinə seçilmiş " +"mətn əhatə ediləcəkdir." + +#. i18n: ectx: property (text), widget (QCheckBox, chkAccessibility) +#: dialogs/editconfigwidget.ui:252 +#, kde-format +msgid "Enable accessibility notifications" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/editconfigwidget.ui:259 +#, kde-format +msgid "Accessibility:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblFiletype) +#: dialogs/filetypeconfigwidget.ui:14 +#, kde-format +msgid "&Filetype:" +msgstr "&Fayl növü:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbFiletypes) +#: dialogs/filetypeconfigwidget.ui:24 +#, kde-format +msgid "Select the filetype you want to change." +msgstr "Dəyişmək istədiyiniz fayl növünü seçin." + +#. i18n: ectx: property (whatsThis), widget (QPushButton, btnNew) +#: dialogs/filetypeconfigwidget.ui:31 +#, kde-format +msgid "Create a new file type." +msgstr "Yeni fayl növü yarat." + +#. i18n: ectx: property (text), widget (QPushButton, btnNew) +#: dialogs/filetypeconfigwidget.ui:34 +#, kde-format +msgid "&New" +msgstr "&Yeni" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, btnDelete) +#: dialogs/filetypeconfigwidget.ui:41 +#, kde-format +msgid "Delete the current file type." +msgstr "Cari fayl növünü sil." + +#. i18n: ectx: property (text), widget (QPushButton, btnDelete) +#: dialogs/filetypeconfigwidget.ui:44 syntax/katethemeconfig.cpp:1132 +#, kde-format +msgid "&Delete" +msgstr "&Sil" + +#. i18n: ectx: property (title), widget (QGroupBox, gbProperties) +#: dialogs/filetypeconfigwidget.ui:66 mode/katemodeconfigpage.cpp:272 +#, kde-format +msgid "Properties" +msgstr "Xüsusiyyətlər" + +#. i18n: ectx: property (text), widget (QLabel, lblName) +#: dialogs/filetypeconfigwidget.ui:72 +#, kde-format +msgid "&Name:" +msgstr "&Ad:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtName) +#: dialogs/filetypeconfigwidget.ui:82 +#, kde-format +msgid "" +"The name of the filetype will be the text of the corresponding menu item." +msgstr "Menyuda göstəriləcək fayl tiplərinin adı." + +#. i18n: ectx: property (text), widget (QLabel, lblSection) +#: dialogs/filetypeconfigwidget.ui:89 +#, kde-format +msgid "&Section:" +msgstr "&Bölmə:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtSection) +#: dialogs/filetypeconfigwidget.ui:99 +#, kde-format +msgid "The section name is used to organize the file types in menus." +msgstr "Fayl tiplərini menyuda qruplaşdırmaq üçün bölmənin adı." + +#. i18n: ectx: property (text), widget (QLabel, lblVariables) +#: dialogs/filetypeconfigwidget.ui:106 +#, kde-format +msgid "&Variables:" +msgstr "&Dəyişən:" + +#. i18n: ectx: property (whatsThis), widget (VariableLineEdit, edtVariables) +#: dialogs/filetypeconfigwidget.ui:116 +#, kde-format +msgid "" +"

This string allows to configure Kate's settings for the files selected by " +"this mimetype using Kate variables. Almost any configuration option can be " +"set, such as highlight, indent-mode, encoding, etc.

For a full list of " +"known variables, see the manual.

" +msgstr "" +"

Bu sətir Kate parametrlərini Kate dəyişənlərindən istifadə edərək bu MİME " +"növü tərəfindən seçilmiş fayllar üçün konfiqurasiya etməyə imkan verir. " +"Demək olar ki, hər hansı bir konfiqurasiya seçimi, məsələn, mətnin " +"işıqlanması, abzas boşlüğü, kodlaşdırma və s. təyin edilə bilər,

" + +#. i18n: ectx: property (text), widget (QLabel, lblHl) +#: dialogs/filetypeconfigwidget.ui:123 +#, kde-format +msgid "&Highlighting:" +msgstr "&İşıqlanma:" + +#. i18n: ectx: property (text), widget (QLabel, lblIndenter) +#: dialogs/filetypeconfigwidget.ui:136 +#, kde-format +msgid "&Indentation mode:" +msgstr "&Abzas boşluğu rejimi:" + +#. i18n: ectx: property (text), widget (QLabel, lblExtensions) +#: dialogs/filetypeconfigwidget.ui:149 +#, kde-format +msgid "File e&xtensions:" +msgstr "Fayl əla&vələri:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtFileExtensions) +#: dialogs/filetypeconfigwidget.ui:159 +#, kde-format +msgid "" +"The wildcards mask allows to select files by filename. A typical mask uses " +"an asterisk and the file extension, for example *.txt; *.text. " +"The string is a semicolon-separated list of masks." +msgstr "" +"Ümumi simvollar (məs.,– ‘*’, ‘?’ və s.) maskası, adına görə faylların " +"növlərini təyin etməyə imkan verir. Adətən bu maska ulduz işatəsi və fayl " +"əlavəsi istifadə edir, məs., *.txt; *.text. Bu simvollar " +"ardıcıllığı nöqtəli verğüllə ayrılan maskaların siyahısıdır." + +#. i18n: ectx: property (text), widget (QLabel, lblMimeTypes) +#: dialogs/filetypeconfigwidget.ui:166 +#, kde-format +msgid "MIME &types:" +msgstr "MİME &növləri:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtMimeTypes) +#: dialogs/filetypeconfigwidget.ui:181 +#, kde-format +msgid "" +"The mime type mask allows to select files by mimetype. The string is a " +"semicolon-separated list of mimetypes, for example text/plain; text/" +"english." +msgstr "" +"MİME növlərinə görə maska fayl növlərini MİME növünə görə təyin edir. Bu " +"simvollar ardıcıllığı nöqtəli verğüllə ayrılan MİME növləri siyahısıdır, " +"misal üçün, text/plain; text/english." + +#. i18n: ectx: property (whatsThis), widget (QToolButton, btnMimeTypes) +#: dialogs/filetypeconfigwidget.ui:188 +#, kde-format +msgid "Displays a wizard that helps you easily select mimetypes." +msgstr "Bələdçinin köməyi ilə MİME növlərini daha rahat seçə bilərsiniz." + +#. i18n: ectx: property (text), widget (QLabel, lblPriority) +#: dialogs/filetypeconfigwidget.ui:197 +#, kde-format +msgid "P&riority:" +msgstr "Ü&stünlük:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbPriority) +#: dialogs/filetypeconfigwidget.ui:207 +#, kde-format +msgid "" +"Sets priority for this file type. If more than one file type selects the " +"same file, the one with the highest priority will be used." +msgstr "" +"Bu fayl tipi üçün üstünlük seçin. Birdən çox fayl növü eyni faylı seçirsə, " +"ən yüksək üstünlüyü olanı istifadə ediləcəkdir." + +#. i18n: ectx: property (text), widget (QLabel, lblMode) +#: dialogs/indentationconfigwidget.ui:43 +#, kde-format +msgid "Default indentation mode:" +msgstr "Standart abzas boşluğu rejimi:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbMode) +#: dialogs/indentationconfigwidget.ui:53 +#, kde-format +msgid "" +"This is a list of available indentation modes. The specified indentation " +"mode will be used for all new documents. Be aware that it is also possible " +"to set the indentation mode with document variables, modes or a .kateconfig " +"file." +msgstr "" +"Bu mövcus abzas boşluqları rejimi siyahısıdır. Göstərilmi. abzas boşluqları " +"siyahısı bütün yeni sənədlərdə istifadə olunacaqdır. Həmçini abzas " +"boşluqları rejimini dəyişkən sənəd və .kateconfig faylının köməyi ilə qurmaq " +"mümkündür." + +#. i18n: ectx: property (title), widget (QGroupBox, gbIndentationMode) +#: dialogs/indentationconfigwidget.ui:75 +#, kde-format +msgid "Indent using" +msgstr "Abzas boşluqlarını istifadəsi" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbIndentWidth) +#: dialogs/indentationconfigwidget.ui:81 +#, kde-format +msgid "" +"The indentation width is the number of spaces which is used to indent a " +"line. If the option Insert spaces instead of tabulators in the " +"section Editing is disabled, a Tab character is inserted if " +"the indentation is divisible by the tab width." +msgstr "" +"Abzas boşluğunu eni, sətrdə istifadə olunan abzas boşluğu üçün istifadə " +"olunan boşluqların sayıdır. Düzəliş bölməsindəki tabulatorların " +"əvəzinə boşluqlar daxil edin seçimi deaktiv olsa, Tab işarəsi " +"qoyulacaq və abzas tabulyatorun enindən qısa olacaq." + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentWithSpaces) +#: dialogs/indentationconfigwidget.ui:97 +#, kde-format +msgid "&Spaces" +msgstr "&Boşluqlar" + +#. i18n: ectx: property (text), widget (QLabel, lblIndentWidth) +#: dialogs/indentationconfigwidget.ui:104 +#, kde-format +msgid "&Indentation width:" +msgstr "Ab&zasın eni:" + +#. i18n: ectx: property (text), widget (QLabel, lblTabWidth) +#: dialogs/indentationconfigwidget.ui:114 +#, kde-format +msgid "Tab wi&dth:" +msgstr "Tabulyasiyanın en&i:" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentWithTabs) +#: dialogs/indentationconfigwidget.ui:153 +#, kde-format +msgid "&Tabulators" +msgstr "&Tabulyasiyalar" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentMixed) +#: dialogs/indentationconfigwidget.ui:160 +#, kde-format +msgid "Tabulators &and Spaces" +msgstr "Tabulyasiyalar və Boşluqlar" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoDetectIndent) +#: dialogs/indentationconfigwidget.ui:167 +#, kde-format +msgid "Automatically detect file indentation" +msgstr "Fayl girintisinin avtomatik aşkarlanması" + +#. i18n: ectx: property (title), widget (QGroupBox, gbProperties) +#: dialogs/indentationconfigwidget.ui:177 +#, kde-format +msgid "Indentation Properties" +msgstr "Abzas boşluqlarının Xüsusiyyətləri" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkKeepExtraSpaces) +#: dialogs/indentationconfigwidget.ui:183 +#, kde-format +msgid "" +"If this option is disabled, changing the indentation level aligns a line to " +"a multiple of the width specified in Indentation width." +msgstr "" +"Əgər bu parametr söndürülübsə, abzas səviyyəsini dəyişdirmək sətri " +"Tabulyatorun eni parametrinə görə nizamlayır." + +#. i18n: ectx: property (text), widget (QCheckBox, chkKeepExtraSpaces) +#: dialogs/indentationconfigwidget.ui:186 +#, kde-format +msgid "&Keep extra spaces" +msgstr "Əlavə boşluqları &saxlayın" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkIndentPaste) +#: dialogs/indentationconfigwidget.ui:193 +#, kde-format +msgid "" +"If this option is selected, pasted code from the clipboard is indented. " +"Triggering the undo-action removes the indentation." +msgstr "" +"Əgər bu seçim edilibsə, yaddaş buferindən alınan kod abzasdan sonra qoyulur. " +"İmtina əməli isə bu abzası silir." + +#. i18n: ectx: property (text), widget (QCheckBox, chkIndentPaste) +#: dialogs/indentationconfigwidget.ui:196 +#, kde-format +msgid "Adjust indentation of code &pasted from the clipboard" +msgstr "Yaddaş buferindən &qoyulan kodun abzasını tənzimləyin" + +#. i18n: ectx: property (title), widget (QGroupBox, gbKeys) +#: dialogs/indentationconfigwidget.ui:206 +#, kde-format +msgid "Indentation Actions" +msgstr "Abzas boşluqları ilə iş" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackspaceUnindents) +#: dialogs/indentationconfigwidget.ui:212 +#, kde-format +msgid "" +"If this option is selected, the Backspace key decreases the " +"indentation level if the cursor is located in the leading blank space of a " +"line." +msgstr "" +"Əgər bu seçim edilibsə, Backspacedüyməsini vuran zaman kursor cari " +"sətrin əvvəlində yerləşdiyi halda həmin sətrin abzası bir addım kiçiləcək." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackspaceUnindents) +#: dialogs/indentationconfigwidget.ui:215 +#, kde-format +msgid "&Backspace key in leading blank space unindents" +msgstr "&Başdakı boşluqda Backspace düyməsi abzası kiçildir" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/indentationconfigwidget.ui:225 +#, kde-format +msgid "" +"\n" +"

Tab key action (if no selection exists) Tab " +"to align the current line in the current code block like in Emacs, make " +"Tab a shortcut to the action Format Indentation." +"\">More ...

" +msgstr "" +"\n" +"

Tab key action (if no selection exists) Tab " +"to align the current line in the current code block like in Emacs, make " +"Tab a shortcut to the action Format Indentation." +"\">More ...

" +msgstr "" +"\n" +"

tYSHAB#di zTgvju3_T>zch->+f$URgd-@>o#y>Lzrg69-cw6UrghjMRgy8x3jOoK0O|5K`=A!C(P8c1$`JeEP*6f)CR6FB;9|lDpK^pfd@(yG zIfBOMxGb;?dBroEhgAf>8%lWcdwW#FJu~bB=^E`X%y;BQ{WORyULJm%LCCyLDeJ;| zNX0lT8xXuF{GuL5&|^rGov1OWo^z+Rb5!EO1XAqefk90=Q4eypB>?X;cVcN;NQ<>! zkKxiO(uB~VxzcPk?7lYqO$~Ncd_DspfFew|A5jxm1Kj2{R0{$sI2hldL}PT)6tNLb z-FTPDAJnh>VIWdHzw@6pV;S2D73}yAgdaQ+YnT%HwPx#&YFuB$d>d;Gt0q%n5RICRvtN579mdZ_2oD-hOfq!;vS4*xD?B{r2BWt3cPe&;1f5j%E+#{UCV z(3TNrlC#a{a+ok7pV7?r%>K*e_{YlWP8zIjJk0R*HrgBxL^#hzixQ|ItLbrmfv`~p zY{M|FMva+-n^cq3FOeA*P)aqu%OjkRyexq^Ii~4U}VkZzs=kaJ)fDKjqgcqz?yG&i^3kusp?jmJ5pA`Ql zzpF5m|1g{oU*iS?yB=qkj0}jOXhLg$^1HgxwBCpPvnl~oPx$nqF&}a#AF}O6NEGd~ zbQ}2ulC7*ba09fQNZBOm8GW zqA0FBL4m+cblT;_nCflqqDKC@^y8gSZ0**RsKJwk zI$$GxA6R`=B;%LpMHIrgS?bWmHI25*_^CmK_A1&6P3h&``qqDQD2zhXc5 zw+DbF7OgOy1_8fUum+4am=Lxu<)UJbePaU!>NsV_+Bxu*^C2X&|;}%+-9#8Biq3TC|j*RpR^95A3X?k+w&1{_4$-A*~jtLk8$IH_f7$A_x3(Asupc`xzWgVQsk zPxHv#Zbl+_<&IaP+#}wnF#3yQ3b3m@?H_PgldG!ml6Mz9{j0!51PhfuD_ae`@hp8ko88;H@t7y=cEjDZ~WgM_T&`IV>@HTFs)q#$Qd7~ z&J|>~Q?~}DhdFn55Dkl+Gn`1^-N@^J=$4vEYfTvEizOsc#nD195?iT1c#$zKR#)+v zUN5L^*zYkhYpW3|#XVc8~KX!$TDHYw&d?s)_8QQ+a@MN*WAbfjv5)1<=2wFav8tl<(EuDV$a~ zYOk0b8I1l9Z|eZh>U}45aTz*E$R%QY5&2T=2?P@q|1Q(^N$#ee^mY#_{1=b@5eg%) zf7~je6d|P`9jYFbhgSLfmp!M>yhC{a#NEJITTpfECNuhldNi@Yxvr=JUWcy4yN-Eq zjzR^(DVy+1zE*G#^jQGhgG)i3}iVyLH&rJ5q^ph~T;7ZoBpI z>Ou>kgXd0sL`xczUE7OdWS52;fA9VPhNOCkifv}=Uk2NOnMkX%fuv1aJ{Qnt&pqNv zNvM4D#)$|*#uBMS8#rCqStYDxE zptFjN4E0K{F&L2rO@M#(wM(0mLJ}Z@)AEKQm%h0&ulPytH z@ffxAUfeF=Q_q|udUj@(S&N(f-faTTrh-O2P*m#1=E8Ond_GIVSH6v& zTw$kHz273N2v)a4N$~EFjJ9Q5y%rcEU{iP=(}6#x@A${ssgr=SV~K~?q^^QOhpv%d z`wXGNxaziHNS^>`0Vg6*lKkL)Uz#7LR)0)BXQK|T-$GNlCC_kLbs4;%@omIp@XP13 zMe#F#nOa1|S>iFIeMx9(LNhETB+4P3`B-x6%#xT!SVw6b z_nX!WmyZBLgTGnn?^;C?u={)?sgP@%ja#9On|w$B1k?ocm1a!KgPNn2G>X{?LJFvT z6*HpgE7Yowkv>hD$6k6Suk#02eO@wD$P1l0K7pG9Ih(-eXtmWed4e-oP9z^?*x3D| z6uP&K%0fS?i*uYe^qQVxum#~nFao$rcY7gfO2CpQz^8c@`Om{`r^}w4;YGkBZefe; zml#2A-?Y0D=i6WcJ~-Hqk-RADSA={IWn||+5{snrD?dEp7)E=9i_P`u^L|UbLA!=n zbO!skf3pE@3lHN8{ws}t}HSUsF`jfVpl2nF0t?XRxaS?V8jUT7?B4yoU3!g#)H zmm245~!%3Wm<2=#h@_4^U|iB_)fc`YGgK8*BiI=?MT* zyGLz*Sa27Ue&pc0D0y-f^_1}_Kv%ho5lU-;T@^)gk*o2zdgUZ+@Bfe%(KLt&JFU%1 z=)XTL|E6WGPlOj@>n(9JUG-TFX)JO@2O%*qWLNfX@q(D#Zq?--d7~-kP%y*#b;p48 zjV{pTS}U^JtlaiY+4`KBzX6KF^lQVXKmNpFmZ9(*N#;A;{3iwsqIzf^scv@3);h!@ z+wbOjl#UO zd_Y3QFs8&R4@0S?9mB96OA|br-6%kj*F<#xwb3UMv-aKzJ2iJ@;E7EqR@IbME(BWL zl++igeJ50u_kBdcgd(Ehee_)}3JO#RuOPY;V_+!<6EF|vXedLMx7qOJuSb5&jp`Ur zo$Y;utA*Qi05d?$zo!q8u|Y`9_Y&nUZ!llzCn*Kk0EW+apw4C!b*;|$58Pp?bk_w0 z-IdfLaW?qu%*s9Ki72~9xCdW8uw-KX9O~M-_#;Sz3>4F@?8bMK6ZamuOh5*2Z+nTy zNqhx*qEorwOydvdFdXkaa`rKlk^ixzJHVr6FZx$0^A$ZQLh#i zWi`?wrZn|yuAx*LMFw>-KML;!LyYAv9a$L23r_ZbF-4wPmr996p|t2|y$Z|{D`$a;j~ic-W7GmrBQ6He6%{9c zbI}HT4giAo5N{uw0)DCx7XYg90j4`7mpNUBbN55=ip!@_IpO)do1h$#xvC?&_{R!H zfM+E}NpGqNh@1XsWB`f;DAs=BaLDg-9-8{@$}d|VBi&*=kTli^ivNt4=@>&#YRLEG zf4|WtWrQ_DY1R&R3H$1|AlE6;BQpPQV(59=^S^-~F0@i8KAJOKuhSa8Z(k-m441YS zxbBR%ju*gw1GEHtiOtN&kMPKA39{J2rvT63=v(WcpZu7MUx0RZFE4hNRPY z&ktMezq5r-!orWq87i2CjBLQ2*=-p7TmG>@0Zjw9CFy|!wEn2kGE{p!unLEn0SXFR z0+DEbY49&3%QXog<#S1u3h$7P3<=2NRFF{n4cWdzURi86kBG9K+WjXe!hH(npD(gc zhMzWGb#NZdFp#g$jH#@Cx^~^kM`dPJ?7QOsgkVqFo>@-pm{VpMAi2p%L=S+Nt9+cW za}*ebm*lqzIkQ?yD}5nTXN2x0GmK<3unC9))$aXlaae@pgn_i|B!I9!cT!Q`Ut|@h zkKZTs5?%e`(WVrUfF4D5g#go{ugWUz!_2aakgpc>il;(MnyFV}We7Ih;@BYKAuF0{ zks}1fn&EQjncQUF9-x;q9+6CXcrT{i&Lcj3EZ@&76R4*gqHlV%^qz#6RxYS{t@pd< zWmf8omy}W)P>$?WDi7BQY>p5>?SC+9-rI{QuPx^sh%ku8y20#wc-~(s^HBWxTygs( zg%_(%;D^#D01XB9H9Uly2Jb@kwb#NJ#b=RbXTR}Eyo=enA8NdqVxS8`a>3ihe^+(Q zf6&pfa{8nKw(Fnv^^WzO9PsYtI$_ zJ`+6v*^)7P70|EQuOe&`h5MweD75a1QuC0)DgRFXXvO3oR)-+YIltH|2?M)t-bo*C zB`IJtxxf!hH(M3>?&`Nzbeup{*4RYn1%GwU6tViAxJBTU8#+%IZ;M{+R?}0`s@Svz z&@gg3TKzEu>Os@(ZvrHt(vU(!SthW(R~zNe%ZZ$e_Rz5E2NpXF_B(?ID_l_vpdaZO z^Y(ZcJ#xMHz&bL8inar#*8W2IP{loY&3*5E<~J?zeNBz zV9euHIuZY(IIcHhto;!~*uOQ#&!FQWaga|`M`ssbFb)Vy8hT-I-W{<~WD2p;!}UWS zIQEwb=FY0(SgJ%HXyPf4gMbqYe8%ttJct;fOh8T+W%F;5fMv&OyPx8@6d0<2!4-3k zq9vhgOAm;aAgjC^JB3rC&l!5=yyumj!a`t2?T}x|KP)o9wY%2w6S~@imtrbAqH>lM77#!Kvu1hld`?YK#_0Y)ARxdlm6}*dGMz3|H zOreC*B-Ln^!NKnbf44NUFTlpxp*198<)WX3AJxkA85`$F!I)L{D&F&BPpnRmNn>^k zEWlv)0-(>d!*{L2aq3G(!kX|LGsTzW`0cNvvDkpWj0~>seln4pz6t!WPXvA#eFKNU zY#%@ssdfizaKZ&qZ9k?syUr7j*Al*t`L6^SPJMOmeM(Fezq_-hG@ zU(x!RaEH!m@rbNyohl=f+cbG4=x(XEI93xku_wSbM7INo@3{KCwPy(b0vI zs(=l<=p85ma!wGb*g@QHO_YUt>1L&F49q;=uf=8+$4}wCiW1As2(_7_@3)i2tMxI1 zmx+C{oDDhdPwKaC7sh9sN!91x*JYCrU>seRhJEaRNNyevFL_kheGmB&TD;vnv>n?* z-=(c}lk?F*5NwsB*>C4AmK>^Ktpq@)f~Nr*t^|!}`l2&XSEU_eN5~k+xwp9Gc}y-e ztSQ>8@5k|Yd+NnZuC7k;X%>Xl8;VG07^0r)|478LQ%u#4G0$}Mo|(x*GD4Bn&<6q- z67t-zr>Rk6zVm40{8kq8-0vmaR+GlJ#`vk0LK1T%%MuwR!n@yE4pjzI7E60pyNrSR z7l%GR)sB(#JMOGITmf90@mLNur!CC*C5_)a#C5+ioa*`CE&bf{73}vLlx7W<~Hf_F_F^?*fZFFZ~Qa6q**>Tr0M``13I~ zvd>v`T}*TOJk#Vm>u{&%Qzuf`JZvLISid9!c0FG1S#1DxIVfP8syn0`3Z-25?dsYi zi%P4E>-0bUL`-STji&$Ve2j+B4A;eyO##UjO6?sId}es3wgMACOrs}CY4Ip}Y0p({$v#gEkEaI(KJg zSCQ1E#TQ4`)%n@gect-2EJ@s&!g4I+CFiSg%(k4wHbTdv*{^q5HGbWNa<=Ma=Vh8O z*2aTd6($wBx!FdAd5^=ZTZ-Bv^CTMRMmHM#%}@>5Q+LQLBMmoM$tZB5(T zLR2bHjPPb2S#u+CcgG{Bv5(3g$f~~PQ)wEIWzhQNBibY8FaRr4FbzQM!E5N0XjuySL_D6(F(~$s%f=m#hV_sh#-^K*e*F7Snqk^naYxYx27u5UXa@ zhK?d=6-LE@JMvXrq-t5_v`L?~Y)-%$Qu?PeaiLu+!%46D?B|!0E90i%dnrYW$_#W% zBY{9loB9@)!W*2VO#I)8*H7gfOg{=lcS@hu*MGa3-hk|;X-mcRqB zt+^A&v|z8cLbI=RTMQ=&)|Cj9`9`*`E7KDN7P(nG2D|s3Zc~qo7TxHXp#ri`br6#r z2RAFi7BXHAk3}*V(+HxjzJW?K)=}Ju%WW(7U3mplCY$hrsRFsNRGNDX%Fv_5gL+Ju z?n(U=`AU?_ad_jkLkQ(56kX2nK3ALLw|rk)`a&m}x~GCjssrXX9x_&55?4T|kVU{C zjI-$c!$Su40q-!9we1*%CC|iYlr)o!w?H(Ql;9tTEl$Qq4#?HOmZ^_6wveOXd_MkA z=&rx^*MEc?(xOc3Z!X1Xf}PAhB-@DhFRe`wi)A`nzth4IF;c1jypt2|Ga4l{Q$j2w zgNo%QKI>&kQ?RHiLu_d{p<@^^z^=|y4f=51D$8Hx2OXVffV_@!Zv+{bwj6IM**dF$~tX9)cqE;f`|9HL!f(_hR^&CjlSV1UBN6{ zvyMI?$CjKhm&Y^&{)N5LPy8M!0_6P_!DV{jzK0&*G28%?ut6B+!{P!JFV$`&f7>~ zG!q}=@!lz^K-8ttZUdLqv?GcY;rWR#TUIyCjt~(;kHR`}>ccZV2m@ME#lS60n7mj%Nkz&xw_{u3WgM$@htIO5N zJK>^|4+7d0vO=Joz4|Y{5r;BSq>|cX=J!z3@Dm3i8)Lr@jP-`;C4Y8VTzYHbPZ`5| z-*Z3bv&@Ne>Gak04ol442}=f*i>__-_xo(|!{9lZwdRQy z#DqNor6OL?;j18^#l8iM-owp!B)w;_GA7ZvM~cgIq3?TkH*l!obn8k+Yv?6ZE+=r| z_O$9Y0Ja1N$(`QA-p!p^YW8mip=!@3rK&k##uUZ&Sap(3_Z^ z^n%uQ@<@EV_8tk=oW1|o&!fe(rd0y((1J4dg&kB!lYLTz~s)h@0cc7{9@ltfGB}P#;1mrrQF3|$^CyCV8dis*B>ZaBDjsVAu z9RwJ_@SG+}16vB2@(_4EP9D0Q#d9lc@QKIVNYT_nn1v)L=~@Ra0ZkiMCHv3mgAus? zttoMCEx%6;(ZG|p%yS=s(+*|~z-`X?nJx5@MWa17!xobm{mv*~_kvGO(gcqpPLMwX z7*bw|V0W)m@X-yjoEUZw_K}aPkmzx67l2TiQy)f9zORJ=0usVJUDV{s>$jcd%C#^h zcE;SC>bR+;0x;dTh%aIw5y?u(!z3LGU8d8&h|{Du_3fwoXKI+pvr1{V{g_AGQ+-uZ ztICD6y=~f$-CQ_7P8E!ua1NYB7wmSuo(EM(*E6P(sVl26qq>3 zh$fDUr#?JkbCpbs-=QCefHTCe)++rtM(*M`jZfP@(PIkhCZKG9j!)MTKtw4)N|%Gb zr9@qG?FXCMz|@}dGvbkoYl$zKO%SeD&uV?=cbnA^_2RrtBC|tdaScVi?JbPB!#Ok|MLV_1`B*VTAb`BRzoLPh ziMtvRGSmLGqeSeA_hDO*fr6=4I;8dMkp${R&F7G*c0%;#S~&d)IsY9lJJ)Lb{vO%6 zbG~`kU1VFxKQsZOI*Z0uKND3D5z2(GLgEO$_PU(SHQDBeBA<~WyGb`eD~(smej3Ef zQDk;Ds)LjUYge1k4@E}!=>d}rZOVn;84PY)q< zj2U%geR&LB)?HgkCN;h5$=uq7-iA`6M>y2&+I#jV`Q8-}GEJzGze8y7au}73*q*qH z{PWiy%WDVOovIyLOx;(_yM~lG^>BfR}BlZ_T+8+vDOQB z;`m4&{`7ztvWegUeMe;T?AQXSs;Vzo9r7xSShl~px<)sTugG(vx%m9j z#Zn$jw?P2Y!%~qIE*sgAv+bytRPXG*UOU$ds_LOdK4Pj%$Sks~dud4bExL>4%;XoN zz6-C~3Zqn~yyQDWX~}L~I=GfJOCaP?BI>ZyaSPCfW~m;mFnj11kI7x82ceC86ym_C4BW>tgznLBgYFcMlh8oo!Tq*~NA++E;7dS%yE z0}OSA#L_Cw4|Q)`HhjgCowA@GEx8Uj8DALPM?MVvKw-*gV4_v6zv7eg1Zc^MDOi=U zot8i+E1ldXOR2Rf-5Rr4W4{#iNs z2;;9&wiD*Z!q90~H{Ysny(jtKzB#f>%`f|uUDCr$5jBLcg^$7J9|*qoVHP2~Eax6$ z)28uxtU}M?J25a(y(};VuVxSv`{6H-iKviVTv#TlSEA6~2^OUKoqzLWh+!-m1P2B* zCLEQn@4Ivken>$Kdu4h+8>2w(r<;$sChrf7z#mX4#vqV>Bhy5rB zG52fjRzB6ECeV&?uz7lKjh-pfG-V=Ls^{0UT+Qm#!y`o-7*hpsiV1 zNYOHFjqv!RKbPPS<@14Q25ShALFewAd4&+{0hZ^pO$GA&^-NE7enOAk9yLydYis(# zReD>S^Vd{1d2P-~Z3;68$W46tUOO)$8VZ`m*e-;p zm;A4kTHiPirj-JYkIm1CHyNGU+{U}fTS#d>blVi?unhd5ks3}oq-H5GsIl>csRv+} z#kkgiy>xpaOV7Nyw#Nfc>n=oM@J|$7jM9rfd03Ll3mj_r<8KXT1`fH-0x`~M=}?0t zIOO?(T*ID_HK}K%{qNO1q{K4KM?y8Z1Lg}3W@@7>^=~=8bE9cFhc^!2xv+}BWKvLH zB*tuLZ&Of9W4bwX$QT6kmc7rMm!@@kj#m~Fmh~V1O^-y01$W86^RXP2u zOpIrl&DncJoVXQOGI6z?0~;Wf1ppRq1!6IddjtQl)@ruLVznn@apW_LA?S?Nn$nArtDxO zHEDoQQ8Y|Z#v$^t<*J63q)<^wZrZWz1?d;W(CrMGaKdUN#lqLwitC~sJ7@<30RDF8 zXVS#Wa0EpxFwiI3tgCMh0Fcx2h1xK%aQ?cRZi((1*A==O4mmL_oxp-L@|ysVL}`4E zPwE>i*zH$Eo$O=vw;KaRGFI|LiGlOx3S=4Yc@bHkg0vjWkQEdUUnR14d@(C7qw@8Q zMG483qti%fkJ{3{f9z5$AYp4aPqw7(SlW!nY%+n88ON9N;f`%0*l%`PbiF5kzcohf z0kUrcSAk0Y$kt!_QmVXV4+@-L&?%bGAZi4j`!C<{0BM`{c-&=OnCaDCyr1$%YsH0e zRZy{I1{!t*f$65JERIPC5O58R0FKTNOF>#(pfxH=qjhd%s!(%$URkL^0B;u>qvp(S zSKwFia}5SlJwk!S&l;-T(w_!jn|zky?oSSXRGn?Akptb1O*C%&LzOFNv~yVBBwG$W zV?rMn=%!1wJ$dFE!rr`&{XkgKsKCV(1oywhU!7FR%>H zXk=HSagH|-mgalRp^-@Pj{fdG5ZrOxt#3Sv&`4ZbeTf0haQHESefxS^QffH(!;&t& z`$G?`9R=B%Ix3QJRuk~2^4}B-j-n4Bcpe&Q0kn#PZfJ^9Oti5hqX|Y=T#*P#V+OMY za$!O}CmF9MTG&gDgQl6D5U_+gS)b@+xK80P@2A|L?jZ2jE@_}vg!C;)8cwN#9%wC=pVR4LB&^SsZkc(LI|N)`teH97eboV-Q|U!R*D zzqEP2lvYyoDHVZi?9T%hq3Dt?9pmAib!JwcMD zSHYzWn=T1>cGDqE)MXPfmI0;lArDWxum(-cZN>A1N7b*pE@{hE-dT#PRElIgqBj$C zcS0`I&y4SpKZww!cx7*ZjR84tBT?)mBlo)NKlX`;J)0`w!{;&W=?NdbWqV34+{dUR zA}0pu9vqPqtJ4bw_m6m=CUA5y=YNWdDq;vXgXV_Lg&1+5g19AK=U_6APTc^ za&>ZaWiU;mg&%_DVA4_)S*MMZMd@m;JQ6Z*_4~H!v*ZdGX(ULS?neAqqNJeHM&R6l4l=0{W#y9d?31o>$Mb}4CzYO8&DLt zk)|nZQz%mzk5bV84Xrth%%(VsU=nxNtK+#8tifTW!XB`j9PIRi@}eun-AjL<-bvlM3(rD9M!& zAUbZ$$VTDep%UamTWSLwBHyn4nFrM)OSm)$wDO(XU^4zR2|Lm$hh4q?bW+D;vs@n% zrQ#s1Oq7Nm9|+jcgXpj@gkTJ?BZguWy5r#;R(_nW=lkbJbiaJsoHG)-#3zecAHJJ% zWEK4UDpb#@hpFo`0d=qYy&2D5UQIhy$Z;F1?Lymja0t7U&S$MLt3qD!8g*A<=#DZY z3$U!3rGSPjkEo)3p(pX^*kZuGV6CAw*Y!|ZpwB4niGZk2Tz$D4^n9AnZhW@5Y9R;G z$S27d%Rez%E2p{pXzDugaiD{pmgdF*W~F-@BNMIx>Rwdz?4sXA=?j+FOz!TQ+}n)k zNn^}Gvzp2$tzjWZ9EwS8^Q)CbC~TFc#Cy0qEX6UIUsO7n)E}<(P7etyj_MZI`lV(tmuqv{0eL7@HOh6oh{TT@$fE;Rs{j+4j>%q}v z-__1Tjo_7vphTB)@nBcaaHEi~q$Hb>C@!(`sJyxK=GVqElW!kkm!lxJ%wc|%9UIOD zlV!e^DM(7&vKv;>*E5`LjEcJp1cG^s!UEz7NzjHO4r^{rdpGQ5nQE}53o0TF^}L0I{vA$!{6^_k@-y&N=r+g@bcGE=&{*tG&83fv$v*?&A7Rqy-Q`hbfU{m2p z$%bc@q`4SCKPmer5(+Q=sO#xgp=wIDD{QHnGPZ7e{4cQ;ZS8M#TVK(p**l$Os8bcB zP&mNh4&5(fo>m`g^6#j5qD^7OF>)cvsXFj&G9moeWQ6O?r!8Tle4eTyP4Dj*$VLl-Vw!UBX<7aG|;F##}LBJiAU z3JbDI43-l^64bu^Y;|xIfH{-Lq%uZ0uAFS>za9KOjPb+}^Sc?wG-F;}K)Aa<1TyT& zM%p9!I8hXULeKQSYuoa`Hy}Eab}Yb;p=Pq4>7sl4ZD{q_hmE>n-0;~h))t`%(;3CI z8M|v5@FAVS8%mjuP3__cIU=byual+?g39V5|hVKb*P z$0SZ!am}{oneFPFKKPG+2|6gJM~Nyqudg4?_Pc(ry6d^V+qGti#E>S`0dVc+2Z;Io zdh5Wj9YRMdCDqORX?7te&6!3It&(VVOWL`b!HN<~Oh1pHq_uH?<)zXz3f=fb__x9+ z!2d5=!UzsFqh22cMgCgKRF_8*KUxrO+MdxtkqX>xnhcSqQ47zRj>e=-V2k1R$W`GL zX(CokAUWZrWB8QdI2*7sEp`ti>t>okM|){7pM-rgGw*-eK+>5y!}WGk`3`0ys&uCb z%14KKI%Y$Ki7!)vdE_x=TbXSk?y>*SNDmLAo<%7yn0irWG=t#Q1JgLOnikt{YVeO0 zpHM?p=YIRXGm1u~k0<>=#u~fbNCgl8js5aQ08{=$0$`w@MOT+n4cpni+MIh?hSqYZ zQG*#boxw1`Y_*IaMo$YYVZv0c<1AnV)Q!*{az7*Wsms5xm-DlWnS`z*&v!lU<3QVP zfA>yN;lqe*z(5i8jO6u#z9N3$U{O$sk7GLh$SO4dp0#x0yOrnqh))9p{oGFoXd*mP zf4t^$kJIVQ6cYyU+xCiXO?!GEiC2%E+wK{(NHmd=0^>}e?MwlkYP-F6d7yA0EMN0`1fbpDV* zVK_@IovV4XLKfjfa9V;40mT#Fe}EUIJ0ta*bwwzVz9SAu#VB!Pq>7scYYmv~(XY^g zkT4&KeWEA71(;AjRC6@)rzWJADzS!U+97G;inQyizT2hNfFogCo9+<$n@w^(b`m0m z5!R5NK7_dB*tYOh%5~4+QIZ_<@oZ;GV zGu?t7X+u?h62!Sz>Xs%T*ILOI$&kAC+Zw?X5yz66e={Srmwx|aO>f3~@)BcJ>WI)Z zv<;srozSn8MNI^;41!@Q;K*>BJv0^RQNerO!{daEjc1UUg!xsjmo^5yi~5#i*U=befM9F| zo#R*=-*m8OOPHI4=jP1xfKB7vH@2+7?fOaA$~IHFZ&Ux$z0)ihrmU$@!|=u>@5t&( zn!{=|_Jn`BI8HH%lOOw2yN_Jjo=WoxL*)LuW!T>-!t4;3q-auoMMcx+Z7jnw5L$;M zWmR)Z_d!K6>*3JWu99picgS)%bzTzrFHOWvk5dC3{8;+}n(gNZEs`IK-Z~XEp}d|s z7Z#w|io>J`5kXc5)u$%lq5)D&WSs6A3B4Jk?rX)4jv{ zu3)L-ualKmc|q&ymwUtK*scBau@J3m8Q?9iAdt@U@BktK3IXJr;(TwPNr`*P3LLGK z#0giP*Kk;WD5tX|N}LX^P( zxk5zJEP)m%*(j`yctZm~CX21`N1gc%U-TVtP0CKXzG*<^s!KWzY zC)H)Gx(OC1Q*@0*3TLneV&ATIY=AQ}fq)p1y%nd5)_t86G!u^R4)-`oTp7@UA<6}(o5{i?j<3eu~ra_Tm>u4$i76k&m!JRLN>S2J=SzS!=FlS<@&?x`=jQW0!u0e1u`OShud zH_j0_>QFrkgTX_e$Rfnpf6Aa_##(HeyLyA|08Y^mg0Z#_a=4(EXi10brgTf`shrWo z!nWpo4fnb0#$|>eC9ANlgy)Mu7;gjur&hDL<;lW9!FO%LG&8-SF3j7xbrD0Cr0*cZ zys(HNp)}IPEV4z_Io+>_0IOUT=_0aF#o;hudWTt;TOQZq6QLPeAplgpLH_#Cn^FY;RXTR>k8Au`|S*!?4V1vzU3_# z--)TpFhs|8afjb2g4Y*PX7yWxB<|^`tGr2do6a%8!RRp{q zvVMy+FiSN5E+~t8n7{cT$9TlM5v$p7E$v<-jPvCpx`eoL#$J(wu{P0p%nYD1)esik z=cu%F!Ds@xMJ=6s0DVH-$R zQD-g88!9q;ASb#~dEI!7)&36hr_QpK_=Yh|$>kC7*E0QRoUcsv&$7Yq`V-Sv%_Za| z?eC+}nGw(Q8@$tWOtAmgp0WxW={{R9F@Cqo*R?Ou1m)__&Tg3`W~A4hK-76&mSeu!WeE+Foj6`YME^6n1={YXYhI9gEO+nGAAiz&vLL0ZZYT#^;>rt3pBFYaJF>^Aknb z>HiE4DSFB(vcQyBEYSsE^v7gjK{Zlb&WY-?+;UQ-M+k^scpDd?x{J^vly**PSZhAh z#srPz96ih6xMu?9vOGbr-7Em>zhF`WJG35oCyKeLF);^c-s8;%l`8K1(tX#_aQjCK zG-%C<>Y(W2C7c5Q?_RfT?h#WMO|(sq-Le&PP#n$eMzWky9ail2Js{2!vT)M-7D;^i zArF%!?Xppwtbrb>HywduBd70J@`0TZJrVUb!ogWdL2b+m)E8z}YT#B4XYgk8v>`mpI zNOwy&*8L5))l6jZ6yVApW&i`r$Yq~_#gmZV#*K@!`N#JYK5OLLSdv;SNTvEdo!m|LU(c`dAOJFI>je zX#WOY%IRL>-YtQ8OD+6CV(}d}x%m|>zF$^-A-t2A7FcF*1(w*tL%aLwf37kbPW&iR zA++~XwpwQ*>U3S+a=c&Ob-xO1EEx#lNWBCe2yU!GGFwSrV0YXq9$p6Q#`3n>xwN7t z#AxgK=xcud7&oO3JSjQizzuL6Wl%$Auh+2A&iRJ*n6wSbOMW>y`0(5|2%SHZlL7y^ z9EUbacz%#N3 z_a#K)oRC@4-h}k5sc4V??+E=f%Ae8WAKR^%jCBg-j6#7vCDe?yxl8-Iz4sy{=uAI# z6hv6sxjxuy9Tc1o$MM%y3@SZCJZk*S_CoDkq+(TQ#6p(ZG9hz3oRrlRn+#P# zzIjI78ppkyg*G2?Da_p!$*kV;vB=Sknh|O#U+n9#QVPgsM2#aIKq|ghWQ~09E z4IvN9oJuArp}~q!OArc{#lYSQ3JtB)9Upv)yQiw%e?zooSnnNbn|TOK|rK4d~& z+uQ_sNfNGZQm^G1w( zda-klqSxO)CZ{#5tda}V=)m-a$h=`8*w8+6y>N@#%aK{>xNHU!}Hq^EjMRrhT zMFU2oyCvyY(ZCL!ig(@(m|`@s62ZM)#>+7CNpia1aW=ZAe%k>D2p>*MV5ZysU`gS* zZ&d2V=~}y{_Ta?nTZ0Q^dtMe~+KtyNfo{-fp_?}AKY!7sJoI^oUy=M=iv?igDe9n~ zHjD1$KO^3Mlw>r5Q#;}v^n-mCDL`BVdG@4{$oOk?t-8i=;1JbpiR};B=)Ja!D;Q>zfGV)&k zt06xWVC_Fcg~N(>h_eG~b$~?wY5l#iP}QAk<6H1`nq*IgQl1&yy>NC_BILoneLWp| zK#@j|&-5LO?2X0t*22|Ll2U5UqH&n6ekEr3q)wu8`gZ=-qUz`Fmy9xKNl- z2qfJ##W7^f0G{XxhwaAcM1@vBv#N+d37fWZ-2_CQF?6O+>Zycu-1n49$Yen63_=<;T@0w z6x{iUZ=F2CFGA29p)#7&AV<5=ExfVt@{G_5IVz%x#$eZWwzMvF&Gstm&OAAJI@Ky6 zU7ye1?*tY{p=zu&D=A}sWNyUKfEdwZ(Ea_v>LvBT}&W~$D|Kphgf$3s{RF#vz=t?kD}{sgR= zPpg;ke(V`<6U(<$`79Xn<3(46y=6uo$U z#=Z);=lfd1nHKV(nuCrNYD&RYIA5(gxd%Z2vRm+n^!R}r}W6XyT{swSvoJ{cKAR+ zmuLv(n41XShu+&o+hF; z90rRy0?a)mVNNUPWEIm~aMftrIBPq{RzW&8D-r0%_w7-h)RE{kw7^@Y#kb&(bc6R*8nu>Dk z&}(iV@tST-)oU}DS~cc$`H#2YPxkzv=H}HaNLM zK;eroEvgVU4^17BIUnI1+VVBi?*2a0ob0!SWM+Wm!e%>iAVT&uuisAPVhAW@VaM<5 z-xOi=2NPf1l_oyPXUi8{XDPEBA_X%Z^0d&DBtK3FJ@jPcs8l%uKL@8~lvr--M0Z@B zzh@8);`@{L10fpfFC4Jl78Xk!Zs?QEN(8W_R_O)yDY(jOChBJPBEsNV)%^cS7?V zwR7`Uu4X7IYdm;Aa2$V&`G5_Ml{B;v>ko;a$FN1dg@Fi zEWMdDvShYtflb2zn-FMn4)tPBigj18atT${iTUWMPm*D%5E9Vw@$MrrkIRM*MnEzq z9#3h9b%JQ4I6Oj8y9~372OH*~dSIhMY&){}0T5!_SsJf3@gR0Xr{qdvDwATT4c!mU zl6tUc{44%*-3UU&Z73%Gkenbfqv%XUXr{d%PF;(q0+gs z&hIK${VIs5CS+T#@F!a_YWw!f01;Esk>(8^JuZ!5i?S;*_Wjgxc3fzvcH~2bZhGFF zUsqG|3-?)#?BF72HYQ;5E>X-$(Ze$$Z-hBds`xH=%zJ~dxX8F0jAaI~U!?_H;>RCk z%4wh29oXZI!&H22m@5T51!db0?|rivMk;o@v)%lfKd>bT*2_llF}U^;E|2GLi1Sd**B^%zZ>B7A!ow11bL2uQt2*FSS4v53 z)H7O$nvPt6kFjd?2vlmNj%i{ONpROAw2^A?|yQECF( z%c(M{ZIQ$K@$KNBq87RRL|kmO1>Riw0WJgrY>|`3?zkjaE7}8N@vb`{Rokl&s)2(; zWI&?B|G1xZ%Sx)PHtWDeVy;G|sK0a)u~IWdmvaZm$EA0?IElDDq7Chk@{;UYRTzZ4 zDT4P(&q4r%p;gQ}3$v&^0>K6MoOmlui27Xcaq2t>s*)$&^1ueHH)$%4NAE?&Q#hK#7`hIl9{q%*Dce?>=3*Xd=F_0Er_r$z;iKqtO? zEv!MB4?NnNh^&C~u23xpc-Yk~kPk{;m5JGTSBhBt?z*lWx#{P{syCZzuqopt$lQY8 zP?-E8=S&7!b7$n#--_mQGz=;&y~~4U?N;ixEut zdGP|G+_}BWF6UC-&Vi>NN-Y*3d#Nz*Yg%!0WhV1$FpfeC0E;V~Pl6nBlLz{;eqx(1 z=WhjueZa`iq_t>GF!L~H#kqH~<|C4ytd@nM@{$JN<1H`mv$D0Z&@|8k|62`I+WWVi zR6uFiwI}ik`$bv7O{`+=!Bh#pBY1lB$jRth*c4-gryjo#%%w95+tM+C!h<-zB9|Eu zch}^I=r0VHFCi)|8~@w2%dTZCFg&tJmw7hp>^DOnbc93+`Wp7Qo$tQVrs1sfin})! z4P%PYl!dg_XS~KB)MW@*ZSHx^~W9t6b0@xu%&UoR505d zTqPvsUp0sAHF@ljG2G%%+H*P1Ls#Hnv&~8HnRYK03`(?LFh%84#tO;=(#q#0vW*m5 z&1>Ffqy2guw|zwPv0VIo#kP;m+NYXMN6cj?}tR8JdT__T5E3Uj|& zA2Ak}V%!_lVDe2m^y>0#=;;fJ+pu`3)RoS8pyd?ah*1&JiXG*O6;^Dpg3-&qw_~7* zKIr&BqCwNhZGh2S;*a~josnWl4{K}a){4v}l@QhZU1?H+<)C7hvLC|ZlxO^zX1 zlO6Q1sl>JwzJ2F8(lGtB&O##p*q;A%vi8@~Fcg^7i1hhdN%G`;t3a`C@|9n4!Sz3M zQI#JKk+ipS>u%-6RU}_opOG+;-nr_3cG&;rMpdQ5BtpCnQ5*F;yeHJWYejBOtPm-QmqdDs?7(G0|7XMrsZ9F7Q^iC>bY~MB1n4?a{%CrD8S5mRPcNnBB z-Y9pe>bDc3&)VHLhj&(t_h%pV)Bl1Yiks%OGh@^7BoGp@Ef`7+I8qj^xSuM>3l2ab z3>q-~CfLJ$HVbuV| zysb66-LMxlC#R=kG|1W8082o$zkqwpqH3||Etk<%oMAR^GfM~#x3s2OQp>nX?YN&p z4Xd-21>2DLQzD9*eF{WS1dQ>R@GC}cwe;?E9>4q&(ype8k?!?C-`fva!V2_?=~L)& z(e%2mi|5^hhR6+g2JFGGK;uGBuEF#}neA(HOkt=vAEW4?2hs|X;Spv@SCt6EaynjI zW$AZm+=4cysd(=r!kB4UP#D4_sI`A(Y?J2H;?vLboD_}JJTyp5FSjhUzpNs zzjsPcbeoBd=u-d!FMnsm@}=(Tvt|NAcyGMiGHTOecy>!>;8+x;1q=cM5KUfZ+|xI) z*rm}QZ}CMy!u9voOm8C41y^HzZ80NS0+gqj5ia_nnerLX6 zmT#<~8@Y`0?q7UB-@T5;E`in2#^-Cbt^_?gjw3Jzp--lQ>ZB!{iF|{?%-NfU^s6hW zWOa6wk;k`3J}Atc?_K&5fAs`?{+?e%V!A1?xjD5+#|a`X&**^39k{(WBwH}?^@>2U z_ST{%J80rslljQt64^7o{Ex%pDos)D##~v*)x;>%K3p0~i==l(Y6>HqN{8V6(6L(w zPYZXu5xcddF{Sp-&U3vCj-YxOu=A{og3zKay)JeGbB!21h$e)0KknkK!NWeVz=G)9 z2iKf*FgGSlN-WmPP_il-9dV>h{{c2p9rAnvBM?ZF`O|p343)FRg~IL5Jrm4S{B!0s zkjQC=HU~14MWsW3ZgQg65x^0S{R{N^MzLTkzM;An0A`#$jLrA;+1YI?b#FjDi-?rS zFR(jXTK`WG(s<|?$-{b>uMr-q*IQe$*hk=6MhA%A;&O5v7IdS=E;`t%@I=zY(nRLz z0c}A>Unvw{rla9?R(?=VVVB4bGfVHY8!qDcQOn!8w#FJ{4RxGJB+$;(B(~w5?l~DTc5W5#PbY#3B?mteQjRQOzToo(%r_nt=B$?S~&` zoAWbhQgEqe`GhDzzx#F^b+}2@QhnRUA{*|-wSy$#g%I)`4A%PNoijXM!gq_0a5gTr~ejyGKccAa%rBh& zUQYZDLC?OS?fSQSaBcxT8rsHIcvBTBX5Ed-40z1p(BE`loQgZs;bSr%Ok;ByCvKm{Ibv=Fjo0uCS? z1*43*poZCRO~D=qzJ-_YpCL4MY}S}Wnh4Fvo#_{CJ5?|i8mZ$|P26wyaia|ryRIJ% zP21RgE(#K_aI8>&P`^d3^1rPg$a=jIiocxTH;&eBX2+%gH*Nrc=p zXwZ*Ml9;qIz}J<}81_(hAT7<41YNX2ZVeAT@r96p{}?QZQ%^`hZuD}Baag5iINH#& zkqo<8I(s|m`q4H8XpycIr0Bxh(4fv!7u1hdM!mbimVVi0ls5K&zpdY*^rYYCCZT zQO0|dh+fMWfQSqeBG9N0T2hX@O9C0d?e1QLfe>gIYQRU1N(X@dpk${wftfi-Ep6*o z`uL6WlHikoTHculdB8x&Zcb*ojB=Eb%JQ8%BpxeK*25&Gjb!O#3U&&0h&T$<%UhF9 zo#krj^uTty=Cp#$GU|kqZZ^tW!i2$jRlN;WM--Xsbm3s-ww?50cA_#+PKt3k>S#CapCAm0*?*2c`RNIeXIIg> zY+qQ1=9VxF)IDDpQ(tLNduZ(r0aS|!Pc%K1$ok(e`5TF?-xw)&a#!a;Nr>~-K3dsQ z;TJ?&F`MI-P*&@$qzkxA*}L8cJai})4#LjVas*?80u29{b`vw>>u48Y>aH0jv^!NSFe~2txr{64jKG*mGIK$&RC;!hvqa|7YmHk@o04k~x zaO~0yk*?G%qZXCYpp%=ZsLZC6^e5NkAdgH%Tpd!SgozZ`YVH%xEeHt|^JicBmnY2` zgWaEh^vTY#5mACv8O-%T#9*n6FOPBDSmnBT{75GtcK!XyqsKI^WJXXmWNz`g zSq3j+V)IQQ`<*j2V*Fd-Jam~+9yYeyQ*w7fee*2Qr`5x>LM@urJSweBxER&Ie@&qcdl4}6mgpWy)N*+Q-#ZaN@;{VVQIh8H(i-Q2ChF))h3gt^v9 zt_UIeT0Jvh;t+Q1IVesiZMXq2z*bK=CfV}fq6ThqK&GJ%FsXpkc1CCIL?!l5mi9b2 z%LXpcbc~WmvI}|8n6>&H37XN#TFM8-=+KShDEmuT#ONfS1T?tB|qh@U{F5;7gT zj2c4!y5hbV44Dk1aZi6WGiwxDU^yc%M)7TJrCG7Uj;-NuOnqa%WQ=FS5M#}uZ1^o;~&RK8GX+=7l15?jtT?~)=HiZvJ za`QKn|KbgzUY33tiZOtr26mOTaU^!^DtB*cRpP1!*`dK0@+b+J9kLAj1ZKmm(BW3T ziaxBB55r)!ulU7vkHs^N?7#2C?cp^%_aZ0wG*tD~Yk_H2Vfk3?F(V}K%bZ`@XdS|6 zN^U@l8M3sPo!($82psPF9h=^4#`P;F;gPImen~wmz2UqOx?#I(rrR3YbKyZkTlws+ z9+xarrKx&xcp^3Hd>f7ci{rgu1}^rplWt&KsDS9bLl>tQemp%Okc~_IP2Hg zCez^Zk}uEMBb7Q_t?67I4%Qz+^G8}f@@7wbC3;>fo-=<64=ffz1UU%)P{-d>veauD z%0YneD&LBXShfMXYnd-PViucW6NMqS@?pZA3N2L7xMwl{QBq1<2zq?HWrRVeC&Lq4?TzfTKeb> z(iCEi1m3brN=yk!gBQJbUAi>iny{k?EH9UD>5=zQGXpsg%a z+mi|*Dh@F-mdCb)MXdU<9c5(2)0ReD?ZkOmTitvA0^H)26smdL=b>~lZhR(IM}3&+ z4Y=DGw4pN9E@~fdN(a&ui{T5QL^vA!P`$2a#YU012xpIgD>WKcnOCZ%lX)3Q37l6p zTMH2!$9y0?jN>#{WoQ70(txqFcf8*A^SG~)FB8Rq=!cXiWYVf3kf?vB_XX^l6^T!j zpSfFX1DOr4y&t&S8}EL-P?5m1fnpBAVvb<}Fzcy@;}a|JlR^(an~Yz=(@P2X$Zi&k z9LG3W&jkmkf6AlOT(ruBoN2q1YGzUn2cxoUVO2WctSUIf{`6%)j%Lq`?BKM@I_Q&~ zV1d|r(eGMq;@`siLImEoL0&B8OXN`s*~IQ}5f3VzOQ2`E zkxJM;IFw`&`{K%n9)++g43Z}RI7vI@7V*$dc#*P)TBg2LM1NVPiI$3VMdbZfqUN_| z&hjXD-Z}9xf5cORtPVLu!8*_FLYWTBR`1|nH0tqX;qbuK2RdxHEcVHa^U{$XuCsp44dmVJ0}j>va{y@o_!@MjB+$k^Su@ebLF^6CL;o9e zI(XhnMG<1Bop;>B)w0E*Ji~78fSZVuAh7?%lzuY^VaaTmqbC5iBq25C6;5m6Lbdpl ze=#1=0@RO-kJ*rO8k+r5IC0U>+HMzj7^KCHk7m&ySe?0fj`G@R9L^)H(j{D-&$KZ< zKtzt!vEYN$n{fhw$(wcULyS*AJy~PgH&L&{8Y1y?`Xxa=?eRp~#H4~Q87|ds((LWt za-9WVVumXz3f!0g3gQ4rW$b9kUr{p>r|s_R;GN3tLh-+C{k0g%v?K{Mu+@^<3aqaM z>y&hw$Z04JbL^|+7n!ef6D_kCj>O2ryxZC_tVoPwANRY$m{bvBc#c$`Or z)PJF|o)Ipcx4?Q_k4ta~XR%+M$<3z0FY=`q13fo+M(4!ht5Cz z%TYI)uej()uE(1?ePRHc$HgIq^-G{c*&QguJpVr63YZHgMwLut)i{z^w-vUdb}@^u zeYLl7TJb;Z6X}4GsP5MUpu2-yGxutz6j<>2yAHFS+C|nbor{T(AkuHCN?Cj_o;V2Yf&PR2>_GjR3gVMo6D5J zxRulJa53#4qLtP;d{JEmf=sozoA(%>cElUhR|R^O>cy_sY338-Gc_aP+QCIxo}gn~ z1+0J?>ACd9Ct~g}55t&3Kj;$%TuOy*#`l*Jal;|B;(=d>MM{ab@)o=Pwj@C;lsifM z_6lh3myw|znPa^d9EgOqV87GhSq@_H1B5QJgS`xo6?^~@NaR7BUi#I0rjJQ-_egW7 z9iS&X@6vizpv1-+SV9y^4u2#U@Vr{<-AE`s`6gCd)~lZ)m+DZkYUo^=$~VgdF!Q_Z zQa!aZV+qu<0GT2cbB4XC8)_tBhqxnz-qpPYCm}4!q96YtS!!{&nQvG)kC=3enMbbO zQK`;Oo!{NbODW2DT6ntk@153GQNv|uoo61#n z+Yuu}m!*In2@XNBsGTERnE=21m^vP-C+}pMawCs0c5R2Edy2V;WH$eO@r2BLmgky? zG+vxonS*L+ZZX*-sfZ-+Ok9yA=>L_=82Z7%B_<&kZpk5ue|znU4nQZkwJEHa3P;fe z9mIJ7B4Iu*_tBJF5r)$w`gYobIZf_Da9zE|-fmLwF*adcmO${%Pj7$x#js_BT)*+lFXImvaga`IPWSQpxxD9FKqEX={p+kN=Yg&b zaAcPGaYdlNI-Vb2Mp*zI5b82>&^w~2S`X#GGv~qxV9FmUhS~+!gUoZKH8#BUl0kK* zWQ?hm6ZQb2yLM`j@{Owl!UW;`h`dPz$Adeh_B$!^@D{02B2dZ_o3crkPh-SHlo#+5 z54txEz9Jm!YsP!$Lf$1?%wu@B!_yR-YERV)th3N7 zY?|r)HBkwHxItV+=0dQ=q%qde$GjlSh`^Hh=htT@ zq=d9L1rO}VucFjMUIXm)aCa6WfoF2yl=KT2z6HgPOgzMuVhA{20K{IA6)a`5{SmWm zq{E|Jaoidf0#;ViqDLQ2FPZ*|&Q*!V4(?<0$|V2@>=8LMpg{m(enW=C9#p>te(s9? zsL?tb$AwW3_=#xt*$*VCV~CcV$NyB*i-l(T_x#zP&PUzJ2jwKEmZG$k7NddADGN>NBF^jX0Z_Oq!jBi$kV^NK_cCiT479WZMRMN;AWR0! z_WI^S4gJn_OF_-Ich0ZckAChJS|@PM?-&`?5!7}_WD5istzFl12#BH&pzpH)Y7~*Bz(y`dwT#{1_V^vu`wS!VWw02N3U$~C z>vXBn&r`{XQ@Q~a#WmisNWHe@?p)VT-8;Ax0?P($=Z6q;I=(=ZO^2at#!0v6c+-0% zXCXmWkG{{8>*@K4@U(-|VlO2O>$ zsaJ|dXm-}-NP*66dRnlMfYMP)&Z)?#@4M@9>Yb{#ht6)GPw}and6=lDlI`%C>s9bZ zm*iUgv;UZ(S1x?%b@ z0^~+v)V@gka)iGt1(1o!Ky{jTLcHZjcZ`7AnJu z6acOQhJe1R3bp9F%eG2YLpOw_Rx(MlTYrC3^ZQ+puZtC>obxs^63&)PrkEt19A%4) zYFihxQaOW=&4_s=3q)&p-S(L8A4a$g;Tid=`H>asn7IoCP$Z{*y?UuezlZ*bcRa1t zyug?)HF5La$Xllo>q|VFEQbRv0>|{VcQnYXOD0P54H5uX`oFegI@jzVgUpC51HDv7 z_8gvzR0FmG%>=ggdUKkG4j4A|c}BHLhe@4oiGy_DNe8AMMvR`kf@4?IlBfP+lE^*N z3w0C0sd)AtB8|-WBZu@s{%oP2ik9#Nh%JtqA)VZBE!52gyjPo#-C=e1JT^@-A*@G( zZql~Tyjh_nfGp8p3zR(ohc@{AUPm5zIzQ&O`yj(!lILAcig3^L+)(4~<@Am*%`*oj z{%fz?x4<0;Ggr-*Dmra_9F;DXK9%v6)RWTY06jm!UrbM&R#1navTn__f6l_-t;`Xa zc4j$P_wNWjUSiwtcgCW7HcGWMu3W`UG$o4iI0%bFKm^XuLs<8uT|Fqf?^o@^{$ID@ z6=ih){nZ}#GC}S*7FCwZKeB)^gSf%F7E1GHFtap{$;GKv^RM@=;94J;nnkFF}nfD3(iV$i`>N( z^6?qOXQ-F|YEw*iLznfSxIdPIhFucYT+L_Y7F805Ij11F1LUpzq|joBtpZA&I%TW{ zKyzB*Ng!)m0dV+|Ffxq{VZ$VoNDQN)#*o(ghu}I{sx52}=3a(W0lU^{jP`A@!cS;Y z@*Qw!JSB4sV>lRY!gUqD`>&L9GKWU+2O#rtpnIoUMP5%z*qvI!DSsP;eKlW3lj1GN z@A?Kj>5@V6jGaKD2aYGB6ShRr1jJ{dfz3BBZV;G+d^4Mg9yS}ku(zdAF^wD0tpy~K zdu1F*dBAzV+x!_UrdU8-+%DF#R(2GA<(G@VmIMZ^dZ!b2rN`Y_#Wjy=f33M5ZdD0Q zqv*H>mHXu(q(g^hzENLt9~BEqk~9PGwdtX$;3c44Qe##qe%R)NIiB z=!eep!0$aQ^;y^2Wf$MOWEx)a{@%PbmYQc&^P4W(0SkF}FlQ|y9?lf$ysNbcF*ib~ zyMM`6^?qxP652320kBSQneogY(jy0hH#XO0GNa2 zpQB19Ma}x2r4FbFH@OsVvfr zaWdKW4+YCf%I6W&g4VAr{SQ%>f!D={<+ z&G+T%E&b)IOe|oD%Zg8Q2SZs$)NV#jCBzF~9AO=5Iycy6zTvV@DS&iPfXUmF_~Kya z-Hw!+nIv@D!y`0p?NW<2DpXYHi>V=U$4)cC*c%zbk$RYvH$>{$6v(VdB?Hw49flN)<8Qh(s+wdK5RT!59U_%E1?4~|uEz@uF z){PC*BDq?4D3?3cBiy>iXCL(pRPTSkBSqgs-v;l2w}FTcJ#TjR==w_A-bha$Yjvh( z#?HS2x&zSpm(Hl|NJk1fJqIG!yA1P}NxeFk%ZkD=f-(m~r&X%pG=c#Pr!jH0B$Qob zt==lTqEhQyt@IO=;O3VKrqMH`enl+$S+|o8{ubK}Cni>}W9mLC!Xln{6B7AOsn|&k zGHbi}yhflXKirJ$MPIp4niH2@fKFjo;FM7w$y4(TKxnDRa(slrKV_IXRd9Y-tJn9! zj93P=0CPs);PxEy0!-5m4nry0a+*8(=wtS!_(MdI`+^m4xO$%}ed1xMi4RU%NfajB zaj(3miRPPsdn^0?|Ja5w-ky0YjeEkG+MvnVSO zIh#z1RiE}(I{vdd0te(p@W&c24OdPKWwT#HE9B4Q42Dur#gTl8R+hDWG4VPC`g=81 z{IX``F38quVW?2~0>{7u_zZOaHFHy$Hc`*8wgXqZIgJDQ94oO#Zw_o9P;jmX=FI;$ z<;O=WdeBhfrEkk*vkgCvYV7NG^+?&KOJ0s?vP=XE`yU6*+@yI{#|vj{x~qYcqTP$W z$5E>P0!f6TbbDjN$sI$f(y>py9MT6bP=Vocj-#K4;-z%>#fnsS+`D5wS^OXKPLh0H z)^g!4c-cyW8c2^_zI~b3k%P|geeZ|0q659=4kL`f_INy)Rx%w1q~bU2AB#0pOJ^?s z#4Jtx?=nWkIhNe&D!~>B=z!!FK<8}ui`oJERf}zx$>3Pc?Neen+myLhhsA}o9SG^& zi01J1BxQ}qxV3c=+l}^C;N;zGd$$ODqapk^#8rYAD`;1g_vCAH!6VD!r(h9@GEu-3 zO8rdaEd6_2GX99f;svFpekl#hkJ~sV`&UA&7@DWHw&3aXMJYregwh8X_#qNy8;oIZdP$kL4V%Fs+&wfl>SvhU@I4CFu4N_Q_0MBV z4pAm9^tl_DH$)R^6=b6C|5XZi8pu5Aldpekq4JRTqr_z^Au?8I%TFJPCL?LQF4?D6 zbj0sf-Z^v1ltGE^>yp+U@lo@Px-JG1RZsl<6FK(fO$F3lTC=cD%76;xdy(CBxlNW$-#MY`WPa9F;R|N}wWuEVo zQB+mXrtDLJU86uVGQ4URk@ zU7zkD6SDYjHMjPgd&YEiXc>{Iix^jhgAEZJRlb?XSE2xK2RQaD=&=I?C=#lkBtP`@ z0PC47L9`|;v;9D-G6d2vZ?q`BoE_&GDv?~$>FwTo-|*Z2_IQf-XXMeSyG{RG0Rdh~ zYasO|co8x#x0Jv5({J-=wnL`D1A2Bp1}!O3-aQy90dgo5Z!cXR9VM(x0$j>-zoMP}4Bn0rFYZvF1I)c=Y=;d6YsQ0lgQc6F+`;LbhVRFD`O2 z%ptFd+2G`L2pGsWuy|S|exol!qp{zV!N_+W`a$H6%yqWitdQcIBn%*K5mjPwtp(_e z!!R8J&g;E%!vf+%zjG-pILYJ)rTO|;F{xXO*6^cCk^DqGic&PZ_=?r(S(B=D$| zGv{x;M0YUX;N_hahe&T1;Z`zqKK}6q$^(srNVUO%s4JFRqMvyV3$noGMW-qgwB3#f z!-Z*2^9uF==tp1-xzsnAdcT@|^0t+*DElMIykwq_mLBS&MzcPU7J`hj1Fh818k%NB zVQEv9!)7qR9d*3@$P;WZ8SKKXJ0Sr@5VZFq*}ig4p&4c50~JD6OL`ZWW8TdFbsuZBai< z9#KlHD~4X*mq@+&V-JF?ic}*pY-k6i_ zUL6@}`|Gg%V#AGa8VFzTb@~i4mNYh+pKWmGkD=i}8mJ3>$eR>OVIG$6I%iAISw%4k z6fQ3zYP!6kVO8PnpPvH*qLKFrkqOqIMxEJ;NWCB&M-6cc zxtTXHOYoZOb{GwMCOpFm5`qzrQp?uc<2qIEFM7El*D8moQ;lKF*Yn8yU`9q;m}^rs z1iCM)J&wY?-IQiLv$4I3ZhY6IrdU+gRx^0n@Np7Hpr6s)9bN6Vc%xWt^_uwS4-U6DYq6sfe)Z&+2*67Yoz#ex=OZ-~{5$ zJ}hiG!Mgr`ispo zXLQhJ2;H*Z;8O6`= zl#*OTn>0phw2<+69TJCVs4ONtfYe>@S%l*x)cy zMi4QgBsiEWcK_c)eU{f1&zyxQTtOm~v^gAt^sg3vxf&Xl1BhCM(S+;6)ZZy6y>Z!ry+SZXokH%6|Ju@bw#L<)`IceDwMj%p8MD7Uhl|K8Nv)JvWe2*^n@kmeD z37vM)5OMsTp>vuBs;&m(0v&lTc7;1U08?N!9RHUa&k?h0&^%(JkDc9HQ^ z1&;!GRa(bAIH*2x+B;6)udcEs8ceNBYX}slYss#~hEN}EX>Z7;_q?B?;YO@`8+5X4 z9KcPJ|yQgWoKkUg@%Np9d^)~M9=G|i8?~AwDUAq zSoW1fF`yq}OCNwV(2+Xr`dlfNB%_JWpC+gg%}qP24lb(dMKnFuvp*(2wMYKDBcCJJ zd6!=siB!O^avepOguPHb2YNZOj;c@s_?4%xDXn7m)!3N;1=1HA#QX_E)*bp`$`75%eA$Qdc?m3hYNqKNX#~GL zgsNo~@>Ty&N{4$kQJ0yVro|$%6X@7&Fc2jW4=PQY!I`G-*Xe0x*PPAS5Yl|J5n)RH}Woi8N_TAUunle9;@^wI5a)f{I3WWh@KjL zeFVY4E#nW0@hh(>kLR>K>4}AZ*ip-76xC%^ZmrU7ga??HplHOiU3ysWEelGjpCbqa zw>2ap;$ztPbbwQg)HbIVV9BY6z1kXa^xvcw{v33p9UoY*D}-$|q5T0_m7{njPq4oD zb%eN2>pxZ6D7uZ(a!)b;r_Awcl{{?fE||9-igk>Ts_nvopIQDyC!&J+HMRA40Xa+5 z6NXqg?Cd4`5*RI-CH1)j>BqA?^1$zwK8s`;n8cU(8i?Z5`X6L(&mLyJOJVw^EH{Wz z4V4HkCJ@GDy*NmKlys_i;K*>zZwfFWv=dM3)VUgl4fPacDdswkYz-qrgBmftXv-AO zPR8P~be5mJ6@JsHPUA~&fWbYm(bSY8y7SqoOU0kNf;_syv&87@9{d_wzrkudy3J_5 zC^`e| zdGE!T`5uQLz5LWk;o0bgeKb=tAj9*auH*^P<*j(|SEgeBX;rlFR*d`N)2=3E|24}B zno79k@Jf!06g1tG{->jRpiR6LmthbBUbYSXE8E`@rNf86n3j0LEk+MW&eyVgYpm3= z%Uez3AjO(yZ9ribclwg!-)P2(40C;8ITzWK`Gn#jhrsZ?)JQK{Ul_gsh`cLFggT<4VI?_EdAx4-z7RIw8=L1}OsKEQg%>?WHW3)#8ohqVI?{ znn*#X4qzfQh-ZUJlQZuu!1$e@NDfX`o4jd(Z0`D9plg4lg^xa}ZU;1D#n=?BjKXQC z;cgY_xJ5Dc^XA~Oj8UHx2W7_1g7Jquf+9GbHWsQ|i}xD~3dp0#x9YU;&b04NY3XHK z#udI$nv{hZBqSYDioh!R)TZR5_H=G!y#$!M8A$V1JSNpc%b);CbqPq-wEw}@|IkgN zsCMp4;E`^+!n~T$_$Ol}kDUw$(~HE4r`ll9F8h!kGU?7#AJpEfq8c-~mL==bnDTr5 zkna-LD{R$c(z=>255*gQ5!)SCvZ)g6e=%s}QEW_Z*oK7XS!RlM?GBiSWmROc8@Q=3 z(dpqHDf_;5ix}AY0xP>#vhTl%J@zHOW?hAk7rp@L!2g0SxDh)&mO>MtJ@0k~H;khJ zx<9QWKLxIh^y1jV=Yr|{10?OIRli?h1;&22uk3mv`J$OZsg9Qm3m4S}DNtsztB5zV z(Q9hIGl#JCKALcC_yE41rFOC;>!@JWNePi++4&DLK&Fn3<6tlNG3e!K8UMuelEmk* zLBGRq3u*5L1v&NOVAO;=Wbg@!e|6dW4iH3l7(?bPesQu={A->rE!fwXi3v71%uSxZwbv7d6iRjum>u%sf zxNsb5{b9CG2rv@9z`4(Khio%bhGUo*RsU;9Ma4+bKkPUg&Eat2R7LtNf#Aqa4T`tw za@H{sLGyTEqYeDc!q}++MFL6+TLoNAhXzYjJ?BOP4S$!;Ni#CtyuKQL2KANVKj*}J zckKh)wux<;yZ4!EX4o+cru?|w7ir~o)ruuvdh6aSz);loWv$Ao89J6_hSd`!cQJo_ z#LnRKp?JOk2VN?Gsj?`?L;9nLIo@=XwOJr z5hG)Q`B?l&k$TLvy{tCfZjt(1s)AsVDj$uuz3!DGM}4cX$^3Xt$y7eQU%0eMz1mBz z7^BKH<+-}Q`f_mmi$lUwNAC$tQgs!|DiNtmL!Aufr8I^ZauWWFtASL4+$kOsFy<%H81~(`i_l72TK>o%i|Xp2XY)1JTIjtd z-Y8x4vVkc-(`vo1_rX`lw_^|EXIiEr*OsMF84Tzu2FI!oz}hvHU+D&7zG$V*Z^Bv0 zG6;PD1mhx2xAvPIx;M4B6p**P#k+ztv8kJ|4AZ>UAu(Wod* z@tZ)jBa1Sk%0j%7x;5#hJTrsQcY*_@z@&mYaeSLs!x+02o`{8~HQgZ=fAcCgj!+pX zzkIa~9K3j2OJI|U3z{=41vKAyoIxRPNOSo9MtN@&J-h*xCJE@j1Im8D_a&`huo-Px zc(0Ta2i>wNo^^yFgrjLY^QGP z>AXIUvz0uI>A2Xhvw87$z+bc-T_IOG+1dSYz|CDQw8RXTu8j&SEiTXd@n(jj{2&iN zxVDhyd407lTH}c{P-&x#=MkqE-Efi2K;=HW`X5oMOaKqQbjF582{V?W{{wY3a(M|u z?dXYt@;+;%`Auno3Jhk^__OyYjf%;T^Jmen;`iP3f@QEkC3oK2O zkGPFQNlLGCcMc41i1>|rL#=B&tkWx5aWE1578X5g-AIrooswB}x_remTVxFR3!2Y2 zND;(HM}WUjk=@p1s=4=uV%UboL7>x^t6sfLpWo-HpcY~&De6H=&)e9_ung91mNAUY zE)$IZ5!tV)YB@!>0tNwHXTrp$Atgj-ziGCzs4aW&kwvxM=cioiJ#w=(@2wAGt?@qM zgswO(8#V3zE`s9jadtZDj|-TSJxcSZmFHM>GqZ|Aq3LCw_F*!n6pn^ z?*Mr)tK0kpec%=oDwErq=9IQ4-2~D(MMGKgd!bxUL7g`A)qIgWu}>jqeoyIwO0SgE z%l0-#dp4e1RJ3_CLX5HgtMi(&HTn%N8%>d__c|p<#j`PrA}T{fEtb?-_e1Crzu^)$ z=8n$GdGRWSyloVIgv2atzq&`UA5D`t$g8|{=fTu&A*zc9omX+Pa7(m#3q;1N8Qg=V z9-E`xjaZOI2Jpr#99@XOr-?*>%&e=lr2SO5mTsPkuGp+g__`?h@#jlZ+G)I5n!COZ zGLCI*qU)j3!(1o0$;F;>nt5+7WU|7rYCs^lD$LyV7sh2Yjv$aTx2GH}@7Ig37fw~x zRjjqq*$&I-d+5ZjxV~%-;Y4w#kEKm{W}m5`&wdBf#%K<6a;e9LoH_c;IBVWqD~pgc zqbH|kg!%EV6yxzYRBQjgw-O;#s-V3*~080dX%BqAd&b zFYJF|^;&u=At-+{3?s|#JTA;MPdm{=@xn~>i(}U%>EiZfypj^x1->E$^0m3$QOpZG z^GPSPT^?e#z}j?Fm17^Y@SPhSgRO^@n6+&n9{iOGXA;>B5wxK6?RU`eMSyf8Dy2RY zN=DPEOX(s_ojWlg<9;MVh?CeUOV#50lZ8ntRj?9HzqC&>o)gnCP5a|+)jOCq$N@GQ z`9{~m>R*Ol3u0X5YI|ukYTif+xnaAQT#hu90g&=owVhcE^-&*T}y+J`T(W1l3Z0=AS zM-iLiWPO;J37ISlwjc1ijdF9Q);GN*u_MnaUmLI4(xk*V-Remv3UzengbPvc*~xB# z9X8-TX=AH)-h*crQe7Sh+QaRyXso;vpt70SrSp`89|WoxkRXz@KzS%ZS|swVar~5< z&6n`a#}gic{Pk#4%k$%BO(%k?fn3{K!RnR$XrBlpWL%~$QB8X+8}A10)zAyKu|~-W z7%c~18GP}*Wb`3LDf4pz|Bqk2|H6_CB+wbJ*1*Hao<96^-K{QL1d&LuZCi&IfFRCH zFTx)*M|1Et@bH1n*cv<1Sliz`h6o&fKcrzStpBm1Cq_Lccc%{hmG2Pycqd<3nft}` zDf_jO()SoVQhP<*LXaMyWoC~dzp@{U758Lq6#C)BhC0LX#7XojH|GAIbJQVCj=}(B zJN;aF>)P)0f1pi3$4dQ>kQA;d-HNpmD4|9lBW{Ymo(@!@fo<1?wHyDd>`P3U5RwK! zhq#9yl^K+$vs^KFn^f~pUxH|f6ky=>MMAqvCKFIxuGhmFdx#K~mt5H5?(8I97f{DwM|<{K4~V zTEGMC%?nx$-BL@U6NiwpxdZVNOs+RXD^td8N~C#iigN}Oo`06$bsLz)?))6)$Ae3o zeY1m@T%*|5TgkvT+|m=NrfIhe2>b7ONSW?j3T7`zdd`95?U z!cnhY|8Zo@>&(im!?;&1x>%pWxmmF^0Sfu!C>aUjPkJ;mAkbiR$7=H@^>Ht;jiti6 zI+rPzU+LQ^Bdxe4v9>xtNt+zx+wbr)G5Yh=1`)$SmAoGTFZ?iJe2WlelpMSVE&y9g8N7l= zR^<|i2mPyi!66gdH+W%{!vk#NlOm7HK;~U~VncNFc7v-)9#1GFGvzxK`QVJw7WIG{ zS^p*C%rjfDIOIeeG(T>Qj40%!kGbGqkIP~1pm$}xvV^1o{=_dp@63YD{YrV2#?~=X z!@->7Hz;oc!`4-U&Czvz>o6=`4{&oB1`~f_{G+JFKuiL$pdk;EcplRYy*R8PJtgXX zFfGmi?l<`4?fvL`C`Eu%c{LGBqjqA?JCWKXMyPz%oVPSNnkuEkMyG^{FJhTG06Rd$ zzZdjfFK<+7djpX_h2tE1GTDrrdCkkH7-r_&X--l_9u7N-L?0*obtq6v^w?y$C$SoS zX=~MqGyq#+N}V*j@fCpm-skJ&RpZCmhNtRkMwzH@G(FtxH2+#c#BU4xnzsLr!?;W!(<7@XMAsjpd$mI? z<3+@q9J?S`=lq`22S&4SZZCh5yyp-lGsPvLA%zFI5hkD+(dkE@Jo^g>V@{)c>L|Cmf<8S~JO89T9Jb1&uSH=q?ZpWV7G|Y4s1>XDFoSC*!3IpYT}jY}b-F<&YUZKS zmuC{Baj*NyYH4H0Sj>c|eOu=QXGz7L!$eAz4kJKU8KIoXkdCfzx-wdsZ7wq_6>M-I+XxYs$@lL@-?4DS_}wzntTK zT=pwNLw(A(R;T{a__z#wG*#xNX(=q!yEuCLGpjgsaRlRUTa-Fny{-$X40l*_my(C) zuN@Z7idDe9b7D{5?*4&d)$d_q(3^$8+sxyC%jAwCI%wl!%J?r(@t0iCz-r%X>^GG3PAI=?=0V2A3bJieJpG475~d2}Fv(RiXL>lKSNIm3+0IXJCasjQ?}tle zF$TgkAX=?E8@pB|6!*At#o}b-x&A%6_~Jt^2#@qHFf!>9Gtd`@n$dXn-UzFM>t@l9 zewbQNq-=~sPaU-3L;Usa1IKyq)NsEYvME)Db~WBV96H;1a5QsuCX8avNXy8j)x1|R zV|a?$6}2z~+TdYyk$@UcDDJg|Nn+YQ2Iz@hE3hL4c=m$joI*MV;Z z^1i`nxM-9ai3V>&3HP6#Un_s+gMfJa++#U>FgRp< zC#6zG*8?Meqh47r#d1+Y<+nXGM;9nzPBl5Vf^J(2jiWe_OTG(b1kYV51Y70K?8Jw; z$M{$gO%v%Q583Xe+eHBzFp_r;PP#{=)traoxO%l8rRR73$8Sf{pZ(``O6Cb8z$qed zM^tV4XH|2cH=gBE{L3HxcRNS7D;YVk?^={=IpWFj{l>p!c5ZB+IDMdcpCTCVdO^~R z211*!Gp_vCQUI;VV>^2wr5a{x08l|#P6ya4ZWo{tyeFXgjk^dX%Bkyb_*T#6CsjJh33K;}KYQ;?WqHrVFD8_fC5_ zqAwk&&I7yXjiV2a-nup_P+I6RRJF3vpR| zEK!16+wz^8d^;VwZLYVVH9kAG*!m)jE4)Yyb5e4XA{7vv}m`pj8 zw9IWGW{)%^D;E}?`H%LE{NI{s&aH>ecs`t>sOZXN-G6Q~ME#%7=(uP)@&GbKE7Fi& zU-NNRwYga5Y1@5qnIjx|#Tc!s_GPHfN~p3Ry|r26AR(4vg32l2{JCIm<-IF94bRX9 zft5>-H~K_thAMgaZDZ7mW0JFvM9QBckut$MNdj3E@Z@o zYP*6deJiq&RZg!hc15XCqct8;g$l3-HN*IHukK{7f zHF#x{sfl8|SBTp+M!&twjuEWVHJT1ui6AcA!U8pNBAoZGw3YFSg}YLw06h4MZ{pLC zd|}Hz_U+3pEwf0tN+f!+`<}Y5N?&S~2^qADB|h%EePEY{4u23XK?e}j3#ot7BQjn!#UDK{S?MsUHKT}!qBcm!^00JQ zL43Z1vVJxI4V(w)25T*jsg$w|p&eO@IeW)$;eJP~py5&1(e1sYOd4_89683T53e0g zmFWSNjz9(rjgQV@oNElh5Ik)Jco%sd63Z6?^450 zP0QFd#$xME+>cS8=%p8|&JX=_y&1ZAzP}f;$_&>5O_&}A((t$9-1lyCy(&C&>KC$EV4?KWgnTETvO^CJ+9j=>IkC@{#TqkBX zG6OSbjMp1Y{fN|ZEnj${SF2Keeh|LdeBJGWW!ZX6(mm-$qb{>@npip|{x8}>y}+{7 ze>18j5wTCPL4ZwR3|ix>XevmQ(ksM-+Fon&gh?bl1RB?h9f=YaBF}fLylHy21{ML! z#du_yna>>bA_I)w)Fo0dW15Es)y}Z4)v;v2Es7Q0|F}8bh<=Jg4Tv58_4DgonWGsK z;ngv=4+TR_8w}nO=HVjJGGC;Rhzse>;A?FV!~Q!t zta*>wHag^mBQfU_RQY$`cXDOT!mD(gD0IjqPYe>+8G$A*Q%@I7XdFk6JKTLdVrMF=+~uIl{f@nvLa zDO&v#3x(hV3O=K-T0Yc);6d7?hl%pxE+&m|xm6gWu;@DL&5SZCztpU?yZit!t9x#wuY;rJ&mG7m>Y+rDUau+L^Y-D$$y zHieU+K~{lc{GNHSAR4;cU+%y_c=FVKf0E^+DYnm|3Z@GmiP1|QVp%4tt(peJy$MeY zQi8Bvv*!|YB7yd!QeeiY2x_9@t|iyVCo>#w6C>nB7Pa&v*QlK^j&{9TDkWnJE@itL zLKnH~gzrB{!i(}SIa$qn)fug#3FntzQ=B%uH>@#?4I1Pcxg#}Ts=k#k!HZ~mkXXd;6vb-3Zk8kP>3#2g!iaH@5DLP50)n@W zD}2|K+XYfu+hRP*Pi~_2eIN8IeX5a6cv8rv)xeRJ#UuyH zN`c5;1wM7roV&b2%hcnM*8Ks2SQYZdPwY&l!c$SA#rdc!DWRGePgz1{3ES)zqsuRj zv+26ZO>o@FImhGh54Nkg_oM3&O(8fLagJx-h>}0ABsrYFK(SHQ6pG4otUX8W9uPW(-n;I zxz)=XPQrgRM=dXAfe@SeyB!0Mv<~OTc}guAp6^-$mVsXTQH@ti)Ck6OCqS=}o*RTC zS@$G|WHNHqVo{6FdRc{yKDx21Ri^Pkx5~-+NI` zR~DxQP|QzXv0hy=^qBgYqI6@^anD01YwfsrezEcUcs64t81y~4Gr+H)`y`7}UwOT$ z1iT0bO&-upS-i764s#)S7fJ=xHcZg6J`LLXs#$D+ZYHDr4*LAsL*IyU3RI-k<2m>Y z!6P7>t1esA6MB2NR!{AiHHB$D*8;oz@hIBC;%o_)U!D2yf)P5i>`amufdx2CBppga zrKmH~V8Rd0iX*Z)rOwYR)>+yuLNIz^%7Yz&wTTWqz<#JuKLeix?-#xIp4RcBCa_ zM@C1b_9oohX|i$|u&h1&)VG)KvkQJ6Jp2O89!IB<=6noUfWf4=qG3)H*kiCe&Dtx& zvC$IpncH%ET83&L1-mERRI^>v?`L6_G1Ut6vlJ!1T$}`;aV-CrJ+;bh&uSlHT4+|K zLkI=WUn?@ii-*+VZNp(@Kn@AC;3hurG2o|~fBP{%b?}^s%l?=vX{tbyzrIjXEj+OV7oRg9_y(+R& z3FiDl_F*wh=w)h*6qI*9Z`1oLB6+oBnCo5LBpX*3CBgEOO3ZT%%iY_patsJ$1mxGv zv$|Pgf?RO6TYz9B^aYSZ{J52|RP6o)g_ZM5VVDy?6-~qp+1x7~Bq{7# z=p+f9OjykCyfT}K5j--{3WXP$kp-HXB5NWm@Wcu0T`j_`&Z7Ajl|_VbUJO-+nULxSCb&8F{c7Yr*s1yu#nylH_bv8VLWoAS$Vj;B_#JifgMzWZ!rX(jvDG1{?c@GWkg%W45g9dpvJ zisteqC;2MHz8JF>b7lV0pqOavK@1iD=}a~_Wmwt5RA~W;Mct~@3gTC5Jk_UsvSi)d z#(x>$lQOWR#p`+Y;#CcmAE0Te1W!860Vznfu8{R9ubkf|e?VzejwvmES}wU@FkYke z>UDYl`CYqZYt6)iSJ$GSqNj*A)+W_SCxvMp8J)fFcx!8}dlIq1o?Pun4+C``Erd>L z(3Bvsyk!kM6aMB3Kl;-!vUHj6`9T)o{-GWL!33n{jimdrjoS(d1xy)8u7Ti8>OTqn z(jm1@dG)5cM%>b=+?Bxo3wYQRN-E7;Ae&{}H>H0K%@E-u1Z^`Ab1TT@ zT(vD78}w;3jlAII5rBRR$_1wYnnH*XBd@?6JPKYLs^@U+Kj~Tgz~`cA?`2W2U+d|L zEROk2%JpxpV)3@35Gul<$bE23109nQu1sBrJ-P19j*8{YD*Vmqj@<)vQ0X_b#|M^T z&+pc*{$B9l7Q6eA+w~kPn&?FzO9L>88a}|}P>ctJVX6+W0BgS#S-2Js0ZHwKtw?n) z#K0YtV2Wy=zqJisf~Djh)f=7iO3u7EiT^pmZuUp6FQ7qfa-p~a2O*}7IdokCL5uY>~3YeJloN^DJiIj8zUE)1={S@3Qw8Q841dPcA2n?164r;wq;S$SL z?PR6nBsjs3^YT{x1I|e4K`BKZf@k@;2tJ;dodODdL`tnq*i5Y^Qm@=UWlJxPVM`{6 zZpEu9qJAo^a%Uu&YYXb*zxZ#h=fFmejPUCs{|^&2d3Xv}%N_xgVCBiX&b_(ptb*C@ zpsJ#dW_U7Mwb%S&cWBa%p42cY#Zae1jVFjDFo{pVy!Tt4_FQlznqHlsj03Gra}N4! zjTR!uEmr)AG3Vxx{R`^2S;&Q`z)GF*KuIbD9TD_)axA(=q_YA*sX4|hE$QvbiL=p zr&-FYWpb{ONN1pHEUnIvfAUOgVf^-5hgv?X~ z+=)p<@2|2d>GVApZPoBtBlQw_)cU4V#l`u{TVm46{+fvHRjK617mo;187>I8OUL1ifa1SlA0`p{~r!1=~1>2gK5XW z5HK8+g8m^ymvPq_&}auo>VMv_QnNt0Lrn-63FgQGl77*@<58F6yBXh(fA#pMfJbY# zF)zED?>-et%I~3vDtFs=s9I9!M%xpqOEhEHR;pU=lG!dC9NA}VAhS218loi6xigdR zu2oD^MFf#*p`at#q~J}iZl$heTALv$_w`4dnhJeDpoS+72iG*KDmLhiT}UKMT>)JL zZG%8HH>@;I(7AZt)MHwkf9t-(3H=n!@Tg~^Uy$2I8i>AJ;tvFK&%2DC1Gh9C>U^?o zG_Gkv^l-#}Ft`L~--U)J9&>5dtw=@MgTo6NClJEUz=z9HnR5DsOHv~DQ$*qZ){^f9 zkn+*yh?MPSx?5m3xlzY}M!|3A10rbjbDa^=Ud%K8Krp2j>R^(lkm9sltdgh;yx4QSPcFR^K#P_H**eK4x-QTfT+3R+%m>EHTd_B-|7WG=v2;YdhZZx} zUfA*~eH$Sts;~KFMq!ZUlT1%YNscqWd6-nk&|Cv~8Y{AI$&;xF8@~W-oEP)~XmBZQ z#WrXtVsyBRvcw17x1p1f{rh~NDnn-A_J}fiJN08B=_iaaY~VwwPW6D^pVqG96ic;N zfmGIXKT5jvw&Jc<)0CkX%jM01_5Q6VE8i7yU zyHmhJ*Uk~%KPKRsPWd~#qz31#$E6VhCdy)CnLmYl$N)I}@w#42j@+I`X|TXer?wSU zf5p-X?+*ULV#nDZ-~adue9!_C%U5H5+RQX>s!PMFbLSU3{3QnRTcaGbl)#I773sOh zm*FllE6bD5Jh5|_^*L6TQQ}pc+r9RMblbsU(Xd+$EOxxqv!L8bv+IsEMIW- zZx5<5jggKyDvOiH^LR^|acIIJUeuys4c21*#d7wF)c+9|%eigzE)Ta(6Z{Xa*7Q3_ zdXAVhFFlO8b{ZJqjxe?c@;pCw`6L zb+o!;Wdp2xQ|WC&f{8`{lZ%@&GtV7N4k;FIRHfGydW#(sa%70cf)~3+@jQn{n}ZBj zq+1UYLkJI239_7~q-pB5H0u*sTJbO<3jm8n;YE=+#@rKU|L@~AuV@E<7FN?k-p)dF zaUz^TSiM`TrYe?SJ?i=!s+^6i1*J^jDD(P5O8+aXTkz-ovUI3|Mq5L?00CidzjAymg|@c_cc_wXg!rzYb>1`I7qQEN0Z z_MO@_?-1Y*xB)H+kaKzO7rtdEt1@_*%5JQJT37@*e#FGaS^eE{#u*6{fVPF~h4_Oz z*!fFY6&q(zxp(&V)g%y@D_;MQ*)$*IGe!O$*2Mzvi8!;;D~6pf?}P2tiyZn|4y~%0 zV%D@ShU=0<-6p2oQSWKl{@%aFQ^8WWeg>iOw*Z2(@U@mDDK}6*7G5nI95;&qt9Yrt zj^XuEOW_8kGy$3Os~UI$)4w9}LJO5Ao95Qf#5cZ1m4wrMsUT#~r^)wsnsd3kbH7>h zvV5)YLo3kl(o~}%OI$x_;vU_O)K7ACM7X3Pce9!5T2|M387c{d)O5!l4RE55g6wy=|ZSX+-EP%&EV7OuZV{fVRkOHU4bZpVQ?k?Wuj%ry%w zbqu6J8DB2&uSD!J*nu`Tf_)EQPg-rE?-2-|Kxxpb9#{y4IGam!)L_%J_SBP;BsX0e zV^oYXuDU?A=+_s}~YKu;?HpO0t zUn=jia~*48VUJclN;8XJtc*1PNZ8o_FmRNf64flTz5>UY zK+)BwZ|VS>)#Pkrld{+>;87NEs~s#;1nwd)@}VgM-+Z345ZO$o-E{x8l%U+fSW)@Q zyPL7$P$X1Cudxxz@ho3w*&^ED@4w>~#pi076`0-TFU5jM*EmXh#^OM8GOoa$y=l7; zC^B|~m*ae59@yzIqOgCp5X}~iWFD)0fUWQU-2^`@Gff00K@3hI|+r6jcR+xpp z4olo;+AL)yV+MbD&D@1Qx0>+X3mm^*LZEF~*ckmPep3naN$;II49Xv>c$s*AHs)sJ zw-&sZDPtC=pzc+tVUl|I{-t)&6M?)-J)9MGB2SL+3O=W4%GoW`+TdloZaY;Sj5LYy zkBK8HX;y$>7b6a#t=Dmn%89$qs|#ELycS5tt@Zo~R}{Z->) z_**gm4r$e$ca9Bd1=db1J-Nk8p$T0KSSuBF*TSIv*z&)G3EAC*E7-t;#-Tp8EdXG1 z#ADm(5(SmX3i2=n6gA19k0<3Csw=-~QH_n`wM=ha9<6xEG^blU*@h54Reu)?AiSH?I3Q1as-F)nsQ1~EcA!N+66P7i*Q#g4@Afp#+F z%!Er+CfP`UXAEc0XDb>C1$5(<$vtb1DuFo}(tXvN3cRKyiuJ|hU5~X3$gj>uy)0&T z<`$;k^pSnufTkK`tG~H>`9D&))0S6w5Bess%g>$)UbLB~8$HM!o!bX!{s`3c^Dnz^ zfUPzCW)zAXeHdd+p{ocNEUR9=CHK}FksLD{DyZoiv*hPb;O#{9I&z#`YCR(p~pq!f%WXnlrz%p2zbO6d5bUQ+7DUB5q{(GKf7 zchO%s0ZJ|<5 zif}}PG!bFXi1ZaV*y(=XKhre=e}@uO|BORmk9z=l0peZa>d~I`2t#%a`iVytGWt_X zCpxqOyZJ8z{ZN#m`HNI3dRB4KFz6ftbSs!*m@Kvb>Ja@!;S|3wZdy=PyFY zs;_gsoW#q)nLozF2dRg+77BdbR6hQOiU|I(@NRX;&Fh#mB)`)A))$vi1$s03$;Oo? zlMl4TXI=hLLZ+Z?F=AI}blfmczclYRr93eq=zFrWW&b_j)owd+yI3vE!-e4M&=|a| zJP$o?MWT;7{(ucalEKu-MZUmH$aE+E!I;QGD~m7P`qM-uUd&7D+O4#=ul=4u2oz5IEhAwgkJ3+| z*{t4ymV`t4Ii-AQZkgARI%nvPRoj5Lw5yO*2aA=^c`fG3Qn5EcPGR8Qty#v{^=O08 zL|j!Qk@Q0cw?CN{I;8ekTLmqGX=$78dCuV3BJ~f_L6jpR*XGLm;7mJTszjL@HJ!$J}twA)8l8hlj zG$iD6{P`K1x^3P9xL{8aogkGnv%p>oTPE=6n86cQq?3IUFLN&O!=y-|6(`AjGq@W1^mT9s$HG z{A@m4i{$wQH!`0_C#s*V?tx+Of5K$Kl2kci^#nC77us`O#A~SVU;D}?{>Z2w6 zKpVvtBp^i991*GThwEI^GIrk8X4lu)i=deXF$vLJ;#t&Xm>NIk*M#EQQo%wbLoVE& zpuR~rSiv!+_HTSe@rEo4hu^j6&|6xaZL8c&$)_Z5O^)mW0P6@EaU4;sBu9}LgszsT zz>F@zu&P?vfF;IMu8=lXa=}$yEtEro8vRY`<4DgA(?N>Ca@Tu32)wO|<|7bb{_e0m z*L&*UtEdXGhun&%6pD}ebzNAU_5C<%89_9$z7}Q{DD%yunQ~2${`-}L`!`ly{C*G; z*-RfRW9y!8e)1xZcEX21muYN%sd`ApD?WGv(m$N#E4Yz8d)5TJ=MWXr2?B(>- zveD&kY}{ER%}Flgc-3fi3p}EI(VSplsyJ+|H=?|We2iYU-_{8q=yckG>T+=h1+9JN zM4qo!_#T7d_Hs4+-*QV?mp(rv-0x64gF$IG<<%gxPhA%ci8 z=It5(esYhULG#TK_l6V9s&5#Gg%2J-Y3ofLQ9X)lxEAY~ZQ-bZc5=fQwd`tl1wn0D zf?>1Gm!=TyVjWF*Io&86Oui1(ajxua( zHZjy0-w;_*mrLHDP?8W7xScTPVbk3&7ltlWe& z#C|TrRTs{h%o=x7Bm@>$XkVjpuLq#*yvFIC~U--Ef3 zDVkYz9YVNuJ{X5G9G9b%+#N;3<#9XN?BQM45t>z)K+~8n+LdtaY89^kACV=t>Sp+A zs*v;ETib*)`%(=dp6zTWLET@Xeh1S8kKrZo+(Df`_?Cz1-WA<-4T}>_b5Rs((tx^upZZf9_w8_sgWNf|IzG-aSL+e58^~`5*wL{ z?6EH-{Op&1XA;?D^g@mip!m^MjZ151xQO`{5>tL{ZWZ&J%XQq=A7Cs;cde078(_fp ziik09oOC=`?ec)9{iJ6De={WS2Asmi{<~n!(Y@>(*9X?wjhJ~S@ORiaJan|RAXEoT zVzX9#t1MD*b5pb-9&r@CG=-9TQm;Z?pjuaWiG~aAc1g!}#lO@E!_D4Vic$!(!yF9! zVcWT=4z43+B8|9mQ%=LuklsQ?n;sv69c@`ol3%F|OnSd|qj|e$nYJsQ=fkXEo3l?a z&eEPtIOIm0lXzerWFudzLj`a}(()K3q}uH{{S5<0Pf{%YNWzZ<>4;6H9n1~O$U(K& z`cA)=Si>Jff(4%Zwtjmou``!0S)yE!9lr0?&i0zokK4fonlisNrC>Kw>{9hp{d5Yv1lFp#P*yNX}8ggeFYXE z{ieMwJ2i2(aIiSE6J~h$iYZUl1YUh%nx%UT`On9&_P>!$3?Fd3>3Rq8(WRS*f8MlM zUmzp60S}5)CuY~ppNKXl&6-;R z7I!ID`3@lxtFIf9#s1S1hF%b(2Ux-Yz@8f|X#t_^J~V%^;J|4Du3L$(OjUjJ5M}1M zAUqeO>9QPQ061_}~%=Dw~;WoyswbGsK(G2WH5J@L$ zTB+m*DM}I#%?>$@00kh!H_xNxpfd{ub|j6+Jf9>RRvUPDFiH> z`EVJ~a%JlS7bE3^5OI&|7aGXkMb7yQ3Mt!P3njI)baQj%;Ouv%PN*HLTIiNQN~Iq8 zc^iD_`rvYZUSDv%oaFGJ41EaI&Pcx?^9@Ub2(iR?;R}y-er;>XsnMgUpP}173^qI? zkuYaw7-Y%x^erWxCMsW}0RVsFd)HWQYpA)6@V=M6sg|-?a*q*8<2VK(>x5*a{{IWAl{^pC)cz^73Q9 z!J;BH(+2w&&>JTj=Zu6~iCI(PYh5@S72EY%(uX5kD=qcIs$%?h=P2e104<{V`bZJ7 z?pgQ3l!?cT#BKt|XPAE^QX^lk1g1I{c3@z|5r!!vA(@gpIoxr(rx$#z@rM< z@?Ri9UV=^)>3KC!VMWbA^76}1&M%cuN>j?pB%1PrYBh-~cFS+cGk&BZyg+A5e@Nu@ zz?p5EmKMWV4i33_pHpd~vgEpXa_8Q4g+#lD9!J~offtzD@yzxr%}ck^gUXL+ zg0=(~y!Oq9PiMCAmyFkVhsbQR$yZkK9LfJwT*ItrN(OS-)Lu^8+L2C?e*^$|S&vTF zPmT+n%_i#NfwXHOY}x_bdiJf8`=~SKvezbFUYi!Cy@=oY)Sj`D*O0#Pj|M=uVMjms z$KWJX-3)S&jnc-k+a%p~hGeE^CqoFU>inJ^Z=G7gXm>;1OFLHqTNee=f!-^hRzZRV zJY8kf*8jxt8S@UU9K+r;9fR_6l`eH@C)G`z%){?oz549G0ki%SkFlb((IuI$s%d9< zHacgvBr6P|+i0Supmv+dxjVacgpm>}vo&p7DM-tE1)6o^d>nN`uvnX0C;p-(%^aN+ zHt?c!kQkdMiRKTLn$H5LUWs9ru>OkAHjV(jVBV$z@TX^)A{}{0M?#kZkq@5i8Cr>ACt2!HvYu&smGAsHeB(YH z;v5Sc7%nI9MUSd6NcVJ6IQfLuf$B7qDgs_FychIb^%`jqss4||Y)AW80E&S0;#8kn zyJFA^&MrEJ1aVo4cR$DOHu)#yi_V&DW<^Wv_*~&~&}%h=(}Ba*FzL?}q|GZjO8-6F zga{;}@Mwd{uCOz3ln+EfY9$Ke;iY$_vgVR9fOhpCvnI4v&P;0Fxcys|)HnU#y+(0D z7VPu7+}~bQ}f;lt9X`?xnLz652z&JJncU(+A0={=$-z)I=cq zjl3bxvFhC|%`hB@IF7oHshDfn5NGVx|ah`C7(aFSo zK?@@;5IcZ({Ok2KRUs7##Qy9y3g}tt*%Rvn#!Qy_9#Zs}Ik(-%>)~DU5V;NrHYp85 zp$2yk1`9=x=8`yisYoj;%v|;s|7m^GS{|3)9YI!1`x74yQ@0>+WJ|wiXds}Pc)UWb zq}TsV8|=JYM+{D(^Z%_waE8N5BA)OApQmk+%BjHK;?r4NKvH#X5sCj| z#T|U2>>i7qQ;-Fgy~4+_mQqfvvJcyBLZa^BfSoJPF}~qqp{v*1i5uaoseYXBuQ#bU ztQZGllS%i2N>m(F3&N&MiFVs~IBT*+U^&ELFV4=yUg3h&*qj_Ei6lvoxC9UzVQN_7 zsoEOitlVmw=pYgjYHvw8TyW$}aH!Dzc;stk|7oHj#vJBOZReriV-4U-=)=+qq)+kz~Pac6Z1tR!71>hi za5Ypt5-Nu(+JHMJ&65ynMo}>6;t(#4BS7UXMx`HALpHf&ilDDomuxjO1-Eu7JJcMk zZEw8rXI(2bJEst)okx!`Eb;0TdQC>7wuz(^Ev2%^%vf^^+zTlDdZ&PzOxABeTIZG@ zO}+$TY4?-@cWg>t7Ihx@FI zgIrJ4fYCi}9ZGcei%z3nR;Kv6bHdW+{%LHX(EpXD1RrHHz;E`4&_iQ66GZTvBxWmga z?79~vpVtz?@iPElGCvhY&zM$75&ZEp3R4>aIbO1CUFHt>#_)_{qQo)L=K=F0BhpEJ zA>0I2d@&Ph=h~Pe9`h^9V9*Z0X@(l)%j85%ykp_IA^CnC(oRwwdKr!B4ZzX7^@G&b zbIA(1u9Q1i4JJbfMxO*+5>m;W1nFZyc~>(U-9}^;PA}kbQqZ;pQ=al?bA{mu6lGmi zHTgY2D}P{*cEIYe2VG3zq6yUb{lA&hi(lv>yw>2^&D??X;=?LGlt?&9HjX($t;CVV zxx4jSX-MJhgcZR^qYz|!X@#b#(PSw)cuT~CF*>;141*|{iRzO@zUEBN@@(+S>H;c= z`FZ)JU*tPm=xPbj02kPSV2xQBd24F3sPbR2!IkK;l@;BqKc_wX%Px;hiRS^rsMwub zqO&SG7A0fr?6x9#T5%u7|DB`EDUF3GlLEzXyG^1br@c`ZdG#M8mtUBzW>4!kU zKk~l-Za+z49$&VUh!&Qwc-_fqH96t(DZpCjAmcHNqX*H=2VhZqJ3{8DsHbR{_V@p= zV5QXyyN^Q$4fA0=f0IVTodu|f2D(k}nY6J|& zM8CpL?`V?Fq>DWt8f$;5u!KFZgK5ZsJrj6+Qe04N>YPr&SvWpeANY2e2)X!fs-_Zi zvw#WQ<61PugsnIHFNzniCB}^%7Mzug*mz=M394>+WsJp3oM1-~kwji>6b>IX0rR|+ zLy(wFcEYiAg~nNZ^Gl41Lx7q*6+<>ew_nlPCsPu|I6V3PMJMq(k&O-4#$su#guJc- zn>EGdPjI**7Odt{@P$qQ|e0Wvd;ca(yPRoS?MIlERpma3By)DM$zG(YH;XC6aT@CkY9DgLu;Xps;MIn zgFBqK-sb6iL^4N=9WOF>n!&oPOZHIel9Ks4S=xAZ?}wIy<)WOjr=#*>mUqIE`!(@S zVO=ISp(J0o;@JmW+73Pd0O}^I{?&f}mcB$YQc^5~neSyua@#`3za)SI0TKBP7SEVuJpFxDd~jw> z3qXJM0o$prk&m4jrJdEaH;vK8utYT4esBHSPn<4>{R#<-jZwQQ(k@P{_k?Gc1;3Up z(uNzVj&eq?NQ2?6I%`i|+*y6^H@jpM8h?A_0wPNXSL8wPS`u{uL}Y@0!W(C>0U{IF zdHykQ`+JE+c!Oc+^}g-xs|>|!4(s#iAl?3#>ld*&a83R}dosGwYitBwJ%N+~<$NPS z8CGh&(yU0d-Bq$-qc0JYDo1!V?ZXIZpxsD-bjm^|z*!9pA{9lWX5MmXcbczSan_ao zTx`Xu1@4UJ_$HJ)a!Y1TKd+pOf1W(LRnd-eJF@+8w^fQ5!OqwC9RCvXf$_|qxRW=9 zbiSC?{jhA_WWGFZUu#-Sfvs3;3unDb1u1-rT~tJL^8-~8S_nl;Gss_ZP`%dgz}*x` z2pLTh1yAsMGO{Yuh2^!Jz3hkwsjLH2iIQc9}8hfE>nF&W_*d( zYj}%6S4w7K8l1P5DO2-tF3HASt1=txgfm{rJOoO2w7Ea-WUFHm%g#d6a1}#~>ze-0wsoufg;e zv>6~jcCySYB%TC(qnso=&F_>ay|2hQCe9;4`e_hq90qSRE*hddGxO;bLiEum9dzLt zt8JaDYeS0D*|+asUNxItUyckdf#Cdv&nB73??mXK0f@w8sPMF;- zjtvbSJ6~&y<`7ga5jv`MY|1noFwm+1qf6vEwxjx4QM{uHG1G7#Yu}Z8EJ|}CPCPU?0+%RfJPcP&Hj=HblW)o zyEc?N#WZa{L)Mzgd(pgO;1nZ|aiG?h)#SWCqb7q+>c=%kZAhrC^lsL7(560Sj+op4 zf4W#dVk{%j1B)sd#|0S?{t-l)O}Txfd=_+{yGEs>rgsjrn^9KTEQRD-rMSr?9c(v7 z)~|qdzQdx-X9RE0b%#6BU$P|ivE63fyMdf7o$6p=Es;af_+uDeYtWqzXhG*fb4--J zAHRCP=(zeE0<%K z`jYyn#3giHQ?Lr7Gt%cg5pESJuE(Ys9I*n2wr3Yc%N#ymSWA=;a<-y+jfu#E*LaR9 zVzBP5^BOCu8^6+1`xc!Ub|#B^MvHhr|eO@T+g zxJ|Akv_t{h!$Sa4;K`^42u4(^>RRBJBN34yc|Z@!C{E4_#}?OPA@_jeHA_XANcU2D zDb|sjVGKsbaELxrnS*(t_bYE_E6B87piYS0JV-t$W|2T7cQsYz$3pZN1H}|w2yDUD zTOss!nmsGCKK^SfuJOlYGH2_-$z?nxO+REBrh78YGuKpjSH{<7%&Sc4wpJhrTM{Q5 z4UwLA1goED(C~KT09`<$zxU8r+!3t2J!^s;49nqQb_~U|#banhff(89Ff`R?vztkC zOQP=#C{$d2AnTY^H}u}2VsJr^!9p24RQ6Z@ZR_1~5oA!wFvU^o`!lLYlji|~^xuJ* zPC>&xy)ZA)ZVOujF_|7X3c@dvMuIR1Zp5& z!w!*n0RgA-2Tgc09d}GAV!My095t$jhZAo<&I11mD=eykRCxd^eV?H@Whf-(idUCzZ#%#WS+EDag-*z1maXJd%vo5>p*~XNLS^NyIsQ) ztN_aJ2&eA5+awx4>`X3;)(*Wpb7L{}nOR0o%0fKjpQ5qfm^_zo z%Ax+a19LiQy9Z-Q7x3)FpWXeLUn?evX?*^bD>Mk}>cRU#?;<^f1`!r)Y>#*hXi~>u zjW3}wvTd_Z2=Q2lffiAaj4v>nzw;z>E$NZp5oE&KfkvcgBqkJ*y5?K2jPx4HYU2kn zpeNPbz!zVfHjQ_7Js$}8N4!`mA+|*doBfUY`9gFMF0oBY_EDyzUh1P)N7YAW;hW=1 zZn)`s$24{3OiG~Ym8mDyP0oF}nf+TBcRc&u+D5>14OD-zaHRB2 ztqf1jL`(V;k0@b{VOy_@o=7xkuA54HzB$>)DY-CS6}64~#|&#dbcYg~WR2BGKJ)lI zv~{-H>gtiA=Mx`ePlhniakxakD+<(+McL_4Y<*U{1G4iU<{svo(&CCLI0~c2ij3pI z5b-$QFki8vW3^N*i@zUZzcpz=^rrs)&k>b#cgm|n9bx8YjG6c+&i3er;Yempi1b|$k2`nQ&vLf2#jT`@93BtD9(vdyV6}h zqGB;QU)J8YqA}MCBm)3`YDAW4PcA5?v9QTjs^dD2_02R5NKa|BhfmdqE89F!_R`Az z-zR{@!m132zA6b>Elp)7lN8UqEKwKs7K$#_R#$V%+RhhT17>2Fgztr#9O%|`n-?Sy ztSKCS)zi=_D3)}LVu^RWPyvf*=O%N2@BK&XI7Ol1r9YIrpTpbb88J+SgK=g2TqaPF8A z(QyZD)IszDvYdl;^CrjJ3nt+j&wjDJ78+GBEvkM7B#lDVfKnL&AZ29XyF+qjY@adj zeOTS;!2ES>Nnh~7>ZOZjOg>g*l+bfK;~$Qf?@Zg@Hp9EkOnC%W-vK-J;MoF3-I_RD zz3_N=RMd~97CFKZ&T&QGQD@QrZ3z8 zVcu_n8FPq1Df^1Rz`H%YibvS)H#M)sUDFhxb$(%qK$k1sae!{U=%L2>E!n?my6R+m z;z%0}IYpsT#!*++FU}?}`9SJLo;{7UX~YzP1xD3>LJ;a;iB4Y)YtgW#&s059uTspN zPdabY8kRpgzZ8aV7bC15KaK*TT~Tfh8dkm_?s99)>=3>V+Ob8u+x=>)wZKSwOh$ zv=1$*jy|t6Rf)HU9}Av)FB$k&25J z5*fTl5sScwdH4FHtOWNW-x_yylwpS@`llIssf2{1eWnzp7#t8;?!ua1su3kgy{Vqc zDKO%{cMA-_l(x>@>eXyn)7xZbOPGH+$Do2L?(~vebGQ+JD-=Mah}H12ZVO}n!a^-e z3+drbAvg@LN53exrY-!Xf1CUh=9hV~=sH2f_G7u*S(y8l(ZxSb&$2&GhguNx_JVO+ zENiy(x-P&@OWiG1=`~Zf4+4TmR$IprI!~eB2}doQ)k^~q&iU$)-5;>Yduo<+@lg|I z?4^LU)Hcr4)w?TJx3PlimRcaq?(7lWCqaXGufyMViP=2)$nZ?h8l=sv3eOq|`^N*< zvGuS%pGNDVb@2ZmA@!7l_z7mQ`?XBxf2J4lgDp=f=j5N{nT+)=qyFE}^)X{NUHLeo z`U87rFGN^A=O^u`U1Xj>|E)8_e2k_Rcmw})oY()G2{Zk?4e$2q*y4}qX6DlJOl=I} z1yWx?btQl}0&GvYH|~&~@5D5a5NKaQKas;rSz6fr6{~D-AiTmyGTJMOk;NVjp9MDA zqv((6_adw}`l%JWl{ay~&9{xG+>`;z+_n1T`Xrr6E~?#f)4mH+M|qnQgIl=Xuf=mm zrFjy+&c{@p5}Z3xb`!5~?iO|LLfMk96=&@Gsf~G|N+gO$%NEFyQ|Cp+en5(?ILc0?gXcVLf3E?HQBp*--QZ(=m%!F~@!D zhuv25P!l91_C;%=RD$;KcO}WpLg=p$cx3DJ$Y5!gnTL`aq5L=+>zCAKT$X9m=qE|E z|Az4))THik5bL_I?j}NBahk%J9xK-8StA7B>gn<^lr0a_FzU*c!HoRbI63fYBALmS z#|U2PZ4~|h33|Bli&8n0;Ot&{A`VhcS zUxHmcZf%XtHn^@&% zV8e6dT~Yg*c7?ECz%pt{lv4-7QEF;O8jM{O;b)<*SRTq@WwNJA{R99njRn6DcmidU z=;ziz3WZvv+4W6>kcc~?$j z7=b{tyi1~`Ed1oNSRNRYV0pKGpji3T^3)Isry~hf+gj9{v-y0a8a$BbQhA#BUTm5E za%H9E6oIYgze)BPQrRv|{e>i`pG9i9>yPmz@4$jmH(Da8)O%nN`K4C+XfDSRt%TO< zq1BGe!~44prmzf6f8-$B16o-qN;mjq8m1&GWDr*AH;FPkY)h;jpzwwaSjmhSj+;uy0AD!da z<1GU}G}V08meW{_Ib}^+!}SP8pJl3I-4af&!1Tc&TJPzgKAiHiFsJ+`g-Z~0jWo0@ z$#ohPWcjkN?DH0>Os%JR5^)X|Z{tR@vKdu2**gF6(on=m?E!J}UA?XGl>oH)QJU~j zU4b9x(BKQ7YZ#CVM#TF(zJA*%OkHsdRIL-G{}uu5A#1v;DdgSn`?lB4);)?FW$MvS|RV4Z|Plm_cv)?7=PUvjr%zyS;SK%T5o z5#NtbaHH)RNIgHiBWV|paUIWty1vbF$`<@vz>s*;3M!6#$x0}^-za`7f;!Jv!k&Kg zM!xj2wtTl?)Xf~4V?=~EmhJ+nkRo{F5-%N36E59jM4>XknwidI-JyVmoq$NtxxJ_@ zcY~CX&4J89fDSO;h?1l&?K3qsf%xuR4m$l^+(EiHb0fPz#63%0$s0+w=g?U*S5U3k zPQYCmm+*oTK0(*C(VfU5+3gB4Gixa zDq4zXdRA7pxSdlr&EDx|;7}%RlmLSM5)Ut2^4(IZ9vFTG_G`zGw^u=$sATc2MSoOM z{C$s|Yxcayda@dIQ_@?SaYMN-=Dd#h{`Q@(7uo6N;2X9+LyE+q1K=qGGU&k39DYBR zcHTddYJHr#$mh#91A?{8!WzGBVUCUIF0#U|JayPNmS}VKiqV)m0nyAQj6|+$o*5eB z27bqqP~e`;BKr*>F9DgOZi<&AOgD%}n8bo0Ky!jpWGelQY4>ruvuX#`kGFBcGcm@x zgSH&H;c~^%Me`b(!K-B8Jl#Z4BKMEjmYQ2d_Y;wk!TGh%t^W2Emjq$C!vQ=O7QFaz z)2#P~vMbrr#uTYEoJ$Y1?`3LIf(yKl&QR@iHypa5#j~D7$T6TyDX#)z??Dd_=GSyc z1vl#C{}qn*qx~GYLTptrfa2qoMWQH%VG0tL+fow6;@NM%3dYq z=fGo=-I&PWmkvpxKRo1)-N%WY^JaZx5@SyHlH8qO0^32u`J}Yi;{d_FS^!=#w?`ln z<&2Ec8zmWY%@Z+vBNi*O%ca>4RG*4!R3mBE<)ywf|DUqaao}fLQ!PLknzR{NR9Z~c zdiY&;WbRzjv6WMf#Z#zr1O-(Wu>V*oCRWOw%-psfl-NG6$pVRkqKhN-+Y?i$yDf#; z+KqJSIOMLYk(YL?CSj4;37DR`W@#)~%{}XLjeUp!cox>BvN!o%ZUHpfj^M--J8$mu z5eCfsZf??&+J~1m45@;3Pj{lrm->or3|wqe{9XflyL}Cf>NCjJxxwVwf~LTN6BuA& zW<)JZ%Wkj~Fa|KFkT6z7&*py6DxJGE%{4yCNzfo;-`)$1s8C-UFG9JNvCuFi0x~u? zq{Hz?<0*@JV^U|fGi7ALp(_%;qXLi>uU-b~P6tnMBLHH?eby-cwWY&8P4GJ?8jOzt z>x@yC`8iRzq~e79Z{7%FiZsqY)J#X&mbZW-+qa^(CmA9+e|4Z$1Y1K!VO65p)bE(; zmW*K{W(fEGvYwQc-3rAM@(QTnN`CH!ixP<^Pk3D9Mc{6=J@>?lMRH7R%| zs7sSJUv(~L<~-Cw07XV0AQj`ggjpCkTy+=DVRCdt|JB)EDtkjZp6r+%teZugphqJy2pBuB`|&m5~3}O*mHy3z z1K#*^(C=yX)0*T6E>t>iQ8|XDomR}EImFF0Y@C!>ii!}Pw?%bI2 z_RG!&7J9ZTSJer?8@S#!ZJ7N$y7dAo^vGu5@ED)1^e!#fabuDr)3`uO>*F)}Nak~D zIIjc#aI{D+ZjA5pARqI~^$Yyh=@XybfIQNrzGgFcN+3 zgAC-2imXjGV~1>yZ3%Kgq8c_qwplt|x70{^;|!@UUP3*07I}35pOu8_o1MkAA+_yMeZw-gQlhD+$4IW1<0(VXlK(gvy?VWW9{8c3Ee4og)S_rhX)x`rC zy%;*@RZEcVrS+vxpYQ-R9TNUg0Ih3e%oWAE7hQDeEd@MCwL$J6zRT87ZoNE5^S2el z@Cf-U9)FT*+@uTjI7=gKaq5b>BR%Cjhd~Cj?s&aK#yeMTT99tqL`4J^X&2gne zUvyj#ltzbTZ5hGZMD=OJl;b!8wMb52Id z(FBAh(XGB0gvqSWI5pxiq+ln%>8JvY*qaS*1fdu3v_hU-ImArfurK&3SzF!B1;sH1 zQ*GJMY^F7%vW;rQS|4qf{q6KW?; z|J1;}NJuVUQeytbm+Td-l;{%94ri$A2xZZ_2Zdu5=XWFxKbB;w12d;)l|GQZM4vxl zlflhc^ng(0Iy27*x$bNJ-3G2nZ-z9sFQ^%ETwEz^J`=7ARJBURrCP}&?=_?;S zLo^n@Rw&rcb4DQA|E5hYuf=8cwqf;91D1S|mWJbfK@;|+W9;-2P|E@-+DwmncmDhRVR*fKv$SHj$PqP%;rnfy|3Mw5$7*0^OAqIO>!~1aFY1MLTVW z7YGMCeMF>}`YfB%6KWHz8M-6Hen}H*1-iRnxSEC zNIwaXG-5I>JHyGpOHm)fYQy&G&b%RevajC_WsDLj(GI&D;32ri21ztUFatEMl2XJ< zZN~E?PKSzAvCzohsMqJ~wWbkAP)HDo;NN9%^Mib<;8I&Vci(95)+j z|Hw4a&bgD9r!_s#lx)F3EJTfh8%7-YI;|!%HrX?H9w&@2UTDOMU0r>cf#&Z_(l1Ly zEJZ}9dq)aEv=80-nv#Jp&n+`Dk8qAaRaQd5MTIS<}bg|*Yiv~hx&M*kHS)GpRy$u*w~bk3+Cp!omQvu2y($7bPe71I|R z{ySr^R-8rW-BHIlf!2dz#R8WIHIuR28E<&>j|_kz9%%!se!2Th^h`>=^ku?fb&~LG zpn-iC0@s-ET6Ak|+;myOzbrBlV2|j_;{d6f;1{(idR(ZP^y$Jk?+*$R2m83XMkNUz zBI+ri`-~8AXs~P`MLlBtsDyu572-8%9W-|vpgoKJt_U5}&oxP&*vqmD(wQLU|K*#Z zSdDKi?!KPt0|GYP8X)`LtHQKLLqD%>r|>EOzFlZM<%W62Jd^BJG>QVfqpA|JT`VUo zT6X3)jkcE0iU$^t!U2ct%hAQuW z(iA>3VmO*nEoNod^^MQ2H3ZQRpOBO%NJC|yXd!i#`ObB1M?r^X#$fond2F5=Vk4jk7; z3}hGVN?m-25vGPW9qqtD!A_N}3f;o@O%AH}?&}>=Gy2~zfcK4Rjqd#U^f=<9@u2L{ z&AP}^!AQNf**vbKnAAWe!G<@G#_Kyzx%*wj>Y}RR+%jtW5>7dJTsy6#<*aIhvjf3S zw_Md2WNymb>Z}Wtm;lvb9(|_CMjrfvz)C?-UL0sG>fUIYj<#OY77D&|br(CF%t|>k z(}wlLtgr0xZF(M*O>MU~n`S(S_(Nto$Ed_m$CA-s+SL`0N*t+fn-nT#21$%cH9G?F zgXc7kX9bk^lfSI><${cTBW9~>BZNfW&CbP_uWA3vnPDnu;2fHWS<&<<(wNa@%7P+9 zHevnB(&lExc;0=(orm#1!b)!Z1Xi(;*%XO8aNOZ7ukjONS+GvzvbaM+9EZ4j%CLb- z<$8WXLYSTb5Deklhma^J#vrH48F|h!+Zr-Y zK%nNh&xV$rOOWl{Tp6NP@pP%cTj0jZPfPnQPM5DeHQ8x?1osPd%O{MwuGXnf3}b6? z1CyXw(TyPId^RruZF{q3s4&XY`S?4p=dlNAQ{##`@<<3uRc!^7?Yt(GFJB>W+L_e9 zapbfJyh_I4tZ|yCMnRRbaAdc^C7G#w=8v=J+UO%Opv>=q_T{^r6Ej0X!zq6yv_h81A>5{rte&^}G8pD;bONYltDl92YRqE!wXd@h6`Y<%@hM}11(M>h zQlrSpPn~-QGtu~nO|Gt3zHoYHcgK13-!Lf^#m-zS39>%ua;wPw$wcCqv(A7_EX#fF zf~3sHUj)O9jep(G=d9Q6j1jiOIBH}}Qw58(h-KXhqbO5EYYV$hl=zplUWR$@Js#&7 zgz@BN#T>|5=q6LPddY zpB88{Vc!E5^pD*aubQRp{Znfc{)Od}_>)TRZDI*ID14i}W{7AzPJiC|GIu1&c2XmA zm)zy^8TmrY4xSjRipsP!tGa*WDqcmKXTSm^CJlrh&PWH5 z>fvwoGKQ=Vp-QsCeC0BML8bva8PX>Ei0<){le1zz`tQ+(HU9q8lolEOBwG^pxV&#iKy%W+if zSP92o>$?>i@6n%l-=+NV#qYOh#R3X5dTHsoM;hpe(&5!D+rIDo&N4F=uHWXmEb0Js z2L9|3O@f2vr+sel**a`N*C;Cq*^DrI_@dL^?AnDsrM?g!r^f>oIXL!#s{-lSivbe&;vWQbdeanH=7`mjb~VFo!TjV#Z}7n0g$Ch!5*nooypV9VREQO#l=^UhJ7}Txdb>+z zNwE&7Tqnqqd}H)E95BdfX(FOxk%h>phk?;4bBl5rIg?1lB8oMsTp+kb=fmQ1LgOHw zoFtV(_w20|4u!HAJpCH$GiI!$l-vT(zA^Uq*t7_b_#F!psL2Sfc#U1PcvlJpEH=am zkY*jd<4tq%S6kHCQsz32-CSJpEz85FZ0f}me?#%LF2eH_PthQV2yKCi#p3yp18dJh zv5$OW{>Z`E+@@`Uh@<}57N^Gr+0lLl&|hs%L%UHai;zU%$t?VFQoO!EINh|sPS0m& zkUUDa+qw|olS&7bt@#KLcov8q&r|%xgPHF$`HKJ@p0puHas3pOjFA~NJ)U0uO`~TLaqEI4a(ITGZNz59+>wdI?ye_wm)1Q^^Ej7+|?(XI( z6x}i`gk{p{fP^>rw1~{hLUoE;kcoBb1twgniq?}vQejibzU?BXeZqb`0B%(-8nvxs zry?8X5m1Zbbb_!B{D1Rbhck>KKK$OZ7j-E6g?9?QQLNS-)?J3gm2qdyzH-<>+|!M8 zD!ZQ=z%A&#%WCT1lWCTnS1maJob>%*W1`$}*j!D4(7Jf}tf1T0eyk7c&ZWQ<(Y}~9 z(v6&TEv6%kB15bz-nbRXn_1!{k^EU;;8oTthS%&XPG%yq#p?}VW!S*+WCy#HJBT|S zm57mDds-u%D`ACdzT>v#LjwX^uXNY5h>}lEMnuyH0PZ9>O+sGo2g=6T#8C)YO{~H^ z#dn`Q$Kl5IzM4yDanUyCSL;92<+v2uPLi-hD7-JQ|MLm~AEBH2ia1VG7SFiPhNRHl zXJuKj({UNSb!D%9#ep-P!FEr~B@K?5_GSzb6rJN9@2*Vz528@V&pP+`CqvHJ%Q;5O z1qm6=XvkO=y`1z!ai@X~U*0N$B3Mcb%VwrExBl}~`_0?+AHrUcVg?9SNjQqRFSK&a z3`)Sb#l9E2Nan8ToFfCUU_3O4YZnweZw&JO335Z^vVZa@N{n0fxjqheb_!lIPk4yv z!de8Df)lsx5P#j{1L;jMnM)#!0lZ?&!@$Zq{>6kM9ZZk_n7*&2+ zh~HsVFd|^zTfI{HGYHKvWohF@mY*n?asH2o_B`E~7}}R#No11JOvq+vSfWHFgh?%Z z3-;(!KP9gSQd!-fT2@#%*A7nQ_pdEM_YPTh_G^Rkx+;Baini%=eVh&CG0!KWM1zWJ zGpy@N<~3IUu>b=qL;Sk>8ZHJLBimS&;P*1pjWj}KeZq*k3u>ZQO-B|z95SZcS`y~W zG!H%1B$T8tt0H=TQjBqD9wal)JHam&q50-u&V*^&0K1Y?DP_d>sU& zw5+AVcS6~`ylV=}dk9n%4R;MBCzzX=hX)Zk?l3 zqF_a|%SBvt^!r~F8zXaD^e;?4VIB~DZF`6wc%uiQ-Riwo|Iueaslb;^HH#(8F4`1^ zoebNs<>)~+-s;S}#HaN?|BVm@RT+{I`VyosqX$%QBP)0$01}1a7-GFjuY*q#P-FD7 z0~l`lXt2(#moUAS;KMDe7cyLj-wf?AJ7irhP2HMWhBSL@IGJ=Oxw>qp$E(5ZjtVSjdV- zV4R#@R&y_yP>-9{Hf!5&C>z3;u1`?aBsaAldux7wr6> zd00J`ob$bqyb#tKXrA93fdXBHWQiH>LU`9Cx%SB(YP?})7r;>o`YJ#hmH1$QWFF5U zKih4fga74&2k=~5{Y-d}tzfs1*tB3~TAfhq6ggL`8M%;qD`R{=OQBdihy>oFW4exy zK6)kYy7R^O#TxPx35b zzm;ac4_GJbfY1<`abk^*1C->;V9d%_z}lJ#sE6)75bPDul)zlD4emLlm%`ZFf9wc) zx6Q$3#dP2)+=xbA3MP{UHo{B*i8y@0i@)&c$|7t?yoCxGfhAj^ zX3e^|1#&+oM6!(YD0FN4l1{Fne7wic#C)#Z$gvy^y$R5UIjebmPpCv~UHI#j(FcJ- z9fSyrplA$R7^m!d(gEprQBvBA#iAjbw zlO#n5!+p(O)n&))zal0-mBVcFq*i=~)QI$&fW56FBx8p)T5PU4Z`{H62B3&(0yYu$ zf(FZIEMOE#2s`H&ZPS7&n4r%S_3NX}l@AB>UNjYX+oB&g__{tDJnkrBJ*?#}r`HUO zVzSZz;Kcl-Tsf&{pyHs zE}#C<3CN{e%Rh$%kygze+hju0Z$#>HRPzCa1$Aj0m7#K7Z0%e~j2I%v5X+)%ZWD_~ zi^>eKr5iXBCnT%T_}t|c>r0TFXMuRGj^~pZY4jJvx=YDOvzPZl-YCoH#=p8FQjO^&d_XgNg@hx0TmFBU%TF>Gh+Ju(U$jZ=1os zWdx4ojxPr*)e?D$I_(3_;44X6v-r(^8)OFXO2ah8B`mK1n_7Bl{i_LCP-ifXBHm#!6ZlVK~# z1%ZVuj2ml8GB0``RnTq$@JFKHbqO_o0~5m=meh9N#N{+1I6g{^#{7RNXJRe^QRnF| zAR}QD`D+hfO$MSYWF0Lxd6cgVGw~|Z@207{6j|{DB(z~BDcv6QRRBa9Aejkbolkv_ zI>d=emBrG8(rr6>N}Sg7}ccQFj_ z&NLl_Ini-LA{`0io9o}I8~786$lh>P#dq3F#ze{V;_G!M%r)p(k)EXsd&J$&pThvR zRtPwZbRg4Y^7(o{x?A>Uzfj=Wj%AWIQ#mp%{jo^dcWBHmK%49krQU(W?3{Mfzd^2b_&I zj93e6@lw0$@M5XUH6TWf2F98<=dchK*4WJ zc7#H!HB4nO#Z&hI5t9JJQXl-4$vxczd?>2vLnGh|{wYWTy3KFj&`@cWGtx^t;rUJU>cafcGn!kgO zRzdP!^*zW#CSdO|$NR5f7{=(6Ypg68O}?=7>bNG>l^oaqnfl? zbW6I%&h9juuw~)5UGtx%m(8b0ZYLvS5VVV<-trx6OJpILZ}2km*t-d1dnDq*UaFB)h$)Nj*Hg{^$b zGtiy4+atVMGJMsgsAKJBREqOY6e)uy=dReA>_gAD=*!sy0BxFWz zL6bSV&*;oYW017(l(ooU;esB!ljbqO#LJIz(M3y0ZR1d6p(dN$?0Z^1nH_C6q1yif zL7P|OJA`shXVl8-PhvA-pI}MaC*j1_@km6f&zXpJ4`+w4N!?d&PuFp;Kbk%h&zwzG zMTL`+{T;k zT-9>5=_a3udbs`CH?T+Oy4ZtQx)IEGMt3p5Gut)c)BAw89|w-Bk19)2dqTOM66LdwvGO;8;YRo%Knn$Y4?)hK~;A;>{rVKKpx~_(Zx?r~zJ4GC99aj8p zMY0SYgM2;O8(X7nk%|?4kS$O~yM^d?UF?#+0KcM4kfR$aETtEmoeOG^V5|F3L}SA1 z_Zi;*0V-gMiLxP|*-6;N+rvYLM$E*d>S%6wg@G=V314t)3t#c9ZRsXzsu;9c*Gx z3b?I;qgRBy$PO%TaSb$L9OPUA78biGxpke$8cZC%c~walPP3Lbc#+&Rq{MQ(pkMyZ?;yThm{ z<=8!Z7hYJV1zM>(lVPLD$)0lshQInAOdw{rQw=1&=Gg!9W+IO2eO0SDTA_Ve$R%Pg zo4Ex!)B=m;6Oi-jT`3{J7dF2E56hv(j8_!jj_Qn}edwWTF40?p1obVWGA5uuruetM zS(T8kn0d8oR}TdiMhXz9 z$DjyBDyRFzvZ600~ohpk)dK}{9nwYeUh`Cmr7h1KD9bJzPn@UB+tZ>xD>u0<|^A-_5 z9)=27l{(l(e0L;u$Z3eDUi&A>+K)E8W}x|GQ+1YtgI405!PWKI@Yy~$x51rE>8@-O zB<;kdc{u@|_CbtTY%|+tlIN;Gp4Rt;aYs=jnczTbynK@rHo^0?v|9zy%s(Olk<;-m z5XO$IM>NI)0tjC&@X!{n6k9`})X)ofxUY2pGpSrMsO*?L(^OAfO3&v9ZhoaMz9ky? z1{H{O_Mf^Tf^nVv5TL`KrZ%C)si@QQ9@6pANXIW};!Z?$cL_P~JQ7^=&>r*iq^)uP zS@gqFo6D^K&9jaMbY`AtlGN;B82xv=&&-G!C8PvbOH>uI(!ZptUljtz8&P7APPL!I z0)$!5H7>w}nz4k!WQc+b{E1UzJ5TiVmR8*}DR-`6sH1A1t&jD*ygme`hIHtd(eNv{ zSWprVmd1zTiM5PvlkQ308g|_B9IEvRcd)uZ&5<8iYJQ z!#J8(si?E(QfG&!5P0;g)cX&kETxv9?cnL8uyr#1ObYiEBfqi`9IUV6c zn8|a4V_Y|{rR6>q{j{nZ*&TtJ-#g{fwp6=lxyl@ZjRI4FFn_RAb%mBchB58C>GDz z29ZN=tlnd%I{cqH%K;I{6DsKDlU)FHAdat^Umw)=>Qf4FG5Oz0DQ0I+=JcRwAE6xR zM0sI1l0bimvi0=EAPpMxlxAV35qEez4z4Spj!xwWhZhKP^c{;cUj5|Qza|rj3(URH z>b1+ki{U&!lZgGM%iZSO6I+DZgqh95qWKbId{E2(a#tsHu6HguvC)987xnAUF<$o_vnyxQ3z!O1%El#`~ z6LGftnNl77zjfmB#rW{@uEw6DGHSCm4OW1v#E;E~&=rFd@Rqw<8X!gX zk6p_!lMIc8q;1W-#1n&YTV%~N>aVY}tWkBXKH3}71-6Jsr?5qQiZb(VP&#qu=e7L+ zVj(@3gIsWFWO@q(Y%hS7$02T-zB7dNh_JDUq)>^MX690385}Hx&mvSdooEJkZ{w5u zfaIGxo!X3_dRK_@i7JJ=T-z7lmyXzA5%3B(z3#@h@vdBG462jQ%-$)3~|fNA^z}Q@?ptySSQ8)Ij-(fMY=`pU6^` z5`^)yjU4@ns#X2WIGfGa6H6-0YcutChk5o1Md2%=!yG$+@#5pp*>v>mhlvviGYJ3H zk!jY0&b3^&3UV{{Q9^lv9wRLhx1g3{$;taf_Gh5yx=@@5vb5^GN;!QTU>>(A?L*H_!biG!CNCJFc8ctzOf!+L%tSGl zLUm@ty#IG-MK5m%G`Vh}ic_Rx`if0B35BNeHCOzPOh6@OE#zf#`cd-oshH_@hZQJ` z2ooBmLTS*^P&iKyJ)41%PV?fD$3#~nyAl`!CxK~~ z{gDJlJKBT8pQs+Blxgf^Kro*q@!xYn@6g4MSFcuu z%O_w&?q$@F&?Yi9EdY1iMxsF1_Px|+zP#E>8*Hci>^1_H@kY@=40NX zNI5P1*@%=nK2Gp#;?$GNFm6T0;1yHbMKVt=@t#3QXbz({t5UdBvzt^-Wnn**6z{g0 z#_rH6q@UP}?b}%cr!t2gT17zuxJ=2RcYKs>SkrRC_?+WS9HeSu5~0#4B1Z|P`lMmt z@kObu+uJC4Eb=ypBmerM>(UG7lbp~v`FI)EslGlllka=wqKf;m`{AakW$O`SRwpMH z4&OSLwh_C|BccH_JugQj2}_tr+=my;ITtz@B>(fWR;4K&jbKK{7ry_Aq-fI$TE4-m z(5R+Ts#z1Nm+w#q3q&v{h#H^3fSnJo*iGt59lAr0Q?*S@{BZSiBDH=v+B+;MF=GrL>ay))M_b2BV^yY{}fPwq1<5 z`p*Il+-Qta*BVpp zw6J*>2uxz9vN)9!;4z@G1AoNyw_Y9Il;;F6SwMpBdv3oel77xY3;Ll{y0 zIw~y>_3`h16vlkOrW4UUl`Ud~`-}Q`ZwGNgHMM>Cd2CGw)T2g2e!uuJ9j<@&FE?*O zxMfGx2+T|4v8b!L%plMzBLyG1aqnmin+Z@8`+eg_eX-+j*;J1BOG{yja$BNzjo$`8 z9JAu5j@IJiqJk&U{o8L?Ih&a<)ncbow#f2wmPg0AC{6EdUY4S{5C9VgKC^NbxsM0> zb{(&`-o`K(T(Qj76o~E)2WMm^)7v?i!YtnFlw=~s(aCzkd2$S$G+g7Vyi0ls(}}4A z`WY&t7HEqKn@jLj2xP6Fw?j)GX*LkT1G zCVnmyZ@xY(5sa;d33h=W4*|7z4B7nj8H*ub%DVdl#8lE|z_+Om*-#uG92`KqUj?zT z({Tk)qW_n|4?4PrbG$^+f`QN9|6&h*;= zwtg^vpl=m@LN+&}&L(snUlr{W)?zh}${@Zr1@4hCNf_NEz9F6gjSQ?r&_rGW9Q6r) zR=cNWsWEz)FrxAA`;lva$&l6^${;CXO(LbWQIZ-UQHtEfijr8r=Fi`4>Thr*_&p;mBFjl-N z?D!fC)m%H65j8T20E|Mq6?=!SsZCL6k-sPxO!&T<@j2F^LIRadBG;ugD@wk~w)R%O zb?u)*9-AR8b%hQ2AGpeYAL-pz?=fPp9m{g3o4HAKbg^w~{rdN|~#M;#% zBA(w(<;nh*`!rEnvg-17ChYO5!A@r_-FMDcf~uri)c|2z$e&EuWK2;On-%7b0AX#F z*UVFc{8a7HA2V6uV>sX}+(;+h>@pl216gA%T1U_7&=jr+kg`nsZk?$rU#~6ayE>JY z2Ty2Kkin;qul)>LjTZPL*P~?n)edBEqxu&GWSQ|*KDZMB;=-#nsgV3Y^$3v3n|+Y_ z*eF$|aq$_Oa&g$vVss3R1t-Uog)>4pWozwhm;x}~J@Vr)vxbBt90d3f@pvbv7GQ92 z9~0%_>UkgP^+HG^T;pgXdQJHWipjajXQzSt*>VBg=gW0H^?Y@|drT63cXfVU+RUj} zQ-#dm%Xt0KXE7e6@A}U$>;mav8UEx@%Vm`f#l3xta=}y{Su2#U&A@i7-)gkAs39zM zV2c0u%0m)NJ4(DMbwAuG=xH;awIRq}$x5(^I<(9s1_vO$#51>_0dZX@<<-$J)TiQ` ze7c@EkzkUgp}13-v7`0oi-ccrG+}rU+>$@*5>BS7J>{O(g#8@_o&;xjHy(K)yG{s* zMn^$gun6td!OQcRiPiT%t0ba=IkAaVwd-aks^c8b4>WBQ$5)NDAmy zhY#S1=&UsR(S}*#pLJWUhR2H%gUJz0IkxFc^>S2|d2aXCxk>CbZkmXaF=m7M8a$xB zIfW-$Y-aXEH0@*kp`cLN<<66MZ*D{M<>AEYH876eAeH_AphO_?Ef*wT>|Necy-j^5 zp8#tal3;^&1qS^S_b~mh1oaNNTOXpdyrVLZ3tBA{MxAa~;49Nju|8&v~2=;E0zQwZv~xO_plq-coh70i}`VG zO(-v|SiiQ;8}tK|h=~OgRID=X4CQAb7%DMlQN(`}?0a|4oWVKkYOLLj>>QRLK~L_; z+#;QsRfzlLu(CucV)I!6lSb2b%Y9O@w0fn8!+%wC$NT0^80VKE>z ziNG&Ng}pJOGA}{hWv;OLoQO??vQ$P&wB;Zm5nn@$%0o~gHR<|Io-Ip$pRVmNVqyF} zNFMJ$7iq{=BrY#*vED(7)}bwzz+P8(2p!7;6T7*g`Of%wFU32(IL0UWan~t0*7s2L zb5I36B7V^)fmE^@*}(!Q^hRU;{r{a3y+udr6e$ zV@jF;?4r(*Av9XLNDChU#~xcjxus0YfL7Kgd+bQT9#37L0Yu<>%mi1zC>ltE{yTi+ z%5k`0pYV&(GsoY0Vr-1V9wlheG@nTfbnj!qr_l}u`V4BRAA)qF!wQnK20OA1wz8r> z9R@DkENx-3^%oPq6{$82aiq4|eaf~U+T$pxiwb`u@qay9nBI3I!7QGHcbJOOi1J7} zF&|N3(N~uzPwksA0$F%QNKJd6OhsL06-z5XTiXsniP$9OLNk0ol4oIRz8wtKq9w)h zWzvI`9F3D!vg6 zg0rsaw9Pw3R7~7z1&Y36kh}hr-RrXj+*H!alh3A{czT=;0ndt*w;fWkhOphD2>G6w zZ5GZ@nvg(^S6$8i#=0X!q$|P&$0+J7jz)A?xj>Hk-%=cX%=DK=TG^HMZvq?WXWp5i zFf%$|hk*n_j1*MS7RM()?r69Wt-|$HBR9)f;VhIv8FhZ%s()P*02V*(vz!>#_)?4f z(n=tOwp6v>h<383wj?Y=i54vy9-PMF#kg>F@s@d6K2$sBacqIZf@?y;Noq8WCUq_K z2N*w};(qeN<;4j=ICS5Pq+wK>BGljiupGuW`a&0bfe6eTRdgjIS@+SR;H&zR%CkCx zc*8g9O}hKgXiW?C>6Qvgzzi$=3>eyA$k<6gYa|+U)mKz>OC@ zo+$RjA}7Pwff*^qgfgAf*B5?y&=vmJ>eNaE^Y_|j&8kcWN9vig94?!1otUTN3FP?b zbB~H$`vNXunB*V*ckwVK@7rAUUhqS_@R_KfGd~wA+{%&V zB1jQ2iv)}D&|Myw33$%{@CR=w>q6Y8b<^!vD_oW%(`MgRgdS*`6;t!cYguNfSAeJ%@C^cpJ&dY3dQ|8GP6^jI z$x2B0-tGj{sI7ZiWZBzt7niM3SL>`Lnbrgb^yjyH&&c$~#e@M-f8JIwcLJe;rh6 zqSO0HU~Y`r1A&_zFvg=34}ke{tKm_T8>iNe;%NwfHr+3Y<5FZi!^HX2dUUj8S8{BV zM;>er+_IHD;nT&s4&Mo@eZ^;tvj>GCAOj6RXn(AFbD^L|68y&Q*G2)&B9O1H(Okl$ zU5if7n%kCfCJTX_b`N+53b|YU#I&1NCzbQLij?C88c9$e1wYYBheq6>OpZtCJ177Y z%&EZ78Z=M!)ZzG!7a&_gC5$b!*D7b`Yt_&mOk4EY?tV~e^&Dw%suknEiflbrHlJw> zK$Kf+)n0po=Y<{yppCi7OHwfGMKBI7fk}0&1`-a_5w^Iw@Y%sEIrj9tdxw-EH;ixs zSeuGQ#w`c<$Ek57@HUc$2f)^Wb5$`i=U-M|(Hxno zz(l+#UM#7C8a}irtjz+hTY0oPo{kE4P)x_A27EoL;>%g%)9G|#~O zZWRo`IYFvWOF3b(`sx0!YvWTyo39`c`%hXylObw}G@)Y7c8WWm*jcG|;fKc6eXvW9 z%`8!NmmyXOh@BrI&`}V_xewh{yljhlS*X-I=EHbX0@2)1vP5_y2x2XYt{;tY%%SG@ z@^J8Gs9CW}VQs@CLyX)hY;K#n_xC6H$FyANIn-oj8ti{fzI{L2u)FD6; z`L`9z^z)(;{(zt~W6O8NZ6@cf_W%GsYCOOfB39(LdQaL4^>6_CTxx)YNbx0_8QM2E zmpHq^8g^Nwx|{0UBRY~#a8fb++xA5d`O6MakUw$u;* z{QZ5-EBaN@ke~PK*Dd}I*&!Vduz}}K0T_Vk%t@2>E;b%@Is0O}8bqM z>C{Nih>oGh2vVGb^Oic^&aG@qX`tQd;f*lWgD;%C6v0qoHUWS z+pqvQ-CA|??EtXmr#+2%7p8aYS#S6XF-RFkyrnd9k~74nea+VT12enwHmhF1KEZ~e z%ip0&2^AJ*F35ExTf66HBw8I!vbD!w?gB4Y8VMIQ%)aM?EeF<2>?H#}@mnL%0mi3a zvmD<*!o(u{m=ecU$XUPrL2&}@g9g0Rt97FSRz(v8-&VNlWrAmvz&c-o5eEU3eOJu8 zIeq1v(#IYSE&{KQ=C!FDd14bDL2gD^v8q(l?K=;rC z{?#>=C7}PxZ$#Gr#=`cNbG!CFb;k#ov72x;82e;`2i@{)z@pnJ_e$_zL2(SRaP;Q2 z;%!vGx?24{J-}|DTHF7pP`3eNBVYId!K=JdXgiIWd6UpmF!UWq-TL4XD@=$G4}^N^ zfL0Q3#5dJ{KK2-Rc9XikN|_mc z#~%Qj`xv0Zb4zlGJ~0x66z&qRpWG)I4DuwQ5^cz-8rnZ z&}T$WiWixrl-483U4%XMY{pN78!}oFMS;70L7jl!8a4v^1b}1UwKca8ky4=7o7;0T zi}`>LyT)Vlz6QuK_ovoEuS^_t<3uhyTid%xyH5{^t#h^ti}AsbBROp;jfK>hnODPd zk>gh(2n1Ei@a|6o)060fD?tD5R+sX3SX>5biuuHs?>yut(&@7|;fzg`6}-UTJnR&! z!&w`@LPa>qV0Rp$N1EK-w4WUA@3DjRo%Yi6sHsM|LvHVx0)U`S8ir4y0_b>HtRM}Z zZ3AwTux{(a|3UL+O8Oul-5R5O8;S;3cV%gRq!O@vn2gxp&_xS7#un6oQfx92#hC=x zf0H5IY|Sr|4SLIR+W1=-E6p8+Lr zU#q8q@EsvpdeqU2^A&Ty<%Rc!+K*0W17ATk>rhi$hGXLMt+c$x$xZ2E$p^$oId&+k zHLM@l4XUu;bonC=mZOKR8AwfixE=LS_xVQtFDO>AJkBLrsn8R&q6)#o#)0ao2g@l4 zy_u_8zGUtz5N0gRq5(O*n6#XnW^tPKf#ydWqNH)v^QNLosm@P=l>vxJM9nxHUdCXy z(%XVu?hY7g->yrHbv0)eFb0H059y_dtNI_ua1^iP+tL z;59XI@ljWp2bCTX_!YpyeK;zvywccXX>&RvQ^ka?Am_~r3+G1b(+m|#60UtkKyqFG zL(;Dr1+Ee5AFD(CdNi*91J6jhPGv>*QF)TIR>mfLCy(Y+5BQ8lomzIHqeZoy-olcE zCFL$w!_ap(s{p1v9LTqq?&Zn1ggC3l0y=f~u;Xs>!{F4Y(eYjpw)Kk=>;cr0uyiaY zPqv|T>8>gV9^#)ZZQRoHE}PG)*tm?b?Dj_j;OPA|X>T+Lc{Yf8(NGl}i2&cSoCx-}8O5>l zt$!-An|YAYt!voC= z-xb`#Wyf<3_q6nj+){6)y|hA{98Jo8ty{kRdMH$jwIqJ!d|-Fie88NHg$0Y7ohQ>( z*NH#b)`Zu8Rz*&eD1`*(iz6C<*;4A-0)S3qb7+rFl!eAfAko|Di@eJn!kn6(fb>ElCd}SD zOVpVcf_6^z;ftjam1e7iXg6~QYOwBZ;c>?OMk7vr#ij-QB%h2~V#g4K|I%Ga)K7`+ z4NTw|7T6N09vPsvi>vWHV)+%AatpLC!T>zS4K~wLm;TxAUUFBfK-zs$_0@@07=^tC zoU*{ZLjC2g%be3790A=DnDc2&1hPTE$$QHD%n-JL0yJx3=en?(uTW}aQ^WfYL<9-{ z>@x9Mg&(G@(oNz6w&z=!uJvuhy^fcHKDd^x@G_g@jFO&KYE>d0@il?c*qhj8D{`2v zW-Q=OLSdU5Dph}DR$&y28>Q#oD>Z!t^LsX&^;lYw-Vy z`i|Sl&G{=rug!-=T9?dHzzbtymQ&e$mV4LW$XtuTLnfV`owaX_x`a9_P7GQ_fsl3J zR|m$RI{3N^_%{J|xp?n-pGFxYvT!0jyu>q6?i{`AHJ9!(QX{SR)R#F`;S6MqH^RPm zidTVms(iE~AD#G>RV#o&kVH(4D}Ob>4Eu+EcGS)9 zl&BhyifJpimb!EG!jLGSXCg}1?QGgvM1i2Nfkga`1K^XJgR2PK^=G{gpe@>QMC z30&A%L27+y(>mGD-SZ97xb1UO z-DNF^iU>I!8sC1WpfW=J@>75EKJ6wIS7gt5y!M$ltYs=(x`CAbiveBLgE_kRQ*3sqJq$C?6pw&_NWoAMUiFMbCHnlrb#&V^ekS|QA2 z$3X^(_56Y`G`a|;l>u-a-2R~mPND-in-~cwPACHdcMjXcg3cM?1rQ{kEJaqnRFpjh zKR+9cLvig7oPV}#5)0jK={0S>UzG9u8Db_i+yow_L9462fzW%Am@?%x#TC8B8R&)A1pm z4Ens53V3sI)#?b+|24;xhM*V3^K6hWUaK+U{jyU)f*se+voPMI2c^^WdIq@>mR6y2 z`v7w^rpU_N{MQUWpcLNfQPM8B#GKmE_2)p(JQ4ugoh0p@ZC}-xIE}QrMMBeW_T6u4 zbvKPfldA>K8)9Mj>XPu}UX`6R6cu8Ste6TJB^!{5v(%6;R?7B!kJ?Z=XPhWgd`h3d zvYtp+P@3ql=M6fV^ucveCBfTW?=7vn9yO>rXUUO3uNr>G5L*QF>(I2#jx+H6 zR)kGGVV05iHyAu!*4Z*S{*QKf25m?S4CFD5wvyv^v^LRTQkdoE?Y1=*?6OSK$KD#o zjAbZggP5H`kDbuMDqd?YBMD<6)KLsdwVp|CJkGr~0|~?hLgJBqY{|a=v~Rpsqc@yY zy3dP)ck|>TWB7{te(EEgm4k}5Q>9SAo+-)*0l0@K;b=_=H$hlR0W|0(Br;An+$)eS zg?^w=Ua$?ye$Jr+0{RNA}n)-qng=xl;T0#7mpocnPRN6`g!Ok;{xFH4hSl=PRAGU^;v>W z#}2WsNu;ChMD6{8|COR~$Lu_bHS1j5r)qziz@=dbkFsD<(Ceq)oIP`z@wp>sY!8f6 zW_GBOYT{BtxY(>3w`;{*L3Adzqd()C(HL^FQ3gj+96WOY<#RpB#sNQi(dTXF<S6xG$&I>=6OL~<_tI&dlV=o1Lsf;FQa_K;_bBFfEnzL zAXRU1Y&LkLLX%ol(xb@p%IQAR@Jpj8f%GW9WLikc+?zVmv&u1=YJZvU!8c#NOR(tD zFT4S!YUjR|>$S@}oBA?0?#t(KVPSIz$H{{T&Fv~{2La1TgsdfjEqmnuFTJnxX=%Z# z3p+Xb_LSzGJ5|s;QtokvX{WY7{ym7BdAUeNbmNptqh@ZZz?sWNy+>i+p;JzKED=7} z_tiH>S$1o_y>i>Hik|WQHll`l_OVYgbcu3}-PY*)T?xPX(ABzd^Whn$p)2oZ$Zu|y zGb)4-nANmUC>b?2m2ZRv*YB@VtU@9?ykQy*sNltVetVBe*{p@$X8rBnS^D$Q=Y*&> z{1ZeJd2pDd%fA}!gxUDcgVAF=O8K)hj0#sGulV4S&vHf*L+9V&qQ`J;*(QLHX>{Et z^OEbjv{6jKAjTS~;8;FH&#DJ_RoR*9uUB+Oz|VFA{>iU*cC5BO*NzpL{(6`5N%%N@ zgMitv^txlk9Fy?oy~*axy}5Icjyi*%tX^k{;tQJ;BB!d%WEoGusL7V(GFYp-Rq=JA zKn7^8{<08K{C;I~u(nV{eN!PvR!P(d*uuUuP}KtFNGw15E{{CRI4o`&##p4hx1Ona>Q|ov|5^$02w%WGR$Z&Lh!o>uKAoKom$Qs_8Hk z`X$K&(Ag@^Xk)aKH7#j%)~7X}o7n2U_$mRQWg#(R`GM?Dqp1JwXrHNc#CB{>+caKc z5`=j@`kD4#)%{G`;7k7cL3$c2Se(q3xeiR3P7yZaJJ#h>iY_-5+KPRZQMZT|0Cd47 zkZJE7c=e8*2LDP6Jq;62eH9vi#8y5TqnKwexh{JM?d*0DhaIgg_t|tU2Bt(_tbR3i zLi3aEQt|jA<_kMiQ@NfuA@8Y^FE3x?New%Cp%b3{kbVWi^%fNRljSYwlibr^mU`G8 zmn^D*Z)24ZNLA+adS4E$Q__} zk7t{ghxs>lz%!B_@BRW?oE%}9?kUyA|7+#vWx|gZ9B$W#f;Teq z9b0OhIH>JjstjV&=SYNocUlJCx@F~GUNrSDbb_`)R|_6{2im{hr-Fa;7mBZv9G;w^ zVe8N@Mnl2fKm5zO57R2R^@mn8Uq>!E-BoluLHwYcrU#YyYG}=+i7u&VZJhM@FBv+! zfH_=U3&?wOP2H%bDeVAzf}pPayfr)~tuAt?5NW}Go) zLd^>tln$W)%%mjvnY}IcyFg<2Q(`H(!qgun4AgU*y6{L^wYi@YZE2MDDPvu^1x95a z%`fxSmm`W^@CQqDHi(@45?d9eY&uwlkCV+;yT{fx)?%m%NWc!%bEH@nFg)q2ix$^` zpR7vgVzPO1z|6(@C1x-cP$8xEg=3JFfbh5Zu`7yzSP1XUD#MwT<;RZHTgI8S_vmaf zVNIDeEsJ=esGd#n5x?2+!gZ0=sW5EhA!d@Y+bj_R$uu58Mf$p;*j79dV6u@i?x-QR z2U@9?eTvP+1c;W#D1z*iqUAt>_)?aDYF8g_z}`Rs9jlX|H)C?4lzW&*W0~u&V|Hr$ zt$<-!ffCH`%{16si#&c134ab-w_A3u5v6V|QlS2OOuT-2Cp*wrvcVHX0&>TJereEPjQ{7ZFaDYZ>PG zY{{mimLniD+~r8ho&IkLv22|4=Y?1L-R!Iwmn7u~Rk*u?re*=<(oIni{bH?La-p^* z03MCHgY2v=PUAB3TYC%h>cM3JJ<&XgT<^SP$;)fl=i$v}CAP&Dyg0dq!t}P)FlV(v zd>T3ufUm(*#`40vbjBnMc8H`&(85q*1ezdi%zvnZ@FQP);#k}YG)i4#x|i^eq|y2l z86%U_2)melzMkW}C!Marv{y6DqoGP3aa8g43cyP&;fp!pxuF_#E)vWGltxyH{FYi- zc|Vp1q=?mkDF9D@FB{th?0NLTs1Z;%w1&Wm3x)E|Ec$X>=U`!TNxE>1bLo1ctbwYXDi;K!Cn zS7I3GBqvNl_vBXViw!3$I~qU**z)~<(Qf+TkbII${ot#1kW!8*HoH@d;G_D-|FK6O zOTXiVvcahmf^S3v3GcbId=2rf%w$>!_Z$bRWc69*{r004ce`dvG;It593t|*Q7b)6 zr@dsB@Thjwsq=WCPT_w#YYD$#(F!1WkT|?V#M*8bkXoM9;mL!o&AegSBX8SpSH2|c zBxvg+vp$KPP?wSHZlCowSo1Hni;XKvH9g(b3tR6@X<_*x5WH1mHLohh#_doE(M-+L=eDE$ahRx4$NZvlVOuxMrN#`weZn zAiug)m7{d@)bi>XC-$qU&T2H8RtcNEcM<5uH=k}}eLBBu!L1!Flnp;kcwWBSmPdL& zNU4XNTh2DIRaW6T0!19>uS_!*ABuv(1ah^tm|EV@A%tLEEv+#i6qrA@*!?>y_XU4a zCOM@;?-zkiML1uB%S#*x^h)ln>3($K3T4ygC2(5J`GBeHYAV%N&mZYnBJey(wHYN@ zfM(n-Zr?-l55)~AbX;E3dp}CntwY&{^nI`&m5dvmlE5%6sG|7uKhv7p{qyuvZL%OYt&9O1LsS}%$OnTn`=m}| z=yqefMd9ACKamPVyqdyiUBU!$(FLJ(HkSSVm{4b`b&Cp$Ah68yZf=MOXa%gm8Is_~ zmh2Bfy&#V_Ia@r=hT9KLs%F)M{Qtx0*9+2&({z*e4K9`yV@FZJ25mmW!yt0BFaADF zEXhxKYP?UlX#fQpH>307?J~L$R8#mNWLy3BQ>;Im?Pmj55cIFT-ueEyOFQ+Is=2mJ z+g-4ZYf z%q4#=#+E>z)lUgR^pU*A8qs$N;z*Fb!+}+nnnMx3Bye%vAzGB7Y5E)nBe_v|DllhyTo}u4sGMq%T}4L<-e-Ir!sD-==UOPjr#xe*3zq zPUJp(p2L8mr8I#rEr~*J*>TKif;JKbo249i4(!(Dm;FFEQ?m>dxFvNEbMZtUzJkk8 zzuD7$X>Q?i=cf{~>=@Z8;8ybKO9jJpFm`wMwL7CQKHq0K(eW)9&eZzXLew z(vkW|V=L&kw>1VrmnK@LS8lzL3o-pz_33d-Drk9NrINOvb;Wj_mbV|DhF{PDP5!Jh zuOIuu?~9}Uz<}4Pi(SCrG>w>A>cry!GHqpF#q5G14!Vj1?v0|~z zRGp0HB()lg>$r(&pA<~8%Pv;*4xEoS?*rnK*bWT{A7Dq{aF+Tgv5?B<$^4;55Xi=u zA&gQl1-5#i)SuF5UdI+SUA_()AGlW{Ze}gj#40#-Vj0`S!b0%e61^M3ZOc+)be3`G zjNgWH2l$d0?lr`$byxs%iBiek7o_d=4DbQHjtZo@N^j;~qwUb0_6V;#d@y1>gZ>jv zDC;x=Jn;*DN~&XbpYc^08H}uk#hI!XF3Z;J@@3wSMN(y9uYehSG>zuvMg|awjI_(1 zT(7=JXpVCZ@Kzw~(X-@o9rB#_dNNDOi!8>7S+1`Awp{85b~aLTsk_WKXiUaU!PO&z zsOjt3keK+-ZfKtG0W%vcA*f^gRZnnH+RU02K5<5fk7mN{pEfb#`ETCXva{n4`Ipn6 z?W?n)k~pb-j|PSe>pP+3){5!dSS$dycJ%pbKRaLgUT3K3JxVl=O-&D7`e*=RLs|AR zmM1#u`!Xux_+jS{2@lCxZrM^U6n&}8#8sp}P|ujnmH>h5NsqX5Z2`9B)U>JpKCW2X z>$hpbqL)N-GuY{;P-nX7xds?h-X$DTpLx)XUmBxT^j2`T9`_}(A=N&F#aP#dyGYh4 z0pfZcUOlTcvlvO}xXG+Y{)Imx#Wp#Teh?4V=>HP0`A_Aq zhw!>&w3m1$mIx&Ltq2;U8kYX=t+yuABfFQr3ZE-_v9m&!pLwIBY0F?_UNR@(eX=RzP9y#5L=_yci~mU!wtotDO8wsl;62 zWxF}~rsom_Go!LV2UOe4Bb^@SK7F&t{Z zOm)t-M#u2lBy+LO`Wj(h;bizQ_>$u2MrN-2=T;wg7j7n0EZt1@J%vx2%%s)Efj=B? zEb<=)wFkxl4?I2bClWwm$0;^;^uS>gk!P-MQRPvxPy%?WY~50WgaU{xp5)Ja1h{Nr4h+Cxyl4*>ObA&rS<}TKPcfPl=?)uM4w3+&Y>gD=DqVe?vv$-^QhF^R zMGuRp5+fKcwAU|?h##vq+&CRZ1&L{V5d0Geh{V@h@U*b zANwfB3Po)I60?i~i?kwdA~>n7{ftc!*Z07` zfR2$3V%d|}bv=y@p+1XuRvMs16F)(T&Dq`k?X+-e;29VFGKD7(-C={bS0BaQ?39+@ zLZo&=quR2BS{|6c(dTP`@wg23pqEWoB7rl*%cvx$6v*^8Rr#DIq9=B zYcg+&M}R*%waV(V`#TY`{4{T&hQu_4n9w6-Myq%rZOClBM=p8PQKwibY{(ith~}dx>dkY5XS%E7@4b3_IHzm{fzabu`pl z<(VgaW-`d<i+-aC=7&8^~`rx|cku`coofENBv&#|$6F^&8BWk%d;^=aleT}eG? z@jF@8R~D%@H?_`|fM>dQTKJ?#=9h}G5Kus7Ph2itiHp90iY37^$1sV|a9&S|?<|1D zNimQnT{X|$5j-jI6xiKM%)RiGEz$^|@-RVg0Z3d>2@hZFs%2;0B-Uu(gMQUvSvJ6lw(n=+JR$mV_L@n)9EGaB@1;3})sInUI=Qac0IA1HPkg11rFdc#k4Y;*@1qmL*@nES`k_#k57SqIN;(bM6P>;Yc%^xBm+0xi zr3(XG`1`^8(phcro>S2t@Mwied_Ff;BQ_zOI`mq;9ORtY_^drT2)|CCCuwKfH!p19 zh&{7Pdnp^E0lD5{DOuOjGEWc)j26{mLB~VuFWK0{J+JV~HhGU*2XU|l%S?SD-g9AY zmOxZc?;ri=GMG}LM=p%W>o%$7@(@>@T+AVjdV zk^%^Z1R1Z-n%+Wlk`If9?V?$`ON*X6Mjxp}{zylg2W+=2E&sNND$cu$kS7@S>BgHf z5Afm6cP5MHP*Z;kBB!jPrx+kS_}AlJJyA~pjJX%YDc+%Gm*{mE?Zkuh>vTDQ*alS` z?kM0ef7;)or*JpkUT*!STn zB}-pFK+Oa$q2yCC_MiCM_S~{m7Ah&|M+%u~pJG$qD~4Y|an(|Ye|Qz_5db#I0Z6os zucx?9$>Br_@!pU`uqnEB{NW3`DtxF&a%TcFsH*^ zqN;CU5BK^#dpIB!*J5o6o=kK4QdS)>S=q7`FOJ-r%mp!%*a0}fK{QsN8IHQ80h8B9 zjL>CWWtl14f34Lcb#8bTy19my_p5-JT{1sh_m}8lBbWPpZ!6HV^~0T`7QNYmUdvrv z7B!`eY>^=(yUqNM;_T5iQeTUB#Lu-9@7Cd*4P=u4w|@`I93(S()GHjvdMl#mi>toq zLCSM!zFj{4oMswXMc*_TG$8i8s!CxI-ozH(x+K=Gf7;WW=353i&JH=4?!wN+in1|& zOKgKEnsM0YSt+%8hn+`i>9EiBV$grL1%s^xU-rpt6@Db|ZV-Fo{%%$qZ5vd3E!)g1djft?w9yv$y2zj3+6v;ap;T^EIf=Drbq=SpNXEm z@h6QvH(xvuFuHtE*Y%9=0JOb&s5b43Z z*{B-a<>|moY~fA1tPvpO=U6jK0~bK8MH%(GqwcU8hn~*6Z~AB&{9ZptsOy&BaA4^2 zO7P=$#UwJ!9?yLB&@cgr;#h{cND1T95Tr&N*_Nw?%Hk+KLk;O!c@|GzUS; zaf04GW9RiXJBkAvh1u))a#UIrw~i@x3nx*ez8nBoXk6lfU#idsP7kw2y#UUF;Mk8B zGYpb`IEd*)`p|H}Fv*}$m9edk@|b}rY#F0#{P5lBKv;Qn%HE`A&I+7x)iQJFtDiVX}i zoX58*7S!808VXV--O>6cp1yInxFY#xZEP&*PufsC(XfiNVU?)D?I-=WM2&^gKYc|` zN{43nj>jrFyZ6F(C_jU7Ju83FeEYvx+l5JDM2q54hlXp zsK6EV7nYC)cXy|&CbsKXkY+sU4kzrT;331YxIPWav}r=DshV)E7M7&UM>i~y1UH@2 zJDQ+Ril0`f$^x)gD1wB#XAKOdusIo7zOVr0=t*aX@w^JMYqyG*FK9Nad>+ zF1KetCL+F#c(XQvY057t?D;lDq(7^r>y+#G_24CeQwIR+Ri1$QnQMkz^JY`f5NZx5 z>-^9?7WU5pSC54x^NK?Wd9Zm;BhH~VN~1|>G`ojX!i$#rVg$cFIj!Y0P$#Jm}hNy2~KqH1S&u$Z!hsRs9`n%LMfkHRM+?+Anmf3aoY*7M`J3l z{1gahGV8;8rQrGhMW5GHCC5FvkfgtiN%|Ta5NpNsuMgvs$X;j65aw6F$rd-Z0Y(mX z1_0VxR_n4QvpOcgu>+ud^nnp1giAjIm{s6?eF(+MCxZ_-n4i37^Um(uQP5n%pxKUv zDGRv(_&hbJk+yV8HT?EHivC2{$>gdlY^>`k9`>-BN+MCa0u7U?Mw8Zlxq^iIE{eyw z)?kgcxjc4TCQmT3n^@cM>~*UPj?Klq_(JG_1)AHIXfrE8%yojMeNiJ(7VOZ{&sakU52+!NcXWIbc9rKio-FuMn1a) z*v+;I9#)_>xRuwHLOGx0Z(y20+Bls_h>)C~VI@p+D@M3gmbGWrE?B?AOd-7@7|jPL z-HF2sKq}aXOIUXQy`(ahJB7Y8Bd3^b;C{9nK)OALu22M2%v6e#lBFlT_DJ`Lx`Uo) zC@mn6RsxDn#7&ZEi{~+WD~pxjD`Llp?#=A zn@DOx^`_}3`mSGjDm{KdNn<4~LxRj&*}jV#cIit@BFhI{Vr+=-rGaPq6}_NEz0j^J zyYaqHO6kT0ZYWOp+k8#>0|mtMBH|;hLL-1kq{6 z8wI&~A5iLCy+~)J%?c`o+#(&HFh28Z(v><)2)tc~SJfUK(8u-%r{U<{efM{`cOd*F zOu%jZ)5QvH24_+QgZPPI8J?@Fe&M*bGvONkO6e>=ZTZ=``~3k&Dvs60dnww-$4RTr{|xG=V9J{GedLV>*&Hn;qdOfuo;W1KHIUr zR>dg0LaofX_}!%l_6x~`u9&5)5#FL@07*c$zcfFwc)tJGjS@l6!S6F`FEkNc=L^H% zs$fQP+kt`4=0M)P{r8ZbY??hi;w-5wUV;=9RTV)Z@-*MS} z++7tz#LOA z_hf*1H^xE`dRRoqGzQ67WskaK`Wbget<1@X!7zFWE#R3ZBvpj#d^Ob`N#e?bvx`GGB`$&PPCNS2Xnn>PIMVp%@a9VubeqByX&E)_5V%ch|;t&SF8 z61$Xg8ZHY68ehij;}WeLrbtCoS?Imstjr2MkC*=ejIIsroLUXlS{fJ4AA0O+D)~TJ z;vKazJdt-gGCJDj&d2m#~LraY}Z<^qUCY1u(>9)|-pVcwa5`-cB`;uF?OQ+XL|| zl{raV$#0Vx<*bM5__(cGv_6RH(Fz{S-3%bSH3a4aBg({eYLkm-iby~_LLlNylaUfB zV^=EF0T95b9)~3Aryui|kHzP$E#fn^+Nn60q3V30xuxY;}p1NT{k4e{0YPeRz#T)Jjr4 z+skH(w6tS7j>gDUvm<)|@Jp6R)3-A1JQL5%?3GH?9RXRFr0_d`v5}JOqyIXC)lZtd z4r6rBc2$65=6_g5n{qQ5VFLMNF1b*oFaeK<$diqygvy~ZDYg9_k(EP|{m!B?Sl-bCGEYMLNWAtS(cvG=S6c=WmAg%vJmOYh3`U%A0& z-d2RQbbsMRKUD$RB^r2=O~_)rA(HbeE_DqjNH*#=_;?bK;+ryT)~A^rfd$RsGiCY zk%w`30*9k!lRO2bfhi?gHHgh+OrB82gnd$(pK>hjUY3^?Sh_^uyAydtJV z1$zq`k$QFzr93Fz^VEA3^8`5IZT7)4DM!)SEg~tP&|NmAiGMmi^SHK;pf%dR7WGXC z2ZCm4U~u>AI*|H=P>AlKmX?+kV(8TSOC8ov!D zAd%~`73$T7)TqAdF9&rCZ=_-qh+7LM=}UX~7YTRzO#&xeSkBr~cqRb^nN5K1}~st+?+q)zf& z%(w1UGON52Blk!HW*C#du)aBAuA6q@+W+8}R&rxdK8=6Fdy&-`y+WaNGd^auNsNd@ z42w=S7r>dpmjirVl$399>(1xoYJ4UJ20`n%u^@b)SXjD;g+CG)A<-SaGyU4m1Bd(N z1xh5^sFbbmxnT1*DAK)#xl4d7<%Qn^`n_wCJ@{6w`z{}xC)iv*3Vau;-7#7l&D3lv zB0wF(gyxTcQ{H+Gxp#6Sv|>Owg4mR=CSXy;yhg51oG^(dFTkZ}YQ(Tc2{@XOEVtV3 zBm_ah48|7QD3$7zdAfaUbQDufMh!ix;TYHk6B$p_EKt<>e{aRDf1vo|*v&HfppZZs za}q+fiJyGp9I^RFL#}TQJZjs+)DKCWlVB#)h=1AZn)vLtWy9GqtEwohcN|TZtQCq{>g^nmX#B$R4ojo(Xlr?i9sXw{?;BU}?(hWRM zw;5{Olsqbk6{>c3xf|D9_Dy?HjNbmLv@z!6M0R9>zxCQe*Lyv1(Uv>11yoSYJko(~ zlHJ-yPT6McoBV`PS_ZRMH zuaD)zy(NBl?D*_gi}$Q8n5<6KK?z})hALSqM%Jp%0m;#*knl+%;GfA#au0_k%$>RF221pgKm006KnsApqXNVC zaVlS!X|CGFixy2tMInjg^&`=^`!CPOi2(lCEY&Nqj@j}{M@`$7((WW(2LMpf87^hM z+Jr-PPLNxMApWb-J#7G%0(ZH>iq&!x(O|veHhVhA+`;mBWG(^NH|&XMo!5Ytsp?B z73_KK&jn7V>6&Dhz_mu0o=X-+Kq*;mEXLz=Em{$|eM5^s&nsR}-JAl<$uan5^cFM` z=hkdBI|Mk;(*q(ezOPWL+!FR-Hehe8+cqGdkXye1AN5hSrtE+zI|>u+TvJ+H)Pj$_ zGkX8vs;aZP*6|#6>J4#0(z3(gNXwnnY2J~8-Hf45*T4t>>v5c{F>d~sj?wJ#F|;BS zj2oC;Fcnw}es*s#@(=-6kk&N64Z{wu{pAPQi+E>QxokuQjlLN4B9ru6?|4reUg*F3 zP2ukvS$HlD2*9@@#s%Q*2O$=u^{85W2k|lUg%G6WROE)|){Kl?7Up}n5I(`{-OD{n zn2@MyVgJSjV)&xRL=?zh@T*e0-C7Lm@;6(u=%Uv*$YObt7SdMZY9Mqr#egOHE3Rh- z>#dV<+9h)Dh|uJ`crLM5eW+rSg$9n&GGwj`?d-?w>{<=kymT;Ut*po`3WL(0+`JgI zALyANKtpHfi2<;5#BXSok4P3GI?zI#0L_7E^W8ZtuvR(ok`@T%WOjaUsVT?-d{1vzh9bn{EC@$4HDpdM2f;iWH_4 z8pAqvdns~h_4Hqlqr$x!R|JCnQ3^_TBIJy0e&ToE#V};`pVAD9#)_$y)ONZis{mr6 zYk&7y$;axXhKv!rbGUHx%N1J?plyMaR1$ZPuo%f6;sE)hqbqBdQrJXGe@wR9l#R2d zo5Dc129CeM&Rld0Cy|6)t5o0xc?MNJLrY6x1P(b_C!VKHC5cpifULFhY!TiAKFV~p zP;IISK2w7Lbai(n1`foAFH(JLwIQTc%c`2!D6{uBGIDzbbWXnGeWmfiU{vUHW1b`W z5li>p^zI_muCZ)#Q$1?fOt`Er;>}SUntkFR?JdOHY#4Cs(R{K{1nRegs6l`;&L( z@u>HIF01t|P=io8WZ&|j<|2#K^ws!B5)r`^B{gdzVm)1B|6sIl1tONT(Tn@(8&rzY zHQ@35)*1J)9NT>Lt-=}p z7k{$mAwI9fYrCfP)m#T+!J-pknOozf+Z6vGCF72l(#gaW7S=8AVDhR=kpC38c4aGy zo*ewG$6#|CH-j<(v~zr9;8hyvYq}SSj|&d+Iyg6a%o=-pxjwT{t)?+WcMwJQg`>>M z-461Dzs!#>QXTrBnnCO2ih(#6EKg$I3_W0HF(;?|C+|^-oa~(y2>0}AxUq?#BcHxu zvp5h+g`?;{t6UhX7DJ1lZ$`HKiZ&^yphQ8WF2`(Wi=RaFk*N=ouD$S-QX`d{29K?M zAXL$??c|RbLO|a)533Wy>m8o2J+$>^9+Ib$YiSP~m7+9ev~YiH^bgm9^e1<}t_`~$ zDTZjk4Z$r0B0 zg#V!1cu}b$k)O{saHIAj$AUtQ7ci?{m3bOzeKNdn=bsC8`tM^`$bW#`Q-!wgpKGA- z*>&VW(UfGs8Nsz+_M|yT{1txG`9ux05PXl?p=6==LPJX@wu|Hp z^O9c*q0+3p755R*Azjz<#dNJ7B^6h25A3X4M=N2;qd>JU118hh2?KElS%z;6bbO^S z5Be}W@E)Z=6Z!qVk=GIif#m3Uhg88l0|;i_!o{Ia#S`iVop3f$YRvaIN-PQmMyB~C zGP!b9uCLb9%_nC#=KixSdi1M3ubo*hvPQRcVp0#Lf0GnlN_7PR6=~o3^F;4&Hq!$d zA}7@R{KP9IJH#i;O=w%BCQuq4I+nQyvhGLk@p2Oy#5-;rgkz8oQwAXN+U8l_wsh@n z!zVVGK*S>iTN4NGag)IG3g>d~Xtw@yh*Ritn8$sfI^gb^S+Lv6?9yLrv;daRGAGP| zgo()e3(*e<_uupc`|=FQgRGv`>o?}d+fuvnAD%|C`G1;QEefa%axbC+lEwbSi!1>< zK0Z+8Ug0P7diaGmB?;mdu})NK64V+Mx|lU8^fUgz zA1twSj)j^OMd90`=H$qJ&VJyG3QT?!x4#o9z%w;$8OV(UdNev#Dmq%p34vEk6imylJE=!Hj&97?@s z@$DLdvtw{d0qnXg`!^>^l2e9ajlCf3JF~4?Ycx)us=Mk|ed3LMixo3%tZsf}X~qB- zctY~iXc8mAM$wlY_tb@En}`!9h`xcm%e#$LHmi5H-2I*@CMi+f;gxUgq2icr*xUcr zxMX_!O(Gf|cl-5;#AS64<@150$_48chjXfbSdj6Jq+RMa}H_KY+Ijn^biolBscy zqo3zoP674IFj7QBoG+R9spzc43Tmt;-wahHaJF^V1C6>9^?{XiFQ%1J=Qw@yp%pIr zy(?S+S38k$fh^UYOg$}uRr%o*z=c3!{=)ieHpqcK&HXjQV4VrZv>WA2n1{&~US(qH zQ-^@G^vjVc#i>XzXX;x@ZB!Yf+}Og9&Z0qvrDH!2ZX~j$$>eFYMuf*kI*AyKrx<|B zl)S`!PNcvrvVm`0oBJpdw}$tUla+UwXkCJI9jRrya(-VsJhoQ!onRMV80@+xx;#1e z@sq1LSisW(0>%@8^ba(aqE;fcS8{0R? zDSIFko4>%IypDQ|F@Zb!&$EhkzskHZIiPkf7yFWKG@oW z3WzgSd(3sV&1c9GFNtJ>@1=IPBlB|qbQBK>%rMjc0p-FiD266r79uGc9U??blwEuG z7!oUVPi-G2cNoKvYx9z@ptdCOJj#YyW&%4CpH5uw0mG9%3IS^l86y{w3fFK9*ltn(R>tZ=Yg*|fSq z0@n-J``U-0qxks$R#kOXVfULAjU;`ZujKR+=Ui9TnLD+wzS9Y$SSD<`2^#`VaA!|8k#} zcub}j$a^r6b) z%s~dK@3`iGX+B)=oA@ekVSsY3wYNj0zUm~14^FGwe8Pq!XSM2>Ve0aMo(Vfcj0>*P z3hxZCj36_fbvkpP$pMrL2TMS_6`7=PE>*{(w!is5ALAXaOV)U62&tsqXGc`t{Gqu= z;R3((;|4Au+Aa#O+kQ*HM?v?&#I-Cb&eeh-le{?iQlh{Rx^$91rEw0Ejlv{KR~M@| zp<{si<%-yBbp~QR3j_Gd#ic=#ByOGXH;B{-*4G}riY4TEYCu;V0gA9{tY~#A@vlwB zddfCIJ~?z#N3}eZTZa~W!nJ-P*@fKzCe$S-drBaEloRZTRm7TyLKE6f(lv_8(Glh$ zbrm8rwGR_pfPbFze>%Ro?8J+G3vVwl#!b|6GQ(IJ5(mf;Jw%uE$eAXrgfT7L3n&Fw zPJE1ASPVAuY<+oLnV}u)O(cA4h=lC6hTh}dEa$QX9W<+FpY(p9m;onC;h*5Ql04%6 zFn2Jb0-smZn*GPbY!h~XM-BKH)1hOhT)Ho>Iz|VuaFo|~u# zm4cUiO;X@;cH06vms6qQ!b1ZA)uJfsaf^c5j=;h-MzEw@=xl598$WLbR`Zs3s^0^R z940X-K$frS-%?`v#9cTSaw+k&yB{#3QY2D7Go5z_ZkX4avg?XZW@I$Gln9(J-6vAk zX}~$f!^VH5t9f{ue=Pu$$ZIANBF|!N2rT0C*Bs2RKF4d-$978&gcs)WImByO^vy+S zq(s;3uIsF$`uG3@zd{lh`OI&21(}J`M)dQ++|-sq7A($9fi5cLmGZ<*M$Sqfg_NS? z)UXsnmfEsAZTDqOQZIhMS-Qf!lx09vlxT-Q-2v0Wf)o2=ZA%$QRMk>jmaUa4%GQ8m z$Y#JzkPj};v`d3|LI^z1IK$2)ASDWHhY#I*%XoGVg~&||h8(x0J|2Sixux3rY=9!> zmIf|#9xxpy+SA?^53BEJzpOwO)ce`1O_(lM53gT#Xc{N#;#$08-NWxnI2<%0K!HnM zF+hShiC5ZI9nbh?&zbNF1qQ?;htiIk{t{=mDn!*&LgHyhx=TB?g-bjyfVMg(3*fIO=XOt2c_3LxQ(Hb{ z0WGE}OC-cBjw$8fUJ7jI3e~ON!t!Wti8dS$qmt7m?560J+1%0u9;qQmRZX^IZ}@B( z2MYANV?NZTiel4<142s?;fHpVl(^kk=8MEIU`?rDBXZ#)hMXbCPkV6bR_ zh4!#Xz~4&6Jl-=+$!d!w*eMf;>Vn*T*I!pukyAmT-T9uPqS*fc4j$_Qb*u>yuM0cwMJ(?kEO zc_q-e*NB!tu9PaqseKbc1^J?7K=G1UE@t% z80&peK{TIu&d1K%Oio5yEA3?ik;B37?8#nomE7V&zTZUk)_YdeWJ%nyC>Cn7>!*#p zZ8%JRcYF&N&B|^+jZIE!!Dk5egdUFJw{DC{k}xF3VY>*Kjr&z8Kqd?~Bp{2N7XYs^ zCSfr}cN!_~NvaInJI)Y)_gvZgz0H*)+p1GQ&sWJu;=T&L+bZU1v!vIF{^Ys-SMdp< zshCt5&N-=RupA+OWE3i z*3nNcuzIjrQ%qUMM#~;yjBBEQ{+elYp^}pjNauE6n)D_E&nJF zQj3r!6nQc>!d34YvnkHawu764Fe|%=R3xwCXcsi z7w(h{F*u#8_X(ZdGN<6F4`&CdzeLrTgJH7*tk}VIcda`XbWqo{M}ROkPE1-SLvD-I z!UL~AHNQ21*y-4EL6t2)Ed>6y_xb0Cd;#o5ttPf8oYS5)^OUcN#{5{4)q%Du{7vwSWTeY|MOyzA-`e-)mWWHPJ zYxMS#ZL)H1wCJZ>@00JH-LwbR?d0FfxI}Td_EsAg^|;{NskbO`bn~Td0(X+9VDLx1 zsKN{GQH_Jv?WBMNW~y<@rD%h*#?-~aPuUlsD@5{{s7@`^AM)sV|-b#itz^>$1OX$xWWBsR(V!#(Hm5?+CUFYUnm}!{L zqY#TyYl-%zmH8FDd*d{|fU;CHK|vXw^hraeg?>z(lR9jUlfHwAS|TpYy|bt(m|C6l zDL|`U{%>iaSR*O;DrboUhoQ{PXR1*kG713&p-8ebiIl0OH@JCzsu_b=0KR$9^n{CY z6dlvNpSqb)I4gUwkDSTZQQ$ySXASE*%_^Aip(P}Ll4wD~M^vGYyA9t;BSwBdlR|&Q z!9rKuin1<*uzp24Iwvr^ySZeL&D4-A32J`fH9jO5IX`)ukZGEKQ+{WrrnG-_eo9|m zQm^=sfyd=;YgNVnih+cvOW3TBMF7v$icigg=y|L4e1$G9n?Ag(xSg*b3WW1GO_ep6y`UiV}|E#iLSF4jxM;BPKU^bG>Ub zW6kn)VEvxyihnPi#y;sty?RN8`Ab~Z`8*)3bvPEGsXqr%oHqu8Vm&9w$qaXdgTapf z1dL5y_DkK&C)+)A;=DO*E>hIPRai+O>FzQY3WIocSzQMBHr&|IvzQ7Pt&ZdQ7eW>% zzBtf?_3$#`42IM+#CssU;KQvFD7vD>LmQUK##KG3wj79zy%^xeFZW(@MZ!CXGjX<0 zEP)$SL!c|A*xFbEdF@aiD!wX>21sLT^rjGeS?8vT3k_v!F>uDdroYEui5#AZe%AVYRk^Yz|Hpeyt;q%*xyY z?cr?>Deg|^78w~fdPxwzPu~K4?X%zHo=NpnkWD8uHlw<;%;x8H7d>U3go~%x?-?My z>y)V260V{Q&DF&|k$Cv=2)9G;@l8njW6C<10mQ=|NXg{<`AVcy?BNP=?4`g-V8GU7 zq*DUUYXR6?)={E<;L)b4lg>-AO%71Pe4Cx*z|xT0@gy!r2?ut9G}B* z`_4}~mcL0CV+EHzQ<-L)#wH`gMdT#o&w!v4EssC*8!R+wmPH+MW;FEL9U+djdPO~@ z{^l!0&yl8S+~XCkCs8DiTM8`g1OT_xfXaThefd|n*1#2N<}X@^qp0PMPjEB4K&#=n zLVsoRcMjCwE_!aVDrmq+-&X3*nZvit6&Wr?@D37M-x#%M4R2b7^zmBts1`=^@JP2JlPh;KXmzhCIL1pq zwT{G5~goh*}p!6Z7{A zM7D_Lxff%%8aAI>R5zRwn(m!mUA5uOhxJ;s-2}vw;y5*3*6d+*5xk~M*Gbv%438!JrqIZvwdwcxk z!8Pm)e#Ko#O0IsCYmr#uNhNhOu>9F?m~YOx(h|{TH&bd6V&9akfh3-V2~e`l#cdpS+V)r2d}vc`y8TBnD10o z#x0CznJOlt1g%JfQWU;ssJC#*7#q{BB!r#BuB%dlF!Mbk$W)76c2o!~ABlq|4B;KX zbifAoW5~aGRhQ4&Pcid7BQSi|@|>kW+Gd?@Gc*5@WbW^2 zW_~^c{K5T;UCbd#wu$j!P@D3;MOn$@mKV|z9REd{z>nHCvIUc&OT9VQ*jQgKZA!^} z|HtEJIAY4WA-U05HexIGbtaR7{k32<6EY>rkA&g+7!~Akmnkp>Do1jV89v8*e#OI$ zw;uR+F_JP8L#JB>`?V)o*v$1K>ENfz{fq@-G9B^0Mk_Vd9-^%k;r^Xo%wKm##rqcJ zXZ$-(SmC)Yoc)*r8fruRPv?cdn&#+t$YkXzmjb-VvR5_=`)Ns0Z#8e`ldd|u0|{u1 zzW{cUI4#N!-7@?g`w${0ziBiKH0LG<3^&?lo9_Cj&2QJ=;%cpzDKg{- zNjP=i8^$lJg+JdkO6u)HSxwE=HF_sK4voC>oIDEL8Rt+5egoIk!fnC&4FwOAU*;Cw zRmqHGYJ&1BixO6&3+F4Oe0L*G26S8q0n}F?{M@is=j}a$=D#>35VEUd9R3#p1bFiy z%T6+II~vSR_6Zg)^+7>oA=CO zLYrd6%$CEzru!3`$1lXpx$+M$;rlY`p3B?}7g;Pkiqs;2 zZ?U*+CNj0gCb`4!zZqq1mv89b$NiO$U3ZYI?}Qcm7>hYIR9BmU<~uj;)sm3|N{iEF zSXUe0^y+`wN+U4G0SN&Pkn6nfn~L*x&bQ7Atx1c9=7)mRtY>cEJ$x5|u)#KN#){K| zuib~CivGKGiP9~Ok$JgTupM+btF!4+v!Zh_w#8zx zEuP}@KY5CTV6~z3#YCpiY?jmzGFYBUndPgrTm2r>_XNc(oc67Q@Mx@vik-e+N)QQC z!@NlABEWl+ZiQ@#qpN;%t0CK>_OG32oWv=r4~KWBRK@1u^+PocekzyEA~w|}Y^|SO zy}2{RAeu~`<1jor*!}rN26{3pCy{8!9oz*t&eFzXJg)G?<|~!pqTSZ=Y()ZSq6QRn z_23(_#Wc+f*;gZM!l6V1l>qp{y%jpV4n_^(IBN<6u~~B1q`HyLD`fNCU>J>dDr|GG z?I7nXN`j6_ew#7&-$bJ-UdN6S`nif2WSu0wStW*NWpo`DlO#`O)7ft1{(l6C=>@;} z)vbj>cM5lq&nLR!0|LN$s=CEr7)y)_!{ZgGw)K&uBAH0miblDm!J1}d1IfH(Iw0xn z_n+vqGLx2vnl=w4x~nVH#Tcx|J1LXs7*f2+o@xo3J|iX57PC(pe9BJZKaGF9!Ae(^`BNlz{o13u#+O0wH+mgVFy`~gGNeBy#mRx)^*}VME)vY&0nszb-#l0zK zixJXff2zJltKP~`eJMY$d5Mrf=zjK`16gBsk;SPCHSnrpBa3CXt9oe=*Q~FORqMS6 za9BV^y)4g(4eN*l=~|0-ph_opGX^y8k=w#8h7uDb9lB|zO#Stl6BeW4#2R*?FJnQC zKwRBBNV#*Inoro_7Z6$}DUcd#(c)!fwlMHaV&WvFMiV$4%dNGq$m01vqT^oi2}O0; zUJ}GWQa}q5cx5Q_Ab_Su_mfiGSR^;Y*?(%y1+SmpITYD>-Ve3i!a_|Qzp$`4Sc+>m zx+Qsc(_O~_bB_^5Ym|_ejluuRbFszY2|jDH2F4%%p1zk$gTcrLv>95L{Agwy#eVXEhT?M8s_h;~3l^vKg!f%0 zVkfIk-T)I%yDucMvE|SUEWy+orw?mvp3t50tu2V3*bMtz~(SiqntJh~TfxCl)S&CO*nfE^;UcO|40W%W{WMMYf*`79VPu+X}; zxlge3Ez(@y(Ef`GWLhbWK!_^y^p<^vgC1(A5Ui|6+i$hhj{EKdoi|+0cGoCyiE=4duuWlV}OD34O zMeNqas3%q~R|}%FnK|q)Qun|DqaW`A-pSrzx5eO`aL7~*uRkgzOk)}*7WRu#hO~%Z zU1OIVs3z(5O!DB!A5>G7!Ht0Sxc++T+0My1I@*Dl_aFX>F}04rjlUN(<1>aA?s1c**z<*dvk)NgHTwN|L)1U19T$hKesNmw91(b^*d& zg5hYid9c2nkV$m}ujPtFZo}*kIUsH&_|OkEn6O*QBfImYG0vQOK1{xUSXQiNsE-U*cw7R`tu{E?ym`53JmTi`9s)X?q#4B?24R2D?Zad`d$0 zW*{~-J@^PD{x}-Y>M%5HOgmoZY%@u9j|7S6b#7zdDk6dQ&C7!i@6QTR+cbPTOL`_J zog`*V75cx`8)~Jw!}rl;bdYB3WRL0IWf?!vjAu&o=+>@=xiA|Jlj$G<*Ww-dA;m$G zyV!{-82h)8H=F|b~v*p}3I9+^D=p#Ct zS6cFBT36ybE(l+S0_wxd1jof44FgfR?5XLe-=3rMYZG@kw0f;rx62`00$E2UTPr~a zlbq8WH_|Q=(UnZS(qEpTig2H3sbwr6?4hCib+HWyl#RdHkH9EfS$?-CBA#?hQfhK? zZ88nUfby}`WhOGpbE`N#LAl5 z2#vMfuKBOa2+;pJy$!?l-=Q+afqP*hlN-)!6!~9^dtNkTtp00tj!1Cn?N+A%~}7) zFj^1a&Kr=Itch9RD^$AxIBl*bv}O{Bg=q-VC;Ns})u9FhC;qNY$A@=!^j9PSAe)RU zH-qg6ltMqqA13rSVxeq%RSX5@S#z%UoD)h8eb~!OGJ_Z-hmUAFdgmuy2_bEo)(ysi z3y0x@4rl*%3SdSPy&BA(c{>fO?!kig&^C>@BCy=hn#E~IJurr=Qg?m8N@ zB?i;(*|y5~^+~K-cBU;|bG6Ae7KL`$)Z?A|V)^PuDMbl~y|P z7GXvoS$@)7?mTZU+f7a^f4;VZAs{UJR`x8~AN9la`CGpC=od-Eox4e`G8~OK+Le!m z?tl4LgQF7+2~Rye5XDnr37zgX%;T!=mF~w`nDHfmJ1BGsEfRGAlc8gTP^S;6-XSz1 z{t}rPY$~KCY=$=zQ(5&%gB=?Q!N+J^Ne@jDk?QVnvp%MBUA60wE082Pgb!6J#pzz9 zb8R}!0Cy08+At5TflMk&dyO&(RWP=CQi00)dr}mvvEg*2yaE@MlUTewd}rr0y_MB- zx3ox^3q{X24m~rB5ZHa1^(#bn!U4~B=0?e? zuLzXE`-o2bSe#xJLRm&i3*j1sYg+-9=i4HtM5vNX9M`82RgnC~vC5X_kvW9n+TD2x z()AS9$7Z9cLE)(wBb^-EfqtdSd%n_Cz7+(~{oOunc>0U)e!e!CKmYD?+4IyZMh8T=^4Zjfu z=G`ZFN(z52WT94FeGNn13;aq&dMlad1+!53J59wl3_{l2*slU;Rl(@31QgOWS$Yvs zc?Z6fEhU)S2NVaOipP)HElZ27CVO(N0NRV%DKt@_5}OcC(sBk{-hXLGPK$DMi!Yw~ z@hrE=eU;koI5R)os55X}^)(NiZed$W6B? z4YA+ShH}l3g8wiJt91-M@3ODD01K&0W&&^9#w&(T z?x(L|iSM^drJ+XswmJVTu?qy#r5y^IqoVvher-E;A+sNU$mfHb4D$CGU9idumu=7kHGp9k~-v>e0AbB%^bX zUoK1skC825U&Kio5sBlt*?$}OeuZzzpRx~fInoDJNkv=n(^>R1O(pfU2}~KS!y|?e z{a+kj+;!|R31p{P0gJg=!afbOQc8sclF^aT z2H0s<=TVv$J`kb~!`ZLucim@m3eWQrhC|SsJx~RHv3#oErS!tnJ!B_6Q z3%0>gWV36nL+IboW6%9FRtTw6LVTudbo@{l&GYoGARH63jn*2~-N?iTsI9#*0P?KE zdEnv2MWH~I50fgbl{|frWo7&(a#q7HSwCX$qDrfW4ai>;QV9H}O~4K-x`cExjgt#o1cl<0}*! z5$)1g?^m5AU^KQA0r~ndKs^)70q#ny#oZk#8_4ST$5qUUE35xJf;4=qZ;{UFdb*7$ zhH_nB&!8M3aix#s&4DO|Q0~W>-1d{{1NXZHQ(BBgy&^`ZnW=-N?rE$}wKdB_q4~Q& z%m?J;tW%7n>D}QyRmo)Ry#D{{m?L(UTQp{wT4~ofD>z@?I*i`B`jSH%0>mQo6*9gsF*Io4hHUZS zFjU4OvbnTn7rD`$tlg&P<&hEaGB~B{jtnG@@;jYnt^#A3SU}3USeU~p0%@xgk8-lO zZU}85-!HbY%*~DlXctN#Gf~=jh?p@Eo1s>Rm#wEczW&Q1^C@3^byeltB#W?X4=eyJ zBeIiX^sl|eS~S=x&hr49ZoSl|k8)O5R$oVzx(tR+D#xt1rV?zseR-QF8n)s~V=kS0 z$rTNLMC))aT=mXIkHP^FW4w6v-Ij7!6{HoRjV|cJxx)tKeQ3`id}I1{R_hBJHTRms z61B?I-ZNC^a)O|204LlAhAec?`_P2kUrYfOWIZ25s2Rjzdrk3ZFQs4cg0XvYv&E-a z36vxFH8ybh#!k>M8c+N!�Z!VxOyQp1(M(?iC;=OcLQ zxIn3_cBd|ZIG8L)*sVYvhPh+LVZZ`3^(9L{w2uxm{hUWf-*+9s+aeQHLRBZ+^b<1? zko~o@ym&IP{Kl&|Q_4 zn4Esq17jmT#95P+k>-wM&|YPcQG=)IL@71fZk>&veq+iRrPIK^)NQz7lOz{4A2F?B z`dS^IjGcHsB&^Vh0x!L{nt`6~D?<}a->t=zArvV4iM^9A@dwK;v0eDaFrcsoUURGu zL^|F5G@>1Q^K`hV1<)E#{o0_3&=mDlv&m|l|I8)MTvf&~B#N4vRKhpQC4ZpxMAB*= zP{y`cl&v9;FmAbC6!uc%q-=gblr^to?YYpE1`MyOpVocq?sm2gFVi*GVCHU37(^CZ znD}XpZn@Ewjf8P1f>ePfX3*Yjk7h&ooH>L%O9FMlh_yJco`IEP-5BR_;8c3`zCC#T zD1pCbBQylG(cUPaQ^{Go15`$|LHLP8w3CShUh&twkLs z4a9=%x*yKk7qqq$z_saedxwW>jcCVUNhU+c9;E@&)Z06=7Lga^);NFMPl6x-xmk*q ztO^G72Zt}FYNCWa%Hm7{g&*?*pp+iWs*IF!=2Sq)H3W46w&Rcl+W+s17yT?l9fI9m z{1i0Axja}bLoU~yLGXumySS%qJTrH_I%%(*+xQqXBw0q-!y-eES65Vpff9$(F-hkx7z(8p4rX#CP}bm V9PDYJGw=72OI}*e9+1I!K_AA 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

Tab key action (if no selection exists) Tab " +"to align the current line in the current code block like in Emacs, make " +"Tab a shortcut to the action Format Indentation." +"\">More ...

Tab düyməsini fəaliyyəti (əlavə heç nə seçilməyibsə) Tab Emacs-da olduğu kimi cari sətri cari kod " +"blokunda yerləşdirsin, o zaman Tab düyməsini Formatlaşdırılmış " +"abzas əməli üçün qısayol kimi seçin.\">Daha çox burada ...

" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabAdvances) +#: dialogs/indentationconfigwidget.ui:276 +#, kde-format +msgid "" +"If this option is selected, the Tab key always inserts white space so " +"that the next tab position is reached. If the option Insert spaces " +"instead of tabulators in the section Editing is enabled, spaces " +"are inserted; otherwise, a single tabulator is inserted." +msgstr "" +"Bu seçim seçildiyi təqdirdə, Tab düyməsinə vurmaq həmişə növbəti " +"tabulyator mövqeyinə çatanadək boşluqlar qoyur. Əgər Düzəliş " +"bölməsindəki Tab əvəzinə boşluqlar daxil et seçimi aktiv edilsə " +"boşluqlr qoyulacaqdır. Əks halda yalnız bir tab boşluğu qoyulacaqdır." + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabAdvances) +#: dialogs/indentationconfigwidget.ui:279 +#, kde-format +msgid "Always advance to the &next tab position" +msgstr "Həmişə &növbəti tab mövqeyinə keçin" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabIndents) +#: dialogs/indentationconfigwidget.ui:286 +#, kde-format +msgid "" +"If this option is selected, the Tab key always indents the current " +"line by the number of character positions specified in Indentation width." +msgstr "" +"Əgər bu seçim olunarsa Tab düyməsinə vurduqda göstərilmiş Abzas " +"eni seçimindəki işarələrin sayı qədər sətrlər daxil edir." + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabIndents) +#: dialogs/indentationconfigwidget.ui:289 +#, kde-format +msgid "Always increase indentation &level" +msgstr "Həmişə abzas sə&viyyəsini artırın" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabSmart) +#: dialogs/indentationconfigwidget.ui:296 +#, kde-format +msgid "" +"If this option is selected, the Tab key either indents the current " +"line or advances to the next tab position.

If the insertion point is at " +"or before the first non-space character in the line, or if there is a " +"selection, the current line is indented by the number of character positions " +"specified in Indentation width.

If the insertion point is located " +"after the first non-space character in the line and there is no selection, " +"white space is inserted so that the next tab position is reached: if the " +"option Insert spaces instead of tabulators in the section Editing is enabled, spaces are inserted; otherwise, a single tabulator is " +"inserted." +msgstr "" +"Bu seçim seçilərsə, Tab düyməsi cari sətrirə abzas daxil edir və ya " +"sonrakı tab vəziyyətinə irəliləyir.

Əgər kursor sətrin ilk boşluq olmayan " +"simvoluna qədər olan mövqedədirsə sətir boşluğu Abzas eniseçimindəki " +"qədər böyüyəcək.

Əgər Düzəlişbölməsində Tab-lar əvəzinə " +"boşluqlar daxil et seçimi aktiv edilərsə, boşluqlar daxil ediləcəkdir, " +"əks halda tək abzas qoyulacaqdır." + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabSmart) +#: dialogs/indentationconfigwidget.ui:299 +#, kde-format +msgid "Increase indentation level if in l&eading blank space" +msgstr "Boş sahənin ə&vvəlində abzas səviyyəsini böyüt" + +#: dialogs/katedialogs.cpp:185 dialogs/katedialogs.cpp:187 +#, fuzzy, kde-format +#| msgid " character" +#| msgid_plural " characters" +msgid "%v character" +msgid_plural "%v characters" +msgstr[0] " simvol" +msgstr[1] " simvollar" + +#: dialogs/katedialogs.cpp:211 +#, kde-format +msgid "Indentation" +msgstr "Abzas" + +#: dialogs/katedialogs.cpp:295 +#, kde-format +msgid "Auto Completion" +msgstr "Mətn doldurma" + +#: dialogs/katedialogs.cpp:362 +#, kde-format +msgid "Spellcheck" +msgstr "Orfoqrafiya yoxlaması" + +#: dialogs/katedialogs.cpp:410 dialogs/katedialogs.cpp:417 +#, kde-format +msgid "Alt" +msgstr "Alt" + +#: dialogs/katedialogs.cpp:411 dialogs/katedialogs.cpp:419 +#, kde-format +msgid "Ctrl" +msgstr "Ctrl" + +#: dialogs/katedialogs.cpp:412 +#, kde-format +msgid "Meta" +msgstr "Meta" + +#: dialogs/katedialogs.cpp:413 dialogs/katedialogs.cpp:421 +#, kde-format +msgid "Ctrl + Alt" +msgstr "Ctrl + Alt" + +#: dialogs/katedialogs.cpp:414 +#, kde-format +msgid "Meta + Alt" +msgstr "Meta + Alt" + +#: dialogs/katedialogs.cpp:415 +#, kde-format +msgid "Ctrl + Meta" +msgstr "Ctrl + Meta" + +#: dialogs/katedialogs.cpp:418 +#, kde-format +msgid "Cmd" +msgstr "Cmd" + +#: dialogs/katedialogs.cpp:420 +#, kde-format +msgid "Cmd + Alt" +msgstr "Cmd + Alt" + +#: dialogs/katedialogs.cpp:422 +#, kde-format +msgid "Cmd + Ctrl" +msgstr "Cmd + Ctrl" + +#: dialogs/katedialogs.cpp:480 +#, kde-format +msgid "Text Navigation" +msgstr "Mətn üzrə hərəkət" + +#: dialogs/katedialogs.cpp:582 +#, fuzzy, kde-format +#| msgid " character" +#| msgid_plural " characters" +msgctxt "Wrap words at (value is at 20 or larger)" +msgid "%v character" +msgid_plural "%v characters" +msgstr[0] " simvol" +msgstr[1] " simvollar" + +#: dialogs/katedialogs.cpp:587 +#, kde-format +msgid "Feature is not active" +msgstr "Funksiya aktiv deyil" + +#: dialogs/katedialogs.cpp:589 +#, kde-format +msgid "Disable Feature" +msgstr "İstifadə etməmək" + +#: dialogs/katedialogs.cpp:591 +#, kde-format +msgid "May be handy with Markdown" +msgstr "Markdown -da istifadə olunan simvollar toplusu" + +#: dialogs/katedialogs.cpp:593 +#, kde-format +msgid "Mirror characters, similar but not exactly like auto brackets" +msgstr "" +"Oxşar lakin tam avtomatik qoyulan qoşa mötərizələr kimi olmayan simvollar " +"toplusu" + +#: dialogs/katedialogs.cpp:595 +#, kde-format +msgid "Non letter character" +msgstr "Hərf olmayan simvollar" + +#: dialogs/katedialogs.cpp:712 +#, kde-format +msgid "Editing" +msgstr "Düzəliş" + +#: dialogs/katedialogs.cpp:717 +#, kde-format +msgid "Editing Options" +msgstr "Düzəliş seçimləri" + +#: dialogs/katedialogs.cpp:751 +#, kde-format +msgid "Statusbar" +msgstr "Vəziyyət paneli" + +#: dialogs/katedialogs.cpp:753 +#, kde-format +msgid "Off" +msgstr "Söndürülmüş" + +#: dialogs/katedialogs.cpp:754 +#, kde-format +msgid "Follow Line Numbers" +msgstr "Sətir nömrələrini izləyin" + +#: dialogs/katedialogs.cpp:945 dialogs/katedialogs.cpp:950 +#, kde-format +msgid "Appearance" +msgstr "Görünüş" + +#: dialogs/katedialogs.cpp:986 +#, kde-format +msgid "" +"%1 backs up unsaved files to \"swap files.\" Swap files allow %1 to recover " +"your work in the case of a system crash. Disabling swap files may cause data " +"loss in case of a system crash." +msgstr "" +"%1 saxlanılmamış faylların \"mübadilə faylları\"nda ehtiyyat nüsxələsini " +"saxlayır. Mübadilə faylları, sisteminizin işinin pozulması halında, " +"işlərinizin bərpa olunmasına %1 üçün icazəni təmin edir. Mübadilə " +"fayllarının söndürülməsi sisteminizin çökməsi zamanı verilənlərinizin " +"itirilməsinə səbəb ola bilər." + +#: dialogs/katedialogs.cpp:1027 +#, kde-format +msgid "Advanced" +msgstr "Təkmil" + +#: dialogs/katedialogs.cpp:1092 +#, kde-format +msgid "" +"You did not provide a backup suffix or prefix. Using default suffix: '~'" +msgstr "" +"Yedek faylları üçün son şəkilçi və ya ön şəkilçi təyin etməmisiniz. Standart " +"istifadə olunan suffiks: '~'" + +#: dialogs/katedialogs.cpp:1092 +#, kde-format +msgid "No Backup Suffix or Prefix" +msgstr "Son şəkilçi və ön şəkilçini yedəkləmə" + +#: dialogs/katedialogs.cpp:1227 +#, kde-format +msgid "Open/Save" +msgstr "Açın/Saxlayın" + +#: dialogs/katedialogs.cpp:1232 +#, kde-format +msgid "File Opening & Saving" +msgstr "Faylın Açılması və Saxlanılması" + +#: dialogs/katedialogs.cpp:1255 +#, kde-format +msgid "&Line:" +msgstr "&Sətir:" + +#: dialogs/katedialogs.cpp:1256 +#, kde-format +msgid "Go to line number from clipboard" +msgstr "Yaddaş buferindən nömrəli sətirə keçin" + +#: dialogs/katedialogs.cpp:1267 +#, kde-format +msgid "Go to" +msgstr "Keçmək" + +#: dialogs/katedialogs.cpp:1347 +#, kde-format +msgid "No valid line number found in clipboard" +msgstr "Yaddaş buferində düzgün sətir nömrəsi tapılmadı" + +#: dialogs/katedialogs.cpp:1411 +#, kde-format +msgid "Dictionary:" +msgstr "Lüğət:" + +#: dialogs/katedialogs.cpp:1463 +#, kde-format +msgid "Enable Auto Reload" +msgstr "Avtomatik yenilənməni aktiv et" + +#: dialogs/katedialogs.cpp:1466 +#, kde-format +msgid "" +"Reloads and will automatically reload without warning about disk changes " +"from now until you close either the tab or window." +msgstr "" + +#: dialogs/katedialogs.cpp:1471 +#, kde-format +msgid "View &Difference" +msgstr "&Fərqlərə baxmaq" + +#: dialogs/katedialogs.cpp:1473 +#, fuzzy, kde-format +#| msgid "Shows a diff of the changes" +msgid "Shows a diff of the changes." +msgstr "Dəyişiklikləri göstərmək" + +#: dialogs/katedialogs.cpp:1478 +#, kde-format +msgid "&Reload" +msgstr "&Yenidən yüklə" + +#: dialogs/katedialogs.cpp:1480 +#, fuzzy, kde-format +#| msgid "Reload the file from disk. Unsaved changes will be lost." +msgid "Reloads the file from disk. Unsaved changes will be lost." +msgstr "" +"Faylları diskdən yenidən yüklə. Saxlanılmamış dəyişikliklər itiriləcəkdir." + +#: dialogs/katedialogs.cpp:1484 +#, kde-format +msgctxt "@action:button closes the opened file" +msgid "&Close File" +msgstr "&Faylı bağla" + +#: dialogs/katedialogs.cpp:1486 +#, fuzzy, kde-format +#| msgid "Close the file, discarding its content." +msgid "Closes the file, discarding its content." +msgstr "Dəyişiklikləri saxlamadan faylı bağlamaq." + +#: dialogs/katedialogs.cpp:1490 +#, fuzzy, kde-format +#| msgid "&Save As..." +msgctxt "@action" +msgid "&Save As…" +msgstr "Belə &saxla..." + +#: dialogs/katedialogs.cpp:1492 +#, kde-format +msgid "Lets you select a location and save the file again." +msgstr "Bir yer seç və yenidən saxla." + +#. i18n: ectx: property (text), widget (QPushButton, m_skipBtn) +#: dialogs/katedialogs.cpp:1497 spellcheck/spellcheckbar.ui:143 +#, kde-format +msgid "&Ignore" +msgstr "&Nəzərə almamaq" + +#: dialogs/katedialogs.cpp:1498 +#, kde-format +msgid "Ignores the changes on disk without any action." +msgstr "Heç bir hərəkət etmədən diskdəki dəyişiklikləri ğözardı etmək." + +#: dialogs/katedialogs.cpp:1567 swapfile/kateswapdiffcreator.cpp:131 +#, kde-format +msgid "" +"The diff command failed. Please make sure that diff(1) is installed and in " +"your PATH." +msgstr "" +"\"diff\" əmri uğursuz oldu. diff(1) proqramının sisteminizdə " +"quraşdırıldığına və PATH -ın təyin etdiyi yerdə olmasına əmin olun." + +#: dialogs/katedialogs.cpp:1569 swapfile/kateswapdiffcreator.cpp:89 +#: swapfile/kateswapdiffcreator.cpp:99 swapfile/kateswapdiffcreator.cpp:133 +#, kde-format +msgid "Error Creating Diff" +msgstr "Müqayisə zamanı xəta" + +#: dialogs/katedialogs.cpp:1576 swapfile/kateswapdiffcreator.cpp:140 +#, kde-format +msgid "The files are identical." +msgstr "Bu fayllar eynidir" + +#: dialogs/katedialogs.cpp:1576 swapfile/kateswapdiffcreator.cpp:140 +#, kde-format +msgid "Diff Output" +msgstr "Müqayisə nəticəsi" + +#. i18n: ectx: property (title), widget (QGroupBox, gbCursorMovement) +#: dialogs/navigationconfigwidget.ui:29 +#, kde-format +msgid "Text Cursor Movement" +msgstr "Kursorun yerdəyişməsi" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkSmartHome) +#: dialogs/navigationconfigwidget.ui:35 +#, kde-format +msgid "" +"When selected, pressing the home key will cause the cursor to skip " +"whitespace and go to the start of a line's text. The same applies for the " +"end key." +msgstr "" +"Bu seçimdə Home düyməsini vurduqda kursor sətrin əvvəlindəki boşuqları " +"ötürür və mətnin əvvəlindəki sətirə keçir. Eynisi End düyməsinə də tətbiq " +"olunur." + +#. i18n: ectx: property (text), widget (QCheckBox, chkSmartHome) +#: dialogs/navigationconfigwidget.ui:38 +#, kde-format +msgid "Smart ho&me and smart end" +msgstr "İntelektual Ho&me və End düymələri" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkPagingMovesCursor) +#: dialogs/navigationconfigwidget.ui:45 +#, kde-format +msgid "" +"Selects whether the PageUp and PageDown keys should alter the vertical " +"position of the cursor relative to the top of the view." +msgstr "" +"PageUp və PageDown düymələrinə basdıqda kursorun olduğu şaquli yerinin " +"dəyişdirilib - dəyişdirilməyəcəyini müəyyən edir." + +#. i18n: ectx: property (text), widget (QCheckBox, chkPagingMovesCursor) +#: dialogs/navigationconfigwidget.ui:48 +#, kde-format +msgid "&PageUp/PageDown moves cursor" +msgstr "&PageUp/PageDown kursor yerdəyişməsi" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkCamelCursor) +#: dialogs/navigationconfigwidget.ui:55 +#, fuzzy, kde-format +#| msgid "" +#| "Selects whether cursor jumps full words or breaks at camel case humps." +msgid "" +"Selects whether cursor stops at camel case humps and underscores within a " +"word." +msgstr "" +"Kursorun tam sözlər üzrə yerdəyişməsini və ya camel_case üzərində i dayanıb " +"dağılıb dağılmayacağını seçir" + +#. i18n: ectx: property (text), widget (QCheckBox, chkCamelCursor) +#: dialogs/navigationconfigwidget.ui:58 +#, kde-format +msgid "" +"Stop at 'camelCase' and 'snake_case' subwords when moving the cursor by word" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:79 +#, kde-format +msgid "&Autocenter cursor:" +msgstr "Sətrin kənarı ilə kursor arasında &saxlamaq:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:89 +#, kde-format +msgid "" +"Sets the number of lines to maintain visible above and below the cursor when " +"possible." +msgstr "" +"Kursorun yerləşdiyi sətirlərin üstündə və altında mümkün qədər görünən " +"şəkildə saxlanlan sətirlərin sayı." + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, spbSwapFileSync) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:92 dialogs/opensaveconfigadvwidget.ui:120 +#: dialogs/opensaveconfigadvwidget.ui:168 +#, kde-format +msgid "Disabled" +msgstr "Söndürülüb" + +#. i18n: ectx: property (suffix), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:95 +#, kde-format +msgid " lines" +msgstr " sətirlər" + +#. i18n: ectx: property (title), widget (QGroupBox, cbNavigationMisc) +#: dialogs/navigationconfigwidget.ui:120 +#, kde-format +msgid "Misc" +msgstr "Müxtəlif" + +#. i18n: ectx: property (text), widget (QLabel, lblTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:128 +#, kde-format +msgid "Text selection mode:" +msgstr "Mətn seçmə rejimi:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:139 inputmode/katenormalinputmode.cpp:64 +#: mode/katemodemanager.cpp:162 +#, kde-format +msgid "Normal" +msgstr "Normal" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:144 +#, kde-format +msgid "Persistent" +msgstr "Daimi" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollPastEnd) +#: dialogs/navigationconfigwidget.ui:167 +#, kde-format +msgid "Allow scrolling past the end of the document" +msgstr "Sənədi sonuna keçməyə icazə verir" + +# Diakritik işarə. Hərflərin səsini dəyişdirmək üçün onların üstündə və ya altında qoyulan işarə; məs., ‘ü’ hərfinin üstündəki iki nöqtə +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackspaceRemoveComposed) +#: dialogs/navigationconfigwidget.ui:174 +#, kde-format +msgid "" +"When selected, composed characters are removed with their diacritics instead " +"of only removing the base character. This is useful for Indic locales." +msgstr "" +"Bu rejim seçilərsə təkcə simvollar deyil habelə, diakritik işarələri ilə " +"simvollar da silinəcək Bu daha çox Hind-ari dilləri üçün faydalıdır." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackspaceRemoveComposed) +#: dialogs/navigationconfigwidget.ui:177 +#, kde-format +msgid "Backspace key removes character’s base with its diacritics" +msgstr "" +"Backspace düyməsi simvolları onların diakritik işarələri ilə birlikdə silir." + +#. i18n: ectx: property (text), widget (QCheckBox, cbCycleBookmarks) +#: dialogs/navigationconfigwidget.ui:184 +#, fuzzy, kde-format +#| msgid "Go to the previous bookmark." +msgid "Allow to cycle through bookmarks" +msgstr "Əvvəlki əlfəcinə keçin." + +#. i18n: ectx: property (title), widget (QGroupBox, gbMulticursor) +#: dialogs/navigationconfigwidget.ui:194 +#, kde-format +msgid "Multicursor" +msgstr "Multikursor" + +#. i18n: ectx: property (text), widget (QLabel, lblMulticursormodifiers) +#: dialogs/navigationconfigwidget.ui:200 +#, kde-format +msgid "Multiple Cursor Modifiers" +msgstr "Multi kursor modifikatoru" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoReloadVersionControl) +#: dialogs/opensaveconfigadvwidget.ui:34 +#, kde-format +msgid "Auto reload files in version control" +msgstr "Versiyaya nəzarətdə fayllar avtomatik təkrar yüklənsin" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoReloadOnExternalChanges) +#: dialogs/opensaveconfigadvwidget.ui:41 +#, fuzzy, kde-format +#| msgid "Auto reload files in version control" +msgid "Auto reload files on external changes" +msgstr "Versiyaya nəzarətdə fayllar avtomatik təkrar yüklənsin" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/opensaveconfigadvwidget.ui:48 +#, kde-format +msgid "Write a backup file on save for:" +msgstr "Saxlayın üçün bir ehtiyyat nüsxə faylı yazın:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackupLocalFiles) +#: dialogs/opensaveconfigadvwidget.ui:55 +#, kde-format +msgid "" +"If this option is enabled, backups for local files will be created when " +"saving." +msgstr "" +"Bu seçim aktiv olunarsa saxlanılma zamanı lokal faylların ehtiyyat nüsxələri " +"yaradılacaq." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackupLocalFiles) +#: dialogs/opensaveconfigadvwidget.ui:58 +#, kde-format +msgid "&Local files" +msgstr "&Lokal fayllar" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackupRemoteFiles) +#: dialogs/opensaveconfigadvwidget.ui:65 +#, kde-format +msgid "" +"If this option is enabled, backups for remote files will be created when " +"saving." +msgstr "" +"Bu seçim aktiv olunarsa, saxlanılma zaman uzaq komputerdəki faylların " +"ehtiyyat nüsxələri yaradılacaq." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackupRemoteFiles) +#: dialogs/opensaveconfigadvwidget.ui:68 +#, kde-format +msgid "&Remote files" +msgstr "&Uzaq fayllar üçün" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/opensaveconfigadvwidget.ui:75 +#, kde-format +msgid "Prefix for backup files:" +msgstr "Ehtiyyat nüsxə faylı üçün prefiks:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtBackupPrefix) +#: dialogs/opensaveconfigadvwidget.ui:85 +#, kde-format +msgid "Enter the prefix to prepend to the backup file names." +msgstr "Yedek faylın adlarının əvvəlinə əlavə etmək üçün sözönünü daxil edin." + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/opensaveconfigadvwidget.ui:92 +#, kde-format +msgid "Suffix for backup files:" +msgstr "Ehtiyyat nüsxə faylı üçün suffiks:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtBackupSuffix) +#: dialogs/opensaveconfigadvwidget.ui:102 +#, kde-format +msgid "Enter the suffix to append to the backup file names." +msgstr "Yedek faylın adlarına əlavə etmək üçün şəkilçini daxil edin." + +# Swap Faylı - Yüklənmə faylı. Gizlənmiş [görünməyən] böyük sistem faylı. +#. i18n: ectx: property (text), widget (QLabel, lblSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:109 +#, kde-format +msgid "Swap file mode:" +msgstr "Mübadilə faylı rejimi:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:125 +#, kde-format +msgid "Enabled, Store In Default Directory" +msgstr "Aktiv olundu, İlkin kataloqda saxlayın" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:130 +#, kde-format +msgid "Enabled, Store In Custom Directory" +msgstr "Aktiv olundu, Başqa kataloqda saxlayın" + +# Swap Faylı - Yüklənmə faylı. Gizlənmiş [görünməyən] böyük sistem faylı. +#. i18n: ectx: property (text), widget (QLabel, lblSwapDirectory) +#: dialogs/opensaveconfigadvwidget.ui:138 +#, kde-format +msgid "Store swap files in:" +msgstr "Mübadilə fayllarının saxlama yeri:" + +# Swap Faylı - Yüklənmə faylı. Gizlənmiş [görünməyən] böyük sistem faylı. +#. i18n: ectx: property (text), widget (QLabel, lblSwapFileSync) +#: dialogs/opensaveconfigadvwidget.ui:158 +#, kde-format +msgid "Save swap files every:" +msgstr "Mübadilə fayllarını hər dəfə bu şərtlə saxlayın:" + +#. i18n: ectx: property (suffix), widget (QSpinBox, spbSwapFileSync) +#: dialogs/opensaveconfigadvwidget.ui:171 +#, kde-format +msgid "s" +msgstr "s" + +#. i18n: ectx: property (text), widget (QLabel, lblExplanatory) +#: dialogs/opensaveconfigadvwidget.ui:196 +#, kde-format +msgid "" +"This string is located in katedialogs.cpp in KateSaveConfigTab's constructor." +msgstr "" +"Bu sətir KateSaveConfigTab konstruktorundakı katedialogs.cpp faylında " +"yerləşir." + +#. i18n: ectx: property (text), widget (QCheckBox, chkEditorConfig) +#: dialogs/opensaveconfigadvwidget.ui:209 +#, kde-format +msgid "Honor settings in .editorconfig file" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkUseFirstLineAsDocName) +#: dialogs/opensaveconfigadvwidget.ui:229 +#, kde-format +msgid "Use first line of untitled documents for document name" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbFileFormat) +#: dialogs/opensaveconfigwidget.ui:29 +#, kde-format +msgid "File Format" +msgstr "Fayl formatı" + +#. i18n: ectx: property (text), widget (QLabel, lblEncoding) +#: dialogs/opensaveconfigwidget.ui:40 +#, kde-format +msgid "&Encoding:" +msgstr "&Kodlaşma:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncoding) +#: dialogs/opensaveconfigwidget.ui:50 +#, kde-format +msgid "" +"This defines the standard encoding to use to open/save files, if not changed " +"in the open/save dialog or by using a command line option." +msgstr "" +"Standart olaraq açılan və saxlanılan faylların standart kodlaşdırılması. Bu " +"kodlaşmanı əmrlər sətrinə yönədərək faylların açılması/saxlanılması " +"dialoqunda dəyişmək olar." + +#. i18n: ectx: property (text), widget (QLabel, lblEncodingDetection) +#: dialogs/opensaveconfigwidget.ui:57 +#, kde-format +msgid "&Encoding detection:" +msgstr "&Kodlaşma aşkar edildi:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncodingDetection) +#: dialogs/opensaveconfigwidget.ui:67 +#, kde-format +msgid "" +"if neither the encoding chosen as standard above, nor the encoding specified " +"in the open/save dialog, nor the encoding specified on command line match " +"the content of the file, this detection will be run." +msgstr "" +"Yuxarıda standart olaraq seçilmiş kodlaşdırma, ya da açmaq/saxlamaq " +"dialoqunda göstərilən kodlaşdırma və ya əmr sətırında göstərilən kodlaşdırma " +"faylın məzmununa uyğun gəlmirsə, bu aşkarlama işə salınacaqdır." + +#. i18n: ectx: property (text), widget (QLabel, lblEncodingDetection2) +#: dialogs/opensaveconfigwidget.ui:74 +#, kde-format +msgid "&Fallback encoding:" +msgstr "&Ehtiyat kodlaşdırma:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncodingFallback) +#: dialogs/opensaveconfigwidget.ui:84 +#, kde-format +msgid "" +"This defines the fallback encoding to try for opening files if neither the " +"encoding chosen as standard above, nor the encoding specified in the open/" +"save dialog, nor the encoding specified on command line match the content of " +"the file. Before this is used, an attempt will be made to determine the " +"encoding to use by looking for a byte order mark at start of file: if one is " +"found, the right Unicode encoding will be chosen; otherwise encoding " +"detection will run, if both fail the fallback encoding will be tried." +msgstr "" +"Bu nə yuxarıda standart kimi seçilmiş kodlaşdırma, nə açmaq/saxlamaq " +"dialoqunda göstərilən kodlaşdırma, nə də əmr satırında göstərilən " +"kodlaşdırma faylın məzmununa uyğun gəlmirsə, faylları açmağa cəhd etmək üçün " +"ehtiyat kodlaşdırmanı təyin edir. Bu istifadə edilməmişdən əvvəl, faylın " +"başlanğıcında bayt sırası nişanını axtararaq istifadə ediləcək kodlaşdırmanı " +"təyin etməyə cəhd ediləcəkdir: əgər tapılsa, düzgün Unicode kodlaşdırması " +"seçiləcəkdir; əks halda kodlaşdırma aşkarlanması işə düşür, hər ikisi " +"uğursuz olarsa ehtiyyat kodlaşdırmadan istifadə olunmağa cəhd ediləcək." + +#. i18n: ectx: property (text), widget (QLabel, lblEOL) +#: dialogs/opensaveconfigwidget.ui:91 +#, kde-format +msgid "E&nd of line:" +msgstr "Sətri&n sonu:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:102 +#, kde-format +msgid "UNIX" +msgstr "UNİX" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:107 +#, kde-format +msgid "DOS/Windows" +msgstr "DOS/Windows" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:112 +#, kde-format +msgid "Macintosh" +msgstr "Macintosh" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkDetectEOL) +#: dialogs/opensaveconfigwidget.ui:122 +#, kde-format +msgid "" +"If this option is enabled the editor will autodetect the end of line type. " +"The first found end of line type will be used for the whole file." +msgstr "" +"Bu seçim aktivdirsə, redaktor sətır növünün sonunu avtomatik olaraq təyin " +"edəcəkdir. Sətir növünün ilk tapılmış sonu bütün fayl üçün istifadə " +"ediləcəkdir." + +#. i18n: ectx: property (text), widget (QCheckBox, chkDetectEOL) +#: dialogs/opensaveconfigwidget.ui:125 +#, kde-format +msgid "A&utomatic end of line detection" +msgstr "&Son sətrin avtomatik aşkarlanması" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkEnableBOM) +#: dialogs/opensaveconfigwidget.ui:132 +#, kde-format +msgid "" +"The byte order mark is a special sequence at the beginning of Unicode " +"encoded documents. It helps editors to open text documents with the correct " +"Unicode encoding. The byte order mark is not visible in the displayed " +"document." +msgstr "" +"Bayt sırası nişanı, Unicode ilə kodlanmış sənədlərin başlanğıcında xüsusi " +"bir ardıcıllıqdır. Redaktorlara mətn sənədlərini düzgün Unicode " +"kodlaşdırması ilə açmağa kömək edir. Bayt sırası nişanı, göstərilən sənəddə " +"görünmür." + +#. i18n: ectx: property (text), widget (QCheckBox, chkEnableBOM) +#: dialogs/opensaveconfigwidget.ui:135 +#, kde-format +msgid "Enable byte order mark (BOM)" +msgstr "Bayt sırası nişanını (BOM) aktiv et" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/opensaveconfigwidget.ui:142 +#, kde-format +msgid "Line length limit:" +msgstr "Sətir uzunluğu limiti:" + +#. i18n: ectx: property (specialValueText), widget (QSpinBox, lineLengthLimit) +#: dialogs/opensaveconfigwidget.ui:152 +#, kde-format +msgid "Unlimited" +msgstr "Limitsiz" + +#. i18n: ectx: property (title), widget (QGroupBox, gbCleanups) +#: dialogs/opensaveconfigwidget.ui:168 +#, kde-format +msgid "Automatic Cleanups on Save" +msgstr "Saxlanıma zamanı avtomatik təmizlənmə" + +#. i18n: ectx: property (whatsThis), widget (QLabel, lblRemoveTrailingSpaces) +#. i18n: ectx: property (whatsThis), widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:176 dialogs/opensaveconfigwidget.ui:189 +#, kde-format +msgid "" +"Depending on the choice, trailing spaces are removed when saving a document, " +"either in the entire document or only of modified lines." +msgstr "" +"Bu seçimdən asılı olaraq sənəd saxlanılırkən ya bütün sənəddə ya da " +"dəyişdirilmiş sətirlərin sonundakı boşluqlar silinir." + +#. i18n: ectx: property (text), widget (QLabel, lblRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:179 +#, kde-format +msgid "Re&move trailing spaces:" +msgstr "Lazı&msız boşluqları sil:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, spbAutoSaveInterval) +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/opensaveconfigwidget.ui:193 dialogs/opensaveconfigwidget.ui:270 +#: dialogs/textareaappearanceconfigwidget.ui:104 +#, kde-format +msgid "Never" +msgstr "Heç vaxt" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:198 +#, kde-format +msgid "On Modified Lines" +msgstr "Dəyişdirilən Sətirlərdə" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:203 +#, kde-format +msgid "In Entire Document" +msgstr "Bütün Sənədlərdə" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkNewLineAtEof) +#: dialogs/opensaveconfigwidget.ui:226 +#, kde-format +msgid "" +"On save, a line break is appended to the document if not already present. " +"The line break is visible after reloading the file." +msgstr "" +"Saxlama əsnasında əgər sənədin sonunda verilməyibsə sənədlərarası boşluq " +"əlavə olunur. Bu boşluq sənəd növbəti dəfə açıldıqda görünür." + +#. i18n: ectx: property (text), widget (QCheckBox, chkNewLineAtEof) +#: dialogs/opensaveconfigwidget.ui:229 +#, kde-format +msgid "Append newline at end of file on save" +msgstr "Saxlanılan sənədin sonuna yeni sətir əlavə et" + +#. i18n: ectx: property (title), widget (QGroupBox, gbAutoSave) +#: dialogs/opensaveconfigwidget.ui:239 +#, kde-format +msgid "Enable Auto Save (local files only)" +msgstr "Avtomatik saxlamanı aktiv etmək (yalnız yerli fayllar)" + +#. i18n: ectx: property (text), widget (QCheckBox, cbAutoSaveOnFocus) +#: dialogs/opensaveconfigwidget.ui:254 +#, fuzzy, kde-format +#| msgid "Auto save document when focus leaves the editor" +msgid "Auto save document when the active document is losing focus" +msgstr "Fokus redaktoru tərk etdikdə sənəd avtomatik saxlanılsın" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/opensaveconfigwidget.ui:263 +#, kde-format +msgid "Auto save interval:" +msgstr "Avtoatik saxlama aralığı:" + +#. i18n: ectx: property (suffix), widget (QSpinBox, spbAutoSaveInterval) +#: dialogs/opensaveconfigwidget.ui:273 +#, kde-format +msgid " seconds" +msgstr " saniyələr" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowHighlightingMode) +#: dialogs/statusbarconfigwidget.ui:19 +#, kde-format +msgid "Show highlighting mode" +msgstr "İşarələmə rejimini göstərmək" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowInputMode) +#: dialogs/statusbarconfigwidget.ui:26 +#, kde-format +msgid "Show input mode" +msgstr "Daxiletmə rejimini göstərmək" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowActiveDictionary) +#: dialogs/statusbarconfigwidget.ui:33 +#, kde-format +msgid "Show active dictionary" +msgstr "İşlək lüğəti göstərmək" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowTabSetting) +#: dialogs/statusbarconfigwidget.ui:40 +#, kde-format +msgid "Show tab setting" +msgstr "Vərəq ayarlarını" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowLineColumn) +#: dialogs/statusbarconfigwidget.ui:47 +#, kde-format +msgid "Show line column" +msgstr "Xəttin mövqeyini göstərmək" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowEncoding) +#: dialogs/statusbarconfigwidget.ui:54 +#, kde-format +msgid "Show File Encoding" +msgstr "Fayl kodlaşmasını göstərmək" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowEOL) +#: dialogs/statusbarconfigwidget.ui:61 +#, kde-format +msgid "Show Line Ending Type" +msgstr "Sətrin sona çatması növünü göstərmək" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/textareaappearanceconfigwidget.ui:28 +#, kde-format +msgid "Editor font:" +msgstr "Şrift redaktoru:" + +#. i18n: ectx: property (text), widget (QLabel, lblLineHeight) +#: dialogs/textareaappearanceconfigwidget.ui:48 +#, fuzzy, kde-format +#| msgid "Line Height Multiplier:" +msgid "&Line Height Multiplier:" +msgstr "Sətir hündürlüyü çoxaldıcısı:" + +#. i18n: ectx: property (toolTip), widget (QDoubleSpinBox, spbLineHeightMultiplier) +#: dialogs/textareaappearanceconfigwidget.ui:58 +#, kde-format +msgid "" +"This value will be multiplied with the font's default line height. A value " +"of 1.0 means that the default height will be used." +msgstr "" +"Bu göstərici şriftin standart sətir hündürlüyünə vurulacaqdır. 1.0 dəyəri o " +"deməkdir ki, standart hündürlük istifadə oluncaq." + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/textareaappearanceconfigwidget.ui:93 +#, kde-format +msgid "Show whitespace indicators:" +msgstr "Ara boşluğu göstəricisini göstərmək:" + +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/textareaappearanceconfigwidget.ui:109 +#, kde-format +msgid "At the end of a line" +msgstr "Sətirin sonunda" + +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/textareaappearanceconfigwidget.ui:114 +#, kde-format +msgid "Always" +msgstr "Həmişə" + +#. i18n: ectx: property (text), widget (QLabel, lbMarkerDescription) +#: dialogs/textareaappearanceconfigwidget.ui:122 +#, fuzzy, kde-format +#| msgid "Whitespace indicator size:" +msgid "Whitespace indicator si&ze:" +msgstr "Boşluq göstəricisinin ölçüsü:" + +#. i18n: ectx: property (whatsThis), widget (QSlider, sliSetMarkerSize) +#: dialogs/textareaappearanceconfigwidget.ui:138 +#, kde-format +msgid "Size of the visible highlight marker." +msgstr "Görünən işıqlanma markerinin ölçüsü." + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/textareaappearanceconfigwidget.ui:166 +#, fuzzy, kde-format +#| msgid "Show tab indicators:" +msgid "Show &tab indicators:" +msgstr "Vərəq göstəricisini gösərmək:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowTabs) +#: dialogs/textareaappearanceconfigwidget.ui:176 +#, kde-format +msgid "" +"The editor will display a symbol to indicate the presence of a tab in the " +"text." +msgstr "Tab simvollarının mətndə görünüşü." + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/textareaappearanceconfigwidget.ui:202 +#, kde-format +msgid "Bracket matching:" +msgstr "Mötərizə uyğunluğu:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowWholeBracketExpression) +#: dialogs/textareaappearanceconfigwidget.ui:209 +#, kde-format +msgid "" +"If this is enabled, the range between the selected matching brackets will be " +"highlighted." +msgstr "" +"Əgər bu seçim aktiv edilibsə mötərizələr arasında boşluqlar işıqlanacaq." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowWholeBracketExpression) +#: dialogs/textareaappearanceconfigwidget.ui:212 +#, kde-format +msgid "Highlight range between selected brackets" +msgstr "Mötərizələr arasında boşluqları işıqlandır" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:219 +#, kde-format +msgid "Show the matching open bracket and lines adjacent to it for context" +msgstr "Kontekst üçün uyğun açıq mötərizəni və ona bitişik xətləri göstərin" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:222 +#, kde-format +msgid "" +"If this is enabled, a preview of the lines near a matching open bracket is " +"shown. This can help in quickly determining the context of a closing " +"bracket, especially in long function/class declarations and deeply nested if " +"blocks" +msgstr "" +"Parametr aktiv edilərsə, uyğun açıq mötərizənin yaxınlığında olan xətlərin " +"necə görünəcəyini əvvəlcədən göstərir. Bu, xüsusən uzun funksiya/sinif " +"məlumatlarında və dərin yerləşdirilmiş if bloklarında bağlanan mötərizənin " +"kontekstini cəld təyin etməyə imkan verir." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:225 +#, kde-format +msgid "Show preview of matching open bracket" +msgstr "Uyğun açıq mötərizənin necə görünəcəyini göstərir" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:232 +#, kde-format +msgid "Flash matching brackets" +msgstr "Qoşa boşluqların sayrışması" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:235 +#, kde-format +msgid "" +"If this is enabled, matching brackets are animated for better visibility." +msgstr "Bu seçimdə qoşa mötərizələr daha gözəçarpan olması üçün sayrışacaq." + +#. i18n: ectx: property (text), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:238 +#, kde-format +msgid "Flash matching bracket when cursor moves to other bracket in pair" +msgstr "" +"Kursor başqa cütdəki mötərizəyə kecdiyi zaman oxşar mötərizələrin işıqlanması" + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/textareaappearanceconfigwidget.ui:261 +#, kde-format +msgid "Counts:" +msgstr "Sayları:" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowWordCount) +#: dialogs/textareaappearanceconfigwidget.ui:268 +#, kde-format +msgid "Show/hide word count in status bar" +msgstr "Vəziyyət çubuğunda sözlərin sayını göstər/gizlət" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowWordCount) +#: dialogs/textareaappearanceconfigwidget.ui:271 view/katestatusbar.cpp:258 +#, kde-format +msgid "Show word count" +msgstr "Sözlərin sayını göstər" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowLineCount) +#: dialogs/textareaappearanceconfigwidget.ui:278 +#, kde-format +msgid "Show/hide line count in status bar" +msgstr "Vəziyyət çubuğunda sətirlərin sayını göstər/gizlət" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowLineCount) +#: dialogs/textareaappearanceconfigwidget.ui:281 view/katestatusbar.cpp:255 +#, kde-format +msgid "Show line count" +msgstr "Sətirlərin sayını göstər" + +#. i18n: ectx: property (text), widget (QLabel, label_25) +#: dialogs/textareaappearanceconfigwidget.ui:304 +#, fuzzy, kde-format +#| msgid "Fold first line" +msgid "Fold first line:" +msgstr "Birinci sətri qatlayın" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkFoldFirstLine) +#: dialogs/textareaappearanceconfigwidget.ui:317 +#, kde-format +msgid "" +"When this setting is enabled, the editor view automatically folds\n" +"comment blocks that start on the first line of the document. This is\n" +"helpful to hide license headers which are commonly placed at the\n" +"beginning of a file." +msgstr "" +"Bu parametr aktiv olduqda, redaktor görünüşü avtomatik olaraq\n" +"sənədin birinci sətirində başlayan şərh bloklarını qatlayır. Bir qayda\n" +"olaraq bir faylın əvvəlində yerləşdirilən lisenziya başlıqlarını\n" +"gizlətmək faydalıdır." + +#. i18n: ectx: property (text), widget (QCheckBox, cbxWordWrap) +#: dialogs/textareaappearanceconfigwidget.ui:337 +#, kde-format +msgid "Dynamic Word Wrap:" +msgstr "Dinamik sətirə keçilmə:" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDynWrapAtStaticMarker) +#: dialogs/textareaappearanceconfigwidget.ui:344 +#, kde-format +msgid "Wrap dynamically at static word wrap marker" +msgstr "Sabit sətrə keçmə nişanına görə dinamik sətrə keçmə" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDynWrapAnywhere) +#: dialogs/textareaappearanceconfigwidget.ui:351 +#, kde-format +msgid "Disregard word boundaries for dynamic wrapping" +msgstr "Dinamik sətrə keçmək üçün sözlərin kənarlarını nəzərə almamaq" + +#. i18n: ectx: property (text), widget (QLabel, lblDynamicWordWrapIndicators) +#: dialogs/textareaappearanceconfigwidget.ui:358 +#, kde-format +msgid "D&ynamic word wrap indicators:" +msgstr "D&inamik sətirə keçid göstəriciləri:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbDynamicWordWrapIndicator) +#: dialogs/textareaappearanceconfigwidget.ui:368 +#, kde-format +msgid "Choose when the Dynamic Word Wrap Indicators should be displayed." +msgstr "Dinamik sətirə keçmə nişanlarının nə vaxt göstəriləcəyini seçin." + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/textareaappearanceconfigwidget.ui:391 +#, fuzzy, kde-format +#| msgid "Indent wrapped lines:" +msgid "I&ndent wrapped lines:" +msgstr "Abzası keçirilmiş sətirlər:" + +#. i18n: ectx: property (text), widget (QLabel, lblDynamicWordWrapIndicators_2) +#: dialogs/textareaappearanceconfigwidget.ui:408 +#, fuzzy, kde-format +#| msgid "Don't indent lines wider than:" +msgid "&Don't indent lines wider than:" +msgstr "Sətr arasını göstəriləndən geniş etməyin:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbDynamicWordWrapDepth) +#: dialogs/textareaappearanceconfigwidget.ui:424 +#, no-c-format, kde-format +msgid "" +"

Enables the start of dynamically wrapped lines to be aligned vertically " +"to the indentation level of the first line. This can help to make code and " +"markup more readable.

Additionally, this allows you to set a maximum " +"width of the screen, as a percentage, after which dynamically wrapped lines " +"will no longer be vertically aligned. For example, at 50%, lines whose " +"indentation levels are deeper than 50% of the width of the screen will not " +"have vertical alignment applied to subsequent wrapped lines.

" +msgstr "" +"

Dinamik sürüşdürülən sətirlərin əvvəlinin, ilk şaquli sətirin abzas " +"səviyyəsinə görə yerləşdirilməsini aktiv edin. Bu kod və işarələməni daha " +"oxunaqlı hala gətirməyə kömək edə bilər.

Əlavə olaraq ekranın maksimum " +"genişliyini faizlə göstərməy imkan verir. Beləcə dinamik olaraq sürüşdürülən " +"sətirlər bundan sonra şaquli olaraq yerləşdirilməyəcəkdir. Misal üçün " +"ekranın eninin 50%-ni aşmayan abzas dərinliyi sətirlər üçün 50% göstərici " +"olduqda şaquli olaraq nizamlanmayacaqdır

" + +#. i18n: ectx: property (suffix), widget (QSpinBox, sbDynamicWordWrapDepth) +#: dialogs/textareaappearanceconfigwidget.ui:427 +#, no-c-format, kde-format +msgid "% of View Width" +msgstr "% görmə genişliyi" + +#. i18n: ectx: property (text), widget (QLabel, label_24) +#: dialogs/textareaappearanceconfigwidget.ui:443 +#, fuzzy, kde-format +#| msgid "Show i&ndentation lines" +msgid "Show i&ndentation lines:" +msgstr "Abzas sətirləri&ni göstər" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowIndentationLines) +#: dialogs/textareaappearanceconfigwidget.ui:453 +#, kde-format +msgid "" +"If this is enabled, the editor will display vertical lines to help identify " +"indent lines." +msgstr "" +"Bu parametr aktiv edilərsə mətn redaktorunda abzası göstərmək üçün şaquli " +"xətlər görünəcək." + +#: document/katebuffer.cpp:135 +#, kde-format +msgctxt "short translation, user created new file" +msgid "New file" +msgstr "Yeni fayl" + +#: document/katedocument.cpp:223 +#, kde-format +msgid "Auto Reload Document" +msgstr "Sənədi yenidən yüklə" + +#: document/katedocument.cpp:225 +#, kde-format +msgid "Automatic reload the document when it was changed on disk" +msgstr "Dəyişdirildiyi zaman sənədi avtomatik yükləmək" + +#: document/katedocument.cpp:2307 +#, kde-format +msgid "" +"The file %1 could not be loaded, as it was not possible to read from it.
Check if you have read access to this file." +msgstr "" +"%1 faylını açmaq mümün olmadı.
Bu faylı oxumaq icazənizin olduğunu " +"yoxlayın." + +#: document/katedocument.cpp:2312 +#, kde-format +msgctxt "translators: you can also translate 'Try Again' with 'Reload'" +msgid "Try Again" +msgstr "Yenidən cəhd edin" + +#: document/katedocument.cpp:2316 document/katedocument.cpp:6534 +#, kde-format +msgid "&Close" +msgstr "&Bağlayın" + +#: document/katedocument.cpp:2317 document/katedocument.cpp:6535 +#, fuzzy, kde-format +#| msgid "Close message" +msgctxt "Close the message being displayed" +msgid "Close message" +msgstr "Meajı bağlayın" + +#: document/katedocument.cpp:2449 +#, kde-format +msgid "" +"The file %1 was opened with %2 encoding but contained invalid characters." +"
It is set to read-only mode, as saving might destroy its content.
Either reopen the file with the correct encoding chosen or enable the read-" +"write mode again in the tools menu to be able to edit it." +msgstr "" +"%1 faylı %2 kodlaşması ilə açıldı, lakin tərkibində səhv simvollar var.
Bu \"ancaq oxumaq\" rejimində qurulub. Saxlanılması onun bütün tərkibini " +"məhv edə bilər.
Həmin faylı ya düzgün seçilmiş kodlaşma ilə açın, ya da " +"fayla düzəliş. etmək imkanı əldə etmək üçün alətlər menyusundan oxumaq-" +"yazmaq rejimini aktiv edin." + +#: document/katedocument.cpp:2468 +#, kde-format +msgid "" +"The file %1 was opened and contained lines longer than the configured Line " +"Length Limit (%2 characters).
The longest of those lines was %3 " +"characters long
Those lines were wrapped and the document is set to read-" +"only mode, as saving will modify its content." +msgstr "" +"%1 faylı açıldı və tərkibində təyin edilmiş Sətir Uzunluğu Limitindən (%2 " +"simvol) daha uzun sətirlər var.
Ən uzun sətirlər %3 simvoldan ibarət " +"idi
Bu sətirlər daha qısa olaraq bölündü və \"ancaq oxu\" rejimi təyin " +"olundu, belə ki, saxlanılma faylı korlaya bilərdi." + +#: document/katedocument.cpp:2475 +#, kde-format +msgid "Temporarily raise limit and reload file" +msgstr "Limiti müvəqqəti aradan qaldırın və faylı yenidən yükləyin" + +#: document/katedocument.cpp:2478 +#, kde-format +msgid "Close" +msgstr "Bağla" + +#: document/katedocument.cpp:2505 +#, kde-format +msgid "" +"Do you really want to save this unmodified file? You could overwrite changed " +"data in the file on disk." +msgstr "" +"Siz doğrudanmı dəyişsirilməmiş faylı saxlamaq istəyirsiniz? Faylda başqa bir " +"pqoqram tərəfindən edilmiş dəyişiklikləri itirə bilərsiniz." + +#: document/katedocument.cpp:2506 +#, kde-format +msgid "Trying to Save Unmodified File" +msgstr "Dəyişiklik edilməmiş faylı saxlamağa cəhd edin" + +#: document/katedocument.cpp:2507 document/katedocument.cpp:2518 +#: document/katedocument.cpp:2534 +#, kde-format +msgid "Save Nevertheless" +msgstr "Hər halda saxlayın" + +#: document/katedocument.cpp:2516 +#, kde-format +msgid "" +"Do you really want to save this file? Both your open file and the file on " +"disk were changed. There could be some data lost." +msgstr "" +"Siz doğrudanmı bu faylı saxlamaq istəyirsiniz? Həm açıq faylınız, həm də " +"diskdəki fayl dəyişdirildi. Bəzi məlumatlar itirilə bilər." + +#: document/katedocument.cpp:2517 document/katedocument.cpp:2533 +#: document/katedocument.cpp:2853 syntax/katethemeconfig.cpp:1218 +#: syntax/katethemeconfig.cpp:1376 +#, kde-format +msgid "Possible Data Loss" +msgstr "Məlumatlar itirilə bilər" + +#: document/katedocument.cpp:2531 +#, kde-format +msgid "" +"The selected encoding cannot encode every Unicode character in this " +"document. Do you really want to save it? There could be some data lost." +msgstr "" +"Seçilmiş kodlaşma bu sənəddə hər Unicode simvolunu kodlaşdıra bilmir. Siz " +"bunu doğrudan saxlamaq istəyirsiniz? Bəzi məlumatlar itirilə bilər. Hansı " +"kodlaşmdan istifadə etməli olduğunuza əmin deyilsinizsə UTF-8 və ya UTF-16 " +"istifadə edin." + +#: document/katedocument.cpp:2601 +#, kde-format +msgid "" +"The document could not be saved, as it was not possible to write to %1.\n" +"Check that you have write access to this file or that enough disk space is " +"available.\n" +"The original file may be lost or damaged. Don't quit the application until " +"the file is successfully written." +msgstr "" +"Bu sənəd saxlanıla bilmədi, belə ki, onu %1 yazmaq mümkün olmadı.\n" +"Faylı yazmağa icazənizin və ya diskdə kifayət qədər boş yerin olduğunu " +"yoxlayın. \n" +"Bu orijinal fayl itirilə və ya zədələnə bilər. Fayl müvəffəqiyyətlə yazəlana " +"qədər proqramı bağlamayın." + +#: document/katedocument.cpp:2722 +#, kde-format +msgid "" +"For file %1 no backup copy could be created before saving. If an error " +"occurs while saving, you might lose the data of this file. A reason could be " +"that the media you write to is full or the directory of the file is read-" +"only for you." +msgstr "" +"Saxlamadan əvvəl %1 faylının yedək surəti yaradıla bilməz. Əgər saxlanılma " +"zamanı xəta baş verərsə siz bu faylın məlumatlarını itirə bilərsiniz. Buna " +"diskinizin dolması və ya fayl yerləşən qovluğun \"ancaq oxumaq\" rejimində " +"olması səbəb ola bilər." + +#: document/katedocument.cpp:2726 +#, kde-format +msgid "Failed to create backup copy." +msgstr "Yedək nüsxənin yaradıla bilmir." + +#: document/katedocument.cpp:2727 +#, kde-format +msgid "Try to Save Nevertheless" +msgstr "İstənilən halda saxlamağa cəhd edin" + +#: document/katedocument.cpp:2852 +#, kde-format +msgid "Do you really want to continue to close this file? Data loss may occur." +msgstr "Siz doğrudan bu faylı bağlamaq istəyirsiniz? Verilənlər itirilə bilər." + +#: document/katedocument.cpp:2854 +#, kde-format +msgid "Close Nevertheless" +msgstr "İstənilən halda bağlayın" + +#: document/katedocument.cpp:4641 +#, fuzzy, kde-format +#| msgid "Untitled" +msgid "Untitled (%1)" +msgstr "Adsız" + +#: document/katedocument.cpp:4643 +#, kde-format +msgid "Untitled" +msgstr "Adsız" + +#: document/katedocument.cpp:4820 document/katedocument.cpp:5051 +#: document/katedocument.cpp:5061 document/katedocument.cpp:5862 +#: document/katedocument.cpp:6049 +#, kde-format +msgid "Save File" +msgstr "Faylı Saxla" + +#: document/katedocument.cpp:4823 +#, kde-format +msgid "Save failed" +msgstr "Uğursuz Saxlama" + +#: document/katedocument.cpp:5072 +#, kde-format +msgid "Save Copy of File" +msgstr "Faylın Nüsxəsini Saxlayın" + +#: document/katedocument.cpp:5084 +#, kde-format +msgid "" +"The document could not be saved, as it was not possible to write to %1.\n" +"\n" +"Check that you have write access to this file or that enough disk space is " +"available." +msgstr "" +"Fayl saxlanıla bilməz, belə ki,onun %1 yazılması mümkün deyil.\n" +"\n" +"Faylı yazmağa icazənizin və ya diskdə kifayət qədər boş yerin olduğunu " +"yoxlayın." + +#: document/katedocument.cpp:5376 +#, kde-format +msgid "" +"Using deprecated modeline 'remove-trailing-space'. Please replace with " +"'remove-trailing-spaces modified;', see https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" +msgstr "" +"Köhnəlmiş 'remove-trailing-space' rejiminin istifadəsi. Onu 'remove-trailing-" +"spaces modified' ilə əvəz edin; bax. https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" + +#: document/katedocument.cpp:5382 +#, kde-format +msgid "" +"Using deprecated modeline 'replace-trailing-space-save'. Please replace with " +"'remove-trailing-spaces all;', see https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" +msgstr "" +"Köhnəlmiş 'remove-trailing-space-save' rejiminin istifadəsi. Onu 'remove-" +"trailing-spaces modified' ilə əvəz edin; bax. https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" + +#: document/katedocument.cpp:5696 +#, kde-format +msgid "The file '%1' was modified on disk." +msgstr "Diskdə \"%1\" faylı dəyişdirildi." + +#: document/katedocument.cpp:5698 +#, fuzzy, kde-format +#| msgid "The file '%1' was deleted on disk." +msgid "The file '%1' was deleted or moved on disk." +msgstr "Diskdən \"%1\" faylı silindi." + +#: document/katedocument.cpp:6034 +#, kde-format +msgid "" +"The document \"%1\" has been modified.\n" +"Do you want to save your changes or discard them?" +msgstr "" +"\"%1\" sənədinə dəyişiklik edildi.\n" +"Siz bu dəyişikiyi saxlamaq yoxsa ləğv etmək istəyirsiniz?" + +#: document/katedocument.cpp:6037 +#, kde-format +msgid "Close Document" +msgstr "Sənədi Bağlayın" + +#: document/katedocument.cpp:6148 +#, kde-format +msgid "The file
%2 is still loading." +msgstr "%2 faylının yüklənməsi davam edir." + +#: document/katedocument.cpp:6153 +#, kde-format +msgid "&Abort Loading" +msgstr "Yüklənməni d&ayandırmaq" + +#: inputmode/katenormalinputmode.cpp:74 +#, kde-format +msgid "OVERWRITE" +msgstr "ƏVƏZLƏMƏ" + +#: inputmode/katenormalinputmode.cpp:74 +#, kde-format +msgid "INSERT" +msgstr "DAXİL ETMƏ" + +#: inputmode/katenormalinputmodefactory.cpp:29 +#, kde-format +msgid "Normal Mode" +msgstr "Adi Rejim" + +#: inputmode/kateviinputmode.cpp:31 +#, fuzzy, kde-format +#| msgid "VI: INSERT MODE" +msgctxt "The INSERT mode of VI" +msgid "VI: INSERT" +msgstr "VI: DAXİL ETMƏ REJİMİ" + +#: inputmode/kateviinputmode.cpp:34 +#, fuzzy, kde-format +#| msgid "VI: NORMAL MODE" +msgctxt "The NORMAL mode of VI" +msgid "VI: NORMAL" +msgstr "VI: ADİ REJİM" + +#: inputmode/kateviinputmode.cpp:37 +#, kde-format +msgid "VI: VISUAL" +msgstr "VI: SEÇİM REJİMİ" + +#: inputmode/kateviinputmode.cpp:40 +#, kde-format +msgid "VI: VISUAL BLOCK" +msgstr "VI: BLOKLARIN SEÇİMİ" + +#: inputmode/kateviinputmode.cpp:43 +#, kde-format +msgid "VI: VISUAL LINE" +msgstr "VI: SƏTİRLƏRİN SEÇİMİ" + +#: inputmode/kateviinputmode.cpp:46 +#, kde-format +msgid "VI: REPLACE" +msgstr "VI: ƏVƏZLƏMƏ REJİMİ" + +#: inputmode/kateviinputmode.cpp:146 +#, kde-format +msgid "vi-mode" +msgstr "vi rejimi" + +#: inputmode/kateviinputmode.cpp:159 +#, kde-format +msgid "recording" +msgstr "yazma" + +#: inputmode/kateviinputmodefactory.cpp:38 utils/kateglobal.cpp:88 +#: vimode/config/configtab.cpp:237 +#, kde-format +msgid "Vi Input Mode" +msgstr "Vi daxiletmə rejimi" + +#: mode/katemodeconfigpage.cpp:46 +#, kde-format +msgid "" +msgstr "" + +#: mode/katemodeconfigpage.cpp:58 +#, kde-format +msgid "Use Default" +msgstr "Standart verilənin istifadəsi" + +#: mode/katemodeconfigpage.cpp:99 mode/katemodeconfigpage.cpp:241 +#, kde-format +msgid "Properties of %1" +msgstr "Xüsusiyyətləri %1" + +#: mode/katemodeconfigpage.cpp:178 +#, kde-format +msgid "New Filetype" +msgstr "Yeni fayl növü" + +#: mode/katemodeconfigpage.cpp:293 +#, kde-format +msgid "" +"Select the MimeTypes you want for this file type.\n" +"Please note that this will automatically edit the associated file extensions " +"as well." +msgstr "" +"Bu fayl üçün MİME növünü seçin.\n" +"Nəzərə alın ki, uyğun dəyişikliklər avtomatik olaraq fayl uzantıları " +"siyahısına əlavə ediləcəkdir." + +#: mode/katemodeconfigpage.cpp:295 +#, kde-format +msgid "Select Mime Types" +msgstr "MİME növlərini seçin" + +#: mode/katemodeconfigpage.cpp:312 +#, kde-format +msgid "Modes && Filetypes" +msgstr "Faylların Növləri" + +#: mode/katemodemenulist.cpp:138 +#, fuzzy, kde-format +#| msgctxt "Placeholder in search bar" +#| msgid "Search..." +msgctxt "@info:placeholder" +msgid "Search…" +msgstr "Axtarış..." + +#: mode/katemodemenulist.cpp:140 +#, kde-format +msgctxt "ToolTip of the search bar of modes of syntax highlighting" +msgid "" +"Search for syntax highlighting modes by language name or file extension (for " +"example, C++ or .cpp)" +msgstr "" +"Sənədin dilinə və əlavəsinə görə sintaksisi işıqlandırma rejimlərinin " +"axtarışı (misal üç., C++ və ya cpp)" + +#: mode/katemodemenulist.cpp:560 +#, kde-format +msgctxt "A search yielded no results" +msgid "No items matching your search" +msgstr "Axtarışınıza uyğun heç nə tapılmadı" + +#: mode/katemodemenulist.cpp:1087 +#, kde-format +msgctxt "" +"Title (in singular) of the best result in an item search. Please, that the " +"translation doesn't have more than 34 characters, since the menu where it's " +"displayed is small and fixed." +msgid "Best Search Match" +msgstr "Ən uyğun gələn" + +#: mode/katemodemenulist.cpp:1092 +#, kde-format +msgctxt "" +"Title (in plural) of the best results in an item search. Please, that the " +"translation doesn't have more than 34 characters, since the menu where it's " +"displayed is small and fixed." +msgid "Best Search Matches" +msgstr "Ən uyğun gələnlər" + +#: printing/printconfigwidgets.cpp:36 +#, kde-format +msgid "Te&xt Settings" +msgstr "Mə&tn Ayarları" + +#: printing/printconfigwidgets.cpp:40 +#, kde-format +msgid "Print line &numbers" +msgstr "Sətir &nömrələrinin çapı" + +#: printing/printconfigwidgets.cpp:43 +#, kde-format +msgid "Print &legend" +msgstr "İşarə&lərin Çapı" + +#: printing/printconfigwidgets.cpp:46 +#, kde-format +msgid "Don't print folded code" +msgstr "" + +#: printing/printconfigwidgets.cpp:54 +#, kde-format +msgid "" +"

If enabled, line numbers will be printed on the left side of the page(s)." +"

" +msgstr "" +"

Bu seçim edilərsə sətirlərin nömrələri səhifənin (səhifələrin) sol " +"tərəfində çap ediləcək.

" + +#: printing/printconfigwidgets.cpp:56 +#, kde-format +msgid "" +"

Print a box displaying typographical conventions for the document type, " +"as defined by the syntax highlighting being used.

" +msgstr "" +"

Sənəd növü ilə bağlı tipoqrafik razılaşma məlumatlarını həmçinin istifadə " +"olunan sintaksis işıqlanmasını çap edin.

" + +#: printing/printconfigwidgets.cpp:116 +#, kde-format +msgid "Hea&der && Footer" +msgstr "Səhifə &başlığı və sonu" + +#: printing/printconfigwidgets.cpp:123 +#, kde-format +msgid "Pr&int header" +msgstr "Səh&ifə başlığının çapı" + +#: printing/printconfigwidgets.cpp:125 +#, kde-format +msgid "Pri&nt footer" +msgstr "Səhifə so&nunun çapı" + +#: printing/printconfigwidgets.cpp:131 +#, kde-format +msgid "Header/footer font:" +msgstr "Səhifə başlığı/sonu üç. şrift:" + +#: printing/printconfigwidgets.cpp:137 +#, kde-format +msgid "Header Properties" +msgstr "Səhifənin başlığı" + +#: printing/printconfigwidgets.cpp:141 +#, kde-format +msgid "&Format:" +msgstr "&Formatı:" + +#: printing/printconfigwidgets.cpp:163 printing/printconfigwidgets.cpp:209 +#, kde-format +msgid "Colors:" +msgstr "Rəngi:" + +#: printing/printconfigwidgets.cpp:170 printing/printconfigwidgets.cpp:216 +#, kde-format +msgid "Foreground:" +msgstr "Mətn:" + +#: printing/printconfigwidgets.cpp:175 +#, kde-format +msgid "Bac&kground" +msgstr "Arxa &Fonu" + +#: printing/printconfigwidgets.cpp:181 +#, kde-format +msgid "Footer Properties" +msgstr "Səhifənin sonluğu" + +#: printing/printconfigwidgets.cpp:186 +#, kde-format +msgid "For&mat:" +msgstr "For&matı:" + +#: printing/printconfigwidgets.cpp:221 +#, kde-format +msgid "&Background" +msgstr "Arxa &Fonu" + +#: printing/printconfigwidgets.cpp:250 +#, kde-format +msgid "

Format of the page header. The following tags are supported:

" +msgstr "" +"

Səhifənin başlığının formatı. Növbəti sahəni istifadə etmək olar:

" + +#: printing/printconfigwidgets.cpp:252 +#, kde-format +msgid "" +"
  • %u: current user name
  • %d: complete date/" +"time in short format
  • %D: complete date/time in long format
  • %h: current time
  • %y: current date in short " +"format
  • %Y: current date in long format
  • %f: " +"file name
  • %U: full URL of the document
  • %p: " +"page number
  • %P: total amount of pages

" +msgstr "" +"
  • %u:cari istifadəçi adı
  • %d: qısa tarix və " +"vaxt formatı
  • %D: uzun tarix/vaxt formatı
  • : cari " +"vaxt
  • %y: qısa cari tarix formatı
  • %Y: " +"uzunluğucari tarix formatı
  • %f: fayl adı
  • %U: sənədin tam URL ünvanı
  • %P: səhifənin nömrəsi
  • %P: səhifələrin ümumi sayı

" + +#: printing/printconfigwidgets.cpp:266 +#, kde-format +msgid "

Format of the page footer. The following tags are supported:

" +msgstr "" +"

Səhifənin sonluğunun formatı. Növbəti sahəni istifadə etmək olar:

" + +#: printing/printconfigwidgets.cpp:352 +#, kde-format +msgid "Add Placeholder..." +msgstr "Doldurucu əlavə etmək..." + +#: printing/printconfigwidgets.cpp:354 +#, kde-format +msgid "Current User Name" +msgstr "Cari İstifadəçi Adı" + +#: printing/printconfigwidgets.cpp:356 +#, kde-format +msgid "Complete Date/Time (short format)" +msgstr "Tarix və Vaxt (qısa formatda)" + +#: printing/printconfigwidgets.cpp:358 +#, kde-format +msgid "Complete Date/Time (long format)" +msgstr "Tarix və Vaxt (uzun formatda)" + +#: printing/printconfigwidgets.cpp:360 +#, kde-format +msgid "Current Time" +msgstr "Cari Vaxt" + +#: printing/printconfigwidgets.cpp:362 +#, kde-format +msgid "Current Date (short format)" +msgstr "Cari Tarix (qısa formatda)" + +#: printing/printconfigwidgets.cpp:364 +#, kde-format +msgid "Current Date (long format)" +msgstr "Cari Tarix (uzun formatda)" + +#: printing/printconfigwidgets.cpp:366 +#, kde-format +msgid "File Name" +msgstr "Faylın Adı" + +#: printing/printconfigwidgets.cpp:368 +#, kde-format +msgid "Full document URL" +msgstr "Sənədin tam URL ünvanı" + +#: printing/printconfigwidgets.cpp:370 +#, kde-format +msgid "Page Number" +msgstr "Səhifə Nömrəsi" + +#: printing/printconfigwidgets.cpp:372 +#, kde-format +msgid "Total Amount of Pages" +msgstr "Səhifələrin Ümumi Sayı" + +#: printing/printconfigwidgets.cpp:478 +#, kde-format +msgid "L&ayout" +msgstr "Sə&hifə düzümü" + +#: printing/printconfigwidgets.cpp:484 +#, kde-format +msgid "&Color theme:" +msgstr "&Rəng sxemi:" + +#: printing/printconfigwidgets.cpp:494 +#, kde-format +msgid "Font:" +msgstr "Şrift:" + +#: printing/printconfigwidgets.cpp:498 +#, kde-format +msgid "Draw bac&kground color" +msgstr "Arxa fon &rəngi" + +#: printing/printconfigwidgets.cpp:501 +#, kde-format +msgid "Draw &boxes" +msgstr "Çə&rçivələr" + +#: printing/printconfigwidgets.cpp:505 +#, kde-format +msgid "Box Properties" +msgstr "Çərçivələr" + +#: printing/printconfigwidgets.cpp:509 +#, kde-format +msgid "W&idth:" +msgstr "Qa&lınlığı:" + +#: printing/printconfigwidgets.cpp:517 +#, kde-format +msgid "&Margin:" +msgstr "Çərçi&vənin kənarı:" + +#: printing/printconfigwidgets.cpp:525 +#, kde-format +msgid "Co&lor:" +msgstr "&Rəngi:" + +#: printing/printconfigwidgets.cpp:547 +#, kde-format +msgid "Select the color theme to use for the print." +msgstr "Çap üçün rəng sxemini seçmək." + +#: printing/printconfigwidgets.cpp:549 +#, kde-format +msgid "" +"

If enabled, the background color of the editor will be used.

This " +"may be useful if your color theme is designed for a dark background.

" +msgstr "" +"

Bu seçimdə mətn redaktorunun arxa fonu istifadə olunacaq.

Bunun " +"qara rəngli arxa fonu olan rəng sxemlərində istifadəsi faydalı oluna bilər." + +#: printing/printconfigwidgets.cpp:552 +#, kde-format +msgid "" +"

If enabled, a box as defined in the properties below will be drawn around " +"the contents of each page. The Header and Footer will be separated from the " +"contents with a line as well.

" +msgstr "" +"

Bu seçimdə hər səhifədə mətnin ətrafına çərçivə çəkiləcək. Səhifənin həm " +"başlığı, həm də sonluğu səhifənin tərkib hissəsindən (mətn və ətrafındakı " +"çərçivə) bir sətirlə ayrılacaqlar.

" + +#: printing/printconfigwidgets.cpp:555 +#, kde-format +msgid "The width of the box outline" +msgstr "Çərçivənin eni" + +#: printing/printconfigwidgets.cpp:556 +#, kde-format +msgid "The margin inside boxes, in pixels" +msgstr "Çərçivə ilə mətn arasındakı boşluğun piksellərlə ölçüsü" + +#: printing/printconfigwidgets.cpp:557 +#, kde-format +msgid "The line color to use for boxes" +msgstr "Çərçivələrin rəngi" + +#: printing/printpainter.cpp:269 +#, kde-format +msgid "(Selection of) " +msgstr "(Seçimi) " + +#: printing/printpainter.cpp:522 +#, kde-format +msgid "Typographical Conventions for %1" +msgstr "%1 üçün mətbəə razılaşması" + +#: printing/printpainter.cpp:555 +#, kde-format +msgid "text" +msgstr "mətn" + +#: script/data/commands/emmet.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Expand Abbreviation" +msgstr "Qısaltmanı genişləndirmək" + +#: script/data/commands/emmet.js:10 script/data/commands/emmet.js:14 +#: script/data/commands/emmet.js:19 script/data/commands/emmet.js:23 +#: script/data/commands/emmet.js:27 script/data/commands/emmet.js:31 +#: script/data/commands/emmet.js:35 script/data/commands/emmet.js:39 +#: script/data/commands/emmet.js:43 script/data/commands/emmet.js:47 +#: script/data/commands/emmet.js:51 script/data/commands/emmet.js:55 +#: script/data/commands/emmet.js:59 script/data/commands/emmet.js:63 +#: script/data/commands/emmet.js:67 script/data/commands/emmet.js:71 +#: script/data/commands/emmet.js:75 script/data/commands/emmet.js:79 +#: script/data/commands/emmet.js:83 +#, kde-format +msgctxt "Script command category" +msgid "Emmet" +msgstr "Emmet" + +#: script/data/commands/emmet.js:13 +#, kde-format +msgctxt "Script command name" +msgid "Wrap with Tag" +msgstr "Bu etiketi yığcam etmək" + +#: script/data/commands/emmet.js:18 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Matching Tag" +msgstr "Kursoru oxşr etiketə yerini dəyişmək" + +#: script/data/commands/emmet.js:22 +#, kde-format +msgctxt "Script command name" +msgid "Select HTML/XML Tag Contents Inwards" +msgstr "HTML/XML etiketlıri ilə ayrılmış məzmunu seçin" + +#: script/data/commands/emmet.js:26 +#, kde-format +msgctxt "Script command name" +msgid "Select HTML/XML Tag Contents Outwards" +msgstr "Kənardakı HTML/XML etiket məzmununu seçin" + +#: script/data/commands/emmet.js:30 +#, kde-format +msgctxt "Script command name" +msgid "Toggle Comment" +msgstr "Şərh etməni açmaq və ya bağlamaq" + +#: script/data/commands/emmet.js:34 +#, kde-format +msgctxt "Script command name" +msgid "Go to Next Edit Point" +msgstr "Növbəti düzəli. nöqtəsinə keçin" + +#: script/data/commands/emmet.js:38 +#, kde-format +msgctxt "Script command name" +msgid "Go to Previous Edit Point" +msgstr "Əvvəlki düzəliş nöqtəsinə keçin" + +#: script/data/commands/emmet.js:42 +#, kde-format +msgctxt "Script command name" +msgid "Select Next Edit Point" +msgstr "Növbəti düzəliş nöqtəsini seçin" + +#: script/data/commands/emmet.js:46 +#, kde-format +msgctxt "Script command name" +msgid "Select Previous Edit Point" +msgstr "Əvvəlki düzəliş nöqtəsini seçin" + +#: script/data/commands/emmet.js:50 +#, kde-format +msgctxt "Script command name" +msgid "Delete Tag Under Cursor" +msgstr "Kursorun altındakı etiketi silin" + +#: script/data/commands/emmet.js:54 +#, kde-format +msgctxt "Script command name" +msgid "Split or Join a Tag" +msgstr "Etiketi bölmək və ya birləşdirmək" + +#: script/data/commands/emmet.js:58 +#, kde-format +msgctxt "Script command name" +msgid "Evaluate a Simple Math Expression" +msgstr "Sadə riyazi məsələni hesablamaq" + +#: script/data/commands/emmet.js:62 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 1" +msgstr "Sayı 1 azaldın" + +#: script/data/commands/emmet.js:66 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 10" +msgstr "Sayı 10 azaldın" + +#: script/data/commands/emmet.js:70 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 0.1" +msgstr "Sayı 0.1 azaldın" + +#: script/data/commands/emmet.js:74 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 1" +msgstr "Sayı 1 artırın" + +#: script/data/commands/emmet.js:78 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 10" +msgstr "Sayı 10 artırın" + +#: script/data/commands/emmet.js:82 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 0.1" +msgstr "Sayı 0.1 artırın" + +#: script/data/commands/emmet.js:96 +#, kde-format +msgid "" +"Expands the abbreviation using Emmet expressions; see http://code.google.com/" +"p/zen-coding/wiki/ZenHTMLSelectorsEn" +msgstr "" +"Emmet qısaltmasının genişləndirilmısi; bax, http://code.google.com/p/zen-" +"coding/wiki/ZenHTMLSelectorsEn" + +#: script/data/commands/emmet.js:97 +#, kde-format +msgid "" +"Wraps the selected text in XML tags constructed from the provided Emmet " +"expression (defaults to div)." +msgstr "" +"Seçilmiş mətni təqdim olunan Emmet ifadələrindən qurulmuş XML etiketində " +"yerləşdirin. (standart olaraq - div)" + +#: script/data/commands/emmet.js:98 +#, kde-format +msgid "Moves the caret to the current tag's pair" +msgstr "Kursoru cari etiketlər cütlüyündə yerləşdirin" + +#: script/data/commands/emmet.js:99 +#, kde-format +msgid "" +"Select contents of HTML/XML tag, moving inward on continuous invocations" +msgstr "" +"Fasiləsiz çağrışlarda daha dərinə enərək HTML / XML etiketinin məzmununu " +"seçin" + +#: script/data/commands/emmet.js:100 +#, kde-format +msgid "" +"Select contents of HTML/XML tag, moving outwards on continuous invocations" +msgstr "" +"Fasiləsiz çağrışlarda daha yuxarı qalxaraq HTML / XML etiketinin məzmununu " +"seçin" + +#: script/data/commands/emmet.js:101 +#, kde-format +msgid "Move to the next edit point (tag or empty attribute)." +msgstr "Növbəti düzəliş nöqtəsinə yerini dəyiş (etiket və ya boş atribut)." + +#: script/data/commands/emmet.js:102 +#, kde-format +msgid "Move to the previous edit point (tag or empty attribute)." +msgstr "Əvvəlki düzəliş nöqtəsinə yerini dəyiş (etiket və ya boş atribut)." + +#: script/data/commands/emmet.js:103 +#, kde-format +msgid "Select next edit point (tag or empty attribute)." +msgstr "Növbəti düzəliş etiketini seçin (etiket və ya boş atribut)." + +#: script/data/commands/emmet.js:104 +#, kde-format +msgid "Select previous edit point (tag or empty attribute)." +msgstr "Əvvəlki düzəliş etiketini seçin (etiket və ya boş atribut)." + +#: script/data/commands/emmet.js:105 +#, kde-format +msgid "Toggle comment of current tag or CSS selector" +msgstr "Cari etiketin və ya CSS açarının sərhlərini bağlayın/açın" + +#: script/data/commands/emmet.js:106 +#, kde-format +msgid "Deletes tag under cursor" +msgstr "Kursorun altındakı etiket silir" + +#: script/data/commands/emmet.js:107 +#, kde-format +msgid "Splits or joins a tag" +msgstr "Etiketi bölmək və ya birləşdirmək" + +#: script/data/commands/emmet.js:108 +#, kde-format +msgid "Evaluates a simple math expression" +msgstr "Sadə Riyazi Hesablama" + +#: script/data/commands/emmet.js:109 +#, kde-format +msgid "Decrement number under cursor by 1" +msgstr "Kursorun altındakı sayı 1 azaldın" + +#: script/data/commands/emmet.js:110 +#, kde-format +msgid "Decrement number under cursor by 10" +msgstr "Kursorun altındakı sayı 10 azaldın" + +#: script/data/commands/emmet.js:111 +#, kde-format +msgid "Decrement number under cursor by 0.1" +msgstr "Kursorun altındakı sayı 0.1 azaldın" + +#: script/data/commands/emmet.js:112 +#, kde-format +msgid "Increment number under cursor by 1" +msgstr "Kursorun altındakı sayı 1 artırın" + +#: script/data/commands/emmet.js:113 +#, kde-format +msgid "Increment number under cursor by 10" +msgstr "Kursorun altındakı sayı 10 artırın" + +#: script/data/commands/emmet.js:114 +#, kde-format +msgid "Increment number under cursor by 0.1" +msgstr "Kursorun altındakı sayı 0.1 artırın" + +#: script/data/commands/jumpMatchingIndent.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Previous Matching Indent" +msgstr "Kursoru əvvəlki oxşar abzasa keçirmək" + +#: script/data/commands/jumpMatchingIndent.js:11 +#: script/data/commands/jumpMatchingIndent.js:16 +#: script/data/commands/jumpMatchingIndent.js:21 +#: script/data/commands/jumpMatchingIndent.js:26 +#: script/data/commands/navigation.js:10 script/data/commands/navigation.js:14 +#, kde-format +msgctxt "Script command category" +msgid "Navigation" +msgstr "Naviqasiya" + +#: script/data/commands/jumpMatchingIndent.js:14 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Next Matching Indent" +msgstr "Kursoru sonrakı oxşar abzasa keçirmək" + +#: script/data/commands/jumpMatchingIndent.js:19 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Move Cursor to Next Matching Indent" +msgctxt "Script command name" +msgid "Move Cursor to Next Blank Line" +msgstr "Kursoru sonrakı oxşar abzasa keçirmək" + +#: script/data/commands/jumpMatchingIndent.js:24 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Move Cursor to Previous Matching Indent" +msgctxt "Script command name" +msgid "Move Cursor to Previous Blank Line" +msgstr "Kursoru əvvəlki oxşar abzasa keçirmək" + +#: script/data/commands/jumpMatchingIndent.js:80 +#, kde-format +msgid "Move cursor to previous matching indent" +msgstr "Kursoru əvvəlki oxşar abzasa keçirmək" + +#: script/data/commands/jumpMatchingIndent.js:83 +#, kde-format +msgid "Move cursor to next matching indent" +msgstr "Kursoru sonrakı oxşar abzasa keçirmək" + +#: script/data/commands/jumpMatchingIndent.js:85 +#, fuzzy, kde-format +#| msgid "Move cursor to next matching indent" +msgid "Move cursor to next blank line" +msgstr "Kursoru sonrakı oxşar abzasa keçirmək" + +#: script/data/commands/jumpMatchingIndent.js:87 +#, fuzzy, kde-format +#| msgid "Move cursor to previous matching indent" +msgid "Move cursor to previous blank line" +msgstr "Kursoru əvvəlki oxşar abzasa keçirmək" + +#: script/data/commands/navigation.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Go to Next Paragraph" +msgstr "" + +#: script/data/commands/navigation.js:13 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Go to Previous Edit Point" +msgctxt "Script command name" +msgid "Go to Previous Paragraph" +msgstr "Əvvəlki düzəliş nöqtəsinə keçin" + +#: script/data/commands/utils.js:9 +#, fuzzy, kde-format +#| msgid "Re&move trailing spaces:" +msgctxt "Script command name" +msgid "Remove Trailing Spaces" +msgstr "Lazı&msız boşluqları sil:" + +#: script/data/commands/utils.js:10 script/data/commands/utils.js:14 +#: script/data/commands/utils.js:18 script/data/commands/utils.js:22 +#: script/data/commands/utils.js:27 script/data/commands/utils.js:32 +#: script/data/commands/utils.js:36 script/data/commands/utils.js:40 +#: script/data/commands/utils.js:44 script/data/commands/utils.js:48 +#: script/data/commands/utils.js:52 script/data/commands/utils.js:56 +#, kde-format +msgctxt "Script command category" +msgid "Editing" +msgstr "Düzəliş etmək" + +#: script/data/commands/utils.js:13 +#, fuzzy, kde-format +#| msgid "Re&move trailing spaces:" +msgctxt "Script command name" +msgid "Remove Leading Spaces" +msgstr "Lazı&msız boşluqları sil:" + +#: script/data/commands/utils.js:17 +#, fuzzy, kde-format +#| msgid "Re&move trailing spaces:" +msgctxt "Script command name" +msgid "Remove Trailing and Leading Spaces" +msgstr "Lazı&msız boşluqları sil:" + +#: script/data/commands/utils.js:21 +#, fuzzy, kde-format +#| msgid "Join Lines" +msgctxt "Script command name" +msgid "Join Lines" +msgstr "Join Lines" + +#: script/data/commands/utils.js:25 +#, kde-format +msgctxt "Script command name" +msgid "Move Lines Down" +msgstr "Sətirləri aşağı yerləşdirin" + +#: script/data/commands/utils.js:30 +#, kde-format +msgctxt "Script command name" +msgid "Move Lines Up" +msgstr "Sətirləri yuxarı yerləşdirin" + +#: script/data/commands/utils.js:35 +#, kde-format +msgctxt "Script command name" +msgid "Duplicate Selected Lines Down" +msgstr "Seçilmiş sətirləri aşağı kopyalayın" + +#: script/data/commands/utils.js:39 +#, kde-format +msgctxt "Script command name" +msgid "Duplicate Selected Lines Up" +msgstr "Seçilmiş sətirləri yuxarı kopyalayın" + +#: script/data/commands/utils.js:43 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Duplicate Selected Lines Up" +msgctxt "Script command name" +msgid "Duplicate selected text" +msgstr "Seçilmiş sətirləri yuxarı kopyalayın" + +#: script/data/commands/utils.js:47 +#, kde-format +msgctxt "Script command name" +msgid "URI-encode Selected Text" +msgstr "Seçilmiş mətni URİ formatında kodlaşdırmaq" + +#: script/data/commands/utils.js:51 +#, kde-format +msgctxt "Script command name" +msgid "URI-decode Selected Text" +msgstr "Seçilmiş mətni URİ formatda deşifrə etmək" + +#: script/data/commands/utils.js:55 +#, fuzzy, kde-format +#| msgid "Remove Cursors from Empty Lines" +msgctxt "Script command name" +msgid "Remove Empty Lines" +msgstr "Kursorları boş sətirlərdən silin" + +#: script/data/commands/utils.js:410 +#, kde-format +msgid "Sort the selected text or whole document." +msgstr "Seçilmiş mətni və ya bütün sənədi çeşidləmək" + +#: script/data/commands/utils.js:412 +#, kde-format +msgid "Move selected lines down." +msgstr "Seçilmiş sətirləri aşağı yerləşdirin." + +#: script/data/commands/utils.js:414 +#, kde-format +msgid "Move selected lines up." +msgstr "Seçilmiş sətirləri yuxarı yerləşdirin." + +#: script/data/commands/utils.js:416 +#, kde-format +msgid "Remove duplicate lines from the selected text or whole document." +msgstr "Seçilmiş mətndən və ya bütün sənəddən təkrarlanan sıtirləri silin." + +#: script/data/commands/utils.js:418 +#, kde-format +msgid "" +"Sort the selected text or whole document in natural order.
Here is an " +"example to show the difference to the normal sort method:
sort(a10, a1, " +"a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" +msgstr "" +"Seçilmiş mətni və ya bütöv sənədi təbii qaydada sıralayın.
Adi " +"çeşidlənmədən fərqlənməni göstərən nümunə:
çeşidləmə(a10, a1, a2) => a1, " +"a10, a2
natsort(a10, a1, a2) => a1, a2, a10" + +#: script/data/commands/utils.js:420 +#, kde-format +msgid "Trims trailing whitespace from selection or whole document." +msgstr "Ara boşluğu simvollarını seçilmiş mətndən və ya bütün sənəddən silmək." + +#: script/data/commands/utils.js:422 +#, kde-format +msgid "Trims leading whitespace from selection or whole document." +msgstr "" +"Seçilmiş mətndən və ya bütün sənəddən ilk sətirlərdəki boşluq simvollarını " +"silmək." + +#: script/data/commands/utils.js:424 +#, kde-format +msgid "Trims leading and trailing whitespace from selection or whole document." +msgstr "" +"Seçilmiş mətndən və ya bütün sənəddən ilk və son sətirlərdəki boşluq " +"simvollarını silmək." + +#: script/data/commands/utils.js:426 +#, kde-format +msgid "" +"Joins selected lines or whole document. Optionally pass a separator to put " +"between each line:
join ', ' will e.g. join lines and " +"separate them by a comma." +msgstr "" +"Seçilmiş. mətnlərdəki və ya bütün sənəddəki sətirləri birləşdirmək.İxtiyari " +"hər sətir arasında ayırıcı qoymaq olar.:
join ', ' " +"sətirləri birləşdirmək, onları vergüllə ayırmaq." + +#: script/data/commands/utils.js:428 +#, kde-format +msgid "Removes empty lines from selection or whole document." +msgstr "Boş sətirləri seçilmiş və ya bütün sənəddən silir." + +#: script/data/commands/utils.js:430 +#, kde-format +msgid "" +"This command aligns lines in the selected block or whole document on the " +"column given by a regular expression given as an argument.

If you " +"give an empty pattern it will align on the first non-blank character by " +"default.
If the pattern has a capture it will indent on the captured " +"match.

Examples:
'alignon -' will insert " +"spaces before the first '-' of each lines to align them all on the same " +"column.
'alignon :\\s+(.)' will insert spaces before the " +"first non-blank character that occurs after a colon to align them all on the " +"same column." +msgstr "" +"Bu əmr seçilmiş blokdakı və ya bütöv sənəddəki sütunlarda müntəzəm ifadə ilə " +"arqument kimi verilmiş sətirləri düzləndirir.

Əgər bir boş nümunə " +"vermiş olsanız builk boş olmayan simvolda düzüləcəkdir.
Əgər nümunədə bir " +"tutulma bloku varsa düzülüş tutulmuş bloka uyğun gələnə görə icra " +"olunacaqdır.

Nümunələr:
\"alognon -\" boşluğu " +"hər sətirdəki birinci \"-\" simvolunun önünə qoymaq lazımdır ki, onlar " +"hamısı bir sütunda düzülsün.
\"alignon :\\s+(.)\" boşluğu " +"qoşa nöqtədən sonra gələn ilk boş olmayan simvolun önünə qoyur ki, onlar " +"hamısı bir sütunda düzülsün." + +#: script/data/commands/utils.js:434 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and replace them with the return value of that callback." +"
Example (join selected lines):
each 'function(lines){return " +"lines.join(\", \");}'
To save you some typing, you can also do " +"this to achieve the same:
each 'lines.join(\", \")'" +msgstr "" +"Seçilmiş mətn sətirlərini göstərilən JavaScript funksiyasının icrasının " +"nəticələri ilə əvəzləyin.
Misal üç., (seçilmiş sətirləri birləşdirin): " +"
each 'function(lines){return lines.join(\", \");}'
" +"Həmin şeyi daha rahat etmək olar:
each 'lines.join(\", \")'" + +#: script/data/commands/utils.js:436 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and remove those where the callback returns false." +"
Example (see also rmblank):
filter 'function(l)" +"{return l.length > 0;}'
To save you some typing, you can also do " +"this to achieve the same:
filter 'line.length > 0'" +msgstr "" +"Göstərilən JavaScript funksiyasının false cavabı verdiyi seçilmiş sətirlərin " +"silinməsi.
(bax rmblank):
filter 'function(l)" +"{return l.length > 0;}'
Həmin şeyi daha rahat etmək olar:" +"
filter 'line.length > 0'" + +#: script/data/commands/utils.js:438 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and replace the line with the return value of the callback." +"
Example (see also ltrim):
map 'function(line)" +"{return line.replace(/^\\s+/, \"\");}'
To save you some typing, " +"you can also do this to achieve the same:
map 'line.replace(/^\\s" +"+/, \"\")'" +msgstr "" +"Seçilən mətn sətirlərinin hər birini göstərilən JavaScript funksiyasının " +"nəticəsi ilə əvəz etmək.
Məsələn (bax ltrim):
map " +"'function(line){return line.replace(/^\\s+/, \"\");}'
Həmin şeyi " +"daha rahat etmək olar:
map 'line.replace(/^\\s+/, \"\")'" + +#: script/data/commands/utils.js:440 +#, kde-format +msgid "Duplicates the selected lines up." +msgstr "Seçilmiş sətirləri yuxarı kopyalamaq." + +#: script/data/commands/utils.js:442 +#, kde-format +msgid "Duplicates the selected lines down." +msgstr "Seçilmiş sətirləri aşağı kopyalamaq." + +#: script/data/commands/utils.js:446 +#, kde-format +msgid "" +"Encode special chars in a single line selection, so the result text can be " +"used as URI." +msgstr "" +"Xüsusi simvolları elə kodlaşdırmaq ki, nəticəni URİ kimi istifadə etmək " +"mümkün olsun." + +#: script/data/commands/utils.js:448 +#, kde-format +msgid "Reverse action of URI encode." +msgstr "URİ kodlaşmasında əks əməliyyat." + +#: script/data/commands/utils.js:450 +#, kde-format +msgid "" +"Select text forward from current cursor position to the first occurrence of " +"the given argument after it (or the end of the current line by default)." +msgstr "" +"Mətni, kursorun cari mövqeyindən irəli, verilmiş arqument başlayan yerə " +"(vəya standart olaraq cari sətrin sonuna) qədər seç." + +#: script/data/commands/utils.js:452 +#, kde-format +msgid "" +"Select text backward from current cursor position to the last occurrence of " +"the given argument before it (or the beginning of the current line by " +"default)." +msgstr "" +"Mətni, kursorun cari mövqeyindən geriyə verilmiş arqumentin sonuna (və ya " +"standart olaraq sətrin başlanğıcına) qədər seç." + +#: script/data/indentation/ada.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "ada" +msgstr "ada" + +#: script/data/indentation/cmake.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "CMake" +msgstr "CMake" + +#: script/data/indentation/cppstyle.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "C++/boost Style" +msgstr "C++/boost Tərzi" + +#: script/data/indentation/cstyle.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "C Style" +msgstr "C Tərzi" + +#: script/data/indentation/haskell.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Haskell" +msgstr "Haskell" + +#: script/data/indentation/julia.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Julia" +msgstr "Julia" + +#: script/data/indentation/latex.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Latex" +msgstr "Latex" + +#: script/data/indentation/lilypond.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "LilyPond" +msgstr "LilyPond" + +#: script/data/indentation/lisp.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "LISP" +msgstr "LISP" + +#: script/data/indentation/pascal.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Pascal" +msgstr "Pascal" + +#: script/data/indentation/python.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Python" +msgstr "Python" + +#: script/data/indentation/r.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "R" +msgstr "R" + +#: script/data/indentation/replicode.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Replicode" +msgstr "Replicode" + +#: script/data/indentation/ruby.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Ruby" +msgstr "Ruby" + +#: script/data/indentation/xml.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "XML Style" +msgstr "XML Tərzi" + +#: script/katecommandlinescript.cpp:37 +#, kde-format +msgid "Function '%1' not found in script: %2" +msgstr "'%1' funksiyası tapılmayan skript:%2" + +#: script/katecommandlinescript.cpp:51 +#, kde-format +msgid "Error calling %1" +msgstr "%1 funksiyasını başlatmaq olmur" + +#: script/katecommandlinescript.cpp:68 +#, kde-format +msgid "Bad quoting in call: %1. Please escape single quotes with a backslash." +msgstr "" +"Çağırışda sol tək dırnaq işarəsinin səhv istifadəsi: %1 Tək dırnaq " +"işarəsinin önünə tərs kəsir (\\) əlavə edin." + +#: script/katecommandlinescript.cpp:76 utils/katecmds.cpp:217 +#: vimode/cmds.cpp:37 +#, kde-format +msgid "Could not access view" +msgstr "Görünüşə daxil ola bilmədi" + +#: script/katecommandlinescript.cpp:118 +#, kde-format +msgid "Error calling 'help %1'" +msgstr "'help %1' çağırışında xəta" + +#: script/katecommandlinescript.cpp:123 +#, kde-format +msgid "No help specified for command '%1' in script %2" +msgstr "%2 skriptində %1 əmri üçün kömək verilməyib" + +#: script/katescript.cpp:282 +#, fuzzy, kde-format +#| msgid "Error loading script %1" +msgid "Error loading script %1: %2" +msgstr "%1 skriptinin yüklənməsi xətası" + +#: script/katescriptmanager.cpp:319 +#, kde-format +msgid "Reload all JavaScript files (indenters, command line scripts, etc)." +msgstr "" +"Bütün JavaScript fayllarını yenidən yenidən yükləyin (Mətnin formatı, əmrlər " +"sətri skripti və s.)." + +#: script/katescriptview.cpp:214 +#, kde-format +msgid "Command not found: %1" +msgstr "Tapılmayan əmr: %1" + +#: search/katesearchbar.cpp:73 +#, kde-format +msgid "Add..." +msgstr "Əlavə etmək..." + +#: search/katesearchbar.cpp:298 +#, kde-format +msgctxt "short translation" +msgid "1 replacement made" +msgid_plural "%1 replacements made" +msgstr[0] "%1 dəyişdirilmə edildi" +msgstr[1] "%1 dəyişdirilmə edildi" + +#: search/katesearchbar.cpp:300 +#, kde-format +msgctxt "short translation" +msgid "1 match found" +msgid_plural "%1 matches found" +msgstr[0] "%1 uyğunluq tapıldı" +msgstr[1] "%1 uyğunluq tapıldı" + +#: search/katesearchbar.cpp:374 +#, kde-format +msgid "Reached top, continued from bottom" +msgstr "Sənədin əvəli, sona keçid" + +#: search/katesearchbar.cpp:376 +#, kde-format +msgid "Reached bottom, continued from top" +msgstr "Sənədin sonu, əvvələ keçid" + +#: search/katesearchbar.cpp:381 +#, kde-format +msgid "Not found" +msgstr "Tapılmadı" + +#: search/katesearchbar.cpp:615 +#, kde-format +msgid "Bottom of file reached. Continue from top?" +msgstr "Sənədin sonu, əvvəlindən başlanılsın?" + +#: search/katesearchbar.cpp:615 +#, kde-format +msgid "Top of file reached. Continue from bottom?" +msgstr "Sənədin əvvəli, sondan başlanılsın?" + +#: search/katesearchbar.cpp:618 +#, kde-format +msgid "Continue search?" +msgstr "Axtarış devam edilsin?" + +#: search/katesearchbar.cpp:920 +#, kde-format +msgid "SearchHighLight" +msgstr "Tapılanın işıqlanması" + +#: search/katesearchbar.cpp:1136 search/katesearchbar.cpp:1755 +#, fuzzy, kde-format +#| msgid "Clear Dictionary Ranges" +msgid "Clear history" +msgstr "Lüğətin əhatə dairəsini təmizlə" + +#: search/katesearchbar.cpp:1166 +#, kde-format +msgid "Beginning of line" +msgstr "Sətirin başlanğıcı" + +#: search/katesearchbar.cpp:1167 +#, kde-format +msgid "End of line" +msgstr "Sətirin sonu" + +#: search/katesearchbar.cpp:1169 +#, kde-format +msgid "Match any character excluding new line (by default)" +msgstr "" +"Yeni sətir istisna olmaqla istənilən simvola uyğunlaşma (standart olaraq)" + +#: search/katesearchbar.cpp:1170 +#, kde-format +msgid "One or more occurrences" +msgstr "Bir neçə dəfə təkrarlanır" + +#: search/katesearchbar.cpp:1171 +#, kde-format +msgid "Zero or more occurrences" +msgstr "Ya heç təkrarlanmır ya da bir neçə dəfə təkrarlanır" + +#: search/katesearchbar.cpp:1172 +#, kde-format +msgid "Zero or one occurrences" +msgstr "Ya heç təkrarlanmır ya da bir dəfə təkrarlanır" + +#: search/katesearchbar.cpp:1175 +#, kde-format +msgid " through occurrences" +msgstr " arasında təkrarlanır" + +#: search/katesearchbar.cpp:1181 +#, kde-format +msgid "Group, capturing" +msgstr "Qrup, ələ keçirmə" + +#: search/katesearchbar.cpp:1182 +#, kde-format +msgid "Or" +msgstr "Və ya" + +#: search/katesearchbar.cpp:1183 +#, kde-format +msgid "Set of characters" +msgstr "Sinif" + +#: search/katesearchbar.cpp:1184 +#, kde-format +msgid "Negative set of characters" +msgstr "İstisna olunan sinif" + +#: search/katesearchbar.cpp:1188 +#, kde-format +msgid "Whole match reference" +msgstr "Tam oxşarlıq" + +#: search/katesearchbar.cpp:1199 +#, kde-format +msgid "Reference" +msgstr "Əks keçid" + +#: search/katesearchbar.cpp:1206 +#, kde-format +msgid "Line break" +msgstr "Sətirə keçid" + +#: search/katesearchbar.cpp:1207 +#, kde-format +msgid "Tab" +msgstr "Tab işarəsi" + +#: search/katesearchbar.cpp:1210 +#, kde-format +msgid "Word boundary" +msgstr "Sözün sərhəddi" + +#: search/katesearchbar.cpp:1211 +#, kde-format +msgid "Not word boundary" +msgstr "Söz sərhəddi yoxdur" + +#: search/katesearchbar.cpp:1212 +#, kde-format +msgid "Digit" +msgstr "Rəqəm" + +#: search/katesearchbar.cpp:1213 +#, kde-format +msgid "Non-digit" +msgstr "Rəqəm deyil" + +#: search/katesearchbar.cpp:1214 +#, kde-format +msgid "Whitespace (excluding line breaks)" +msgstr "Boşluq simvolu (sətirə keçid istisna)" + +#: search/katesearchbar.cpp:1215 +#, kde-format +msgid "Non-whitespace" +msgstr "Boşluq yoxdur" + +#: search/katesearchbar.cpp:1216 +#, kde-format +msgid "Word character (alphanumerics plus '_')" +msgstr "Hərf və ya Rəqəm (\"_\" daxil)" + +#: search/katesearchbar.cpp:1217 +#, kde-format +msgid "Non-word character" +msgstr "Hərf olmayan, rəqəm və ya \"_\" simvolu" + +#: search/katesearchbar.cpp:1220 +#, kde-format +msgid "Octal character 000 to 377 (2^8-1)" +msgstr "Səkkiz kodlu simvol 000 to 377 (2^8-1)" + +#: search/katesearchbar.cpp:1221 +#, kde-format +msgid "Hex character 0000 to FFFF (2^16-1)" +msgstr "On altı kodlu simvol 0000 to FFFF (2^16-1)" + +#: search/katesearchbar.cpp:1222 +#, kde-format +msgid "Backslash" +msgstr "Tərs kəsr işarəsi" + +#: search/katesearchbar.cpp:1226 +#, kde-format +msgid "Group, non-capturing" +msgstr "Əks keçedsiz qrup" + +#: search/katesearchbar.cpp:1227 +#, kde-format +msgid "Positive Lookahead" +msgstr "Müsbət qabaqlayıcı yoxlama" + +#: search/katesearchbar.cpp:1228 +#, kde-format +msgid "Negative lookahead" +msgstr "Neqativ irəliyə baxış" + +#: search/katesearchbar.cpp:1232 +#, kde-format +msgid "Fixed-length positive lookbehind" +msgstr "Sabit uzunluqda geriyə müsbət baxış" + +#: search/katesearchbar.cpp:1233 +#, kde-format +msgid "Fixed-length negative lookbehind" +msgstr "Sabit uzunluqda geriyə mənfi baxış" + +#: search/katesearchbar.cpp:1238 +#, kde-format +msgid "Begin lowercase conversion" +msgstr "Kişik hərfə çevirməyə başlayın" + +#: search/katesearchbar.cpp:1239 +#, kde-format +msgid "Begin uppercase conversion" +msgstr "Böyük hərfə çevirməyə başlayın" + +#: search/katesearchbar.cpp:1240 +#, kde-format +msgid "End case conversion" +msgstr "Böyük, kiçik hərf çevirməsinin sonu" + +#: search/katesearchbar.cpp:1241 +#, kde-format +msgid "Lowercase first character conversion" +msgstr "Birinci hərf kiçik " + +#: search/katesearchbar.cpp:1242 +#, kde-format +msgid "Uppercase first character conversion" +msgstr "Birinci hərf böyük" + +#: search/katesearchbar.cpp:1243 +#, kde-format +msgid "Replacement counter (for Replace All)" +msgstr "Dəyişim sayğacı (bütün dəyişikliklər üçün)" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: search/searchbarincremental.ui:50 +#, kde-format +msgid "F&ind:" +msgstr "&Tapın:" + +#. i18n: ectx: property (toolTip), widget (QComboBox, pattern) +#: search/searchbarincremental.ui:78 search/searchbarpower.ui:295 +#, kde-format +msgid "Text to search for" +msgstr "Axtarış üçün mətn" + +#. i18n: ectx: property (toolTip), widget (QToolButton, findNext) +#. i18n: ectx: property (toolTip), widget (QToolButton, next) +#: search/searchbarincremental.ui:91 search/searchbarpower.ui:175 +#, kde-format +msgid "Jump to next match" +msgstr "Növbəti oxşarına keçid" + +#. i18n: ectx: property (toolTip), widget (QToolButton, findPrev) +#. i18n: ectx: property (toolTip), widget (QToolButton, prev) +#: search/searchbarincremental.ui:101 search/searchbarpower.ui:185 +#, kde-format +msgid "Jump to previous match" +msgstr "Əvvəlki oxşarına keçid" + +#. i18n: ectx: property (toolTip), widget (QToolButton, matchCase) +#: search/searchbarincremental.ui:111 search/searchbarpower.ui:136 +#, kde-format +msgid "Match case sensitive" +msgstr "Böyük/kiçik hərfi nəzərə almaqla" + +#. i18n: ectx: property (toolTip), widget (QToolButton, mutate) +#: search/searchbarincremental.ui:146 +#, kde-format +msgid "Switch to power search and replace bar" +msgstr "Güclü axtarışa keçin və paneli dəyişin" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: search/searchbarpower.ui:50 +#, kde-format +msgid "Fin&d:" +msgstr "&Tapın:" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: search/searchbarpower.ui:63 +#, kde-format +msgid "Rep&lace:" +msgstr "Əvəz&ləyin:" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: search/searchbarpower.ui:76 +#, kde-format +msgid "&Mode:" +msgstr "Reji&m:" + +#. i18n: ectx: property (toolTip), widget (QComboBox, searchMode) +#: search/searchbarpower.ui:103 +#, kde-format +msgid "Search mode" +msgstr "Axtarış rejimi" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:113 +#, kde-format +msgid "Plain text" +msgstr "Adi mətn" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:118 +#, kde-format +msgid "Whole words" +msgstr "Yalnız bütün sözlər" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:123 +#, kde-format +msgid "Escape sequences" +msgstr "Ardıcıllıqla" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:128 +#, kde-format +msgid "Regular expression" +msgstr "Müntəzəm ifadə" + +#. i18n: ectx: property (toolTip), widget (QToolButton, selectionOnly) +#: search/searchbarpower.ui:149 +#, kde-format +msgid "Search in the selection only" +msgstr "Yalnız seçilənlərdə axtar" + +#. i18n: ectx: property (toolTip), widget (QPushButton, replaceNext) +#: search/searchbarpower.ui:195 +#, kde-format +msgid "Replace next match" +msgstr "Növbəti uyğunluğu dəyişmək" + +#. i18n: ectx: property (text), widget (QPushButton, replaceNext) +#. i18n: ectx: property (text), widget (QPushButton, m_replaceBtn) +#: search/searchbarpower.ui:198 spellcheck/spellcheckbar.ui:130 +#, kde-format +msgid "&Replace" +msgstr "Dəyişdi&rmək" + +#. i18n: ectx: property (toolTip), widget (QPushButton, replaceAll) +#: search/searchbarpower.ui:224 +#, kde-format +msgid "Replace all matches" +msgstr "Bütün uyğunluqları dəyişmək" + +#. i18n: ectx: property (text), widget (QPushButton, replaceAll) +#: search/searchbarpower.ui:227 +#, kde-format +msgid "Replace &All" +msgstr "H&amısını dəyişmək" + +#. i18n: ectx: property (text), widget (QPushButton, findAll) +#: search/searchbarpower.ui:234 +#, kde-format +msgid "&Find All" +msgstr "&Hamısını tapmaq" + +#. i18n: ectx: property (text), widget (QPushButton, cancel) +#: search/searchbarpower.ui:257 +#, kde-format +msgid "Cancel" +msgstr "İmtina" + +#. i18n: ectx: property (toolTip), widget (QToolButton, mutate) +#: search/searchbarpower.ui:268 +#, kde-format +msgid "Switch to incremental search bar" +msgstr "Genişlənən axtarış panelinə keçin" + +#. i18n: ectx: property (toolTip), widget (QComboBox, replacement) +#: search/searchbarpower.ui:314 +#, kde-format +msgid "Text to replace with" +msgstr "Dəyişmək üçün mətn" + +#: spellcheck/spellcheckbar.cpp:148 +#, kde-format +msgid "Spell check canceled." +msgstr "Orfoqrafiya yoxlaması ləğv edildi" + +#: spellcheck/spellcheckbar.cpp:245 +#, fuzzy, kde-format +#| msgctxt "progress label" +#| msgid "Spell checking in progress..." +msgctxt "@info:progress" +msgid "Spell checking in progress…" +msgstr "Orfoqrafiya yoxlanılır..." + +#: spellcheck/spellcheckbar.cpp:246 spellcheck/spellcheckbar.cpp:435 +#, kde-format +msgctxt "@title:window" +msgid "Check Spelling" +msgstr "Orfoqrafiya yoxlaması" + +#: spellcheck/spellcheckbar.cpp:432 spellcheck/spellcheckbar.cpp:435 +#, kde-format +msgid "Spell check complete." +msgstr "Orfoqrafiya yoxlaması başa çatdı." + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel2) +#. i18n: ectx: property (whatsThis), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:30 spellcheck/spellcheckbar.ui:46 +#, kde-format +msgid "" +"

This word was considered to be an \"unknown word\" because it does " +"not match any entry in the dictionary currently in use. It may also be a " +"word in a foreign language.

\n" +"

If the word is not misspelled, you may add it to the dictionary by " +"clicking Add to Dictionary. If you do not want to add the unknown " +"word to the dictionary, but you want to leave it unchanged, click Ignore or Ignore All.

\n" +"

However, if the word is misspelled, you can try to find the correct " +"replacement in the list below. If you cannot find a replacement there, you " +"may type it in the text box below, and click Replace or Replace " +"All.

\n" +"
" +msgstr "" +"

Bu söz hazırda istifadə olunan lüğətdəki hər hansı bir yazıya uyğun " +"gəlmədiyi üçün \"naməlum söz\" hesab olunurdu. Bu xarici dildə və ya yeni " +"yaranan söz də ola bilər.

\n" +"

Söz səhv yazılmayıbsa, onu Lüğətə əlavə et vuraraq lüğətə əlavə " +"edə bilərsiniz. Naməlum sözü lüğətə əlavə etmək istəmirsinizsə, Nəzərə " +"almamaq və ya Heç birini nəzərə almamaq düyməsini vurun.

\n" +"

Ancaq söz səhv yazılıbsa, aşağıdakı siyahıdan düzgün əvəzini tapmağa cəhd " +"edə bilərsiniz. Əgər belə bir söz tapa bilmirsinizsə, aşağıdakı mətn " +"qutusuna yaza və Dəyişdirin və ya Hamısını dəyişdirin " +"düyməsini vurun.

\n" +"
" + +#. i18n: ectx: property (text), widget (QLabel, textLabel2) +#: spellcheck/spellcheckbar.ui:33 +#, kde-format +msgid "Unknown word:" +msgstr "Naməlum söz:" + +#. i18n: ectx: property (toolTip), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:40 +#, kde-format +msgid "Unknown word" +msgstr "Naməlum söz" + +#. i18n: ectx: property (text), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:49 +#, kde-format +msgid "misspelled" +msgstr "səhvən" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_addBtn) +#: spellcheck/spellcheckbar.ui:72 +#, kde-format +msgid "" +"\n" +"

The unknown word was detected and considered unknown because it is not " +"included in the dictionary.
\n" +"Click here if you consider the unknown word not to be misspelled, and you " +"want to avoid wrongly detecting it again in the future. If you want to let " +"it remain as is, but not add it to the dictionary, then click Ignore " +"or Ignore All instead.

\n" +"
" +msgstr "" +"\n" +"Bilinməyən söz aşkar edildi və lüğətə daxil edilmədiyi üçün naməlum hesab " +"edildi.

\n" +"Naməlum sözün səhv yazılmadığını düşünürsünüzsə və gələcəkdə bu səhvin " +"təkrarlanmamasını istəyirsinizsə buraya vurun. İstəsəniz ki, söz olduğu kimi " +"qalsın, amma o lüğətə əlavə edilməsin, o zaman Nəzərə alma və ya " +"Heç birini nəzərə alma düyməsini vurun.

\n" +"
" + +#. i18n: ectx: property (text), widget (QPushButton, m_addBtn) +#: spellcheck/spellcheckbar.ui:75 +#, kde-format +msgid "<< Add to Dictionary" +msgstr "<\n" +"

If the unknown word is misspelled, you should type the correction for " +"your misspelled word here or select it from the list below.

\n" +"

You can then click Replace if you want to correct only this " +"occurrence of the word or Replace All if you want to correct all " +"occurrences.

\n" +"
" +msgstr "" +"\n" +"

Naməlum söz səhv yazılıbsa, səhv yazdığınız sözə düzəliş etməli və ya " +"aşağıdakı siyahıdan seçməlisiniz.

\n" +"

Daha sonra sözün yalnız bu vəziyyətini düzəltmək istəyirsinizsə " +"Dəyişdirin və ya bütün bu kimi halları düzəltmək istəsəniz " +"Hamısını dəyişdirin düyməsini vura bilərsiniz.

\n" +"
" + +#. i18n: ectx: property (text), widget (QLabel, textLabel4) +#: spellcheck/spellcheckbar.ui:92 +#, kde-format +msgid "Replace with:" +msgstr "Dəyişdir:" + +#. i18n: ectx: property (text), widget (QPushButton, m_suggestBtn) +#: spellcheck/spellcheckbar.ui:118 +#, kde-format +msgid "S&uggest" +msgstr "&Uyğun sözlər" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_replaceBtn) +#: spellcheck/spellcheckbar.ui:127 +#, kde-format +msgid "" +"\n" +"

Click here to replace this occurrence of the unknown text with the text " +"in the edit box above (to the left).

\n" +"
" +msgstr "" +"\n" +"

Naməlum mətnin meydana gəlməsini yuxarıdakı redaktə qutusundakı mətnlə " +"əvəz etmək üçün buraya vurun (solda).

\n" +"
" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_skipBtn) +#: spellcheck/spellcheckbar.ui:140 +#, kde-format +msgid "" +"\n" +"

Click here to let this occurrence of the unknown word remain as is.

\n" +"

This action is useful when the word is a name, an acronym, a foreign word " +"or any other unknown word that you want to use but not add to the dictionary." +"

\n" +"
" +msgstr "" +"\n" +"

Naməlum sözün meydana gəlməsini olduğu kimi saxlamaq üçün buraya vurun.\n" +"

Söz - bir ad, bir qısaltma, xarici söz və ya istifadə etmək istədiyiniz, " +"lakin lüğətə əlavə etmədiyiniz başqa bir bilinməyən söz olduqda bu hərəkət " +"faydalıdır

\n" +"
" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel5) +#. i18n: ectx: property (whatsThis), widget (Sonnet::DictionaryComboBox, m_language) +#: spellcheck/spellcheckbar.ui:156 spellcheck/spellcheckbar.ui:174 +#, kde-format +msgid "" +"\n" +"

Select the language of the document you are proofing here.

\n" +"
" +msgstr "" +"\n" +"

Burada sınamaq istədiyiniz sənədin dilini seçin.

\n" +"
" + +#. i18n: ectx: property (text), widget (QLabel, textLabel5) +#: spellcheck/spellcheckbar.ui:159 +#, kde-format +msgid "&Language:" +msgstr "Di&l:" + +#. i18n: ectx: property (toolTip), widget (Sonnet::DictionaryComboBox, m_language) +#: spellcheck/spellcheckbar.ui:169 +#, kde-format +msgid "Language Selection" +msgstr "Dil Seçimi" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_autoCorrect) +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_skipAllBtn) +#: spellcheck/spellcheckbar.ui:197 spellcheck/spellcheckbar.ui:222 +#, kde-format +msgid "" +"\n" +"

Click here to let all occurrences of the unknown word remain as they are." +"

\n" +"

This action is useful when the word is a name, an acronym, a foreign word " +"or any other unknown word that you want to use but not add to the dictionary." +"

\n" +"
" +msgstr "" +"\n" +"

Naməlum sözün bütün vəziyyətinin olduğu kimi qalmasına icazə vermək üçün " +"buraya vurun.

\n" +"

Söz bir ad, bir qısaltma, xarici söz və ya istifadə etmək istədiyiniz," +"lakin lüğətə əlavə etmədiyiniz başqa bir bilinməyən söz olduqda bu hərəkət " +"faydalıdır.

\n" +"
" + +#. i18n: ectx: property (text), widget (QPushButton, m_autoCorrect) +#: spellcheck/spellcheckbar.ui:200 +#, kde-format +msgid "Autocorrect" +msgstr "Avtomatik Düzəliş" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_replaceAllBtn) +#: spellcheck/spellcheckbar.ui:209 +#, kde-format +msgid "" +"\n" +"

Click here to replace all occurrences of the unknown text with the text " +"in the edit box above (to the left).

\n" +"
" +msgstr "" +"\n" +"

Naməlum mətnin bütün vəziyyətinin yuxarıdakı redaktə qutusundakı mətnlə " +"əvəz etmək üçün buraya vurun (solda).

\n" +"
" + +#. i18n: ectx: property (text), widget (QPushButton, m_replaceAllBtn) +#: spellcheck/spellcheckbar.ui:212 +#, kde-format +msgid "R&eplace All" +msgstr "Hamısını də&yişmək" + +#. i18n: ectx: property (text), widget (QPushButton, m_skipAllBtn) +#: spellcheck/spellcheckbar.ui:225 +#, kde-format +msgid "I&gnore All" +msgstr "Heç birini nə&zərə alma" + +#: spellcheck/spellcheckdialog.cpp:51 +#, fuzzy, kde-format +#| msgid "Spelling (from Cursor)..." +msgctxt "@action" +msgid "Spelling (from Cursor)…" +msgstr "Orfoqrafiya yoxlaması (kursordan başlayaraq)..." + +#: spellcheck/spellcheckdialog.cpp:54 +#, kde-format +msgid "Check the document's spelling from the cursor and forward" +msgstr "Orfoqrafiyanı kursordan sənədin sonunadək yoxlamaq" + +#: spellcheck/spellingmenu.cpp:76 +#, kde-format +msgid "Ignore Word" +msgstr "Sözü nəzərə almamaq" + +#: spellcheck/spellingmenu.cpp:79 +#, kde-format +msgid "Add to Dictionary" +msgstr "Lüğətə əlavə edin" + +#: spellcheck/spellingmenu.cpp:172 +#, kde-format +msgid "Spelling '%1'" +msgstr "Orfoqrafiya \"%1\"" + +#: swapfile/kateswapdiffcreator.cpp:87 +#, kde-format +msgid "" +"The diff command could not be found. Please make sure that diff(1) is " +"installed and in your PATH." +msgstr "" +"Diff əmrinə tapılmadı. Lütfən, diff(1) quraşdırıldığına və PATH-da " +"olduğundan əmin olun." + +#: swapfile/kateswapdiffcreator.cpp:98 +#, kde-format +msgid "The diff command '%1' could not be started." +msgstr "\"%1\" diff əmri başladıla bilmədi." + +#: swapfile/kateswapfile.cpp:642 +#, kde-format +msgid "The file was not closed properly." +msgstr "Fayl düzgün bağlanmadı." + +#: swapfile/kateswapfile.cpp:645 +#, kde-format +msgid "View Changes" +msgstr "Dəyişiklikləri baxmaq" + +#: swapfile/kateswapfile.cpp:646 +#, kde-format +msgid "Recover Data" +msgstr "Bərpa etmək" + +#: swapfile/kateswapfile.cpp:647 +#, kde-format +msgid "Discard" +msgstr "İmtina etmək" + +#: syntax/katecolortreewidget.cpp:34 syntax/katecolortreewidget.cpp:61 +#, kde-format +msgid "Use default color from the color theme" +msgstr "Rəng sxemindən standart rəngi istifadə edin" + +#: syntax/katehighlightmenu.cpp:39 +#, kde-format +msgid "None" +msgstr "Heç biri" + +#: syntax/katestyletreewidget.cpp:135 +#, kde-format +msgctxt "@title:column Meaning of text in editor" +msgid "Context" +msgstr "Kontekst" + +#: syntax/katestyletreewidget.cpp:136 +#, kde-format +msgctxt "@title:column Text style" +msgid "Normal" +msgstr "Adi" + +#: syntax/katestyletreewidget.cpp:136 +#, kde-format +msgctxt "@title:column Text style" +msgid "Selected" +msgstr "Seçilmiş mətn" + +#: syntax/katestyletreewidget.cpp:136 +#, kde-format +msgctxt "@title:column Text style" +msgid "Background" +msgstr "Arxa fon" + +#: syntax/katestyletreewidget.cpp:137 +#, kde-format +msgctxt "@title:column Text style" +msgid "Background Selected" +msgstr "Seçim fonu" + +#: syntax/katestyletreewidget.cpp:139 +#, kde-format +msgid "Use Default Style" +msgstr "Standart Tərzi İstifadə etmək" + +#: syntax/katestyletreewidget.cpp:238 +#, kde-format +msgid "&Bold" +msgstr "&Qalın" + +#: syntax/katestyletreewidget.cpp:243 +#, kde-format +msgid "&Italic" +msgstr "&Kursiv" + +#: syntax/katestyletreewidget.cpp:248 +#, kde-format +msgid "&Underline" +msgstr "&Altını cızmaq" + +#: syntax/katestyletreewidget.cpp:253 +#, kde-format +msgid "S&trikeout" +msgstr "Üs&tünü cızmaq" + +#: syntax/katestyletreewidget.cpp:260 +#, fuzzy, kde-format +#| msgid "Normal &Color..." +msgctxt "@action:inmenu" +msgid "Normal &Color…" +msgstr "Normal &Rəng..." + +#: syntax/katestyletreewidget.cpp:263 +#, fuzzy, kde-format +#| msgid "&Selected Color..." +msgctxt "@action:inmenu" +msgid "&Selected Color…" +msgstr "&Seçilmiş Rəng..." + +#: syntax/katestyletreewidget.cpp:266 +#, fuzzy, kde-format +#| msgid "&Background Color..." +msgctxt "@action:inmenu" +msgid "&Background Color…" +msgstr "&Fon Rəngi..." + +#: syntax/katestyletreewidget.cpp:269 +#, fuzzy, kde-format +#| msgid "S&elected Background Color..." +msgctxt "@action:inmenu" +msgid "S&elected Background Color…" +msgstr "S&eçilmiş fon rəngi..." + +#: syntax/katestyletreewidget.cpp:275 +#, kde-format +msgid "Unset Normal Color" +msgstr "Adi mətnin standart rəngi" + +#: syntax/katestyletreewidget.cpp:278 +#, kde-format +msgid "Unset Selected Color" +msgstr "Seçilmiş mətnin standart rəngi" + +#: syntax/katestyletreewidget.cpp:284 +#, kde-format +msgid "Unset Background Color" +msgstr "Fonun standart rəngi" + +#: syntax/katestyletreewidget.cpp:289 +#, kde-format +msgid "Unset Selected Background Color" +msgstr "Seçilmiş fonun standart rəngi" + +#: syntax/katestyletreewidget.cpp:295 +#, kde-format +msgid "Use &Default Style" +msgstr "Stan&dart tərzi istifadə edin" + +#: syntax/katestyletreewidget.cpp:408 +#, kde-format +msgctxt "No text or background color set" +msgid "None set" +msgstr "Göstərilməyib" + +#: syntax/katestyletreewidget.cpp:642 +#, kde-format +msgid "" +"\"Use Default Style\" will be automatically unset when you change any style " +"properties." +msgstr "" +"\"Standart Tərzi İstifadə edin\" parametrləri tərtibatda dəyişiklik " +"edildiyində sıfırlanacaq." + +#: syntax/katestyletreewidget.cpp:643 +#, kde-format +msgid "Kate Styles" +msgstr "Kate Tərzi" + +#: syntax/katethemeconfig.cpp:47 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Normal" +msgstr "Adi mətn" + +#: syntax/katethemeconfig.cpp:49 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Keyword" +msgstr "Açar sözü" + +#: syntax/katethemeconfig.cpp:51 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Function" +msgstr "Funksiya" + +#: syntax/katethemeconfig.cpp:53 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Variable" +msgstr "Dəyişən" + +#: syntax/katethemeconfig.cpp:55 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Control Flow" +msgstr "Axışın İdarəedilməsi" + +#: syntax/katethemeconfig.cpp:57 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Operator" +msgstr "Əməliyyat" + +#: syntax/katethemeconfig.cpp:59 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Built-in" +msgstr "Quraşdırılmış" + +#: syntax/katethemeconfig.cpp:61 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Extension" +msgstr "Dil genişlənməsi" + +#: syntax/katethemeconfig.cpp:63 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Preprocessor" +msgstr "Preprocessor" + +#: syntax/katethemeconfig.cpp:65 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Attribute" +msgstr "Atribut" + +#: syntax/katethemeconfig.cpp:68 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Character" +msgstr "Simvol" + +#: syntax/katethemeconfig.cpp:70 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Special Character" +msgstr "Xüsusi simvol" + +#: syntax/katethemeconfig.cpp:72 +#, kde-format +msgctxt "@item:intable Text context" +msgid "String" +msgstr "Sətir" + +#: syntax/katethemeconfig.cpp:74 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Verbatim String" +msgstr "Mətn Sətri" + +#: syntax/katethemeconfig.cpp:76 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Special String" +msgstr "Xüsusi Sətir" + +#: syntax/katethemeconfig.cpp:78 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Imports, Modules, Includes" +msgstr "İdxal, Modulun qoşulması, Daxil edilənlər" + +#: syntax/katethemeconfig.cpp:81 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Data Type" +msgstr "Verilənlər növü" + +#: syntax/katethemeconfig.cpp:83 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Decimal/Value" +msgstr "Onluq Rəqəm" + +#: syntax/katethemeconfig.cpp:85 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Base-N Integer" +msgstr "N əsaslı tam ədəd" + +#: syntax/katethemeconfig.cpp:87 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Floating Point" +msgstr "Üzən nöqtə" + +#: syntax/katethemeconfig.cpp:89 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Constant" +msgstr "Sabit" + +#: syntax/katethemeconfig.cpp:92 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Comment" +msgstr "Şərhlər" + +#: syntax/katethemeconfig.cpp:94 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Documentation" +msgstr "Sənədləşmə" + +#: syntax/katethemeconfig.cpp:96 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Annotation" +msgstr "Annotasiya" + +#: syntax/katethemeconfig.cpp:98 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Comment Variable" +msgstr "Dəyişkən şərh" + +#: syntax/katethemeconfig.cpp:101 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Region Marker" +msgstr "Ərazi markeri" + +#: syntax/katethemeconfig.cpp:103 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Information" +msgstr "Məlumat" + +#: syntax/katethemeconfig.cpp:105 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Warning" +msgstr "Xəbərdarlıq" + +#: syntax/katethemeconfig.cpp:107 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Alert" +msgstr "Siqnal" + +#: syntax/katethemeconfig.cpp:110 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Others" +msgstr "Digəriləri" + +#: syntax/katethemeconfig.cpp:113 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Error" +msgstr "Xəta" + +#: syntax/katethemeconfig.cpp:162 +#, kde-format +msgid "Use Default Colors" +msgstr "Standart rənglər istifadə etmək" + +#: syntax/katethemeconfig.cpp:182 +#, kde-format +msgid "Editor Background Colors" +msgstr "Redaktorun arxa fon rəngləri" + +#: syntax/katethemeconfig.cpp:184 +#, kde-format +msgid "Text Area" +msgstr "Mətn sahəsi" + +#: syntax/katethemeconfig.cpp:186 +#, kde-format +msgid "

Sets the background color of the editing area.

" +msgstr "

Düzəliş edilən sahənin fon rəngini seçin.

" + +#: syntax/katethemeconfig.cpp:191 +#, kde-format +msgid "Selected Text" +msgstr "Seçilmiş mətn" + +#: syntax/katethemeconfig.cpp:194 +#, kde-format +msgid "" +"

Sets the background color of the selection.

To set the text color " +"for selected text, use the "Configure Highlighting" dialog." +"

" +msgstr "" +"

Seçilmiş mətn hissəsinin fon rəngi

.Mətnin seçilmiş. hissəsinin " +"rəngini təyin etmək üçün "İşıqlanmanı tənzimlə" dialoqundan " +"istifadə edin.

" + +#: syntax/katethemeconfig.cpp:200 +#, kde-format +msgid "Current Line" +msgstr "Cari sətir" + +#: syntax/katethemeconfig.cpp:202 +#, kde-format +msgid "" +"

Sets the background color of the currently active line, which means the " +"line where your cursor is positioned.

" +msgstr "" +"

Mətn kursorunun yerləşdiyi cari aktiv sətrin fon rəngini təyin edin.

" + +#: syntax/katethemeconfig.cpp:207 +#, kde-format +msgid "Search Highlight" +msgstr "Axtarış nəticəsinin işıqlanması" + +#: syntax/katethemeconfig.cpp:209 +#, kde-format +msgid "

Sets the background color of search results.

" +msgstr "

Axtarış panelində tapılmış mətnin fon rəngi.

" + +#: syntax/katethemeconfig.cpp:214 +#, kde-format +msgid "Replace Highlight" +msgstr "Əvəzlənən mətnin işıqlanması" + +#: syntax/katethemeconfig.cpp:216 +#, kde-format +msgid "

Sets the background color of replaced text.

" +msgstr "

Əvəzlənən mətnin fon rəngi.

" + +#: syntax/katethemeconfig.cpp:223 +#, kde-format +msgid "Icon Border" +msgstr "Başıq zolağı" + +#: syntax/katethemeconfig.cpp:226 +#, kde-format +msgid "Background Area" +msgstr "Fon" + +#: syntax/katethemeconfig.cpp:228 +#, kde-format +msgid "

Sets the background color of the icon border.

" +msgstr "

Başlıq zolağının fon rəngini seç.

" + +#: syntax/katethemeconfig.cpp:233 view/screenshotdialog.cpp:265 +#, kde-format +msgid "Line Numbers" +msgstr "Sətir nömrələri" + +#: syntax/katethemeconfig.cpp:235 +#, kde-format +msgid "

This color will be used to draw the line numbers (if enabled).

" +msgstr "

Sətir nömrələrinin rəngi.

" + +#: syntax/katethemeconfig.cpp:240 +#, kde-format +msgid "Current Line Number" +msgstr "Cari sətrin nömrəsi (aktiv olunduqda)" + +#: syntax/katethemeconfig.cpp:242 +#, kde-format +msgid "" +"

This color will be used to draw the number of the current line (if " +"enabled).

" +msgstr "

Cari sətrin nömrəsinin rəngi (aktiv olunduqda)

" + +#: syntax/katethemeconfig.cpp:247 +#, kde-format +msgid "Separator" +msgstr "Ayırıcı" + +#: syntax/katethemeconfig.cpp:249 +#, kde-format +msgid "" +"

This color will be used to draw the line between line numbers and the " +"icon borders, if both are enabled.

" +msgstr "" +"

Sətrin nömrələri ilə başlıq zolağı arasındakı sətrin rəngi (əgər hər " +"ikisi də aktiv olunubsa).

" + +#: syntax/katethemeconfig.cpp:254 +#, kde-format +msgid "Word Wrap Marker" +msgstr "Sətirdən sətirə keçmə içarəsi" + +#: syntax/katethemeconfig.cpp:257 +#, kde-format +msgid "" +"

Sets the color of Word Wrap-related markers:

Static Word Wrap
A vertical line which shows the column where text is going to be " +"wrapped
Dynamic Word Wrap
An arrow shown to the left of " +"visually-wrapped lines
" +msgstr "" +"

Sətirdən sətirə keçmə işarəsinin rəngi:

Sabit Sətirə Keçid
Sətrə keçmə sütununda şaquli xətt
Dinamik Sətrə Keçid
Vizual keçid sətrindən sola ox işarəsi
" + +#: syntax/katethemeconfig.cpp:264 +#, kde-format +msgid "Code Folding" +msgstr "Kod bloklarının bükülməsi" + +#: syntax/katethemeconfig.cpp:266 +#, kde-format +msgid "

Sets the color of the code folding bar.

" +msgstr "

Kod bükülməsi panelinin rəngini seçin.

" + +#: syntax/katethemeconfig.cpp:271 +#, kde-format +msgid "Modified Lines" +msgstr "Dəyişdirilən Sətirlər" + +#: syntax/katethemeconfig.cpp:273 +#, kde-format +msgid "" +"

Sets the color of the line modification marker for modified lines.

" +msgstr "

Dəyişdirilmiş sətirlər üçün markerin rəngini təyin edin.

" + +#: syntax/katethemeconfig.cpp:278 +#, kde-format +msgid "Saved Lines" +msgstr "Saxlanılmış Sətirlər" + +#: syntax/katethemeconfig.cpp:280 +#, kde-format +msgid "

Sets the color of the line modification marker for saved lines.

" +msgstr "

Saxlanılmış sətirlərin üçün markerin rəngini təyin edin.

" + +#: syntax/katethemeconfig.cpp:287 +#, kde-format +msgid "Text Decorations" +msgstr "Mətn tərtibatı" + +#: syntax/katethemeconfig.cpp:290 +#, kde-format +msgid "Spelling Mistake Line" +msgstr "Orfoqrafik səhvlərin işarələnməsi" + +#: syntax/katethemeconfig.cpp:292 +#, kde-format +msgid "" +"

Sets the color of the line that is used to indicate spelling mistakes.

" +msgstr "

Orfoqrafik səhvləri işarələmək üçün rəngi təyin edin.

" + +#: syntax/katethemeconfig.cpp:297 +#, kde-format +msgid "Tab and Space Markers" +msgstr "Tab və Boşluq nişanları" + +#: syntax/katethemeconfig.cpp:299 +#, kde-format +msgid "

Sets the color of the tabulator marks.

" +msgstr "

Tab nişanlarının rəngini təyin edin.

" + +#: syntax/katethemeconfig.cpp:304 +#, kde-format +msgid "Indentation Line" +msgstr "Sətrin abzası" + +#: syntax/katethemeconfig.cpp:306 +#, kde-format +msgid "

Sets the color of the vertical indentation lines.

" +msgstr "

Sətir abzaslarının rəngini təyin edin.

" + +#: syntax/katethemeconfig.cpp:311 +#, kde-format +msgid "Bracket Highlight" +msgstr "Mötərizələrin İşıqlanması" + +#: syntax/katethemeconfig.cpp:314 +#, kde-format +msgid "" +"

Sets the bracket matching color. This means, if you place the cursor e.g. " +"at a (, the matching ) will be highlighted with this color.

" +msgstr "" +"

Kursorun yerləşdiyi mötərizələrin rəngini təyin edin.(, ona uyğun " +"mötərizə) bu rənglə İşıqlanacaq." + +#: syntax/katethemeconfig.cpp:322 +#, kde-format +msgid "Marker Colors" +msgstr "Markerlər" + +#: syntax/katethemeconfig.cpp:324 view/kateviewhelpers.cpp:1536 +#, kde-format +msgid "Bookmark" +msgstr "Əlfəcinlər" + +#: syntax/katethemeconfig.cpp:325 +#, kde-format +msgid "Active Breakpoint" +msgstr "Aktiv dayanma nöqtəsi" + +#: syntax/katethemeconfig.cpp:326 +#, kde-format +msgid "Reached Breakpoint" +msgstr "Cari dayanma nöqtəsi" + +#: syntax/katethemeconfig.cpp:327 +#, kde-format +msgid "Disabled Breakpoint" +msgstr "Qeyri-aktiv dayanma nöqtəsi" + +#: syntax/katethemeconfig.cpp:328 +#, kde-format +msgid "Execution" +msgstr "İcra" + +#: syntax/katethemeconfig.cpp:329 +#, kde-format +msgid "Warning" +msgstr "Xəbərdarlıq" + +#: syntax/katethemeconfig.cpp:330 +#, kde-format +msgid "Error" +msgstr "Xəta" + +#: syntax/katethemeconfig.cpp:332 +#, kde-format +msgid "" +"

Sets the background color of mark type.

Note: The marker " +"color is displayed lightly because of transparency.

" +msgstr "" +"

İşarələnən nişanın fon rəngini təyin edin.

Qeyd: Bu marker " +"yarımşəfaf olduğu üçün daha solğun rəngli görener.

" + +#: syntax/katethemeconfig.cpp:344 +#, kde-format +msgid "Text Templates & Snippets" +msgstr "Mətnin Şablonları və Hissələri" + +#: syntax/katethemeconfig.cpp:349 +#, kde-format +msgid "Background" +msgstr "Fon" + +#: syntax/katethemeconfig.cpp:355 +#, kde-format +msgid "Editable Placeholder" +msgstr "Düzəli. edilə bilən doldurucu" + +#: syntax/katethemeconfig.cpp:361 +#, kde-format +msgid "Focused Editable Placeholder" +msgstr "Cari düzəliş edilə bilən doldurucu" + +#: syntax/katethemeconfig.cpp:367 +#, kde-format +msgid "Not Editable Placeholder" +msgstr "Düzəliş edilə bilməyən doldurucu" + +#: syntax/katethemeconfig.cpp:501 +#, kde-format +msgid "" +"

This list displays the default styles for the current color theme and " +"offers the means to edit them. The style name reflects the current style " +"settings.

To edit the colors, click the colored squares, or select the " +"color to edit from the popup menu.

You can unset the Background and " +"Selected Background colors from the popup menu when appropriate.

" +msgstr "" +"

Bu siyahı cari rəng sxemlərinin tərtibatını göstərir və onları dəyişməyə " +"imkan verir. Tərtibatın adı seçilən tərzdən asılıdır.

Rənglərə " +"düzəli. etmək üçün rəng xanasını açın və rəngi seçin.

Fonun və " +"seçilmiş fonun standart rəngini bərpa etmək üçün rəng seçimi dialoqundan " +"istifadə edə bilərsiniz.

" + +#: syntax/katethemeconfig.cpp:568 +#, kde-format +msgctxt "@item:intable" +msgid "Normal Text & Source Code" +msgstr "Normal Mətn və Mənbə Kodu" + +#: syntax/katethemeconfig.cpp:575 +#, kde-format +msgctxt "@item:intable" +msgid "Numbers, Types & Constants" +msgstr "Nömrələr, Növlər və Sabit vahidlər" + +#: syntax/katethemeconfig.cpp:582 +#, kde-format +msgctxt "@item:intable" +msgid "Strings & Characters" +msgstr "Sətirlər və Simvollar" + +#: syntax/katethemeconfig.cpp:589 +#, kde-format +msgctxt "@item:intable" +msgid "Comments & Documentation" +msgstr "Şərhlər və Sənədlər" + +#: syntax/katethemeconfig.cpp:596 +#, kde-format +msgctxt "@item:intable" +msgid "Miscellaneous" +msgstr "Müxtəlif" + +#: syntax/katethemeconfig.cpp:704 +#, kde-format +msgid "H&ighlight:" +msgstr "&İşıqlanma:" + +#: syntax/katethemeconfig.cpp:746 +#, kde-format +msgid "" +"

This list displays the contexts of the current syntax highlight mode and " +"offers the means to edit them. The context name reflects the current style " +"settings.

To edit using the keyboard, press <SPACE> and choose a property from the popup menu.

To edit the colors, " +"click the colored squares, or select the color to edit from the popup menu.

You can unset the Background and Selected Background colors from the " +"context menu when appropriate.

" +msgstr "" +"

Bu siyahı cari sintaksis İşıqlanma rejiminin kontekstlərini göstərir və " +"onlara düzəliş etmək üçün imkanlar təqdim edir. Kontekst, adı cari üslub " +"parametrlərindən asılıdır.

Klaviaturanın köməyi ilə düzəliş etmək üçün " +"<SPACE>düyməsini vurun və kontekst menyudan " +"xüsusiyyətləri seçin.

Rənglərə düzəliş etmək üçün açılan dialoq " +"pəncərəsindən rəng xanasını açın və rəngi seçin.

Mətnin və fonun " +"standart rəngini açılan kontekst menyudan bərpa etmək olar.

" + +#: syntax/katethemeconfig.cpp:1027 +#, kde-format +msgid "Default Theme" +msgstr "Standart mövzu" + +#: syntax/katethemeconfig.cpp:1028 +#, kde-format +msgid "Theme Editor" +msgstr "Mövzu redaktoru" + +#: syntax/katethemeconfig.cpp:1046 +#, kde-format +msgid "Select theme:" +msgstr "Mövzunu seçin:" + +#: syntax/katethemeconfig.cpp:1119 +#, kde-format +msgid "&Theme:" +msgstr "&Mövzu:" + +#: syntax/katethemeconfig.cpp:1128 +#, fuzzy, kde-format +#| msgid "&Copy..." +msgctxt "@action:button" +msgid "&Copy…" +msgstr "&Kopyamaq..." + +#: syntax/katethemeconfig.cpp:1136 +#, fuzzy, kde-format +#| msgid "Export..." +msgctxt "@action:button" +msgid "Export…" +msgstr "İxrac..." + +#: syntax/katethemeconfig.cpp:1140 +#, fuzzy, kde-format +#| msgid "Import..." +msgctxt "@action:button" +msgid "Import…" +msgstr "İdxal..." + +#: syntax/katethemeconfig.cpp:1147 +#, kde-format +msgid "Bundled read-only theme. To modify the theme, please copy it." +msgstr "Paketlənmiş, yalnız oxumaq üçün mövzu. Dəyişmək üçün onu kopyalayın." + +#: syntax/katethemeconfig.cpp:1160 +#, kde-format +msgid "Colors" +msgstr "Rənglər" + +#: syntax/katethemeconfig.cpp:1164 +#, kde-format +msgid "Default Text Styles" +msgstr "Standart Mətn Tərtibatları" + +#: syntax/katethemeconfig.cpp:1168 +#, kde-format +msgid "Highlighting Text Styles" +msgstr "Mətnin işıqlanma rəngi tərzləri" + +#: syntax/katethemeconfig.cpp:1180 +#, kde-format +msgid "Exporting color theme: %1" +msgstr "Rəng Sxeminin İxracı: %1" + +#: syntax/katethemeconfig.cpp:1182 syntax/katethemeconfig.cpp:1203 +#, kde-format +msgid "Color theme" +msgstr "Rəng sxemi" + +#: syntax/katethemeconfig.cpp:1203 +#, kde-format +msgid "Importing Color Theme" +msgstr "Rəng Sxeminin İdxalı" + +#: syntax/katethemeconfig.cpp:1217 +#, kde-format +msgid "" +"Importing will overwrite the existing theme file \"%1\". This can not be " +"undone." +msgstr "" +"İdxal zamanı \"%1\" movzusu mövcud faylın üzərinə yazılacaq. Bu ləğv edilə " +"bilməz." + +#: syntax/katethemeconfig.cpp:1219 +#, kde-format +msgid "Import Nevertheless" +msgstr "Hər halda idxal edin" + +#: syntax/katethemeconfig.cpp:1308 +#, kde-format +msgid "Follow System Color Scheme" +msgstr "Sistemin rəng sxeminə uyğun" + +#: syntax/katethemeconfig.cpp:1375 +#, kde-format +msgid "Do you really want to delete the theme \"%1\"? This can not be undone." +msgstr "\"%1\" mövzusunu silmək istədiyinizə əminsiniz? Bu ləğv edilə bilməz." + +#: syntax/katethemeconfig.cpp:1377 +#, kde-format +msgid "Delete Nevertheless" +msgstr "Hər halda silin" + +#: syntax/katethemeconfig.cpp:1419 +#, kde-format +msgid "Copy theme" +msgstr "Mövzunu kopyalamaq" + +#: syntax/katethemeconfig.cpp:1420 +#, kde-format +msgid "Name for copy of color theme \"%1\":" +msgstr "Kopyalamaq üçün \"%1\" rəng sxeminin adı" + +#: syntax/katethemeconfig.cpp:1432 +#, kde-format +msgid "" +"

The theme \"%1\" already exists.

Please choose a different theme " +"name.

" +msgstr "

%1 mövzusu artıq mövcuddur.

Lütfən başqa sxem adı seçin.

" + +#: syntax/katethemeconfig.cpp:1433 +#, kde-format +msgid "Copy Theme" +msgstr "Mövzunu Kopyalamaq" + +#: syntax/katethemeconfig.cpp:1486 syntax/katethemeconfig.cpp:1491 +#, kde-format +msgid "Color Themes" +msgstr "Rəng Sxemləri" + +#: utils/kateautoindent.cpp:88 +#, kde-format +msgctxt "Autoindent mode" +msgid "None" +msgstr "Heç biri" + +#: utils/kateautoindent.cpp:92 +#, kde-format +msgctxt "Autoindent mode" +msgid "Normal" +msgstr "Adi mətn" + +#: utils/katebookmarks.cpp:49 +#, fuzzy, kde-format +#| msgid "Set &Bookmark" +msgid "Toggle &Bookmark" +msgstr "Əlfəcini yara&dın" + +#: utils/katebookmarks.cpp:53 +#, kde-format +msgid "If a line has no bookmark then add one, otherwise remove it." +msgstr "Bu sətrdə əlfəcin yoxdursa onu əlavə edin, əks halda onu silin." + +#: utils/katebookmarks.cpp:56 +#, kde-format +msgid "Clear &All Bookmarks" +msgstr "Əlfəcinlərin h&amısını silin" + +#: utils/katebookmarks.cpp:59 +#, kde-format +msgid "Remove all bookmarks of the current document." +msgstr "Cari sənədin bütün əlfəcinlərini silin." + +#: utils/katebookmarks.cpp:62 utils/katebookmarks.cpp:219 +#, kde-format +msgid "Next Bookmark" +msgstr "Növbəti əlfəcin" + +#: utils/katebookmarks.cpp:66 +#, kde-format +msgid "Go to the next bookmark." +msgstr "Növbəti əlfəcinə keçin" + +#: utils/katebookmarks.cpp:69 utils/katebookmarks.cpp:220 +#, kde-format +msgid "Previous Bookmark" +msgstr "Əvvəllki əlfəcin" + +#: utils/katebookmarks.cpp:73 +#, kde-format +msgid "Go to the previous bookmark." +msgstr "Əvvəlki əlfəcinə keçin." + +#: utils/katebookmarks.cpp:76 +#, kde-format +msgid "&Bookmarks" +msgstr "Ə&lfəcinlər" + +#: utils/katebookmarks.cpp:192 +#, kde-format +msgid "&Next: %1 - \"%2\"" +msgstr "&NövbətiI %1 - \"%2\"" + +#: utils/katebookmarks.cpp:198 +#, kde-format +msgid "&Previous: %1 - \"%2\"" +msgstr "Ə&vvəlkilər: %1 - \"%2\"" + +#: utils/katecmds.cpp:53 +#, kde-format +msgid "

indent

Indents the selected lines or the current line

" +msgstr "

indent

Cari və seçilmiş sətirlərin abzasını artırın

" + +#: utils/katecmds.cpp:58 +#, kde-format +msgid "

unindent

Unindents the selected lines or current line.

" +msgstr "

indent

Cari və seçilmiş sətirlərin abzasını azaldın

" + +#: utils/katecmds.cpp:63 +#, kde-format +msgid "" +"

cleanindent

Cleans up the indentation of the selected lines or " +"current line according to the indentation settings in the document.

" +msgstr "" +"

cleanindent

Seçilən sətirlərin və ya cərgənin girintisini sənəddəki " +"boşluq parametrlərinə uyğun olaraq təmizləyir.

" + +#: utils/katecmds.cpp:68 +#, kde-format +msgid "" +"

comment

Inserts comment markers to make the selection or selected " +"lines or current line a comment according to the text format as defined by " +"the syntax highlight definition for the document.

" +msgstr "" +"

comment

Seçilən mətn və ya cari sətri vurğulanmış sintaksis üçün " +"göstərilmiş sənədin formatına uyğun şərhlərə daxil etmək.

" + +#: utils/katecmds.cpp:74 +#, kde-format +msgid "" +"

uncomment

Removes comment markers from the selection or selected " +"lines or current line according to the text format as defined by the syntax " +"highlight definition for the document.

" +msgstr "" +"

uncomment

Seçilən mətn və ya cari sətri vurğulanmış sintaksis üçün " +"göstərilmiş sənədin formatına uyğun şərhlərdən silmək.

" + +#: utils/katecmds.cpp:80 +#, kde-format +msgid "" +"

goto line number

This command navigates to the specified " +"line number.

" +msgstr "" +"

goto sətririn nömrəsi

Bu əmr kursoru göstərilən sətirə " +"keçirir.

" + +#: utils/katecmds.cpp:85 +#, kde-format +msgid "" +"

set-indent-pasted-text enable

If enabled, indentation of " +"text pasted from the clipboard is adjusted using the current indenter.

Possible true values: 1 on true
possible false values: 0 off false" +msgstr "" +"

set-indent-pasted-text enable

Aktiv olduqda, bufer yaddakı " +"mətnin abzası cari abzasdan istifadə edərək süzəldilir istifadə edərək " +"düzəldilir.

Aktiv etmək üç: 1
Passiv etmək üç.: 0

" + +#: utils/katecmds.cpp:91 +#, kde-format +msgid "Deletes the current line." +msgstr "Cari sətiri silir" + +#: utils/katecmds.cpp:95 +#, kde-format +msgid "" +"

set-tab-width width

Sets the tab width to the number " +"width

" +msgstr "" +"

set-tab-width width

Göstərilən Tab-ın ölçüsünü təyin edir." +"width

" + +#: utils/katecmds.cpp:100 +#, kde-format +msgid "" +"

set-replace-tab enable

If enabled, tabs are replaced with " +"spaces as you type.

Possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" +"

set-replace-tab aktiv et

Tab-ı əvəzetmə rejimini aktiv edir. " +"Əgər aktiv olunubsa yazdığınız müddətdə tab işarələri boşluqlarla əvəz " +"olunacaq.

Aktiv etmək üç.:1 true
Passiv etmək üç.: 0 false

" + +#: utils/katecmds.cpp:107 +#, kde-format +msgid "" +"

set-show-tabs enable

If enabled, TAB characters and trailing " +"whitespace will be visualized by a small dot.

Possible true values: 1 " +"on true
possible false values: 0 off false

" +msgstr "" +"

set-show-tabs enable

Əgər aktiv olunarsa Tab və boşluq " +"simvollarını nöqtə şəklində görünəcək.

Aktiv etmək üç.: 1 true
Passiv etmək üş.: 0 false

" + +#: utils/katecmds.cpp:114 +#, kde-format +msgid "" +"

set-remove-trailing-spaces mode

Removes the trailing spaces " +"in the document depending on the mode.

Possible values:" +"

  • none: never remove trailing spaces.
  • modified: " +"remove trailing spaces only of modified lines.
  • all: remove " +"trailing spaces in the entire document.

" +msgstr "" +"

set-remove-trailing-spaces rejim

Sənəddə, rejim asılı " +"ollaraq sətrin sonundakı boşluqları silinsin.

Son boşluq silinsin:" +"

  • none: son boşluq silinməsin.
  • modified: son " +"boşluq yalnız dəyişiklik olunan sətirlərdən silinsin.
  • all: " +"son boşluq bütün sənəddən silinsin.

" + +#: utils/katecmds.cpp:125 +#, kde-format +msgid "" +"

set-indent-width width

Sets the indentation width to the " +"number width. Used only if you are indenting with spaces.

" +msgstr "" +"

set-indent-width eni

Sətrin əvvəlindəki abzasın genişliyini " +"width göstəricisinə görə təyin edir. Bu ancaq abzas boşluqdan ibarət " +"olduqda baş verir.

" + +#: utils/katecmds.cpp:130 +#, kde-format +msgid "" +"

set-indent-mode mode

The mode parameter is a value as seen " +"in the Tools - Indentation menu

" +msgstr "" +"

set-indent-mode rejim

Bu rejim parametrlərinin göstəricisi " +"Alətlər - Abzasların düzülməsi menyusunda olduğu kimidir.

" + +#: utils/katecmds.cpp:135 +#, kde-format +msgid "" +"

set-auto-indent enable

Enable or disable autoindentation.

possible true values: 1 on true
possible false values: 0 off false" +msgstr "" +"

set-auto-indent aktiv et

Avtomatik abzas rejimini aktiv " +"edir. p>

aktiv etmək üç.: 1 on və ya true
passiv etmək üç. 0 off və ya " +"false

" + +#: utils/katecmds.cpp:142 +#, kde-format +msgid "" +"

set-line-numbers enable

Sets the visibility of the line " +"numbers pane.

possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" +"

set-line-numbers aktiv et

Sətir nömrələri zolağının " +"görünməsini təyin edir.

aktiv etmək üç.: 1 on və ya true
passiv " +"etmək üç. 0 off və ya false

" + +#: utils/katecmds.cpp:149 +#, kde-format +msgid "" +"

set-folding-markers enable

Sets the visibility of the " +"folding markers pane.

possible true values: 1 on true
possible " +"false values: 0 off false

" +msgstr "" +"

set-folding-markers aktiv et

Bükülən markerlər zolağının " +"görünməsini təyin edir.

aktiv etmək üç.: 1 on və ya true
passiv " +"etmək üç. 0 off və ya false

" + +#: utils/katecmds.cpp:156 +#, kde-format +msgid "" +"

set-icon-border enable

Sets the visibility of the icon " +"border.

possible true values: 1 on true
possible false values: 0 " +"off false

" +msgstr "" +"

set-icon-border aktiv et

İkon haşiyəsini görünən edir.

aktiv etmək üç.: 1 on və ya true
passiv etmək üç. 0 off və ya " +"false

" + +#: utils/katecmds.cpp:163 +#, kde-format +msgid "" +"

set-word-wrap enable

Enables dynamic word wrap according to " +"enable

possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" +"

set-word-wrap aktiv et

Sətrə dinamik keçidi aktiv etgöstəricisinə görə aktiv edir.

aktiv etmək üç.: 1 on və ya true
passiv etmək üç. 0 off və ya false

" + +#: utils/katecmds.cpp:170 +#, kde-format +msgid "" +"

set-word-wrap-column width

Sets the line width for hard " +"wrapping to width. This is used if you are having your text wrapped " +"automatically.

" +msgstr "" +"

set-word-wrap-column aktiv et

Sətir genişliyini eni " +"göstəricisini sətirə məcburi keçid üçün təyin edir.

aktiv etmək üç.: 1 " +"on və ya true
passiv etmək üç. 0 off və ya false

" + +#: utils/katecmds.cpp:175 +#, kde-format +msgid "" +"

set-replace-tabs-save enable

When enabled, tabs will be " +"replaced with whitespace whenever the document is saved.

possible " +"true values: 1 on true
possible false values: 0 off false

" +msgstr "" +"

set-replace-tabs-save aktiv et

Aktiv olunarsa hər dəfə " +"sənədi saxladıqda Tab-lar boşluqlarla əvəz olunacaq.

aktiv etmək üç.: " +"1 on və ya true
passiv etmək üç. 0 off və ya false

" + +#: utils/katecmds.cpp:182 +#, kde-format +msgid "" +"

set-highlight highlight

Sets the syntax highlighting system " +"for the document. The argument must be a valid highlight name, as seen in " +"the Tools → Highlighting menu. This command provides an autocompletion list " +"for its argument.

" +msgstr "" +"

set-highlight işıqlanma

Sintaksis işıqlanma sistemini bu " +"sənəd üçün aktiv edir. Arqument Alətlər → İşıqlanma menyusunda göstərilən ad " +"ola bilər. Bu əmr öz arqumenti üçün avtomatik doldurma siyahısını təqdim " +"edir.

" + +#: utils/katecmds.cpp:188 +#, kde-format +msgid "

set-mode mode

Sets the mode as seen in Tools - Mode

" +msgstr "" +"

set-mode rejim

Rejimi Alətlər - Rejim menyusunda olduğu kimi " +"təyin edir.

" + +#: utils/katecmds.cpp:193 +#, kde-format +msgid "" +"

set-show-indent enable

If enabled, indentation will be " +"visualized by a vertical dotted line.

possible true values: 1 on " +"true
possible false values: 0 off false

" +msgstr "" +"

set-show-indent aktiv et

Aktiv olunarsa abzası şaquli " +"nöqtəli xəttlərlə göstərəcək.

aktiv etmək üç.: 1 on və ya true
passiv etmək üç. 0 off və ya false

" + +#: utils/katecmds.cpp:199 +#, kde-format +msgid "

Open the Print dialog to print the current document.

" +msgstr "

Cari sənədi çap etmək üçün Çap et dialoqunu aşın.

" + +#: utils/katecmds.cpp:314 utils/katecmds.cpp:341 +#, kde-format +msgid "Missing argument. Usage: %1 " +msgstr "Arqument mövcud deyil. İstifadə et: %1 " + +#: utils/katecmds.cpp:327 +#, kde-format +msgid "No such highlighting '%1'" +msgstr "İşıqlanma sxemi yoxdur '%1'" + +#: utils/katecmds.cpp:333 +#, kde-format +msgid "No such mode '%1'" +msgstr "Belə rejim yoxdur '%1'" + +#: utils/katecmds.cpp:346 +#, kde-format +msgid "Failed to convert argument '%1' to integer." +msgstr "'%1' arqumentini tam saya çevirmək mümkün olmadı." + +#: utils/katecmds.cpp:350 utils/katecmds.cpp:355 +#, kde-format +msgid "Width must be at least 1." +msgstr "Genişlik ən azı 1 olmalıdır." + +#: utils/katecmds.cpp:360 +#, kde-format +msgid "Column must be at least 1." +msgstr "Sütun nömrəsi ən azı 1 olmalıdır." + +#: utils/katecmds.cpp:390 +#, kde-format +msgid "Usage: %1 on|off|1|0|true|false" +msgstr "İstifadə edilən: %1 on|off|1|0|true|false" + +#: utils/katecmds.cpp:417 +#, kde-format +msgid "Bad argument '%1'. Usage: %2 on|off|1|0|true|false" +msgstr "Yalnış arqument '%1'. İstifadə edilən: %2 on|off|1|0|true|false" + +#: utils/katecmds.cpp:421 +#, kde-format +msgid "" +"Usage: set-remove-trailing-spaces 0|-|none or 1|+|mod|modified or 2|*|all" +msgstr "" +"İstifadə edilən: set-remove-trailing-spaces 0|-|none or 1|+|mod|modified or2|" +"*|all" + +#: utils/katecmds.cpp:435 vimode/cmds.cpp:168 +#, kde-format +msgid "Unknown command '%1'" +msgstr "Naməlum əmr '%1'" + +#: utils/katecmds.cpp:493 +#, kde-format +msgid "" +"

char identifier

This command allows you to insert literal " +"characters by their numerical identifier, in decimal, octal or hexadecimal " +"form.

Examples:

  • char 234
  • char 0x1234

" +msgstr "" +"

char kod

Bu əmr hərfi simvolları, onluq, səkizlik, və " +"onaltılıq rəqəmsal kodlarla daxil etməyə imkan verir.

Misal üç.:" +"

  • char 234
  • char 0x1234

" + +#: utils/katecmds.cpp:560 +#, kde-format +msgid "" +"

date or date format

Inserts a date/time string as defined by " +"the specified format, or the format yyyy-MM-dd hh:mm:ss if none is specified." +"

Possible format specifiers are:
dThe day as " +"number without a leading zero (1-31).
ddThe day as " +"number with a leading zero (01-31).
dddThe " +"abbreviated localized day name (e.g. 'Mon'..'Sun').
ddddThe long localized day name (e.g. 'Monday'..'Sunday').
MThe month as number without a leading zero (1-12).
MMThe month as number with a leading zero (01-12).
MMMThe abbreviated localized month name (e.g. " +"'Jan'..'Dec').
yyThe year as two digit number " +"(00-99).
yyyyThe year as four digit number " +"(1752-8000).
hThe hour without a leading zero " +"(0..23 or 1..12 if AM/PM display).
hhThe hour with " +"a leading zero (00..23 or 01..12 if AM/PM display).
mThe minute without a leading zero (0..59).
mmThe minute with a leading zero (00..59).
sThe second without a leading zero (0..59).
ssThe second with a leading zero (00..59).
zThe milliseconds without leading zeroes (0..999).
zzzThe milliseconds with leading zeroes (000..999).
APUse AM/PM display. AP will be replaced by either " +"\"AM\" or \"PM\".
apUse am/pm display. ap will be " +"replaced by either \"am\" or \"pm\".

" +msgstr "" +"

date və ya date format

Tarixi/Vaxtı verilmiş formatda daxil " +"edin, və ya əgər format verilməyibsə yyyy-MM-dd hh:mm:ss formatında daxil " +"edin.

Mümkün xüsisi formatlar:MMİlin nömrəsi iki rəqəmlə " +"(00-99).

" + +#: utils/katecmds.cpp:621 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Duplicate Selected Lines Up" +msgid "Remove Duplicate Lines" +msgstr "Seçilmiş sətirləri yuxarı kopyalayın" + +#: utils/katecmds.cpp:622 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Remove Duplicates and Sort Selected Text Alphabetically" +msgid "Remove Duplicates and Sort Text Alphabetically" +msgstr "Təkrarları silin və seçilən mətni əlifba sırası ilə sıralayın" + +#: utils/katecmds.cpp:623 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Sort Selected Text Alphabetically" +msgid "Sort Text Naturally" +msgstr "Seçilmiş mətni əlifba sırası ilə sıralayın" + +#: utils/katecmds.cpp:624 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Sort Selected Text Alphabetically" +msgid "Sort Selected Text Alphabetically" +msgstr "Seçilmiş mətni əlifba sırası ilə sıralayın" + +#: utils/katecmds.cpp:699 +#, fuzzy, kde-format +#| msgid "Sort the selected text or whole document." +msgid "" +"

sort

Sort the selected text or whole document if there is no " +"selection

" +msgstr "Seçilmiş mətni və ya bütün sənədi çeşidləmək" + +#: utils/katecmds.cpp:703 +#, fuzzy, kde-format +#| msgid "Remove duplicate lines from the selected text or whole document." +msgid "" +"

uniq

Remove duplicate lines from the selected text or whole " +"document if there is no selection.

" +msgstr "Seçilmiş mətndən və ya bütün sənəddən təkrarlanan sıtirləri silin." + +#: utils/katecmds.cpp:707 +#, kde-format +msgid "" +"

sortuniq

Sort the selected text or whole document and then remove " +"all duplicate lines.

" +msgstr "" + +#: utils/katecmds.cpp:711 +#, fuzzy, kde-format +#| msgid "" +#| "Sort the selected text or whole document in natural order.
Here is an " +#| "example to show the difference to the normal sort method:
sort(a10, " +#| "a1, a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" +msgid "" +"

natsort

Sort the selected text or whole document in natural order." +"
Here is an example to show the difference to the normal sort method:" +"
sort(a10, a1, a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" +msgstr "" +"Seçilmiş mətni və ya bütöv sənədi təbii qaydada sıralayın.
Adi " +"çeşidlənmədən fərqlənməni göstərən nümunə:
çeşidləmə(a10, a1, a2) => a1, " +"a10, a2
natsort(a10, a1, a2) => a1, a2, a10" + +#: utils/kateglobal.cpp:60 +#, kde-format +msgid "Kate Part" +msgstr "Kate tərkib hissələri" + +#: utils/kateglobal.cpp:62 +#, kde-format +msgid "Embeddable editor component" +msgstr "Daxil ediləbilən redaktor tərkib hissələri" + +#: utils/kateglobal.cpp:64 +#, fuzzy, kde-format +#| msgid "(c) 2000-2022 The Kate Authors" +msgid "(c) 2000-2025 The Kate Authors" +msgstr "(c) 2000-2022 Kate-in müəllifləri" + +#: utils/kateglobal.cpp:84 +#, kde-format +msgid "Christoph Cullmann" +msgstr "Christoph Cullmann" + +#: utils/kateglobal.cpp:84 +#, kde-format +msgid "Maintainer" +msgstr "Himayəçi" + +#: utils/kateglobal.cpp:85 +#, kde-format +msgid "Dominik Haumann" +msgstr "Dominik Haumann" + +#: utils/kateglobal.cpp:85 utils/kateglobal.cpp:86 utils/kateglobal.cpp:87 +#: utils/kateglobal.cpp:90 utils/kateglobal.cpp:93 utils/kateglobal.cpp:98 +#, kde-format +msgid "Core Developer" +msgstr "Proqramın əsas tərtibatçısı" + +#: utils/kateglobal.cpp:86 +#, kde-format +msgid "Milian Wolff" +msgstr "Milian Wolff" + +#: utils/kateglobal.cpp:87 +#, kde-format +msgid "Joseph Wenninger" +msgstr "Joseph Wenninger" + +#: utils/kateglobal.cpp:88 +#, kde-format +msgid "Erlend Hamberg" +msgstr "Erlend Hamberg" + +#: utils/kateglobal.cpp:89 +#, kde-format +msgid "Bernhard Beschow" +msgstr "Bernhard Beschow" + +#: utils/kateglobal.cpp:89 utils/kateglobal.cpp:105 +#, kde-format +msgid "Developer" +msgstr "Ptoqram Tərtibatçı" + +#: utils/kateglobal.cpp:90 +#, kde-format +msgid "Anders Lund" +msgstr "Anders Lund" + +#: utils/kateglobal.cpp:91 +#, kde-format +msgid "Michel Ludwig" +msgstr "Michel Ludwig" + +#: utils/kateglobal.cpp:91 +#, kde-format +msgid "On-the-fly spell checking" +msgstr "Orfoqrafiyanın dinamik yoxlanılması" + +#: utils/kateglobal.cpp:92 +#, kde-format +msgid "Pascal Létourneau" +msgstr "Pascal Létourneau" + +#: utils/kateglobal.cpp:92 +#, kde-format +msgid "Large scale bug fixing" +msgstr "Səhvlərin geniş miqyaslı düzəldilməsi" + +#: utils/kateglobal.cpp:93 +#, kde-format +msgid "Hamish Rodda" +msgstr "Hamish Rodda" + +#: utils/kateglobal.cpp:94 +#, kde-format +msgid "Waldo Bastian" +msgstr "Waldo Bastian" + +#: utils/kateglobal.cpp:94 +#, kde-format +msgid "The cool buffersystem" +msgstr "Çox gözəl bufer sistemi" + +#: utils/kateglobal.cpp:95 +#, kde-format +msgid "Charles Samuels" +msgstr "Charles Samuels" + +#: utils/kateglobal.cpp:95 +#, kde-format +msgid "The Editing Commands" +msgstr "Düzəliş əmrləri" + +#: utils/kateglobal.cpp:96 +#, kde-format +msgid "Matt Newell" +msgstr "Matt Newell" + +#: utils/kateglobal.cpp:96 +#, kde-format +msgid "Testing, ..." +msgstr "Yoxlama və s. ..." + +#: utils/kateglobal.cpp:97 +#, kde-format +msgid "Michael Bartl" +msgstr "Michael Bartl" + +#: utils/kateglobal.cpp:97 +#, kde-format +msgid "Former Core Developer" +msgstr "Keçmiş nüvə tərtibatçısı" + +#: utils/kateglobal.cpp:98 +#, kde-format +msgid "Michael McCallum" +msgstr "Michael McCallum" + +#: utils/kateglobal.cpp:99 +#, kde-format +msgid "Michael Koch" +msgstr "Michael Koch" + +#: utils/kateglobal.cpp:99 +#, kde-format +msgid "KWrite port to KParts" +msgstr "KWrite -ın KParts -a köşürülməsi" + +#: utils/kateglobal.cpp:100 +#, kde-format +msgid "Christian Gebauer" +msgstr "Christian Gebauer" + +#: utils/kateglobal.cpp:101 +#, kde-format +msgid "Simon Hausmann" +msgstr "Simon Hausmann" + +#: utils/kateglobal.cpp:102 +#, kde-format +msgid "Glen Parker" +msgstr "Glen Parker" + +#: utils/kateglobal.cpp:102 +#, kde-format +msgid "KWrite Undo History, Kspell integration" +msgstr "KWrite izləmə jurnalı, Kspell inteqrasiyası" + +#: utils/kateglobal.cpp:103 +#, kde-format +msgid "Scott Manson" +msgstr "Scott Manson" + +#: utils/kateglobal.cpp:103 +#, kde-format +msgid "KWrite XML Syntax highlighting support" +msgstr "KWrite -da XML sintaksisinin işıqlanması" + +#: utils/kateglobal.cpp:104 +#, kde-format +msgid "John Firebaugh" +msgstr "John Firebaugh" + +#: utils/kateglobal.cpp:104 +#, kde-format +msgid "Patches and more" +msgstr "Səhv düzəlişləri və bir çoxları" + +#: utils/kateglobal.cpp:105 +#, kde-format +msgid "Andreas Kling" +msgstr "Andreas Kling" + +#: utils/kateglobal.cpp:106 +#, kde-format +msgid "Mirko Stocker" +msgstr "Mirko Stocker" + +#: utils/kateglobal.cpp:106 +#, kde-format +msgid "Various bugfixes" +msgstr "Müxtəlif səhv düzəlişləri" + +#: utils/kateglobal.cpp:107 +#, kde-format +msgid "Matthew Woehlke" +msgstr "Matthew Woehlke" + +#: utils/kateglobal.cpp:107 +#, kde-format +msgid "Selection, KColorScheme integration" +msgstr "KColorScheme daxilində seçimlərin həyata keçirilməsi" + +#: utils/kateglobal.cpp:108 +#, kde-format +msgid "Sebastian Pipping" +msgstr "Sebastian Pipping" + +#: utils/kateglobal.cpp:109 +#, kde-format +msgid "Search bar back- and front-end" +msgstr "Axtarış Paneli" + +#: utils/kateglobal.cpp:112 +#, kde-format +msgid "Jochen Wilhelmy" +msgstr "Jochen Wilhelmy" + +#: utils/kateglobal.cpp:112 +#, kde-format +msgid "Original KWrite Author" +msgstr "KWrite -ın ilk tərtibatçısı" + +#: utils/kateglobal.cpp:113 +#, kde-format +msgid "Gerald Senarclens de Grancy" +msgstr "Gerald Senarclens de Grancy" + +#: utils/kateglobal.cpp:113 +#, kde-format +msgid "QA and Scripting" +msgstr "Keyfiyyətə nəzarət və əmr faylları" + +#: utils/kateglobal.cpp:115 +#, kde-format +msgid "Matteo Merli" +msgstr "Matteo Merli" + +#: utils/kateglobal.cpp:115 +#, kde-format +msgid "Highlighting for RPM Spec-Files, Perl, Diff and more" +msgstr "RPM, Perl, Diff və digər spec-faylları üçün işıqlanma, " + +#: utils/kateglobal.cpp:116 +#, kde-format +msgid "Rocky Scaletta" +msgstr "Rocky Scaletta" + +#: utils/kateglobal.cpp:116 +#, kde-format +msgid "Highlighting for VHDL" +msgstr "VHDL üç. işıqlanma" + +#: utils/kateglobal.cpp:117 +#, kde-format +msgid "Yury Lebedev" +msgstr "Yury Lebedev" + +#: utils/kateglobal.cpp:117 +#, kde-format +msgid "Highlighting for SQL" +msgstr "SQL üç. işıqlanma" + +#: utils/kateglobal.cpp:118 +#, kde-format +msgid "Chris Ross" +msgstr "Chris Ross" + +#: utils/kateglobal.cpp:118 +#, kde-format +msgid "Highlighting for Ferite" +msgstr "Ferite üç. işıqlanma" + +#: utils/kateglobal.cpp:119 +#, kde-format +msgid "Nick Roux" +msgstr "Nick Roux" + +#: utils/kateglobal.cpp:119 +#, kde-format +msgid "Highlighting for ILERPG" +msgstr "ILERPG üç. işıqlanma" + +#: utils/kateglobal.cpp:120 +#, kde-format +msgid "Carsten Niehaus" +msgstr "Carsten Niehaus" + +#: utils/kateglobal.cpp:120 +#, kde-format +msgid "Highlighting for LaTeX" +msgstr "LaTeX üç. işıqlanma" + +#: utils/kateglobal.cpp:121 +#, kde-format +msgid "Per Wigren" +msgstr "Per Wigren" + +#: utils/kateglobal.cpp:121 +#, kde-format +msgid "Highlighting for Makefiles, Python" +msgstr "Makefile, Python üçün işıqlanma" + +#: utils/kateglobal.cpp:122 +#, kde-format +msgid "Jan Fritz" +msgstr "Jan Fritz" + +#: utils/kateglobal.cpp:122 +#, kde-format +msgid "Highlighting for Python" +msgstr "Python üçün işıqlanma" + +#: utils/kateglobal.cpp:123 +#, kde-format +msgid "Daniel Naber" +msgstr "Daniel Naber" + +#: utils/kateglobal.cpp:124 +#, kde-format +msgid "Roland Pabel" +msgstr "Roland Pabel" + +#: utils/kateglobal.cpp:124 +#, kde-format +msgid "Highlighting for Scheme" +msgstr "Sxem üçün işıqlanma" + +#: utils/kateglobal.cpp:125 +#, kde-format +msgid "Cristi Dumitrescu" +msgstr "Cristi Dumitrescu" + +#: utils/kateglobal.cpp:125 +#, kde-format +msgid "PHP Keyword/Datatype list" +msgstr "PHP açar sözü və verilənlər siahısı" + +#: utils/kateglobal.cpp:126 +#, kde-format +msgid "Carsten Pfeiffer" +msgstr "Carsten Pfeiffer" + +#: utils/kateglobal.cpp:126 +#, kde-format +msgid "Very nice help" +msgstr "Ən yaxşı kömək" + +#: utils/kateglobal.cpp:127 +#, kde-format +msgid "Bruno Massa" +msgstr "Bruno Massa" + +#: utils/kateglobal.cpp:127 +#, kde-format +msgid "Highlighting for Lua" +msgstr "Lua üçün işıqlanma" + +#: utils/kateglobal.cpp:129 +#, kde-format +msgid "All people who have contributed and I have forgotten to mention" +msgstr "Bütün bu layihədə iştirak edənlər lakin adları çəkilməyəblər" + +#: utils/kateglobal.cpp:131 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Xəyyam Qocayev" + +#: utils/kateglobal.cpp:131 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "xxmn77@gmail.com" + +#: utils/kateglobal.cpp:255 +#, kde-format +msgid "Configure" +msgstr "Ayarlar" + +#: utils/katesedcmd.cpp:268 +#, kde-format +msgid "replace with %1?" +msgstr "%1 ilə dəyişdirilsin?" + +#: utils/katesedcmd.cpp:274 +#, kde-format +msgctxt "%2 is the translation of the next message" +msgid "1 replacement done on %2" +msgid_plural "%1 replacements done on %2" +msgstr[0] "%2 üzərində 1 dəyişiklik edildi" +msgstr[1] "%2 üzərində %1 dəyişiklik edildi" + +#: utils/katesedcmd.cpp:277 +#, kde-format +msgctxt "substituted into the previous message" +msgid "1 line" +msgid_plural "%1 lines" +msgstr[0] "%1 sətir" +msgstr[1] "%1 sətir" + +#: utils/katevariableexpansionhelpers.cpp:77 +#, kde-format +msgid "" +msgstr "" + +#: utils/katevariableexpansionhelpers.cpp:161 +#, kde-format +msgid "Insert variable" +msgstr "Dəyişəni yerləşdirmək" + +#: utils/katevariableexpansionhelpers.cpp:165 +#, kde-format +msgid "Variables" +msgstr "Dəyişənlər" + +#: utils/katevariableexpansionhelpers.cpp:169 +#, kde-format +msgid "Filter" +msgstr "Filtr" + +#: utils/katevariableexpansionhelpers.cpp:188 +#: utils/katevariableexpansionhelpers.cpp:217 +#, kde-format +msgid "Please select a variable." +msgstr "Dəyişəni seçin" + +#: utils/katevariableexpansionhelpers.cpp:206 +#, kde-format +msgid "Current value: %1" +msgstr "Cari göstərici: %1" + +#: utils/katevariableexpansionhelpers.cpp:214 +#, kde-format +msgid "Current value: %1" +msgstr "Cari göstərici: %1" + +#: utils/katevariableexpansionmanager.cpp:86 +#, kde-format +msgid "File base name without path and suffix of the current document." +msgstr "Cari sənədin yolsuz (path) və şəkilçisiz adı." + +#: utils/katevariableexpansionmanager.cpp:94 +#, kde-format +msgid "File extension of the current document." +msgstr "Cari sənəd üçün fayl uzantısı." + +#: utils/katevariableexpansionmanager.cpp:102 +#, kde-format +msgid "File name without path of the current document." +msgstr "Cari sənədin yolsuz fayl adı." + +#: utils/katevariableexpansionmanager.cpp:110 +#, kde-format +msgid "Full path of the current document including the file name." +msgstr "Cari sənədin fayl adına daxil edilmiş tam yolu." + +#: utils/katevariableexpansionmanager.cpp:118 +#, kde-format +msgid "Contents of the current document." +msgstr "Cari sənədin tərkibləri." + +#: utils/katevariableexpansionmanager.cpp:125 +#, kde-format +msgid "Full path of the current document excluding the file name." +msgstr "Fayl adı istisna olmaqla cari sənədə tam yol." + +#: utils/katevariableexpansionmanager.cpp:133 +#, kde-format +msgid "" +"Full document path including file name, with native path separator " +"(backslash on Windows)." +msgstr "" +"Fayl adı daxil olmaqla standart ƏS üçün ayırıcı (Windows ƏS-dəki kimi tərs " +"kəsir işarəsi) ilə cari sənədə tam yol." + +#: utils/katevariableexpansionmanager.cpp:141 +#, kde-format +msgid "" +"Full document path excluding file name, with native path separator " +"(backslash on Windows)." +msgstr "" +"Fayl adı istisna olmaqla standart ƏS üçün ayırıcı (Windows ƏS-dəki kimi tərs " +"kəsir işarəsi) ilə cari sənədə tam yol." + +#: utils/katevariableexpansionmanager.cpp:149 +#, kde-format +msgid "" +"Line number of the text cursor position in current document (starts with 0)." +msgstr "" +"Cari sənəddə mətn kursorunun yerləşdiyi sətir nömrəsi (0 ilə başlayır)." + +#: utils/katevariableexpansionmanager.cpp:156 +#, kde-format +msgid "" +"Column number of the text cursor position in current document (starts with " +"0)." +msgstr "" +"Cari sənəddə mətn kursorunun yerləşdiyi sütun nömrəsi (0 ilə başlayır)." + +#: utils/katevariableexpansionmanager.cpp:163 +#, kde-format +msgid "X component in global screen coordinates of the cursor position." +msgstr "Kursorun yerləşdiyi cari ekranda X kordinatları." + +#: utils/katevariableexpansionmanager.cpp:170 +#, kde-format +msgid "Y component in global screen coordinates of the cursor position." +msgstr "Kursorun yerləşdiyi cari ekranda Y kordinatları." + +#: utils/katevariableexpansionmanager.cpp:177 +#, kde-format +msgid "Text selection of the current document." +msgstr "Cari sənəddə mətnin seçilməsi." + +#: utils/katevariableexpansionmanager.cpp:184 +#, kde-format +msgid "Start line of selected text of the current document." +msgstr "Cari sənəddə seçilmiş mətnin başlanğıc sətiri." + +#: utils/katevariableexpansionmanager.cpp:191 +#, kde-format +msgid "Start column of selected text of the current document." +msgstr "Cari sənəddə seçilmiş mətnin başlanğıc sütunu." + +#: utils/katevariableexpansionmanager.cpp:198 +#, kde-format +msgid "End line of selected text of the current document." +msgstr "Cari sənəddə seçilmiş mətnin son sətiri." + +#: utils/katevariableexpansionmanager.cpp:205 +#, kde-format +msgid "End column of selected text of the current document." +msgstr "Cari sənəddə seçilmiş mətnin son sütunu." + +#: utils/katevariableexpansionmanager.cpp:212 +#, kde-format +msgid "Number of rows of the current document." +msgstr "Cari sənədin sətirlərinin sayı." + +#: utils/katevariableexpansionmanager.cpp:219 +#, kde-format +msgid "Read a document variable." +msgstr "Sənəd dəyişkənini oxuyun" + +#: utils/katevariableexpansionmanager.cpp:227 +#, kde-format +msgid "The current date in current locale format." +msgstr "Cari yerli tariz formatı." + +#: utils/katevariableexpansionmanager.cpp:234 +#, kde-format +msgid "The current date (ISO)." +msgstr "Cari tarix (İSO)." + +#: utils/katevariableexpansionmanager.cpp:241 +#, kde-format +msgid "The current date (QDate formatstring)." +msgstr "Cari tarix (QDate format sətri)." + +#: utils/katevariableexpansionmanager.cpp:249 +#, kde-format +msgid "The current time in current locale format." +msgstr "Cari yerli Vaxt formatı." + +#: utils/katevariableexpansionmanager.cpp:256 +#, kde-format +msgid "The current time (ISO)." +msgstr "Cari Vaxt (İSO)" + +#: utils/katevariableexpansionmanager.cpp:263 +#, kde-format +msgid "The current time (QTime formatstring)." +msgstr "Cari Vaxt (QTime format sətiri)." + +#: utils/katevariableexpansionmanager.cpp:271 +#, kde-format +msgid "Access to environment variables." +msgstr "Dəyişən mühitə giriş" + +#: utils/katevariableexpansionmanager.cpp:279 +#, kde-format +msgid "Evaluate simple JavaScript statements." +msgstr "Sadə JavaScript ifadələrini qiymətləndirin." + +#: utils/katevariableexpansionmanager.cpp:289 +#, kde-format +msgid "Encode text to make it URL compatible." +msgstr "Mətni URL-a uyğunlaşdırmaq üçün kodlaşdırın." + +#: utils/katevariableexpansionmanager.cpp:297 +#, kde-format +msgid "Generate a new UUID." +msgstr "Yeni UUID yaradılması." + +#: variableeditor/variableeditor.cpp:40 +#, kde-format +msgid "Kate Handbook." +msgstr "Kate Sorğu Kitabı." + +#: variableeditor/variableeditor.cpp:213 +#, kde-format +msgid "true" +msgstr "həqiqi" + +#: variableeditor/variableeditor.cpp:214 +#, kde-format +msgid "false" +msgstr "yalnış" + +#: variableeditor/variableeditor.cpp:350 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "none" +msgstr "heç biri" + +#: variableeditor/variableeditor.cpp:351 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "modified" +msgstr "dəyişdirilən" + +#: variableeditor/variableeditor.cpp:352 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "all" +msgstr "bütün" + +#: variableeditor/variablelineedit.cpp:42 +#, kde-format +msgid "Show list of valid variables." +msgstr "Həqqiqi dəyişənnlər siyahısını göstərmək." + +#: variableeditor/variablelineedit.cpp:115 +#, kde-format +msgctxt "short translation please" +msgid "Enable automatic insertion of brackets." +msgstr "Bağlanan mötərizənin avtomatik daxil edilməsi." + +#: variableeditor/variablelineedit.cpp:121 +#, kde-format +msgctxt "short translation please" +msgid "Set the number of autocenter lines." +msgstr "Sürüşmə zamanı görünən xətlərin sayı." + +#: variableeditor/variablelineedit.cpp:126 +#, kde-format +msgctxt "short translation please" +msgid "Set the document background color." +msgstr "Sənədin arxa fon rəngini təyin edin." + +#: variableeditor/variablelineedit.cpp:131 +#, kde-format +msgctxt "short translation please" +msgid "Pressing backspace in leading whitespace unindents." +msgstr "Backspace düyməsi ilə abzas boşlularının azaldılması." + +#: variableeditor/variablelineedit.cpp:139 +#, kde-format +msgctxt "short translation please" +msgid "Enable block selection mode." +msgstr "Blok seçimi rejimini aktiv edin." + +#: variableeditor/variablelineedit.cpp:144 +#, kde-format +msgctxt "short translation please" +msgid "Enable the byte order mark (BOM) when saving Unicode files." +msgstr "Unicode faylları saxlanılan zaman bayt sırası işarəsini aktiv edin." + +#: variableeditor/variablelineedit.cpp:149 +#, kde-format +msgctxt "short translation please" +msgid "Set the color for the bracket highlight." +msgstr "Mötərizələrin işıqlanması üçün rəngi təyin edin." + +#: variableeditor/variablelineedit.cpp:154 +#, kde-format +msgctxt "short translation please" +msgid "Set the background color for the current line." +msgstr "Cari sətir üçün fon rəngini təyin edin." + +#: variableeditor/variablelineedit.cpp:160 +#, kde-format +msgctxt "short translation please" +msgid "Set the default dictionary used for spell checking." +msgstr "Orfoqrafiya üçün istifadə olunan standart lüğəti təyin edin." + +#: variableeditor/variablelineedit.cpp:165 +#, kde-format +msgctxt "short translation please" +msgid "Enable dynamic word wrap of long lines." +msgstr "Uzun sətirlərə dinamik keçid." + +#: variableeditor/variablelineedit.cpp:172 +#, kde-format +msgctxt "short translation please" +msgid "Sets the end of line mode." +msgstr "Sətrin sonunu təyin edin." + +#: variableeditor/variablelineedit.cpp:177 +#, kde-format +msgctxt "short translation please" +msgid "" +"Enable whether pressing enter will insert selected auto completion item." +msgstr "" + +#: variableeditor/variablelineedit.cpp:182 +#, kde-format +msgctxt "short translation please" +msgid "Enable folding markers in the editor border." +msgstr "Kod bloklarının bükülməsi zolağını göstərin." + +#: variableeditor/variablelineedit.cpp:187 +#, kde-format +msgctxt "short translation please" +msgid "Enable folding preview in the editor border." +msgstr "Bükülmüş koda öncədən baxışı aktiv edin." + +#: variableeditor/variablelineedit.cpp:193 +#, kde-format +msgctxt "short translation please" +msgid "Set the point size of the document font." +msgstr "İstifadə olunan şriftin nöqtələrlə ölçüsü." + +#: variableeditor/variablelineedit.cpp:198 +#, kde-format +msgctxt "short translation please" +msgid "Set the font of the document." +msgstr "Sənədin şriftini təyin edin." + +#: variableeditor/variablelineedit.cpp:214 +#, kde-format +msgctxt "short translation please" +msgid "Set the syntax highlighting." +msgstr "Sintaksis işıqlanmasını təyin edin." + +#: variableeditor/variablelineedit.cpp:219 +#, kde-format +msgctxt "short translation please" +msgid "Set the icon bar color." +msgstr "İkon panelinin rəngini təyin edin." + +#: variableeditor/variablelineedit.cpp:224 +#, kde-format +msgctxt "short translation please" +msgid "Enable the icon border in the editor view." +msgstr "Redaktorda ikin çərçivəsini aktivləşdirin." + +#: variableeditor/variablelineedit.cpp:229 +#, kde-format +msgctxt "short translation please" +msgid "Set the auto indentation style." +msgstr "Avtomatik abzas tərzini təyin edin." + +#: variableeditor/variablelineedit.cpp:234 +#, kde-format +msgctxt "short translation please" +msgid "Adjust indentation of text pasted from the clipboard." +msgstr "Yaddaş buferindən alınan mətnin abzas boşluqlarını təyin edin." + +#: variableeditor/variablelineedit.cpp:240 +#, kde-format +msgctxt "short translation please" +msgid "Set the indentation depth for each indent level." +msgstr "Abzas boşluğunun genişliyi." + +#: variableeditor/variablelineedit.cpp:245 +#, kde-format +msgctxt "short translation please" +msgid "Allow odd indentation level (no multiple of indent width)." +msgstr "Abzasın genişliyini hesablayarkən əlavə boşluqları nəzərə alın." + +#: variableeditor/variablelineedit.cpp:250 +#, kde-format +msgctxt "short translation please" +msgid "Show line numbers." +msgstr "Sətir nömrələrini göstərmək." + +#: variableeditor/variablelineedit.cpp:255 +#, kde-format +msgctxt "short translation please" +msgid "Insert newline at end of file on save." +msgstr "Saxlanılan faylın sonuna yeni sətt əlavə edin." + +#: variableeditor/variablelineedit.cpp:260 +#, kde-format +msgctxt "short translation please" +msgid "Enable overwrite mode in the document." +msgstr "Sənədə əvəzləmə rejimini aktiv edin." + +#: variableeditor/variablelineedit.cpp:265 +#, kde-format +msgctxt "short translation please" +msgid "Enable persistent text selection." +msgstr "Mətn seçimini ləğv etməmək." + +#: variableeditor/variablelineedit.cpp:270 +#, kde-format +msgctxt "short translation please" +msgid "Replace tabs with spaces when saving the document." +msgstr "Sənəd saxlanılarkən Tab -ı boşluqlarla əvəz etmək." + +#: variableeditor/variablelineedit.cpp:275 +#, kde-format +msgctxt "short translation please" +msgid "Replace tabs with spaces." +msgstr "Tab-ı boşluqlarla əvəz etmək." + +#: variableeditor/variablelineedit.cpp:280 +#, kde-format +msgctxt "short translation please" +msgid "Remove trailing spaces when saving the document." +msgstr "Saxlanılma zamanı sətrin sonundakı boşluqları silmək." + +#: variableeditor/variablelineedit.cpp:285 +#, kde-format +msgctxt "short translation please" +msgid "Show scrollbar minimap." +msgstr "Sürüşdürmə zolağında mini xəritə." + +#: variableeditor/variablelineedit.cpp:290 +#, kde-format +msgctxt "short translation please" +msgid "Show scrollbar preview." +msgstr "Sürüşdürmə zolağında öncədən baxış." + +#: variableeditor/variablelineedit.cpp:301 +#, kde-format +msgctxt "short translation please" +msgid "Set the color scheme." +msgstr "Rəng sxemini təyin edin." + +#: variableeditor/variablelineedit.cpp:306 +#, kde-format +msgctxt "short translation please" +msgid "Set the text selection color." +msgstr "Mətn seçmə rəngini təyin edin." + +#: variableeditor/variablelineedit.cpp:311 +#, kde-format +msgctxt "short translation please" +msgid "Visualize tabs and trailing spaces." +msgstr "Tab simvolu və artıq boşluqları işıqlandırmaq." + +#: variableeditor/variablelineedit.cpp:316 +#, kde-format +msgctxt "short translation please" +msgid "Enable smart home navigation." +msgstr "Home və End düymələrinin ağıllı naviqasiyası." + +#: variableeditor/variablelineedit.cpp:321 +#, kde-format +msgctxt "short translation please" +msgid "Pressing TAB key indents." +msgstr "Tab basmaqla boşluğun əlavə edilməsi." + +#: variableeditor/variablelineedit.cpp:327 +#, kde-format +msgctxt "short translation please" +msgid "Set the tab display width." +msgstr "Abzas boşluğunun eni." + +#: variableeditor/variablelineedit.cpp:333 +#, kde-format +msgctxt "short translation please" +msgid "Set the number of undo steps to remember (0 equals infinity)." +msgstr "Ləğv edilə bilən əməllərin sayı. ( 0 olarsa hamısı yadda qalacaq)" + +#: variableeditor/variablelineedit.cpp:339 +#, kde-format +msgctxt "short translation please" +msgid "Set the word wrap column." +msgstr "Müəyyən sayda simvollardan sonra sətirdən sətirə keçid işarəsi qoymaq." + +#: variableeditor/variablelineedit.cpp:344 +#, kde-format +msgctxt "short translation please" +msgid "Set the word wrap marker color." +msgstr "Sətirə keçid nişanının rəngi." + +#: variableeditor/variablelineedit.cpp:349 +#, kde-format +msgctxt "short translation please" +msgid "Enable word wrap while typing text." +msgstr "Sabit sətirdən sətirə keçid." + +#: view/katestatusbar.cpp:114 +#, kde-format +msgid "Current cursor position. Click to go to a specific line." +msgstr "" +"Kursorun cari mövqeyi. Müəyyən bir sətirə keçmək üçün siçanın düyməsini iki " +"dəfə vurun." + +#: view/katestatusbar.cpp:127 +#, kde-format +msgid "Insert mode and VI input mode indicator. Click to change the mode." +msgstr "" +"Yerləşdirmə rejimi və Vİ daxiletmə rejimi göstəricisi. Rejimi dəyişdirmək " +"üşün vurun." + +#: view/katestatusbar.cpp:135 +#, kde-format +msgid "Change dictionary" +msgstr "Lüğəti dəyişmək" + +#: view/katestatusbar.cpp:161 view/katestatusbar.cpp:488 +#, kde-format +msgid "Tab Width" +msgstr "Tab eni" + +#: view/katestatusbar.cpp:169 view/katestatusbar.cpp:503 +#, kde-format +msgid "Indentation Width" +msgstr "Abzas eni" + +#: view/katestatusbar.cpp:177 +#, kde-format +msgid "Indentation Mode" +msgstr "Abzas rejimi" + +#: view/katestatusbar.cpp:179 +#, kde-format +msgid "Tabulators && Spaces" +msgstr "Tabulyatorlar və Boşluqlar" + +#: view/katestatusbar.cpp:182 +#, kde-format +msgid "Tabulators" +msgstr "Tabulyasiyalar" + +#: view/katestatusbar.cpp:185 +#, kde-format +msgid "Spaces" +msgstr "Boşluqlar" + +#: view/katestatusbar.cpp:197 +#, kde-format +msgid "Encoding" +msgstr "Kodlaşdırma" + +#: view/katestatusbar.cpp:200 view/katestatusbar.cpp:201 +#, kde-format +msgid "End of line type" +msgstr "Sətirin sonu növü" + +#: view/katestatusbar.cpp:207 +#, kde-format +msgid "Mode" +msgstr "Rejim" + +#: view/katestatusbar.cpp:209 view/kateview.cpp:703 +#, kde-format +msgid "" +"Here you can choose which mode should be used for the current document. This " +"will influence the highlighting and folding being used, for example." +msgstr "" +"Burada cari sənəddə istifadə oluna biləcək rejimi seçə bilərsiniz. Bu rejim " +"məsələn, işıqlandırma və blokların bükülməsi zolağına təsir edir." + +#: view/katestatusbar.cpp:216 +#, kde-format +msgid "Syntax highlighting" +msgstr "Sintaksis işıqlanması" + +#: view/katestatusbar.cpp:261 +#, kde-format +msgid "Line/Column compact mode" +msgstr "Sətir/Sütun yığcam rejimi" + +#: view/katestatusbar.cpp:307 +#, kde-format +msgid "[BLOCK] %1" +msgstr "[BLOCK] %1" + +#: view/katestatusbar.cpp:323 +#, kde-format +msgid "%1/%2:%3" +msgstr "%1/%2:%3" + +#: view/katestatusbar.cpp:325 +#, kde-format +msgid "%1:%2" +msgstr "%1:%2" + +#: view/katestatusbar.cpp:329 +#, kde-format +msgid "Line %1 of %2, Column %3" +msgstr "%2 sətiridən %1, Sütun %3" + +#: view/katestatusbar.cpp:331 +#, kde-format +msgid "Line %1, Column %2" +msgstr "Sətir %1, Sütun %2" + +#: view/katestatusbar.cpp:405 +#, kde-format +msgid "Soft Tabs: %1" +msgstr "Abzaslar: %1" + +#: view/katestatusbar.cpp:406 +#, kde-format +msgid "Soft Tabs: %1 (%2)" +msgstr "Abzaslar: %1 (%2)" + +#: view/katestatusbar.cpp:407 +#, kde-format +msgid "Tab Size: %1" +msgstr "Tab ölçüsü: %1" + +#: view/katestatusbar.cpp:408 +#, kde-format +msgid "Indent/Tab: %1/%2" +msgstr "Abzas/Tab: %1/%2" + +#: view/katestatusbar.cpp:448 view/katestatusbar.cpp:474 +#, fuzzy, kde-format +#| msgctxt "@item:intable Text context" +#| msgid "Others" +msgctxt "@item:inmenu" +msgid "Other…" +msgstr "Digəriləri" + +#: view/katestatusbar.cpp:476 +#, kde-format +msgid "Other (%1)" +msgid_plural "Other (%1)" +msgstr[0] "Digər (%1)" +msgstr[1] "Digər (%1)" + +#: view/katestatusbar.cpp:488 +#, kde-format +msgid "Please specify the wanted tab width:" +msgstr "İstədiyiniz Tab enini göstərin:" + +#: view/katestatusbar.cpp:504 +#, kde-format +msgid "Please specify the wanted indentation width:" +msgstr "İstədiyiniz Abzas enini göstərin:" + +#: view/katestatusbar.cpp:567 +#, kde-format +msgctxt "" +"%1 and %3 are the selected words/chars count, %2 and %4 are the total words/" +"chars count." +msgid "Words %1/%2, Chars %3/%4" +msgstr "Sözlər %1/%2, Simvollar %3/%4" + +#: view/katestatusbar.cpp:573 +#, kde-format +msgctxt "%1 and %2 are the total words/chars count." +msgid "Words %1, Chars %2" +msgstr "Sözlər %1, Simvollar %2" + +#: view/katestatusbar.cpp:588 +#, kde-format +msgid "Zoom: %1%" +msgstr "Miqyas: %1%" + +#: view/kateview.cpp:440 +#, kde-format +msgid "Cut the selected text and move it to the clipboard" +msgstr "Seçilmiş mətni kəsin və bufer yaddaşa yerləşdirin" + +#: view/kateview.cpp:445 +#, kde-format +msgid "Paste previously copied or cut clipboard contents" +msgstr "Əvvəlki kopyalanı yerləşdirin və ya bufer yaddaşdakını kəsin" + +#: view/kateview.cpp:448 +#, kde-format +msgid "" +"Use this command to copy the currently selected text to the system clipboard." +msgstr "" +"Seçilmiş mətni sistemin bufer yaddaşına daxil etmək üçün bu əmrdən istifadə " +"edin." + +#: view/kateview.cpp:454 +#, kde-format +msgid "Clipboard &History Paste" +msgstr "Mübadilə yaddaşı &jurnalından yerləşdir" + +#: view/kateview.cpp:459 +#, kde-format +msgid "Paste Selection" +msgstr "Seçiləni Yerləşdirmək" + +#: view/kateview.cpp:461 +#, kde-format +msgid "Paste previously mouse selection contents" +msgstr "Az öncə siçanla seçilən tərkibləri yerləşdirin" + +#: view/kateview.cpp:465 +#, kde-format +msgid "Paste From File" +msgstr "" + +# Swap Faylı - Yüklənmə faylı. Gizlənmiş [görünməyən] böyük sistem faylı. +#: view/kateview.cpp:469 +#, fuzzy, kde-format +#| msgid "Swap File Options" +msgid "Copy File Location" +msgstr "Müvəqqəti faylların parametrləri" + +#: view/kateview.cpp:470 +#, kde-format +msgid "Copy the current file name and line number" +msgstr "" + +#: view/kateview.cpp:473 +#, kde-format +msgid "Swap with Clipboard Contents" +msgstr "Mübadilə yaddaşı tərkibləri ilə əvəz et" + +#: view/kateview.cpp:474 +#, kde-format +msgid "Swap the selected text with the clipboard contents" +msgstr "Mübadilə buferi tərkibləri ilə seçilmiş mətnin mübadiləsi" + +#: view/kateview.cpp:477 +#, fuzzy, kde-format +#| msgid "Paste Selection" +msgid "Take Screenshot of Selection" +msgstr "Seçiləni Yerləşdirmək" + +#: view/kateview.cpp:481 +#, kde-format +msgid "Save the current document" +msgstr "Cari sənədi saxlayın" + +#: view/kateview.cpp:484 +#, kde-format +msgid "Revert the most recent editing actions" +msgstr "Ən son edilən dəyişiklikləri bərpa edin" + +#: view/kateview.cpp:487 +#, kde-format +msgid "Revert the most recent undo operation" +msgstr "Ən son əməliyyatları bərpa edin" + +#: view/kateview.cpp:491 +#, kde-format +msgid "&Scripts" +msgstr "&Skriptlər" + +#: view/kateview.cpp:495 +#, kde-format +msgid "Apply &Word Wrap" +msgstr "Sətirdən sətirə keçməni tətbiq edin" + +#: view/kateview.cpp:497 +#, kde-format +msgid "" +"Use this to wrap the current line, or to reformat the selected lines as " +"paragraph, to fit the 'Wrap words at' setting in the configuration dialog." +"

This is a static word wrap, meaning the document is changed." +msgstr "" +"Cari sətirə keçmək üçün və ya seçilən sətirləri konfiqurasiya dialoqundakı " +"\"Sözləri buraya keçir\" parametrinə uyğun olacaq şəkildə yenidən " +"fornatlayaraq istifadə edin.

Bu sabit sətirdən sətirə keçmə o " +"deməkdir ki, sənəddə dəyişdirilmişdir." + +#: view/kateview.cpp:503 +#, kde-format +msgid "&Clean Indentation" +msgstr "&Abzası təmizlə" + +#: view/kateview.cpp:505 +#, kde-format +msgid "" +"Use this to clean the indentation of a selected block of text (only tabs/" +"only spaces).

You can configure whether tabs should be honored " +"and used or replaced with spaces, in the configuration dialog." +msgstr "" +"Bunu Mətnin seçilmiş blokunun abzasını qaydasına salmaq üçün istifadə edin. " +"(yalnız Tab/Yalnəz boşluqlar).

Ayarların dialoq pəncərəsində Tab -" +"ların olduğu kimi istifadə olunmasına üstünlük verilməsini və ya boşluq kimi " +"istifadə olunmasını tənzimləyə bilərsiniz." + +#: view/kateview.cpp:510 +#, fuzzy, kde-format +#| msgid "Indentation Properties" +msgid "Convert Indentation to Spaces" +msgstr "Abzas boşluqlarının Xüsusiyyətləri" + +#: view/kateview.cpp:517 +#, fuzzy, kde-format +#| msgid "&Format Indentation" +msgid "Convert Indentation to Tabs" +msgstr "&Abzas formatı" + +#: view/kateview.cpp:532 +#, kde-format +msgid "&Format Indentation" +msgstr "&Abzas formatı" + +#: view/kateview.cpp:533 +#, kde-format +msgid "" +"Use this to auto indent the current line or block of text to its proper " +"indent level." +msgstr "" +"Cari sətri və ya mətni lazımi abzas səviyyəsinə uyğunlaşdırmaq üçün " +"avtomatik abzasdan istifadə edin." + +#: view/kateview.cpp:537 +#, fuzzy, kde-format +#| msgid "Align On" +msgctxt "@action" +msgid "&Align On…" +msgstr "Nizamlamaq" + +#: view/kateview.cpp:539 +#, kde-format +msgid "" +"This command aligns lines in the selected block or whole document on the " +"column given by a regular expression that you will be prompted for.

If you give an empty pattern it will align on the first non-blank " +"character by default.
If the pattern has a capture it will indent on " +"the captured match.

Examples:
With '-' it will insert " +"spaces before the first '-' of each lines to align them all on the same " +"column.
With ':\\s+(.)' it will insert spaces before the first non-" +"blank character that occurs after a colon to align them all on the same " +"column." +msgstr "" +"Bu əmr, sizdən tələb olunan müntəzəm ifadə tərəfindən verilən sütunda " +"seçilmiş blokdakı və ya bütün sənəddəki sətirləri nizamlayır.

Əgər boş bir nümunə göstərsəniz, standart olaraq ilk boş olmayan simvol " +"nizmalanacaq.
Əgər nümunədə bir blok əhatələnməsi varsa, əhatələnmiş " +"sahəyə uyğun nizamlanacaqdır.

Misal üçün:
O, \"-\" " +"ilə hər sətrə aid ilk \"-\" simvolundan əvvəl, onların hamısını eyni sütunda " +"nizamlamaq üçün boşluqlar qoyacaqdır.
O, ':\\s+(.)' ilə kolondan sonra " +"gələn ilk boş olmayan simvoldan öncə, onların hamısını eyni sütunda " +"nizamlamaq üçün boşluqlar qoyacaqdır." + +#: view/kateview.cpp:550 +#, kde-format +msgid "C&omment" +msgstr "Şə&rh vermək" + +#: view/kateview.cpp:553 +#, kde-format +msgid "" +"This command comments out the current line or a selected block of text.

The characters for single/multiple line comments are defined within " +"the language's highlighting." +msgstr "" +"Bu əmr cari sətri və ya seçilmiş mətn blokunu şərh edir.

Tək/çox " +"sətirli şərhlər üçün simvollar dilin işıqlandırılması çərçivəsində müəyyən " +"edilir." + +#: view/kateview.cpp:558 +#, kde-format +msgid "Go to Previous Editing Location" +msgstr "Əvvəlki düzəliş yerinə keçin" + +#: view/kateview.cpp:564 +#, kde-format +msgid "Go to Next Editing Location" +msgstr "Sonrakı düzəliş yerinə keçin" + +#: view/kateview.cpp:570 +#, kde-format +msgid "Unco&mment" +msgstr "Şərhi qaldır&maq" + +#: view/kateview.cpp:573 +#, kde-format +msgid "" +"This command removes comments from the current line or a selected block of " +"text.

The characters for single/multiple line comments are " +"defined within the language's highlighting." +msgstr "" +"Bu əmr mətnin cari sətirindən və ya seçilmiş blokundan sərhləri silir.

Tək/çox sətirli şərhlər üçün simvollar dilin işıqlandırılması " +"çərçivəsində müəyyən edilir." + +#: view/kateview.cpp:578 +#, kde-format +msgid "Toggle Comment" +msgstr "Kommentləri idarə etmək" + +#: view/kateview.cpp:582 +#, kde-format +msgid "&Read Only Mode" +msgstr "Ancaq oxu &rejimi" + +#: view/kateview.cpp:583 +#, kde-format +msgid "Lock/unlock the document for writing" +msgstr "Sənədi dəyişiklikdən qorumaq" + +#: view/kateview.cpp:588 +#, kde-format +msgid "&Force RTL Direction" +msgstr "" + +#: view/kateview.cpp:589 +#, fuzzy, kde-format +#| msgid "Text Decorations" +msgid "Force RTL Text Direction" +msgstr "Mətnin Çərçivələnməsi" + +#: view/kateview.cpp:599 +#, kde-format +msgid "Uppercase" +msgstr "BÖYÜK HƏRFLƏR -lə" + +#: view/kateview.cpp:602 +#, kde-format +msgid "" +"Convert the selection to uppercase, or the character to the right of the " +"cursor if no text is selected." +msgstr "" +"Seçilmiş mətn sahəsini və ya seçiməyibsə kursoryn sağındakı hərfi BÖYÜK " +"HƏRFƏ çevir." + +#: view/kateview.cpp:608 +#, kde-format +msgid "Lowercase" +msgstr "kiçik hərf" + +#: view/kateview.cpp:611 +#, kde-format +msgid "" +"Convert the selection to lowercase, or the character to the right of the " +"cursor if no text is selected." +msgstr "" +"Seçilmiş mətn sahəsini və ya seçiməyibsə kursoryn sağındakı hərfi kiçik " +"hərfə çevir." + +#: view/kateview.cpp:617 +#, kde-format +msgid "Capitalize" +msgstr "Cümləni Böyük hərflə başladın" + +#: view/kateview.cpp:620 +#, kde-format +msgid "" +"Capitalize the selection, or the word under the cursor if no text is " +"selected." +msgstr "" +"Seçilmiş mətn sahəsini və ya seçiməyibsə kursoryn sağındakı sözün ilk " +"hərfini Böyük hərflə başladın." + +#: view/kateview.cpp:625 +#, kde-format +msgid "Join Lines" +msgstr "Join Lines" + +#: view/kateview.cpp:630 +#, kde-format +msgid "Invoke Code Completion" +msgstr "Kodu tamamlayın" + +#: view/kateview.cpp:631 +#, kde-format +msgid "" +"Manually invoke command completion, usually by using a shortcut bound to " +"this action." +msgstr "" +"Əmr tamamlamasını əllə başladın. Əsasən bu əməl üçün qısayoldan istifadə " +"olunur." + +#: view/kateview.cpp:636 +#, fuzzy, kde-format +#| msgid "Re&move trailing spaces:" +msgid "Remove Trailing Spaces" +msgstr "Lazı&msız boşluqları sil:" + +#: view/kateview.cpp:654 +#, kde-format +msgid "Print the current document." +msgstr "Cari sənədi çap edin." + +#: view/kateview.cpp:657 +#, kde-format +msgid "Show print preview of current document" +msgstr "Cari sənədin çapa hazır vəziyyətinə baxış" + +#: view/kateview.cpp:661 +#, kde-format +msgid "Reloa&d" +msgstr "Yeni&dən yüklə" + +#: view/kateview.cpp:663 +#, kde-format +msgid "Reload the current document from disk." +msgstr "Cari sənədi diskdən yenidən yüklə" + +#: view/kateview.cpp:667 +#, kde-format +msgid "Save the current document to disk, with a name of your choice." +msgstr "Cari sənədi seçdiyiniz adla diskdə saxlayın." + +#: view/kateview.cpp:669 +#, fuzzy, kde-format +#| msgid "Save As with Encoding..." +msgctxt "@action" +msgid "Save As with Encodin&g…" +msgstr "Başqa kodlaşma ilə saxlayın" + +#: view/kateview.cpp:675 +#, fuzzy, kde-format +#| msgid "Save &Copy As..." +msgctxt "@action" +msgid "Save Cop&y As…" +msgstr "&Kopyanı belə saxla..." + +#: view/kateview.cpp:676 +#, kde-format +msgid "Save a copy of the current document to disk." +msgstr "Cari sənədin kopyasını diskdə saxlayın." + +#: view/kateview.cpp:680 +#, kde-format +msgid "" +"This command opens a dialog and lets you choose a line that you want the " +"cursor to move to." +msgstr "" +"Bu əmr bir dialoq pəncərəsi açır və kursoru istədiyiniz sətirə keçirməyə " +"imkan verir." + +#: view/kateview.cpp:684 +#, kde-format +msgid "Go to Previous Modified Line" +msgstr "Əvvəlki dəyişdirilmiş sətirə keçin" + +#: view/kateview.cpp:685 +#, kde-format +msgid "Move upwards to the previous modified line." +msgstr "Kursoru yuxarıya, əvvəlki dəyişdirilmiş sətirə doğru hərəkət etdirin." + +#: view/kateview.cpp:690 +#, kde-format +msgid "Go to Next Modified Line" +msgstr "Sonrakı dəyişdirilmiş sətirə keçin" + +#: view/kateview.cpp:691 +#, kde-format +msgid "Move downwards to the next modified line." +msgstr "Kursoru aşağı, sonrakı sətirə doğru hərəkət etdirin." + +#: view/kateview.cpp:695 +#, fuzzy, kde-format +#| msgid "&Configure Editor..." +msgctxt "@action" +msgid "&Configure Editor…" +msgstr "Reda&ktoru tənzimləyin..." + +#: view/kateview.cpp:697 +#, kde-format +msgid "Configure various aspects of this editor." +msgstr "Redaktorun müxtəlif parametrlərini tənzimləyin." + +#: view/kateview.cpp:700 +#, kde-format +msgid "&Mode" +msgstr "&Sənədin növü" + +#: view/kateview.cpp:706 +#, kde-format +msgid "&Highlighting" +msgstr "&İşıqlandırma" + +#: view/kateview.cpp:708 +#, kde-format +msgid "Here you can choose how the current document should be highlighted." +msgstr "" +"Burada siz cari sənəddə sintaksis işıqlandırmasını ayarlaya bilərsiniz." + +#: view/kateview.cpp:711 +#, kde-format +msgid "&Editor Color Theme" +msgstr "&Redaktorun rəng sxemi" + +#: view/kateview.cpp:717 +#, kde-format +msgid "&Indentation" +msgstr "&Abzas" + +#: view/kateview.cpp:726 +#, kde-format +msgid "Select the entire text of the current document." +msgstr "Cari sənədin bütün mətnini seçin." + +#: view/kateview.cpp:729 +#, kde-format +msgid "" +"If you have selected something within the current document, this will no " +"longer be selected." +msgstr "" +"Əgər sizin sənəddə artıq seçilmiş mətniniz varsa bu seçim ləğv olunacaqdır." + +#: view/kateview.cpp:733 +#, kde-format +msgid "Enlarge Font" +msgstr "Şriftin ölçüsünü böyütmək" + +#: view/kateview.cpp:735 +#, kde-format +msgid "This increases the display font size." +msgstr "Bu sənəddəki mətnin şriftləri böyüdür." + +#: view/kateview.cpp:742 +#, kde-format +msgid "Shrink Font" +msgstr "Şrtiftin ölçüsünü azalmaq" + +#: view/kateview.cpp:744 +#, kde-format +msgid "This decreases the display font size." +msgstr "Bu sənəddəki mətnin şriftlərini kiçildir" + +#: view/kateview.cpp:751 +#, kde-format +msgid "Reset Font Size" +msgstr "Şriftin standart ölçüsünü bərpa etmək" + +#: view/kateview.cpp:753 +#, kde-format +msgid "This resets the display font size." +msgstr "Bu şriftin ölçüsünü standart ölçüyə qaytarır." + +#: view/kateview.cpp:756 +#, kde-format +msgid "Bl&ock Selection Mode" +msgstr "Bl&ok seçimi rejimi" + +#: view/kateview.cpp:759 +#, kde-format +msgid "" +"This command allows switching between the normal (line based) selection mode " +"and the block selection mode." +msgstr "" +"Bu əmr normal (sətirə əsaslanan) və blok (düzbucaqlı) seçmə rejimləri " +"arasında keçimə imkan verir." + +#: view/kateview.cpp:763 +#, kde-format +msgid "Switch to Next Input Mode" +msgstr "Növbəti daxiletmə rejiminə keçid" + +#: view/kateview.cpp:765 +#, kde-format +msgid "Switch to the next input mode." +msgstr "Növbəti daxiletmə rejiminə dəyişmək." + +#: view/kateview.cpp:768 +#, kde-format +msgid "Overwr&ite Mode" +msgstr "Əvəzləmə Rej&imi" + +#: view/kateview.cpp:771 +#, kde-format +msgid "" +"Choose whether you want the text you type to be inserted or to overwrite " +"existing text." +msgstr "" +"Yazdığınız mətnin, mövcud mətn daxilinə yoxsa üzərinə təkrar yazaraq əlavə " +"ediləcəyini seçin." + +#: view/kateview.cpp:775 +#, fuzzy, kde-format +#| msgid "Whitespaces" +msgid "Show Whitespace" +msgstr "Ağ boşluq simvolu" + +#: view/kateview.cpp:778 +#, fuzzy, kde-format +#| msgid "" +#| "If this option is checked, the text lines will be wrapped at the view " +#| "border on the screen.

This is only a view option, meaning the " +#| "document will not changed." +msgid "" +"If this option is checked, whitespaces in this document will be visible.

This is only a view option, meaning the document will not be changed." +msgstr "" +"Əgər bu seçim işarələnmişsə mətn sətirləri, ekrandakı izləmə zolağına qədər " +"uzanacq.

Bu ancaq sənədin görünüşünü dəyişəcək, tərkibi isə " +"dəyişməyəcək." + +#: view/kateview.cpp:782 +#, kde-format +msgid "&Dynamic Word Wrap" +msgstr "Dinamik sətirə keçilmə" + +#: view/kateview.cpp:786 +#, fuzzy, kde-format +#| msgid "" +#| "If this option is checked, the text lines will be wrapped at the view " +#| "border on the screen.

This is only a view option, meaning the " +#| "document will not changed." +msgid "" +"If this option is checked, the text lines will be wrapped at the view border " +"on the screen.

This is only a view option, meaning the document " +"will not be changed." +msgstr "" +"Əgər bu seçim işarələnmişsə mətn sətirləri, ekrandakı izləmə zolağına qədər " +"uzanacq.

Bu ancaq sənədin görünüşünü dəyişəcək, tərkibi isə " +"dəyişməyəcək." + +#: view/kateview.cpp:790 +#, kde-format +msgid "Dynamic Word Wrap Indicators" +msgstr "Dinamik sətirə keçid nişanları" + +#: view/kateview.cpp:792 +#, kde-format +msgid "Choose when the Dynamic Word Wrap Indicators should be displayed" +msgstr "Dinamik sətirə keçid nişanının nə vaxt görünəcəyini təyin edin" + +#: view/kateview.cpp:794 +#, kde-format +msgid "&Off" +msgstr "&Göstərməmək" + +#: view/kateview.cpp:794 +#, kde-format +msgid "Follow &Line Numbers" +msgstr "Sətir nömrə&lərinin ardınca" + +#: view/kateview.cpp:794 +#, kde-format +msgid "&Always On" +msgstr "&Həmişə göstərmək" + +#: view/kateview.cpp:798 +#, kde-format +msgid "Static Word Wrap" +msgstr "Statik sətirə keçmə" + +#: view/kateview.cpp:800 +#, kde-format +msgid "" +"If this option is checked, the text lines will be wrapped at the column " +"defined in the editing properties." +msgstr "" +"Bu seçim işarələnmişsə sətirlər təyin edilmiş ölçülərdə olduğu səviyyəyə " +"qədər sürüşdürüləcəkdir." + +#: view/kateview.cpp:807 +#, kde-format +msgid "Show Static &Word Wrap Marker" +msgstr "Sabit sözü sətirə &keçirmə nişanını göstərin" + +#: view/kateview.cpp:810 +#, kde-format +msgid "" +"Show/hide the Word Wrap Marker, a vertical line drawn at the word wrap " +"column as defined in the editing properties" +msgstr "" +"Görünən/gizlənən sözü sətirə keçirmə nişanı, tənzimləmələrdə təyin edilmiş " +"xüsusiyyətlərə uyğun sözü sətirə keçirmə sütununda şaquli cizgi işarəsidir" + +#: view/kateview.cpp:814 +#, kde-format +msgid "Show Folding &Markers" +msgstr "Blokların gizlədilməsi &markerləri" + +#: view/kateview.cpp:816 +#, kde-format +msgid "" +"You can choose if the codefolding marks should be shown, if codefolding is " +"possible." +msgstr "Kod gizləmə mümkün olduqda gizləmə markerlərini göstərə bilərsiniz." + +#: view/kateview.cpp:819 +#, kde-format +msgid "Show &Icon Border" +msgstr "&İkon haşiyəsini göstər" + +#: view/kateview.cpp:821 +#, kde-format +msgid "" +"Show/hide the icon border.

The icon border shows bookmark " +"symbols, for instance." +msgstr "" +"ikon haşiyəsini göstər/gizlə.

Məsələn, ikon şərçivəsi əlfəcin " +"simvollarını göstərir." + +#: view/kateview.cpp:824 +#, kde-format +msgid "Show &Line Numbers" +msgstr "Sətir nömrə&lərini gostər" + +#: view/kateview.cpp:826 +#, kde-format +msgid "Show/hide the line numbers on the left hand side of the view." +msgstr "" +"Baxış pəncərəsinin sol kənarında sətirin nömrələrini göstərmək/gizləmək." + +#: view/kateview.cpp:829 +#, kde-format +msgid "Show Scroll&bar Marks" +msgstr "Sürüşdürmə z&olağında nişanlar" + +#: view/kateview.cpp:831 +#, kde-format +msgid "" +"Show/hide the marks on the vertical scrollbar.

The marks show " +"bookmarks, for instance." +msgstr "" +"Şaquli sürüşdürmə zolağında nişanları göstər/gizlətmək.

Məsələn " +"nişanlar mətndə əlfəcinlərin yerini göstərir." + +#: view/kateview.cpp:834 +#, kde-format +msgid "Show Scrollbar Mini-Map" +msgstr "Sürüşdürmə zolağında mini xəritə" + +#: view/kateview.cpp:836 +#, kde-format +msgid "" +"Show/hide the mini-map on the vertical scrollbar.

The mini-map " +"shows an overview of the whole document." +msgstr "" +"Şaquli sürüşdürmə zolağında mini-xəritəni göstər/gizlət.

Mini-" +"xəritə bütün sənədi ümumi planda göstərir." + +#. i18n("Show the whole document in the Mini-Map"), this); +#. ac->addAction(QLatin1String("view_scrollbar_minimap_all"), a); +#. a->setWhatsThis(i18n("Display the whole document in the mini-map.

With this option set the whole document will be visible in the +#. mini-map.")); connect(a, SIGNAL(triggered(bool)), SlOT(toggleScrollBarMiniMapAll())); connect(m_toggleScrollBarMiniMap, SIGNAL(triggered(bool)), +#. m_toggleScrollBarMiniMapAll, SLOT(setEnabled(bool))); +#: view/kateview.cpp:848 +#, kde-format +msgid "Show Non-Printable Spaces" +msgstr "Çap olunmayan boşluqları göstərmək" + +#: view/kateview.cpp:850 +#, kde-format +msgid "Show/hide bounding box around non-printable spaces" +msgstr "Çap olunmayan boşluq simvollarının ətrafındakı çərçivəni göstər/gizlət" + +#: view/kateview.cpp:854 +#, kde-format +msgid "Switch to Command Line" +msgstr "Əmr sətrinə keçid" + +#: view/kateview.cpp:856 +#, kde-format +msgid "Show/hide the command line on the bottom of the view." +msgstr "Sənədin ən sonundakı əmr sətrini göstər/gizlət." + +#: view/kateview.cpp:859 +#, kde-format +msgid "Input Modes" +msgstr "Daxiletmə rejimləri" + +#: view/kateview.cpp:868 +#, kde-format +msgid "Activate/deactivate %1" +msgstr "%1 Aktiv etmək/Bağlamaq" + +#: view/kateview.cpp:878 +#, kde-format +msgid "&End of Line" +msgstr "&Sətirin sonu" + +#: view/kateview.cpp:880 +#, kde-format +msgid "Choose which line endings should be used, when you save the document" +msgstr "Sənədi saxlayarkən istifadə olunacaq sətir sonu simvollarını seçir" + +#: view/kateview.cpp:881 +#, kde-format +msgctxt "@item:inmenu End of Line" +msgid "&UNIX" +msgstr "&UNIX" + +#: view/kateview.cpp:882 +#, kde-format +msgctxt "@item:inmenu End of Line" +msgid "&Windows/DOS" +msgstr "&Windows/DOS" + +#: view/kateview.cpp:883 +#, kde-format +msgctxt "@item:inmenu End of Line" +msgid "&Macintosh" +msgstr "&Macintosh" + +#: view/kateview.cpp:888 +#, kde-format +msgid "Add &Byte Order Mark (BOM)" +msgstr "&Bayt düzümü nişanını əlavə etmək (BOM)" + +#: view/kateview.cpp:891 +#, kde-format +msgid "" +"Enable/disable adding of byte order marks for UTF-8/UTF-16 encoded files " +"while saving" +msgstr "" +"Saxlama əsnasında UTF-8 və UTF-16 ilə kodlaşdırılmış fayllarındakı bayt " +"düzümü nişanlarının əlavə edilməsini aktiv/qeyri-aktiv etmək" + +#: view/kateview.cpp:895 +#, kde-format +msgid "E&ncoding" +msgstr "&Kodlaşdırma" + +#: view/kateview.cpp:899 +#, kde-format +msgid "Look up the first occurrence of a piece of text or regular expression." +msgstr "" +"Mətnin və ya mütəmadi ifadənin bir hissəsinin yuxarıda ilk yazıldığı yeri " +"tapın." + +#: view/kateview.cpp:903 +#, kde-format +msgid "Find Selected" +msgstr "Seçilmişləri tapın" + +#: view/kateview.cpp:905 +#, kde-format +msgid "Finds next occurrence of selected text." +msgstr "Seçilmiş mətnin növbəti təkrarlanmasını tapır." + +#: view/kateview.cpp:909 +#, kde-format +msgid "Find Selected Backwards" +msgstr "Seçilmiş mətnin əvvəlki təkrarlanmasını tapın" + +#: view/kateview.cpp:911 +#, kde-format +msgid "Finds previous occurrence of selected text." +msgstr "Seçilmiş mətnin əvvəlki təkrarlanmasını tapır." + +#: view/kateview.cpp:915 +#, kde-format +msgid "Find and Select Next Occurrence" +msgstr "Növbəti uyğun gələni tapın və seçin" + +#: view/kateview.cpp:917 +#, kde-format +msgid "Finds next occurrence of the word under cursor and add it to selection." +msgstr "" +"Kursorun altındakı növbəti uyğun gələn sözü tapın və seçimə əlavə edin." + +#: view/kateview.cpp:921 +#, kde-format +msgid "Mark Currently Selected Occurrence as Skipped" +msgstr "Cari seçilmiş girişi ötürülmüş kimi işarələmək" + +#: view/kateview.cpp:923 +#, kde-format +msgid "Marks the currently selected word as skipped." +msgstr "Cari seçilmiş sözü ötürülmüş kimi işarələyir." + +#: view/kateview.cpp:927 +#, kde-format +msgid "Find and Select All Occurrences" +msgstr "Bütün uyğun gələnləri tapın və seçin" + +#: view/kateview.cpp:929 +#, fuzzy, kde-format +#| msgid "Finds all occurrences of the word under cursor and select them." +msgid "Finds all occurrences of the word under cursor and selects them." +msgstr "Kursorun altındakı bütün uyğun gələn sözləri tapın və onları seçin." + +#: view/kateview.cpp:933 +#, kde-format +msgid "Look up the next occurrence of the search phrase." +msgstr "Sonrakı uyğun axtarış nəticəsinə baxın." + +#: view/kateview.cpp:937 +#, kde-format +msgid "Look up the previous occurrence of the search phrase." +msgstr "Əvvəlki uyğun axtarış nəticəsinə baxın." + +#: view/kateview.cpp:941 +#, kde-format +msgid "" +"Look up a piece of text or regular expression and replace the result with " +"some given text." +msgstr "" +"Mətnin bir hissəsini və ya müntəzəm bir ifadəni axtarın və nəticəni müəyyən " +"bir mətnlə əvəz edin." + +#: view/kateview.cpp:944 +#, kde-format +msgid "Add Cursors to Line Ends" +msgstr "Kursoru sətrin sonuna əlavə edin" + +#: view/kateview.cpp:946 +#, kde-format +msgid "Creates a cursor at the end of every line in selection." +msgstr "Seçilmiş hər sətrin sonunda kursor yaradır." + +#: view/kateview.cpp:950 +#, kde-format +msgid "Add Caret below Cursor" +msgstr "Kursorun altına bir kare (^) işarəsi əlavə edin" + +#: view/kateview.cpp:952 +#, kde-format +msgid "Adds a caret in the line below the current caret." +msgstr "" +"Hazırkı kare (^) işarəsinin altındakı sətirə bir kare (^) işarəsi əlavə edir" + +#: view/kateview.cpp:956 +#, kde-format +msgid "Add Caret above Cursor" +msgstr "Kursorun üstünə bir kare (^) əlavə edin" + +#: view/kateview.cpp:958 +#, kde-format +msgid "Adds a caret in the line above the current caret." +msgstr "Hazırkı kare (^) işarəsinin üsündəki sətirə bir kare (^) əlavə edir." + +#: view/kateview.cpp:962 +#, kde-format +msgid "Toggle Camel Case Cursor Movement" +msgstr "Kursorun qövsvari hərəkətini açmaq və ya söndürmək" + +#: view/kateview.cpp:963 +#, kde-format +msgid "Toggle between normal word movement and camel case cursor movement." +msgstr "Normal söz hərəkəti və CamelCase kursorunun hərəkəti arasında keçid" + +#: view/kateview.cpp:967 +#, kde-format +msgid "Remove Cursors from Empty Lines" +msgstr "Kursorları boş sətirlərdən silin" + +#: view/kateview.cpp:968 +#, kde-format +msgid "Remove cursors from empty lines" +msgstr "Kursorları boş sətirlərdən silin" + +#: view/kateview.cpp:972 +#, kde-format +msgid "Automatic Spell Checking" +msgstr "Avtomatik orfoqrafiya yoxlaması" + +#: view/kateview.cpp:973 +#, kde-format +msgid "Enable/disable automatic spell checking" +msgstr "Avtomatik orfoqrafiya yoxlamasını aktiv/qeyri-aktiv etmək" + +#: view/kateview.cpp:979 +#, fuzzy, kde-format +#| msgid "Change dictionary" +msgctxt "@action" +msgid "Change Dictionary…" +msgstr "Lüğəti dəyişmək" + +#: view/kateview.cpp:980 +#, kde-format +msgid "Change the dictionary that is used for spell checking." +msgstr "Orfoqrafik yoxlama üçün istifadə oluncaq lüğəti seçin." + +#: view/kateview.cpp:984 +#, kde-format +msgid "Clear Dictionary Ranges" +msgstr "Lüğətin əhatə dairəsini təmizlə" + +#: view/kateview.cpp:986 +#, kde-format +msgid "" +"Remove all the separate dictionary ranges that were set for spell checking." +msgstr "" +"Orfoqrafiya yoxlaması üçün quraşdırılmış lüğətin ayrı ayrılıqda bütün əhatə " +"dairələrini silin. Sənəddə bütün mətnin orfoqrafiya yoxlaması üçün standart " +"lüğət istifadə olunacaq." + +#: view/kateview.cpp:992 +#, kde-format +msgid "Copy as &HTML" +msgstr "&HTML kimi kopyala" + +#: view/kateview.cpp:993 +#, kde-format +msgid "" +"Copy the selection as HTML, formatted using the current syntax highlighting " +"and color scheme settings." +msgstr "" + +#: view/kateview.cpp:997 +#, fuzzy, kde-format +#| msgid "E&xport as HTML..." +msgctxt "@action" +msgid "E&xport as HTML…" +msgstr "HTML kimi id&xal..." + +#: view/kateview.cpp:999 +#, kde-format +msgid "" +"This command allows you to export the current document with all highlighting " +"information into a HTML document." +msgstr "" +"Bu əmr sizə cari sənədi bütün işıqlanmaları ilə HTML səhifəsi kimi idxal " +"etməyə imkan verir." + +#: view/kateview.cpp:1038 +#, kde-format +msgid "Move Word Left" +msgstr "Bir söz sola" + +#: view/kateview.cpp:1044 +#, kde-format +msgid "Select Character Left" +msgstr "Soldakı simvolu seçmək" + +#: view/kateview.cpp:1050 +#, kde-format +msgid "Select Word Left" +msgstr "Soldakı sözü seçmək" + +#: view/kateview.cpp:1060 +#, kde-format +msgid "Move Word Right" +msgstr "Bir söz sağa" + +#: view/kateview.cpp:1066 +#, kde-format +msgid "Select Character Right" +msgstr "Sağdakı simvolu seç" + +#: view/kateview.cpp:1072 +#, kde-format +msgid "Select Word Right" +msgstr "Sağdakı sözü seç" + +#: view/kateview.cpp:1082 +#, fuzzy, kde-format +#| msgid "Paste Selection" +msgid "Start the Marked Selection" +msgstr "Seçiləni Yerləşdirmək" + +#: view/kateview.cpp:1083 +#, kde-format +msgid "" +"Emulate the Emacs-like selection mode, where the beginning is marked and " +"then the selection is continuously updated." +msgstr "" + +#: view/kateview.cpp:1088 +#, kde-format +msgid "Move to Beginning of Line" +msgstr "Sətrin əvvəlinə" + +#: view/kateview.cpp:1094 +#, kde-format +msgid "Move to Beginning of Document" +msgstr "Sənədin əvvəlinədək keç" + +#: view/kateview.cpp:1100 +#, kde-format +msgid "Select to Beginning of Line" +msgstr "Sətrin əvvəlinədək seç" + +#: view/kateview.cpp:1110 +#, kde-format +msgid "Select to Beginning of Document" +msgstr "Sənədin əvvəlindək seç" + +#: view/kateview.cpp:1120 +#, kde-format +msgid "Move to End of Line" +msgstr "Sətrin sonuna keç" + +#: view/kateview.cpp:1126 +#, kde-format +msgid "Move to End of Document" +msgstr "Sənədin sonuna keç" + +#: view/kateview.cpp:1132 +#, kde-format +msgid "Select to End of Line" +msgstr "Sətrin sonunadək seç" + +#: view/kateview.cpp:1142 +#, kde-format +msgid "Select to End of Document" +msgstr "Sənədin sonunadək seç" + +#: view/kateview.cpp:1152 +#, kde-format +msgid "Select to Previous Line" +msgstr "Əvvəlki sətirədək seç" + +#: view/kateview.cpp:1158 +#, kde-format +msgid "Scroll Line Up" +msgstr "Bir sətir yuxarı sürüşdür" + +#: view/kateview.cpp:1167 +#, kde-format +msgid "Move to Next Line" +msgstr "Növbəti sətirə keç" + +#: view/kateview.cpp:1173 +#, kde-format +msgid "Move to Previous Line" +msgstr "Əvvəlki sətirə keç" + +#: view/kateview.cpp:1179 +#, kde-format +msgid "Move Cursor Right" +msgstr "Kursoru sağa keçir" + +#: view/kateview.cpp:1185 +#, kde-format +msgid "Move Cursor Left" +msgstr "Kursoru sola keçir" + +#: view/kateview.cpp:1191 +#, kde-format +msgid "Select to Next Line" +msgstr "Növbəti sətirədək seç" + +#: view/kateview.cpp:1197 +#, kde-format +msgid "Scroll Line Down" +msgstr "Bir sətir aşağı sürüşdür" + +#: view/kateview.cpp:1206 +#, kde-format +msgid "Scroll Page Up" +msgstr "Bir səhifə yuxarı sürüşdür" + +#: view/kateview.cpp:1212 +#, kde-format +msgid "Select Page Up" +msgstr "Bir səhifə aşağı sürüşdür" + +#: view/kateview.cpp:1218 +#, kde-format +msgid "Move to Top of View" +msgstr "Görünən sahənin əvvəlinə keç" + +#: view/kateview.cpp:1224 +#, kde-format +msgid "Select to Top of View" +msgstr "Görünən sahənin əvvəlinədək seç" + +#: view/kateview.cpp:1230 +#, kde-format +msgid "Scroll Page Down" +msgstr "Bir səhifə aşağı sürüşdür" + +#: view/kateview.cpp:1236 +#, kde-format +msgid "Select Page Down" +msgstr "Bir səhifə aşağını seç" + +#: view/kateview.cpp:1242 +#, kde-format +msgid "Move to Bottom of View" +msgstr "Görünən sahənin sonuna keç" + +#: view/kateview.cpp:1248 +#, kde-format +msgid "Select to Bottom of View" +msgstr "Görünən sahənin sonunadək seç" + +#: view/kateview.cpp:1254 +#, kde-format +msgid "Go to Matching Bracket" +msgstr "Oxşar mötərizələ keçin" + +#: view/kateview.cpp:1260 +#, kde-format +msgid "Select to Matching Bracket" +msgstr "Oxşar mötərizələrədək seç" + +#: view/kateview.cpp:1267 +#, fuzzy, kde-format +#| msgid "Move Word Right" +msgid "Move Sub-Word Right" +msgstr "Bir söz sağa" + +#: view/kateview.cpp:1274 +#, fuzzy, kde-format +#| msgid "Select Word Right" +msgid "Select Sub-Word Right" +msgstr "Sağdakı sözü seç" + +#: view/kateview.cpp:1281 +#, fuzzy, kde-format +#| msgid "Move Word Left" +msgid "Move Sub-Word Left" +msgstr "Bir söz sola" + +#: view/kateview.cpp:1288 +#, fuzzy, kde-format +#| msgid "Select Word Left" +msgid "Select Sub-Word Left" +msgstr "Soldakı sözü seçmək" + +#: view/kateview.cpp:1298 +#, kde-format +msgid "Transpose Characters" +msgstr "Simvolların yerdəyişməsi" + +#: view/kateview.cpp:1303 +#, kde-format +msgid "Transpose Words" +msgstr "Sözlərin yerini dəyişin" + +#: view/kateview.cpp:1308 +#, kde-format +msgid "Delete Line" +msgstr "Sətiri silmək" + +#: view/kateview.cpp:1314 +#, kde-format +msgid "Delete Word Left" +msgstr "Soldakı sözü silmək" + +#: view/kateview.cpp:1320 +#, kde-format +msgid "Delete Word Right" +msgstr "Sağdakı sözü silmək" + +#: view/kateview.cpp:1326 +#, kde-format +msgid "Delete Next Character" +msgstr "Növbəti simvolu silmək" + +#: view/kateview.cpp:1332 +#, kde-format +msgid "Backspace" +msgstr "Soldakı simvolu sil" + +#: view/kateview.cpp:1340 +#, kde-format +msgid "Insert Tab Character" +msgstr "Tab simvolunu daxil etmək" + +#: view/kateview.cpp:1345 +#, kde-format +msgid "Insert Smart Newline" +msgstr "Abzaslı sətiri daxil etmək" + +#: view/kateview.cpp:1346 +#, kde-format +msgid "" +"Insert newline including leading characters of the current line which are " +"not letters or numbers." +msgstr "" +"Hərf və ya rəqəm olmayan cari sətirin aparıcı simvolları daxil olmaqla yeni " +"sətir daxil edin." + +#: view/kateview.cpp:1354 +#, kde-format +msgid "Insert a Non-Indented Newline" +msgstr "Abzassız Yeni sətri daxil edin" + +#: view/kateview.cpp:1355 +#, kde-format +msgid "" +"Insert a new line without indentation, regardless of indentation settings." +msgstr "" +"Yeni sətrin başlanğıcında abzasın parametrlərindən asılı olmayaraq, yeni " +"sətiri abzassız daxil edin." + +#: view/kateview.cpp:1363 +#, kde-format +msgid "Insert a Newline Above Current Line" +msgstr "Cari sətirin üstünə bir yeni sətir əlavə edin" + +#: view/kateview.cpp:1364 +#, kde-format +msgid "" +"Insert a new line above current line without modifying the current line." +msgstr "Cari sətiri dəyişdirmədən onun üzərinə bir yeni sətir əlavə edin." + +#: view/kateview.cpp:1372 +#, kde-format +msgid "Insert a Newline Below Current Line" +msgstr "Cari sətirin altına bir yeni sətir əlavə edin" + +#: view/kateview.cpp:1373 +#, kde-format +msgid "" +"Insert a new line below current line without modifying the current line." +msgstr "Cari sətiri dəyişdirmədən onun altına bir yeni sətir əlavə edin." + +#: view/kateview.cpp:1382 +#, kde-format +msgid "&Indent" +msgstr "&Abzas" + +#: view/kateview.cpp:1384 +#, kde-format +msgid "" +"Use this to indent a selected block of text.

You can configure " +"whether tabs should be honored and used or replaced with spaces, in the " +"configuration dialog." +msgstr "" +"Mətnin seçilmiş hissəsinin sətirlərini sağa sürüşdürür.

Siz " +"abzasın neçə boşluq simvolundan ibarət olacağını tənzimləyə bilərsiniz. " +"Həmçinin ayarlar dialoqunda tab və boşluq simvollarından istifadə olunub " +"olunmayacağını təyin edə bilərsiniz." + +#: view/kateview.cpp:1391 +#, kde-format +msgid "&Unindent" +msgstr "&Kiçik abzas" + +#: view/kateview.cpp:1392 +#, kde-format +msgid "Use this to unindent a selected block of text." +msgstr "Mətnin seçilmiş hissəsini bir addım sola sürüşdürür." + +#: view/kateview.cpp:1398 +#, fuzzy, kde-format +#| msgid "Delete Word Left" +msgid "Delete Sub-Word Left" +msgstr "Soldakı sözü silmək" + +#: view/kateview.cpp:1405 +#, fuzzy, kde-format +#| msgid "Delete Word Right" +msgid "Delete Sub-Word Right" +msgstr "Sağdakı sözü silmək" + +#: view/kateview.cpp:1426 +#, kde-format +msgid "Fold Toplevel Nodes" +msgstr "Ən üst səviyyədəki bükümü yığın" + +#: view/kateview.cpp:1430 +#, kde-format +msgid "Unfold Toplevel Nodes" +msgstr "Ən üst səviyyədəki bükümü açın" + +#: view/kateview.cpp:1434 +#, kde-format +msgid "Toggle Current Node" +msgstr "Cari bükümü yığın/açın" + +#: view/kateview.cpp:1438 +#, kde-format +msgid "Toggle Contained Nodes" +msgstr "Tərkibindəki bükümləri yığ/aç" + +#: view/kateview.cpp:1447 +#, fuzzy, kde-format +#| msgid "Text selection of the current document." +msgid "Say current selection or document" +msgstr "Cari sənəddə mətnin seçilməsi." + +#: view/kateview.cpp:1457 +#, fuzzy, kde-format +#| msgid "Save the current document" +msgid "Stop current output" +msgstr "Cari sənədi saxlayın" + +#: view/kateview.cpp:1463 +#, fuzzy, kde-format +#| msgid "Save the current document" +msgid "Pause current output" +msgstr "Cari sənədi saxlayın" + +#: view/kateview.cpp:1469 +#, fuzzy, kde-format +#| msgid "Save the current document" +msgid "Resume current output" +msgstr "Cari sənədi saxlayın" + +#: view/kateview.cpp:1640 +#, kde-format +msgid "(R/O) %1" +msgstr "(ancaq oxumaq) %1" + +#: view/kateview.cpp:1828 +#, kde-format +msgid "Camel case movement disabled" +msgstr "Camelcase yerdəyişməsi söndürülüb" + +#: view/kateview.cpp:1830 +#, kde-format +msgid "Camel case movement enabled" +msgstr "CamelCase yerdəyişməsi aktivdir" + +#: view/kateview.cpp:2349 +#, kde-format +msgid "Search wrapped" +msgstr "Axtarış davam etdirildi" + +#: view/kateview.cpp:3043 +#, fuzzy, kde-format +#| msgid "Save File" +msgid "Open File" +msgstr "Faylı Saxla" + +#: view/kateview.cpp:3984 +#, kde-format +msgid "Align On" +msgstr "Nizamlamaq" + +#: view/kateview.cpp:3984 +#, kde-format +msgid "Alignment pattern:" +msgstr "Nizamlama nümunəsi:" + +#: view/kateview.cpp:5068 +#, kde-format +msgid "Export File as HTML" +msgstr "Faylı HTML kimi idxal et" + +#: view/kateviewhelpers.cpp:302 view/kateviewhelpers.cpp:351 +#: view/kateviewhelpers.cpp:1012 +#, kde-format +msgctxt "from line - to line" +msgid "

%1

%2
" +msgstr "
%1

%2
" + +#: view/kateviewhelpers.cpp:1212 +#, kde-format +msgid "Available Commands" +msgstr "Mövcud əmrtlər" + +#: view/kateviewhelpers.cpp:1213 +#, kde-format +msgid "" +"

For help on individual commands, do 'help <command>'" +msgstr "" +"

Fərdi əmrlər haqqında kömək üçün: 'help <command>'

" + +#: view/kateviewhelpers.cpp:1220 +#, kde-format +msgid "No help for '%1'" +msgstr "'%1' üçün kömək yoxdur" + +#: view/kateviewhelpers.cpp:1223 +#, kde-format +msgid "No such command %1" +msgstr "%1 adlı əmr yoxdur" + +#: view/kateviewhelpers.cpp:1229 +#, kde-format +msgid "" +"

This is the Katepart command line.
Syntax: command " +"[ arguments ]
For a list of available commands, enter " +"help list
For help for individual commands, enter " +"help <command>

" +msgstr "" +"

Bu Katepart əmr sətiridir.
Söz düzümü: əmr " +"[ arqumentlər ]
Mövcud əmrlərin siyahısı üçün: help " +"list
Kömək üçün fərdi əmrlər: help <əmr>

" + +#: view/kateviewhelpers.cpp:1317 vimode/emulatedcommandbar/commandmode.cpp:211 +#, kde-format +msgid "No such command: \"%1\"" +msgstr "\"%1\" əmri yoxdur" + +#: view/kateviewhelpers.cpp:1320 vimode/emulatedcommandbar/commandmode.cpp:193 +#, kde-format +msgid "Error: No range allowed for command \"%1\"." +msgstr "Xəta: \"%1\" əmri üçün icazə verilməyən məsafə." + +#: view/kateviewhelpers.cpp:1330 vimode/emulatedcommandbar/commandmode.cpp:197 +#, kde-format +msgid "Success: " +msgstr "Müvəffəqiyyətlə: " + +#: view/kateviewhelpers.cpp:1344 vimode/emulatedcommandbar/commandmode.cpp:206 +#, kde-format +msgid "Command \"%1\" failed." +msgstr "\"%1\" əmri icra olunmadı." + +#: view/kateviewhelpers.cpp:2632 view/kateviewhelpers.cpp:2633 +#, kde-format +msgid "Mark Type %1" +msgstr "%1 nişan növü" + +#: view/kateviewhelpers.cpp:2656 +#, kde-format +msgid "Set Default Mark Type" +msgstr "Nişan növünü təyin edin" + +#: view/kateviewhelpers.cpp:2801 +#, kde-format +msgid "Disable Annotation Bar" +msgstr "Mətnin qısa təsviri panelini göstərmə" + +#: view/screenshotdialog.cpp:175 +#, fuzzy, kde-format +#| msgid "Open/Save" +msgid "Save" +msgstr "Açın/Saxlayın" + +#: view/screenshotdialog.cpp:176 +#, fuzzy, kde-format +#| msgid "&Copy..." +msgid "Copy" +msgstr "&Kopyamaq..." + +#: view/screenshotdialog.cpp:177 +#, fuzzy, kde-format +#| msgid "&Background Color..." +msgctxt "@action:button" +msgid "Background Color…" +msgstr "&Fon Rəngi..." + +#: view/screenshotdialog.cpp:179 +#, kde-format +msgid "Show Extra Decorations" +msgstr "Əlavə tərtibat üsullarını göstərmək" + +#: view/screenshotdialog.cpp:180 +#, kde-format +msgid "Show Window Decorations" +msgstr "Pəncərə tərtibatlarını göstərmək" + +#: view/screenshotdialog.cpp:185 +#, fuzzy, kde-format +#| msgid "Paste Selection" +msgctxt "@title:window" +msgid "Take Screenshot of Selection" +msgstr "Seçiləni Yerləşdirmək" + +#: view/screenshotdialog.cpp:257 +#, fuzzy, kde-format +#| msgid "Show &Line Numbers" +msgid "Don't Show Line Numbers" +msgstr "Sətir nömrə&lərini gostər" + +#: view/screenshotdialog.cpp:258 +#, fuzzy, kde-format +#| msgid "Show &Line Numbers" +msgid "Show Line Numbers From 1" +msgstr "Sətir nömrə&lərini gostər" + +#: view/screenshotdialog.cpp:259 +#, fuzzy, kde-format +#| msgid "Show &Line Numbers" +msgid "Show Actual Line Numbers" +msgstr "Sətir nömrə&lərini gostər" + +#: view/screenshotdialog.cpp:422 +#, kde-format +msgctxt "@title:window" +msgid "Screenshot saving failed" +msgstr "" + +#: view/screenshotdialog.cpp:422 +#, kde-format +msgid "Screenshot saving failed: %1" +msgstr "" + +#: vimode/appcommands.cpp:67 +#, kde-format +msgid "All documents written to disk" +msgstr "Bütün sənədlər diskə yazıldı" + +#: vimode/appcommands.cpp:70 +#, kde-format +msgid "Document written to disk" +msgstr "Sənəd diskə yazıldı" + +#: vimode/appcommands.cpp:202 +#, kde-format +msgid "" +"

w/wa — write document(s) to disk

Usage: w[a]

Writes the current document(s) to disk. It can be called in " +"two ways:
w — writes the current document to disk
" +"wa — writes all documents to disk.

If no file name is " +"associated with the document, a file dialog will be shown.

" +msgstr "" +"

w/wa — sənəd(lər)i diskə yaz

İstifadəsi:w[a]

Cari sənədi diskə yazır. Bu iki yolla edilə bilər:
" +"w — cari sənədi diskə yazır
wa — bütün " +"sənədi diskə yazır.

Əgər faylın adına uyğun sənəd yoxdursa , fayl " +"dialoğu göstəriləcək.

" + +#: vimode/appcommands.cpp:213 +#, kde-format +msgid "" +"

q/qa/wq/wqa — [write and] quit

Usage: [w]q[a]

Quits the application. If w is prepended, it also " +"writes the document(s) to disk. This command can be called in several ways:" +"
q — closes the current view.
qa — " +"closes all views, effectively quitting the application.
wq " +"— writes the current document to disk and closes its view.
" +"wqa — writes all documents to disk and quits.

In all " +"cases, if the view being closed is the last view, the application quits. If " +"no file name is associated with the document and it should be written to " +"disk, a file dialog will be shown.

" +msgstr "" +"

q/qa/wq/wqa — [yaz və] bağla

İstifadəsi: " +"[w]q[a]

Tətbiqi bağlayır. Əgər əvvəlinə w " +"əlavə olunarsa, bu həmçinin sənəd(lər)i diskə yazır. Bu əmr bir neçə yolla " +"çağırıla bilər:
q —cari görünüşü bağlayır.
" +"qa — bütün görünüşləri bağlayır, tətbiq bağlanarkən " +"faydalıdır.
wq — cari sənədi diskə yazır və onun " +"görünüşünü bağlayır.
wqa — bütün sənədləri diskə yazır " +"və bağlayır.

Hər bir halda, əgər bağlanan görünüş sonunsudursa, tətbiq " +"də bağlanar. Əgər fayl adına uyğun bir sənəd yoxdursa və diskə yazılması " +"lazımdırsa, fayl dialoqu pəncərəsi göstəriləcəkdir.

" + +#: vimode/appcommands.cpp:228 +#, kde-format +msgid "" +"

x/xa — write and quit

Usage: x[a]

Saves document(s) and quits (exits). This command can be called " +"in two ways:
x — closes the current view.
xa — closes all views, effectively quitting the application.

In " +"all cases, if the view being closed is the last view, the application quits. " +"If no file name is associated with the document and it should be written to " +"disk, a file dialog will be shown.

Unlike the 'w' commands, this " +"command only writes the document if it is modified.

" +msgstr "" +"

x/xa —yaz və bağla

İstifadəsi: x[a]

Sənəd(lər)i saxla və bağla (exits). Bu əmr iki yolla çağırıla " +"bilər:
x — cari görünüşü bağlayır.
xa " +"— bütün görünüşləri bağlayır, tətbiq bağlanarkən faydalıdır.

Hə " +"bir halda əgər bağlanan görünüş sonuncudursa, tətbiq bağlanır. Əgər fayl adı " +"ilə uyğun sənəd yoxdursa və diskə yazılması lazımdırsa bir fayl dialoqu " +"pəncərəsi göstərilir.

'w' əmrlərindən fərqli olaraq bu əmr sənədi " +"yalnız dəyişdirildiyi halda diskə yazar.

" + +#: vimode/appcommands.cpp:242 +#, kde-format +msgid "" +"

sp,split— Split horizontally the current view into two

Usage: sp[lit]

The result is two views on the " +"same document.

" +msgstr "" +"

sp,split—Cari görünüşü üfüqi olaraq iki yerə ayır

İstifadəsi: sp[lit]

Bu nəticə eyni sənədin iki " +"görünüşüdür.

" + +#: vimode/appcommands.cpp:248 +#, kde-format +msgid "" +"

vs,vsplit— Split vertically the current view into two

Usage: vs[plit]

The result is two views on the " +"same document.

" +msgstr "" +"p>vs,vsplit— Cari görünüşü şaquli olaraq iki yerə ayır

İstifadəsi: vs[plit]

Bu nəticə eyni sənədin iki " +"görünüşüdür.

" + +#: vimode/appcommands.cpp:254 +#, kde-format +msgid "" +"

clo[se]— Close the current view

Usage: clo[se]

After executing it, the current view will be closed.

" +msgstr "" +"

clo[se]— Cari görünüşü bağla

İstifadəsi:" +"clo[se]

İcra olunduqdan sonra mövcud görünüş " +"bağlanacaqdır.

" + +#: vimode/appcommands.cpp:260 +#, kde-format +msgid "" +"

[v]new — split view and create new document

Usage: " +"[v]new

Splits the current view and opens a new " +"document in the new view. This command can be called in two ways:
" +"new — splits the view horizontally and opens a new document." +"
vnew — splits the view vertically and opens a new " +"document.

" +msgstr "" +"

[v]new — görünümü böl və yeni sənəd yarat

İstifadəsi: " +"[v]new

cari görünüşü bölür və yeni görünüşdə yeni " +"sənədi açır. Bu əmr iki yolla çağırıla bilər:
yeni — " +"üfüqi bölür və yeni sənədi açır.
vnew — şaquli bölür və " +"yeni sənədi açır.

" + +#: vimode/appcommands.cpp:270 +#, kde-format +msgid "" +"

e[dit] — reload current document

Usage: e[dit]

Starts editing the current document again. This is " +"useful to re-edit the current file, when it was modified on disk.

" +msgstr "" +"

e[dit] — cari sənədi yenidən yükləyir

İstifadəsi: " +"e[dit]

Cari sənədi ona düzəliş etməklə təkrar " +"açır. Bu cari fayla diskdə dəyişiklik edildikdə ona təkrar düzəliş etmək " +"üçün lazım olur.

" + +#: vimode/appcommands.cpp:518 +#, kde-format +msgid "" +"

b,buffer — Edit document N from the document list

Usage: b[uffer] [N]

" +msgstr "" +"

b,buffer — Sənəd siyahısından sənəd № -ə düzəliş edin

İstifadəsi: b[uffer] [N]

" + +#: vimode/appcommands.cpp:523 +#, kde-format +msgid "" +"

bp,bprev — previous buffer

Usage: bp[revious] " +"[N]

Goes to [N]th previous document (\"buffer" +"\") in document list.

[N] defaults to one.

Wraps " +"around the start of the document list.

" +msgstr "" +"

bp,bprev —əvvəlki bufer

İstifadəsi: bp[revious] " +"[N]

Sənəd siyahısında əvvəlki [N]-ci sənədə keçin " +"(\"buffer\").

[N]Standart olaraq təkdir.

Sənəd " +"siyahısının başlanğıcından davam edir

" + +#: vimode/appcommands.cpp:531 +#, kde-format +msgid "" +"

bn,bnext — switch to next document

Usage: " +"bn[ext] [N]

Goes to [N]th next document " +"(\"buffer\") in document list.[N] defaults to one.

Wraps around the end of the document list.

" +msgstr "" +"

bn,bnext —sonrakı sənədə keçin

İstifadəsi: " +"bn[ext] [N]

Sənəd siyahısında [N]-ci növbəti " +"(\"buffer\") sənədə keçir.[N]Standart olaraq təkdir.

Sənəd " +"siyahısının sonundan davam edir.

" + +#: vimode/appcommands.cpp:539 +#, kde-format +msgid "" +"

bf,bfirst — first document

Usage: bf[irst]

Goes to the first document (\"buffer\") in document " +"list.

" +msgstr "" +"

bf,bfirst — ilk sənəd

İstifadəsi: bf[irst]

Sənəd siyahısında (first) ilk sənədə (\"buffer\") " +"keçir.

" + +#: vimode/appcommands.cpp:545 +#, kde-format +msgid "" +"

bl,blast — last document

Usage: bl[ast]

Goes to the last document (\"buffer\") in document " +"list.

" +msgstr "" +"

bl,blast — son sənəd

Usage: bl[ast]

Sənəd siyahısında (last) sonuncu sənədə (\"buffer\") " +"keçir.

" + +#: vimode/appcommands.cpp:551 +#, kde-format +msgid "

ls

list current buffers

" +msgstr "

ls

cari buferin siyahısı

" + +#: vimode/cmds.cpp:52 +#, kde-format +msgid "Missing argument. Usage: %1 " +msgstr "Əksik arqument. İstifadəsi: %1 " + +#: vimode/cmds.cpp:68 +#, kde-format +msgid "No mapping found for \"%1\"" +msgstr "\"%1\" üçün əlaqələndirici yoxdur" + +#: vimode/cmds.cpp:71 +#, kde-format +msgid "\"%1\" is mapped to \"%2\"" +msgstr "\"%1\" \"%2\" yə uyğundur" + +#: vimode/cmds.cpp:77 +#, kde-format +msgid "Missing argument(s). Usage: %1 []" +msgstr "Əksik arqument(lər). İstifadəsi: %1 []" + +#: vimode/cmds.cpp:145 vimode/cmds.cpp:161 +#, kde-format +msgid "Wrong arguments" +msgstr "Yalnış arqumentlər" + +#: vimode/config/configtab.cpp:205 +#, kde-format +msgid "Unable to open the config file for reading." +msgstr "Tənzimləmə faylını oxumaq üçün açmaq mümkün olmadı" + +#: vimode/config/configtab.cpp:205 +#, kde-format +msgid "Unable to open file" +msgstr "Faylı açmaq mümkün olmadı" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkViCommandsOverride) +#: vimode/config/configwidget.ui:35 +#, kde-format +msgid "" +"When selected, vi commands will override Kate's built-in commands. For " +"example: Ctrl+R will redo, and override the standard action (showing the " +"search and replace dialog)." +msgstr "" +"Bu seçimdə Kate redaktorunun daxil əmrləri əvəzinə vi əmri istifadə " +"olunacaq. Məsələn: Ctrl+R dəyişikliklərin ləğvi üçün təyin olunub, artıq " +"axtarış və əvəzetmə dialoqunu açmır." + +#. i18n: ectx: property (text), widget (QCheckBox, chkViCommandsOverride) +#: vimode/config/configwidget.ui:38 +#, kde-format +msgid "Let Vi commands override Kate shortcuts" +msgstr "Vi əmrlərini Kate qısayollarının üzərinə yazın." + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkViRelLineNumbers) +#: vimode/config/configwidget.ui:45 +#, kde-format +msgid "" +"Show the line number relative to the line with the cursor in front of each " +"line." +msgstr "Hər sətirin başında kursorun olduğu sətirə qədər olan məsafəni göstər." + +#. i18n: ectx: property (text), widget (QCheckBox, chkViRelLineNumbers) +#: vimode/config/configwidget.ui:48 +#, kde-format +msgid "Display relative line numbers" +msgstr "Nisbi sətir nömrələrini göstərin" + +#. i18n: ectx: property (whatsThis), widget (QGroupBox, groupBox) +#: vimode/config/configwidget.ui:63 +#, kde-format +msgid "" +"Key mapping is used to change the meaning of typed keys. This allows you to " +"move commands to other keys or make special keypresses for doing a series of " +"commands.\n" +"\n" +"Example:\n" +"\"\" → \"I-- \"\n" +"\n" +"This will prepend \"-- \" to a line when pressing F2." +msgstr "" +" Düymə kombinasiyaları, təyin edilmiş düymələrin təyinatını dəyişdirmək üçün " +"istifadə olunur. Bu, əmrləri digər düymələrə köçürməyə və ya bir sıra " +"əmrləri yerinə yetirmək üçün xüsusi düymələri basmağa imkan verir.\n" +"\n" +"Məsələn:\n" +"\"\" → \"I-- \"\n" +"\n" +"F2 basdıqda bu əmrlər ardıcıllığı cari sətirin əvvəlinə \"-- \" yazır." + +#. i18n: ectx: property (title), widget (QGroupBox, groupBox) +#: vimode/config/configwidget.ui:66 +#, kde-format +msgid "Key Mapping" +msgstr "Düymələrin təyinatı" + +#. i18n: ectx: attribute (title), widget (QWidget, normalTab) +#: vimode/config/configwidget.ui:76 +#, kde-format +msgid "Normal mode" +msgstr "Adi rejim" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:95 vimode/config/configwidget.ui:133 +#: vimode/config/configwidget.ui:171 +#, kde-format +msgid "Command" +msgstr "Əmr" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:100 vimode/config/configwidget.ui:138 +#: vimode/config/configwidget.ui:176 +#, kde-format +msgid "Replacement" +msgstr "Əvəzləmə" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:105 vimode/config/configwidget.ui:143 +#: vimode/config/configwidget.ui:181 +#, kde-format +msgid "Recursive?" +msgstr "Təkrar yenilənsin?" + +#. i18n: ectx: attribute (title), widget (QWidget, insertTab) +#: vimode/config/configwidget.ui:114 +#, kde-format +msgid "Insert mode" +msgstr "Daxil etmə rejimi" + +#. i18n: ectx: attribute (title), widget (QWidget, visualTab) +#: vimode/config/configwidget.ui:152 +#, kde-format +msgid "Visual mode" +msgstr "Müşahidə rejimi" + +#. i18n: ectx: property (text), widget (QPushButton, btnRemoveSelectedRows) +#: vimode/config/configwidget.ui:195 +#, kde-format +msgid "Remove selected" +msgstr "Seçilmişi silmək" + +#. i18n: ectx: property (text), widget (QPushButton, btnAddNewRow) +#: vimode/config/configwidget.ui:202 +#, kde-format +msgid "Add new mapping" +msgstr "Yeni düymə təyinatı" + +#. i18n: ectx: property (toolTip), widget (QPushButton, btnImportNormal) +#: vimode/config/configwidget.ui:209 +#, kde-format +msgid "" +"Read a vimrc file and attempt to import mappings specified with the " +"\"[n]noremap\" command." +msgstr "" +"\"[n]noremap\" əmri ilə düymə kombinasiyalarını vimrc faylında təyin " +"olunduğu kimi idxal etmək." + +#. i18n: ectx: property (text), widget (QPushButton, btnImportNormal) +#: vimode/config/configwidget.ui:212 +#, kde-format +msgid "Import from vimrc file" +msgstr "vimrc faylından idxal" + +#: vimode/marks.cpp:117 +#, kde-format +msgid "Mark set: %1" +msgstr "İşarələyin: %1" + +#: vimode/marks.cpp:163 +#, kde-format +msgid "There are no more chars for the next bookmark." +msgstr "Növbəti əlfəcin üçün artıq simvol yoxdur." + +#: vimode/modes/insertvimode.cpp:261 vimode/modes/modebase.cpp:794 +#: vimode/modes/normalvimode.cpp:3567 +#, kde-format +msgid "Nothing in register %1" +msgstr "%1 qeydində heç nə yoxdur" + +#: vimode/modes/normalvimode.cpp:1691 +#, kde-format +msgid "'%1' %2, Hex %3, Octal %4" +msgstr "'%1' %2, Hex %3, Octal %4" + +#: vimode/modes/normalvimode.cpp:2534 +#, kde-format +msgid "Mark not set: %1" +msgstr "İşarələnməyib: %1" + +#~ msgid "Enable camel case cursor movement" +#~ msgstr "CamelCase kursorunun hərəkətini aktivləşdirin" + +#~ msgid "The file '%1' was created on disk." +#~ msgstr "Diskdə \"%1\" faylı yaradıldı." + +#~ msgid "" +#~ "Use this command to copy the currently selected text as HTML to the " +#~ "system clipboard." +#~ msgstr "" +#~ "Mətni işıqlanma ilə HTML formatında sistemin yaddaş buferinə kopyalamaq." + +#~ msgctxt "Wrap words at (value is at 20 or larger)" +#~ msgid " character" +#~ msgid_plural " characters" +#~ msgstr[0] " simvol" +#~ msgstr[1] " simvollar" + +#, fuzzy +#~| msgid "&Save As..." +#~ msgid "Save..." +#~ msgstr "Belə &saxla..." + +#~ msgid "&Copy..." +#~ msgstr "&Kopyamaq..." + +#~ msgid "Other..." +#~ msgstr "Digəri..." + +#~ msgid "&Align On..." +#~ msgstr "&Nizamlamaq..." + +#~ msgid "Change Dictionary..." +#~ msgstr "Lüğəti dəyiş..." + +#~ msgid "Show focus frame around editor" +#~ msgstr "Redaktorun ətrafında fokus çərçivəsini göstərmək" + +#~ msgid "The file %1 does not exist." +#~ msgstr "%1 faylı mövcud deyil." + +#~ msgid "" +#~ "The file %1 could not be loaded, as it was not possible to read from it.\n" +#~ "\n" +#~ "Check if you have read access to this file." +#~ msgstr "" +#~ "%1 faylını yükləmək mümkün olmadı.\n" +#~ "\n" +#~ "Bu faylı oxumağa icazənizin olduğunu yoxlayın." + +#~ msgid "" +#~ "The file %1 was opened with %2 encoding but contained invalid characters. " +#~ "It is set to read-only mode, as saving might destroy its content. Either " +#~ "reopen the file with the correct encoding chosen or enable the read-write " +#~ "mode again in the tools menu to be able to edit it." +#~ msgstr "" +#~ "%1 faylı %2 kodlaşması ilə açıldı, lakin tərkibində səhv simvollar var.Bu " +#~ "\"ancaq oxumaq\" rejimində qurulub. Saxlanılması onun bütün tərkibini " +#~ "məhv edə bilər. Həmin faylı ya düzgün seçilmiş kodlaşma ilə açın, ya da " +#~ "fayla düzəliş. etmək imkanı əldə etmək üçün, alətlər menyusundan oxumaq-" +#~ "yazmaq rejimini aktiv edin." + +#~ msgid "" +#~ "The file %1 was opened and contained lines longer than the configured " +#~ "Line Length Limit (%2 characters).
The longest of those lines was %3 " +#~ "characters long
Those lines were wrapped and the document is set to " +#~ "read-only mode, as saving will modify its content." +#~ msgstr "" +#~ "%1 faylı açıldı və tərkibində təyin edilmiş Sətir Uzunluğu Limitindən (%2 " +#~ "simvol) daha uzun sətirlər var.
Ən uzun sətirlər %3 simvoldan ibarət " +#~ "idi.
Bu sətirlər daha qısa olaraq bölündü və \"ancaq oxu\" rejimi " +#~ "təyin olundu, belə ki, saxlanılma faylı korlaya bilərdi." + +#~ msgid "Will never again warn about on disk changes but always reload." +#~ msgstr "Təkrar təsdiqləmədən dəyişdirilmiş fayllar həmişə yenilənsin." + +#~ msgid "Error loading script %1\n" +#~ msgstr "%1 skriptinin yüklənməsi xətası\n" + +#~ msgid "Export/Print" +#~ msgstr "İxrac/Çap" + +#~ msgid "Namespaces" +#~ msgstr "Adlar sahəsi" + +#~ msgid "Classes" +#~ msgstr "Siniflər" + +#~ msgid "Structs" +#~ msgstr "Qısayollar" + +#~ msgid "Unions" +#~ msgstr "Birləşmələr" + +#~ msgid "Functions" +#~ msgstr "Funksiyalar" + +#~ msgid "Enumerations" +#~ msgstr "Sadalamalar" + +#~ msgid "Preview:" +#~ msgstr "Önbaxış:" + +#~ msgctxt "Script command name" +#~ msgid "Expand abbreviation" +#~ msgstr "Qısaltmaları göstərin" + +#~ msgctxt "Script command name" +#~ msgid "Toggle comment" +#~ msgstr "Sərhləri açın, bağlayın" + +#~ msgid "Choo&se Font..." +#~ msgstr "Şrifti seçin..." + +#~ msgid "%1, %2pt" +#~ msgstr "%1, %2pt" + +#~ msgctxt "Script command category" +#~ msgid "Quick Coding" +#~ msgstr "Qısa kod" + +#~ msgid "Expand Quick Coding Abbreviation" +#~ msgstr "Qısa kodlaşmanı genişləndirmək" + +#~ msgid "Go To" +#~ msgstr "Keçmək" + +#~ msgid "Zoom" +#~ msgstr "Miqyas" + +#~ msgid "&Default theme for %1:" +#~ msgstr "%1 üçün stan&dart rəng sxem:" + +#~ msgid "Automatic Selection" +#~ msgstr "Avtomatik Seçim" + +#~ msgid "" +#~ "Meaning of current icon: Document was not modified since it was loaded" +#~ msgstr "" +#~ "Cari işarənin mənası: Sənədə yükləndikdən sonra dəyişiklik edilməyib." + +#~ msgid "Meaning of current icon: Document was modified since it was loaded" +#~ msgstr "Cari işarənin mənası: Sənədə yükləndikdən sonra dəyişiklik edilib." + +#~ msgid "Meaning of current icon: Document was modified or deleted on disk" +#~ msgstr "Cari işarənin mənası: Diskdəki sənəd dəyişdirilib və ya silinib" + +#~ msgid "Meaning of current icon: Document is in read-only mode" +#~ msgstr "Cari işarənin mənası: Sənəd ancaq oxumaq üçündür." + +#~ msgctxt "Autoindent mode" +#~ msgid "Lua" +#~ msgstr "Lua" + +#~ msgid "Show &folding markers" +#~ msgstr "Gizlətmə &nişanlarını göstər" + +#~ msgid "Show line modification markers" +#~ msgstr "Dəyişiklik olunan sətir işarələrini göstər" + +#~ msgid "" +#~ "Choose how the bookmarks should be ordered in the Bookmarks menu." +#~ msgstr "" +#~ "Əlfəcinlər menyusunda əlfəcinlərin necə sıralanacağını seçin." + +#~ msgid "B&y creation" +#~ msgstr "&Yaradılma tarixinə görə" + +#~ msgid "By posi&tion" +#~ msgstr "&Yerinə görə" + +#~ msgid "" +#~ "

Backing up on save will cause Kate to copy the disk file to '<" +#~ "prefix><filename><suffix>' before saving changes.

The " +#~ "suffix defaults to ~ and prefix is empty by default." +#~ msgstr "" +#~ "

Yedəkləmə üçün kopyalama zamanı Kate dəyişiklikləri saxlamadan öncə " +#~ "'<prefix><filename><suffix>' faylına yazır.

Son " +#~ "şəkilçi standart olaraq ~ kimi qalır, sözönü isə boş " +#~ "buraxılır." + +#~ msgid "Backup on Save" +#~ msgstr "Saxlama zamanı yedəklə" + +#~ msgid "&Prefix:" +#~ msgstr "&Sözönü:" + +#~ msgid "&Suffix:" +#~ msgstr "&Şəkilçi:" + +#~ msgid "Disable" +#~ msgstr "Söndürülüb" + +#~ msgid "Enable" +#~ msgstr "Aktivləşdir" + +#~ msgid "Alternative Directory" +#~ msgstr "Alternativ qovluq" + +#~ msgid "Directory:" +#~ msgstr "Qovluq:" + +#~ msgid "Directory for swp files" +#~ msgstr "Swap fayllar üçün qovluq" + +#~ msgid "Sync every:" +#~ msgstr "Eyniləşdirmə intervalı:" + +#~ msgid "" +#~ "Be aware, that disabling the swap file synchronization may lead to data " +#~ "loss in case of a system crash." +#~ msgstr "" +#~ "Nəzərə alın ki, swap faylın eyniləşdirilməsinin (sinxronizasiyasının) " +#~ "söndürülməsi sistem xətası zamanı məlumatların itirilməsinə səbəb ola " +#~ "bilər." + +#~ msgid "Enable static &word wrap" +#~ msgstr "Sabit sətrə keçməni aktiv edin" + +#~ msgid "Show static word wra&p marker" +#~ msgstr "Sabit sətrə keşmək &nişanını göstər" + +#~ msgid "Input Mode" +#~ msgstr "Daxil etmə rejimi" + +#~ msgid "Enable automatic brackets" +#~ msgstr "Qoşa mötərizələri aktiv et" + +#~ msgid "Chars to enclose selection:" +#~ msgstr "Qoşa mötərizə simvolları:" + +#~ msgid "Paste by mouse at cursor position" +#~ msgstr "Siçanın kursoru olan yerə yapışdırın" + +#~ msgid "&Align dynamically wrapped lines to indentation depth:" +#~ msgstr "Dinamik keçirilmiş sətirləri abzas dərinliyinə görə uyğunlaşdırın:" + +#~ msgid "" +#~ "If this option is checked, the text lines will be wrapped at the view " +#~ "border on the screen." +#~ msgstr "" +#~ "Bu seçim aktiv olduqda, sətırlar pəncərənin ölçüsünə uyğunlaşdırılacaqdır." + +#~ msgid "D&ynamic word wrap indicators (if applicable):" +#~ msgstr "Dinamik sətr &keçmə nişanı (əgər tətbiq olunandırsa):" + +#~ msgid "Trailing" +#~ msgstr "Sətrin sonunda" + +#~ msgid "All" +#~ msgstr "Bütün" + +#~ msgid "Highlight marker size:" +#~ msgstr "İşıqlanma sahəsinin ölçüsü:" + +#~ msgid "Highlight tabulators" +#~ msgstr "Tab simvollarının işıqlanması" + +#~ msgid "Prefix" +#~ msgstr "Söz önü" + +#~ msgid "Icon" +#~ msgstr "İkon" + +#~ msgid "Scope" +#~ msgstr "Bölgə" + +#~ msgid "Name" +#~ msgstr "Ad" + +#~ msgid "Arguments" +#~ msgstr "Arqumentlər" + +#~ msgid "Postfix" +#~ msgstr "Sonluq" + +#~ msgid "Public" +#~ msgstr "Publik" + +#~ msgid "Protected" +#~ msgstr "Qorunan" + +#~ msgid "Private" +#~ msgstr "Şəxsi" + +#~ msgid "Static" +#~ msgstr "Statik" + +#~ msgid "Constant" +#~ msgstr "Sabit" + +#~ msgid "Namespace" +#~ msgstr "Ad sahəsi" + +#~ msgid "Class" +#~ msgstr "Sinif" + +#~ msgid "Struct" +#~ msgstr "Quruluş" + +#~ msgid "Union" +#~ msgstr "Birlik" + +#~ msgid "Function" +#~ msgstr "Funksiya" + +#~ msgid "Variable" +#~ msgstr "Dəyişən" + +#~ msgid "Enumeration" +#~ msgstr "Sadalama" + +#~ msgid "Template" +#~ msgstr "Müvəqqəti" + +#~ msgid "Virtual" +#~ msgstr "Virtual" + +#~ msgid "Override" +#~ msgstr "Diqqət Yetirməmək" + +#~ msgid "Inline" +#~ msgstr "Sətirdə" + +#~ msgid "Friend" +#~ msgstr "Dost" + +#~ msgid "Signal" +#~ msgstr "Siqnal" + +#~ msgid "Slot" +#~ msgstr "Yuva" + +#~ msgid "Local Scope" +#~ msgstr "Yerli Əhatə Dairəsi" + +#~ msgid "Namespace Scope" +#~ msgstr "Ad Sahəsi" + +#~ msgid "Global Scope" +#~ msgstr "Qlobal Miqyas" + +#~ msgid "Unknown Property" +#~ msgstr "Naməlum Xüsusiyyətlər" + +#~ msgid "Except To The Left of Cursor Position" +#~ msgstr "Kursor mövqeyinin solundan başqa" + +#~ msgid "Code Completion Configuration" +#~ msgstr "Kodun avtomatik doldurulması" + +#~ msgid "Description" +#~ msgstr "Təsviri" + +#~ msgid "Edit Entry..." +#~ msgstr "Dəyişdir..." + +#~ msgid "Remove Entry" +#~ msgstr "Sil" + +#~ msgid "Add Entry..." +#~ msgstr "Əlavə et..." + +#~ msgid "Further Notes" +#~ msgstr "Əlavə qeydlər" + +#~ msgid "" +#~ "

The entries are accessible through the submenu Commands in the " +#~ "Tools menu. For faster access it is possible to assign " +#~ "shortcuts in the shortcut configuration page after applying the " +#~ "changes.

" +#~ msgstr "" +#~ "

Elementlər AlətlərƏmrlər menyusunda mövcuddur. " +#~ "Daha cəld giriş üçün dəyişikliklər tətbiq edildikdən sonra qısayol " +#~ "tənzimləmə səhifəsindən qısayollar

təyin etmək mümkündür.

" + +#~ msgid "Edit Command" +#~ msgstr "Əmrlərə düzəliş edin" + +#~ msgid "&Associated command:" +#~ msgstr "&Əlaqələndirilmiş əmrlər:" + +#~ msgid "Choose an icon." +#~ msgstr "İkon seçin." + +#~ msgid "

This icon will be displayed in the menu and toolbar.

" +#~ msgstr "

Bu ikon menyu və alətlər panelində görünəcək.

" + +#~ msgid "&Description:" +#~ msgstr "&Təsviri:" + +#~ msgid "&Category:" +#~ msgstr "&Kateqoriya:" + +#~ msgid "Sorting" +#~ msgstr "Çeşidləmə" + +#~ msgid "Alphabetical" +#~ msgstr "Əlifba sırası ilə" + +#~ msgid "Reverse" +#~ msgstr "Əks sıralama" + +#~ msgid "Case sensitive" +#~ msgstr "Böyük, kiçik hərfə həssas" + +#~ msgid "Inheritance depth" +#~ msgstr "Əhatə dərinliyi" + +#~ msgid "Order of Groupings (select a grouping method to configure):" +#~ msgstr "Qruplama sırası (qruplama metodunu seçin)" + +#~ msgid "^" +#~ msgstr "^" + +#~ msgid "\\/" +#~ msgstr "\\/" + +#~ msgid "Filtering" +#~ msgstr "Çeşidləmə" + +#~ msgid "Suitable context matches only" +#~ msgstr "Yalnız vəziyyətə uyğun olaraq" + +#~ msgid "Hide completions with the following attributes:" +#~ msgstr "Aşağıdakı atributları olan tamamlamaları gizlədin:" + +#~ msgid "Maximum inheritance depth:" +#~ msgstr "Maksimum əhatə dərinliyi:" + +#~ msgid "Infinity" +#~ msgstr "Sonsuz" + +#~ msgid "Grouping" +#~ msgstr "Qruplama" + +#~ msgid "Grouping Method" +#~ msgstr "Qruplama metodu" + +#~ msgid "Scope type (local, namespace, global)" +#~ msgstr "Əhatə növü (lokal, ad sahəsi, qlobal)" + +#~ msgid "Scope (eg. per class)" +#~ msgstr "Əhatə (hər sinif kimi)" + +#~ msgid "Access type (public etc.)" +#~ msgstr "Giriş növü (əsas və s.)" + +#~ msgid "Item type (function etc.)" +#~ msgstr "Element növü (funksiya və s.)" + +#~ msgid "Access Grouping Properties" +#~ msgstr "Qruplaşmaya girişin təsviri" + +#~ msgid "Include const in grouping" +#~ msgstr "Qruplaşmada const aktiv et" + +#~ msgid "Include static in grouping" +#~ msgstr "Qruplaşmada stetic aktiv et" + +#~ msgid "Include signals and slots in grouping" +#~ msgstr "Qruplaşmada siqnalları və yuvaları aktiv et" + +#~ msgid "Item Grouping properties" +#~ msgstr "Qruplaşmanın təsviri" + +#~ msgid "Include templates in grouping" +#~ msgstr "Şablonları qruplaşmaya daxil et" + +#~ msgid "Column Merging" +#~ msgstr "Sütunların birləşdirilməsi" + +#~ msgid "Columns" +#~ msgstr "Sütunlar" + +#~ msgid "Merged" +#~ msgstr "Birləşmiş" + +#~ msgid "Shown" +#~ msgstr "Görünən" + +#~ msgid "How do you want to import the schema?" +#~ msgstr "Bu sxemi necə ixrac etmək istəyirsiniz?" + +#~ msgid "Replace current schema?" +#~ msgstr "Cari sxem əvəzlənsinmi?" + +#~ msgid "Replace existing schema %1" +#~ msgstr "Mövcud %1 sxemi əvəzlə" + +#~ msgid "Import as new schema:" +#~ msgstr "Yeni sxem kimi idxal:" + +#~ msgid "Loading all highlightings for schema" +#~ msgstr "Sxemlər yüklənir" + +#~ msgid "Importing colors for single highlighting" +#~ msgstr "İşıqlanma rəngini idxal et" + +#~ msgid "Kate color schema" +#~ msgstr "Kate rəng sxemi" + +#~ msgid "File is not a single highlighting color file" +#~ msgstr "Bu seçim rəngi faylı deyil" + +#~ msgid "Fileformat error" +#~ msgstr "Səhv fayl formatı" + +#~ msgid "The selected file contains colors for a non existing highlighting:%1" +#~ msgstr "Göstərilən faylın tərkibində mövcud olmayan format: %1" + +#~ msgid "Import failure" +#~ msgstr "İdxal uğursuz oldu" + +#~ msgid "Colors have been imported for highlighting: %1" +#~ msgstr "Sintaksisin işıqlanması üçün idxal edilən rənglər: %1" + +#~ msgid "Import has finished" +#~ msgstr "İdxal başa çatdı" + +#~ msgid "Exporting colors for single highlighting: %1" +#~ msgstr "İxrac olunan işıqlanma rəngi: %1" + +#~ msgid "&New..." +#~ msgstr "Ye&ni..." + +#~ msgid "Exporting schema" +#~ msgstr "Sxemin ixracı" + +#, fuzzy +#~| msgid "Replace existing schema %1" +#~ msgid "Replace existing theme %1" +#~ msgstr "Mövcud %1 sxemi əvəzlə" + +#~ msgid "The file does not contain a full color schema." +#~ msgstr "Faylın tərkibində tam rəng sxemi yoxdur." + +#~ msgid "Name unspecified" +#~ msgstr "Adsız" + +#~ msgid "Importing schema" +#~ msgstr "Sxemin idxalı" + +#~ msgid "Name for New Schema" +#~ msgstr "Yeni Sxemin Adı" + +#~ msgid "Name:" +#~ msgstr "Adı:" + +#~ msgid "New Schema" +#~ msgstr "Yeni Sxem" + +#~ msgid "&Schema:" +#~ msgstr "&Sxem:" + +#~ msgid "Fonts & Colors" +#~ msgstr "Şriftlər və Rənglər" + +#~ msgid "&Schema" +#~ msgstr "&Sxem" + +#~ msgid "Non-whitespace (excluding line breaks)" +#~ msgstr "Boşluq olmayan simvol (sətirə keçid istisna)" + +#~ msgid "Lookahead" +#~ msgstr "İrəliyə baxış" diff --git a/local/recipes/kde/kf6-ktexteditor/source/po/be/ktexteditor6.po b/local/recipes/kde/kf6-ktexteditor/source/po/be/ktexteditor6.po new file mode 100644 index 0000000000..e43178456d --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/po/be/ktexteditor6.po @@ -0,0 +1,10756 @@ +# translation of katepart4.po to Belarusian +# Belarusian (classic spelling) translation of katepart4.pot +# Copyright (C) 2002-2004 KDE Team. +# +# Eugene Zelenko , 2002-2004. +# Ihar Hrachyshka , 2006. +# Darafei Praliaskouski , 2007. +msgid "" +msgstr "" +"Project-Id-Version: katepart4\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2026-06-23 00:41+0000\n" +"PO-Revision-Date: 2007-10-28 14:02+0200\n" +"Last-Translator: Darafei Praliaskouski \n" +"Language-Team: Belarusian \n" +"Language: be\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=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || n%10>=5 && n%10<=9 || n" +"%100>=11 && n%100<=14 ? 2 : 3);\n" + +#: completion/katecompletionmodel.cpp:147 +#, kde-format +msgid "Argument-hints" +msgstr "" + +#: completion/katecompletionmodel.cpp:148 +#, kde-format +msgid "Best matches" +msgstr "" + +#: completion/katekeywordcompletion.cpp:143 +#, kde-format +msgid "Language keywords" +msgstr "" + +#: completion/katewordcompletion.cpp:74 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgid "Auto Word Completion" +msgstr "Модуль заканчэння словаў" + +#: completion/katewordcompletion.cpp:301 +#, kde-format +msgid "Shell Completion" +msgstr "Заканчэнне словаў для абалонкі" + +#: completion/katewordcompletion.cpp:306 +#, kde-format +msgid "Reuse Word Above" +msgstr "" + +#: completion/katewordcompletion.cpp:312 +#, kde-format +msgid "Reuse Word Below" +msgstr "" + +#. i18n: ectx: Menu (file) +#: data/katepart5ui.rc:4 +#, fuzzy, kde-format +msgid "&File" +msgstr "&Файл" + +#. i18n: ectx: Menu (file_export) +#: data/katepart5ui.rc:10 +#, kde-format +msgid "&Print/Export" +msgstr "" + +#. i18n: ectx: Menu (edit) +#: data/katepart5ui.rc:17 +#, fuzzy, kde-format +msgid "&Edit" +msgstr "&Змяніць" + +#. i18n: ectx: Menu (edit_find_menu) +#: data/katepart5ui.rc:36 +#, kde-format +msgid "Find Variants" +msgstr "" + +#. i18n: ectx: Menu (selection) +#: data/katepart5ui.rc:46 +#, fuzzy, kde-format +#| msgid "Selection Only" +msgid "Selection" +msgstr "Толькі вылучаны тэкст" + +#. i18n: ectx: Menu (capitalization) +#: data/katepart5ui.rc:53 +#, kde-format +msgid "Capitalization" +msgstr "" + +#. i18n: ectx: Menu (view) +#: data/katepart5ui.rc:73 +#, fuzzy, kde-format +msgid "&View" +msgstr "&Выгляд" + +#. i18n: ectx: Menu (view_menu_word_wrap) +#: data/katepart5ui.rc:78 +#, fuzzy, kde-format +msgid "Word Wrap" +msgstr "Маркеры пераносу радкоў:" + +#. i18n: ectx: Menu (view_menu_borders) +#: data/katepart5ui.rc:84 dialogs/katedialogs.cpp:747 +#, fuzzy, kde-format +#| msgid "Borders" +msgid "Borders" +msgstr "Межы" + +#. i18n: ectx: Menu (codefolding) +#: data/katepart5ui.rc:92 +#, kde-format +msgid "&Code Folding" +msgstr "" + +#. i18n: ectx: Menu (go) +#: data/katepart5ui.rc:109 +#, fuzzy, kde-format +msgid "&Go" +msgstr "Ісці" + +#. i18n: ectx: Menu (tools) +#: data/katepart5ui.rc:124 +#, fuzzy, kde-format +msgid "&Tools" +msgstr "Н&ачынне" + +#. i18n: ectx: Menu (wordcompletion) +#: data/katepart5ui.rc:138 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgid "Word Completion" +msgstr "Модуль заканчэння словаў" + +#. i18n: ectx: Menu (spelling) +#: data/katepart5ui.rc:144 spellcheck/spellingmenu.cpp:71 +#: spellcheck/spellingmenu.cpp:195 +#, kde-format +msgid "Spelling" +msgstr "" + +#. i18n: ectx: Menu (speech) +#: data/katepart5ui.rc:153 data/katepart5ui.rc:184 +#, kde-format +msgid "Text to Speech" +msgstr "" + +#. i18n: ectx: Menu (settings) +#: data/katepart5ui.rc:161 +#, fuzzy, kde-format +msgid "&Settings" +msgstr "&Настаўленні" + +#. i18n: ectx: ToolBar (mainToolBar) +#: data/katepart5ui.rc:192 +#, fuzzy, kde-format +msgid "Main Toolbar" +msgstr "Галоўная панель начыння" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/bordersappearanceconfigwidget.ui:25 +#, fuzzy, kde-format +#| msgid "Code Folding" +msgid "Code block folding:" +msgstr "Згортванне коду" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowFoldingMarkers) +#: dialogs/bordersappearanceconfigwidget.ui:32 +#, fuzzy, kde-format +#| msgid "" +#| "Show/hide the icon border.

The icon border shows bookmark " +#| "symbols, for instance." +msgid "" +"If this option is checked, every new view will display marks for folding." +msgstr "" +"Паказаць/схаваць поле значак.

У прыватнасці, поле значак паказвае " +"значкі закладак." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowFoldingMarkers) +#: dialogs/bordersappearanceconfigwidget.ui:35 +#, kde-format +msgid "Show arrows to collapse code blocks" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowFoldingPreview) +#: dialogs/bordersappearanceconfigwidget.ui:42 +#, fuzzy, kde-format +#| msgid "" +#| "Show/hide the icon border.

The icon border shows bookmark " +#| "symbols, for instance." +msgid "" +"If checked, hovering over a folded region shows a preview of the folded text " +"in a popup." +msgstr "" +"Паказаць/схаваць поле значак.

У прыватнасці, поле значак паказвае " +"значкі закладак." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowFoldingPreview) +#: dialogs/bordersappearanceconfigwidget.ui:45 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Show preview of folded blocks on hover" +msgstr "Друкаваць гэты дакумент." + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/bordersappearanceconfigwidget.ui:52 +#, kde-format +msgid "Folding arrows visibility:" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbFoldingArrowVisiblity) +#: dialogs/bordersappearanceconfigwidget.ui:63 +#, fuzzy, kde-format +#| msgid "Show &Icon Border" +msgid "Show on Hover" +msgstr "Паказаць поле &значак" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbFoldingArrowVisiblity) +#: dialogs/bordersappearanceconfigwidget.ui:68 +#, fuzzy, kde-format +msgid "Show Always" +msgstr "Заўсёды" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/bordersappearanceconfigwidget.ui:92 +#, kde-format +msgid "Left side:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkIconBorder) +#: dialogs/bordersappearanceconfigwidget.ui:99 +#, kde-format +msgid "" +"

If this option is checked, every new view will display an icon border on " +"the left hand side.

The icon border shows bookmark signs, for instance." +"

" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkIconBorder) +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMarks) +#: dialogs/bordersappearanceconfigwidget.ui:102 +#: dialogs/bordersappearanceconfigwidget.ui:155 +#, fuzzy, kde-format +#| msgid "Show &line numbers" +msgid "Show marks" +msgstr "Паказваць &нумары радкоў" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkLineNumbers) +#: dialogs/bordersappearanceconfigwidget.ui:109 +#, kde-format +msgid "" +"If this option is checked, every new view will display line numbers on the " +"left hand side." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkLineNumbers) +#: dialogs/bordersappearanceconfigwidget.ui:112 +#, kde-format +msgid "Show &line numbers" +msgstr "Паказваць &нумары радкоў" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowLineModification) +#: dialogs/bordersappearanceconfigwidget.ui:119 +#, kde-format +msgid "" +"If this option is checked, a small indicator for modified and saved lines is " +"shown on the left hand side." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowLineModification) +#: dialogs/bordersappearanceconfigwidget.ui:122 +#, kde-format +msgid "Highlight changed and unsaved lines" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/bordersappearanceconfigwidget.ui:145 +#, kde-format +msgid "Scrollbars:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMarks) +#: dialogs/bordersappearanceconfigwidget.ui:152 +#, fuzzy, kde-format +#| msgid "" +#| "Show/hide the icon border.

The icon border shows bookmark " +#| "symbols, for instance." +msgid "" +"

If this option is checked, every new view will show marks on the vertical " +"scrollbar.

These marks will show bookmarks, for instance.

" +msgstr "" +"Паказаць/схаваць поле значак.

У прыватнасці, поле значак паказвае " +"значкі закладак." + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarPreview) +#: dialogs/bordersappearanceconfigwidget.ui:162 +#, fuzzy, kde-format +#| msgid "" +#| "Show/hide the icon border.

The icon border shows bookmark " +#| "symbols, for instance." +msgid "" +"

If this option is checked, hovering over the vertical scrollbar will show " +"a preview of the text.

" +msgstr "" +"Паказаць/схаваць поле значак.

У прыватнасці, поле значак паказвае " +"значкі закладак." + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarPreview) +#: dialogs/bordersappearanceconfigwidget.ui:165 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Show preview when hovering over scrollbar" +msgstr "Друкаваць гэты дакумент." + +#. i18n: ectx: property (text), widget (QLabel, lblShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:172 +#, kde-format +msgid "Scro&llbars visibility:" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:183 dialogs/katedialogs.cpp:755 +#, kde-format +msgid "Always On" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:188 +#, kde-format +msgid "Show When Needed" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:193 +#, fuzzy, kde-format +msgid "Always Off" +msgstr "Заўсёды" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/bordersappearanceconfigwidget.ui:217 +#, fuzzy, kde-format +#| msgid "&Minimal matching" +msgid "Minimap:" +msgstr "Най&меншае адпавяданне" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMiniMap) +#: dialogs/bordersappearanceconfigwidget.ui:224 +#, fuzzy, kde-format +#| msgid "" +#| "Show/hide the icon border.

The icon border shows bookmark " +#| "symbols, for instance." +msgid "" +"If this option is checked, every new view will show a mini map on the " +"vertical scrollbar." +msgstr "" +"Паказаць/схаваць поле значак.

У прыватнасці, поле значак паказвае " +"значкі закладак." + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMiniMap) +#: dialogs/bordersappearanceconfigwidget.ui:227 +#, kde-format +msgid "Show minimap" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, labelMiniMapWidth) +#: dialogs/bordersappearanceconfigwidget.ui:250 +#, fuzzy, kde-format +#| msgid "&Minimal matching" +msgid "Minim&ap width:" +msgstr "Най&меншае адпавяданне" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMiniMapAll) +#: dialogs/bordersappearanceconfigwidget.ui:263 +#, fuzzy, kde-format +#| msgid "" +#| "Show/hide the icon border.

The icon border shows bookmark " +#| "symbols, for instance." +msgid "" +"If this option is checked, every new view will show a mini map of the whole " +"document on the vertical scrollbar." +msgstr "" +"Паказаць/схаваць поле значак.

У прыватнасці, поле значак паказвае " +"значкі закладак." + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMiniMapAll) +#: dialogs/bordersappearanceconfigwidget.ui:266 +#, fuzzy, kde-format +#| msgid "Save the current document" +msgid "Map the whole document" +msgstr "Запісаць гэты дакумент" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbSortBookmarksByCreation) +#: dialogs/bordersappearanceconfigwidget.ui:276 +#, kde-format +msgid "" +"Each new bookmark will be added to the bottom, independently from where it " +"is placed in the document." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbSortBookmarksByCreation) +#: dialogs/bordersappearanceconfigwidget.ui:279 +#, kde-format +msgid "By date created" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbSortBookmarksByPosition) +#: dialogs/bordersappearanceconfigwidget.ui:286 +#, kde-format +msgid "The bookmarks will be ordered by the line numbers they are placed at." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbSortBookmarksByPosition) +#: dialogs/bordersappearanceconfigwidget.ui:289 +#, fuzzy, kde-format +#| msgid "Show &line numbers" +msgid "By line number" +msgstr "Паказваць &нумары радкоў" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/bordersappearanceconfigwidget.ui:296 +#, fuzzy, kde-format +#| msgid "Sort Bookmarks Menu" +msgid "Sort bookmarks menu:" +msgstr "Парадкаваць меню закладак" + +#: dialogs/clipboardhistorydialog.cpp:264 +#, fuzzy, kde-format +#| msgid "Select to Next Line" +msgid "Select text to paste." +msgstr "Вылучыць да наступнага радка" + +#: dialogs/clipboardhistorydialog.cpp:296 +#, kde-format +msgid "No entries in clipboard history" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbGeneral) +#. i18n: ectx: property (title), widget (QGroupBox, gbViInputMode) +#: dialogs/completionconfigtab.ui:29 dialogs/katedialogs.cpp:609 +#: dialogs/katedialogs.cpp:743 dialogs/katedialogs.cpp:1026 +#: vimode/config/configwidget.ui:29 +#, kde-format +msgid "General" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoCompletionEnabled) +#: dialogs/completionconfigtab.ui:35 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgid "Enable &auto completion" +msgstr "Модуль заканчэння словаў" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoSelectFirstEntry) +#: dialogs/completionconfigtab.ui:42 +#, fuzzy, kde-format +#| msgid "Automatic Completion Popup" +msgid "Auto select &first completion entry" +msgstr "Аўтаматычны выплыўны спіс з варыянтамі заканчэння" + +#. i18n: ectx: property (text), widget (QCheckBox, chkTabCompletion) +#: dialogs/completionconfigtab.ui:49 +#, kde-format +msgid "Cycle through the list of completions using Tab / Shift+Tab" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkEnterCompletion) +#: dialogs/completionconfigtab.ui:56 +#, kde-format +msgid "" +"Pressing enter will insert the text of selected completion item into the " +"editor. If disabled, Tab key or double-click can still be used to trigger " +"completion." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkEnterCompletion) +#: dialogs/completionconfigtab.ui:59 +#, kde-format +msgid "Use Enter key to insert selected completion" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbWordCompletion) +#: dialogs/completionconfigtab.ui:69 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgid "A&uto word completion" +msgstr "Модуль заканчэння словаў" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/completionconfigtab.ui:83 +#, kde-format +msgid "Minimal word length to complete:" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, removeTail) +#: dialogs/completionconfigtab.ui:111 +#, kde-format +msgid "Remove tail of a previous word when completion item chosen from a list" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, removeTail) +#: dialogs/completionconfigtab.ui:114 +#, fuzzy, kde-format +#| msgid "Re&move trailing spaces" +msgid "Remove tail on complete" +msgstr "&Прыбіраць канцавыя прагалы" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/completionconfigtab.ui:121 +#, kde-format +msgid "" +"Word completion provides suggestions based on the words found in the document" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbKeywordCompletion) +#: dialogs/completionconfigtab.ui:134 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgid "&Keyword completion" +msgstr "Модуль заканчэння словаў" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/completionconfigtab.ui:143 +#, kde-format +msgid "" +"Keyword completion provides suggestions based on the keywords which exist in " +"the document's language." +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbShowDoc) +#: dialogs/completionconfigtab.ui:156 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgid "Documentation with completion" +msgstr "Модуль заканчэння словаў" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/completionconfigtab.ui:165 +#, kde-format +msgid "" +"Show documentation beside completion box. If disabled, documentation can be " +"shown by pressing Alt key." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/editconfigwidget.ui:22 +#, fuzzy, kde-format +msgid "Word wrap:" +msgstr "Маркеры пераносу радкоў:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkStaticWordWrap) +#: dialogs/editconfigwidget.ui:29 +#, kde-format +msgid "" +"

Automatically start a new line of text when the current line exceeds the " +"length specified by the Wrap words at: option.

This option does " +"not wrap existing lines of text - use the Apply Static Word Wrap " +"option in the Tools menu for that purpose.

If you want lines to " +"be visually wrapped instead, according to the width of the view, " +"enable Dynamic Word Wrap in the Appearance config page.

" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkStaticWordWrap) +#: dialogs/editconfigwidget.ui:32 +#, kde-format +msgid "Wrap &words at a fixed column" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowStaticWordWrapMarker) +#: dialogs/editconfigwidget.ui:39 +#, fuzzy, kde-format +#| msgid "" +#| "Show/hide the icon border.

The icon border shows bookmark " +#| "symbols, for instance." +msgid "" +"

If this option is checked, a vertical line will be drawn at the word wrap " +"column as defined in the Editing properties.

" +msgstr "" +"Паказаць/схаваць поле значак.

У прыватнасці, поле значак паказвае " +"значкі закладак." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowStaticWordWrapMarker) +#: dialogs/editconfigwidget.ui:42 +#, kde-format +msgid "&Draw vertical line at the word wrap column" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblWordWrap) +#: dialogs/editconfigwidget.ui:49 +#, kde-format +msgid "Wra&p words at:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbWordWrap) +#: dialogs/editconfigwidget.ui:59 +#, kde-format +msgid "" +"If the Word Wrap option is selected this entry determines the length (in " +"characters) at which the editor will automatically start a new line." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblInputMode) +#: dialogs/editconfigwidget.ui:91 +#, kde-format +msgid "Default input mode:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/editconfigwidget.ui:120 +#, fuzzy, kde-format +#| msgid "Auto &brackets" +msgid "Brackets:" +msgstr "Аўтаматычна расстаўляць &дужкі" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoBrackets) +#: dialogs/editconfigwidget.ui:127 +#, kde-format +msgid "Automatically close brackets when opening bracket is typed" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLabel, lbEncloseSelection) +#: dialogs/editconfigwidget.ui:140 +#, kde-format +msgid "" +"When some text is selected these chars will be added on both its sides in a " +"way \"Auto Bracket\" do" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lbEncloseSelection) +#: dialogs/editconfigwidget.ui:143 +#, fuzzy, kde-format +#| msgid "Character" +msgid "Enclosing characters:" +msgstr "Знак" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/editconfigwidget.ui:166 +#, kde-format +msgid "Copy and paste:" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkTextDragAndDrop) +#: dialogs/editconfigwidget.ui:173 +#, fuzzy, kde-format +#| msgid "Selected" +msgid "Move selected text when dragged" +msgstr "Вылучаны" + +#. i18n: ectx: property (text), widget (QCheckBox, chkSmartCopyCut) +#: dialogs/editconfigwidget.ui:180 +#, kde-format +msgid "Copy/cut the current line if invoked without any text selected" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkMousePasteAtCursorPosition) +#: dialogs/editconfigwidget.ui:187 +#, kde-format +msgid "Don't move the text cursor when pasting by mouse" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblClipboardHistoryEntries) +#: dialogs/editconfigwidget.ui:194 +#, kde-format +msgid "Max Clipboard History Entries:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbClipboardHistoryEntries) +#: dialogs/editconfigwidget.ui:204 +#, kde-format +msgid "This determines the number of entries to keep in the clipboard history" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblBracketHelp) +#: dialogs/editconfigwidget.ui:226 +#, kde-format +msgid "" +"When you type these characters while text is selected, they will surround " +"the selected text instead of replacing it." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAccessibility) +#: dialogs/editconfigwidget.ui:252 +#, kde-format +msgid "Enable accessibility notifications" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/editconfigwidget.ui:259 +#, kde-format +msgid "Accessibility:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblFiletype) +#: dialogs/filetypeconfigwidget.ui:14 +#, kde-format +msgid "&Filetype:" +msgstr "Тып &файла:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbFiletypes) +#: dialogs/filetypeconfigwidget.ui:24 +#, fuzzy, kde-format +#| msgid "

Select the marker type you want to change.

" +msgid "Select the filetype you want to change." +msgstr "

Выберыце тып маркераў для змены.

" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, btnNew) +#: dialogs/filetypeconfigwidget.ui:31 +#, kde-format +msgid "Create a new file type." +msgstr "Стварыць новы тып файлаў" + +#. i18n: ectx: property (text), widget (QPushButton, btnNew) +#: dialogs/filetypeconfigwidget.ui:34 +#, fuzzy, kde-format +#| msgid "&New..." +msgid "&New" +msgstr "&Новы..." + +#. i18n: ectx: property (whatsThis), widget (QPushButton, btnDelete) +#: dialogs/filetypeconfigwidget.ui:41 +#, kde-format +msgid "Delete the current file type." +msgstr "Выдаліць гэты тып файлаў." + +#. i18n: ectx: property (text), widget (QPushButton, btnDelete) +#: dialogs/filetypeconfigwidget.ui:44 syntax/katethemeconfig.cpp:1132 +#, fuzzy, kde-format +msgid "&Delete" +msgstr "В&ыдаліць" + +#. i18n: ectx: property (title), widget (QGroupBox, gbProperties) +#: dialogs/filetypeconfigwidget.ui:66 mode/katemodeconfigpage.cpp:272 +#, fuzzy, kde-format +msgid "Properties" +msgstr "Уласцівасці" + +#. i18n: ectx: property (text), widget (QLabel, lblName) +#: dialogs/filetypeconfigwidget.ui:72 +#, fuzzy, kde-format +#| msgid "Name:" +msgid "&Name:" +msgstr "Назва:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtName) +#: dialogs/filetypeconfigwidget.ui:82 +#, kde-format +msgid "" +"The name of the filetype will be the text of the corresponding menu item." +msgstr "Назва тыпу файлаў - гэта тэкст, які будзе паказаны ў меню." + +#. i18n: ectx: property (text), widget (QLabel, lblSection) +#: dialogs/filetypeconfigwidget.ui:89 +#, kde-format +msgid "&Section:" +msgstr "&Раздзел:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtSection) +#: dialogs/filetypeconfigwidget.ui:99 +#, kde-format +msgid "The section name is used to organize the file types in menus." +msgstr "Назва раздзела выкарыстоўваецца для ўпарадкавання тыпаў файлаў у меню." + +#. i18n: ectx: property (text), widget (QLabel, lblVariables) +#: dialogs/filetypeconfigwidget.ui:106 +#, fuzzy, kde-format +#| msgid "Variables" +msgid "&Variables:" +msgstr "Пераменныя" + +#. i18n: ectx: property (whatsThis), widget (VariableLineEdit, edtVariables) +#: dialogs/filetypeconfigwidget.ui:116 +#, kde-format +msgid "" +"

This string allows to configure Kate's settings for the files selected by " +"this mimetype using Kate variables. Almost any configuration option can be " +"set, such as highlight, indent-mode, encoding, etc.

For a full list of " +"known variables, see the manual.

" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblHl) +#: dialogs/filetypeconfigwidget.ui:123 +#, fuzzy, kde-format +msgid "&Highlighting:" +msgstr "&Падсветка" + +#. i18n: ectx: property (text), widget (QLabel, lblIndenter) +#: dialogs/filetypeconfigwidget.ui:136 +#, fuzzy, kde-format +#| msgid "Header Properties" +msgid "&Indentation mode:" +msgstr "Уласцівасці загалоўка" + +#. i18n: ectx: property (text), widget (QLabel, lblExtensions) +#: dialogs/filetypeconfigwidget.ui:149 +#, fuzzy, kde-format +#| msgid "File e&xtensions:" +msgid "File e&xtensions:" +msgstr "Па&шырэнні файлаў:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtFileExtensions) +#: dialogs/filetypeconfigwidget.ui:159 +#, kde-format +msgid "" +"The wildcards mask allows to select files by filename. A typical mask uses " +"an asterisk and the file extension, for example *.txt; *.text. " +"The string is a semicolon-separated list of masks." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblMimeTypes) +#: dialogs/filetypeconfigwidget.ui:166 +#, kde-format +msgid "MIME &types:" +msgstr "&Тыпы MIME:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtMimeTypes) +#: dialogs/filetypeconfigwidget.ui:181 +#, kde-format +msgid "" +"The mime type mask allows to select files by mimetype. The string is a " +"semicolon-separated list of mimetypes, for example text/plain; text/" +"english." +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QToolButton, btnMimeTypes) +#: dialogs/filetypeconfigwidget.ui:188 +#, kde-format +msgid "Displays a wizard that helps you easily select mimetypes." +msgstr "Паказвае праграму-чараўніка, якая дапамагае лёгка выбіраць тыпы MIME." + +#. i18n: ectx: property (text), widget (QLabel, lblPriority) +#: dialogs/filetypeconfigwidget.ui:197 +#, fuzzy, kde-format +#| msgid "Prio&rity:" +msgid "P&riority:" +msgstr "Прыя&рытэт:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbPriority) +#: dialogs/filetypeconfigwidget.ui:207 +#, fuzzy, kde-format +#| msgid "" +#| "Sets a priority for this file type. If more than one file type selects " +#| "the same file, the one with the highest priority will be used." +msgid "" +"Sets priority for this file type. If more than one file type selects the " +"same file, the one with the highest priority will be used." +msgstr "" +"Вызначае прыярытэты для гэтага тыпу файлаў. Калі аднаму і тому ж файлу " +"адпавядае некалькі азначэнняў тыпу, тады выкарыстоўваюцца настаўленні для " +"тыпу з найвышэйшым прыярытэтам." + +#. i18n: ectx: property (text), widget (QLabel, lblMode) +#: dialogs/indentationconfigwidget.ui:43 +#, kde-format +msgid "Default indentation mode:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbMode) +#: dialogs/indentationconfigwidget.ui:53 +#, kde-format +msgid "" +"This is a list of available indentation modes. The specified indentation " +"mode will be used for all new documents. Be aware that it is also possible " +"to set the indentation mode with document variables, modes or a .kateconfig " +"file." +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbIndentationMode) +#: dialogs/indentationconfigwidget.ui:75 +#, fuzzy, kde-format +msgid "Indent using" +msgstr "&Водступ" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbIndentWidth) +#: dialogs/indentationconfigwidget.ui:81 +#, kde-format +msgid "" +"The indentation width is the number of spaces which is used to indent a " +"line. If the option Insert spaces instead of tabulators in the " +"section Editing is disabled, a Tab character is inserted if " +"the indentation is divisible by the tab width." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentWithSpaces) +#: dialogs/indentationconfigwidget.ui:97 +#, fuzzy, kde-format +#| msgid "&Replace" +msgid "&Spaces" +msgstr "&Замяніць" + +#. i18n: ectx: property (text), widget (QLabel, lblIndentWidth) +#: dialogs/indentationconfigwidget.ui:104 +#, fuzzy, kde-format +#| msgid "Header Properties" +msgid "&Indentation width:" +msgstr "Уласцівасці загалоўка" + +#. i18n: ectx: property (text), widget (QLabel, lblTabWidth) +#: dialogs/indentationconfigwidget.ui:114 +#, fuzzy, kde-format +#| msgid "Tab width:" +msgid "Tab wi&dth:" +msgstr "Шырыня водступу:" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentWithTabs) +#: dialogs/indentationconfigwidget.ui:153 +#, fuzzy, kde-format +#| msgid "Tabulators" +msgid "&Tabulators" +msgstr "Знакі водступаў" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentMixed) +#: dialogs/indentationconfigwidget.ui:160 +#, fuzzy, kde-format +#| msgid "Tabulators" +msgid "Tabulators &and Spaces" +msgstr "Знакі водступаў" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoDetectIndent) +#: dialogs/indentationconfigwidget.ui:167 +#, fuzzy, kde-format +#| msgid "&Automatic end of line detection" +msgid "Automatically detect file indentation" +msgstr "&Аўтаматычнае вызначэнне канца радка" + +#. i18n: ectx: property (title), widget (QGroupBox, gbProperties) +#: dialogs/indentationconfigwidget.ui:177 +#, fuzzy, kde-format +#| msgid "Header Properties" +msgid "Indentation Properties" +msgstr "Уласцівасці загалоўка" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkKeepExtraSpaces) +#: dialogs/indentationconfigwidget.ui:183 +#, kde-format +msgid "" +"If this option is disabled, changing the indentation level aligns a line to " +"a multiple of the width specified in Indentation width." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkKeepExtraSpaces) +#: dialogs/indentationconfigwidget.ui:186 +#, fuzzy, kde-format +#| msgid "&Keep extra spaces" +msgid "&Keep extra spaces" +msgstr "За&хоўваць дадатковыя прагалы" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkIndentPaste) +#: dialogs/indentationconfigwidget.ui:193 +#, kde-format +msgid "" +"If this option is selected, pasted code from the clipboard is indented. " +"Triggering the undo-action removes the indentation." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkIndentPaste) +#: dialogs/indentationconfigwidget.ui:196 +#, kde-format +msgid "Adjust indentation of code &pasted from the clipboard" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbKeys) +#: dialogs/indentationconfigwidget.ui:206 +#, kde-format +msgid "Indentation Actions" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackspaceUnindents) +#: dialogs/indentationconfigwidget.ui:212 +#, kde-format +msgid "" +"If this option is selected, the Backspace key decreases the " +"indentation level if the cursor is located in the leading blank space of a " +"line." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackspaceUnindents) +#: dialogs/indentationconfigwidget.ui:215 +#, kde-format +msgid "&Backspace key in leading blank space unindents" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/indentationconfigwidget.ui:225 +#, kde-format +msgid "" +"\n" +"
" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabAdvances) +#: dialogs/indentationconfigwidget.ui:276 +#, kde-format +msgid "" +"If this option is selected, the Tab key always inserts white space so " +"that the next tab position is reached. If the option Insert spaces " +"instead of tabulators in the section Editing is enabled, spaces " +"are inserted; otherwise, a single tabulator is inserted." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabAdvances) +#: dialogs/indentationconfigwidget.ui:279 +#, kde-format +msgid "Always advance to the &next tab position" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabIndents) +#: dialogs/indentationconfigwidget.ui:286 +#, kde-format +msgid "" +"If this option is selected, the Tab key always indents the current " +"line by the number of character positions specified in Indentation width." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabIndents) +#: dialogs/indentationconfigwidget.ui:289 +#, kde-format +msgid "Always increase indentation &level" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabSmart) +#: dialogs/indentationconfigwidget.ui:296 +#, kde-format +msgid "" +"If this option is selected, the Tab key either indents the current " +"line or advances to the next tab position.

If the insertion point is at " +"or before the first non-space character in the line, or if there is a " +"selection, the current line is indented by the number of character positions " +"specified in Indentation width.

If the insertion point is located " +"after the first non-space character in the line and there is no selection, " +"white space is inserted so that the next tab position is reached: if the " +"option Insert spaces instead of tabulators in the section Editing is enabled, spaces are inserted; otherwise, a single tabulator is " +"inserted." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabSmart) +#: dialogs/indentationconfigwidget.ui:299 +#, kde-format +msgid "Increase indentation level if in l&eading blank space" +msgstr "" + +#: dialogs/katedialogs.cpp:185 dialogs/katedialogs.cpp:187 +#, fuzzy, kde-format +#| msgid "Character" +msgid "%v character" +msgid_plural "%v characters" +msgstr[0] "Знак" +msgstr[1] "Знак" +msgstr[2] "Знак" + +#: dialogs/katedialogs.cpp:211 +#, kde-format +msgid "Indentation" +msgstr "" + +#: dialogs/katedialogs.cpp:295 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgid "Auto Completion" +msgstr "Модуль заканчэння словаў" + +#: dialogs/katedialogs.cpp:362 +#, kde-format +msgid "Spellcheck" +msgstr "Спраўдзіць правапіс" + +#: dialogs/katedialogs.cpp:410 dialogs/katedialogs.cpp:417 +#, fuzzy, kde-format +#| msgid "Alert" +msgid "Alt" +msgstr "Трывога" + +#: dialogs/katedialogs.cpp:411 dialogs/katedialogs.cpp:419 +#, kde-format +msgid "Ctrl" +msgstr "" + +#: dialogs/katedialogs.cpp:412 +#, kde-format +msgid "Meta" +msgstr "" + +#: dialogs/katedialogs.cpp:413 dialogs/katedialogs.cpp:421 +#, kde-format +msgid "Ctrl + Alt" +msgstr "" + +#: dialogs/katedialogs.cpp:414 +#, kde-format +msgid "Meta + Alt" +msgstr "" + +#: dialogs/katedialogs.cpp:415 +#, kde-format +msgid "Ctrl + Meta" +msgstr "" + +#: dialogs/katedialogs.cpp:418 +#, fuzzy, kde-format +#| msgid "Comment" +msgid "Cmd" +msgstr "Каментар" + +#: dialogs/katedialogs.cpp:420 +#, kde-format +msgid "Cmd + Alt" +msgstr "" + +#: dialogs/katedialogs.cpp:422 +#, kde-format +msgid "Cmd + Ctrl" +msgstr "" + +#: dialogs/katedialogs.cpp:480 +#, fuzzy, kde-format +#| msgctxt "Language Section" +#| msgid "Configuration" +msgid "Text Navigation" +msgstr "Файлы настаўленняў" + +#: dialogs/katedialogs.cpp:582 +#, fuzzy, kde-format +#| msgid "Character" +msgctxt "Wrap words at (value is at 20 or larger)" +msgid "%v character" +msgid_plural "%v characters" +msgstr[0] "Знак" +msgstr[1] "Знак" +msgstr[2] "Знак" + +#: dialogs/katedialogs.cpp:587 +#, kde-format +msgid "Feature is not active" +msgstr "" + +#: dialogs/katedialogs.cpp:589 +#, fuzzy, kde-format +#| msgid "Disabled Breakpoint" +msgid "Disable Feature" +msgstr "Выключаны пункт спыну" + +#: dialogs/katedialogs.cpp:591 +#, kde-format +msgid "May be handy with Markdown" +msgstr "" + +#: dialogs/katedialogs.cpp:593 +#, kde-format +msgid "Mirror characters, similar but not exactly like auto brackets" +msgstr "" + +#: dialogs/katedialogs.cpp:595 +#, fuzzy, kde-format +#| msgid "Character" +msgid "Non letter character" +msgstr "Знак" + +#: dialogs/katedialogs.cpp:712 +#, kde-format +msgid "Editing" +msgstr "Рэдагаванне" + +#: dialogs/katedialogs.cpp:717 +#, kde-format +msgid "Editing Options" +msgstr "Параметры рэдагавання" + +#: dialogs/katedialogs.cpp:751 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Stata" +msgid "Statusbar" +msgstr "Stata" + +#: dialogs/katedialogs.cpp:753 +#, fuzzy, kde-format +msgid "Off" +msgstr "Выкл" + +#: dialogs/katedialogs.cpp:754 +#, kde-format +msgid "Follow Line Numbers" +msgstr "" + +#: dialogs/katedialogs.cpp:945 dialogs/katedialogs.cpp:950 +#, fuzzy, kde-format +msgid "Appearance" +msgstr "Вонкавы выгляд" + +#: dialogs/katedialogs.cpp:986 +#, kde-format +msgid "" +"%1 backs up unsaved files to \"swap files.\" Swap files allow %1 to recover " +"your work in the case of a system crash. Disabling swap files may cause data " +"loss in case of a system crash." +msgstr "" + +#: dialogs/katedialogs.cpp:1027 +#, kde-format +msgid "Advanced" +msgstr "" + +#: dialogs/katedialogs.cpp:1092 +#, kde-format +msgid "" +"You did not provide a backup suffix or prefix. Using default suffix: '~'" +msgstr "" + +#: dialogs/katedialogs.cpp:1092 +#, kde-format +msgid "No Backup Suffix or Prefix" +msgstr "Без суфіксаў і прэфіксаў рэзервавай копіі" + +#: dialogs/katedialogs.cpp:1227 +#, kde-format +msgid "Open/Save" +msgstr "Адкрыцце/запіс" + +#: dialogs/katedialogs.cpp:1232 +#, kde-format +msgid "File Opening & Saving" +msgstr "Адкрыцце і запіс файлаў" + +#: dialogs/katedialogs.cpp:1255 +#, kde-format +msgid "&Line:" +msgstr "" + +#: dialogs/katedialogs.cpp:1256 +#, kde-format +msgid "Go to line number from clipboard" +msgstr "" + +#: dialogs/katedialogs.cpp:1267 +#, kde-format +msgid "Go to" +msgstr "" + +#: dialogs/katedialogs.cpp:1347 +#, kde-format +msgid "No valid line number found in clipboard" +msgstr "" + +#: dialogs/katedialogs.cpp:1411 +#, fuzzy, kde-format +#| msgid "&Section:" +msgid "Dictionary:" +msgstr "&Раздзел:" + +#: dialogs/katedialogs.cpp:1463 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgid "Enable Auto Reload" +msgstr "Модуль заканчэння словаў" + +#: dialogs/katedialogs.cpp:1466 +#, kde-format +msgid "" +"Reloads and will automatically reload without warning about disk changes " +"from now until you close either the tab or window." +msgstr "" + +#: dialogs/katedialogs.cpp:1471 +#, fuzzy, kde-format +#| msgid "&View Difference" +msgid "View &Difference" +msgstr "Па&казаць адрозненні" + +#: dialogs/katedialogs.cpp:1473 +#, kde-format +msgid "Shows a diff of the changes." +msgstr "" + +#: dialogs/katedialogs.cpp:1478 +#, fuzzy, kde-format +#| msgid "Reloa&d" +msgid "&Reload" +msgstr "&Абнавіць" + +#: dialogs/katedialogs.cpp:1480 +#, fuzzy, kde-format +#| msgid "" +#| "Reload the file from disk. If you have unsaved changes, they will be lost." +msgid "Reloads the file from disk. Unsaved changes will be lost." +msgstr "" +"Перачытаць файл з дыску. Калі вы не запісалі нейкія змены, яны згубяцца." + +#: dialogs/katedialogs.cpp:1484 +#, fuzzy, kde-format +#| msgid "&Reload File" +msgctxt "@action:button closes the opened file" +msgid "&Close File" +msgstr "&Адкрыць файл зноў" + +#: dialogs/katedialogs.cpp:1486 +#, kde-format +msgid "Closes the file, discarding its content." +msgstr "" + +#: dialogs/katedialogs.cpp:1490 +#, fuzzy, kde-format +#| msgid "&Save File As..." +msgctxt "@action" +msgid "&Save As…" +msgstr "&Запісаць файл як..." + +#: dialogs/katedialogs.cpp:1492 +#, kde-format +msgid "Lets you select a location and save the file again." +msgstr "Дазваляе выбраць месца і зноў паспрабаваць запісаць файл." + +#. i18n: ectx: property (text), widget (QPushButton, m_skipBtn) +#: dialogs/katedialogs.cpp:1497 spellcheck/spellcheckbar.ui:143 +#, kde-format +msgid "&Ignore" +msgstr "&Ігнараваць" + +#: dialogs/katedialogs.cpp:1498 +#, fuzzy, kde-format +#| msgid "Ignore the changes. You will not be prompted again." +msgid "Ignores the changes on disk without any action." +msgstr "Ігнараваць змены. Вас больш не патурбуюць такім пытаннем." + +#: dialogs/katedialogs.cpp:1567 swapfile/kateswapdiffcreator.cpp:131 +#, kde-format +msgid "" +"The diff command failed. Please make sure that diff(1) is installed and in " +"your PATH." +msgstr "" +"Немагчыма выканаць загад diff. Праверце правільнасць устаноўкі праграмы " +"diff(1) у вашым шляху пошуку PATH." + +#: dialogs/katedialogs.cpp:1569 swapfile/kateswapdiffcreator.cpp:89 +#: swapfile/kateswapdiffcreator.cpp:99 swapfile/kateswapdiffcreator.cpp:133 +#, kde-format +msgid "Error Creating Diff" +msgstr "Памылка стварэння файла адрозненняў" + +#: dialogs/katedialogs.cpp:1576 swapfile/kateswapdiffcreator.cpp:140 +#, kde-format +msgid "The files are identical." +msgstr "" + +#: dialogs/katedialogs.cpp:1576 swapfile/kateswapdiffcreator.cpp:140 +#, kde-format +msgid "Diff Output" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbCursorMovement) +#: dialogs/navigationconfigwidget.ui:29 +#, kde-format +msgid "Text Cursor Movement" +msgstr "Перасоўванне тэкставага курсора" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkSmartHome) +#: dialogs/navigationconfigwidget.ui:35 +#, kde-format +msgid "" +"When selected, pressing the home key will cause the cursor to skip " +"whitespace and go to the start of a line's text. The same applies for the " +"end key." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkSmartHome) +#: dialogs/navigationconfigwidget.ui:38 +#, kde-format +msgid "Smart ho&me and smart end" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkPagingMovesCursor) +#: dialogs/navigationconfigwidget.ui:45 +#, kde-format +msgid "" +"Selects whether the PageUp and PageDown keys should alter the vertical " +"position of the cursor relative to the top of the view." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkPagingMovesCursor) +#: dialogs/navigationconfigwidget.ui:48 +#, kde-format +msgid "&PageUp/PageDown moves cursor" +msgstr "&PageUp/PageDown перасоўвае курсор" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkCamelCursor) +#: dialogs/navigationconfigwidget.ui:55 +#, kde-format +msgid "" +"Selects whether cursor stops at camel case humps and underscores within a " +"word." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkCamelCursor) +#: dialogs/navigationconfigwidget.ui:58 +#, kde-format +msgid "" +"Stop at 'camelCase' and 'snake_case' subwords when moving the cursor by word" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:79 +#, fuzzy, kde-format +#| msgid "Autocenter cursor (lines):" +msgid "&Autocenter cursor:" +msgstr "Аўтаматычна змяшчаць курсор (радкі) пасярэдзіне:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:89 +#, kde-format +msgid "" +"Sets the number of lines to maintain visible above and below the cursor when " +"possible." +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, spbSwapFileSync) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:92 dialogs/opensaveconfigadvwidget.ui:120 +#: dialogs/opensaveconfigadvwidget.ui:168 +#, kde-format +msgid "Disabled" +msgstr "Выключана" + +#. i18n: ectx: property (suffix), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:95 +#, fuzzy, kde-format +msgid " lines" +msgstr "&Падкрэслены" + +#. i18n: ectx: property (title), widget (QGroupBox, cbNavigationMisc) +#: dialogs/navigationconfigwidget.ui:120 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Cisco" +msgid "Misc" +msgstr "Cisco" + +#. i18n: ectx: property (text), widget (QLabel, lblTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:128 +#, fuzzy, kde-format +#| msgid "Selection Mode" +msgid "Text selection mode:" +msgstr "Рэжым вылучэння" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:139 inputmode/katenormalinputmode.cpp:64 +#: mode/katemodemanager.cpp:162 +#, fuzzy, kde-format +#| msgid "Normal" +msgid "Normal" +msgstr "Звычайны" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:144 +#, kde-format +msgid "Persistent" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollPastEnd) +#: dialogs/navigationconfigwidget.ui:167 +#, kde-format +msgid "Allow scrolling past the end of the document" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackspaceRemoveComposed) +#: dialogs/navigationconfigwidget.ui:174 +#, kde-format +msgid "" +"When selected, composed characters are removed with their diacritics instead " +"of only removing the base character. This is useful for Indic locales." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackspaceRemoveComposed) +#: dialogs/navigationconfigwidget.ui:177 +#, kde-format +msgid "Backspace key removes character’s base with its diacritics" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbCycleBookmarks) +#: dialogs/navigationconfigwidget.ui:184 +#, fuzzy, kde-format +#| msgid "Go to the previous bookmark." +msgid "Allow to cycle through bookmarks" +msgstr "Ісці да папярэдняй закладкі." + +#. i18n: ectx: property (title), widget (QGroupBox, gbMulticursor) +#: dialogs/navigationconfigwidget.ui:194 +#, fuzzy, kde-format +msgid "Multicursor" +msgstr "&Ад курсора" + +#. i18n: ectx: property (text), widget (QLabel, lblMulticursormodifiers) +#: dialogs/navigationconfigwidget.ui:200 +#, kde-format +msgid "Multiple Cursor Modifiers" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoReloadVersionControl) +#: dialogs/opensaveconfigadvwidget.ui:34 +#, kde-format +msgid "Auto reload files in version control" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoReloadOnExternalChanges) +#: dialogs/opensaveconfigadvwidget.ui:41 +#, kde-format +msgid "Auto reload files on external changes" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/opensaveconfigadvwidget.ui:48 +#, kde-format +msgid "Write a backup file on save for:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackupLocalFiles) +#: dialogs/opensaveconfigadvwidget.ui:55 +#, kde-format +msgid "" +"If this option is enabled, backups for local files will be created when " +"saving." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackupLocalFiles) +#: dialogs/opensaveconfigadvwidget.ui:58 +#, fuzzy, kde-format +#| msgid "&Remote files" +msgid "&Local files" +msgstr "Для &аддаленых файлаў" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackupRemoteFiles) +#: dialogs/opensaveconfigadvwidget.ui:65 +#, kde-format +msgid "" +"If this option is enabled, backups for remote files will be created when " +"saving." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackupRemoteFiles) +#: dialogs/opensaveconfigadvwidget.ui:68 +#, kde-format +msgid "&Remote files" +msgstr "Для &аддаленых файлаў" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/opensaveconfigadvwidget.ui:75 +#, kde-format +msgid "Prefix for backup files:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtBackupPrefix) +#: dialogs/opensaveconfigadvwidget.ui:85 +#, kde-format +msgid "Enter the prefix to prepend to the backup file names." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/opensaveconfigadvwidget.ui:92 +#, kde-format +msgid "Suffix for backup files:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtBackupSuffix) +#: dialogs/opensaveconfigadvwidget.ui:102 +#, kde-format +msgid "Enter the suffix to append to the backup file names." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:109 +#, fuzzy, kde-format +#| msgid "New Filetype" +msgid "Swap file mode:" +msgstr "Новы тып файлаў" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:125 +#, kde-format +msgid "Enabled, Store In Default Directory" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:130 +#, kde-format +msgid "Enabled, Store In Custom Directory" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapDirectory) +#: dialogs/opensaveconfigadvwidget.ui:138 +#, fuzzy, kde-format +#| msgid "New Filetype" +msgid "Store swap files in:" +msgstr "Новы тып файлаў" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapFileSync) +#: dialogs/opensaveconfigadvwidget.ui:158 +#, fuzzy, kde-format +#| msgid "New Filetype" +msgid "Save swap files every:" +msgstr "Новы тып файлаў" + +#. i18n: ectx: property (suffix), widget (QSpinBox, spbSwapFileSync) +#: dialogs/opensaveconfigadvwidget.ui:171 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Bash" +msgid "s" +msgstr "Bash" + +#. i18n: ectx: property (text), widget (QLabel, lblExplanatory) +#: dialogs/opensaveconfigadvwidget.ui:196 +#, kde-format +msgid "" +"This string is located in katedialogs.cpp in KateSaveConfigTab's constructor." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkEditorConfig) +#: dialogs/opensaveconfigadvwidget.ui:209 +#, fuzzy, kde-format +#| msgid "Do not use config file" +msgid "Honor settings in .editorconfig file" +msgstr "Не выкарыстоўваць файл настаўленняў" + +#. i18n: ectx: property (text), widget (QCheckBox, chkUseFirstLineAsDocName) +#: dialogs/opensaveconfigadvwidget.ui:229 +#, fuzzy, kde-format +msgid "Use first line of untitled documents for document name" +msgstr "Закрыць бягучы дакумент" + +#. i18n: ectx: property (title), widget (QGroupBox, gbFileFormat) +#: dialogs/opensaveconfigwidget.ui:29 +#, kde-format +msgid "File Format" +msgstr "Фармат файла" + +#. i18n: ectx: property (text), widget (QLabel, lblEncoding) +#: dialogs/opensaveconfigwidget.ui:40 +#, kde-format +msgid "&Encoding:" +msgstr "&Знаказбор:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncoding) +#: dialogs/opensaveconfigwidget.ui:50 +#, kde-format +msgid "" +"This defines the standard encoding to use to open/save files, if not changed " +"in the open/save dialog or by using a command line option." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblEncodingDetection) +#: dialogs/opensaveconfigwidget.ui:57 +#, fuzzy, kde-format +#| msgid "&Encoding:" +msgid "&Encoding detection:" +msgstr "&Знаказбор:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncodingDetection) +#: dialogs/opensaveconfigwidget.ui:67 +#, kde-format +msgid "" +"if neither the encoding chosen as standard above, nor the encoding specified " +"in the open/save dialog, nor the encoding specified on command line match " +"the content of the file, this detection will be run." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblEncodingDetection2) +#: dialogs/opensaveconfigwidget.ui:74 +#, fuzzy, kde-format +#| msgid "&Encoding:" +msgid "&Fallback encoding:" +msgstr "&Знаказбор:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncodingFallback) +#: dialogs/opensaveconfigwidget.ui:84 +#, kde-format +msgid "" +"This defines the fallback encoding to try for opening files if neither the " +"encoding chosen as standard above, nor the encoding specified in the open/" +"save dialog, nor the encoding specified on command line match the content of " +"the file. Before this is used, an attempt will be made to determine the " +"encoding to use by looking for a byte order mark at start of file: if one is " +"found, the right Unicode encoding will be chosen; otherwise encoding " +"detection will run, if both fail the fallback encoding will be tried." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblEOL) +#: dialogs/opensaveconfigwidget.ui:91 +#, fuzzy, kde-format +#| msgid "End &of line:" +msgid "E&nd of line:" +msgstr "Канец &радка:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:102 +#, kde-format +msgid "UNIX" +msgstr "UNIX" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:107 +#, kde-format +msgid "DOS/Windows" +msgstr "DOS/Windows" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:112 +#, kde-format +msgid "Macintosh" +msgstr "Macintosh" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkDetectEOL) +#: dialogs/opensaveconfigwidget.ui:122 +#, kde-format +msgid "" +"If this option is enabled the editor will autodetect the end of line type. " +"The first found end of line type will be used for the whole file." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDetectEOL) +#: dialogs/opensaveconfigwidget.ui:125 +#, fuzzy, kde-format +#| msgid "&Automatic end of line detection" +msgid "A&utomatic end of line detection" +msgstr "&Аўтаматычнае вызначэнне канца радка" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkEnableBOM) +#: dialogs/opensaveconfigwidget.ui:132 +#, kde-format +msgid "" +"The byte order mark is a special sequence at the beginning of Unicode " +"encoded documents. It helps editors to open text documents with the correct " +"Unicode encoding. The byte order mark is not visible in the displayed " +"document." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkEnableBOM) +#: dialogs/opensaveconfigwidget.ui:135 +#, kde-format +msgid "Enable byte order mark (BOM)" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/opensaveconfigwidget.ui:142 +#, kde-format +msgid "Line length limit:" +msgstr "" + +#. i18n: ectx: property (specialValueText), widget (QSpinBox, lineLengthLimit) +#: dialogs/opensaveconfigwidget.ui:152 +#, fuzzy, kde-format +msgid "Unlimited" +msgstr "Безназоўны" + +#. i18n: ectx: property (title), widget (QGroupBox, gbCleanups) +#: dialogs/opensaveconfigwidget.ui:168 +#, fuzzy, kde-format +#| msgid "Automatic Cleanups on Load/Save" +msgid "Automatic Cleanups on Save" +msgstr "Аўтаматычнае ачышчэнне пры Адкрыцці/Запісе" + +#. i18n: ectx: property (whatsThis), widget (QLabel, lblRemoveTrailingSpaces) +#. i18n: ectx: property (whatsThis), widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:176 dialogs/opensaveconfigwidget.ui:189 +#, kde-format +msgid "" +"Depending on the choice, trailing spaces are removed when saving a document, " +"either in the entire document or only of modified lines." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:179 +#, fuzzy, kde-format +#| msgid "Re&move trailing spaces" +msgid "Re&move trailing spaces:" +msgstr "&Прыбіраць канцавыя прагалы" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, spbAutoSaveInterval) +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/opensaveconfigwidget.ui:193 dialogs/opensaveconfigwidget.ui:270 +#: dialogs/textareaappearanceconfigwidget.ui:104 +#, kde-format +msgid "Never" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:198 +#, fuzzy, kde-format +#| msgid "Scroll Line Up" +msgid "On Modified Lines" +msgstr "Перайсці на радок вышэй" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:203 +#, kde-format +msgid "In Entire Document" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkNewLineAtEof) +#: dialogs/opensaveconfigwidget.ui:226 +#, kde-format +msgid "" +"On save, a line break is appended to the document if not already present. " +"The line break is visible after reloading the file." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkNewLineAtEof) +#: dialogs/opensaveconfigwidget.ui:229 +#, kde-format +msgid "Append newline at end of file on save" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbAutoSave) +#: dialogs/opensaveconfigwidget.ui:239 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgid "Enable Auto Save (local files only)" +msgstr "Модуль заканчэння словаў" + +#. i18n: ectx: property (text), widget (QCheckBox, cbAutoSaveOnFocus) +#: dialogs/opensaveconfigwidget.ui:254 +#, kde-format +msgid "Auto save document when the active document is losing focus" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/opensaveconfigwidget.ui:263 +#, kde-format +msgid "Auto save interval:" +msgstr "" + +#. i18n: ectx: property (suffix), widget (QSpinBox, spbAutoSaveInterval) +#: dialogs/opensaveconfigwidget.ui:273 +#, kde-format +msgid " seconds" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowHighlightingMode) +#: dialogs/statusbarconfigwidget.ui:19 +#, fuzzy, kde-format +#| msgid "Kate Syntax Highlighting Parser" +msgid "Show highlighting mode" +msgstr "Падсвятляльнік сінтаксісу Kate" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowInputMode) +#: dialogs/statusbarconfigwidget.ui:26 +#, fuzzy, kde-format +#| msgid "Show &icon border" +msgid "Show input mode" +msgstr "Паказваць мяжу &значкі" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowActiveDictionary) +#: dialogs/statusbarconfigwidget.ui:33 +#, fuzzy, kde-format +msgid "Show active dictionary" +msgstr "Выбраць рэдактар..." + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowTabSetting) +#: dialogs/statusbarconfigwidget.ui:40 +#, fuzzy, kde-format +#| msgid "&Show tabulators" +msgid "Show tab setting" +msgstr "&Паказваць знакі водступаў" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowLineColumn) +#: dialogs/statusbarconfigwidget.ui:47 +#, fuzzy, kde-format +#| msgid "Show &Line Numbers" +msgid "Show line column" +msgstr "Паказаць нумары &радкоў" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowEncoding) +#: dialogs/statusbarconfigwidget.ui:54 +#, fuzzy, kde-format +#| msgid "E&ncoding" +msgid "Show File Encoding" +msgstr "&Знаказбор:" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowEOL) +#: dialogs/statusbarconfigwidget.ui:61 +#, kde-format +msgid "Show Line Ending Type" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/textareaappearanceconfigwidget.ui:28 +#, fuzzy, kde-format +msgid "Editor font:" +msgstr "Утулкі" + +#. i18n: ectx: property (text), widget (QLabel, lblLineHeight) +#: dialogs/textareaappearanceconfigwidget.ui:48 +#, kde-format +msgid "&Line Height Multiplier:" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QDoubleSpinBox, spbLineHeightMultiplier) +#: dialogs/textareaappearanceconfigwidget.ui:58 +#, kde-format +msgid "" +"This value will be multiplied with the font's default line height. A value " +"of 1.0 means that the default height will be used." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/textareaappearanceconfigwidget.ui:93 +#, fuzzy, kde-format +#| msgid "&Ignore Changes" +msgid "Show whitespace indicators:" +msgstr "&Ігнараваць змены" + +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/textareaappearanceconfigwidget.ui:109 +#, fuzzy, kde-format +#| msgid "Select to End of Line" +msgid "At the end of a line" +msgstr "Вылучыць да канца радка" + +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/textareaappearanceconfigwidget.ui:114 +#, fuzzy, kde-format +msgid "Always" +msgstr "Заўсёды" + +#. i18n: ectx: property (text), widget (QLabel, lbMarkerDescription) +#: dialogs/textareaappearanceconfigwidget.ui:122 +#, fuzzy, kde-format +msgid "Whitespace indicator si&ze:" +msgstr "Падсвечванне" + +#. i18n: ectx: property (whatsThis), widget (QSlider, sliSetMarkerSize) +#: dialogs/textareaappearanceconfigwidget.ui:138 +#, kde-format +msgid "Size of the visible highlight marker." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/textareaappearanceconfigwidget.ui:166 +#, fuzzy, kde-format +#| msgid "&Show tabulators" +msgid "Show &tab indicators:" +msgstr "&Паказваць знакі водступаў" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowTabs) +#: dialogs/textareaappearanceconfigwidget.ui:176 +#, kde-format +msgid "" +"The editor will display a symbol to indicate the presence of a tab in the " +"text." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/textareaappearanceconfigwidget.ui:202 +#, fuzzy, kde-format +msgid "Bracket matching:" +msgstr "Падсветка дужак:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowWholeBracketExpression) +#: dialogs/textareaappearanceconfigwidget.ui:209 +#, kde-format +msgid "" +"If this is enabled, the range between the selected matching brackets will be " +"highlighted." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowWholeBracketExpression) +#: dialogs/textareaappearanceconfigwidget.ui:212 +#, kde-format +msgid "Highlight range between selected brackets" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:219 +#, kde-format +msgid "Show the matching open bracket and lines adjacent to it for context" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:222 +#, kde-format +msgid "" +"If this is enabled, a preview of the lines near a matching open bracket is " +"shown. This can help in quickly determining the context of a closing " +"bracket, especially in long function/class declarations and deeply nested if " +"blocks" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:225 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Show preview of matching open bracket" +msgstr "Друкаваць гэты дакумент." + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:232 +#, fuzzy, kde-format +#| msgid "Select to Matching Bracket" +msgid "Flash matching brackets" +msgstr "Вылучыць да адпаведнай дужкі" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:235 +#, kde-format +msgid "" +"If this is enabled, matching brackets are animated for better visibility." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:238 +#, kde-format +msgid "Flash matching bracket when cursor moves to other bracket in pair" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/textareaappearanceconfigwidget.ui:261 +#, kde-format +msgid "Counts:" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowWordCount) +#: dialogs/textareaappearanceconfigwidget.ui:268 +#, kde-format +msgid "Show/hide word count in status bar" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowWordCount) +#: dialogs/textareaappearanceconfigwidget.ui:271 view/katestatusbar.cpp:258 +#, kde-format +msgid "Show word count" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowLineCount) +#: dialogs/textareaappearanceconfigwidget.ui:278 +#, kde-format +msgid "Show/hide line count in status bar" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowLineCount) +#: dialogs/textareaappearanceconfigwidget.ui:281 view/katestatusbar.cpp:255 +#, fuzzy, kde-format +#| msgid "Show &Line Numbers" +msgid "Show line count" +msgstr "Паказаць нумары &радкоў" + +#. i18n: ectx: property (text), widget (QLabel, label_25) +#: dialogs/textareaappearanceconfigwidget.ui:304 +#, fuzzy, kde-format +#| msgid "Go to Line" +msgid "Fold first line:" +msgstr "Ісці да радка" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkFoldFirstLine) +#: dialogs/textareaappearanceconfigwidget.ui:317 +#, kde-format +msgid "" +"When this setting is enabled, the editor view automatically folds\n" +"comment blocks that start on the first line of the document. This is\n" +"helpful to hide license headers which are commonly placed at the\n" +"beginning of a file." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbxWordWrap) +#: dialogs/textareaappearanceconfigwidget.ui:337 +#, fuzzy, kde-format +msgid "Dynamic Word Wrap:" +msgstr "Маркеры пераносу радкоў:" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDynWrapAtStaticMarker) +#: dialogs/textareaappearanceconfigwidget.ui:344 +#, fuzzy, kde-format +#| msgid "S&elected Background Color..." +msgid "Wrap dynamically at static word wrap marker" +msgstr "В&ылучаны фонавы колер..." + +#. i18n: ectx: property (text), widget (QCheckBox, chkDynWrapAnywhere) +#: dialogs/textareaappearanceconfigwidget.ui:351 +#, kde-format +msgid "Disregard word boundaries for dynamic wrapping" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblDynamicWordWrapIndicators) +#: dialogs/textareaappearanceconfigwidget.ui:358 +#, kde-format +msgid "D&ynamic word wrap indicators:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbDynamicWordWrapIndicator) +#: dialogs/textareaappearanceconfigwidget.ui:368 +#, kde-format +msgid "Choose when the Dynamic Word Wrap Indicators should be displayed." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/textareaappearanceconfigwidget.ui:391 +#, fuzzy, kde-format +#| msgid "Header Properties" +msgid "I&ndent wrapped lines:" +msgstr "Уласцівасці загалоўка" + +#. i18n: ectx: property (text), widget (QLabel, lblDynamicWordWrapIndicators_2) +#: dialogs/textareaappearanceconfigwidget.ui:408 +#, fuzzy, kde-format +#| msgid "Header Properties" +msgid "&Don't indent lines wider than:" +msgstr "Уласцівасці загалоўка" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbDynamicWordWrapDepth) +#: dialogs/textareaappearanceconfigwidget.ui:424 +#, no-c-format, kde-format +msgid "" +"

Enables the start of dynamically wrapped lines to be aligned vertically " +"to the indentation level of the first line. This can help to make code and " +"markup more readable.

Additionally, this allows you to set a maximum " +"width of the screen, as a percentage, after which dynamically wrapped lines " +"will no longer be vertically aligned. For example, at 50%, lines whose " +"indentation levels are deeper than 50% of the width of the screen will not " +"have vertical alignment applied to subsequent wrapped lines.

" +msgstr "" + +#. i18n: ectx: property (suffix), widget (QSpinBox, sbDynamicWordWrapDepth) +#: dialogs/textareaappearanceconfigwidget.ui:427 +#, fuzzy, no-c-format, kde-format +#| msgid "% of View Width" +msgid "% of View Width" +msgstr "% ад шырыні прагляду" + +#. i18n: ectx: property (text), widget (QLabel, label_24) +#: dialogs/textareaappearanceconfigwidget.ui:443 +#, fuzzy, kde-format +#| msgid "Header Properties" +msgid "Show i&ndentation lines:" +msgstr "Уласцівасці загалоўка" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowIndentationLines) +#: dialogs/textareaappearanceconfigwidget.ui:453 +#, kde-format +msgid "" +"If this is enabled, the editor will display vertical lines to help identify " +"indent lines." +msgstr "" + +#: document/katebuffer.cpp:135 +#, fuzzy, kde-format +#| msgid "New Filetype" +msgctxt "short translation, user created new file" +msgid "New file" +msgstr "Новы тып файлаў" + +#: document/katedocument.cpp:223 +#, fuzzy, kde-format +#| msgid "Move to End of Document" +msgid "Auto Reload Document" +msgstr "Ісці ў канец дакумента" + +#: document/katedocument.cpp:225 +#, kde-format +msgid "Automatic reload the document when it was changed on disk" +msgstr "" + +#: document/katedocument.cpp:2307 +#, fuzzy, kde-format +#| msgid "" +#| "The file %1 could not be loaded, as it was not possible to read from it.\n" +#| "\n" +#| "Check if you have read access to this file." +msgid "" +"The file %1 could not be loaded, as it was not possible to read from it.
Check if you have read access to this file." +msgstr "" +"Немагчыма прачытаць файл %1.\n" +"\n" +"Праверце правы доступу для гэтага файла." + +#: document/katedocument.cpp:2312 +#, kde-format +msgctxt "translators: you can also translate 'Try Again' with 'Reload'" +msgid "Try Again" +msgstr "" + +#: document/katedocument.cpp:2316 document/katedocument.cpp:6534 +#, kde-format +msgid "&Close" +msgstr "" + +#: document/katedocument.cpp:2317 document/katedocument.cpp:6535 +#, kde-format +msgctxt "Close the message being displayed" +msgid "Close message" +msgstr "" + +#: document/katedocument.cpp:2449 +#, kde-format +msgid "" +"The file %1 was opened with %2 encoding but contained invalid characters." +"
It is set to read-only mode, as saving might destroy its content.
Either reopen the file with the correct encoding chosen or enable the read-" +"write mode again in the tools menu to be able to edit it." +msgstr "" + +#: document/katedocument.cpp:2468 +#, kde-format +msgid "" +"The file %1 was opened and contained lines longer than the configured Line " +"Length Limit (%2 characters).
The longest of those lines was %3 " +"characters long
Those lines were wrapped and the document is set to read-" +"only mode, as saving will modify its content." +msgstr "" + +#: document/katedocument.cpp:2475 +#, kde-format +msgid "Temporarily raise limit and reload file" +msgstr "" + +#: document/katedocument.cpp:2478 +#, kde-format +msgid "Close" +msgstr "" + +#: document/katedocument.cpp:2505 +#, kde-format +msgid "" +"Do you really want to save this unmodified file? You could overwrite changed " +"data in the file on disk." +msgstr "" +"Вы сапраўды хочаце запісаць зменены файл? Вы можаце згубіць старыя данні, " +"запісаныя на дыску." + +#: document/katedocument.cpp:2506 +#, kde-format +msgid "Trying to Save Unmodified File" +msgstr "Спроба запісу нязмененага файла" + +#: document/katedocument.cpp:2507 document/katedocument.cpp:2518 +#: document/katedocument.cpp:2534 +#, kde-format +msgid "Save Nevertheless" +msgstr "Усё роўна запісаць!" + +#: document/katedocument.cpp:2516 +#, kde-format +msgid "" +"Do you really want to save this file? Both your open file and the file on " +"disk were changed. There could be some data lost." +msgstr "" +"Вы сапраўды хочаце запісаць гэты файл? І адкрыты файл, і яго дыскавая копія " +"былі змененыя з часу адкрыцця. Вы можаце згубіць карысную інфармацыю." + +#: document/katedocument.cpp:2517 document/katedocument.cpp:2533 +#: document/katedocument.cpp:2853 syntax/katethemeconfig.cpp:1218 +#: syntax/katethemeconfig.cpp:1376 +#, kde-format +msgid "Possible Data Loss" +msgstr "Магчымая згуба інфармацыі" + +#: document/katedocument.cpp:2531 +#, fuzzy, kde-format +#| msgid "" +#| "The selected encoding cannot encode every unicode character in this " +#| "document. Do you really want to save it? There could be some data lost." +msgid "" +"The selected encoding cannot encode every Unicode character in this " +"document. Do you really want to save it? There could be some data lost." +msgstr "" +"Выбраны знаказбор не змяшчае ўсіх знакаў, неабходных для кадавання тэксту " +"гэтага дакумента. Вы сапраўды хочаце запісаць гэты файл на дыск? Вы можаце " +"згубіць карыстную інфармацыю." + +#: document/katedocument.cpp:2601 +#, fuzzy, kde-format +#| msgid "" +#| "The document could not be saved, as it was not possible to write to %1.\n" +#| "\n" +#| "Check that you have write access to this file or that enough disk space " +#| "is available." +msgid "" +"The document could not be saved, as it was not possible to write to %1.\n" +"Check that you have write access to this file or that enough disk space is " +"available.\n" +"The original file may be lost or damaged. Don't quit the application until " +"the file is successfully written." +msgstr "" +"Немагчыма запісаць дакумент, з-за бракавання правоў на запіс у %1.\n" +"\n" +"Праверце правы доступу для гэтага файла і наяўнасць вольнай дыскавай " +"прасторы." + +#: document/katedocument.cpp:2722 +#, kde-format +msgid "" +"For file %1 no backup copy could be created before saving. If an error " +"occurs while saving, you might lose the data of this file. A reason could be " +"that the media you write to is full or the directory of the file is read-" +"only for you." +msgstr "" + +#: document/katedocument.cpp:2726 +#, kde-format +msgid "Failed to create backup copy." +msgstr "" + +#: document/katedocument.cpp:2727 +#, fuzzy, kde-format +msgid "Try to Save Nevertheless" +msgstr "Усё роўна запісаць!" + +#: document/katedocument.cpp:2852 +#, kde-format +msgid "Do you really want to continue to close this file? Data loss may occur." +msgstr "" +"Вы сапраўды хочаце закрыць гэты файл? Вы можаце згубіць карысную інфармацыю." + +#: document/katedocument.cpp:2854 +#, kde-format +msgid "Close Nevertheless" +msgstr "Усё роўна закрыць!" + +#: document/katedocument.cpp:4641 +#, fuzzy, kde-format +msgid "Untitled (%1)" +msgstr "Безназоўны" + +#: document/katedocument.cpp:4643 +#, fuzzy, kde-format +msgid "Untitled" +msgstr "Безназоўны" + +#: document/katedocument.cpp:4820 document/katedocument.cpp:5051 +#: document/katedocument.cpp:5061 document/katedocument.cpp:5862 +#: document/katedocument.cpp:6049 +#, kde-format +msgid "Save File" +msgstr "Запісаць файл" + +#: document/katedocument.cpp:4823 +#, kde-format +msgid "Save failed" +msgstr "Немагчыма запісаць" + +#: document/katedocument.cpp:5072 +#, fuzzy, kde-format +#| msgid "Save File" +msgid "Save Copy of File" +msgstr "Запісаць файл" + +#: document/katedocument.cpp:5084 +#, kde-format +msgid "" +"The document could not be saved, as it was not possible to write to %1.\n" +"\n" +"Check that you have write access to this file or that enough disk space is " +"available." +msgstr "" +"Немагчыма запісаць дакумент, з-за бракавання правоў на запіс у %1.\n" +"\n" +"Праверце правы доступу для гэтага файла і наяўнасць вольнай дыскавай " +"прасторы." + +#: document/katedocument.cpp:5376 +#, kde-format +msgid "" +"Using deprecated modeline 'remove-trailing-space'. Please replace with " +"'remove-trailing-spaces modified;', see https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" +msgstr "" + +#: document/katedocument.cpp:5382 +#, kde-format +msgid "" +"Using deprecated modeline 'replace-trailing-space-save'. Please replace with " +"'remove-trailing-spaces all;', see https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" +msgstr "" + +#: document/katedocument.cpp:5696 +#, fuzzy, kde-format +#| msgid "The file '%1' was modified by another program." +msgid "The file '%1' was modified on disk." +msgstr "Файл '%1' зменены іншай праграмай." + +#: document/katedocument.cpp:5698 +#, fuzzy, kde-format +#| msgid "The file '%1' was deleted by another program." +msgid "The file '%1' was deleted or moved on disk." +msgstr "Файл '%1' выдалены іншай праграмай." + +#: document/katedocument.cpp:6034 +#, kde-format +msgid "" +"The document \"%1\" has been modified.\n" +"Do you want to save your changes or discard them?" +msgstr "" + +#: document/katedocument.cpp:6037 +#, kde-format +msgid "Close Document" +msgstr "" + +#: document/katedocument.cpp:6148 +#, kde-format +msgid "The file %2 is still loading." +msgstr "" + +#: document/katedocument.cpp:6153 +#, kde-format +msgid "&Abort Loading" +msgstr "" + +#: inputmode/katenormalinputmode.cpp:74 +#, kde-format +msgid "OVERWRITE" +msgstr "" + +#: inputmode/katenormalinputmode.cpp:74 +#, kde-format +msgid "INSERT" +msgstr "" + +#: inputmode/katenormalinputmodefactory.cpp:29 +#, fuzzy, kde-format +#| msgid "Normal Text" +msgid "Normal Mode" +msgstr "Звычайны тэкст" + +#: inputmode/kateviinputmode.cpp:31 +#, kde-format +msgctxt "The INSERT mode of VI" +msgid "VI: INSERT" +msgstr "" + +#: inputmode/kateviinputmode.cpp:34 +#, fuzzy, kde-format +#| msgid " NORM " +msgctxt "The NORMAL mode of VI" +msgid "VI: NORMAL" +msgstr " ЗВЫЧ " + +#: inputmode/kateviinputmode.cpp:37 +#, kde-format +msgid "VI: VISUAL" +msgstr "" + +#: inputmode/kateviinputmode.cpp:40 +#, kde-format +msgid "VI: VISUAL BLOCK" +msgstr "" + +#: inputmode/kateviinputmode.cpp:43 +#, kde-format +msgid "VI: VISUAL LINE" +msgstr "" + +#: inputmode/kateviinputmode.cpp:46 +#, kde-format +msgid "VI: REPLACE" +msgstr "" + +#: inputmode/kateviinputmode.cpp:146 +#, kde-format +msgid "vi-mode" +msgstr "" + +#: inputmode/kateviinputmode.cpp:159 +#, fuzzy, kde-format +#| msgid "E&ncoding" +msgid "recording" +msgstr "&Знаказбор:" + +#: inputmode/kateviinputmodefactory.cpp:38 utils/kateglobal.cpp:88 +#: vimode/config/configtab.cpp:237 +#, kde-format +msgid "Vi Input Mode" +msgstr "" + +#: mode/katemodeconfigpage.cpp:46 +#, kde-format +msgid "" +msgstr "" + +#: mode/katemodeconfigpage.cpp:58 +#, fuzzy, kde-format +#| msgid "Use Default Style" +msgid "Use Default" +msgstr "Выкарыстоўваць прадвызначаны стыль" + +#: mode/katemodeconfigpage.cpp:99 mode/katemodeconfigpage.cpp:241 +#, kde-format +msgid "Properties of %1" +msgstr "Уласцівасці %1" + +#: mode/katemodeconfigpage.cpp:178 +#, kde-format +msgid "New Filetype" +msgstr "Новы тып файлаў" + +#: mode/katemodeconfigpage.cpp:293 +#, kde-format +msgid "" +"Select the MimeTypes you want for this file type.\n" +"Please note that this will automatically edit the associated file extensions " +"as well." +msgstr "" +"Выберыце тыпы MIME для гэтага тыпу файлаў.\n" +"Улічвайце, што гэтае дзеянне дадаткова аўтаматычна зменіць асацыяваныя " +"пашырэнні файлаў." + +#: mode/katemodeconfigpage.cpp:295 +#, kde-format +msgid "Select Mime Types" +msgstr "Выбар тыпаў MIME" + +#: mode/katemodeconfigpage.cpp:312 +#, fuzzy, kde-format +#| msgid "&Filetype" +msgid "Modes && Filetypes" +msgstr "Тып &файла" + +#: mode/katemodemenulist.cpp:138 +#, fuzzy, kde-format +#| msgid "I-Search:" +msgctxt "@info:placeholder" +msgid "Search…" +msgstr "Паступовы пошук:" + +#: mode/katemodemenulist.cpp:140 +#, kde-format +msgctxt "ToolTip of the search bar of modes of syntax highlighting" +msgid "" +"Search for syntax highlighting modes by language name or file extension (for " +"example, C++ or .cpp)" +msgstr "" + +#: mode/katemodemenulist.cpp:560 +#, kde-format +msgctxt "A search yielded no results" +msgid "No items matching your search" +msgstr "" + +#: mode/katemodemenulist.cpp:1087 +#, fuzzy, kde-format +#| msgid "Previous Incremental Search Match" +msgctxt "" +"Title (in singular) of the best result in an item search. Please, that the " +"translation doesn't have more than 34 characters, since the menu where it's " +"displayed is small and fixed." +msgid "Best Search Match" +msgstr "Папярэдні адпаведнік умовам паступовага пошуку" + +#: mode/katemodemenulist.cpp:1092 +#, fuzzy, kde-format +#| msgid "Previous Incremental Search Match" +msgctxt "" +"Title (in plural) of the best results in an item search. Please, that the " +"translation doesn't have more than 34 characters, since the menu where it's " +"displayed is small and fixed." +msgid "Best Search Matches" +msgstr "Папярэдні адпаведнік умовам паступовага пошуку" + +#: printing/printconfigwidgets.cpp:36 +#, kde-format +msgid "Te&xt Settings" +msgstr "Настаўленні тэ&ксту" + +#: printing/printconfigwidgets.cpp:40 +#, fuzzy, kde-format +#| msgid "Print &line numbers" +msgid "Print line &numbers" +msgstr "Друкаваць нумары &радкоў" + +#: printing/printconfigwidgets.cpp:43 +#, fuzzy, kde-format +#| msgid "Print &line numbers" +msgid "Print &legend" +msgstr "Друкаваць нумары &радкоў" + +#: printing/printconfigwidgets.cpp:46 +#, kde-format +msgid "Don't print folded code" +msgstr "" + +#: printing/printconfigwidgets.cpp:54 +#, kde-format +msgid "" +"

If enabled, line numbers will be printed on the left side of the page(s)." +"

" +msgstr "" +"

Калі ўключана, на левым баку аркуша паперы будуць друкавацца нумары " +"радкоў.

" + +#: printing/printconfigwidgets.cpp:56 +#, kde-format +msgid "" +"

Print a box displaying typographical conventions for the document type, " +"as defined by the syntax highlighting being used.

" +msgstr "" + +#: printing/printconfigwidgets.cpp:116 +#, kde-format +msgid "Hea&der && Footer" +msgstr "" + +#: printing/printconfigwidgets.cpp:123 +#, kde-format +msgid "Pr&int header" +msgstr "Др&укаваць загаловак" + +#: printing/printconfigwidgets.cpp:125 +#, kde-format +msgid "Pri&nt footer" +msgstr "" + +#: printing/printconfigwidgets.cpp:131 +#, kde-format +msgid "Header/footer font:" +msgstr "" + +#: printing/printconfigwidgets.cpp:137 +#, kde-format +msgid "Header Properties" +msgstr "Уласцівасці загалоўка" + +#: printing/printconfigwidgets.cpp:141 +#, kde-format +msgid "&Format:" +msgstr "&Фармат:" + +#: printing/printconfigwidgets.cpp:163 printing/printconfigwidgets.cpp:209 +#, kde-format +msgid "Colors:" +msgstr "Колеры:" + +#: printing/printconfigwidgets.cpp:170 printing/printconfigwidgets.cpp:216 +#, kde-format +msgid "Foreground:" +msgstr "Колер тэксту:" + +#: printing/printconfigwidgets.cpp:175 +#, kde-format +msgid "Bac&kground" +msgstr "Фо&н" + +#: printing/printconfigwidgets.cpp:181 +#, kde-format +msgid "Footer Properties" +msgstr "" + +#: printing/printconfigwidgets.cpp:186 +#, kde-format +msgid "For&mat:" +msgstr "Фар&мат:" + +#: printing/printconfigwidgets.cpp:221 +#, kde-format +msgid "&Background" +msgstr "&Фон" + +#: printing/printconfigwidgets.cpp:250 +#, kde-format +msgid "

Format of the page header. The following tags are supported:

" +msgstr "" + +#: printing/printconfigwidgets.cpp:252 +#, fuzzy, kde-format +#| msgid "" +#| "
  • %u: current user name
  • %d: complete date/" +#| "time in short format
  • %D: complete date/time in long " +#| "format
  • %h: current time
  • %y: current " +#| "date in short format
  • %Y: current date in long format
  • %f: file name
  • %U: full URL of the " +#| "document
  • %p: page number

Note: Do " +#| "not use the '|' (vertical bar) character." +msgid "" +"
  • %u: current user name
  • %d: complete date/" +"time in short format
  • %D: complete date/time in long format
  • %h: current time
  • %y: current date in short " +"format
  • %Y: current date in long format
  • %f: " +"file name
  • %U: full URL of the document
  • %p: " +"page number
  • %P: total amount of pages

" +msgstr "" +"
  • %u: імя карыстальніка
  • %d: поўная дата і " +"час у скарочаным фармаце
  • %D: поўная дата і час у поўным " +"фармаце
  • %h: цяперашні час
  • %y: цяперашняя " +"дата ў скарочаным фармаце
  • %Y: цяперашняя дата ў поўным " +"фармаце
  • %f: назва файла
  • %U: поўны URL " +"дакумента
  • %p: нумар старонкі

Заўвага:Не ўжывайце знак '|' (вертыкальная паласа)." + +#: printing/printconfigwidgets.cpp:266 +#, kde-format +msgid "

Format of the page footer. The following tags are supported:

" +msgstr "" + +#: printing/printconfigwidgets.cpp:352 +#, kde-format +msgid "Add Placeholder..." +msgstr "" + +#: printing/printconfigwidgets.cpp:354 +#, fuzzy, kde-format +#| msgid "Current line:" +msgid "Current User Name" +msgstr "Актыўны радок:" + +#: printing/printconfigwidgets.cpp:356 +#, kde-format +msgid "Complete Date/Time (short format)" +msgstr "" + +#: printing/printconfigwidgets.cpp:358 +#, kde-format +msgid "Complete Date/Time (long format)" +msgstr "" + +#: printing/printconfigwidgets.cpp:360 +#, fuzzy, kde-format +#| msgid "Current line:" +msgid "Current Time" +msgstr "Актыўны радок:" + +#: printing/printconfigwidgets.cpp:362 +#, kde-format +msgid "Current Date (short format)" +msgstr "" + +#: printing/printconfigwidgets.cpp:364 +#, kde-format +msgid "Current Date (long format)" +msgstr "" + +#: printing/printconfigwidgets.cpp:366 +#, fuzzy, kde-format +#| msgid "File Masks" +msgid "File Name" +msgstr "Маскі файлаў" + +#: printing/printconfigwidgets.cpp:368 +#, kde-format +msgid "Full document URL" +msgstr "" + +#: printing/printconfigwidgets.cpp:370 +#, kde-format +msgid "Page Number" +msgstr "" + +#: printing/printconfigwidgets.cpp:372 +#, kde-format +msgid "Total Amount of Pages" +msgstr "" + +#: printing/printconfigwidgets.cpp:478 +#, kde-format +msgid "L&ayout" +msgstr "" + +#: printing/printconfigwidgets.cpp:484 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "&Color theme:" +msgstr "Колеры" + +#: printing/printconfigwidgets.cpp:494 +#, fuzzy, kde-format +msgid "Font:" +msgstr "Шрыфт" + +#: printing/printconfigwidgets.cpp:498 +#, kde-format +msgid "Draw bac&kground color" +msgstr "Маляваць &фонавы колер" + +#: printing/printconfigwidgets.cpp:501 +#, kde-format +msgid "Draw &boxes" +msgstr "" + +#: printing/printconfigwidgets.cpp:505 +#, kde-format +msgid "Box Properties" +msgstr "" + +#: printing/printconfigwidgets.cpp:509 +#, kde-format +msgid "W&idth:" +msgstr "Ш&ырыня:" + +#: printing/printconfigwidgets.cpp:517 +#, kde-format +msgid "&Margin:" +msgstr "&Поле:" + +#: printing/printconfigwidgets.cpp:525 +#, kde-format +msgid "Co&lor:" +msgstr "Ко&лер:" + +#: printing/printconfigwidgets.cpp:547 +#, kde-format +msgid "Select the color theme to use for the print." +msgstr "" + +#: printing/printconfigwidgets.cpp:549 +#, kde-format +msgid "" +"

If enabled, the background color of the editor will be used.

This " +"may be useful if your color theme is designed for a dark background.

" +msgstr "" + +#: printing/printconfigwidgets.cpp:552 +#, kde-format +msgid "" +"

If enabled, a box as defined in the properties below will be drawn around " +"the contents of each page. The Header and Footer will be separated from the " +"contents with a line as well.

" +msgstr "" + +#: printing/printconfigwidgets.cpp:555 +#, kde-format +msgid "The width of the box outline" +msgstr "" + +#: printing/printconfigwidgets.cpp:556 +#, kde-format +msgid "The margin inside boxes, in pixels" +msgstr "" + +#: printing/printconfigwidgets.cpp:557 +#, kde-format +msgid "The line color to use for boxes" +msgstr "" + +#: printing/printpainter.cpp:269 +#, kde-format +msgid "(Selection of) " +msgstr "(Вылучэнне) " + +#: printing/printpainter.cpp:522 +#, kde-format +msgid "Typographical Conventions for %1" +msgstr "Тыпаграфічныя дамоўленасці для %1" + +#: printing/printpainter.cpp:555 +#, fuzzy, kde-format +msgid "text" +msgstr "Наступная" + +#: script/data/commands/emmet.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Expand Abbreviation" +msgstr "" + +#: script/data/commands/emmet.js:10 script/data/commands/emmet.js:14 +#: script/data/commands/emmet.js:19 script/data/commands/emmet.js:23 +#: script/data/commands/emmet.js:27 script/data/commands/emmet.js:31 +#: script/data/commands/emmet.js:35 script/data/commands/emmet.js:39 +#: script/data/commands/emmet.js:43 script/data/commands/emmet.js:47 +#: script/data/commands/emmet.js:51 script/data/commands/emmet.js:55 +#: script/data/commands/emmet.js:59 script/data/commands/emmet.js:63 +#: script/data/commands/emmet.js:67 script/data/commands/emmet.js:71 +#: script/data/commands/emmet.js:75 script/data/commands/emmet.js:79 +#: script/data/commands/emmet.js:83 +#, kde-format +msgctxt "Script command category" +msgid "Emmet" +msgstr "" + +#: script/data/commands/emmet.js:13 +#, kde-format +msgctxt "Script command name" +msgid "Wrap with Tag" +msgstr "" + +#: script/data/commands/emmet.js:18 +#, fuzzy, kde-format +#| msgid "Move to Matching Bracket" +msgctxt "Script command name" +msgid "Move Cursor to Matching Tag" +msgstr "Ісці да адпаведнай дужкі" + +#: script/data/commands/emmet.js:22 +#, kde-format +msgctxt "Script command name" +msgid "Select HTML/XML Tag Contents Inwards" +msgstr "" + +#: script/data/commands/emmet.js:26 +#, kde-format +msgctxt "Script command name" +msgid "Select HTML/XML Tag Contents Outwards" +msgstr "" + +#: script/data/commands/emmet.js:30 +#, fuzzy, kde-format +#| msgid "Comment" +msgctxt "Script command name" +msgid "Toggle Comment" +msgstr "Каментар" + +#: script/data/commands/emmet.js:34 +#, fuzzy, kde-format +#| msgid "Select to Next Line" +msgctxt "Script command name" +msgid "Go to Next Edit Point" +msgstr "Вылучыць да наступнага радка" + +#: script/data/commands/emmet.js:38 +#, fuzzy, kde-format +#| msgid "Move to Previous Line" +msgctxt "Script command name" +msgid "Go to Previous Edit Point" +msgstr "Ісці да папярэдняга радка" + +#: script/data/commands/emmet.js:42 +#, fuzzy, kde-format +#| msgid "Select to Next Line" +msgctxt "Script command name" +msgid "Select Next Edit Point" +msgstr "Вылучыць да наступнага радка" + +#: script/data/commands/emmet.js:46 +#, fuzzy, kde-format +#| msgid "Select to Previous Line" +msgctxt "Script command name" +msgid "Select Previous Edit Point" +msgstr "Вылучыць да папярэдняга радка" + +#: script/data/commands/emmet.js:50 +#, fuzzy, kde-format +#| msgid "Delete the current file type." +msgctxt "Script command name" +msgid "Delete Tag Under Cursor" +msgstr "Выдаліць гэты тып файлаў." + +#: script/data/commands/emmet.js:54 +#, kde-format +msgctxt "Script command name" +msgid "Split or Join a Tag" +msgstr "" + +#: script/data/commands/emmet.js:58 +#, kde-format +msgctxt "Script command name" +msgid "Evaluate a Simple Math Expression" +msgstr "" + +#: script/data/commands/emmet.js:62 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 1" +msgstr "" + +#: script/data/commands/emmet.js:66 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 10" +msgstr "" + +#: script/data/commands/emmet.js:70 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 0.1" +msgstr "" + +#: script/data/commands/emmet.js:74 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 1" +msgstr "" + +#: script/data/commands/emmet.js:78 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 10" +msgstr "" + +#: script/data/commands/emmet.js:82 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 0.1" +msgstr "" + +#: script/data/commands/emmet.js:96 +#, kde-format +msgid "" +"Expands the abbreviation using Emmet expressions; see http://code.google.com/" +"p/zen-coding/wiki/ZenHTMLSelectorsEn" +msgstr "" + +#: script/data/commands/emmet.js:97 +#, kde-format +msgid "" +"Wraps the selected text in XML tags constructed from the provided Emmet " +"expression (defaults to div)." +msgstr "" + +#: script/data/commands/emmet.js:98 +#, kde-format +msgid "Moves the caret to the current tag's pair" +msgstr "" + +#: script/data/commands/emmet.js:99 +#, kde-format +msgid "" +"Select contents of HTML/XML tag, moving inward on continuous invocations" +msgstr "" + +#: script/data/commands/emmet.js:100 +#, kde-format +msgid "" +"Select contents of HTML/XML tag, moving outwards on continuous invocations" +msgstr "" + +#: script/data/commands/emmet.js:101 +#, kde-format +msgid "Move to the next edit point (tag or empty attribute)." +msgstr "" + +#: script/data/commands/emmet.js:102 +#, kde-format +msgid "Move to the previous edit point (tag or empty attribute)." +msgstr "" + +#: script/data/commands/emmet.js:103 +#, fuzzy, kde-format +#| msgid "Select to Next Line" +msgid "Select next edit point (tag or empty attribute)." +msgstr "Вылучыць да наступнага радка" + +#: script/data/commands/emmet.js:104 +#, fuzzy, kde-format +#| msgid "Select to Previous Line" +msgid "Select previous edit point (tag or empty attribute)." +msgstr "Вылучыць да папярэдняга радка" + +#: script/data/commands/emmet.js:105 +#, kde-format +msgid "Toggle comment of current tag or CSS selector" +msgstr "" + +#: script/data/commands/emmet.js:106 +#, fuzzy, kde-format +#| msgid "Delete the current file type." +msgid "Deletes tag under cursor" +msgstr "Выдаліць гэты тып файлаў." + +#: script/data/commands/emmet.js:107 +#, kde-format +msgid "Splits or joins a tag" +msgstr "" + +#: script/data/commands/emmet.js:108 +#, kde-format +msgid "Evaluates a simple math expression" +msgstr "" + +#: script/data/commands/emmet.js:109 +#, kde-format +msgid "Decrement number under cursor by 1" +msgstr "" + +#: script/data/commands/emmet.js:110 +#, kde-format +msgid "Decrement number under cursor by 10" +msgstr "" + +#: script/data/commands/emmet.js:111 +#, kde-format +msgid "Decrement number under cursor by 0.1" +msgstr "" + +#: script/data/commands/emmet.js:112 +#, kde-format +msgid "Increment number under cursor by 1" +msgstr "" + +#: script/data/commands/emmet.js:113 +#, kde-format +msgid "Increment number under cursor by 10" +msgstr "" + +#: script/data/commands/emmet.js:114 +#, kde-format +msgid "Increment number under cursor by 0.1" +msgstr "" + +#: script/data/commands/jumpMatchingIndent.js:9 +#, fuzzy, kde-format +#| msgid "Move to Matching Bracket" +msgctxt "Script command name" +msgid "Move Cursor to Previous Matching Indent" +msgstr "Ісці да адпаведнай дужкі" + +#: script/data/commands/jumpMatchingIndent.js:11 +#: script/data/commands/jumpMatchingIndent.js:16 +#: script/data/commands/jumpMatchingIndent.js:21 +#: script/data/commands/jumpMatchingIndent.js:26 +#: script/data/commands/navigation.js:10 script/data/commands/navigation.js:14 +#, fuzzy, kde-format +#| msgctxt "Language Section" +#| msgid "Configuration" +msgctxt "Script command category" +msgid "Navigation" +msgstr "Файлы настаўленняў" + +#: script/data/commands/jumpMatchingIndent.js:14 +#, fuzzy, kde-format +#| msgid "Move to Matching Bracket" +msgctxt "Script command name" +msgid "Move Cursor to Next Matching Indent" +msgstr "Ісці да адпаведнай дужкі" + +#: script/data/commands/jumpMatchingIndent.js:19 +#, fuzzy, kde-format +#| msgid "Move to Matching Bracket" +msgctxt "Script command name" +msgid "Move Cursor to Next Blank Line" +msgstr "Ісці да адпаведнай дужкі" + +#: script/data/commands/jumpMatchingIndent.js:24 +#, fuzzy, kde-format +#| msgid "Move to Matching Bracket" +msgctxt "Script command name" +msgid "Move Cursor to Previous Blank Line" +msgstr "Ісці да адпаведнай дужкі" + +#: script/data/commands/jumpMatchingIndent.js:80 +#, fuzzy, kde-format +#| msgid "Move to Matching Bracket" +msgid "Move cursor to previous matching indent" +msgstr "Ісці да адпаведнай дужкі" + +#: script/data/commands/jumpMatchingIndent.js:83 +#, fuzzy, kde-format +#| msgid "Move to Matching Bracket" +msgid "Move cursor to next matching indent" +msgstr "Ісці да адпаведнай дужкі" + +#: script/data/commands/jumpMatchingIndent.js:85 +#, fuzzy, kde-format +#| msgid "Move to Matching Bracket" +msgid "Move cursor to next blank line" +msgstr "Ісці да адпаведнай дужкі" + +#: script/data/commands/jumpMatchingIndent.js:87 +#, fuzzy, kde-format +#| msgid "Move to Matching Bracket" +msgid "Move cursor to previous blank line" +msgstr "Ісці да адпаведнай дужкі" + +#: script/data/commands/navigation.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Go to Next Paragraph" +msgstr "" + +#: script/data/commands/navigation.js:13 +#, fuzzy, kde-format +#| msgid "Move to Previous Line" +msgctxt "Script command name" +msgid "Go to Previous Paragraph" +msgstr "Ісці да папярэдняга радка" + +#: script/data/commands/utils.js:9 +#, fuzzy, kde-format +#| msgid "Re&move trailing spaces" +msgctxt "Script command name" +msgid "Remove Trailing Spaces" +msgstr "&Прыбіраць канцавыя прагалы" + +#: script/data/commands/utils.js:10 script/data/commands/utils.js:14 +#: script/data/commands/utils.js:18 script/data/commands/utils.js:22 +#: script/data/commands/utils.js:27 script/data/commands/utils.js:32 +#: script/data/commands/utils.js:36 script/data/commands/utils.js:40 +#: script/data/commands/utils.js:44 script/data/commands/utils.js:48 +#: script/data/commands/utils.js:52 script/data/commands/utils.js:56 +#, fuzzy, kde-format +#| msgid "Editing" +msgctxt "Script command category" +msgid "Editing" +msgstr "Рэдагаванне" + +#: script/data/commands/utils.js:13 +#, fuzzy, kde-format +#| msgid "Re&move trailing spaces" +msgctxt "Script command name" +msgid "Remove Leading Spaces" +msgstr "&Прыбіраць канцавыя прагалы" + +#: script/data/commands/utils.js:17 +#, fuzzy, kde-format +#| msgid "Re&move trailing spaces" +msgctxt "Script command name" +msgid "Remove Trailing and Leading Spaces" +msgstr "&Прыбіраць канцавыя прагалы" + +#: script/data/commands/utils.js:21 +#, fuzzy, kde-format +#| msgid "Scroll Line Up" +msgctxt "Script command name" +msgid "Join Lines" +msgstr "Перайсці на радок вышэй" + +#: script/data/commands/utils.js:25 +#, fuzzy, kde-format +#| msgid "Scroll Line Down" +msgctxt "Script command name" +msgid "Move Lines Down" +msgstr "Перайсці на радок ніжэй" + +#: script/data/commands/utils.js:30 +#, fuzzy, kde-format +#| msgid "Scroll Line Up" +msgctxt "Script command name" +msgid "Move Lines Up" +msgstr "Перайсці на радок вышэй" + +#: script/data/commands/utils.js:35 +#, fuzzy, kde-format +#| msgid "Selected" +msgctxt "Script command name" +msgid "Duplicate Selected Lines Down" +msgstr "Вылучаны" + +#: script/data/commands/utils.js:39 +#, fuzzy, kde-format +#| msgid "Selected" +msgctxt "Script command name" +msgid "Duplicate Selected Lines Up" +msgstr "Вылучаны" + +#: script/data/commands/utils.js:43 +#, fuzzy, kde-format +#| msgid "Selected" +msgctxt "Script command name" +msgid "Duplicate selected text" +msgstr "Вылучаны" + +#: script/data/commands/utils.js:47 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgctxt "Script command name" +msgid "URI-encode Selected Text" +msgstr "Вылучаны тэкст:" + +#: script/data/commands/utils.js:51 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgctxt "Script command name" +msgid "URI-decode Selected Text" +msgstr "Вылучаны тэкст:" + +#: script/data/commands/utils.js:55 +#, fuzzy, kde-format +#| msgid "Move to Matching Bracket" +msgctxt "Script command name" +msgid "Remove Empty Lines" +msgstr "Ісці да адпаведнай дужкі" + +#: script/data/commands/utils.js:410 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "Sort the selected text or whole document." +msgstr "Вылучыць увесь тэкст гэтага дакумента." + +#: script/data/commands/utils.js:412 +#, fuzzy, kde-format +#| msgid "Selected" +msgid "Move selected lines down." +msgstr "Вылучаны" + +#: script/data/commands/utils.js:414 +#, fuzzy, kde-format +#| msgid "Selected" +msgid "Move selected lines up." +msgstr "Вылучаны" + +#: script/data/commands/utils.js:416 +#, kde-format +msgid "Remove duplicate lines from the selected text or whole document." +msgstr "" + +#: script/data/commands/utils.js:418 +#, kde-format +msgid "" +"Sort the selected text or whole document in natural order.
Here is an " +"example to show the difference to the normal sort method:
sort(a10, a1, " +"a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" +msgstr "" + +#: script/data/commands/utils.js:420 +#, kde-format +msgid "Trims trailing whitespace from selection or whole document." +msgstr "" + +#: script/data/commands/utils.js:422 +#, kde-format +msgid "Trims leading whitespace from selection or whole document." +msgstr "" + +#: script/data/commands/utils.js:424 +#, kde-format +msgid "Trims leading and trailing whitespace from selection or whole document." +msgstr "" + +#: script/data/commands/utils.js:426 +#, kde-format +msgid "" +"Joins selected lines or whole document. Optionally pass a separator to put " +"between each line:
join ', ' will e.g. join lines and " +"separate them by a comma." +msgstr "" + +#: script/data/commands/utils.js:428 +#, kde-format +msgid "Removes empty lines from selection or whole document." +msgstr "" + +#: script/data/commands/utils.js:430 +#, kde-format +msgid "" +"This command aligns lines in the selected block or whole document on the " +"column given by a regular expression given as an argument.

If you " +"give an empty pattern it will align on the first non-blank character by " +"default.
If the pattern has a capture it will indent on the captured " +"match.

Examples:
'alignon -' will insert " +"spaces before the first '-' of each lines to align them all on the same " +"column.
'alignon :\\s+(.)' will insert spaces before the " +"first non-blank character that occurs after a colon to align them all on the " +"same column." +msgstr "" + +#: script/data/commands/utils.js:434 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and replace them with the return value of that callback." +"
Example (join selected lines):
each 'function(lines){return " +"lines.join(\", \");}'
To save you some typing, you can also do " +"this to achieve the same:
each 'lines.join(\", \")'" +msgstr "" + +#: script/data/commands/utils.js:436 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and remove those where the callback returns false." +"
Example (see also rmblank):
filter 'function(l)" +"{return l.length > 0;}'
To save you some typing, you can also do " +"this to achieve the same:
filter 'line.length > 0'" +msgstr "" + +#: script/data/commands/utils.js:438 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and replace the line with the return value of the callback." +"
Example (see also ltrim):
map 'function(line)" +"{return line.replace(/^\\s+/, \"\");}'
To save you some typing, " +"you can also do this to achieve the same:
map 'line.replace(/^\\s" +"+/, \"\")'" +msgstr "" + +#: script/data/commands/utils.js:440 +#, kde-format +msgid "Duplicates the selected lines up." +msgstr "" + +#: script/data/commands/utils.js:442 +#, kde-format +msgid "Duplicates the selected lines down." +msgstr "" + +#: script/data/commands/utils.js:446 +#, kde-format +msgid "" +"Encode special chars in a single line selection, so the result text can be " +"used as URI." +msgstr "" + +#: script/data/commands/utils.js:448 +#, kde-format +msgid "Reverse action of URI encode." +msgstr "" + +#: script/data/commands/utils.js:450 +#, kde-format +msgid "" +"Select text forward from current cursor position to the first occurrence of " +"the given argument after it (or the end of the current line by default)." +msgstr "" + +#: script/data/commands/utils.js:452 +#, kde-format +msgid "" +"Select text backward from current cursor position to the last occurrence of " +"the given argument before it (or the beginning of the current line by " +"default)." +msgstr "" + +#: script/data/indentation/ada.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Ada" +msgctxt "Autoindent mode" +msgid "ada" +msgstr "Ada" + +#: script/data/indentation/cmake.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "CMake" +msgctxt "Autoindent mode" +msgid "CMake" +msgstr "CMake" + +#: script/data/indentation/cppstyle.js:2 +#, fuzzy, kde-format +#| msgid "C Style" +msgctxt "Autoindent mode" +msgid "C++/boost Style" +msgstr "Стыль C" + +#: script/data/indentation/cstyle.js:2 +#, fuzzy, kde-format +#| msgid "C Style" +msgctxt "Autoindent mode" +msgid "C Style" +msgstr "Стыль C" + +#: script/data/indentation/haskell.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Haskell" +msgctxt "Autoindent mode" +msgid "Haskell" +msgstr "Haskell" + +#: script/data/indentation/julia.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Julia" +msgstr "" + +#: script/data/indentation/latex.js:2 +#, fuzzy, kde-format +#| msgid "Latest" +msgctxt "Autoindent mode" +msgid "Latex" +msgstr "Апошні" + +#: script/data/indentation/lilypond.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "LilyPond" +msgctxt "Autoindent mode" +msgid "LilyPond" +msgstr "LilyPond" + +#: script/data/indentation/lisp.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "LISP" +msgstr "" + +#: script/data/indentation/pascal.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Pascal" +msgctxt "Autoindent mode" +msgid "Pascal" +msgstr "Pascal" + +#: script/data/indentation/python.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Python" +msgctxt "Autoindent mode" +msgid "Python" +msgstr "Python" + +#: script/data/indentation/r.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "R" +msgstr "" + +#: script/data/indentation/replicode.js:2 +#, fuzzy, kde-format +#| msgid "&Replace" +msgctxt "Autoindent mode" +msgid "Replicode" +msgstr "&Замяніць" + +#: script/data/indentation/ruby.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Ruby" +msgctxt "Autoindent mode" +msgid "Ruby" +msgstr "Ruby" + +#: script/data/indentation/xml.js:2 +#, fuzzy, kde-format +#| msgid "XML Style" +msgctxt "Autoindent mode" +msgid "XML Style" +msgstr "Стыль XML" + +#: script/katecommandlinescript.cpp:37 +#, kde-format +msgid "Function '%1' not found in script: %2" +msgstr "" + +#: script/katecommandlinescript.cpp:51 +#, fuzzy, kde-format +#| msgid "Error: %1" +msgid "Error calling %1" +msgstr "Памылка: %1" + +#: script/katecommandlinescript.cpp:68 +#, kde-format +msgid "Bad quoting in call: %1. Please escape single quotes with a backslash." +msgstr "" + +#: script/katecommandlinescript.cpp:76 utils/katecmds.cpp:217 +#: vimode/cmds.cpp:37 +#, kde-format +msgid "Could not access view" +msgstr "Немагчыма атрымаць доступ да гэтага экзэмпляра прагляду" + +#: script/katecommandlinescript.cpp:118 +#, kde-format +msgid "Error calling 'help %1'" +msgstr "" + +#: script/katecommandlinescript.cpp:123 +#, kde-format +msgid "No help specified for command '%1' in script %2" +msgstr "" + +#: script/katescript.cpp:282 +#, fuzzy, kde-format +#| msgid "Error: %1" +msgid "Error loading script %1: %2" +msgstr "Памылка: %1" + +#: script/katescriptmanager.cpp:319 +#, kde-format +msgid "Reload all JavaScript files (indenters, command line scripts, etc)." +msgstr "" + +#: script/katescriptview.cpp:214 +#, fuzzy, kde-format +msgid "Command not found: %1" +msgstr "Загад не знойдзены" + +#: search/katesearchbar.cpp:73 +#, kde-format +msgid "Add..." +msgstr "" + +#: search/katesearchbar.cpp:298 +#, fuzzy, kde-format +#| msgid "%1 replacement made." +#| msgid_plural "%1 replacements made." +msgctxt "short translation" +msgid "1 replacement made" +msgid_plural "%1 replacements made" +msgstr[0] "Выкананая %1 замена." +msgstr[1] "Выкананая %1 замена." +msgstr[2] "Выкананая %1 замена." + +#: search/katesearchbar.cpp:300 +#, kde-format +msgctxt "short translation" +msgid "1 match found" +msgid_plural "%1 matches found" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: search/katesearchbar.cpp:374 +#, kde-format +msgid "Reached top, continued from bottom" +msgstr "" + +#: search/katesearchbar.cpp:376 +#, kde-format +msgid "Reached bottom, continued from top" +msgstr "" + +#: search/katesearchbar.cpp:381 +#, kde-format +msgid "Not found" +msgstr "" + +#: search/katesearchbar.cpp:615 +#, kde-format +msgid "Bottom of file reached. Continue from top?" +msgstr "" + +#: search/katesearchbar.cpp:615 +#, kde-format +msgid "Top of file reached. Continue from bottom?" +msgstr "" + +#: search/katesearchbar.cpp:618 +#, fuzzy, kde-format +#| msgid "Continue from the end?" +msgid "Continue search?" +msgstr "Працягнуць з канца?" + +#: search/katesearchbar.cpp:920 +#, fuzzy, kde-format +msgid "SearchHighLight" +msgstr "Падсвечванне" + +#: search/katesearchbar.cpp:1136 search/katesearchbar.cpp:1755 +#, kde-format +msgid "Clear history" +msgstr "" + +#: search/katesearchbar.cpp:1166 +#, fuzzy, kde-format +#| msgid "Move to Beginning of Line" +msgid "Beginning of line" +msgstr "Ісці ў пачатак радка" + +#: search/katesearchbar.cpp:1167 +#, fuzzy, kde-format +#| msgid "End &of line:" +msgid "End of line" +msgstr "Канец &радка:" + +#: search/katesearchbar.cpp:1169 +#, kde-format +msgid "Match any character excluding new line (by default)" +msgstr "" + +#: search/katesearchbar.cpp:1170 +#, kde-format +msgid "One or more occurrences" +msgstr "" + +#: search/katesearchbar.cpp:1171 +#, kde-format +msgid "Zero or more occurrences" +msgstr "" + +#: search/katesearchbar.cpp:1172 +#, kde-format +msgid "Zero or one occurrences" +msgstr "" + +#: search/katesearchbar.cpp:1175 +#, kde-format +msgid " through occurrences" +msgstr "" + +#: search/katesearchbar.cpp:1181 +#, kde-format +msgid "Group, capturing" +msgstr "" + +#: search/katesearchbar.cpp:1182 +#, kde-format +msgid "Or" +msgstr "" + +#: search/katesearchbar.cpp:1183 +#, fuzzy, kde-format +#| msgid "Character" +msgid "Set of characters" +msgstr "Знак" + +#: search/katesearchbar.cpp:1184 +#, fuzzy, kde-format +#| msgid "Delete Next Character" +msgid "Negative set of characters" +msgstr "Выдаліць наступны знак" + +#: search/katesearchbar.cpp:1188 +#, kde-format +msgid "Whole match reference" +msgstr "" + +#: search/katesearchbar.cpp:1199 +#, fuzzy, kde-format +#| msgid "&View Difference" +msgid "Reference" +msgstr "Па&казаць адрозненні" + +#: search/katesearchbar.cpp:1206 +#, fuzzy, kde-format +#| msgid "Line numbers:" +msgid "Line break" +msgstr "Нумары радкоў:" + +#: search/katesearchbar.cpp:1207 +#, kde-format +msgid "Tab" +msgstr "" + +#: search/katesearchbar.cpp:1210 +#, kde-format +msgid "Word boundary" +msgstr "" + +#: search/katesearchbar.cpp:1211 +#, kde-format +msgid "Not word boundary" +msgstr "" + +#: search/katesearchbar.cpp:1212 +#, kde-format +msgid "Digit" +msgstr "" + +#: search/katesearchbar.cpp:1213 +#, kde-format +msgid "Non-digit" +msgstr "" + +#: search/katesearchbar.cpp:1214 +#, kde-format +msgid "Whitespace (excluding line breaks)" +msgstr "" + +#: search/katesearchbar.cpp:1215 +#, fuzzy, kde-format +#| msgid "&Replace" +msgid "Non-whitespace" +msgstr "&Замяніць" + +#: search/katesearchbar.cpp:1216 +#, kde-format +msgid "Word character (alphanumerics plus '_')" +msgstr "" + +#: search/katesearchbar.cpp:1217 +#, fuzzy, kde-format +#| msgid "Character" +msgid "Non-word character" +msgstr "Знак" + +#: search/katesearchbar.cpp:1220 +#, kde-format +msgid "Octal character 000 to 377 (2^8-1)" +msgstr "" + +#: search/katesearchbar.cpp:1221 +#, kde-format +msgid "Hex character 0000 to FFFF (2^16-1)" +msgstr "" + +#: search/katesearchbar.cpp:1222 +#, fuzzy, kde-format +#| msgid "Backspace" +msgid "Backslash" +msgstr "Зваротны скос" + +#: search/katesearchbar.cpp:1226 +#, kde-format +msgid "Group, non-capturing" +msgstr "" + +#: search/katesearchbar.cpp:1227 +#, kde-format +msgid "Positive Lookahead" +msgstr "" + +#: search/katesearchbar.cpp:1228 +#, kde-format +msgid "Negative lookahead" +msgstr "" + +#: search/katesearchbar.cpp:1232 +#, kde-format +msgid "Fixed-length positive lookbehind" +msgstr "" + +#: search/katesearchbar.cpp:1233 +#, kde-format +msgid "Fixed-length negative lookbehind" +msgstr "" + +#: search/katesearchbar.cpp:1238 +#, kde-format +msgid "Begin lowercase conversion" +msgstr "" + +#: search/katesearchbar.cpp:1239 +#, kde-format +msgid "Begin uppercase conversion" +msgstr "" + +#: search/katesearchbar.cpp:1240 +#, kde-format +msgid "End case conversion" +msgstr "" + +#: search/katesearchbar.cpp:1241 +#, kde-format +msgid "Lowercase first character conversion" +msgstr "" + +#: search/katesearchbar.cpp:1242 +#, kde-format +msgid "Uppercase first character conversion" +msgstr "" + +#: search/katesearchbar.cpp:1243 +#, kde-format +msgid "Replacement counter (for Replace All)" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: search/searchbarincremental.ui:50 +#, fuzzy, kde-format +#| msgid "Find" +msgid "F&ind:" +msgstr "Знайсці" + +#. i18n: ectx: property (toolTip), widget (QComboBox, pattern) +#: search/searchbarincremental.ui:78 search/searchbarpower.ui:295 +#, kde-format +msgid "Text to search for" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QToolButton, findNext) +#. i18n: ectx: property (toolTip), widget (QToolButton, next) +#: search/searchbarincremental.ui:91 search/searchbarpower.ui:175 +#, kde-format +msgid "Jump to next match" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QToolButton, findPrev) +#. i18n: ectx: property (toolTip), widget (QToolButton, prev) +#: search/searchbarincremental.ui:101 search/searchbarpower.ui:185 +#, fuzzy, kde-format +#| msgid "Go to the previous bookmark." +msgid "Jump to previous match" +msgstr "Ісці да папярэдняй закладкі." + +#. i18n: ectx: property (toolTip), widget (QToolButton, matchCase) +#: search/searchbarincremental.ui:111 search/searchbarpower.ui:136 +#, fuzzy, kde-format +#| msgid "Case &sensitive" +msgid "Match case sensitive" +msgstr "З &улікам рэгістру" + +#. i18n: ectx: property (toolTip), widget (QToolButton, mutate) +#: search/searchbarincremental.ui:146 +#, kde-format +msgid "Switch to power search and replace bar" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: search/searchbarpower.ui:50 +#, kde-format +msgid "Fin&d:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: search/searchbarpower.ui:63 +#, fuzzy, kde-format +msgid "Rep&lace:" +msgstr "Замяніць" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: search/searchbarpower.ui:76 +#, fuzzy, kde-format +#| msgid "&Bold" +msgid "&Mode:" +msgstr "&Цёмны" + +#. i18n: ectx: property (toolTip), widget (QComboBox, searchMode) +#: search/searchbarpower.ui:103 +#, fuzzy, kde-format +#| msgid "Search" +msgid "Search mode" +msgstr "Пошук" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:113 +#, fuzzy, kde-format +#| msgid "&Find Next" +msgid "Plain text" +msgstr "&Знайсці далей" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:118 +#, kde-format +msgid "Whole words" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:123 +#, kde-format +msgid "Escape sequences" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:128 +#, fuzzy, kde-format +msgid "Regular expression" +msgstr "&Рэгулярны выраз" + +#. i18n: ectx: property (toolTip), widget (QToolButton, selectionOnly) +#: search/searchbarpower.ui:149 +#, fuzzy, kde-format +msgid "Search in the selection only" +msgstr "Толькі вылучаны тэкст" + +#. i18n: ectx: property (toolTip), widget (QPushButton, replaceNext) +#: search/searchbarpower.ui:195 +#, fuzzy, kde-format +#| msgid "Replace Confirmation" +msgid "Replace next match" +msgstr "Пацвярджэнне замены" + +#. i18n: ectx: property (text), widget (QPushButton, replaceNext) +#. i18n: ectx: property (text), widget (QPushButton, m_replaceBtn) +#: search/searchbarpower.ui:198 spellcheck/spellcheckbar.ui:130 +#, kde-format +msgid "&Replace" +msgstr "&Замяніць" + +#. i18n: ectx: property (toolTip), widget (QPushButton, replaceAll) +#: search/searchbarpower.ui:224 +#, fuzzy, kde-format +#| msgid "Replace &All" +msgid "Replace all matches" +msgstr "Замяніць &усё" + +#. i18n: ectx: property (text), widget (QPushButton, replaceAll) +#: search/searchbarpower.ui:227 +#, fuzzy, kde-format +#| msgid "Replace &All" +msgid "Replace &All" +msgstr "Замяніць &усё" + +#. i18n: ectx: property (text), widget (QPushButton, findAll) +#: search/searchbarpower.ui:234 +#, kde-format +msgid "&Find All" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, cancel) +#: search/searchbarpower.ui:257 +#, kde-format +msgid "Cancel" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QToolButton, mutate) +#: search/searchbarpower.ui:268 +#, fuzzy, kde-format +#| msgid "Next Incremental Search Match" +msgid "Switch to incremental search bar" +msgstr "Наступны адпаведнік умовам паступовага пошуку" + +#. i18n: ectx: property (toolTip), widget (QComboBox, replacement) +#: search/searchbarpower.ui:314 +#, kde-format +msgid "Text to replace with" +msgstr "" + +#: spellcheck/spellcheckbar.cpp:148 +#, fuzzy, kde-format +#| msgid "Spellcheck Selection..." +msgid "Spell check canceled." +msgstr "Спраўдзіць правапіс вылучанага тэксту..." + +#: spellcheck/spellcheckbar.cpp:245 +#, fuzzy, kde-format +#| msgid "Spellcheck Selection..." +msgctxt "@info:progress" +msgid "Spell checking in progress…" +msgstr "Спраўдзіць правапіс вылучанага тэксту..." + +#: spellcheck/spellcheckbar.cpp:246 spellcheck/spellcheckbar.cpp:435 +#, kde-format +msgctxt "@title:window" +msgid "Check Spelling" +msgstr "" + +#: spellcheck/spellcheckbar.cpp:432 spellcheck/spellcheckbar.cpp:435 +#, fuzzy, kde-format +#| msgid "Spellcheck Selection..." +msgid "Spell check complete." +msgstr "Спраўдзіць правапіс вылучанага тэксту..." + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel2) +#. i18n: ectx: property (whatsThis), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:30 spellcheck/spellcheckbar.ui:46 +#, kde-format +msgid "" +"

This word was considered to be an \"unknown word\" because it does " +"not match any entry in the dictionary currently in use. It may also be a " +"word in a foreign language.

\n" +"

If the word is not misspelled, you may add it to the dictionary by " +"clicking Add to Dictionary. If you do not want to add the unknown " +"word to the dictionary, but you want to leave it unchanged, click Ignore or Ignore All.

\n" +"

However, if the word is misspelled, you can try to find the correct " +"replacement in the list below. If you cannot find a replacement there, you " +"may type it in the text box below, and click Replace or Replace " +"All.

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, textLabel2) +#: spellcheck/spellcheckbar.ui:33 +#, fuzzy, kde-format +#| msgid "Unknown command '%1'" +msgid "Unknown word:" +msgstr "Невядомы загад '%1'" + +#. i18n: ectx: property (toolTip), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:40 +#, fuzzy, kde-format +msgid "Unknown word" +msgstr "невядомы" + +#. i18n: ectx: property (text), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:49 +#, kde-format +msgid "misspelled" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_addBtn) +#: spellcheck/spellcheckbar.ui:72 +#, kde-format +msgid "" +"\n" +"

The unknown word was detected and considered unknown because it is not " +"included in the dictionary.
\n" +"Click here if you consider the unknown word not to be misspelled, and you " +"want to avoid wrongly detecting it again in the future. If you want to let " +"it remain as is, but not add it to the dictionary, then click Ignore " +"or Ignore All instead.

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, m_addBtn) +#: spellcheck/spellcheckbar.ui:75 +#, fuzzy, kde-format +#| msgid "&Section:" +msgid "<< Add to Dictionary" +msgstr "&Раздзел:" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel4) +#: spellcheck/spellcheckbar.ui:89 +#, kde-format +msgid "" +"\n" +"

If the unknown word is misspelled, you should type the correction for " +"your misspelled word here or select it from the list below.

\n" +"

You can then click Replace if you want to correct only this " +"occurrence of the word or Replace All if you want to correct all " +"occurrences.

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, textLabel4) +#: spellcheck/spellcheckbar.ui:92 +#, fuzzy, kde-format +#| msgid "Replace Confirmation" +msgid "Replace with:" +msgstr "Пацвярджэнне замены" + +#. i18n: ectx: property (text), widget (QPushButton, m_suggestBtn) +#: spellcheck/spellcheckbar.ui:118 +#, kde-format +msgid "S&uggest" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_replaceBtn) +#: spellcheck/spellcheckbar.ui:127 +#, kde-format +msgid "" +"\n" +"

Click here to replace this occurrence of the unknown text with the text " +"in the edit box above (to the left).

\n" +"
" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_skipBtn) +#: spellcheck/spellcheckbar.ui:140 +#, kde-format +msgid "" +"\n" +"

Click here to let this occurrence of the unknown word remain as is.

\n" +"

This action is useful when the word is a name, an acronym, a foreign word " +"or any other unknown word that you want to use but not add to the dictionary." +"

\n" +"
" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel5) +#. i18n: ectx: property (whatsThis), widget (Sonnet::DictionaryComboBox, m_language) +#: spellcheck/spellcheckbar.ui:156 spellcheck/spellcheckbar.ui:174 +#, kde-format +msgid "" +"\n" +"

Select the language of the document you are proofing here.

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, textLabel5) +#: spellcheck/spellcheckbar.ui:159 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "E Language" +msgid "&Language:" +msgstr "E Language" + +#. i18n: ectx: property (toolTip), widget (Sonnet::DictionaryComboBox, m_language) +#: spellcheck/spellcheckbar.ui:169 +#, kde-format +msgid "Language Selection" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_autoCorrect) +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_skipAllBtn) +#: spellcheck/spellcheckbar.ui:197 spellcheck/spellcheckbar.ui:222 +#, kde-format +msgid "" +"\n" +"

Click here to let all occurrences of the unknown word remain as they are." +"

\n" +"

This action is useful when the word is a name, an acronym, a foreign word " +"or any other unknown word that you want to use but not add to the dictionary." +"

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, m_autoCorrect) +#: spellcheck/spellcheckbar.ui:200 +#, kde-format +msgid "Autocorrect" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_replaceAllBtn) +#: spellcheck/spellcheckbar.ui:209 +#, kde-format +msgid "" +"\n" +"

Click here to replace all occurrences of the unknown text with the text " +"in the edit box above (to the left).

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, m_replaceAllBtn) +#: spellcheck/spellcheckbar.ui:212 +#, fuzzy, kde-format +#| msgid "Replace &All" +msgid "R&eplace All" +msgstr "Замяніць &усё" + +#. i18n: ectx: property (text), widget (QPushButton, m_skipAllBtn) +#: spellcheck/spellcheckbar.ui:225 +#, fuzzy, kde-format +#| msgid "&Ignore" +msgid "I&gnore All" +msgstr "&Ігнараваць" + +#: spellcheck/spellcheckdialog.cpp:51 +#, fuzzy, kde-format +#| msgid "Spelling (from cursor)..." +msgctxt "@action" +msgid "Spelling (from Cursor)…" +msgstr "Спраўдзіць правапіс (з курсора)..." + +#: spellcheck/spellcheckdialog.cpp:54 +#, kde-format +msgid "Check the document's spelling from the cursor and forward" +msgstr "Спраўдзіць правапіс дакумента, пачынаючы з курсора і далей" + +#: spellcheck/spellingmenu.cpp:76 +#, fuzzy, kde-format +#| msgid "&Ignore" +msgid "Ignore Word" +msgstr "&Ігнараваць" + +#: spellcheck/spellingmenu.cpp:79 +#, fuzzy, kde-format +#| msgid "&Section:" +msgid "Add to Dictionary" +msgstr "&Раздзел:" + +#: spellcheck/spellingmenu.cpp:172 +#, kde-format +msgid "Spelling '%1'" +msgstr "" + +#: swapfile/kateswapdiffcreator.cpp:87 +#, fuzzy, kde-format +#| msgid "" +#| "The diff command failed. Please make sure that diff(1) is installed and " +#| "in your PATH." +msgid "" +"The diff command could not be found. Please make sure that diff(1) is " +"installed and in your PATH." +msgstr "" +"Немагчыма выканаць загад diff. Праверце правільнасць устаноўкі праграмы " +"diff(1) у вашым шляху пошуку PATH." + +#: swapfile/kateswapdiffcreator.cpp:98 +#, kde-format +msgid "The diff command '%1' could not be started." +msgstr "" + +#: swapfile/kateswapfile.cpp:642 +#, kde-format +msgid "The file was not closed properly." +msgstr "" + +#: swapfile/kateswapfile.cpp:645 +#, fuzzy, kde-format +#| msgid "&Ignore Changes" +msgid "View Changes" +msgstr "&Ігнараваць змены" + +#: swapfile/kateswapfile.cpp:646 +#, kde-format +msgid "Recover Data" +msgstr "" + +#: swapfile/kateswapfile.cpp:647 +#, fuzzy, kde-format +#| msgid "Disabled" +msgid "Discard" +msgstr "Выключана" + +#: syntax/katecolortreewidget.cpp:34 syntax/katecolortreewidget.cpp:61 +#, kde-format +msgid "Use default color from the color theme" +msgstr "" + +#: syntax/katehighlightmenu.cpp:39 +#, fuzzy, kde-format +#| msgid "None" +msgid "None" +msgstr "Няма" + +#: syntax/katestyletreewidget.cpp:135 +#, fuzzy, kde-format +#| msgid "Context" +msgctxt "@title:column Meaning of text in editor" +msgid "Context" +msgstr "Кантэкст" + +#: syntax/katestyletreewidget.cpp:136 +#, fuzzy, kde-format +#| msgid "Normal" +msgctxt "@title:column Text style" +msgid "Normal" +msgstr "Звычайны" + +#: syntax/katestyletreewidget.cpp:136 +#, fuzzy, kde-format +#| msgid "Selected" +msgctxt "@title:column Text style" +msgid "Selected" +msgstr "Вылучаны" + +#: syntax/katestyletreewidget.cpp:136 +#, fuzzy, kde-format +#| msgid "Background" +msgctxt "@title:column Text style" +msgid "Background" +msgstr "Фон" + +#: syntax/katestyletreewidget.cpp:137 +#, fuzzy, kde-format +#| msgid "Background Selected" +msgctxt "@title:column Text style" +msgid "Background Selected" +msgstr "Фон для вылучанага тэксту" + +#: syntax/katestyletreewidget.cpp:139 +#, kde-format +msgid "Use Default Style" +msgstr "Выкарыстоўваць прадвызначаны стыль" + +#: syntax/katestyletreewidget.cpp:238 +#, kde-format +msgid "&Bold" +msgstr "&Цёмны" + +#: syntax/katestyletreewidget.cpp:243 +#, fuzzy, kde-format +msgid "&Italic" +msgstr "&Курсіў" + +#: syntax/katestyletreewidget.cpp:248 +#, kde-format +msgid "&Underline" +msgstr "&Падкрэслены" + +#: syntax/katestyletreewidget.cpp:253 +#, kde-format +msgid "S&trikeout" +msgstr "&Закрэслены" + +#: syntax/katestyletreewidget.cpp:260 +#, fuzzy, kde-format +#| msgid "Normal &Color..." +msgctxt "@action:inmenu" +msgid "Normal &Color…" +msgstr "Звычайны &колер..." + +#: syntax/katestyletreewidget.cpp:263 +#, fuzzy, kde-format +#| msgid "&Selected Color..." +msgctxt "@action:inmenu" +msgid "&Selected Color…" +msgstr "&Вылучаны колер..." + +#: syntax/katestyletreewidget.cpp:266 +#, fuzzy, kde-format +#| msgid "&Background Color..." +msgctxt "@action:inmenu" +msgid "&Background Color…" +msgstr "&Фонавы колер..." + +#: syntax/katestyletreewidget.cpp:269 +#, fuzzy, kde-format +#| msgid "S&elected Background Color..." +msgctxt "@action:inmenu" +msgid "S&elected Background Color…" +msgstr "В&ылучаны фонавы колер..." + +#: syntax/katestyletreewidget.cpp:275 +#, fuzzy, kde-format +#| msgid "Normal &Color..." +msgid "Unset Normal Color" +msgstr "Звычайны &колер..." + +#: syntax/katestyletreewidget.cpp:278 +#, fuzzy, kde-format +#| msgid "&Selected Color..." +msgid "Unset Selected Color" +msgstr "&Вылучаны колер..." + +#: syntax/katestyletreewidget.cpp:284 +#, kde-format +msgid "Unset Background Color" +msgstr "" + +#: syntax/katestyletreewidget.cpp:289 +#, kde-format +msgid "Unset Selected Background Color" +msgstr "" + +#: syntax/katestyletreewidget.cpp:295 +#, kde-format +msgid "Use &Default Style" +msgstr "Выкарыстоўваць &прадвызначаны стыль" + +#: syntax/katestyletreewidget.cpp:408 +#, fuzzy, kde-format +msgctxt "No text or background color set" +msgid "None set" +msgstr "Няма" + +#: syntax/katestyletreewidget.cpp:642 +#, kde-format +msgid "" +"\"Use Default Style\" will be automatically unset when you change any style " +"properties." +msgstr "" +"Выбар \"Выкарыстоўваць прадвызначаны стыль\" аўтаматычна скінецца, калі вы " +"зменіце любое настаўленне стылю." + +#: syntax/katestyletreewidget.cpp:643 +#, kde-format +msgid "Kate Styles" +msgstr "Стылі Kate" + +#: syntax/katethemeconfig.cpp:47 +#, fuzzy, kde-format +#| msgid "Normal" +msgctxt "@item:intable Text context" +msgid "Normal" +msgstr "Звычайны" + +#: syntax/katethemeconfig.cpp:49 +#, fuzzy, kde-format +#| msgid "Keyword" +msgctxt "@item:intable Text context" +msgid "Keyword" +msgstr "Ключавое слова" + +#: syntax/katethemeconfig.cpp:51 +#, fuzzy, kde-format +#| msgid "Function" +msgctxt "@item:intable Text context" +msgid "Function" +msgstr "Функцыя" + +#: syntax/katethemeconfig.cpp:53 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Variable" +msgstr "&Зменныя:" + +#: syntax/katethemeconfig.cpp:55 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Control Flow" +msgstr "" + +#: syntax/katethemeconfig.cpp:57 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Operator" +msgstr "" + +#: syntax/katethemeconfig.cpp:59 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Built-in" +msgstr "" + +#: syntax/katethemeconfig.cpp:61 +#, fuzzy, kde-format +#| msgid "File e&xtensions:" +msgctxt "@item:intable Text context" +msgid "Extension" +msgstr "Па&шырэнні файлаў:" + +#: syntax/katethemeconfig.cpp:63 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Preprocessor" +msgstr "" + +#: syntax/katethemeconfig.cpp:65 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Attribute" +msgstr "" + +#: syntax/katethemeconfig.cpp:68 +#, fuzzy, kde-format +#| msgid "Character" +msgctxt "@item:intable Text context" +msgid "Character" +msgstr "Знак" + +#: syntax/katethemeconfig.cpp:70 +#, fuzzy, kde-format +#| msgid "Character" +msgctxt "@item:intable Text context" +msgid "Special Character" +msgstr "Знак" + +#: syntax/katethemeconfig.cpp:72 +#, fuzzy, kde-format +#| msgid "String" +msgctxt "@item:intable Text context" +msgid "String" +msgstr "Радок" + +#: syntax/katethemeconfig.cpp:74 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Verbatim String" +msgstr "" + +#: syntax/katethemeconfig.cpp:76 +#, fuzzy, kde-format +#| msgid "Filetype Specific Settings" +msgctxt "@item:intable Text context" +msgid "Special String" +msgstr "Адмысловыя настаўленні для тыпаў файлаў" + +#: syntax/katethemeconfig.cpp:78 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Imports, Modules, Includes" +msgstr "" + +#: syntax/katethemeconfig.cpp:81 +#, fuzzy, kde-format +#| msgid "Data Type" +msgctxt "@item:intable Text context" +msgid "Data Type" +msgstr "Тып данняў" + +#: syntax/katethemeconfig.cpp:83 +#, fuzzy, kde-format +#| msgid "Decimal/Value" +msgctxt "@item:intable Text context" +msgid "Decimal/Value" +msgstr "Дзесятковы лік/Значэнне" + +#: syntax/katethemeconfig.cpp:85 +#, fuzzy, kde-format +#| msgid "Base-N Integer" +msgctxt "@item:intable Text context" +msgid "Base-N Integer" +msgstr "Цэлы лік парадку N" + +#: syntax/katethemeconfig.cpp:87 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Floating Point" +msgstr "" + +#: syntax/katethemeconfig.cpp:89 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Constant" +msgstr "" + +#: syntax/katethemeconfig.cpp:92 +#, fuzzy, kde-format +#| msgid "Comment" +msgctxt "@item:intable Text context" +msgid "Comment" +msgstr "Каментар" + +#: syntax/katethemeconfig.cpp:94 +#, fuzzy, kde-format +#| msgid "Enumeration" +msgctxt "@item:intable Text context" +msgid "Documentation" +msgstr "Пералічэнне" + +#: syntax/katethemeconfig.cpp:96 +#, fuzzy, kde-format +#| msgid "Header Properties" +msgctxt "@item:intable Text context" +msgid "Annotation" +msgstr "Уласцівасці загалоўка" + +#: syntax/katethemeconfig.cpp:98 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Comment Variable" +msgstr "&Зменныя:" + +#: syntax/katethemeconfig.cpp:101 +#, fuzzy, kde-format +#| msgid "Region Marker" +msgctxt "@item:intable Text context" +msgid "Region Marker" +msgstr "Маркер рэгіёну" + +#: syntax/katethemeconfig.cpp:103 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Inform" +msgctxt "@item:intable Text context" +msgid "Information" +msgstr "Inform" + +#: syntax/katethemeconfig.cpp:105 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Warning" +msgstr "Папярэджанне" + +#: syntax/katethemeconfig.cpp:107 +#, fuzzy, kde-format +#| msgid "Alert" +msgctxt "@item:intable Text context" +msgid "Alert" +msgstr "Трывога" + +#: syntax/katethemeconfig.cpp:110 +#, fuzzy, kde-format +#| msgid "Others" +msgctxt "@item:intable Text context" +msgid "Others" +msgstr "Іншыя" + +#: syntax/katethemeconfig.cpp:113 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Error" +msgstr "Памылка" + +#: syntax/katethemeconfig.cpp:162 +#, fuzzy, kde-format +#| msgid "Use Default Style" +msgid "Use Default Colors" +msgstr "Выкарыстоўваць прадвызначаны стыль" + +#: syntax/katethemeconfig.cpp:182 +#, fuzzy, kde-format +#| msgid "&Background Color..." +msgid "Editor Background Colors" +msgstr "&Фонавы колер..." + +#: syntax/katethemeconfig.cpp:184 +#, fuzzy, kde-format +msgid "Text Area" +msgstr "Фон тэкставай вобласці" + +#: syntax/katethemeconfig.cpp:186 +#, kde-format +msgid "

Sets the background color of the editing area.

" +msgstr "

Вызначае фонавы колер вобласці рэдагавання.

" + +#: syntax/katethemeconfig.cpp:191 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgid "Selected Text" +msgstr "Вылучаны тэкст:" + +#: syntax/katethemeconfig.cpp:194 +#, fuzzy, kde-format +msgid "" +"

Sets the background color of the selection.

To set the text color " +"for selected text, use the "Configure Highlighting" dialog." +"

" +msgstr "" +"

Вызначае фонавы колер для вылучанага тэксту.

Каб вызначыць колер " +"вылучанага тэксту, адкрыйце акно \"Настаўленне падсветкі\".

" + +#: syntax/katethemeconfig.cpp:200 +#, fuzzy, kde-format +#| msgid "Current line:" +msgid "Current Line" +msgstr "Актыўны радок:" + +#: syntax/katethemeconfig.cpp:202 +#, kde-format +msgid "" +"

Sets the background color of the currently active line, which means the " +"line where your cursor is positioned.

" +msgstr "" +"

Вызначае фонавы колер для актыўнага радка, дзе знаходзіцца курсор.

" + +#: syntax/katethemeconfig.cpp:207 +#, fuzzy, kde-format +msgid "Search Highlight" +msgstr "Падсвечванне" + +#: syntax/katethemeconfig.cpp:209 +#, fuzzy, kde-format +#| msgid "

Sets the background color of the editing area.

" +msgid "

Sets the background color of search results.

" +msgstr "

Вызначае фонавы колер вобласці рэдагавання.

" + +#: syntax/katethemeconfig.cpp:214 +#, fuzzy, kde-format +msgid "Replace Highlight" +msgstr "Падсвечванне" + +#: syntax/katethemeconfig.cpp:216 +#, fuzzy, kde-format +#| msgid "

Sets the background color of the editing area.

" +msgid "

Sets the background color of replaced text.

" +msgstr "

Вызначае фонавы колер вобласці рэдагавання.

" + +#: syntax/katethemeconfig.cpp:223 +#, fuzzy, kde-format +#| msgid "Show &Icon Border" +msgid "Icon Border" +msgstr "Паказаць поле &значак" + +#: syntax/katethemeconfig.cpp:226 +#, fuzzy, kde-format +#| msgid "Background" +msgid "Background Area" +msgstr "Фон" + +#: syntax/katethemeconfig.cpp:228 +#, fuzzy, kde-format +#| msgid "

Sets the background color of the editing area.

" +msgid "

Sets the background color of the icon border.

" +msgstr "

Вызначае фонавы колер вобласці рэдагавання.

" + +#: syntax/katethemeconfig.cpp:233 view/screenshotdialog.cpp:265 +#, fuzzy, kde-format +#| msgid "Line numbers:" +msgid "Line Numbers" +msgstr "Нумары радкоў:" + +#: syntax/katethemeconfig.cpp:235 +#, fuzzy, kde-format +#| msgid "" +#| "

This color will be used to draw the line numbers (if enabled) and the " +#| "lines in the code-folding pane.

" +msgid "

This color will be used to draw the line numbers (if enabled).

" +msgstr "" +"

Гэты колер выкарыстоўваецца для нумароў радкоў і элементаў у панэлі " +"згортвання коду.

" + +#: syntax/katethemeconfig.cpp:240 +#, fuzzy, kde-format +#| msgid "Current line:" +msgid "Current Line Number" +msgstr "Актыўны радок:" + +#: syntax/katethemeconfig.cpp:242 +#, fuzzy, kde-format +#| msgid "" +#| "

This color will be used to draw the line numbers (if enabled) and the " +#| "lines in the code-folding pane.

" +msgid "" +"

This color will be used to draw the number of the current line (if " +"enabled).

" +msgstr "" +"

Гэты колер выкарыстоўваецца для нумароў радкоў і элементаў у панэлі " +"згортвання коду.

" + +#: syntax/katethemeconfig.cpp:247 +#, kde-format +msgid "Separator" +msgstr "" + +#: syntax/katethemeconfig.cpp:249 +#, fuzzy, kde-format +#| msgid "" +#| "

This color will be used to draw the line numbers (if enabled) and the " +#| "lines in the code-folding pane.

" +msgid "" +"

This color will be used to draw the line between line numbers and the " +"icon borders, if both are enabled.

" +msgstr "" +"

Гэты колер выкарыстоўваецца для нумароў радкоў і элементаў у панэлі " +"згортвання коду.

" + +#: syntax/katethemeconfig.cpp:254 +#, fuzzy, kde-format +msgid "Word Wrap Marker" +msgstr "Маркеры пераносу радкоў:" + +#: syntax/katethemeconfig.cpp:257 +#, kde-format +msgid "" +"

Sets the color of Word Wrap-related markers:

Static Word Wrap
A vertical line which shows the column where text is going to be " +"wrapped
Dynamic Word Wrap
An arrow shown to the left of " +"visually-wrapped lines
" +msgstr "" + +#: syntax/katethemeconfig.cpp:264 +#, kde-format +msgid "Code Folding" +msgstr "Згортванне коду" + +#: syntax/katethemeconfig.cpp:266 +#, fuzzy, kde-format +#| msgid "

Sets the background color of the editing area.

" +msgid "

Sets the color of the code folding bar.

" +msgstr "

Вызначае фонавы колер вобласці рэдагавання.

" + +#: syntax/katethemeconfig.cpp:271 +#, fuzzy, kde-format +#| msgid "Scroll Line Up" +msgid "Modified Lines" +msgstr "Перайсці на радок вышэй" + +#: syntax/katethemeconfig.cpp:273 +#, fuzzy, kde-format +#| msgid "

Sets the color of the tabulator marks:

" +msgid "" +"

Sets the color of the line modification marker for modified lines.

" +msgstr "

Вызначае колер для маркераў водступаў:

" + +#: syntax/katethemeconfig.cpp:278 +#, fuzzy, kde-format +#| msgid "Save File" +msgid "Saved Lines" +msgstr "Запісаць файл" + +#: syntax/katethemeconfig.cpp:280 +#, fuzzy, kde-format +#| msgid "

Sets the color of the tabulator marks:

" +msgid "

Sets the color of the line modification marker for saved lines.

" +msgstr "

Вызначае колер для маркераў водступаў:

" + +#: syntax/katethemeconfig.cpp:287 +#, fuzzy, kde-format +#| msgid "Selection Mode" +msgid "Text Decorations" +msgstr "Рэжым вылучэння" + +#: syntax/katethemeconfig.cpp:290 +#, kde-format +msgid "Spelling Mistake Line" +msgstr "" + +#: syntax/katethemeconfig.cpp:292 +#, fuzzy, kde-format +#| msgid "

Sets the color of the tabulator marks:

" +msgid "" +"

Sets the color of the line that is used to indicate spelling mistakes.

" +msgstr "

Вызначае колер для маркераў водступаў:

" + +#: syntax/katethemeconfig.cpp:297 +#, fuzzy, kde-format +#| msgid "Tab markers:" +msgid "Tab and Space Markers" +msgstr "Маркеры водступаў:" + +#: syntax/katethemeconfig.cpp:299 +#, fuzzy, kde-format +#| msgid "

Sets the color of the tabulator marks:

" +msgid "

Sets the color of the tabulator marks.

" +msgstr "

Вызначае колер для маркераў водступаў:

" + +#: syntax/katethemeconfig.cpp:304 +#, fuzzy, kde-format +#| msgid "Header Properties" +msgid "Indentation Line" +msgstr "Уласцівасці загалоўка" + +#: syntax/katethemeconfig.cpp:306 +#, fuzzy, kde-format +#| msgid "

Sets the color of the tabulator marks:

" +msgid "

Sets the color of the vertical indentation lines.

" +msgstr "

Вызначае колер для маркераў водступаў:

" + +#: syntax/katethemeconfig.cpp:311 +#, fuzzy, kde-format +msgid "Bracket Highlight" +msgstr "Падсветка дужак:" + +#: syntax/katethemeconfig.cpp:314 +#, fuzzy, kde-format +msgid "" +"

Sets the bracket matching color. This means, if you place the cursor e.g. " +"at a (, the matching ) will be highlighted with this color.

" +msgstr "" +"

Вызначае колер для адпаведных дужак. Калі вы размесціце курсор, напр., на " +"(, будзе падсвечанай адпаведная ёй дужка ).

" + +#: syntax/katethemeconfig.cpp:322 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "Marker Colors" +msgstr "Колеры" + +#: syntax/katethemeconfig.cpp:324 view/kateviewhelpers.cpp:1536 +#, kde-format +msgid "Bookmark" +msgstr "Закладка" + +#: syntax/katethemeconfig.cpp:325 +#, kde-format +msgid "Active Breakpoint" +msgstr "Актыўны пункт спыну" + +#: syntax/katethemeconfig.cpp:326 +#, kde-format +msgid "Reached Breakpoint" +msgstr "Дасягнуты пункт спыну" + +#: syntax/katethemeconfig.cpp:327 +#, kde-format +msgid "Disabled Breakpoint" +msgstr "Выключаны пункт спыну" + +#: syntax/katethemeconfig.cpp:328 +#, kde-format +msgid "Execution" +msgstr "Выкананне" + +#: syntax/katethemeconfig.cpp:329 +#, fuzzy, kde-format +msgid "Warning" +msgstr "Папярэджанне" + +#: syntax/katethemeconfig.cpp:330 +#, fuzzy, kde-format +msgid "Error" +msgstr "Памылка" + +#: syntax/katethemeconfig.cpp:332 +#, fuzzy, kde-format +#| msgid "" +#| "

Sets the background color of the selected marker type.

Note: The marker color is displayed lightly because of transparency.

" +msgid "" +"

Sets the background color of mark type.

Note: The marker " +"color is displayed lightly because of transparency.

" +msgstr "" +"

Вызначае фонавы колер для выбранага тыпу маркераў.

Заўвага: " +"Колер маркераў можа быць святлейшым з-за празрыстасці.

" + +#: syntax/katethemeconfig.cpp:344 +#, kde-format +msgid "Text Templates & Snippets" +msgstr "" + +#: syntax/katethemeconfig.cpp:349 +#, fuzzy, kde-format +#| msgid "Background" +msgid "Background" +msgstr "Фон" + +#: syntax/katethemeconfig.cpp:355 +#, kde-format +msgid "Editable Placeholder" +msgstr "" + +#: syntax/katethemeconfig.cpp:361 +#, kde-format +msgid "Focused Editable Placeholder" +msgstr "" + +#: syntax/katethemeconfig.cpp:367 +#, kde-format +msgid "Not Editable Placeholder" +msgstr "" + +#: syntax/katethemeconfig.cpp:501 +#, kde-format +msgid "" +"

This list displays the default styles for the current color theme and " +"offers the means to edit them. The style name reflects the current style " +"settings.

To edit the colors, click the colored squares, or select the " +"color to edit from the popup menu.

You can unset the Background and " +"Selected Background colors from the popup menu when appropriate.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:568 +#, fuzzy, kde-format +#| msgid "Normal Text" +msgctxt "@item:intable" +msgid "Normal Text & Source Code" +msgstr "Звычайны тэкст" + +#: syntax/katethemeconfig.cpp:575 +#, kde-format +msgctxt "@item:intable" +msgid "Numbers, Types & Constants" +msgstr "" + +#: syntax/katethemeconfig.cpp:582 +#, fuzzy, kde-format +#| msgid "Character" +msgctxt "@item:intable" +msgid "Strings & Characters" +msgstr "Знак" + +#: syntax/katethemeconfig.cpp:589 +#, kde-format +msgctxt "@item:intable" +msgid "Comments & Documentation" +msgstr "" + +#: syntax/katethemeconfig.cpp:596 +#, kde-format +msgctxt "@item:intable" +msgid "Miscellaneous" +msgstr "" + +#: syntax/katethemeconfig.cpp:704 +#, fuzzy, kde-format +msgid "H&ighlight:" +msgstr "&Падсветка:" + +#: syntax/katethemeconfig.cpp:746 +#, kde-format +msgid "" +"

This list displays the contexts of the current syntax highlight mode and " +"offers the means to edit them. The context name reflects the current style " +"settings.

To edit using the keyboard, press <SPACE> and choose a property from the popup menu.

To edit the colors, " +"click the colored squares, or select the color to edit from the popup menu.

You can unset the Background and Selected Background colors from the " +"context menu when appropriate.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:1027 +#, fuzzy, kde-format +#| msgid "Normal Text Styles" +msgid "Default Theme" +msgstr "Стылі звычайнага тэксту" + +#: syntax/katethemeconfig.cpp:1028 +#, fuzzy, kde-format +msgid "Theme Editor" +msgstr "Выбраць рэдактар..." + +#: syntax/katethemeconfig.cpp:1046 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgid "Select theme:" +msgstr "Вылучаны тэкст:" + +#: syntax/katethemeconfig.cpp:1119 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Scheme" +msgid "&Theme:" +msgstr "Scheme" + +#: syntax/katethemeconfig.cpp:1128 +#, fuzzy, kde-format +#| msgid "&Save File As..." +msgctxt "@action:button" +msgid "&Copy…" +msgstr "&Запісаць файл як..." + +#: syntax/katethemeconfig.cpp:1136 +#, fuzzy, kde-format +#| msgid "E&xport as HTML..." +msgctxt "@action:button" +msgid "Export…" +msgstr "&Экспартаваць у HTML..." + +#: syntax/katethemeconfig.cpp:1140 +#, fuzzy, kde-format +#| msgid "Normal &Color..." +msgctxt "@action:button" +msgid "Import…" +msgstr "Звычайны &колер..." + +#: syntax/katethemeconfig.cpp:1147 +#, kde-format +msgid "Bundled read-only theme. To modify the theme, please copy it." +msgstr "" + +#: syntax/katethemeconfig.cpp:1160 +#, kde-format +msgid "Colors" +msgstr "Колеры" + +#: syntax/katethemeconfig.cpp:1164 +#, fuzzy, kde-format +#| msgid "Normal Text Styles" +msgid "Default Text Styles" +msgstr "Стылі звычайнага тэксту" + +#: syntax/katethemeconfig.cpp:1168 +#, fuzzy, kde-format +msgid "Highlighting Text Styles" +msgstr "Стылі падсветкі тэксту" + +#: syntax/katethemeconfig.cpp:1180 +#, fuzzy, kde-format +#| msgid "Font & Color Schemas" +msgid "Exporting color theme: %1" +msgstr "Шрыфты і колерныя схемы" + +#: syntax/katethemeconfig.cpp:1182 syntax/katethemeconfig.cpp:1203 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "Color theme" +msgstr "Колеры" + +#: syntax/katethemeconfig.cpp:1203 +#, fuzzy, kde-format +#| msgid "Font & Color Schemas" +msgid "Importing Color Theme" +msgstr "Шрыфты і колерныя схемы" + +#: syntax/katethemeconfig.cpp:1217 +#, kde-format +msgid "" +"Importing will overwrite the existing theme file \"%1\". This can not be " +"undone." +msgstr "" + +#: syntax/katethemeconfig.cpp:1219 +#, fuzzy, kde-format +#| msgid "Close Nevertheless" +msgid "Import Nevertheless" +msgstr "Усё роўна закрыць!" + +#: syntax/katethemeconfig.cpp:1308 +#, fuzzy, kde-format +#| msgid "Font & Color Schemas" +msgid "Follow System Color Scheme" +msgstr "Шрыфты і колерныя схемы" + +#: syntax/katethemeconfig.cpp:1375 +#, kde-format +msgid "Do you really want to delete the theme \"%1\"? This can not be undone." +msgstr "" + +#: syntax/katethemeconfig.cpp:1377 +#, fuzzy, kde-format +#| msgid "Close Nevertheless" +msgid "Delete Nevertheless" +msgstr "Усё роўна закрыць!" + +#: syntax/katethemeconfig.cpp:1419 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "Copy theme" +msgstr "Колеры" + +#: syntax/katethemeconfig.cpp:1420 +#, kde-format +msgid "Name for copy of color theme \"%1\":" +msgstr "" + +#: syntax/katethemeconfig.cpp:1432 +#, kde-format +msgid "" +"

The theme \"%1\" already exists.

Please choose a different theme " +"name.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:1433 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "Copy Theme" +msgstr "Колеры" + +#: syntax/katethemeconfig.cpp:1486 syntax/katethemeconfig.cpp:1491 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "Color Themes" +msgstr "Колеры" + +#: utils/kateautoindent.cpp:88 +#, fuzzy, kde-format +#| msgid "None" +msgctxt "Autoindent mode" +msgid "None" +msgstr "Няма" + +#: utils/kateautoindent.cpp:92 +#, fuzzy, kde-format +#| msgid "Normal" +msgctxt "Autoindent mode" +msgid "Normal" +msgstr "Звычайны" + +#: utils/katebookmarks.cpp:49 +#, fuzzy, kde-format +#| msgid "Clear &Bookmark" +msgid "Toggle &Bookmark" +msgstr "Прыбраць &закладку" + +#: utils/katebookmarks.cpp:53 +#, kde-format +msgid "If a line has no bookmark then add one, otherwise remove it." +msgstr "Калі радок не мае адпаведнай закладкі, дадае яе; калі мае, выдаляе яе." + +#: utils/katebookmarks.cpp:56 +#, kde-format +msgid "Clear &All Bookmarks" +msgstr "Прыбраць &усе закладкі" + +#: utils/katebookmarks.cpp:59 +#, kde-format +msgid "Remove all bookmarks of the current document." +msgstr "Прыбраць усе закладкі з адкрытага дакумэнта." + +#: utils/katebookmarks.cpp:62 utils/katebookmarks.cpp:219 +#, kde-format +msgid "Next Bookmark" +msgstr "Наступная закладка" + +#: utils/katebookmarks.cpp:66 +#, kde-format +msgid "Go to the next bookmark." +msgstr "Ісці да наступнай закладкі." + +#: utils/katebookmarks.cpp:69 utils/katebookmarks.cpp:220 +#, kde-format +msgid "Previous Bookmark" +msgstr "Папярэдняя закладка" + +#: utils/katebookmarks.cpp:73 +#, kde-format +msgid "Go to the previous bookmark." +msgstr "Ісці да папярэдняй закладкі." + +#: utils/katebookmarks.cpp:76 +#, fuzzy, kde-format +msgid "&Bookmarks" +msgstr "&Закладкі" + +#: utils/katebookmarks.cpp:192 +#, kde-format +msgid "&Next: %1 - \"%2\"" +msgstr "&Наступная: %1 - \"%2\"" + +#: utils/katebookmarks.cpp:198 +#, kde-format +msgid "&Previous: %1 - \"%2\"" +msgstr "&Папярэдняя: %1 - \"%2\"" + +#: utils/katecmds.cpp:53 +#, kde-format +msgid "

indent

Indents the selected lines or the current line

" +msgstr "" + +#: utils/katecmds.cpp:58 +#, kde-format +msgid "

unindent

Unindents the selected lines or current line.

" +msgstr "" + +#: utils/katecmds.cpp:63 +#, kde-format +msgid "" +"

cleanindent

Cleans up the indentation of the selected lines or " +"current line according to the indentation settings in the document.

" +msgstr "" + +#: utils/katecmds.cpp:68 +#, kde-format +msgid "" +"

comment

Inserts comment markers to make the selection or selected " +"lines or current line a comment according to the text format as defined by " +"the syntax highlight definition for the document.

" +msgstr "" + +#: utils/katecmds.cpp:74 +#, kde-format +msgid "" +"

uncomment

Removes comment markers from the selection or selected " +"lines or current line according to the text format as defined by the syntax " +"highlight definition for the document.

" +msgstr "" + +#: utils/katecmds.cpp:80 +#, kde-format +msgid "" +"

goto line number

This command navigates to the specified " +"line number.

" +msgstr "" + +#: utils/katecmds.cpp:85 +#, kde-format +msgid "" +"

set-indent-pasted-text enable

If enabled, indentation of " +"text pasted from the clipboard is adjusted using the current indenter.

Possible true values: 1 on true
possible false values: 0 off false" +msgstr "" + +#: utils/katecmds.cpp:91 +#, fuzzy, kde-format +#| msgid "Delete the current file type." +msgid "Deletes the current line." +msgstr "Выдаліць гэты тып файлаў." + +#: utils/katecmds.cpp:95 +#, kde-format +msgid "" +"

set-tab-width width

Sets the tab width to the number " +"width

" +msgstr "" + +#: utils/katecmds.cpp:100 +#, kde-format +msgid "" +"

set-replace-tab enable

If enabled, tabs are replaced with " +"spaces as you type.

Possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:107 +#, kde-format +msgid "" +"

set-show-tabs enable

If enabled, TAB characters and trailing " +"whitespace will be visualized by a small dot.

Possible true values: 1 " +"on true
possible false values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:114 +#, kde-format +msgid "" +"

set-remove-trailing-spaces mode

Removes the trailing spaces " +"in the document depending on the mode.

Possible values:" +"

  • none: never remove trailing spaces.
  • modified: " +"remove trailing spaces only of modified lines.
  • all: remove " +"trailing spaces in the entire document.

" +msgstr "" + +#: utils/katecmds.cpp:125 +#, kde-format +msgid "" +"

set-indent-width width

Sets the indentation width to the " +"number width. Used only if you are indenting with spaces.

" +msgstr "" + +#: utils/katecmds.cpp:130 +#, kde-format +msgid "" +"

set-indent-mode mode

The mode parameter is a value as seen " +"in the Tools - Indentation menu

" +msgstr "" + +#: utils/katecmds.cpp:135 +#, kde-format +msgid "" +"

set-auto-indent enable

Enable or disable autoindentation.

possible true values: 1 on true
possible false values: 0 off false" +msgstr "" + +#: utils/katecmds.cpp:142 +#, kde-format +msgid "" +"

set-line-numbers enable

Sets the visibility of the line " +"numbers pane.

possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:149 +#, kde-format +msgid "" +"

set-folding-markers enable

Sets the visibility of the " +"folding markers pane.

possible true values: 1 on true
possible " +"false values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:156 +#, kde-format +msgid "" +"

set-icon-border enable

Sets the visibility of the icon " +"border.

possible true values: 1 on true
possible false values: 0 " +"off false

" +msgstr "" + +#: utils/katecmds.cpp:163 +#, kde-format +msgid "" +"

set-word-wrap enable

Enables dynamic word wrap according to " +"enable

possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:170 +#, kde-format +msgid "" +"

set-word-wrap-column width

Sets the line width for hard " +"wrapping to width. This is used if you are having your text wrapped " +"automatically.

" +msgstr "" + +#: utils/katecmds.cpp:175 +#, kde-format +msgid "" +"

set-replace-tabs-save enable

When enabled, tabs will be " +"replaced with whitespace whenever the document is saved.

possible " +"true values: 1 on true
possible false values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:182 +#, kde-format +msgid "" +"

set-highlight highlight

Sets the syntax highlighting system " +"for the document. The argument must be a valid highlight name, as seen in " +"the Tools → Highlighting menu. This command provides an autocompletion list " +"for its argument.

" +msgstr "" + +#: utils/katecmds.cpp:188 +#, kde-format +msgid "

set-mode mode

Sets the mode as seen in Tools - Mode

" +msgstr "" + +#: utils/katecmds.cpp:193 +#, kde-format +msgid "" +"

set-show-indent enable

If enabled, indentation will be " +"visualized by a vertical dotted line.

possible true values: 1 on " +"true
possible false values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:199 +#, fuzzy, kde-format +msgid "

Open the Print dialog to print the current document.

" +msgstr "Друкаваць бягучы дакумент" + +#: utils/katecmds.cpp:314 utils/katecmds.cpp:341 +#, kde-format +msgid "Missing argument. Usage: %1 " +msgstr "Адсутнічае аргумент. Выкарыстанне: %1 " + +#: utils/katecmds.cpp:327 +#, fuzzy, kde-format +msgid "No such highlighting '%1'" +msgstr "Такой падсветкі няма: '%1'" + +#: utils/katecmds.cpp:333 +#, fuzzy, kde-format +#| msgid "No such command: \"%1\"" +msgid "No such mode '%1'" +msgstr "Такога загаду няма: \"%1\"" + +#: utils/katecmds.cpp:346 +#, kde-format +msgid "Failed to convert argument '%1' to integer." +msgstr "Немагчыма пераўтварыць аргумент '%1' у цэлы лік." + +#: utils/katecmds.cpp:350 utils/katecmds.cpp:355 +#, kde-format +msgid "Width must be at least 1." +msgstr "Шырыня павінна быць не менш за 1." + +#: utils/katecmds.cpp:360 +#, kde-format +msgid "Column must be at least 1." +msgstr "Слупок павінны быць не менш за 1." + +#: utils/katecmds.cpp:390 +#, kde-format +msgid "Usage: %1 on|off|1|0|true|false" +msgstr "Выкарыстанне: %1 on|off|1|0|true|false" + +#: utils/katecmds.cpp:417 +#, kde-format +msgid "Bad argument '%1'. Usage: %2 on|off|1|0|true|false" +msgstr "Кепскі аргумент '%1'. Выкарыстанне: %2 on|off|1|0|true|false" + +#: utils/katecmds.cpp:421 +#, kde-format +msgid "" +"Usage: set-remove-trailing-spaces 0|-|none or 1|+|mod|modified or 2|*|all" +msgstr "" + +#: utils/katecmds.cpp:435 vimode/cmds.cpp:168 +#, kde-format +msgid "Unknown command '%1'" +msgstr "Невядомы загад '%1'" + +#: utils/katecmds.cpp:493 +#, kde-format +msgid "" +"

char identifier

This command allows you to insert literal " +"characters by their numerical identifier, in decimal, octal or hexadecimal " +"form.

Examples:

  • char 234
  • char 0x1234

" +msgstr "" + +#: utils/katecmds.cpp:560 +#, kde-format +msgid "" +"

date or date format

Inserts a date/time string as defined by " +"the specified format, or the format yyyy-MM-dd hh:mm:ss if none is specified." +"

Possible format specifiers are:

Tab key action (if no selection exists) Tab " +"to align the current line in the current code block like in Emacs, make " +"Tab a shortcut to the action Format Indentation." +"\">More ...

d əvvəlində " +"sıfır olmadan (1-31).
ddGün nömrəsinin əvvəlində " +"sıfırla (01-31).
dddYerləşdiyi ölkəyə görə " +"həftənin günün qısa adı (məs.,\"Şən\"..\"Baz\").
ddddYerləşdiyi ölkəyə görə həftənin günün tam adı (məs., \"Şənbə\".." +"\"Bazar\").>
MAy nömrəsi əvvəli sıfırsız " +"(01-12).
Ayın ölkə formatına uyğun qısa adı(məs.," +"\"Yan\"..\"Fev\")
yy
yyyyİlin nömrəsi dörd rəqəmlə " +"(1752-8000)
hSaat əvvəlində sıfır olmadan(0..23 və " +"ya 1..12 AM/PM).
hhSaat əvvəli sıfırla (00..23 və " +"ya 01..12 AM/PM).
mDəqiqə əvvəli sıfırsız (0..59)." +"
mmDəqiqə əvvəli sıfırla (00..59).
sSaniyə əvvəli sıfırsız (0..59).
ssSaniyə əvvəli sıfırla (00..59).
zMillisaniyə əvvəli sıfırsız (0..999).
zzzMillisaniyə əvvəli sıfırla (000..999).
APAM/" +"PM -lə göstər. AP \"AM\" və ya \"PM\" lə əvəzlənəcək.
apam/pm -lə göstər. ap \"am\" və ya \"pm\" -lə əvəzlənəcək.
dThe day as " +"number without a leading zero (1-31).
ddThe day as " +"number with a leading zero (01-31).
dddThe " +"abbreviated localized day name (e.g. 'Mon'..'Sun').
ddddThe long localized day name (e.g. 'Monday'..'Sunday').
MThe month as number without a leading zero (1-12).
MMThe month as number with a leading zero (01-12).
MMMThe abbreviated localized month name (e.g. " +"'Jan'..'Dec').
yyThe year as two digit number " +"(00-99).
yyyyThe year as four digit number " +"(1752-8000).
hThe hour without a leading zero " +"(0..23 or 1..12 if AM/PM display).
hhThe hour with " +"a leading zero (00..23 or 01..12 if AM/PM display).
mThe minute without a leading zero (0..59).
mmThe minute with a leading zero (00..59).
sThe second without a leading zero (0..59).
ssThe second with a leading zero (00..59).
zThe milliseconds without leading zeroes (0..999).
zzzThe milliseconds with leading zeroes (000..999).
APUse AM/PM display. AP will be replaced by either " +"\"AM\" or \"PM\".
apUse am/pm display. ap will be " +"replaced by either \"am\" or \"pm\".

" +msgstr "" + +#: utils/katecmds.cpp:621 +#, fuzzy, kde-format +#| msgid "Selected" +msgid "Remove Duplicate Lines" +msgstr "Вылучаны" + +#: utils/katecmds.cpp:622 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgid "Remove Duplicates and Sort Text Alphabetically" +msgstr "Вылучаны тэкст:" + +#: utils/katecmds.cpp:623 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgid "Sort Text Naturally" +msgstr "Вылучаны тэкст:" + +#: utils/katecmds.cpp:624 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgid "Sort Selected Text Alphabetically" +msgstr "Вылучаны тэкст:" + +#: utils/katecmds.cpp:699 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "" +"

sort

Sort the selected text or whole document if there is no " +"selection

" +msgstr "Вылучыць увесь тэкст гэтага дакумента." + +#: utils/katecmds.cpp:703 +#, kde-format +msgid "" +"

uniq

Remove duplicate lines from the selected text or whole " +"document if there is no selection.

" +msgstr "" + +#: utils/katecmds.cpp:707 +#, kde-format +msgid "" +"

sortuniq

Sort the selected text or whole document and then remove " +"all duplicate lines.

" +msgstr "" + +#: utils/katecmds.cpp:711 +#, kde-format +msgid "" +"

natsort

Sort the selected text or whole document in natural order." +"
Here is an example to show the difference to the normal sort method:" +"
sort(a10, a1, a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" +msgstr "" + +#: utils/kateglobal.cpp:60 +#, kde-format +msgid "Kate Part" +msgstr "Модуль Kate" + +#: utils/kateglobal.cpp:62 +#, kde-format +msgid "Embeddable editor component" +msgstr "Унутраны тэкставы рэдактар" + +#: utils/kateglobal.cpp:64 +#, fuzzy, kde-format +msgid "(c) 2000-2025 The Kate Authors" +msgstr "© 2000-2004 Стваральнікі Kate" + +#: utils/kateglobal.cpp:84 +#, kde-format +msgid "Christoph Cullmann" +msgstr "" + +#: utils/kateglobal.cpp:84 +#, fuzzy, kde-format +msgid "Maintainer" +msgstr "Падтрымка" + +#: utils/kateglobal.cpp:85 +#, kde-format +msgid "Dominik Haumann" +msgstr "" + +#: utils/kateglobal.cpp:85 utils/kateglobal.cpp:86 utils/kateglobal.cpp:87 +#: utils/kateglobal.cpp:90 utils/kateglobal.cpp:93 utils/kateglobal.cpp:98 +#, kde-format +msgid "Core Developer" +msgstr "Галоўны распрацоўнік" + +#: utils/kateglobal.cpp:86 +#, kde-format +msgid "Milian Wolff" +msgstr "" + +#: utils/kateglobal.cpp:87 +#, kde-format +msgid "Joseph Wenninger" +msgstr "" + +#: utils/kateglobal.cpp:88 +#, kde-format +msgid "Erlend Hamberg" +msgstr "" + +#: utils/kateglobal.cpp:89 +#, kde-format +msgid "Bernhard Beschow" +msgstr "" + +#: utils/kateglobal.cpp:89 utils/kateglobal.cpp:105 +#, fuzzy, kde-format +msgid "Developer" +msgstr "Распрацоўшчык" + +#: utils/kateglobal.cpp:90 +#, kde-format +msgid "Anders Lund" +msgstr "" + +#: utils/kateglobal.cpp:91 +#, kde-format +msgid "Michel Ludwig" +msgstr "" + +#: utils/kateglobal.cpp:91 +#, fuzzy, kde-format +#| msgid "Spellcheck" +msgid "On-the-fly spell checking" +msgstr "Спраўдзіць правапіс" + +#: utils/kateglobal.cpp:92 +#, kde-format +msgid "Pascal Létourneau" +msgstr "" + +#: utils/kateglobal.cpp:92 +#, kde-format +msgid "Large scale bug fixing" +msgstr "" + +#: utils/kateglobal.cpp:93 +#, kde-format +msgid "Hamish Rodda" +msgstr "" + +#: utils/kateglobal.cpp:94 +#, kde-format +msgid "Waldo Bastian" +msgstr "" + +#: utils/kateglobal.cpp:94 +#, kde-format +msgid "The cool buffersystem" +msgstr "Файная сістэма кішэняў і буфераў" + +#: utils/kateglobal.cpp:95 +#, kde-format +msgid "Charles Samuels" +msgstr "" + +#: utils/kateglobal.cpp:95 +#, kde-format +msgid "The Editing Commands" +msgstr "Каманды рэдагавання" + +#: utils/kateglobal.cpp:96 +#, kde-format +msgid "Matt Newell" +msgstr "" + +#: utils/kateglobal.cpp:96 +#, kde-format +msgid "Testing, ..." +msgstr "Тэсты, ..." + +#: utils/kateglobal.cpp:97 +#, kde-format +msgid "Michael Bartl" +msgstr "" + +#: utils/kateglobal.cpp:97 +#, kde-format +msgid "Former Core Developer" +msgstr "Былы галоўны распрацоўнік" + +#: utils/kateglobal.cpp:98 +#, kde-format +msgid "Michael McCallum" +msgstr "" + +#: utils/kateglobal.cpp:99 +#, kde-format +msgid "Michael Koch" +msgstr "" + +#: utils/kateglobal.cpp:99 +#, kde-format +msgid "KWrite port to KParts" +msgstr "Перанос KWrite на аснову KParts" + +#: utils/kateglobal.cpp:100 +#, kde-format +msgid "Christian Gebauer" +msgstr "" + +#: utils/kateglobal.cpp:101 +#, kde-format +msgid "Simon Hausmann" +msgstr "" + +#: utils/kateglobal.cpp:102 +#, fuzzy, kde-format +#| msgid "Region Marker" +msgid "Glen Parker" +msgstr "Маркер рэгіёну" + +#: utils/kateglobal.cpp:102 +#, kde-format +msgid "KWrite Undo History, Kspell integration" +msgstr "" +"Гісторыя вяртанняў для KWrite, інтэграцыя спраўджвання правапісу праз KSpell" + +#: utils/kateglobal.cpp:103 +#, kde-format +msgid "Scott Manson" +msgstr "" + +#: utils/kateglobal.cpp:103 +#, fuzzy, kde-format +msgid "KWrite XML Syntax highlighting support" +msgstr "Падтрымка падсвятлення сінтаксісу XML для KWrite" + +#: utils/kateglobal.cpp:104 +#, kde-format +msgid "John Firebaugh" +msgstr "" + +#: utils/kateglobal.cpp:104 +#, kde-format +msgid "Patches and more" +msgstr "Лапікі і інш." + +#: utils/kateglobal.cpp:105 +#, kde-format +msgid "Andreas Kling" +msgstr "" + +#: utils/kateglobal.cpp:106 +#, kde-format +msgid "Mirko Stocker" +msgstr "" + +#: utils/kateglobal.cpp:106 +#, kde-format +msgid "Various bugfixes" +msgstr "" + +#: utils/kateglobal.cpp:107 +#, kde-format +msgid "Matthew Woehlke" +msgstr "" + +#: utils/kateglobal.cpp:107 +#, kde-format +msgid "Selection, KColorScheme integration" +msgstr "" + +#: utils/kateglobal.cpp:108 +#, kde-format +msgid "Sebastian Pipping" +msgstr "" + +#: utils/kateglobal.cpp:109 +#, kde-format +msgid "Search bar back- and front-end" +msgstr "" + +#: utils/kateglobal.cpp:112 +#, kde-format +msgid "Jochen Wilhelmy" +msgstr "" + +#: utils/kateglobal.cpp:112 +#, fuzzy, kde-format +#| msgid "KWrite Author" +msgid "Original KWrite Author" +msgstr "Стваральнік KWrite" + +#: utils/kateglobal.cpp:113 +#, kde-format +msgid "Gerald Senarclens de Grancy" +msgstr "" + +#: utils/kateglobal.cpp:113 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Quake Script" +msgid "QA and Scripting" +msgstr "Сцэнар Quake" + +#: utils/kateglobal.cpp:115 +#, kde-format +msgid "Matteo Merli" +msgstr "" + +#: utils/kateglobal.cpp:115 +#, fuzzy, kde-format +msgid "Highlighting for RPM Spec-Files, Perl, Diff and more" +msgstr "Падсвятленне для файлаў спецыфікацыі RPM, Perl, Diff і інш." + +#: utils/kateglobal.cpp:116 +#, kde-format +msgid "Rocky Scaletta" +msgstr "" + +#: utils/kateglobal.cpp:116 +#, fuzzy, kde-format +msgid "Highlighting for VHDL" +msgstr "Падсвятленне для VHDL" + +#: utils/kateglobal.cpp:117 +#, kde-format +msgid "Yury Lebedev" +msgstr "" + +#: utils/kateglobal.cpp:117 +#, fuzzy, kde-format +msgid "Highlighting for SQL" +msgstr "Падсвятленне для SQL" + +#: utils/kateglobal.cpp:118 +#, kde-format +msgid "Chris Ross" +msgstr "" + +#: utils/kateglobal.cpp:118 +#, fuzzy, kde-format +msgid "Highlighting for Ferite" +msgstr "Падсвятленне для Ferite" + +#: utils/kateglobal.cpp:119 +#, kde-format +msgid "Nick Roux" +msgstr "" + +#: utils/kateglobal.cpp:119 +#, fuzzy, kde-format +msgid "Highlighting for ILERPG" +msgstr "Падсвятленне для ILERPG" + +#: utils/kateglobal.cpp:120 +#, kde-format +msgid "Carsten Niehaus" +msgstr "" + +#: utils/kateglobal.cpp:120 +#, fuzzy, kde-format +msgid "Highlighting for LaTeX" +msgstr "Падсвятленне для LaTeX" + +#: utils/kateglobal.cpp:121 +#, kde-format +msgid "Per Wigren" +msgstr "" + +#: utils/kateglobal.cpp:121 +#, fuzzy, kde-format +msgid "Highlighting for Makefiles, Python" +msgstr "Падсвятленне для Makefiles, Python" + +#: utils/kateglobal.cpp:122 +#, kde-format +msgid "Jan Fritz" +msgstr "" + +#: utils/kateglobal.cpp:122 +#, fuzzy, kde-format +msgid "Highlighting for Python" +msgstr "Падсвятленне для Python" + +#: utils/kateglobal.cpp:123 +#, kde-format +msgid "Daniel Naber" +msgstr "" + +#: utils/kateglobal.cpp:124 +#, kde-format +msgid "Roland Pabel" +msgstr "" + +#: utils/kateglobal.cpp:124 +#, fuzzy, kde-format +msgid "Highlighting for Scheme" +msgstr "Падсвятленне для Scheme" + +#: utils/kateglobal.cpp:125 +#, kde-format +msgid "Cristi Dumitrescu" +msgstr "" + +#: utils/kateglobal.cpp:125 +#, kde-format +msgid "PHP Keyword/Datatype list" +msgstr "Спіс ключавых словаў і тыпаў данняў для PHP" + +#: utils/kateglobal.cpp:126 +#, kde-format +msgid "Carsten Pfeiffer" +msgstr "" + +#: utils/kateglobal.cpp:126 +#, kde-format +msgid "Very nice help" +msgstr "Вельмі зручная даведка" + +#: utils/kateglobal.cpp:127 +#, kde-format +msgid "Bruno Massa" +msgstr "" + +#: utils/kateglobal.cpp:127 +#, fuzzy, kde-format +msgid "Highlighting for Lua" +msgstr "Падсвятленне для LaTeX" + +#: utils/kateglobal.cpp:129 +#, kde-format +msgid "All people who have contributed and I have forgotten to mention" +msgstr "" +"Усе іншыя людзі, якія дапамаглі мне ў распрацоўцы, але якіх я забыў памянуць" + +#: utils/kateglobal.cpp:131 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Eugene Zelenko, Ігар Грачышка" + +#: utils/kateglobal.cpp:131 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "greendeath@mail.ru, ihar.hrachyshka@gmail.com" + +#: utils/kateglobal.cpp:255 +#, fuzzy, kde-format +msgid "Configure" +msgstr "Настаўленне" + +#: utils/katesedcmd.cpp:268 +#, fuzzy, kde-format +#| msgid "Replace Confirmation" +msgid "replace with %1?" +msgstr "Пацвярджэнне замены" + +#: utils/katesedcmd.cpp:274 +#, fuzzy, kde-format +#| msgid "1 replacement done" +#| msgid_plural "%1 replacements done" +msgctxt "%2 is the translation of the next message" +msgid "1 replacement done on %2" +msgid_plural "%1 replacements done on %2" +msgstr[0] "выкананая %1 замена" +msgstr[1] "выкананыя %1 замены" +msgstr[2] "выкананыя %1 заменаў" + +#: utils/katesedcmd.cpp:277 +#, fuzzy, kde-format +msgctxt "substituted into the previous message" +msgid "1 line" +msgid_plural "%1 lines" +msgstr[0] "&Падкрэслены" +msgstr[1] "&Падкрэслены" +msgstr[2] "&Падкрэслены" + +#: utils/katevariableexpansionhelpers.cpp:77 +#, kde-format +msgid "" +msgstr "" + +#: utils/katevariableexpansionhelpers.cpp:161 +#, fuzzy, kde-format +#| msgid "&Insert" +msgid "Insert variable" +msgstr "У&ставіць" + +#: utils/katevariableexpansionhelpers.cpp:165 +#, kde-format +msgid "Variables" +msgstr "Пераменныя" + +#: utils/katevariableexpansionhelpers.cpp:169 +#, fuzzy, kde-format +#| msgid "String" +msgid "Filter" +msgstr "Радок" + +#: utils/katevariableexpansionhelpers.cpp:188 +#: utils/katevariableexpansionhelpers.cpp:217 +#, kde-format +msgid "Please select a variable." +msgstr "" + +#: utils/katevariableexpansionhelpers.cpp:206 +#, fuzzy, kde-format +#| msgid "Missing argument. Usage: %1 " +msgid "Current value: %1" +msgstr "Адсутнічае аргумент. Выкарыстанне: %1 " + +#: utils/katevariableexpansionhelpers.cpp:214 +#, fuzzy, kde-format +#| msgid "Current line:" +msgid "Current value: %1" +msgstr "Актыўны радок:" + +#: utils/katevariableexpansionmanager.cpp:86 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "File base name without path and suffix of the current document." +msgstr "Вылучыць увесь тэкст гэтага дакумента." + +#: utils/katevariableexpansionmanager.cpp:94 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "File extension of the current document." +msgstr "Вылучыць увесь тэкст гэтага дакумента." + +#: utils/katevariableexpansionmanager.cpp:102 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "File name without path of the current document." +msgstr "Вылучыць увесь тэкст гэтага дакумента." + +#: utils/katevariableexpansionmanager.cpp:110 +#, fuzzy, kde-format +#| msgid "Reload the current document from disk." +msgid "Full path of the current document including the file name." +msgstr "Перачытаць гэты дакумент з дыску." + +#: utils/katevariableexpansionmanager.cpp:118 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Contents of the current document." +msgstr "Друкаваць гэты дакумент." + +#: utils/katevariableexpansionmanager.cpp:125 +#, fuzzy, kde-format +#| msgid "Reload the current document from disk." +msgid "Full path of the current document excluding the file name." +msgstr "Перачытаць гэты дакумент з дыску." + +#: utils/katevariableexpansionmanager.cpp:133 +#, kde-format +msgid "" +"Full document path including file name, with native path separator " +"(backslash on Windows)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:141 +#, kde-format +msgid "" +"Full document path excluding file name, with native path separator " +"(backslash on Windows)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:149 +#, kde-format +msgid "" +"Line number of the text cursor position in current document (starts with 0)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:156 +#, kde-format +msgid "" +"Column number of the text cursor position in current document (starts with " +"0)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:163 +#, kde-format +msgid "X component in global screen coordinates of the cursor position." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:170 +#, kde-format +msgid "Y component in global screen coordinates of the cursor position." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:177 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "Text selection of the current document." +msgstr "Вылучыць увесь тэкст гэтага дакумента." + +#: utils/katevariableexpansionmanager.cpp:184 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "Start line of selected text of the current document." +msgstr "Вылучыць увесь тэкст гэтага дакумента." + +#: utils/katevariableexpansionmanager.cpp:191 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "Start column of selected text of the current document." +msgstr "Вылучыць увесь тэкст гэтага дакумента." + +#: utils/katevariableexpansionmanager.cpp:198 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "End line of selected text of the current document." +msgstr "Вылучыць увесь тэкст гэтага дакумента." + +#: utils/katevariableexpansionmanager.cpp:205 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "End column of selected text of the current document." +msgstr "Вылучыць увесь тэкст гэтага дакумента." + +#: utils/katevariableexpansionmanager.cpp:212 +#, fuzzy, kde-format +#| msgid "Remove all bookmarks of the current document." +msgid "Number of rows of the current document." +msgstr "Прыбраць усе закладкі з адкрытага дакумэнта." + +#: utils/katevariableexpansionmanager.cpp:219 +#, fuzzy, kde-format +#| msgid "End of document reached." +msgid "Read a document variable." +msgstr "Дасягнуты канец дакумента." + +#: utils/katevariableexpansionmanager.cpp:227 +#, kde-format +msgid "The current date in current locale format." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:234 +#, kde-format +msgid "The current date (ISO)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:241 +#, kde-format +msgid "The current date (QDate formatstring)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:249 +#, kde-format +msgid "The current time in current locale format." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:256 +#, kde-format +msgid "The current time (ISO)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:263 +#, kde-format +msgid "The current time (QTime formatstring)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:271 +#, kde-format +msgid "Access to environment variables." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:279 +#, kde-format +msgid "Evaluate simple JavaScript statements." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:289 +#, kde-format +msgid "Encode text to make it URL compatible." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:297 +#, kde-format +msgid "Generate a new UUID." +msgstr "" + +#: variableeditor/variableeditor.cpp:40 +#, kde-format +msgid "Kate Handbook." +msgstr "" + +#: variableeditor/variableeditor.cpp:213 +#, fuzzy, kde-format +msgid "true" +msgstr "&Закрэслены" + +#: variableeditor/variableeditor.cpp:214 +#, kde-format +msgid "false" +msgstr "" + +#: variableeditor/variableeditor.cpp:350 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "none" +msgstr "" + +#: variableeditor/variableeditor.cpp:351 +#, fuzzy, kde-format +#| msgid "Scroll Line Up" +msgctxt "value for variable remove-trailing-spaces" +msgid "modified" +msgstr "Перайсці на радок вышэй" + +#: variableeditor/variableeditor.cpp:352 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "all" +msgstr "" + +#: variableeditor/variablelineedit.cpp:42 +#, kde-format +msgid "Show list of valid variables." +msgstr "" + +#: variableeditor/variablelineedit.cpp:115 +#, fuzzy, kde-format +#| msgid "Select to Matching Bracket" +msgctxt "short translation please" +msgid "Enable automatic insertion of brackets." +msgstr "Вылучыць да адпаведнай дужкі" + +#: variableeditor/variablelineedit.cpp:121 +#, kde-format +msgctxt "short translation please" +msgid "Set the number of autocenter lines." +msgstr "" + +#: variableeditor/variablelineedit.cpp:126 +#, fuzzy, kde-format +#| msgid "S&elected Background Color..." +msgctxt "short translation please" +msgid "Set the document background color." +msgstr "В&ылучаны фонавы колер..." + +#: variableeditor/variablelineedit.cpp:131 +#, kde-format +msgctxt "short translation please" +msgid "Pressing backspace in leading whitespace unindents." +msgstr "" + +#: variableeditor/variablelineedit.cpp:139 +#, fuzzy, kde-format +#| msgid "Bl&ock Selection Mode" +msgctxt "short translation please" +msgid "Enable block selection mode." +msgstr "Рэжым вылучэння &блока" + +#: variableeditor/variablelineedit.cpp:144 +#, kde-format +msgctxt "short translation please" +msgid "Enable the byte order mark (BOM) when saving Unicode files." +msgstr "" + +#: variableeditor/variablelineedit.cpp:149 +#, kde-format +msgctxt "short translation please" +msgid "Set the color for the bracket highlight." +msgstr "" + +#: variableeditor/variablelineedit.cpp:154 +#, fuzzy, kde-format +#| msgid "

Sets the background color of the editing area.

" +msgctxt "short translation please" +msgid "Set the background color for the current line." +msgstr "

Вызначае фонавы колер вобласці рэдагавання.

" + +#: variableeditor/variablelineedit.cpp:160 +#, kde-format +msgctxt "short translation please" +msgid "Set the default dictionary used for spell checking." +msgstr "" + +#: variableeditor/variablelineedit.cpp:165 +#, kde-format +msgctxt "short translation please" +msgid "Enable dynamic word wrap of long lines." +msgstr "" + +#: variableeditor/variablelineedit.cpp:172 +#, fuzzy, kde-format +#| msgid "Select to End of Line" +msgctxt "short translation please" +msgid "Sets the end of line mode." +msgstr "Вылучыць да канца радка" + +#: variableeditor/variablelineedit.cpp:177 +#, kde-format +msgctxt "short translation please" +msgid "" +"Enable whether pressing enter will insert selected auto completion item." +msgstr "" + +#: variableeditor/variablelineedit.cpp:182 +#, kde-format +msgctxt "short translation please" +msgid "Enable folding markers in the editor border." +msgstr "" + +#: variableeditor/variablelineedit.cpp:187 +#, kde-format +msgctxt "short translation please" +msgid "Enable folding preview in the editor border." +msgstr "" + +#: variableeditor/variablelineedit.cpp:193 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgctxt "short translation please" +msgid "Set the point size of the document font." +msgstr "Вылучыць увесь тэкст гэтага дакумента." + +#: variableeditor/variablelineedit.cpp:198 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgctxt "short translation please" +msgid "Set the font of the document." +msgstr "Вылучыць увесь тэкст гэтага дакумента." + +#: variableeditor/variablelineedit.cpp:214 +#, fuzzy, kde-format +#| msgid "Kate Syntax Highlighting Parser" +msgctxt "short translation please" +msgid "Set the syntax highlighting." +msgstr "Падсвятляльнік сінтаксісу Kate" + +#: variableeditor/variablelineedit.cpp:219 +#, kde-format +msgctxt "short translation please" +msgid "Set the icon bar color." +msgstr "" + +#: variableeditor/variablelineedit.cpp:224 +#, kde-format +msgctxt "short translation please" +msgid "Enable the icon border in the editor view." +msgstr "" + +#: variableeditor/variablelineedit.cpp:229 +#, kde-format +msgctxt "short translation please" +msgid "Set the auto indentation style." +msgstr "" + +#: variableeditor/variablelineedit.cpp:234 +#, kde-format +msgctxt "short translation please" +msgid "Adjust indentation of text pasted from the clipboard." +msgstr "" + +#: variableeditor/variablelineedit.cpp:240 +#, kde-format +msgctxt "short translation please" +msgid "Set the indentation depth for each indent level." +msgstr "" + +#: variableeditor/variablelineedit.cpp:245 +#, kde-format +msgctxt "short translation please" +msgid "Allow odd indentation level (no multiple of indent width)." +msgstr "" + +#: variableeditor/variablelineedit.cpp:250 +#, fuzzy, kde-format +#| msgid "Show &line numbers" +msgctxt "short translation please" +msgid "Show line numbers." +msgstr "Паказваць &нумары радкоў" + +#: variableeditor/variablelineedit.cpp:255 +#, kde-format +msgctxt "short translation please" +msgid "Insert newline at end of file on save." +msgstr "" + +#: variableeditor/variablelineedit.cpp:260 +#, kde-format +msgctxt "short translation please" +msgid "Enable overwrite mode in the document." +msgstr "" + +#: variableeditor/variablelineedit.cpp:265 +#, kde-format +msgctxt "short translation please" +msgid "Enable persistent text selection." +msgstr "" + +#: variableeditor/variablelineedit.cpp:270 +#, kde-format +msgctxt "short translation please" +msgid "Replace tabs with spaces when saving the document." +msgstr "" + +#: variableeditor/variablelineedit.cpp:275 +#, fuzzy, kde-format +#| msgid "Replace &All" +msgctxt "short translation please" +msgid "Replace tabs with spaces." +msgstr "Замяніць &усё" + +#: variableeditor/variablelineedit.cpp:280 +#, fuzzy, kde-format +#| msgid "Remove &trailing spaces" +msgctxt "short translation please" +msgid "Remove trailing spaces when saving the document." +msgstr "Прыбіраць &канцавыя прагалы" + +#: variableeditor/variablelineedit.cpp:285 +#, kde-format +msgctxt "short translation please" +msgid "Show scrollbar minimap." +msgstr "" + +#: variableeditor/variablelineedit.cpp:290 +#, kde-format +msgctxt "short translation please" +msgid "Show scrollbar preview." +msgstr "" + +#: variableeditor/variablelineedit.cpp:301 +#, fuzzy, kde-format +#| msgid "Font & Color Schemas" +msgctxt "short translation please" +msgid "Set the color scheme." +msgstr "Шрыфты і колерныя схемы" + +#: variableeditor/variablelineedit.cpp:306 +#, kde-format +msgctxt "short translation please" +msgid "Set the text selection color." +msgstr "" + +#: variableeditor/variablelineedit.cpp:311 +#, fuzzy, kde-format +msgctxt "short translation please" +msgid "Visualize tabs and trailing spaces." +msgstr "Правілы падсветкі" + +#: variableeditor/variablelineedit.cpp:316 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgctxt "short translation please" +msgid "Enable smart home navigation." +msgstr "Модуль заканчэння словаў" + +#: variableeditor/variablelineedit.cpp:321 +#, kde-format +msgctxt "short translation please" +msgid "Pressing TAB key indents." +msgstr "" + +#: variableeditor/variablelineedit.cpp:327 +#, kde-format +msgctxt "short translation please" +msgid "Set the tab display width." +msgstr "" + +#: variableeditor/variablelineedit.cpp:333 +#, kde-format +msgctxt "short translation please" +msgid "Set the number of undo steps to remember (0 equals infinity)." +msgstr "" + +#: variableeditor/variablelineedit.cpp:339 +#, kde-format +msgctxt "short translation please" +msgid "Set the word wrap column." +msgstr "" + +#: variableeditor/variablelineedit.cpp:344 +#, fuzzy, kde-format +#| msgid "S&elected Background Color..." +msgctxt "short translation please" +msgid "Set the word wrap marker color." +msgstr "В&ылучаны фонавы колер..." + +#: variableeditor/variablelineedit.cpp:349 +#, kde-format +msgctxt "short translation please" +msgid "Enable word wrap while typing text." +msgstr "" + +#: view/katestatusbar.cpp:114 +#, kde-format +msgid "Current cursor position. Click to go to a specific line." +msgstr "" + +#: view/katestatusbar.cpp:127 +#, kde-format +msgid "Insert mode and VI input mode indicator. Click to change the mode." +msgstr "" + +#: view/katestatusbar.cpp:135 +#, fuzzy, kde-format +msgid "Change dictionary" +msgstr "Выбраць рэдактар..." + +#: view/katestatusbar.cpp:161 view/katestatusbar.cpp:488 +#, fuzzy, kde-format +#| msgid "Tab width:" +msgid "Tab Width" +msgstr "Шырыня водступу:" + +#: view/katestatusbar.cpp:169 view/katestatusbar.cpp:503 +#, fuzzy, kde-format +#| msgid "Header Properties" +msgid "Indentation Width" +msgstr "Уласцівасці загалоўка" + +#: view/katestatusbar.cpp:177 +#, fuzzy, kde-format +#| msgid "Header Properties" +msgid "Indentation Mode" +msgstr "Уласцівасці загалоўка" + +#: view/katestatusbar.cpp:179 +#, fuzzy, kde-format +#| msgid "Tabulators" +msgid "Tabulators && Spaces" +msgstr "Знакі водступаў" + +#: view/katestatusbar.cpp:182 +#, fuzzy, kde-format +#| msgid "Tabulators" +msgid "Tabulators" +msgstr "Знакі водступаў" + +#: view/katestatusbar.cpp:185 +#, fuzzy, kde-format +#| msgid "&Replace" +msgid "Spaces" +msgstr "&Замяніць" + +#: view/katestatusbar.cpp:197 +#, fuzzy, kde-format +#| msgid "E&ncoding" +msgid "Encoding" +msgstr "&Знаказбор:" + +#: view/katestatusbar.cpp:200 view/katestatusbar.cpp:201 +#, fuzzy, kde-format +#| msgid "End &of line:" +msgid "End of line type" +msgstr "Канец &радка:" + +#: view/katestatusbar.cpp:207 +#, fuzzy, kde-format +#| msgid "&Bold" +msgid "Mode" +msgstr "&Цёмны" + +#: view/katestatusbar.cpp:209 view/kateview.cpp:703 +#, kde-format +msgid "" +"Here you can choose which mode should be used for the current document. This " +"will influence the highlighting and folding being used, for example." +msgstr "" + +#: view/katestatusbar.cpp:216 +#, fuzzy, kde-format +#| msgid "Kate Syntax Highlighting Parser" +msgid "Syntax highlighting" +msgstr "Падсвятляльнік сінтаксісу Kate" + +#: view/katestatusbar.cpp:261 +#, kde-format +msgid "Line/Column compact mode" +msgstr "" + +#: view/katestatusbar.cpp:307 +#, fuzzy, kde-format +#| msgid " BLK " +msgid "[BLOCK] %1" +msgstr " БЛК " + +#: view/katestatusbar.cpp:323 +#, kde-format +msgid "%1/%2:%3" +msgstr "" + +#: view/katestatusbar.cpp:325 +#, kde-format +msgid "%1:%2" +msgstr "" + +#: view/katestatusbar.cpp:329 +#, fuzzy, kde-format +msgid "Line %1 of %2, Column %3" +msgstr " Радок: %1 Слупок: %2 " + +#: view/katestatusbar.cpp:331 +#, fuzzy, kde-format +msgid "Line %1, Column %2" +msgstr " Радок: %1 Слупок: %2 " + +#: view/katestatusbar.cpp:405 +#, kde-format +msgid "Soft Tabs: %1" +msgstr "" + +#: view/katestatusbar.cpp:406 +#, kde-format +msgid "Soft Tabs: %1 (%2)" +msgstr "" + +#: view/katestatusbar.cpp:407 +#, kde-format +msgid "Tab Size: %1" +msgstr "" + +#: view/katestatusbar.cpp:408 +#, kde-format +msgid "Indent/Tab: %1/%2" +msgstr "" + +#: view/katestatusbar.cpp:448 view/katestatusbar.cpp:474 +#, fuzzy, kde-format +#| msgid "Other" +msgctxt "@item:inmenu" +msgid "Other…" +msgstr "Іншы" + +#: view/katestatusbar.cpp:476 +#, fuzzy, kde-format +#| msgid "Other" +msgid "Other (%1)" +msgid_plural "Other (%1)" +msgstr[0] "Іншы" +msgstr[1] "Іншы" +msgstr[2] "Іншы" + +#: view/katestatusbar.cpp:488 +#, kde-format +msgid "Please specify the wanted tab width:" +msgstr "" + +#: view/katestatusbar.cpp:504 +#, kde-format +msgid "Please specify the wanted indentation width:" +msgstr "" + +#: view/katestatusbar.cpp:567 +#, kde-format +msgctxt "" +"%1 and %3 are the selected words/chars count, %2 and %4 are the total words/" +"chars count." +msgid "Words %1/%2, Chars %3/%4" +msgstr "" + +#: view/katestatusbar.cpp:573 +#, kde-format +msgctxt "%1 and %2 are the total words/chars count." +msgid "Words %1, Chars %2" +msgstr "" + +#: view/katestatusbar.cpp:588 +#, kde-format +msgid "Zoom: %1%" +msgstr "" + +#: view/kateview.cpp:440 +#, kde-format +msgid "Cut the selected text and move it to the clipboard" +msgstr "Выразаць вылучаны тэкст і змясціць яго ў кішэню" + +#: view/kateview.cpp:445 +#, kde-format +msgid "Paste previously copied or cut clipboard contents" +msgstr "Уставіць раней скапіраваны/выразаны змест кішэні" + +#: view/kateview.cpp:448 +#, kde-format +msgid "" +"Use this command to copy the currently selected text to the system clipboard." +msgstr "Скапіраваць вылучаны тэкст у сістэмную кішэню." + +#: view/kateview.cpp:454 +#, kde-format +msgid "Clipboard &History Paste" +msgstr "" + +#: view/kateview.cpp:459 +#, fuzzy, kde-format +#| msgid "&Automatic end of line detection" +msgid "Paste Selection" +msgstr "&Аўтаматычнае вызначэнне канца радка" + +#: view/kateview.cpp:461 +#, fuzzy, kde-format +#| msgid "Paste previously copied or cut clipboard contents" +msgid "Paste previously mouse selection contents" +msgstr "Уставіць раней скапіраваны/выразаны змест кішэні" + +#: view/kateview.cpp:465 +#, kde-format +msgid "Paste From File" +msgstr "" + +#: view/kateview.cpp:469 +#, kde-format +msgid "Copy File Location" +msgstr "" + +#: view/kateview.cpp:470 +#, kde-format +msgid "Copy the current file name and line number" +msgstr "" + +#: view/kateview.cpp:473 +#, fuzzy, kde-format +#| msgid "Paste previously copied or cut clipboard contents" +msgid "Swap with Clipboard Contents" +msgstr "Уставіць раней скапіраваны/выразаны змест кішэні" + +#: view/kateview.cpp:474 +#, fuzzy, kde-format +#| msgid "Cut the selected text and move it to the clipboard" +msgid "Swap the selected text with the clipboard contents" +msgstr "Выразаць вылучаны тэкст і змясціць яго ў кішэню" + +#: view/kateview.cpp:477 +#, fuzzy, kde-format +#| msgid "&Automatic end of line detection" +msgid "Take Screenshot of Selection" +msgstr "&Аўтаматычнае вызначэнне канца радка" + +#: view/kateview.cpp:481 +#, kde-format +msgid "Save the current document" +msgstr "Запісаць гэты дакумент" + +#: view/kateview.cpp:484 +#, kde-format +msgid "Revert the most recent editing actions" +msgstr "" + +#: view/kateview.cpp:487 +#, kde-format +msgid "Revert the most recent undo operation" +msgstr "" + +#: view/kateview.cpp:491 +#, fuzzy, kde-format +msgid "&Scripts" +msgstr "Сцэнары" + +#: view/kateview.cpp:495 +#, kde-format +msgid "Apply &Word Wrap" +msgstr "" + +#: view/kateview.cpp:497 +#, kde-format +msgid "" +"Use this to wrap the current line, or to reformat the selected lines as " +"paragraph, to fit the 'Wrap words at' setting in the configuration dialog." +"

This is a static word wrap, meaning the document is changed." +msgstr "" + +#: view/kateview.cpp:503 +#, kde-format +msgid "&Clean Indentation" +msgstr "" + +#: view/kateview.cpp:505 +#, kde-format +msgid "" +"Use this to clean the indentation of a selected block of text (only tabs/" +"only spaces).

You can configure whether tabs should be honored " +"and used or replaced with spaces, in the configuration dialog." +msgstr "" + +#: view/kateview.cpp:510 +#, fuzzy, kde-format +#| msgid "Header Properties" +msgid "Convert Indentation to Spaces" +msgstr "Уласцівасці загалоўка" + +#: view/kateview.cpp:517 +#, fuzzy, kde-format +#| msgid "Header Properties" +msgid "Convert Indentation to Tabs" +msgstr "Уласцівасці загалоўка" + +#: view/kateview.cpp:532 +#, fuzzy, kde-format +#| msgid "Header Properties" +msgid "&Format Indentation" +msgstr "Уласцівасці загалоўка" + +#: view/kateview.cpp:533 +#, fuzzy, kde-format +#| msgid "" +#| "Use this to align the current line or block of text to its proper indent " +#| "level." +msgid "" +"Use this to auto indent the current line or block of text to its proper " +"indent level." +msgstr "" +"Выраўнаць актыўны радок ці кавалак тэксту адпаведна яго роўню водступу." + +#: view/kateview.cpp:537 +#, fuzzy, kde-format +#| msgid "&Align" +msgctxt "@action" +msgid "&Align On…" +msgstr "Вы&раўнаць" + +#: view/kateview.cpp:539 +#, kde-format +msgid "" +"This command aligns lines in the selected block or whole document on the " +"column given by a regular expression that you will be prompted for.

If you give an empty pattern it will align on the first non-blank " +"character by default.
If the pattern has a capture it will indent on " +"the captured match.

Examples:
With '-' it will insert " +"spaces before the first '-' of each lines to align them all on the same " +"column.
With ':\\s+(.)' it will insert spaces before the first non-" +"blank character that occurs after a colon to align them all on the same " +"column." +msgstr "" + +#: view/kateview.cpp:550 +#, kde-format +msgid "C&omment" +msgstr "&Каментаваць" + +#: view/kateview.cpp:553 +#, kde-format +msgid "" +"This command comments out the current line or a selected block of text.

The characters for single/multiple line comments are defined within " +"the language's highlighting." +msgstr "" + +#: view/kateview.cpp:558 +#, fuzzy, kde-format +#| msgid "Move to Previous Line" +msgid "Go to Previous Editing Location" +msgstr "Ісці да папярэдняга радка" + +#: view/kateview.cpp:564 +#, fuzzy, kde-format +#| msgid "Select to Next Line" +msgid "Go to Next Editing Location" +msgstr "Вылучыць да наступнага радка" + +#: view/kateview.cpp:570 +#, kde-format +msgid "Unco&mment" +msgstr "Разка&ментаваць" + +#: view/kateview.cpp:573 +#, kde-format +msgid "" +"This command removes comments from the current line or a selected block of " +"text.

The characters for single/multiple line comments are " +"defined within the language's highlighting." +msgstr "" + +#: view/kateview.cpp:578 +#, fuzzy, kde-format +#| msgid "Comment" +msgid "Toggle Comment" +msgstr "Каментар" + +#: view/kateview.cpp:582 +#, kde-format +msgid "&Read Only Mode" +msgstr "Рэжым \"толькі &чытанне\"" + +#: view/kateview.cpp:583 +#, kde-format +msgid "Lock/unlock the document for writing" +msgstr "" + +#: view/kateview.cpp:588 +#, kde-format +msgid "&Force RTL Direction" +msgstr "" + +#: view/kateview.cpp:589 +#, fuzzy, kde-format +#| msgid "Selection Mode" +msgid "Force RTL Text Direction" +msgstr "Рэжым вылучэння" + +#: view/kateview.cpp:599 +#, kde-format +msgid "Uppercase" +msgstr "Вялікія літары" + +#: view/kateview.cpp:602 +#, kde-format +msgid "" +"Convert the selection to uppercase, or the character to the right of the " +"cursor if no text is selected." +msgstr "" + +#: view/kateview.cpp:608 +#, kde-format +msgid "Lowercase" +msgstr "Маленькія літары" + +#: view/kateview.cpp:611 +#, kde-format +msgid "" +"Convert the selection to lowercase, or the character to the right of the " +"cursor if no text is selected." +msgstr "" + +#: view/kateview.cpp:617 +#, kde-format +msgid "Capitalize" +msgstr "" + +#: view/kateview.cpp:620 +#, kde-format +msgid "" +"Capitalize the selection, or the word under the cursor if no text is " +"selected." +msgstr "" + +#: view/kateview.cpp:625 +#, kde-format +msgid "Join Lines" +msgstr "" + +#: view/kateview.cpp:630 +#, fuzzy, kde-format +msgid "Invoke Code Completion" +msgstr "Заканчэнне словаў для абалонкі" + +#: view/kateview.cpp:631 +#, kde-format +msgid "" +"Manually invoke command completion, usually by using a shortcut bound to " +"this action." +msgstr "" + +#: view/kateview.cpp:636 +#, fuzzy, kde-format +#| msgid "Re&move trailing spaces" +msgid "Remove Trailing Spaces" +msgstr "&Прыбіраць канцавыя прагалы" + +#: view/kateview.cpp:654 +#, kde-format +msgid "Print the current document." +msgstr "Друкаваць гэты дакумент." + +#: view/kateview.cpp:657 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Show print preview of current document" +msgstr "Друкаваць гэты дакумент." + +#: view/kateview.cpp:661 +#, kde-format +msgid "Reloa&d" +msgstr "&Абнавіць" + +#: view/kateview.cpp:663 +#, kde-format +msgid "Reload the current document from disk." +msgstr "Перачытаць гэты дакумент з дыску." + +#: view/kateview.cpp:667 +#, kde-format +msgid "Save the current document to disk, with a name of your choice." +msgstr "Запісаць гэты дакумент на дыску з выбранай назвай." + +#: view/kateview.cpp:669 +#, kde-format +msgctxt "@action" +msgid "Save As with Encodin&g…" +msgstr "" + +#: view/kateview.cpp:675 +#, fuzzy, kde-format +#| msgid "&Save File As..." +msgctxt "@action" +msgid "Save Cop&y As…" +msgstr "&Запісаць файл як..." + +#: view/kateview.cpp:676 +#, fuzzy, kde-format +#| msgid "Reload the current document from disk." +msgid "Save a copy of the current document to disk." +msgstr "Перачытаць гэты дакумент з дыску." + +#: view/kateview.cpp:680 +#, kde-format +msgid "" +"This command opens a dialog and lets you choose a line that you want the " +"cursor to move to." +msgstr "Дазваляе выбраць радок, у які трэба перанесці курсор." + +#: view/kateview.cpp:684 +#, fuzzy, kde-format +#| msgid "Move to Previous Line" +msgid "Go to Previous Modified Line" +msgstr "Ісці да папярэдняга радка" + +#: view/kateview.cpp:685 +#, fuzzy, kde-format +#| msgid "Move to Matching Bracket" +msgid "Move upwards to the previous modified line." +msgstr "Ісці да адпаведнай дужкі" + +#: view/kateview.cpp:690 +#, fuzzy, kde-format +#| msgid "Move to Next Line" +msgid "Go to Next Modified Line" +msgstr "Ісці да наступнага радка" + +#: view/kateview.cpp:691 +#, kde-format +msgid "Move downwards to the next modified line." +msgstr "" + +#: view/kateview.cpp:695 +#, fuzzy, kde-format +#| msgid "&Configure Editor..." +msgctxt "@action" +msgid "&Configure Editor…" +msgstr "&Настаўленне рэдактара..." + +#: view/kateview.cpp:697 +#, kde-format +msgid "Configure various aspects of this editor." +msgstr "Кіраванне рознымі бакамі працы гэтага рэдактара." + +#: view/kateview.cpp:700 +#, fuzzy, kde-format +#| msgid "&Bold" +msgid "&Mode" +msgstr "&Цёмны" + +#: view/kateview.cpp:706 +#, fuzzy, kde-format +msgid "&Highlighting" +msgstr "&Падсветка" + +#: view/kateview.cpp:708 +#, kde-format +msgid "Here you can choose how the current document should be highlighted." +msgstr "" + +#: view/kateview.cpp:711 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "&Editor Color Theme" +msgstr "Колеры" + +#: view/kateview.cpp:717 +#, kde-format +msgid "&Indentation" +msgstr "" + +#: view/kateview.cpp:726 +#, kde-format +msgid "Select the entire text of the current document." +msgstr "Вылучыць увесь тэкст гэтага дакумента." + +#: view/kateview.cpp:729 +#, kde-format +msgid "" +"If you have selected something within the current document, this will no " +"longer be selected." +msgstr "" + +#: view/kateview.cpp:733 +#, kde-format +msgid "Enlarge Font" +msgstr "Павялічыць шрыфт" + +#: view/kateview.cpp:735 +#, kde-format +msgid "This increases the display font size." +msgstr "Павялічвае кегель шрыфта." + +#: view/kateview.cpp:742 +#, kde-format +msgid "Shrink Font" +msgstr "Зменшыць шрыфт" + +#: view/kateview.cpp:744 +#, kde-format +msgid "This decreases the display font size." +msgstr "Змяншае кегель шрыфта." + +#: view/kateview.cpp:751 +#, kde-format +msgid "Reset Font Size" +msgstr "" + +#: view/kateview.cpp:753 +#, fuzzy, kde-format +#| msgid "This increases the display font size." +msgid "This resets the display font size." +msgstr "Павялічвае кегель шрыфта." + +#: view/kateview.cpp:756 +#, kde-format +msgid "Bl&ock Selection Mode" +msgstr "Рэжым вылучэння &блока" + +#: view/kateview.cpp:759 +#, kde-format +msgid "" +"This command allows switching between the normal (line based) selection mode " +"and the block selection mode." +msgstr "" + +#: view/kateview.cpp:763 +#, fuzzy, kde-format +#| msgid "Select to End of Line" +msgid "Switch to Next Input Mode" +msgstr "Вылучыць да канца радка" + +#: view/kateview.cpp:765 +#, fuzzy, kde-format +#| msgid "Select to End of Line" +msgid "Switch to the next input mode." +msgstr "Вылучыць да канца радка" + +#: view/kateview.cpp:768 +#, kde-format +msgid "Overwr&ite Mode" +msgstr "Рэжым &перазапісу" + +#: view/kateview.cpp:771 +#, kde-format +msgid "" +"Choose whether you want the text you type to be inserted or to overwrite " +"existing text." +msgstr "" + +#: view/kateview.cpp:775 +#, fuzzy, kde-format +#| msgid "&Replace" +msgid "Show Whitespace" +msgstr "&Замяніць" + +#: view/kateview.cpp:778 +#, fuzzy, kde-format +#| msgid "" +#| "Show/hide the icon border.

The icon border shows bookmark " +#| "symbols, for instance." +msgid "" +"If this option is checked, whitespaces in this document will be visible.

This is only a view option, meaning the document will not be changed." +msgstr "" +"Паказаць/схаваць поле значак.

У прыватнасці, поле значак паказвае " +"значкі закладак." + +#: view/kateview.cpp:782 +#, kde-format +msgid "&Dynamic Word Wrap" +msgstr "" + +#: view/kateview.cpp:786 +#, fuzzy, kde-format +#| msgid "" +#| "Show/hide the icon border.

The icon border shows bookmark " +#| "symbols, for instance." +msgid "" +"If this option is checked, the text lines will be wrapped at the view border " +"on the screen.

This is only a view option, meaning the document " +"will not be changed." +msgstr "" +"Паказаць/схаваць поле значак.

У прыватнасці, поле значак паказвае " +"значкі закладак." + +#: view/kateview.cpp:790 +#, kde-format +msgid "Dynamic Word Wrap Indicators" +msgstr "" + +#: view/kateview.cpp:792 +#, kde-format +msgid "Choose when the Dynamic Word Wrap Indicators should be displayed" +msgstr "" + +#: view/kateview.cpp:794 +#, kde-format +msgid "&Off" +msgstr "&Выключана" + +#: view/kateview.cpp:794 +#, kde-format +msgid "Follow &Line Numbers" +msgstr "" + +#: view/kateview.cpp:794 +#, kde-format +msgid "&Always On" +msgstr "&Заўсёды ўключана" + +#: view/kateview.cpp:798 +#, kde-format +msgid "Static Word Wrap" +msgstr "" + +#: view/kateview.cpp:800 +#, fuzzy, kde-format +#| msgid "" +#| "Show/hide the icon border.

The icon border shows bookmark " +#| "symbols, for instance." +msgid "" +"If this option is checked, the text lines will be wrapped at the column " +"defined in the editing properties." +msgstr "" +"Паказаць/схаваць поле значак.

У прыватнасці, поле значак паказвае " +"значкі закладак." + +#: view/kateview.cpp:807 +#, kde-format +msgid "Show Static &Word Wrap Marker" +msgstr "" + +#: view/kateview.cpp:810 +#, kde-format +msgid "" +"Show/hide the Word Wrap Marker, a vertical line drawn at the word wrap " +"column as defined in the editing properties" +msgstr "" + +#: view/kateview.cpp:814 +#, kde-format +msgid "Show Folding &Markers" +msgstr "" + +#: view/kateview.cpp:816 +#, kde-format +msgid "" +"You can choose if the codefolding marks should be shown, if codefolding is " +"possible." +msgstr "" + +#: view/kateview.cpp:819 +#, kde-format +msgid "Show &Icon Border" +msgstr "Паказаць поле &значак" + +#: view/kateview.cpp:821 +#, fuzzy, kde-format +#| msgid "" +#| "Show/hide the icon border.

The icon border shows bookmark " +#| "symbols, for instance." +msgid "" +"Show/hide the icon border.

The icon border shows bookmark " +"symbols, for instance." +msgstr "" +"Паказаць/схаваць поле значак.

У прыватнасці, поле значак паказвае " +"значкі закладак." + +#: view/kateview.cpp:824 +#, kde-format +msgid "Show &Line Numbers" +msgstr "Паказаць нумары &радкоў" + +#: view/kateview.cpp:826 +#, kde-format +msgid "Show/hide the line numbers on the left hand side of the view." +msgstr "Паказаць/схаваць нумары радкоў справа ад тэксту." + +#: view/kateview.cpp:829 +#, kde-format +msgid "Show Scroll&bar Marks" +msgstr "" + +#: view/kateview.cpp:831 +#, fuzzy, kde-format +#| msgid "" +#| "Show/hide the icon border.

The icon border shows bookmark " +#| "symbols, for instance." +msgid "" +"Show/hide the marks on the vertical scrollbar.

The marks show " +"bookmarks, for instance." +msgstr "" +"Паказаць/схаваць поле значак.

У прыватнасці, поле значак паказвае " +"значкі закладак." + +#: view/kateview.cpp:834 +#, kde-format +msgid "Show Scrollbar Mini-Map" +msgstr "" + +#: view/kateview.cpp:836 +#, fuzzy, kde-format +#| msgid "" +#| "Show/hide the icon border.

The icon border shows bookmark " +#| "symbols, for instance." +msgid "" +"Show/hide the mini-map on the vertical scrollbar.

The mini-map " +"shows an overview of the whole document." +msgstr "" +"Паказаць/схаваць поле значак.

У прыватнасці, поле значак паказвае " +"значкі закладак." + +#. i18n("Show the whole document in the Mini-Map"), this); +#. ac->addAction(QLatin1String("view_scrollbar_minimap_all"), a); +#. a->setWhatsThis(i18n("Display the whole document in the mini-map.

With this option set the whole document will be visible in the +#. mini-map.")); connect(a, SIGNAL(triggered(bool)), SlOT(toggleScrollBarMiniMapAll())); connect(m_toggleScrollBarMiniMap, SIGNAL(triggered(bool)), +#. m_toggleScrollBarMiniMapAll, SLOT(setEnabled(bool))); +#: view/kateview.cpp:848 +#, kde-format +msgid "Show Non-Printable Spaces" +msgstr "" + +#: view/kateview.cpp:850 +#, kde-format +msgid "Show/hide bounding box around non-printable spaces" +msgstr "" + +#: view/kateview.cpp:854 +#, kde-format +msgid "Switch to Command Line" +msgstr "Перайсці ў загадны радок" + +#: view/kateview.cpp:856 +#, kde-format +msgid "Show/hide the command line on the bottom of the view." +msgstr "Паказаць/схаваць загадны радок удолу рэдактара." + +#: view/kateview.cpp:859 +#, kde-format +msgid "Input Modes" +msgstr "" + +#: view/kateview.cpp:868 +#, kde-format +msgid "Activate/deactivate %1" +msgstr "" + +#: view/kateview.cpp:878 +#, kde-format +msgid "&End of Line" +msgstr "&Канец радка" + +#: view/kateview.cpp:880 +#, kde-format +msgid "Choose which line endings should be used, when you save the document" +msgstr "" +"Выбраць, якія знакі заканчэння радкоў павінны быць выкарыстаныя пры запісе " +"дакумента" + +#: view/kateview.cpp:881 +#, fuzzy, kde-format +#| msgid "UNIX" +msgctxt "@item:inmenu End of Line" +msgid "&UNIX" +msgstr "UNIX" + +#: view/kateview.cpp:882 +#, fuzzy, kde-format +#| msgid "DOS/Windows" +msgctxt "@item:inmenu End of Line" +msgid "&Windows/DOS" +msgstr "DOS/Windows" + +#: view/kateview.cpp:883 +#, fuzzy, kde-format +#| msgid "Macintosh" +msgctxt "@item:inmenu End of Line" +msgid "&Macintosh" +msgstr "Macintosh" + +#: view/kateview.cpp:888 +#, kde-format +msgid "Add &Byte Order Mark (BOM)" +msgstr "" + +#: view/kateview.cpp:891 +#, kde-format +msgid "" +"Enable/disable adding of byte order marks for UTF-8/UTF-16 encoded files " +"while saving" +msgstr "" + +#: view/kateview.cpp:895 +#, kde-format +msgid "E&ncoding" +msgstr "&Знаказбор:" + +#: view/kateview.cpp:899 +#, kde-format +msgid "Look up the first occurrence of a piece of text or regular expression." +msgstr "Пошук першага адпаведніка для азначаных умоваў." + +#: view/kateview.cpp:903 +#, fuzzy, kde-format +#| msgid "Selected" +msgid "Find Selected" +msgstr "Вылучаны" + +#: view/kateview.cpp:905 +#, kde-format +msgid "Finds next occurrence of selected text." +msgstr "" + +#: view/kateview.cpp:909 +#, fuzzy, kde-format +#| msgid "Selected" +msgid "Find Selected Backwards" +msgstr "Вылучаны" + +#: view/kateview.cpp:911 +#, fuzzy, kde-format +#| msgid "Look up the previous occurrence of the search phrase." +msgid "Finds previous occurrence of selected text." +msgstr "Пошук папярэдняга адпаведніка для азначаных умоваў." + +#: view/kateview.cpp:915 +#, kde-format +msgid "Find and Select Next Occurrence" +msgstr "" + +#: view/kateview.cpp:917 +#, kde-format +msgid "Finds next occurrence of the word under cursor and add it to selection." +msgstr "" + +#: view/kateview.cpp:921 +#, kde-format +msgid "Mark Currently Selected Occurrence as Skipped" +msgstr "" + +#: view/kateview.cpp:923 +#, kde-format +msgid "Marks the currently selected word as skipped." +msgstr "" + +#: view/kateview.cpp:927 +#, kde-format +msgid "Find and Select All Occurrences" +msgstr "" + +#: view/kateview.cpp:929 +#, kde-format +msgid "Finds all occurrences of the word under cursor and selects them." +msgstr "" + +#: view/kateview.cpp:933 +#, kde-format +msgid "Look up the next occurrence of the search phrase." +msgstr "Пошук наступнага адпаведніка для азначаных умоваў." + +#: view/kateview.cpp:937 +#, kde-format +msgid "Look up the previous occurrence of the search phrase." +msgstr "Пошук папярэдняга адпаведніка для азначаных умоваў." + +#: view/kateview.cpp:941 +#, kde-format +msgid "" +"Look up a piece of text or regular expression and replace the result with " +"some given text." +msgstr "" +"Пошук адпаведніка для азначаных умоваў і замена яго на прапанаваны тэкст." + +#: view/kateview.cpp:944 +#, kde-format +msgid "Add Cursors to Line Ends" +msgstr "" + +#: view/kateview.cpp:946 +#, kde-format +msgid "Creates a cursor at the end of every line in selection." +msgstr "" + +#: view/kateview.cpp:950 +#, kde-format +msgid "Add Caret below Cursor" +msgstr "" + +#: view/kateview.cpp:952 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "Adds a caret in the line below the current caret." +msgstr "Вылучыць увесь тэкст гэтага дакумента." + +#: view/kateview.cpp:956 +#, kde-format +msgid "Add Caret above Cursor" +msgstr "" + +#: view/kateview.cpp:958 +#, kde-format +msgid "Adds a caret in the line above the current caret." +msgstr "" + +#: view/kateview.cpp:962 +#, fuzzy, kde-format +#| msgid "Text Cursor Movement" +msgid "Toggle Camel Case Cursor Movement" +msgstr "Перасоўванне тэкставага курсора" + +#: view/kateview.cpp:963 +#, kde-format +msgid "Toggle between normal word movement and camel case cursor movement." +msgstr "" + +#: view/kateview.cpp:967 +#, fuzzy, kde-format +#| msgid "Move to Matching Bracket" +msgid "Remove Cursors from Empty Lines" +msgstr "Ісці да адпаведнай дужкі" + +#: view/kateview.cpp:968 +#, fuzzy, kde-format +#| msgid "Move to Matching Bracket" +msgid "Remove cursors from empty lines" +msgstr "Ісці да адпаведнай дужкі" + +#: view/kateview.cpp:972 +#, fuzzy, kde-format +#| msgid "&Automatic end of line detection" +msgid "Automatic Spell Checking" +msgstr "&Аўтаматычнае вызначэнне канца радка" + +#: view/kateview.cpp:973 +#, kde-format +msgid "Enable/disable automatic spell checking" +msgstr "" + +#: view/kateview.cpp:979 +#, fuzzy, kde-format +msgctxt "@action" +msgid "Change Dictionary…" +msgstr "Выбраць рэдактар..." + +#: view/kateview.cpp:980 +#, kde-format +msgid "Change the dictionary that is used for spell checking." +msgstr "" + +#: view/kateview.cpp:984 +#, kde-format +msgid "Clear Dictionary Ranges" +msgstr "" + +#: view/kateview.cpp:986 +#, kde-format +msgid "" +"Remove all the separate dictionary ranges that were set for spell checking." +msgstr "" + +#: view/kateview.cpp:992 +#, kde-format +msgid "Copy as &HTML" +msgstr "Скапіраваць як &HTML" + +#: view/kateview.cpp:993 +#, kde-format +msgid "" +"Copy the selection as HTML, formatted using the current syntax highlighting " +"and color scheme settings." +msgstr "" + +#: view/kateview.cpp:997 +#, fuzzy, kde-format +#| msgid "Export File as HTML" +msgctxt "@action" +msgid "E&xport as HTML…" +msgstr "Экспартаваць файл як HTML" + +#: view/kateview.cpp:999 +#, kde-format +msgid "" +"This command allows you to export the current document with all highlighting " +"information into a HTML document." +msgstr "" + +#: view/kateview.cpp:1038 +#, kde-format +msgid "Move Word Left" +msgstr "Пасунуць слова ўлева" + +#: view/kateview.cpp:1044 +#, kde-format +msgid "Select Character Left" +msgstr "Вылучыць лявейшы знак" + +#: view/kateview.cpp:1050 +#, kde-format +msgid "Select Word Left" +msgstr "Вылучыць лявейшае слова" + +#: view/kateview.cpp:1060 +#, kde-format +msgid "Move Word Right" +msgstr "Пасунуць слова ўправа" + +#: view/kateview.cpp:1066 +#, kde-format +msgid "Select Character Right" +msgstr "Вылучыць правейшы знак" + +#: view/kateview.cpp:1072 +#, kde-format +msgid "Select Word Right" +msgstr "Вылучыць правейшае слова" + +#: view/kateview.cpp:1082 +#, fuzzy, kde-format +#| msgid "&Automatic end of line detection" +msgid "Start the Marked Selection" +msgstr "&Аўтаматычнае вызначэнне канца радка" + +#: view/kateview.cpp:1083 +#, kde-format +msgid "" +"Emulate the Emacs-like selection mode, where the beginning is marked and " +"then the selection is continuously updated." +msgstr "" + +#: view/kateview.cpp:1088 +#, kde-format +msgid "Move to Beginning of Line" +msgstr "Ісці ў пачатак радка" + +#: view/kateview.cpp:1094 +#, kde-format +msgid "Move to Beginning of Document" +msgstr "Ісці ў пачатак дакумента" + +#: view/kateview.cpp:1100 +#, kde-format +msgid "Select to Beginning of Line" +msgstr "Вылучыць да пачатку радка" + +#: view/kateview.cpp:1110 +#, kde-format +msgid "Select to Beginning of Document" +msgstr "Вылучыць да пачатку дакумента" + +#: view/kateview.cpp:1120 +#, kde-format +msgid "Move to End of Line" +msgstr "Ісці ў канец радка" + +#: view/kateview.cpp:1126 +#, kde-format +msgid "Move to End of Document" +msgstr "Ісці ў канец дакумента" + +#: view/kateview.cpp:1132 +#, kde-format +msgid "Select to End of Line" +msgstr "Вылучыць да канца радка" + +#: view/kateview.cpp:1142 +#, kde-format +msgid "Select to End of Document" +msgstr "Вылучыць да канца дакумента" + +#: view/kateview.cpp:1152 +#, kde-format +msgid "Select to Previous Line" +msgstr "Вылучыць да папярэдняга радка" + +#: view/kateview.cpp:1158 +#, kde-format +msgid "Scroll Line Up" +msgstr "Перайсці на радок вышэй" + +#: view/kateview.cpp:1167 +#, kde-format +msgid "Move to Next Line" +msgstr "Ісці да наступнага радка" + +#: view/kateview.cpp:1173 +#, kde-format +msgid "Move to Previous Line" +msgstr "Ісці да папярэдняга радка" + +#: view/kateview.cpp:1179 +#, fuzzy, kde-format +#| msgid "Move Word Right" +msgid "Move Cursor Right" +msgstr "Пасунуць слова ўправа" + +#: view/kateview.cpp:1185 +#, fuzzy, kde-format +#| msgid "Move Word Left" +msgid "Move Cursor Left" +msgstr "Пасунуць слова ўлева" + +#: view/kateview.cpp:1191 +#, kde-format +msgid "Select to Next Line" +msgstr "Вылучыць да наступнага радка" + +#: view/kateview.cpp:1197 +#, kde-format +msgid "Scroll Line Down" +msgstr "Перайсці на радок ніжэй" + +#: view/kateview.cpp:1206 +#, kde-format +msgid "Scroll Page Up" +msgstr "Перайсці на старонку вышэй" + +#: view/kateview.cpp:1212 +#, kde-format +msgid "Select Page Up" +msgstr "Вылучыць на старонку вышэй" + +#: view/kateview.cpp:1218 +#, kde-format +msgid "Move to Top of View" +msgstr "Перайсці ў пачатак дакумента" + +#: view/kateview.cpp:1224 +#, kde-format +msgid "Select to Top of View" +msgstr "Вылучыць да пачатку дакумента" + +#: view/kateview.cpp:1230 +#, kde-format +msgid "Scroll Page Down" +msgstr "Перайсці на старонку ніжэй" + +#: view/kateview.cpp:1236 +#, kde-format +msgid "Select Page Down" +msgstr "Вылучыць на старонку ніжэй" + +#: view/kateview.cpp:1242 +#, kde-format +msgid "Move to Bottom of View" +msgstr "Перайсці ў канец дакумента" + +#: view/kateview.cpp:1248 +#, kde-format +msgid "Select to Bottom of View" +msgstr "Вылучыць да канца дакумента" + +#: view/kateview.cpp:1254 +#, fuzzy, kde-format +#| msgid "Move to Matching Bracket" +msgid "Go to Matching Bracket" +msgstr "Ісці да адпаведнай дужкі" + +#: view/kateview.cpp:1260 +#, kde-format +msgid "Select to Matching Bracket" +msgstr "Вылучыць да адпаведнай дужкі" + +#: view/kateview.cpp:1267 +#, fuzzy, kde-format +#| msgid "Move Word Right" +msgid "Move Sub-Word Right" +msgstr "Пасунуць слова ўправа" + +#: view/kateview.cpp:1274 +#, fuzzy, kde-format +#| msgid "Select Word Right" +msgid "Select Sub-Word Right" +msgstr "Вылучыць правейшае слова" + +#: view/kateview.cpp:1281 +#, fuzzy, kde-format +#| msgid "Move Word Left" +msgid "Move Sub-Word Left" +msgstr "Пасунуць слова ўлева" + +#: view/kateview.cpp:1288 +#, fuzzy, kde-format +#| msgid "Select Word Left" +msgid "Select Sub-Word Left" +msgstr "Вылучыць лявейшае слова" + +#: view/kateview.cpp:1298 +#, kde-format +msgid "Transpose Characters" +msgstr "" + +#: view/kateview.cpp:1303 +#, fuzzy, kde-format +#| msgid "&Ignore" +msgid "Transpose Words" +msgstr "&Ігнараваць" + +#: view/kateview.cpp:1308 +#, kde-format +msgid "Delete Line" +msgstr "Выдаліць радок" + +#: view/kateview.cpp:1314 +#, kde-format +msgid "Delete Word Left" +msgstr "Выдаліць лявейшае слова" + +#: view/kateview.cpp:1320 +#, kde-format +msgid "Delete Word Right" +msgstr "Выдаліць правейшае слова" + +#: view/kateview.cpp:1326 +#, kde-format +msgid "Delete Next Character" +msgstr "Выдаліць наступны знак" + +#: view/kateview.cpp:1332 +#, kde-format +msgid "Backspace" +msgstr "Зваротны скос" + +#: view/kateview.cpp:1340 +#, fuzzy, kde-format +#| msgid "I&nsert tab character" +msgid "Insert Tab Character" +msgstr "У&стаўляць знак водступу Tab" + +#: view/kateview.cpp:1345 +#, kde-format +msgid "Insert Smart Newline" +msgstr "" + +#: view/kateview.cpp:1346 +#, kde-format +msgid "" +"Insert newline including leading characters of the current line which are " +"not letters or numbers." +msgstr "" + +#: view/kateview.cpp:1354 +#, kde-format +msgid "Insert a Non-Indented Newline" +msgstr "" + +#: view/kateview.cpp:1355 +#, kde-format +msgid "" +"Insert a new line without indentation, regardless of indentation settings." +msgstr "" + +#: view/kateview.cpp:1363 +#, kde-format +msgid "Insert a Newline Above Current Line" +msgstr "" + +#: view/kateview.cpp:1364 +#, kde-format +msgid "" +"Insert a new line above current line without modifying the current line." +msgstr "" + +#: view/kateview.cpp:1372 +#, kde-format +msgid "Insert a Newline Below Current Line" +msgstr "" + +#: view/kateview.cpp:1373 +#, kde-format +msgid "" +"Insert a new line below current line without modifying the current line." +msgstr "" + +#: view/kateview.cpp:1382 +#, fuzzy, kde-format +msgid "&Indent" +msgstr "&Водступ" + +#: view/kateview.cpp:1384 +#, kde-format +msgid "" +"Use this to indent a selected block of text.

You can configure " +"whether tabs should be honored and used or replaced with spaces, in the " +"configuration dialog." +msgstr "" + +#: view/kateview.cpp:1391 +#, kde-format +msgid "&Unindent" +msgstr "" + +#: view/kateview.cpp:1392 +#, kde-format +msgid "Use this to unindent a selected block of text." +msgstr "" + +#: view/kateview.cpp:1398 +#, fuzzy, kde-format +#| msgid "Delete Word Left" +msgid "Delete Sub-Word Left" +msgstr "Выдаліць лявейшае слова" + +#: view/kateview.cpp:1405 +#, fuzzy, kde-format +#| msgid "Delete Word Right" +msgid "Delete Sub-Word Right" +msgstr "Выдаліць правейшае слова" + +#: view/kateview.cpp:1426 +#, fuzzy, kde-format +#| msgid "Current line:" +msgid "Fold Toplevel Nodes" +msgstr "Актыўны радок:" + +#: view/kateview.cpp:1430 +#, fuzzy, kde-format +#| msgid "Current line:" +msgid "Unfold Toplevel Nodes" +msgstr "Актыўны радок:" + +#: view/kateview.cpp:1434 +#, fuzzy, kde-format +#| msgid "Current line:" +msgid "Toggle Current Node" +msgstr "Актыўны радок:" + +#: view/kateview.cpp:1438 +#, fuzzy, kde-format +#| msgid "Comment" +msgid "Toggle Contained Nodes" +msgstr "Каментар" + +#: view/kateview.cpp:1447 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "Say current selection or document" +msgstr "Вылучыць увесь тэкст гэтага дакумента." + +#: view/kateview.cpp:1457 +#, fuzzy, kde-format +#| msgid "Save the current document" +msgid "Stop current output" +msgstr "Запісаць гэты дакумент" + +#: view/kateview.cpp:1463 +#, fuzzy, kde-format +#| msgid "Save the current document" +msgid "Pause current output" +msgstr "Запісаць гэты дакумент" + +#: view/kateview.cpp:1469 +#, fuzzy, kde-format +#| msgid "Save the current document" +msgid "Resume current output" +msgstr "Запісаць гэты дакумент" + +#: view/kateview.cpp:1640 +#, kde-format +msgid "(R/O) %1" +msgstr "" + +#: view/kateview.cpp:1828 +#, kde-format +msgid "Camel case movement disabled" +msgstr "" + +#: view/kateview.cpp:1830 +#, kde-format +msgid "Camel case movement enabled" +msgstr "" + +#: view/kateview.cpp:2349 +#, fuzzy, kde-format +#| msgid "Search" +msgid "Search wrapped" +msgstr "Пошук" + +#: view/kateview.cpp:3043 +#, fuzzy, kde-format +msgid "Open File" +msgstr "Адкрыць файл" + +#: view/kateview.cpp:3984 +#, fuzzy, kde-format +#| msgid "&Align" +msgid "Align On" +msgstr "Вы&раўнаць" + +#: view/kateview.cpp:3984 +#, kde-format +msgid "Alignment pattern:" +msgstr "" + +#: view/kateview.cpp:5068 +#, kde-format +msgid "Export File as HTML" +msgstr "Экспартаваць файл як HTML" + +#: view/kateviewhelpers.cpp:302 view/kateviewhelpers.cpp:351 +#: view/kateviewhelpers.cpp:1012 +#, kde-format +msgctxt "from line - to line" +msgid "
%1

%2
" +msgstr "" + +#: view/kateviewhelpers.cpp:1212 +#, kde-format +msgid "Available Commands" +msgstr "Наяўныя загады" + +#: view/kateviewhelpers.cpp:1213 +#, kde-format +msgid "" +"

For help on individual commands, do 'help <command>'" +msgstr "" +"

Каб атрымаць даведку па асобных загадах, выканайце 'help <" +"загад>'

" + +#: view/kateviewhelpers.cpp:1220 +#, kde-format +msgid "No help for '%1'" +msgstr "Даведка для '%1' адсутнічае" + +#: view/kateviewhelpers.cpp:1223 +#, kde-format +msgid "No such command %1" +msgstr "%1: такога загаду няма" + +#: view/kateviewhelpers.cpp:1229 +#, fuzzy, kde-format +#| msgid "" +#| "

This is the Katepart command line.
Syntax: command " +#| "[ arguments ]
For a list of available commands, enter " +#| "help list
For help for individual commands, enter " +#| "help <command>

" +msgid "" +"

This is the Katepart command line.
Syntax: command " +"[ arguments ]
For a list of available commands, enter " +"help list
For help for individual commands, enter " +"help <command>

" +msgstr "" +"

Гэта загадны радок модуля Kate.
Сінтаксіс: загад " +"[ аргументы ]
Каб атрымаць спіс наяўных загадаў, выканайце " +"help list
Каб атрымаць даведку па асобных загадах, " +"выканайце help <загад>

" + +#: view/kateviewhelpers.cpp:1317 vimode/emulatedcommandbar/commandmode.cpp:211 +#, kde-format +msgid "No such command: \"%1\"" +msgstr "Такога загаду няма: \"%1\"" + +#: view/kateviewhelpers.cpp:1320 vimode/emulatedcommandbar/commandmode.cpp:193 +#, kde-format +msgid "Error: No range allowed for command \"%1\"." +msgstr "" + +#: view/kateviewhelpers.cpp:1330 vimode/emulatedcommandbar/commandmode.cpp:197 +#, kde-format +msgid "Success: " +msgstr "Паспяхова: " + +#: view/kateviewhelpers.cpp:1344 vimode/emulatedcommandbar/commandmode.cpp:206 +#, kde-format +msgid "Command \"%1\" failed." +msgstr "Немагчыма выканаць загад \"%1\"." + +#: view/kateviewhelpers.cpp:2632 view/kateviewhelpers.cpp:2633 +#, kde-format +msgid "Mark Type %1" +msgstr "" + +#: view/kateviewhelpers.cpp:2656 +#, kde-format +msgid "Set Default Mark Type" +msgstr "" + +#: view/kateviewhelpers.cpp:2801 +#, kde-format +msgid "Disable Annotation Bar" +msgstr "" + +#: view/screenshotdialog.cpp:175 +#, fuzzy, kde-format +#| msgid "Open/Save" +msgid "Save" +msgstr "Адкрыцце/запіс" + +#: view/screenshotdialog.cpp:176 +#, fuzzy, kde-format +#| msgid "&Save File As..." +msgid "Copy" +msgstr "&Запісаць файл як..." + +#: view/screenshotdialog.cpp:177 +#, fuzzy, kde-format +#| msgid "&Background Color..." +msgctxt "@action:button" +msgid "Background Color…" +msgstr "&Фонавы колер..." + +#: view/screenshotdialog.cpp:179 +#, fuzzy, kde-format +#| msgid "Selection Mode" +msgid "Show Extra Decorations" +msgstr "Рэжым вылучэння" + +#: view/screenshotdialog.cpp:180 +#, fuzzy, kde-format +#| msgid "Selection Mode" +msgid "Show Window Decorations" +msgstr "Рэжым вылучэння" + +#: view/screenshotdialog.cpp:185 +#, fuzzy, kde-format +#| msgid "&Automatic end of line detection" +msgctxt "@title:window" +msgid "Take Screenshot of Selection" +msgstr "&Аўтаматычнае вызначэнне канца радка" + +#: view/screenshotdialog.cpp:257 +#, fuzzy, kde-format +#| msgid "Show &Line Numbers" +msgid "Don't Show Line Numbers" +msgstr "Паказаць нумары &радкоў" + +#: view/screenshotdialog.cpp:258 +#, fuzzy, kde-format +#| msgid "Show &Line Numbers" +msgid "Show Line Numbers From 1" +msgstr "Паказаць нумары &радкоў" + +#: view/screenshotdialog.cpp:259 +#, fuzzy, kde-format +#| msgid "Show &Line Numbers" +msgid "Show Actual Line Numbers" +msgstr "Паказаць нумары &радкоў" + +#: view/screenshotdialog.cpp:422 +#, kde-format +msgctxt "@title:window" +msgid "Screenshot saving failed" +msgstr "" + +#: view/screenshotdialog.cpp:422 +#, kde-format +msgid "Screenshot saving failed: %1" +msgstr "" + +#: vimode/appcommands.cpp:67 +#, fuzzy, kde-format +msgid "All documents written to disk" +msgstr "Адкрыць дакумент" + +#: vimode/appcommands.cpp:70 +#, fuzzy, kde-format +msgid "Document written to disk" +msgstr "Адкрыць дакумент" + +#: vimode/appcommands.cpp:202 +#, kde-format +msgid "" +"

w/wa — write document(s) to disk

Usage: w[a]

Writes the current document(s) to disk. It can be called in " +"two ways:
w — writes the current document to disk
" +"wa — writes all documents to disk.

If no file name is " +"associated with the document, a file dialog will be shown.

" +msgstr "" + +#: vimode/appcommands.cpp:213 +#, kde-format +msgid "" +"

q/qa/wq/wqa — [write and] quit

Usage: [w]q[a]

Quits the application. If w is prepended, it also " +"writes the document(s) to disk. This command can be called in several ways:" +"
q — closes the current view.
qa — " +"closes all views, effectively quitting the application.
wq " +"— writes the current document to disk and closes its view.
" +"wqa — writes all documents to disk and quits.

In all " +"cases, if the view being closed is the last view, the application quits. If " +"no file name is associated with the document and it should be written to " +"disk, a file dialog will be shown.

" +msgstr "" + +#: vimode/appcommands.cpp:228 +#, kde-format +msgid "" +"

x/xa — write and quit

Usage: x[a]

Saves document(s) and quits (exits). This command can be called " +"in two ways:
x — closes the current view.
xa — closes all views, effectively quitting the application.

In " +"all cases, if the view being closed is the last view, the application quits. " +"If no file name is associated with the document and it should be written to " +"disk, a file dialog will be shown.

Unlike the 'w' commands, this " +"command only writes the document if it is modified.

" +msgstr "" + +#: vimode/appcommands.cpp:242 +#, kde-format +msgid "" +"

sp,split— Split horizontally the current view into two

Usage: sp[lit]

The result is two views on the " +"same document.

" +msgstr "" + +#: vimode/appcommands.cpp:248 +#, kde-format +msgid "" +"

vs,vsplit— Split vertically the current view into two

Usage: vs[plit]

The result is two views on the " +"same document.

" +msgstr "" + +#: vimode/appcommands.cpp:254 +#, kde-format +msgid "" +"

clo[se]— Close the current view

Usage: clo[se]

After executing it, the current view will be closed.

" +msgstr "" + +#: vimode/appcommands.cpp:260 +#, kde-format +msgid "" +"

[v]new — split view and create new document

Usage: " +"[v]new

Splits the current view and opens a new " +"document in the new view. This command can be called in two ways:
" +"new — splits the view horizontally and opens a new document." +"
vnew — splits the view vertically and opens a new " +"document.

" +msgstr "" + +#: vimode/appcommands.cpp:270 +#, kde-format +msgid "" +"

e[dit] — reload current document

Usage: e[dit]

Starts editing the current document again. This is " +"useful to re-edit the current file, when it was modified on disk.

" +msgstr "" + +#: vimode/appcommands.cpp:518 +#, kde-format +msgid "" +"

b,buffer — Edit document N from the document list

Usage: b[uffer] [N]

" +msgstr "" + +#: vimode/appcommands.cpp:523 +#, kde-format +msgid "" +"

bp,bprev — previous buffer

Usage: bp[revious] " +"[N]

Goes to [N]th previous document (\"buffer" +"\") in document list.

[N] defaults to one.

Wraps " +"around the start of the document list.

" +msgstr "" + +#: vimode/appcommands.cpp:531 +#, kde-format +msgid "" +"

bn,bnext — switch to next document

Usage: " +"bn[ext] [N]

Goes to [N]th next document " +"(\"buffer\") in document list.[N] defaults to one.

Wraps around the end of the document list.

" +msgstr "" + +#: vimode/appcommands.cpp:539 +#, kde-format +msgid "" +"

bf,bfirst — first document

Usage: bf[irst]

Goes to the first document (\"buffer\") in document " +"list.

" +msgstr "" + +#: vimode/appcommands.cpp:545 +#, kde-format +msgid "" +"

bl,blast — last document

Usage: bl[ast]

Goes to the last document (\"buffer\") in document " +"list.

" +msgstr "" + +#: vimode/appcommands.cpp:551 +#, kde-format +msgid "

ls

list current buffers

" +msgstr "" + +#: vimode/cmds.cpp:52 +#, fuzzy, kde-format +#| msgid "Missing argument. Usage: %1 " +msgid "Missing argument. Usage: %1 " +msgstr "Адсутнічае аргумент. Выкарыстанне: %1 " + +#: vimode/cmds.cpp:68 +#, kde-format +msgid "No mapping found for \"%1\"" +msgstr "" + +#: vimode/cmds.cpp:71 +#, kde-format +msgid "\"%1\" is mapped to \"%2\"" +msgstr "" + +#: vimode/cmds.cpp:77 +#, fuzzy, kde-format +#| msgid "Missing argument. Usage: %1 " +msgid "Missing argument(s). Usage: %1 []" +msgstr "Адсутнічае аргумент. Выкарыстанне: %1 " + +#: vimode/cmds.cpp:145 vimode/cmds.cpp:161 +#, kde-format +msgid "Wrong arguments" +msgstr "" + +#: vimode/config/configtab.cpp:205 +#, fuzzy, kde-format +#| msgid "Unable to open %1" +msgid "Unable to open the config file for reading." +msgstr "Немагчыма адкрыць %1" + +#: vimode/config/configtab.cpp:205 +#, fuzzy, kde-format +#| msgid "Unable to open %1" +msgid "Unable to open file" +msgstr "Немагчыма адкрыць %1" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkViCommandsOverride) +#: vimode/config/configwidget.ui:35 +#, kde-format +msgid "" +"When selected, vi commands will override Kate's built-in commands. For " +"example: Ctrl+R will redo, and override the standard action (showing the " +"search and replace dialog)." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkViCommandsOverride) +#: vimode/config/configwidget.ui:38 +#, kde-format +msgid "Let Vi commands override Kate shortcuts" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkViRelLineNumbers) +#: vimode/config/configwidget.ui:45 +#, fuzzy, kde-format +#| msgid "Show/hide the line numbers on the left hand side of the view." +msgid "" +"Show the line number relative to the line with the cursor in front of each " +"line." +msgstr "Паказаць/схаваць нумары радкоў справа ад тэксту." + +#. i18n: ectx: property (text), widget (QCheckBox, chkViRelLineNumbers) +#: vimode/config/configwidget.ui:48 +#, fuzzy, kde-format +#| msgid "Print &line numbers" +msgid "Display relative line numbers" +msgstr "Друкаваць нумары &радкоў" + +#. i18n: ectx: property (whatsThis), widget (QGroupBox, groupBox) +#: vimode/config/configwidget.ui:63 +#, kde-format +msgid "" +"Key mapping is used to change the meaning of typed keys. This allows you to " +"move commands to other keys or make special keypresses for doing a series of " +"commands.\n" +"\n" +"Example:\n" +"\"\" → \"I-- \"\n" +"\n" +"This will prepend \"-- \" to a line when pressing F2." +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, groupBox) +#: vimode/config/configwidget.ui:66 +#, kde-format +msgid "Key Mapping" +msgstr "" + +#. i18n: ectx: attribute (title), widget (QWidget, normalTab) +#: vimode/config/configwidget.ui:76 +#, fuzzy, kde-format +#| msgid "Normal Text" +msgid "Normal mode" +msgstr "Звычайны тэкст" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:95 vimode/config/configwidget.ui:133 +#: vimode/config/configwidget.ui:171 +#, fuzzy, kde-format +#| msgid "Comment" +msgid "Command" +msgstr "Каментар" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:100 vimode/config/configwidget.ui:138 +#: vimode/config/configwidget.ui:176 +#, fuzzy, kde-format +msgid "Replacement" +msgstr "Замяніць" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:105 vimode/config/configwidget.ui:143 +#: vimode/config/configwidget.ui:181 +#, kde-format +msgid "Recursive?" +msgstr "" + +#. i18n: ectx: attribute (title), widget (QWidget, insertTab) +#: vimode/config/configwidget.ui:114 +#, fuzzy, kde-format +#| msgid "&Insert" +msgid "Insert mode" +msgstr "У&ставіць" + +#. i18n: ectx: attribute (title), widget (QWidget, visualTab) +#: vimode/config/configwidget.ui:152 +#, fuzzy, kde-format +#| msgid "Normal Text" +msgid "Visual mode" +msgstr "Звычайны тэкст" + +#. i18n: ectx: property (text), widget (QPushButton, btnRemoveSelectedRows) +#: vimode/config/configwidget.ui:195 +#, fuzzy, kde-format +#| msgid "Selected" +msgid "Remove selected" +msgstr "Вылучаны" + +#. i18n: ectx: property (text), widget (QPushButton, btnAddNewRow) +#: vimode/config/configwidget.ui:202 +#, kde-format +msgid "Add new mapping" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QPushButton, btnImportNormal) +#: vimode/config/configwidget.ui:209 +#, kde-format +msgid "" +"Read a vimrc file and attempt to import mappings specified with the " +"\"[n]noremap\" command." +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, btnImportNormal) +#: vimode/config/configwidget.ui:212 +#, kde-format +msgid "Import from vimrc file" +msgstr "" + +#: vimode/marks.cpp:117 +#, fuzzy, kde-format +msgid "Mark set: %1" +msgstr " Радок: %1" + +#: vimode/marks.cpp:163 +#, fuzzy, kde-format +#| msgid "Go to the next bookmark." +msgid "There are no more chars for the next bookmark." +msgstr "Ісці да наступнай закладкі." + +#: vimode/modes/insertvimode.cpp:261 vimode/modes/modebase.cpp:794 +#: vimode/modes/normalvimode.cpp:3567 +#, kde-format +msgid "Nothing in register %1" +msgstr "" + +#: vimode/modes/normalvimode.cpp:1691 +#, kde-format +msgid "'%1' %2, Hex %3, Octal %4" +msgstr "" + +#: vimode/modes/normalvimode.cpp:2534 +#, fuzzy, kde-format +msgid "Mark not set: %1" +msgstr " Радок: %1" + +#~ msgid "Set &Bookmark" +#~ msgstr "Устанавіць &закладку" + +#, fuzzy +#~| msgid "The file '%1' was created by another program." +#~ msgid "The file '%1' was created on disk." +#~ msgstr "Файл '%1' створаны іншай праграмай." + +#~ msgid "" +#~ "Use this command to copy the currently selected text as HTML to the " +#~ "system clipboard." +#~ msgstr "Скапіраваць вылучаны тэкст як HTML у сістэмную кішэню." + +#, fuzzy +#~| msgid "Character" +#~ msgctxt "Wrap words at (value is at 20 or larger)" +#~ msgid " character" +#~ msgid_plural " characters" +#~ msgstr[0] "Знак" +#~ msgstr[1] "Знак" +#~ msgstr[2] "Знак" + +#, fuzzy +#~| msgid "&Save File As..." +#~ msgid "Save..." +#~ msgstr "&Запісаць файл як..." + +#, fuzzy +#~| msgid "&Save File As..." +#~ msgid "&Copy..." +#~ msgstr "&Запісаць файл як..." + +#, fuzzy +#~| msgid "Other" +#~ msgid "Other..." +#~ msgstr "Іншы" + +#, fuzzy +#~| msgid "&Align" +#~ msgid "&Align On..." +#~ msgstr "Вы&раўнаць" + +#, fuzzy +#~ msgid "Change Dictionary..." +#~ msgstr "Выбраць рэдактар..." + +#~ msgid "" +#~ "The file %1 could not be loaded, as it was not possible to read from it.\n" +#~ "\n" +#~ "Check if you have read access to this file." +#~ msgstr "" +#~ "Немагчыма прачытаць файл %1.\n" +#~ "\n" +#~ "Праверце правы доступу для гэтага файла." + +#, fuzzy +#~| msgid "&Insert" +#~ msgid "Insert Tab" +#~ msgstr "У&ставіць" + +#~ msgid "Classes" +#~ msgstr "Класы" + +#~ msgid "Functions" +#~ msgstr "Функцыі" + +#, fuzzy +#~| msgid "Comment" +#~ msgctxt "Script command name" +#~ msgid "Toggle comment" +#~ msgstr "Каментар" + +#~ msgid "Choo&se Font..." +#~ msgstr "Выб&ар шрыфта..." + +#, fuzzy +#~| msgid "E&ncoding" +#~ msgctxt "Script command category" +#~ msgid "Quick Coding" +#~ msgstr "&Знаказбор:" + +#, fuzzy +#~| msgid "&Default schema for %1:" +#~ msgid "&Default theme for %1:" +#~ msgstr "&Прадвызначаная схема для %1:" + +#, fuzzy +#~| msgid "&Automatic end of line detection" +#~ msgid "Automatic Selection" +#~ msgstr "&Аўтаматычнае вызначэнне канца радка" + +#, fuzzy +#~| msgid "The file '%1' was modified by another program." +#~ msgid "Meaning of current icon: Document was modified or deleted on disk" +#~ msgstr "Файл '%1' зменены іншай праграмай." + +#, fuzzy +#~| msgid "The file '%1' was modified by another program." +#~ msgid "Meaning of current icon: Document is in read-only mode" +#~ msgstr "Файл '%1' зменены іншай праграмай." + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Lua" +#~ msgctxt "Autoindent mode" +#~ msgid "Lua" +#~ msgstr "Lua" + +#, fuzzy +#~| msgid "Show &line numbers" +#~ msgid "Show line modification markers" +#~ msgstr "Паказваць &нумары радкоў" + +#, fuzzy +#~| msgid "By c&reation" +#~ msgid "B&y creation" +#~ msgstr "Па &стварэнню" + +#, fuzzy +#~| msgid "By &position" +#~ msgid "By posi&tion" +#~ msgstr "Па &размяшчэнню" + +#~ msgid "Backup on Save" +#~ msgstr "Ствараць рэзервавую копію пры запісе" + +#, fuzzy +#~| msgid "Prefix" +#~ msgid "&Prefix:" +#~ msgstr "Прэфікс" + +#~ msgid "&Suffix:" +#~ msgstr "&Суфікс:" + +#, fuzzy +#~| msgid "Disabled" +#~ msgid "Disable" +#~ msgstr "Выключана" + +#, fuzzy +#~| msgid "Folder Config File" +#~ msgid "Directory for swp files" +#~ msgstr "Файл настаўленняў тэчкі" + +#, fuzzy +#~| msgid "S&elected Background Color..." +#~ msgid "Show static word wra&p marker" +#~ msgstr "В&ылучаны фонавы колер..." + +#, fuzzy +#~| msgid "Header Properties" +#~ msgid "Input Mode" +#~ msgstr "Уласцівасці загалоўка" + +#, fuzzy +#~| msgid "Select to Matching Bracket" +#~ msgid "Enable automatic brackets" +#~ msgstr "Вылучыць да адпаведнай дужкі" + +#, fuzzy +#~| msgid "Cursor & Selection" +#~ msgid "Chars to enclose selection:" +#~ msgstr "Курсор і вылучэнне" + +#, fuzzy +#~ msgid "Highlight marker size:" +#~ msgstr "Падсвятленне для Ferite" + +#, fuzzy +#~ msgid "Highlight tabulators" +#~ msgstr "&Падсветка" + +#~ msgid "Prefix" +#~ msgstr "Прэфікс" + +#~ msgid "Icon" +#~ msgstr "Значка" + +#, fuzzy +#~ msgid "Scope" +#~ msgstr "Збор" + +#~ msgid "Name" +#~ msgstr "Назва" + +#~ msgid "Public" +#~ msgstr "Публічны" + +#~ msgid "Private" +#~ msgstr "Прыватны" + +#, fuzzy +#~ msgid "Namespace" +#~ msgstr "Зваротны скос" + +#~ msgid "Class" +#~ msgstr "Клас" + +#, fuzzy +#~ msgid "Struct" +#~ msgstr "&Закрэслены" + +#, fuzzy +#~ msgid "Union" +#~ msgstr "Функцыя" + +#~ msgid "Function" +#~ msgstr "Функцыя" + +#, fuzzy +#~ msgid "Variable" +#~ msgstr "&Зменныя:" + +#~ msgid "Enumeration" +#~ msgstr "Пералічэнне" + +#~ msgid "Template" +#~ msgstr "Шаблон" + +#~ msgid "Override" +#~ msgstr "Перапісаць" + +#, fuzzy +#~ msgid "Inline" +#~ msgstr "&Падкрэслены" + +#, fuzzy +#~ msgid "Friend" +#~ msgstr "Сябар/сяброўка" + +#, fuzzy +#~ msgid "Local Scope" +#~ msgstr "Для &мясцовых файлаў" + +#, fuzzy +#~ msgid "Code Completion Configuration" +#~ msgstr "Модуль заканчэння словаў" + +#, fuzzy +#~| msgid "Execution" +#~ msgid "Description" +#~ msgstr "Выкананне" + +#, fuzzy +#~| msgid "Edit Entry" +#~ msgid "Edit Entry..." +#~ msgstr "Змяніць запіс" + +#, fuzzy +#~| msgid "Edit Entry" +#~ msgid "Add Entry..." +#~ msgstr "Змяніць запіс" + +#, fuzzy +#~| msgid "The Editing Commands" +#~ msgid "Edit Command" +#~ msgstr "Каманды рэдагавання" + +#, fuzzy +#~| msgid "Choo&se Font..." +#~ msgid "Choose an icon." +#~ msgstr "Выб&ар шрыфта..." + +#, fuzzy +#~| msgid "&Section:" +#~ msgid "&Description:" +#~ msgstr "&Раздзел:" + +#, fuzzy +#~| msgid "&Pattern:" +#~ msgid "&Category:" +#~ msgstr "&Шаблон:" + +#, fuzzy +#~| msgid "String" +#~ msgid "Sorting" +#~ msgstr "Радок" + +#, fuzzy +#~| msgid "Case &sensitive" +#~ msgid "Case sensitive" +#~ msgstr "З &улікам рэгістру" + +#, fuzzy +#~| msgid "String" +#~ msgid "Filtering" +#~ msgstr "Радок" + +#, fuzzy +#~| msgid "Header Properties" +#~ msgid "Access Grouping Properties" +#~ msgstr "Уласцівасці загалоўка" + +#, fuzzy +#~| msgid "Header Properties" +#~ msgid "Item Grouping properties" +#~ msgstr "Уласцівасці загалоўка" + +#, fuzzy +#~| msgid "Colors" +#~ msgid "Columns" +#~ msgstr "Колеры" + +#, fuzzy +#~ msgid "(c) 2000-2019 The Kate Authors" +#~ msgstr "© 2000-2004 Стваральнікі Kate" + +#, fuzzy +#~| msgid "What do you want to do?" +#~ msgid "How do you want to import the schema?" +#~ msgstr "Што вы хочаце зрабіць?" + +#, fuzzy +#~| msgid "Replace Confirmation" +#~ msgid "Replace current schema?" +#~ msgstr "Пацвярджэнне замены" + +#, fuzzy +#~| msgid "Replace Confirmation" +#~ msgid "Replace existing schema %1" +#~ msgstr "Пацвярджэнне замены" + +#, fuzzy +#~| msgid "Name for New Schema" +#~ msgid "Import as new schema:" +#~ msgstr "Назва новай схемы" + +#, fuzzy +#~ msgid "Loading all highlightings for schema" +#~ msgstr "Падсвятленне для Scheme" + +#, fuzzy +#~| msgid "Font & Color Schemas" +#~ msgid "Kate color schema" +#~ msgstr "Шрыфты і колерныя схемы" + +#, fuzzy +#~| msgid "File Format" +#~ msgid "Fileformat error" +#~ msgstr "Фармат файла" + +#~ msgid "&New..." +#~ msgstr "&Новы..." + +#, fuzzy +#~| msgid "Replace Confirmation" +#~ msgid "Replace existing theme %1" +#~ msgstr "Пацвярджэнне замены" + +#, fuzzy +#~ msgid "Name unspecified" +#~ msgstr "Зваротны скос" + +#~ msgid "Name for New Schema" +#~ msgstr "Назва новай схемы" + +#~ msgid "Name:" +#~ msgstr "Назва:" + +#~ msgid "New Schema" +#~ msgstr "Новая схема" + +#~ msgid "&Schema:" +#~ msgstr "&Схема:" + +#~ msgid "Fonts & Colors" +#~ msgstr "Шрыфты і колеры" + +#~ msgid "Font & Color Schemas" +#~ msgstr "Шрыфты і колерныя схемы" + +#~ msgid "&Schema" +#~ msgstr "&Схема" + +#~ msgid "" +#~ "A file named \"%1\" already exists. Are you sure you want to overwrite it?" +#~ msgstr "Файл з назвай \"%1\" ужо існуе. Вы сапраўды хочаце перапісаць яго?" + +#~ msgid "Overwrite File?" +#~ msgstr "Перапісаць файл?" + +#, fuzzy +#~ msgid "Highlight trailing &spaces" +#~ msgstr "Правілы падсветкі" + +#~ msgid "Spellcheck Selection..." +#~ msgstr "Спраўдзіць правапіс вылучанага тэксту..." + +#~ msgid "Check spelling of the selected text" +#~ msgstr "Спраўдзіць правапіс вылучанага тэксту" + +#~ msgid "&Go to line:" +#~ msgstr "&Ісці да радка:" + +#~ msgid "What do you want to do?" +#~ msgstr "Што вы хочаце зрабіць?" + +#~ msgid "File Was Changed on Disk" +#~ msgstr "Дыскавая копія файла змянілася" + +#~ msgid "&Ignore Changes" +#~ msgstr "&Ігнараваць змены" + +#, fuzzy +#~ msgid "Download Highlighting Files..." +#~ msgstr "Правілы падсветкі" + +#, fuzzy +#~ msgid "Highlight Download" +#~ msgstr "Сцягванне файлаў падсветкі" + +#~ msgid "Select the syntax highlighting files you want to update:" +#~ msgstr "Выберыце файлы падсветкі сінтаксісу, якія вы хочаце абнавіць:" + +#~ msgid "Installed" +#~ msgstr "Устаноўлена" + +#~ msgid "Latest" +#~ msgstr "Апошні" + +#~ msgid "Note: New versions are selected automatically." +#~ msgstr "Заўвага: Новыя версіі выбіраюцца аўтаматычна." + +#~ msgid "&Install" +#~ msgstr "&Устанавіць" + +#, fuzzy +#~| msgid "None" +#~ msgctxt "Syntax highlighting" +#~ msgid "None" +#~ msgstr "Няма" + +#~ msgid "Normal Text" +#~ msgstr "Звычайны тэкст" + +#, fuzzy +#~| msgid "" +#~| "%1: Deprecated syntax. Attribute (%2) not addressed by symbolic " +#~| "name
" +#~ msgid "" +#~ "%1: Deprecated syntax. Attribute (%2) not addressed by symbolic " +#~ "name
" +#~ msgstr "" +#~ "%1: Састарэлы сінтаксіс. Атрыбут (%2) не адрасаваны сімвалічнай " +#~ "назвай
" + +#, fuzzy +#~| msgid "%1: Deprecated syntax. Context %2 has no symbolic name
" +#~ msgid "%1: Deprecated syntax. Context %2 has no symbolic name
" +#~ msgstr "" +#~ "%1: Састарэлы сінтаксіс. Кантэкст %2 не мае сімвалічнай назвы
" + +#~ msgid "" +#~ "%1:Deprecated syntax. Context %2 not addressed by a symbolic name" +#~ msgstr "" +#~ "%1:Састарэлы сінтаксіс. Кантэкст %2 не адрасаваны сімвалічнай " +#~ "назвай" + +#, fuzzy +#~ msgid "" +#~ "There were warning(s) and/or error(s) while parsing the syntax " +#~ "highlighting configuration." +#~ msgstr "" +#~ "Адбыліся памылкі/папярэджанні пры апрацоўванні настаўленняў падсветкі " +#~ "сінтаксісу." + +#~ msgid "Kate Syntax Highlighting Parser" +#~ msgstr "Падсвятляльнік сінтаксісу Kate" + +#~ msgid "" +#~ "Since there has been an error parsing the highlighting description, this " +#~ "highlighting will be disabled" +#~ msgstr "" +#~ "З-за памылкі апрацоўвання настаўленняў падсветкі гэты метад падсветкі не " +#~ "будзе ўжыты" + +#~ msgid "Unable to open %1" +#~ msgstr "Немагчыма адкрыць %1" + +#, fuzzy +#~| msgid "" +#~| "The error %4
has been detected in the file %1 at %2/%3" +#~ msgid "" +#~ "The error %4
has been detected in the file %1 at %2/%3" +#~ msgstr "Памылка %4
вынайдзена ў файле %1 at %2/%3
" + +#, fuzzy +#~| msgid "Continue from the end?" +#~ msgid "Continuing search from top" +#~ msgstr "Працягнуць з канца?" + +#, fuzzy +#~| msgid "Continue from the end?" +#~ msgid "Continuing search from bottom" +#~ msgstr "Працягнуць з канца?" + +#~ msgctxt "Language Section" +#~ msgid "Scripts" +#~ msgstr "Сцэнары" + +#~ msgctxt "Language Section" +#~ msgid "Sources" +#~ msgstr "Зыходны код" + +#~ msgctxt "Language" +#~ msgid "ABC" +#~ msgstr "ABC" + +#~ msgctxt "Language Section" +#~ msgid "Other" +#~ msgstr "Іншыя" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "ActionScript 2.0" +#~ msgstr "Сцэнары" + +#~ msgctxt "Language" +#~ msgid "Ada" +#~ msgstr "Ada" + +#~ msgctxt "Language" +#~ msgid "AHDL" +#~ msgstr "AHDL" + +#~ msgctxt "Language Section" +#~ msgid "Hardware" +#~ msgstr "Прыстасаванні" + +#~ msgctxt "Language" +#~ msgid "Alerts" +#~ msgstr "Alerts" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Alerts" +#~ msgctxt "Language" +#~ msgid "Alerts_indent" +#~ msgstr "Alerts" + +#~ msgctxt "Language" +#~ msgid "ANSI C89" +#~ msgstr "ANSI C89" + +#~ msgctxt "Language Section" +#~ msgid "Scientific" +#~ msgstr "Навуковыя" + +#~ msgctxt "Language" +#~ msgid "Apache Configuration" +#~ msgstr "Настаўленні Apache" + +#~ msgctxt "Language Section" +#~ msgid "Configuration" +#~ msgstr "Файлы настаўленняў" + +#~ msgctxt "Language Section" +#~ msgid "Assembler" +#~ msgstr "Асэмблер" + +#~ msgctxt "Language" +#~ msgid "AVR Assembler" +#~ msgstr "Асэмблер AVR" + +#~ msgctxt "Language" +#~ msgid "Asm6502" +#~ msgstr "Asm6502" + +#, fuzzy +#~ msgctxt "Language Section" +#~ msgid "Markup" +#~ msgstr "Разметка" + +#~ msgctxt "Language" +#~ msgid "ASP" +#~ msgstr "ASP" + +#~ msgctxt "Language" +#~ msgid "AWK" +#~ msgstr "AWK" + +#~ msgctxt "Language" +#~ msgid "Bash" +#~ msgstr "Bash" + +#~ msgctxt "Language" +#~ msgid "BibTeX" +#~ msgstr "BibTeX" + +#~ msgctxt "Language" +#~ msgid "C" +#~ msgstr "C" + +#~ msgctxt "Language" +#~ msgid "Cg" +#~ msgstr "Cg" + +#~ msgctxt "Language" +#~ msgid "CGiS" +#~ msgstr "CGiS" + +#~ msgctxt "Language" +#~ msgid "ChangeLog" +#~ msgstr "ChangeLog" + +#~ msgctxt "Language" +#~ msgid "Cisco" +#~ msgstr "Cisco" + +#~ msgctxt "Language" +#~ msgid "Clipper" +#~ msgstr "Clipper" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "CoffeeScript" +#~ msgstr "Сцэнары" + +#~ msgctxt "Language" +#~ msgid "ColdFusion" +#~ msgstr "ColdFusion" + +#~ msgctxt "Language" +#~ msgid "Common Lisp" +#~ msgstr "Common Lisp" + +#~ msgctxt "Language" +#~ msgid "Component-Pascal" +#~ msgstr "Component-Pascal" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "CMake" +#~ msgctxt "Language" +#~ msgid "Crack" +#~ msgstr "CMake" + +#~ msgctxt "Language" +#~ msgid "C#" +#~ msgstr "C#" + +#~ msgctxt "Language" +#~ msgid "CSS" +#~ msgstr "CSS" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "CubeScript" +#~ msgstr "Сцэнары" + +#~ msgctxt "Language" +#~ msgid "CUE Sheet" +#~ msgstr "CUE Sheet" + +#~ msgctxt "Language" +#~ msgid "D" +#~ msgstr "D" + +#~ msgctxt "Language" +#~ msgid "Debian Changelog" +#~ msgstr "Debian Changelog" + +#~ msgctxt "Language" +#~ msgid "Debian Control" +#~ msgstr "Debian Control" + +#~ msgctxt "Language" +#~ msgid ".desktop" +#~ msgstr ".desktop" + +#~ msgctxt "Language" +#~ msgid "Diff" +#~ msgstr "Diff" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Makefile" +#~ msgctxt "Language" +#~ msgid "Dockerfile" +#~ msgstr "Makefile" + +#~ msgctxt "Language" +#~ msgid "Doxygen" +#~ msgstr "Doxygen" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Doxygen" +#~ msgctxt "Language" +#~ msgid "DoxygenLua" +#~ msgstr "Doxygen" + +#~ msgctxt "Language" +#~ msgid "E Language" +#~ msgstr "E Language" + +#~ msgctxt "Language" +#~ msgid "Eiffel" +#~ msgstr "Eiffel" + +#~ msgctxt "Language" +#~ msgid "Email" +#~ msgstr "Email" + +#~ msgctxt "Language" +#~ msgid "Euphoria" +#~ msgstr "Euphoria" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Intel x86 (NASM)" +#~ msgctxt "Language" +#~ msgid "Intel x86 (FASM)" +#~ msgstr "Асэмблер Intel x86 (NASM)" + +#~ msgctxt "Language" +#~ msgid "ferite" +#~ msgstr "ferite" + +#~ msgctxt "Language" +#~ msgid "4GL" +#~ msgstr "4GL" + +#~ msgctxt "Language Section" +#~ msgid "Database" +#~ msgstr "Базы данняў" + +#~ msgctxt "Language" +#~ msgid "4GL-PER" +#~ msgstr "4GL-PER" + +#~ msgctxt "Language" +#~ msgid "Fortran" +#~ msgstr "Fortran" + +#~ msgctxt "Language" +#~ msgid "fstab" +#~ msgstr "fstab" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "GAP" +#~ msgstr "ASP" + +#, fuzzy +#~| msgid "Backspace" +#~ msgctxt "Language" +#~ msgid "GDB Backtrace" +#~ msgstr "Зваротны скос" + +#~ msgctxt "Language" +#~ msgid "GDL" +#~ msgstr "GDL" + +#~ msgctxt "Language" +#~ msgid "GNU Gettext" +#~ msgstr "GNU Gettext" + +#, fuzzy +#~| msgid "&Ignore" +#~ msgctxt "Language" +#~ msgid "Git Ignore" +#~ msgstr "&Ігнараваць" + +#~ msgctxt "Language" +#~ msgid "GLSL" +#~ msgstr "GLSL" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "D" +#~ msgctxt "Language Section" +#~ msgid "3D" +#~ msgstr "D" + +#~ msgctxt "Language" +#~ msgid "GNU Assembler" +#~ msgstr "Асэмблер GNU" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Go" +#~ msgstr "Ісці" + +#~ msgctxt "Language" +#~ msgid "Haskell" +#~ msgstr "Haskell" + +#~ msgctxt "Language" +#~ msgid "HTML" +#~ msgstr "HTML" + +#~ msgctxt "Language" +#~ msgid "Quake Script" +#~ msgstr "Сцэнар Quake" + +#~ msgctxt "Language" +#~ msgid "IDL" +#~ msgstr "IDL" + +#~ msgctxt "Language" +#~ msgid "ILERPG" +#~ msgstr "ILERPG" + +#~ msgctxt "Language" +#~ msgid "Inform" +#~ msgstr "Inform" + +#~ msgctxt "Language" +#~ msgid "INI Files" +#~ msgstr "Файлы INI" + +#~ msgctxt "Language" +#~ msgid "Java" +#~ msgstr "Java" + +#~ msgctxt "Language" +#~ msgid "Javadoc" +#~ msgstr "Javadoc" + +#~ msgctxt "Language" +#~ msgid "JavaScript" +#~ msgstr "JavaScript" + +#~ msgctxt "Language" +#~ msgid "JSP" +#~ msgstr "JSP" + +#~ msgctxt "Language" +#~ msgid "KBasic" +#~ msgstr "KBasic" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Kconfig" +#~ msgstr "Настаўленне" + +#~ msgctxt "Language" +#~ msgid "LaTeX" +#~ msgstr "LaTeX" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Quake Script" +#~ msgctxt "Language" +#~ msgid "GNU Linker Script" +#~ msgstr "Сцэнар Quake" + +#~ msgctxt "Language" +#~ msgid "LDIF" +#~ msgstr "LDIF" + +#~ msgctxt "Language" +#~ msgid "Lex/Flex" +#~ msgstr "Lex/Flex" + +#~ msgctxt "Language" +#~ msgid "LilyPond" +#~ msgstr "LilyPond" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Literate Haskell" +#~ msgctxt "Language" +#~ msgid "Literate Curry" +#~ msgstr "Literate Haskell" + +#~ msgctxt "Language" +#~ msgid "Literate Haskell" +#~ msgstr "Literate Haskell" + +#~ msgctxt "Language" +#~ msgid "Logtalk" +#~ msgstr "Logtalk" + +#~ msgctxt "Language" +#~ msgid "LPC" +#~ msgstr "LPC" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "GLSL" +#~ msgctxt "Language" +#~ msgid "LSL" +#~ msgstr "GLSL" + +#~ msgctxt "Language" +#~ msgid "Lua" +#~ msgstr "Lua" + +#~ msgctxt "Language" +#~ msgid "M3U" +#~ msgstr "M3U" + +#~ msgctxt "Language" +#~ msgid "MAB-DB" +#~ msgstr "MAB-DB" + +#~ msgctxt "Language" +#~ msgid "Makefile" +#~ msgstr "Makefile" + +#~ msgctxt "Language" +#~ msgid "Mason" +#~ msgstr "Mason" + +#~ msgctxt "Language" +#~ msgid "Matlab" +#~ msgstr "Matlab" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "MediaWiki" +#~ msgstr "CMake" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "SML" +#~ msgctxt "Language" +#~ msgid "MEL" +#~ msgstr "SML" + +#~ msgctxt "Language" +#~ msgid "MIPS Assembler" +#~ msgstr "Асэмблер MIPS" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Modula-2" +#~ msgctxt "Language" +#~ msgid "Modelica" +#~ msgstr "Modula-2" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Modula-2" +#~ msgctxt "Language" +#~ msgid "Modelines" +#~ msgstr "Modula-2" + +#~ msgctxt "Language" +#~ msgid "Modula-2" +#~ msgstr "Modula-2" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "MonoBasic" +#~ msgstr "KBasic" + +#~ msgctxt "Language" +#~ msgid "Music Publisher" +#~ msgstr "Music Publisher" + +#~ msgctxt "Language" +#~ msgid "Intel x86 (NASM)" +#~ msgstr "Асэмблер Intel x86 (NASM)" + +#~ msgctxt "Language" +#~ msgid "Objective-C" +#~ msgstr "Objective-C" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Objective-C++" +#~ msgstr "Objective-C" + +#~ msgctxt "Language" +#~ msgid "Objective Caml" +#~ msgstr "Objective Caml" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Objective Caml" +#~ msgctxt "Language" +#~ msgid "Objective Caml Ocamllex" +#~ msgstr "Objective Caml" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Objective Caml" +#~ msgctxt "Language" +#~ msgid "Objective Caml Ocamlyacc" +#~ msgstr "Objective Caml" + +#~ msgctxt "Language" +#~ msgid "Octave" +#~ msgstr "Octave" + +#~ msgctxt "Language" +#~ msgid "Pascal" +#~ msgstr "Pascal" + +#~ msgctxt "Language" +#~ msgid "Perl" +#~ msgstr "Perl" + +#~ msgctxt "Language" +#~ msgid "PHP/PHP" +#~ msgstr "PHP/PHP" + +#~ msgctxt "Language" +#~ msgid "PicAsm" +#~ msgstr "PicAsm" + +#~ msgctxt "Language" +#~ msgid "Pike" +#~ msgstr "Pike" + +#~ msgctxt "Language" +#~ msgid "PostScript" +#~ msgstr "PostScript" + +#~ msgctxt "Language" +#~ msgid "POV-Ray" +#~ msgstr "POV-Ray" + +#~ msgctxt "Language" +#~ msgid "progress" +#~ msgstr "progress" + +#~ msgctxt "Language" +#~ msgid "PureBasic" +#~ msgstr "PureBasic" + +#~ msgctxt "Language" +#~ msgid "Python" +#~ msgstr "Python" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "CMake" +#~ msgctxt "Language" +#~ msgid "QMake" +#~ msgstr "CMake" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "SML" +#~ msgctxt "Language" +#~ msgid "QML" +#~ msgstr "SML" + +#~ msgctxt "Language" +#~ msgid "R Script" +#~ msgstr "R Script" + +#, fuzzy +#~| msgid "&Replace" +#~ msgctxt "Language" +#~ msgid "Replicode" +#~ msgstr "&Замяніць" + +#~ msgctxt "Language" +#~ msgid "REXX" +#~ msgstr "REXX" + +#~ msgctxt "Language" +#~ msgid "Ruby/Rails/RHTML" +#~ msgstr "Ruby/Rails/RHTML" + +#~ msgctxt "Language" +#~ msgid "RenderMan RIB" +#~ msgstr "RenderMan RIB" + +#~ msgctxt "Language" +#~ msgid "RPM Spec" +#~ msgstr "Файл спецыфікацыі RPM" + +#~ msgctxt "Language" +#~ msgid "RSI IDL" +#~ msgstr "RSI IDL" + +#, fuzzy +#~| msgid "File Format" +#~ msgctxt "Language" +#~ msgid "Rich Text Format" +#~ msgstr "Фармат файла" + +#~ msgctxt "Language" +#~ msgid "Ruby" +#~ msgstr "Ruby" + +#~ msgctxt "Language" +#~ msgid "Sather" +#~ msgstr "Sather" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Stata" +#~ msgctxt "Language" +#~ msgid "Scala" +#~ msgstr "Stata" + +#~ msgctxt "Language" +#~ msgid "scilab" +#~ msgstr "scilab" + +#~ msgctxt "Language" +#~ msgid "SGML" +#~ msgstr "SGML" + +#~ msgctxt "Language" +#~ msgid "Sieve" +#~ msgstr "Sieve" + +#~ msgctxt "Language" +#~ msgid "SML" +#~ msgstr "SML" + +#~ msgctxt "Language" +#~ msgid "Spice" +#~ msgstr "Spice" + +#~ msgctxt "Language" +#~ msgid "SQL (MySQL)" +#~ msgstr "SQL (MySQL)" + +#~ msgctxt "Language" +#~ msgid "SQL (PostgreSQL)" +#~ msgstr "SQL (PostgreSQL)" + +#~ msgctxt "Language" +#~ msgid "SQL" +#~ msgstr "SQL" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "GLSL" +#~ msgctxt "Language" +#~ msgid "STL" +#~ msgstr "GLSL" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Verilog" +#~ msgctxt "Language" +#~ msgid "SystemVerilog" +#~ msgstr "Verilog" + +#~ msgctxt "Language" +#~ msgid "Tcl/Tk" +#~ msgstr "Tcl/Tk" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Textile" +#~ msgstr "Фон тэкставай вобласці" + +#~ msgctxt "Language" +#~ msgid "TI Basic" +#~ msgstr "TI Basic" + +#~ msgctxt "Language" +#~ msgid "txt2tags" +#~ msgstr "txt2tags" + +#~ msgctxt "Language" +#~ msgid "UnrealScript" +#~ msgstr "Сцэнар UnrealScript" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Apache Configuration" +#~ msgctxt "Language" +#~ msgid "Varnish Configuration Language" +#~ msgstr "Настаўленні Apache" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Apache Configuration" +#~ msgctxt "Language" +#~ msgid "Varnish 4 Configuration Language" +#~ msgstr "Настаўленні Apache" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Apache Configuration" +#~ msgctxt "Language" +#~ msgid "Varnish Test Case language" +#~ msgstr "Настаўленні Apache" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Apache Configuration" +#~ msgctxt "Language" +#~ msgid "Varnish 4 Test Case language" +#~ msgstr "Настаўленні Apache" + +#~ msgctxt "Language" +#~ msgid "Velocity" +#~ msgstr "Velocity" + +#~ msgctxt "Language" +#~ msgid "Verilog" +#~ msgstr "Verilog" + +#~ msgctxt "Language" +#~ msgid "VHDL" +#~ msgstr "VHDL" + +#~ msgctxt "Language" +#~ msgid "VRML" +#~ msgstr "VRML" + +#~ msgctxt "Language" +#~ msgid "WINE Config" +#~ msgstr "Файл настаўленняў WINE" + +#~ msgctxt "Language" +#~ msgid "xHarbour" +#~ msgstr "xHarbour" + +#~ msgctxt "Language" +#~ msgid "XML" +#~ msgstr "XML" + +#~ msgctxt "Language" +#~ msgid "XML (Debug)" +#~ msgstr "XML (наладка)" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "PostScript" +#~ msgctxt "Language" +#~ msgid "Xonotic Script" +#~ msgstr "PostScript" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "x.org Configuration" +#~ msgstr "Файлы настаўленняў" + +#~ msgctxt "Language" +#~ msgid "xslt" +#~ msgstr "xslt" + +#~ msgctxt "Language" +#~ msgid "XUL" +#~ msgstr "XUL" + +#~ msgctxt "Language" +#~ msgid "yacas" +#~ msgstr "yacas" + +#~ msgctxt "Language" +#~ msgid "Yacc/Bison" +#~ msgstr "Yacc/Bison" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Zonnon" +#~ msgstr "невядомы" + +#~ msgid "File Was Deleted on Disk" +#~ msgstr "Файл выдалены з дыску" + +#~ msgid "File Changed on Disk" +#~ msgstr "Дыскавая копія файла змянілася" + +#~ msgid "" +#~ "Do nothing. Next time you focus the file, or try to save it or close it, " +#~ "you will be prompted again." +#~ msgstr "" +#~ "Нічога не рабіць. Наступным разам, як вы актывізуеце гэты файл ці " +#~ "паспрабуеце яго запісаць ці закрыць, вас зноў спытаюць, што рабіць." + +#~ msgid "Overwrite the disk file with the editor content." +#~ msgstr "Перапісаць дыскавую копію зместам, адкрытым у рэдактары." + +#, fuzzy +#~ msgid "Close the document." +#~ msgstr "Закрыць прагляд бягучага дакумента" + +#~ msgid "You Are on Your Own" +#~ msgstr "Сам сабе гаспадар" + +#~ msgid "KDE Default" +#~ msgstr "Прадвызначаныя паводзіны KDE" + +#, fuzzy +#~ msgid "&Next" +#~ msgstr "Наступная" + +#, fuzzy +#~ msgid "&Previous" +#~ msgstr "Папярэдняя" + +#, fuzzy +#~ msgid "Case-sensitive searching" +#~ msgstr "З улікам рэгістру" + +#, fuzzy +#~| msgid "&Bold" +#~ msgid "Mo&de:" +#~ msgstr "&Цёмны" + +#, fuzzy +#~| msgid "Character" +#~ msgctxt "spinbox special value for 1" +#~ msgid "1 character" +#~ msgstr "Знак" + +#, fuzzy +#~| msgid "Character" +#~ msgctxt "suffix for spinbox >1 wrap words at (value is at 20 or larger)" +#~ msgid " characters" +#~ msgstr "Знак" + +#, fuzzy +#~| msgid "Se&arch depth for config file:" +#~ msgid "Search &depth for config file:" +#~ msgstr "&Глыбіня пошуку файла настаўленняў:" + +#, fuzzy +#~| msgid "Header Properties" +#~ msgid "Indentation width" +#~ msgstr "Уласцівасці загалоўка" + +#, fuzzy +#~| msgid "Error: %1" +#~ msgid "Error calling action(%1)" +#~ msgstr "Памылка: %1" + +#~ msgid "Errors!" +#~ msgstr "Памылкі!" + +#~ msgid "Error: %1" +#~ msgstr "Памылка: %1" + +#, fuzzy +#~| msgid "Selected text:" +#~ msgctxt "Language" +#~ msgid "Restructured Text" +#~ msgstr "Вылучаны тэкст:" + +#, fuzzy +#~| msgid "Unable to open %1" +#~ msgid "Unable to find '%1'" +#~ msgstr "Немагчыма адкрыць %1" + +#, fuzzy +#~| msgid "Word Completion Plugin" +#~ msgid "A&uto Word Completion HI" +#~ msgstr "Модуль заканчэння словаў" + +#, fuzzy +#~| msgid "Move to Matching Bracket" +#~ msgid "Matching Bracket" +#~ msgstr "Ісці да адпаведнай дужкі" + +#~ msgctxt "Language" +#~ msgid "C++" +#~ msgstr "C++" + +#, fuzzy +#~ msgid "Text Area Background" +#~ msgstr "Фон тэкставай вобласці" + +#~ msgid "Normal text:" +#~ msgstr "Звычайны тэкст:" + +#, fuzzy +#~ msgid "" +#~ "

Sets the background color of the selection.

To set the text " +#~ "color for selected text, use the \"Configure Highlighting\" dialog." +#~ "

" +#~ msgstr "" +#~ "

Вызначае фонавы колер для вылучанага тэксту.

Каб вызначыць колер " +#~ "вылучанага тэксту, адкрыйце акно \"Настаўленне падсветкі\".

" + +#~ msgid "

Select the marker type you want to change.

" +#~ msgstr "

Выберыце тып маркераў для змены.

" + +#~ msgid "" +#~ "

Sets the background color of the selected marker type.

Note: The marker color is displayed lightly because of transparency.

" +#~ msgstr "" +#~ "

Вызначае фонавы колер для выбранага тыпу маркераў.

Заўвага: Колер маркераў можа быць святлейшым з-за празрыстасці.

" + +#~ msgid "Additional Elements" +#~ msgstr "Дадатковыя элементы" + +#~ msgid "Left border background:" +#~ msgstr "Фон левай мяжы:" + +#~ msgid "Line numbers:" +#~ msgstr "Нумары радкоў:" + +#~ msgid "" +#~ "

This color will be used to draw the line numbers (if enabled) and the " +#~ "lines in the code-folding pane.

" +#~ msgstr "" +#~ "

Гэты колер выкарыстоўваецца для нумароў радкоў і элементаў у панэлі " +#~ "згортвання коду.

" + +#, fuzzy +#~ msgid "Word wrap markers:" +#~ msgstr "Маркеры пераносу радкоў:" + +#, fuzzy +#~| msgid "Tab markers:" +#~ msgid "Tab and space markers:" +#~ msgstr "Маркеры водступаў:" + +#, fuzzy +#~ msgid "Na&mespace:" +#~ msgstr "Зваротны скос" + +#, fuzzy +#~| msgid "License:" +#~ msgid "&License:" +#~ msgstr "Ліцэнзія:" + +#, fuzzy +#~| msgid "Author:" +#~ msgid "&Authors:" +#~ msgstr "Стваральнік:" + +#, fuzzy +#~| msgid "&Filetype:" +#~ msgid "&File types:" +#~ msgstr "Тып &файла:" + +#, fuzzy +#~ msgid "Help" +#~ msgstr "&Дапамога" + +#, fuzzy +#~| msgid "Prefix" +#~ msgid "Display &Prefix:" +#~ msgstr "Прэфікс" + +#, fuzzy +#~| msgid "Shortcuts" +#~ msgid "Shortcut:" +#~ msgstr "Скароты" + +#, fuzzy +#~ msgid "S&cripts" +#~ msgstr "Сцэнары" + +#, fuzzy +#~| msgid "Edit Entry" +#~ msgid "" +#~ msgstr "Змяніць запіс" + +#, fuzzy +#~ msgid "Output file '%1' could not be opened for writing" +#~ msgstr "Немагчыма адкрыць файл '%1': гэта не звычайны файл, гэта тэчка." + +#, fuzzy +#~| msgid "Edit Entry" +#~ msgid "Cannot open snippet repository %1." +#~ msgstr "Змяніць запіс" + +#, fuzzy +#~| msgid "Filetypes" +#~ msgid "Applies to all filetypes" +#~ msgstr "Тыпы файлаў" + +#, fuzzy +#~| msgid "&Section:" +#~ msgid "Add Repository" +#~ msgstr "&Раздзел:" + +#, fuzzy +#~| msgid "Edit Entry" +#~ msgid "Edit Repository" +#~ msgstr "Змяніць запіс" + +#, fuzzy +#~| msgid "Edit Entry" +#~ msgid "Edit Snippet" +#~ msgstr "Змяніць запіс" + +#, fuzzy +#~| msgid "Selected" +#~ msgid "Remove Snippet" +#~ msgstr "Вылучаны" + +#, fuzzy +#~| msgid "String" +#~ msgid "Filter..." +#~ msgstr "Радок" + +#, fuzzy +#~ msgid "Extensions Manager" +#~ msgstr "Кіраўнік утулак" + +#, fuzzy +#~| msgid "Selected" +#~ msgid "Create Snippet" +#~ msgstr "Вылучаны" + +#, fuzzy +#~ msgid "OVR" +#~ msgstr "НАМ" + +#, fuzzy +#~| msgid " INS " +#~ msgid "INS" +#~ msgstr " УСТ " + +#, fuzzy +#~| msgid "Move Word Left" +#~ msgid "Move Left" +#~ msgstr "Пасунуць слова ўлева" + +#, fuzzy +#~| msgid "Move Word Right" +#~ msgid "Move Right" +#~ msgstr "Пасунуць слова ўправа" + +#, fuzzy +#~| msgid "Scroll Line Up" +#~ msgid "Move Up" +#~ msgstr "Перайсці на радок вышэй" + +#, fuzzy +#~| msgid "Scroll Line Down" +#~ msgid "Move Down" +#~ msgstr "Перайсці на радок ніжэй" + +#, fuzzy +#~| msgid "Execution" +#~ msgid "Execute" +#~ msgstr "Выкананне" + +#, fuzzy +#~| msgid "Show/hide the command line on the bottom of the view." +#~ msgid "Show/hide the JavaScript Console on the bottom of the view." +#~ msgstr "Паказаць/схаваць загадны радок удолу рэдактара." + +#, fuzzy +#~| msgid "&Always On" +#~ msgid "Always on" +#~ msgstr "&Заўсёды ўключана" + +#, fuzzy +#~| msgid "Print the current document." +#~ msgid "Modify the current snippet" +#~ msgstr "Друкаваць гэты дакумент." + +#, fuzzy +#~| msgid "Create a new file type." +#~ msgid "Create a new repository file" +#~ msgstr "Стварыць новы тып файлаў" + +#, fuzzy +#~| msgid "Selected" +#~ msgid "Kate Snippets" +#~ msgstr "Вылучаны" + +#, fuzzy +#~| msgid "Selected" +#~ msgid "New Snippet" +#~ msgstr "Вылучаны" + +#, fuzzy +#~ msgid "No file specified" +#~ msgstr "Зваротны скос" + +#, fuzzy +#~ msgid "File could not be copied to repository" +#~ msgstr "Немагчыма адкрыць файл '%1': гэта не звычайны файл, гэта тэчка." + +#, fuzzy +#~| msgid "Edit Entry" +#~ msgid "Snippet Repository:" +#~ msgstr "Змяніць запіс" + +#, fuzzy +#~| msgid "Insert File..." +#~ msgid "New Snippet File..." +#~ msgstr "Уставіць файл..." + +#, fuzzy +#~| msgid "Selected" +#~ msgid "Get New Snippets..." +#~ msgstr "Вылучаны" + +#, fuzzy +#~| msgid "Selected" +#~ msgid "Kate Part Snippets" +#~ msgstr "Вылучаны" + +#, fuzzy +#~ msgid "&Keep highlighting" +#~ msgstr "&Падсветка" + +#, fuzzy +#~ msgid "R/O" +#~ msgstr " Т/Ч " + +#, fuzzy +#~ msgid "Plugins" +#~ msgstr "Утулкі" + +#, fuzzy +#~| msgid "Move Word Left" +#~ msgid "Programmer's Move Word Left" +#~ msgstr "Пасунуць слова ўлева" + +#, fuzzy +#~| msgid "Select Word Left" +#~ msgid "Programmer's Select Word Left" +#~ msgstr "Вылучыць лявейшае слова" + +#, fuzzy +#~| msgid "Move Word Right" +#~ msgid "Programmer's Move Word Right" +#~ msgstr "Пасунуць слова ўправа" + +#, fuzzy +#~| msgid "Select Word Right" +#~ msgid "Programmer's Select Word Right" +#~ msgstr "Вылучыць правейшае слова" + +#~ msgctxt "Language" +#~ msgid "Prolog" +#~ msgstr "Prolog" + +#~ msgid "" +#~ "Selections will be overwritten by typed text and will be lost on cursor " +#~ "movement." +#~ msgstr "" +#~ "Вылучаны тэкст будзе заменены на ўведзены тэкст і будзе згублены пры " +#~ "перасоўванні курсора." + +#~ msgid "&Normal" +#~ msgstr "&Звычайны" + +#~ msgid "Selections will stay even after cursor movement and typing." +#~ msgstr "" +#~ "Вылучаны тэкст застанецца вылучаным нават пасля ўводу тэксту і " +#~ "перасоўвання курсора." + +#~ msgid "The file %1 is a binary, saving it will result in a corrupt file." +#~ msgstr "Файл %1 двайковы: запісаўшы яго, вы атрымаеце сапсаваны файл." + +#~ msgid "Trying to Save Binary File" +#~ msgstr "Спроба запісу двайковага файла" + +#, fuzzy +#~ msgid "Wrap c&ursor" +#~ msgstr "&Ад курсора" + +#, fuzzy +#~| msgid "Remove &trailing spaces" +#~ msgid "Remove &trailing spaces while editing" +#~ msgstr "Прыбіраць &канцавыя прагалы" + +#, fuzzy +#~| msgid "Remove &trailing spaces" +#~ msgctxt "short translation please" +#~ msgid "Remove trailing spaces when editing a line." +#~ msgstr "Прыбіраць &канцавыя прагалы" + +#~ msgid "Overwrite" +#~ msgstr "Перапісаць" + +#, fuzzy +#~| msgid "&Stop" +#~ msgid "Stop" +#~ msgstr "&Спыніць" + +#, fuzzy +#~| msgid "Colors" +#~ msgctxt "@title:column a color button" +#~ msgid "Color" +#~ msgstr "Колеры" + +#, fuzzy +#~| msgid "Normal &Color..." +#~ msgid "Export HlColors..." +#~ msgstr "Звычайны &колер..." + +#, fuzzy +#~| msgid "Normal &Color..." +#~ msgid "Import HlColors..." +#~ msgstr "Звычайны &колер..." + +#, fuzzy +#~ msgid "Template Background" +#~ msgstr "Фон тэкставай вобласці" + +#, fuzzy +#~| msgid "&Format:" +#~ msgid "Form" +#~ msgstr "&Фармат:" + +#, fuzzy +#~ msgid "" +#~ "A KDE text-editor component could not be found;\n" +#~ "please check your KDE installation." +#~ msgstr "" +#~ "Кампанент рэдагавання тэксту KDE не знойдзены;\n" +#~ "калі ласка, праверце правільнасць устаноўкі KDE." + +#, fuzzy +#~ msgid "Use this command to create a new document" +#~ msgstr "Стварыць новы дакумент" + +#, fuzzy +#~ msgid "Use this command to open an existing document for editing" +#~ msgstr "Адкрыць наяўны дакумент для змены" + +#, fuzzy +#~ msgid "" +#~ "This lists files which you have opened recently, and allows you to easily " +#~ "open them again." +#~ msgstr "" +#~ "Паказвае спіс раней адкрытых файлаў, дазваляе проста адкрыць іх зноў." + +#, fuzzy +#~ msgid "&New Window" +#~ msgstr "&Новае вакно" + +#, fuzzy +#~ msgid "Create another view containing the current document" +#~ msgstr "Стварыць новы экзэмпляр праграмы з адкрытым бягучым дакументам" + +#, fuzzy +#~ msgid "Override the system-wide setting for the default editing component" +#~ msgstr "" +#~ "Перазапісаць сістэмныя настаўленні для прадвызначанага кампанента " +#~ "рэдагавання" + +#, fuzzy +#~ msgid "Use this command to show or hide the view's statusbar" +#~ msgstr "Паказаць/схаваць радок статусу прагляду" + +#, fuzzy +#~ msgid "Sho&w Path" +#~ msgstr "Пак&азваць шлях" + +#, fuzzy +#~ msgid "Show the complete document path in the window caption" +#~ msgstr "Паказваць поўны шлях дакумента у загалоўку акна" + +#, fuzzy +#~ msgid "Configure the application's keyboard shortcut assignments." +#~ msgstr "Прызначэнне клавішных скаротаў праграмы." + +#, fuzzy +#~ msgid "Configure which items should appear in the toolbar(s)." +#~ msgstr "Настаўленні панеляў начыння." + +#, fuzzy +#~ msgid "&About Editor Component" +#~ msgstr "Унутраны тэкставы рэдактар" + +#~ msgid " INS " +#~ msgstr " УСТ " + +#, fuzzy +#~| msgid " INS " +#~ msgid " LINE " +#~ msgstr " УСТ " + +#, fuzzy +#~ msgid "Read the contents of stdin" +#~ msgstr "Чытаць змест стандартнай плыні ўводу stdin" + +#, fuzzy +#~ msgid "Set encoding for the file to open" +#~ msgstr "Вызначыць знаказбор файла" + +#, fuzzy +#~ msgid "Navigate to this line" +#~ msgstr "Перайсці ў гэты радок" + +#, fuzzy +#~ msgid "Navigate to this column" +#~ msgstr "Перайсці ў гэты слупок" + +#, fuzzy +#~ msgid "KWrite" +#~ msgstr "KWrite" + +#, fuzzy +#~ msgid "KWrite - Text Editor" +#~ msgstr "KWrite - Тэкставы рэдактар" + +#, fuzzy +#~ msgid "Choose Editor Component" +#~ msgstr "Выбар кампанента рэдагавання" + +#, fuzzy +#~ msgid "TestRegression" +#~ msgstr "&Рэгулярны выраз" + +#~ msgid "Error: " +#~ msgstr "Памылка: " + +#~ msgid "&Insert spaces instead of tabulators" +#~ msgstr "&Устаўляць прагалы замест знакаў Tab" + +#, fuzzy +#~| msgid "&View Difference" +#~ msgid "View Differences" +#~ msgstr "Па&казаць адрозненні" + +#, fuzzy +#~| msgid "Disabled" +#~ msgctxt "Encodings menu" +#~ msgid "Disabled" +#~ msgstr "Выключана" + +#~ msgid "Binary File Opened" +#~ msgstr "Адкрыты двайковы файл" + +#, fuzzy +#~ msgid "Broken UTF-8 File Opened" +#~ msgstr "Адкрыты двайковы файл" + +#, fuzzy +#~| msgid "Search Options" +#~ msgid "&Options" +#~ msgstr "Настаўленне пошуку" + +#, fuzzy +#~ msgid "From &cursor" +#~ msgstr "&Ад курсора" + +#, fuzzy +#~ msgid "Hi&ghlight all" +#~ msgstr "&Падсветка" + +#, fuzzy +#~ msgid "(c) 2000-2008 The Kate Authors" +#~ msgstr "© 2000-2004 Стваральнікі Kate" + +#, fuzzy +#~ msgid "Developer & Highlight wizard" +#~ msgstr "Распрацоўшчык, напісанне майстра падсвятлення" + +#, fuzzy +#~ msgid "Unable to read file: '%1'" +#~ msgstr "Немагчыма адкрыць %1" + +#~ msgid "Success" +#~ msgstr "Паспяхова" + +#~ msgid "Move Character Right" +#~ msgstr "Перайсці на адзін знак правей" + +#~ msgid "Move Character Left" +#~ msgstr "Перайсці на адзін знак лявей" + +#~ msgid "&Overwrite" +#~ msgstr "анелпанель&Перапісаць" + +#, fuzzy +#~| msgid "&Find Next" +#~ msgid "Plain text\t\t(Alt+1)" +#~ msgstr "&Знайсці далей" + +#, fuzzy +#~ msgid "Regular expression\t(Alt+4)" +#~ msgstr "&Рэгулярны выраз" + +#, fuzzy +#~ msgid "Case Sensitive" +#~ msgstr "З улікам рэгістру" + +#, fuzzy +#~ msgid "(c) 2000-2007 The Kate Authors" +#~ msgstr "© 2000-2004 Стваральнікі Kate" + +#~ msgid "Line must be at least 1" +#~ msgstr "Радок павінны быць не менш за 1." + +#~ msgid "There is not that many lines in this document" +#~ msgstr "У гэтым дакуменце не так шмат радкоў" + +#, fuzzy +#~ msgid "Highlight all matches" +#~ msgstr "&Падсветка" + +#, fuzzy +#~ msgid "Selection only " +#~ msgstr "Толькі вылучаны тэкст" + +#~ msgid "Shortcuts Configuration" +#~ msgstr "Настаўленне скаротаў" + +#~ msgid "The spelling program seems to have crashed." +#~ msgstr "Праграма спраўджвання правапісу зламалася." + +#~ msgid "Exception, line %1: %2" +#~ msgstr "Выключэнне, радок %1: %2" + +#, fuzzy +#~ msgid "Could not access view." +#~ msgstr "Немагчыма атрымаць доступ да гэтага экзэмпляра прагляду" + +#, fuzzy +#~ msgid "Could not access lookup object." +#~ msgstr "Немагчыма атрымаць доступ да гэтага экзэмпляра прагляду" + +#, fuzzy +#~ msgid "Exception: Unable to find function '%1': %2" +#~ msgstr "Выключэнне, радок %1: %2" + +#, fuzzy +#~ msgid "Exception in line %1: %2" +#~ msgstr "Выключэнне, радок %1: %2" + +#, fuzzy +#~ msgid "Setup" +#~ msgstr "&Спыніць" + +#, fuzzy +#~ msgid "&Maximum undo steps:" +#~ msgstr "Найбольшая колькасць крокаў адкату:" + +#~ msgid "Print &selected text only" +#~ msgstr "Друкаваць толькі вы&лучаны тэкст" + +#~ msgid "" +#~ "

This option is only available if some text is selected in the document." +#~ "

If available and enabled, only the selected text is printed.

" +#~ msgstr "" +#~ "

Гэтая магчымасць даступная, калі вылучаны нейкі кавалак тэксту.

Надрукаваць толькі вылучаны тэкст.

" + +#~ msgid "Print %1" +#~ msgstr "Друкаваць %1" + +#~ msgid "Nowhere" +#~ msgstr "Нідзе" + +#~ msgid "Selection, then Current Word" +#~ msgstr "Вылучаны тэкст, пасля актыўнае слова" + +#~ msgid "Current Word Only" +#~ msgstr "Толькі актыўнае слова" + +#~ msgid "Current Word, then Selection" +#~ msgstr "Актыўнае слова, потым вылучаны тэкст" + +#, fuzzy +#~ msgid "NORM" +#~ msgstr " ЗВЫЧ " + +#, fuzzy +#~ msgid "&From cursor" +#~ msgstr "&Ад курсора" + +#, fuzzy +#~ msgid "&Highlight all" +#~ msgstr "&Падсветка" + +#~ msgid "Pop Up Completion List" +#~ msgstr "Выплыўны спіс з варыянтамі заканчэння" + +#~ msgid "Automatically &show completion list" +#~ msgstr "Аўтаматычна &паказваць спіс з варыянтамі заканчэння" + +#~ msgctxt "" +#~ "Translators: This is the first part of two strings which will comprise " +#~ "the sentence 'Show completions when a word is at least N characters'. The " +#~ "first part is on the right side of the N, which is represented by a " +#~ "spinbox widget, followed by the second part: 'characters long'. " +#~ "Characters is a ingeger number between and including 1 and 30. Feel free " +#~ "to leave the second part of the sentence blank if it suits your language " +#~ "better. " +#~ msgid "Show completions &when a word is at least" +#~ msgstr "Паказваць заканчэнні, калі сло&ва складаецца як менш з" + +#~ msgctxt "" +#~ "This is the second part of two strings that will comprise the sentence " +#~ "'Show completions when a word is at least N characters'" +#~ msgid "characters long." +#~ msgstr "літар." + +#~ msgid "" +#~ "Enable the automatic completion list popup as default. The popup can be " +#~ "disabled on a view basis from the 'Tools' menu." +#~ msgstr "" +#~ "Зрабіць прадвызначаным выплыўны спіс заканчэнняў словаў. Выплыўнае вакно " +#~ "можна выключыць для кожнага выгляду паасобку, праз меню \"Начынне\"." + +#~ msgid "" +#~ "Define the length a word should have before the completion list is " +#~ "displayed." +#~ msgstr "" +#~ "Вызначыце даўжыню словаў, для якіх трэба паказваць спіс заканчэнняў." + +#~ msgid "Choose File to Insert" +#~ msgstr "Выбар файла для ўстаўкі" + +#~ msgid "" +#~ "Failed to load file:\n" +#~ "\n" +#~ msgstr "" +#~ "Немагчыма адкрыць файл:\n" +#~ "\n" + +#~ msgid "Insert File Error" +#~ msgstr "Памылка ўстаўкі файла" + +#~ msgid "" +#~ "

The file %1 does not exist or is not readable, " +#~ "aborting." +#~ msgstr "

Файл %1 не існуе ці яго немагчыма прачытаць." + +#~ msgid "

Unable to open file %1, aborting." +#~ msgstr "

Немагчыма адкрыць файл %1." + +#~ msgid "

File %1 had no contents." +#~ msgstr "

Файл %1 парожні." + +#~ msgid "Data Tools" +#~ msgstr "Начынне працы з даннямі" + +#~ msgid "(not available)" +#~ msgstr "(адсутнічае)" + +#~ msgid "" +#~ "Data tools are only available when text is selected, or when the right " +#~ "mouse button is clicked over a word. If no data tools are offered even " +#~ "when text is selected, you need to install them. Some data tools are part " +#~ "of the KOffice package." +#~ msgstr "" +#~ "Начынне данняў становіцца даступным, толькі калі вылучаны тэкст ці пасля " +#~ "правай пстрычкі па слове. Калі інструменты застаюцца недаступнымі нават " +#~ "пасля вылучэння тэксту, неабходна ўстанавіць іх. Некаторыя інструменты з " +#~ "начыння данняў з'яўляюцца часткай пакунка KOffice." + +#~ msgid "AutoBookmarks" +#~ msgstr "Аўтаматычныя закладкі" + +#~ msgid "Configure AutoBookmarks" +#~ msgstr "Настаўленне аўтаматычных закладак" + +#~ msgid "&Pattern:" +#~ msgstr "&Шаблон:" + +#~ msgid "

A regular expression. Matching lines will be bookmarked.

" +#~ msgstr "

Рэгулярны выраз. Адпаведныя радкі будуць памечаныя.

" + +#~ msgid "" +#~ "

If enabled, the pattern matching will be case sensitive, otherwise not." +#~ "

" +#~ msgstr "" +#~ "

Калі ўключаны гэты параметр, шаблон будзе шукацца з улікам рэгістру." + +#~ msgid "&File mask:" +#~ msgstr "Маска &файла:" + +#~ msgid "&Patterns" +#~ msgstr "&Шаблоны" + +#~ msgid "Pattern" +#~ msgstr "Шаблон" + +#~ msgid "Mime Types" +#~ msgstr "Тыпы MIME" + +#~ msgid "&Edit..." +#~ msgstr "&Змяніць.." + +#~ msgid "Word Completion Plugin" +#~ msgstr "Модуль заканчэння словаў" + +#~ msgid "Configure the Word Completion Plugin" +#~ msgstr "Настаўленні модуля аўтаматычнага заканчэння словаў" + +#~ msgid "Configure..." +#~ msgstr "Настаўленне..." + +#~ msgid "Cursor & Selection Behavior" +#~ msgstr "Паводзіны курсора і вылучэння" + +#, fuzzy +#~ msgid "Script Manager" +#~ msgstr "Кіраўнік дадаткаў" + +#~ msgid "Hide &Icon Border" +#~ msgstr "Схаваць поле &значак" + +#~ msgid "Hide &Line Numbers" +#~ msgstr "Схаваць нумары &радкоў" + +#, fuzzy +#~ msgid "Hide Path" +#~ msgstr "Схаваць шлях" + +#, fuzzy +#~ msgid "Search string '%1' not found." +#~ msgstr "Радок пошуку '%1' не знойдзены." + +#~ msgid "Beginning of document reached." +#~ msgstr "Дасягнуты пачатак дакумента." + +#~ msgid "End of selection reached." +#~ msgstr "Дасягнуты канец вылучэння." + +#~ msgid "Beginning of selection reached." +#~ msgstr "Дасягнуты пачатак вылучэння." + +#~ msgid "Continue from the beginning?" +#~ msgstr "Працягнуць з пачатку?" + +#~ msgid "Re&place && Close" +#~ msgstr "За&мяніць і закрыць" + +#~ msgid "Found an occurrence of your search term. What do you want to do?" +#~ msgstr "" +#~ "Знойдзены адпаведнік для азначаных умоваў пошуку. Што трэба з ім зрабіць?" + +#~ msgid "Usage: find[:[bcersw]] PATTERN" +#~ msgstr "Выкарыстанне: find[:[bcersw]] ШАБЛОН" + +#~ msgid "Usage: ifind[:[bcrs]] PATTERN" +#~ msgstr "Выкарыстанне: ifind[:[bcrs]] ШАБЛОН" + +#~ msgid "Usage: replace[:[bceprsw]] PATTERN [REPLACEMENT]" +#~ msgstr "Выкарыстанне: replace[:[bceprsw]] ШАБЛОН [ЗАМЕНА]" + +#~ msgid "

Usage: find[:bcersw] PATTERN

" +#~ msgstr "

Выкарыстанне: find[:bcersw] ШАБЛОН

" + +#~ msgid "" +#~ "

Usage: ifind:[:bcrs] PATTERN
ifind does incremental or " +#~ "'as-you-type' search

" +#~ msgstr "" +#~ "

Выкарыстанне: ifind:[:bcrs] ШАБЛОН
ifind выконвае " +#~ "паступовы пошук пры ўводзе

" + +#~ msgid "

Usage: replace[:bceprsw] PATTERN REPLACEMENT

" +#~ msgstr "

Выкарыстанне: replace[:bceprsw] ШАБЛОН ЗАМЕНА

" + +#~ msgid "" +#~ "

Options

b - Search backward
c - " +#~ "Search from cursor
r - Pattern is a regular expression
s - Case sensitive search" +#~ msgstr "" +#~ "

Выбары

b - Пошук назад
c - Пошук з " +#~ "пазіцыі курсора
r - Шаблон - рэгулярны выраз
s - " +#~ "Пошук з улікам рэгістра" + +#~ msgid "" +#~ "
e - Search in selected text only
w - Search whole " +#~ "words only" +#~ msgstr "" +#~ "
e - Пошук толькі ў вылучаным тэксце
w - Пошук толькі " +#~ "цэлых словаў" + +#~ msgid "" +#~ "
p - Prompt for replace

If REPLACEMENT is not present, an " +#~ "empty string is used.

If you want to have whitespace in your " +#~ "PATTERN, you need to quote both PATTERN and REPLACEMENT with either " +#~ "single or double quotes. To have the quote characters in the strings, " +#~ "prepend them with a backslash." +#~ msgstr "" +#~ "
p - Пытаць пацвярджэння замены

Калі ЗАМЕНА не " +#~ "вызначаная, выкарыстоўваецца парожні радок.

Калі вы хочаце " +#~ "выкарыстаць у тэксце замены знак прагалу, неабходна змясціць і ШАБЛОН, і " +#~ "ЗАМЕНУ ў асобныя апострафы ці двукоссе. Калі вы хочаце выкарыстаць у " +#~ "тэксце замены знак апострафа ці двукоссе, неабходна перад імі ўставіць " +#~ "знак зваротнага скосу (\\)." + +#~ msgid "indenter.register requires 2 parameters (event id, function to call)" +#~ msgstr "" +#~ "indenter.register патрабуе 2 параметры (азначальнік падзеі, функцыя " +#~ "выкліку)" + +#~ msgid "" +#~ "indenter.register requires 2 parameters (event id (number), function to " +#~ "call (function))" +#~ msgstr "" +#~ "indenter.register патрабуе 2 параметры (азначальнік падзеі (лік), функцыя " +#~ "выкліку (функцыя))" + +#~ msgid "indenter.register:invalid event id" +#~ msgstr "indenter.register:няправільны азначальнік падзеі" + +#~ msgid "indenter.register:there is already a function set for given" +#~ msgstr "indenter.register:функцыя ўжо вызначана" + +#~ msgid "document.textLine:One parameter (line number) required" +#~ msgstr "document.textLine:Патрабны адзін параметр (нумар радка)" + +#~ msgid "document.textLine:One parameter (line number) required (number)" +#~ msgstr "document.textLine:Патрабуецца адзін параметр (нумар радка)" + +#~ msgid "" +#~ "document.removeText:Four parameters needed (start line, start col,end " +#~ "line, end col)" +#~ msgstr "" +#~ "document.removeText:Патрабуюцца 4 параметры (пачатковы радок, пачатковы " +#~ "слупок, канцавы радок, канцавы слупок)" + +#~ msgid "" +#~ "document.removeText:Four parameters needed (start line, start col,end " +#~ "line, end col) (4x number)" +#~ msgstr "" +#~ "document.removeText:Патрабуюцца 4 параметры (пачатковы радок, пачатковы " +#~ "слупок, канцавы радок, канцавы слупок)" + +#~ msgid "document.insertText:Three parameters needed (line,col,text)" +#~ msgstr "document.insertText:Патрабуюцца 3 параметры (радок,слупок,тэкст)" + +#~ msgid "" +#~ "document.removeText:Three parameters needed (line,col,text) (number," +#~ "number,string)" +#~ msgstr "" +#~ "document.removeText:Патрабуюцца 3 параметры (радок,слупок,тэкст) (лік,лік," +#~ "радок)" + +#~ msgid "LUA interpreter could not be initialized" +#~ msgstr "Немагчыма ініцыялізаваць інтэрпрэтатар LUA" + +#~ msgid "" +#~ "This file could not be loaded correctly due to lack of temporary disk " +#~ "space. Saving it could cause data loss.\n" +#~ "\n" +#~ "Do you really want to save it?" +#~ msgstr "" +#~ "Файл быў няправільна адкрыты з-за адсутнасці вольнае дыскавае прасторы. " +#~ "Запісаўшы яго на дыск, вы можаце згубіце інфармацыю.\n" +#~ "\n" +#~ "Вы сапраўды хочаце запісаць яго на дыск?" + +#~ msgid "N&ame:" +#~ msgstr "І&мя:" + +#~ msgid "Insert leading Doxygen \"*\" when typing" +#~ msgstr "Устаўляць канцавую зорачку Doxygen \"*\" пры ўводзе" + +#~ msgid "Emacs style mixed mode" +#~ msgstr "Змешаны рэжым Emacs" + +#~ msgid "Keys to Use" +#~ msgstr "Клавішы" + +#~ msgid "" +#~ "Automatically inserts a leading \"*\" while typing within a Doxygen style " +#~ "comment." +#~ msgstr "" +#~ "Аўтаматычна ўстаўляць канцавую зорачку \"*\" пры ўводзе ў каментары стылю " +#~ "Doxygen." + +#~ msgid "Memory Usage" +#~ msgstr "Выкарыстанне памяці" + +#~ msgid "Maximum loaded &blocks per file:" +#~ msgstr "Найбольшая колькасць прачытаных &блокаў на файл:" + +#~ msgid "Configure %1" +#~ msgstr "Настаўленне %1" + +#~ msgid "Do&wnload..." +#~ msgstr "С&цягнуць..." + +#~ msgid "JavaScript file not found" +#~ msgstr "Файл JavaScript не знойдзены" + +#~ msgid " Col: %1" +#~ msgstr " Слупок: %1" + +#~ msgid "Overwrite the file" +#~ msgstr "Перапісаць файл" + +#~ msgid "Python Style" +#~ msgstr "Стыль Python" + +#~ msgid "S&S C Style" +#~ msgstr "Стыль S&S C" + +#~ msgid "Mode must be at least 0." +#~ msgstr "Рэжым павінны быць не менш за 0." + +#~ msgid "Search Incrementally" +#~ msgstr "Паступовы пошук" + +#~ msgid "Search Incrementally Backwards" +#~ msgstr "Зваротны паступовы пошук" + +#~ msgid "From Beginning" +#~ msgstr "Ад пачатку" + +#~ msgctxt "Incremental Search" +#~ msgid "I-Search:" +#~ msgstr "Паступовы пошук:" + +#~ msgctxt "Incremental Search found no match" +#~ msgid "Failing I-Search:" +#~ msgstr "Нічога не знойдзена:" + +#~ msgctxt "Incremental Search in the reverse direction" +#~ msgid "I-Search Backward:" +#~ msgstr "Зваротны паступовы пошук:" + +#~ msgid "Failing I-Search Backward:" +#~ msgstr "Нічога не знойдзена:" + +#~ msgid "Error: unknown i-search state!" +#~ msgstr "Памылка: невядомы стан паступовага пошуку!" diff --git a/local/recipes/kde/kf6-ktexteditor/source/po/bg/ktexteditor6.po b/local/recipes/kde/kf6-ktexteditor/source/po/bg/ktexteditor6.po new file mode 100644 index 0000000000..dd3f693925 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/po/bg/ktexteditor6.po @@ -0,0 +1,8497 @@ +# 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, 2009. +# Yasen Pramatarov , 2010, 2011. +# SPDX-FileCopyrightText: 2022-2026 Mincho Kondarev +msgid "" +msgstr "" +"Project-Id-Version: katepart4\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2026-06-23 00:41+0000\n" +"PO-Revision-Date: 2026-06-17 16:05+0200\n" +"Last-Translator: Mincho Kondarev \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 26.04.2\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: completion/katecompletionmodel.cpp:147 +#, kde-format +msgid "Argument-hints" +msgstr "Аргумент-подсказки" + +#: completion/katecompletionmodel.cpp:148 +#, kde-format +msgid "Best matches" +msgstr "Най-добри съвпадения" + +#: completion/katekeywordcompletion.cpp:143 +#, kde-format +msgid "Language keywords" +msgstr "Езикови ключови думи" + +#: completion/katewordcompletion.cpp:74 +#, kde-format +msgid "Auto Word Completion" +msgstr "Автоматично завършване на думи" + +#: completion/katewordcompletion.cpp:301 +#, kde-format +msgid "Shell Completion" +msgstr "Автоматично завършване в обвивката" + +#: completion/katewordcompletion.cpp:306 +#, kde-format +msgid "Reuse Word Above" +msgstr "Повторно използване на думата по-горе" + +#: completion/katewordcompletion.cpp:312 +#, kde-format +msgid "Reuse Word Below" +msgstr "Повторно използване на думата отдолу" + +#. i18n: ectx: Menu (file) +#: data/katepart5ui.rc:4 +#, kde-format +msgid "&File" +msgstr "&Файл" + +#. i18n: ectx: Menu (file_export) +#: data/katepart5ui.rc:10 +#, kde-format +msgid "&Print/Export" +msgstr "&Отпечатване/Експортиране" + +#. i18n: ectx: Menu (edit) +#: data/katepart5ui.rc:17 +#, kde-format +msgid "&Edit" +msgstr "&Редактиране" + +#. i18n: ectx: Menu (edit_find_menu) +#: data/katepart5ui.rc:36 +#, kde-format +msgid "Find Variants" +msgstr "Намиране на варианти" + +#. i18n: ectx: Menu (selection) +#: data/katepart5ui.rc:46 +#, kde-format +msgid "Selection" +msgstr "Селекция" + +#. i18n: ectx: Menu (capitalization) +#: data/katepart5ui.rc:53 +#, kde-format +msgid "Capitalization" +msgstr "Големи букви" + +#. i18n: ectx: Menu (view) +#: data/katepart5ui.rc:73 +#, kde-format +msgid "&View" +msgstr "&Изглед" + +#. i18n: ectx: Menu (view_menu_word_wrap) +#: data/katepart5ui.rc:78 +#, kde-format +msgid "Word Wrap" +msgstr "Пренасяне на думи" + +#. i18n: ectx: Menu (view_menu_borders) +#: data/katepart5ui.rc:84 dialogs/katedialogs.cpp:747 +#, kde-format +msgid "Borders" +msgstr "Граници" + +#. i18n: ectx: Menu (codefolding) +#: data/katepart5ui.rc:92 +#, kde-format +msgid "&Code Folding" +msgstr "&Структура на кода" + +#. i18n: ectx: Menu (go) +#: data/katepart5ui.rc:109 +#, kde-format +msgid "&Go" +msgstr "Навига&ция" + +#. i18n: ectx: Menu (tools) +#: data/katepart5ui.rc:124 +#, kde-format +msgid "&Tools" +msgstr "&Инструменти" + +#. i18n: ectx: Menu (wordcompletion) +#: data/katepart5ui.rc:138 +#, kde-format +msgid "Word Completion" +msgstr "Завършване на думи" + +#. i18n: ectx: Menu (spelling) +#: data/katepart5ui.rc:144 spellcheck/spellingmenu.cpp:71 +#: spellcheck/spellingmenu.cpp:195 +#, kde-format +msgid "Spelling" +msgstr "Правопис" + +#. i18n: ectx: Menu (speech) +#: data/katepart5ui.rc:153 data/katepart5ui.rc:184 +#, kde-format +msgid "Text to Speech" +msgstr "Преобразуване на текст в реч" + +#. i18n: ectx: Menu (settings) +#: data/katepart5ui.rc:161 +#, kde-format +msgid "&Settings" +msgstr "&Настройки" + +#. i18n: ectx: ToolBar (mainToolBar) +#: data/katepart5ui.rc:192 +#, kde-format +msgid "Main Toolbar" +msgstr "Главна лента с инструменти" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/bordersappearanceconfigwidget.ui:25 +#, kde-format +msgid "Code block folding:" +msgstr "Свиване на код:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowFoldingMarkers) +#: dialogs/bordersappearanceconfigwidget.ui:32 +#, kde-format +msgid "" +"If this option is checked, every new view will display marks for folding." +msgstr "" +"Ако тази опция е избрана, всеки нов изглед ще показва маркери за свиване." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowFoldingMarkers) +#: dialogs/bordersappearanceconfigwidget.ui:35 +#, kde-format +msgid "Show arrows to collapse code blocks" +msgstr "Показване на стрелки за свиване на блок от код" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowFoldingPreview) +#: dialogs/bordersappearanceconfigwidget.ui:42 +#, kde-format +msgid "" +"If checked, hovering over a folded region shows a preview of the folded text " +"in a popup." +msgstr "" +"Ако е отметнато, задържането на курсора на мишката върху свитата област " +"показва преглед на свития текст в изскачащ прозорец." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowFoldingPreview) +#: dialogs/bordersappearanceconfigwidget.ui:45 +#, kde-format +msgid "Show preview of folded blocks on hover" +msgstr "Показване на свит код при посочване с мишката" + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/bordersappearanceconfigwidget.ui:52 +#, kde-format +msgid "Folding arrows visibility:" +msgstr "Видимост на стрелките за свиване:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbFoldingArrowVisiblity) +#: dialogs/bordersappearanceconfigwidget.ui:63 +#, kde-format +msgid "Show on Hover" +msgstr "Показване при посочване" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbFoldingArrowVisiblity) +#: dialogs/bordersappearanceconfigwidget.ui:68 +#, kde-format +msgid "Show Always" +msgstr "Показване винаги" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/bordersappearanceconfigwidget.ui:92 +#, kde-format +msgid "Left side:" +msgstr "Лява страна:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkIconBorder) +#: dialogs/bordersappearanceconfigwidget.ui:99 +#, kde-format +msgid "" +"

If this option is checked, every new view will display an icon border on " +"the left hand side.

The icon border shows bookmark signs, for instance." +"

" +msgstr "" +"

Показване на зоната за икони.

Зоната на икони съдържа полезна " +"информация, като примерно маркерите на отметките.

" + +#. i18n: ectx: property (text), widget (QCheckBox, chkIconBorder) +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMarks) +#: dialogs/bordersappearanceconfigwidget.ui:102 +#: dialogs/bordersappearanceconfigwidget.ui:155 +#, kde-format +msgid "Show marks" +msgstr "Показване маркери" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkLineNumbers) +#: dialogs/bordersappearanceconfigwidget.ui:109 +#, kde-format +msgid "" +"If this option is checked, every new view will display line numbers on the " +"left hand side." +msgstr "Показване номерата на редове в лявата част на прозореца." + +#. i18n: ectx: property (text), widget (QCheckBox, chkLineNumbers) +#: dialogs/bordersappearanceconfigwidget.ui:112 +#, kde-format +msgid "Show &line numbers" +msgstr "Показване &номерата на редовете" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowLineModification) +#: dialogs/bordersappearanceconfigwidget.ui:119 +#, kde-format +msgid "" +"If this option is checked, a small indicator for modified and saved lines is " +"shown on the left hand side." +msgstr "" +"Ако тази опция е избрана, отляво се показва малък индикатор за модифицирани " +"и запазени редове." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowLineModification) +#: dialogs/bordersappearanceconfigwidget.ui:122 +#, kde-format +msgid "Highlight changed and unsaved lines" +msgstr "Акцентиране на променените и незапазени редове" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/bordersappearanceconfigwidget.ui:145 +#, kde-format +msgid "Scrollbars:" +msgstr "Ленти за превъртане:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMarks) +#: dialogs/bordersappearanceconfigwidget.ui:152 +#, kde-format +msgid "" +"

If this option is checked, every new view will show marks on the vertical " +"scrollbar.

These marks will show bookmarks, for instance.

" +msgstr "" +"

Показване на зона за информация на лентата за превъртане за всеки преглед." +"

Примерно, в тази зона може да се съдържа информация за отметките.

" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarPreview) +#: dialogs/bordersappearanceconfigwidget.ui:162 +#, kde-format +msgid "" +"

If this option is checked, hovering over the vertical scrollbar will show " +"a preview of the text.

" +msgstr "" +"

Ако тази опция е избрана, при задържане на курсорът на мишката над " +"вертикалната лента за превъртане ще се покаже предварителен преглед на " +"текста.

" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarPreview) +#: dialogs/bordersappearanceconfigwidget.ui:165 +#, kde-format +msgid "Show preview when hovering over scrollbar" +msgstr "Предварителен преглед при посочване с мишката на лентата за превъртане" + +#. i18n: ectx: property (text), widget (QLabel, lblShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:172 +#, kde-format +msgid "Scro&llbars visibility:" +msgstr "Показване на лентата за превъртане:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:183 dialogs/katedialogs.cpp:755 +#, kde-format +msgid "Always On" +msgstr "Винаги включено" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:188 +#, kde-format +msgid "Show When Needed" +msgstr "Когато е необходимо" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:193 +#, kde-format +msgid "Always Off" +msgstr "Никога" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/bordersappearanceconfigwidget.ui:217 +#, kde-format +msgid "Minimap:" +msgstr "Миникарта:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMiniMap) +#: dialogs/bordersappearanceconfigwidget.ui:224 +#, kde-format +msgid "" +"If this option is checked, every new view will show a mini map on the " +"vertical scrollbar." +msgstr "" +"Ако тази опция е избрана, всеки нов изглед ще показва мини карта на " +"вертикална лента за превъртане." + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMiniMap) +#: dialogs/bordersappearanceconfigwidget.ui:227 +#, kde-format +msgid "Show minimap" +msgstr "Показване на миникарта" + +#. i18n: ectx: property (text), widget (QLabel, labelMiniMapWidth) +#: dialogs/bordersappearanceconfigwidget.ui:250 +#, kde-format +msgid "Minim&ap width:" +msgstr "Минимална &ширина:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMiniMapAll) +#: dialogs/bordersappearanceconfigwidget.ui:263 +#, kde-format +msgid "" +"If this option is checked, every new view will show a mini map of the whole " +"document on the vertical scrollbar." +msgstr "" +"Ако тази опция е избрана, всеки нов изглед ще показва мини карта на целия " +"документ от вертикалната лента за превъртане." + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMiniMapAll) +#: dialogs/bordersappearanceconfigwidget.ui:266 +#, kde-format +msgid "Map the whole document" +msgstr "Карта на целия документ" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbSortBookmarksByCreation) +#: dialogs/bordersappearanceconfigwidget.ui:276 +#, kde-format +msgid "" +"Each new bookmark will be added to the bottom, independently from where it " +"is placed in the document." +msgstr "Сортиране на отметките по дата и час на създаване." + +#. i18n: ectx: property (text), widget (QRadioButton, rbSortBookmarksByCreation) +#: dialogs/bordersappearanceconfigwidget.ui:279 +#, kde-format +msgid "By date created" +msgstr "По дата на създаване" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbSortBookmarksByPosition) +#: dialogs/bordersappearanceconfigwidget.ui:286 +#, kde-format +msgid "The bookmarks will be ordered by the line numbers they are placed at." +msgstr "Сортиране на отметките по номер на ред на който са създадени." + +#. i18n: ectx: property (text), widget (QRadioButton, rbSortBookmarksByPosition) +#: dialogs/bordersappearanceconfigwidget.ui:289 +#, kde-format +msgid "By line number" +msgstr "По номер на реда" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/bordersappearanceconfigwidget.ui:296 +#, kde-format +msgid "Sort bookmarks menu:" +msgstr "Сортиране на меню с отметки:" + +#: dialogs/clipboardhistorydialog.cpp:264 +#, kde-format +msgid "Select text to paste." +msgstr "Избиране на текст за поставяне." + +#: dialogs/clipboardhistorydialog.cpp:296 +#, kde-format +msgid "No entries in clipboard history" +msgstr "Няма записи в историята на клипборда" + +#. i18n: ectx: property (title), widget (QGroupBox, gbGeneral) +#. i18n: ectx: property (title), widget (QGroupBox, gbViInputMode) +#: dialogs/completionconfigtab.ui:29 dialogs/katedialogs.cpp:609 +#: dialogs/katedialogs.cpp:743 dialogs/katedialogs.cpp:1026 +#: vimode/config/configwidget.ui:29 +#, kde-format +msgid "General" +msgstr "Общи" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoCompletionEnabled) +#: dialogs/completionconfigtab.ui:35 +#, kde-format +msgid "Enable &auto completion" +msgstr "Активиране на &автоматично завършване" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoSelectFirstEntry) +#: dialogs/completionconfigtab.ui:42 +#, kde-format +msgid "Auto select &first completion entry" +msgstr "Автоматично избиране на &първия ред за завършване" + +#. i18n: ectx: property (text), widget (QCheckBox, chkTabCompletion) +#: dialogs/completionconfigtab.ui:49 +#, kde-format +msgid "Cycle through the list of completions using Tab / Shift+Tab" +msgstr "Прелиствайте списъка с допълнения, като използвате Tab / Shift+Tab" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkEnterCompletion) +#: dialogs/completionconfigtab.ui:56 +#, kde-format +msgid "" +"Pressing enter will insert the text of selected completion item into the " +"editor. If disabled, Tab key or double-click can still be used to trigger " +"completion." +msgstr "" +"Натискането на Enter ще вмъкне текста на избрания елемент за завършване в " +"редактора. Ако е деактивиран, клавишът Tab или двукратно щракване все още " +"може да се използва за задействане на завършването." + +#. i18n: ectx: property (text), widget (QCheckBox, chkEnterCompletion) +#: dialogs/completionconfigtab.ui:59 +#, kde-format +msgid "Use Enter key to insert selected completion" +msgstr "Използване на клавиша Enter, за поставяне на избраното завършване" + +#. i18n: ectx: property (title), widget (QGroupBox, gbWordCompletion) +#: dialogs/completionconfigtab.ui:69 +#, kde-format +msgid "A&uto word completion" +msgstr "Автоматично завършване на &думи" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/completionconfigtab.ui:83 +#, kde-format +msgid "Minimal word length to complete:" +msgstr "Минимална дължина на думата за завършване:" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, removeTail) +#: dialogs/completionconfigtab.ui:111 +#, kde-format +msgid "Remove tail of a previous word when completion item chosen from a list" +msgstr "" +"Премахване на края на предишна дума, когато завършен елемент е избран от " +"списъка" + +#. i18n: ectx: property (text), widget (QCheckBox, removeTail) +#: dialogs/completionconfigtab.ui:114 +#, kde-format +msgid "Remove tail on complete" +msgstr "Премахване на края на думата при завършване" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/completionconfigtab.ui:121 +#, kde-format +msgid "" +"Word completion provides suggestions based on the words found in the document" +msgstr "" +"Попълването на думи предоставя предложения въз основа надуми, които " +"съществуват в езика на документа." + +#. i18n: ectx: property (title), widget (QGroupBox, gbKeywordCompletion) +#: dialogs/completionconfigtab.ui:134 +#, kde-format +msgid "&Keyword completion" +msgstr "&Завършване на ключова дума" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/completionconfigtab.ui:143 +#, kde-format +msgid "" +"Keyword completion provides suggestions based on the keywords which exist in " +"the document's language." +msgstr "" +"Завършването на ключови думи предоставя предложения въз основа на ключовите " +"думи, които съществуват в езика на документа." + +#. i18n: ectx: property (title), widget (QGroupBox, gbShowDoc) +#: dialogs/completionconfigtab.ui:156 +#, kde-format +msgid "Documentation with completion" +msgstr "Документация със завършване" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/completionconfigtab.ui:165 +#, kde-format +msgid "" +"Show documentation beside completion box. If disabled, documentation can be " +"shown by pressing Alt key." +msgstr "" +"Показване на документацията до полето за завършване. Ако е деактивирано, " +"документацията може да се покаже чрез натискане на клавиша ALT." + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/editconfigwidget.ui:22 +#, kde-format +msgid "Word wrap:" +msgstr "Пренасяне на думи:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkStaticWordWrap) +#: dialogs/editconfigwidget.ui:29 +#, kde-format +msgid "" +"

Automatically start a new line of text when the current line exceeds the " +"length specified by the Wrap words at: option.

This option does " +"not wrap existing lines of text - use the Apply Static Word Wrap " +"option in the Tools menu for that purpose.

If you want lines to " +"be visually wrapped instead, according to the width of the view, " +"enable Dynamic Word Wrap in the Appearance config page.

" +msgstr "" +"

Автоматично стартиране на нов ред текст, когато текущият ред надвиши " +"дължината, посочена от опцията Пренасяне при:.

Тази опция не " +"пренася съществуващи редове от текста - използвайте Прилагане на статично " +"пренасянеопция в менюто Инструменти за тази цел.

Ако искате " +"вместо това редовете да бъдат визуално пренесени според ширината " +"на изгледа,активирайте Динамично пренасяне на думи в страницата за " +"конфигуриране на Външен вид.

" + +#. i18n: ectx: property (text), widget (QCheckBox, chkStaticWordWrap) +#: dialogs/editconfigwidget.ui:32 +#, kde-format +msgid "Wrap &words at a fixed column" +msgstr "Пренасяне на &думи на фиксирана колона" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowStaticWordWrapMarker) +#: dialogs/editconfigwidget.ui:39 +#, kde-format +msgid "" +"

If this option is checked, a vertical line will be drawn at the word wrap " +"column as defined in the Editing properties.

" +msgstr "" +"

Ако тази опция е избрана, при прехвърлянето на думите ще се изчертае " +"вертикална линия на колоната, както е дефинирано в свойствата на " +"Редактиране .

" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowStaticWordWrapMarker) +#: dialogs/editconfigwidget.ui:42 +#, kde-format +msgid "&Draw vertical line at the word wrap column" +msgstr "Показване на вертикална линия при колоната за пренасяне на думи" + +#. i18n: ectx: property (text), widget (QLabel, lblWordWrap) +#: dialogs/editconfigwidget.ui:49 +#, kde-format +msgid "Wra&p words at:" +msgstr "Пренасяне при:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbWordWrap) +#: dialogs/editconfigwidget.ui:59 +#, kde-format +msgid "" +"If the Word Wrap option is selected this entry determines the length (in " +"characters) at which the editor will automatically start a new line." +msgstr "" +"Автоматично пренасяне на нов ред при достигане на дължината, зададена в това " +"поле. Използва се брой знаци." + +#. i18n: ectx: property (text), widget (QLabel, lblInputMode) +#: dialogs/editconfigwidget.ui:91 +#, kde-format +msgid "Default input mode:" +msgstr "Режим на въвеждане по подразбиране:" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/editconfigwidget.ui:120 +#, kde-format +msgid "Brackets:" +msgstr "Квадратни скоби:" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoBrackets) +#: dialogs/editconfigwidget.ui:127 +#, kde-format +msgid "Automatically close brackets when opening bracket is typed" +msgstr "Автоматично затваряне на скобите при въвеждане на отваряща скоба" + +#. i18n: ectx: property (whatsThis), widget (QLabel, lbEncloseSelection) +#: dialogs/editconfigwidget.ui:140 +#, kde-format +msgid "" +"When some text is selected these chars will be added on both its sides in a " +"way \"Auto Bracket\" do" +msgstr "" +"Когато е избран текст, тези символи ще бъдат добавени от двете му страни по " +"начина на \"Автоматична скоба\"" + +#. i18n: ectx: property (text), widget (QLabel, lbEncloseSelection) +#: dialogs/editconfigwidget.ui:143 +#, kde-format +msgid "Enclosing characters:" +msgstr "Обграждащи символи:" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/editconfigwidget.ui:166 +#, kde-format +msgid "Copy and paste:" +msgstr "Копиране и поставяне:" + +#. i18n: ectx: property (text), widget (QCheckBox, chkTextDragAndDrop) +#: dialogs/editconfigwidget.ui:173 +#, kde-format +msgid "Move selected text when dragged" +msgstr "Преместване на избрания текст чрез влачене и пускане" + +#. i18n: ectx: property (text), widget (QCheckBox, chkSmartCopyCut) +#: dialogs/editconfigwidget.ui:180 +#, kde-format +msgid "Copy/cut the current line if invoked without any text selected" +msgstr "Копиране/изрязване на текущия ред, ако няма избор на текст" + +#. i18n: ectx: property (text), widget (QCheckBox, chkMousePasteAtCursorPosition) +#: dialogs/editconfigwidget.ui:187 +#, kde-format +msgid "Don't move the text cursor when pasting by mouse" +msgstr "Без преместване на текстовия курсор при поставяне с мишката" + +#. i18n: ectx: property (text), widget (QLabel, lblClipboardHistoryEntries) +#: dialogs/editconfigwidget.ui:194 +#, kde-format +msgid "Max Clipboard History Entries:" +msgstr "Максимален брой записи на историята на клипборда" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbClipboardHistoryEntries) +#: dialogs/editconfigwidget.ui:204 +#, kde-format +msgid "This determines the number of entries to keep in the clipboard history" +msgstr "" +"Това определя броя на записите, които ще се съхраняват в историята на " +"клипборда." + +#. i18n: ectx: property (text), widget (QLabel, lblBracketHelp) +#: dialogs/editconfigwidget.ui:226 +#, kde-format +msgid "" +"When you type these characters while text is selected, they will surround " +"the selected text instead of replacing it." +msgstr "" +"Когато въведете тези знаци, докато текстът е избран, те ще заобиколят " +"избрания текст, вместо да го заменят." + +#. i18n: ectx: property (text), widget (QCheckBox, chkAccessibility) +#: dialogs/editconfigwidget.ui:252 +#, kde-format +msgid "Enable accessibility notifications" +msgstr "Включване на известяванията за улеснен достъп" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/editconfigwidget.ui:259 +#, kde-format +msgid "Accessibility:" +msgstr "Достъпност:" + +#. i18n: ectx: property (text), widget (QLabel, lblFiletype) +#: dialogs/filetypeconfigwidget.ui:14 +#, kde-format +msgid "&Filetype:" +msgstr "&Тип на файл:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbFiletypes) +#: dialogs/filetypeconfigwidget.ui:24 +#, kde-format +msgid "Select the filetype you want to change." +msgstr "Изберете тип маркер, който искате да промените." + +#. i18n: ectx: property (whatsThis), widget (QPushButton, btnNew) +#: dialogs/filetypeconfigwidget.ui:31 +#, kde-format +msgid "Create a new file type." +msgstr "Създаване на нов файлов тип." + +#. i18n: ectx: property (text), widget (QPushButton, btnNew) +#: dialogs/filetypeconfigwidget.ui:34 +#, kde-format +msgid "&New" +msgstr "&Нов" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, btnDelete) +#: dialogs/filetypeconfigwidget.ui:41 +#, kde-format +msgid "Delete the current file type." +msgstr "Изтриване на текущия файлов тип." + +#. i18n: ectx: property (text), widget (QPushButton, btnDelete) +#: dialogs/filetypeconfigwidget.ui:44 syntax/katethemeconfig.cpp:1132 +#, kde-format +msgid "&Delete" +msgstr "Из&триване" + +#. i18n: ectx: property (title), widget (QGroupBox, gbProperties) +#: dialogs/filetypeconfigwidget.ui:66 mode/katemodeconfigpage.cpp:272 +#, kde-format +msgid "Properties" +msgstr "Информация" + +#. i18n: ectx: property (text), widget (QLabel, lblName) +#: dialogs/filetypeconfigwidget.ui:72 +#, kde-format +msgid "&Name:" +msgstr "&Име:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtName) +#: dialogs/filetypeconfigwidget.ui:82 +#, kde-format +msgid "" +"The name of the filetype will be the text of the corresponding menu item." +msgstr "Името на файловия тип ще се показва в менюто." + +#. i18n: ectx: property (text), widget (QLabel, lblSection) +#: dialogs/filetypeconfigwidget.ui:89 +#, kde-format +msgid "&Section:" +msgstr "&Секция:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtSection) +#: dialogs/filetypeconfigwidget.ui:99 +#, kde-format +msgid "The section name is used to organize the file types in menus." +msgstr "" +"Името на секцията се използва, за да се организират файловите типове в " +"менюта." + +#. i18n: ectx: property (text), widget (QLabel, lblVariables) +#: dialogs/filetypeconfigwidget.ui:106 +#, kde-format +msgid "&Variables:" +msgstr "Про&менливи:" + +#. i18n: ectx: property (whatsThis), widget (VariableLineEdit, edtVariables) +#: dialogs/filetypeconfigwidget.ui:116 +#, kde-format +msgid "" +"

This string allows to configure Kate's settings for the files selected by " +"this mimetype using Kate variables. Almost any configuration option can be " +"set, such as highlight, indent-mode, encoding, etc.

For a full list of " +"known variables, see the manual.

" +msgstr "" +"

Този низ позволява да конфигурирате настройките на Kate за файловете, " +"избрани от този mimeype използвайки променливите на Kate. Почти всяка опция " +"за конфигуриране може да бъде набор, като подчертаване, режим на отстъп, " +"кодиране и др.

За пълен списък на известни променливи, вижте " +"ръководството.

" + +#. i18n: ectx: property (text), widget (QLabel, lblHl) +#: dialogs/filetypeconfigwidget.ui:123 +#, kde-format +msgid "&Highlighting:" +msgstr "Откро&яване:" + +#. i18n: ectx: property (text), widget (QLabel, lblIndenter) +#: dialogs/filetypeconfigwidget.ui:136 +#, kde-format +msgid "&Indentation mode:" +msgstr "&Режим на отстъп:" + +#. i18n: ectx: property (text), widget (QLabel, lblExtensions) +#: dialogs/filetypeconfigwidget.ui:149 +#, kde-format +msgid "File e&xtensions:" +msgstr "Ра&зширения:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtFileExtensions) +#: dialogs/filetypeconfigwidget.ui:159 +#, kde-format +msgid "" +"The wildcards mask allows to select files by filename. A typical mask uses " +"an asterisk and the file extension, for example *.txt; *.text. " +"The string is a semicolon-separated list of masks." +msgstr "" +"Маската със заместващи символи позволява да се избират файлове по име на " +"файл. Типична маска използва звездичка и разширението на файла, например " +"*.text; *.text. Низът е списък с маски, разделен с точка и " +"запетая." + +#. i18n: ectx: property (text), widget (QLabel, lblMimeTypes) +#: dialogs/filetypeconfigwidget.ui:166 +#, kde-format +msgid "MIME &types:" +msgstr "Типов&е MIME:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtMimeTypes) +#: dialogs/filetypeconfigwidget.ui:181 +#, kde-format +msgid "" +"The mime type mask allows to select files by mimetype. The string is a " +"semicolon-separated list of mimetypes, for example text/plain; text/" +"english." +msgstr "" +"Маската тип mime позволява да се избират файлове по mimeype. Низът е " +"разделени с точка и запетая списък от mimeype, например text/plain; " +"text/english." + +#. i18n: ectx: property (whatsThis), widget (QToolButton, btnMimeTypes) +#: dialogs/filetypeconfigwidget.ui:188 +#, kde-format +msgid "Displays a wizard that helps you easily select mimetypes." +msgstr "Стартиране на помощник за избор на файлови типове (MIME)." + +#. i18n: ectx: property (text), widget (QLabel, lblPriority) +#: dialogs/filetypeconfigwidget.ui:197 +#, kde-format +msgid "P&riority:" +msgstr "П&риоритет:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbPriority) +#: dialogs/filetypeconfigwidget.ui:207 +#, kde-format +msgid "" +"Sets priority for this file type. If more than one file type selects the " +"same file, the one with the highest priority will be used." +msgstr "" +"Задава приоритет за този тип файл. Ако повече от един тип файл избере един и " +"същ файл, ще се използва този с най-висок приоритет." + +#. i18n: ectx: property (text), widget (QLabel, lblMode) +#: dialogs/indentationconfigwidget.ui:43 +#, kde-format +msgid "Default indentation mode:" +msgstr "&Режим на отстъп:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbMode) +#: dialogs/indentationconfigwidget.ui:53 +#, kde-format +msgid "" +"This is a list of available indentation modes. The specified indentation " +"mode will be used for all new documents. Be aware that it is also possible " +"to set the indentation mode with document variables, modes or a .kateconfig " +"file." +msgstr "" +"Това е списък с наличните режими на отстъп. Посоченият режим на отстъп ще се " +"използва за всички нови документи. Имайте предвид, че това също е възможно " +"да зададете с променливи на документа, режими или .kateconfig файл." + +#. i18n: ectx: property (title), widget (QGroupBox, gbIndentationMode) +#: dialogs/indentationconfigwidget.ui:75 +#, kde-format +msgid "Indent using" +msgstr "Използване отстъп" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbIndentWidth) +#: dialogs/indentationconfigwidget.ui:81 +#, kde-format +msgid "" +"The indentation width is the number of spaces which is used to indent a " +"line. If the option Insert spaces instead of tabulators in the " +"section Editing is disabled, a Tab character is inserted if " +"the indentation is divisible by the tab width." +msgstr "" +"Ширината на отстъпа е броят на интервалите, който се използва за отстъп на " +"реда. Ако опцията Вмъкване на интервали вместо табулатори в раздел " +"Редактиране е деактивирана, табулатор се вмъква, ако отстъпът " +"се дели на ширината на табулатора." + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentWithSpaces) +#: dialogs/indentationconfigwidget.ui:97 +#, kde-format +msgid "&Spaces" +msgstr "&Интервали" + +#. i18n: ectx: property (text), widget (QLabel, lblIndentWidth) +#: dialogs/indentationconfigwidget.ui:104 +#, kde-format +msgid "&Indentation width:" +msgstr "&Ширина на отстъп:" + +#. i18n: ectx: property (text), widget (QLabel, lblTabWidth) +#: dialogs/indentationconfigwidget.ui:114 +#, kde-format +msgid "Tab wi&dth:" +msgstr "&Ширина на табулатор:" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentWithTabs) +#: dialogs/indentationconfigwidget.ui:153 +#, kde-format +msgid "&Tabulators" +msgstr "&Табулатори" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentMixed) +#: dialogs/indentationconfigwidget.ui:160 +#, kde-format +msgid "Tabulators &and Spaces" +msgstr "Та&булатори и интервали" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoDetectIndent) +#: dialogs/indentationconfigwidget.ui:167 +#, kde-format +msgid "Automatically detect file indentation" +msgstr "Автоматично откриване на отстоянието" + +#. i18n: ectx: property (title), widget (QGroupBox, gbProperties) +#: dialogs/indentationconfigwidget.ui:177 +#, kde-format +msgid "Indentation Properties" +msgstr "Свойства на отстъп" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkKeepExtraSpaces) +#: dialogs/indentationconfigwidget.ui:183 +#, kde-format +msgid "" +"If this option is disabled, changing the indentation level aligns a line to " +"a multiple of the width specified in Indentation width." +msgstr "" +"Ако тази опция е деактивирана, промяната на нивото на отстъпа подравнява " +"реда кратно на ширината, посочена в Ширина на отстъп." + +#. i18n: ectx: property (text), widget (QCheckBox, chkKeepExtraSpaces) +#: dialogs/indentationconfigwidget.ui:186 +#, kde-format +msgid "&Keep extra spaces" +msgstr "&Запазване на допълнителни интервали" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkIndentPaste) +#: dialogs/indentationconfigwidget.ui:193 +#, kde-format +msgid "" +"If this option is selected, pasted code from the clipboard is indented. " +"Triggering the undo-action removes the indentation." +msgstr "" +"Ако е включена тази опция, поставеното от системния буфер съдържание ще има " +"отстъп. Натискането на Отмяна ще премахне отстъпа." + +#. i18n: ectx: property (text), widget (QCheckBox, chkIndentPaste) +#: dialogs/indentationconfigwidget.ui:196 +#, kde-format +msgid "Adjust indentation of code &pasted from the clipboard" +msgstr "Регулиране на отстъпа на кода, поставен от клипборда" + +#. i18n: ectx: property (title), widget (QGroupBox, gbKeys) +#: dialogs/indentationconfigwidget.ui:206 +#, kde-format +msgid "Indentation Actions" +msgstr "Действия при отстъп" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackspaceUnindents) +#: dialogs/indentationconfigwidget.ui:212 +#, kde-format +msgid "" +"If this option is selected, the Backspace key decreases the " +"indentation level if the cursor is located in the leading blank space of a " +"line." +msgstr "" +"Ако е избрана тази опция, клавишът Backspace намалява ниво на отстъп, " +"ако курсорът е разположен в началното празно пространство на реда." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackspaceUnindents) +#: dialogs/indentationconfigwidget.ui:215 +#, kde-format +msgid "&Backspace key in leading blank space unindents" +msgstr "&Backspace клавишът премахва отстъпа при водещи празни полета" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/indentationconfigwidget.ui:225 +#, kde-format +msgid "" +"\n" +"

Tab key action (if no selection exists) Tab " +"to align the current line in the current code block like in Emacs, make " +"Tab a shortcut to the action Format Indentation." +"\">More ...

" +msgstr "" +"\n" +"

Действие с клавиша Tab (ако няма селекция) Tab за подравняване на текущия ред в текущия блок код, както в Emacs, " +"направете Tab бърз клавиш за действие Форматиране на отстъп." +"\">Още ...

" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabAdvances) +#: dialogs/indentationconfigwidget.ui:276 +#, kde-format +msgid "" +"If this option is selected, the Tab key always inserts white space so " +"that the next tab position is reached. If the option Insert spaces " +"instead of tabulators in the section Editing is enabled, spaces " +"are inserted; otherwise, a single tabulator is inserted." +msgstr "" +"Ако е избрана тази опция, клавишът Tab винаги вмъква празно " +"пространство така че да се достигне следващата табулаторна позиция. Ако " +"опцията Вмъкване на интервали вместо табулатори в раздела " +"Редактиране е разрешено, се вмъкват интервали; в противен случай се " +"вмъква един табулатор." + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabAdvances) +#: dialogs/indentationconfigwidget.ui:279 +#, kde-format +msgid "Always advance to the &next tab position" +msgstr "Винаги отиване напред до следваща табулаторна позиция" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabIndents) +#: dialogs/indentationconfigwidget.ui:286 +#, kde-format +msgid "" +"If this option is selected, the Tab key always indents the current " +"line by the number of character positions specified in Indentation width." +msgstr "" +"Ако е избрана тази опция, клавишът Tab винаги отстъпва текущия ред по " +"броя на позициите на символите, посочени в Ширина на отстъп ." + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabIndents) +#: dialogs/indentationconfigwidget.ui:289 +#, kde-format +msgid "Always increase indentation &level" +msgstr "Винаги увеличаване на отстъпа на нивото" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabSmart) +#: dialogs/indentationconfigwidget.ui:296 +#, kde-format +msgid "" +"If this option is selected, the Tab key either indents the current " +"line or advances to the next tab position.

If the insertion point is at " +"or before the first non-space character in the line, or if there is a " +"selection, the current line is indented by the number of character positions " +"specified in Indentation width.

If the insertion point is located " +"after the first non-space character in the line and there is no selection, " +"white space is inserted so that the next tab position is reached: if the " +"option Insert spaces instead of tabulators in the section Editing is enabled, spaces are inserted; otherwise, a single tabulator is " +"inserted." +msgstr "" +"Ако е избрана тази опция, клавишът Tab отстъпва текущия ред или " +"преминава към следващата позиция на раздела.

Ако точката на вмъкване е в " +"или преди първия непространствен знак в реда или ако има селекция,текущият " +"ред се отстъпва от броя на позициите на символите посочено в Ширина на " +"отстъп.

Ако точката на вмъкване се намира след първия непространствен " +"знак в реда и няма избор,празното пространство се вмъква, така че да се " +"достигне следващата позиция на раздела: ако опция Вмъкване на интервали " +"вместо табулатори в раздела Редактиране е активирано, вмъкват се " +"интервали; в противен случай се вмъква един табулатор." + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabSmart) +#: dialogs/indentationconfigwidget.ui:299 +#, kde-format +msgid "Increase indentation level if in l&eading blank space" +msgstr "Увеличаване нивото на отстъпа при водещо празно пространство" + +#: dialogs/katedialogs.cpp:185 dialogs/katedialogs.cpp:187 +#, kde-format +msgid "%v character" +msgid_plural "%v characters" +msgstr[0] "%v символ" +msgstr[1] "%v символи" + +#: dialogs/katedialogs.cpp:211 +#, kde-format +msgid "Indentation" +msgstr "Отстъп" + +#: dialogs/katedialogs.cpp:295 +#, kde-format +msgid "Auto Completion" +msgstr "Автоматично завършване на думи" + +#: dialogs/katedialogs.cpp:362 +#, kde-format +msgid "Spellcheck" +msgstr "Проверка на правопис" + +#: dialogs/katedialogs.cpp:410 dialogs/katedialogs.cpp:417 +#, kde-format +msgid "Alt" +msgstr "Alt" + +#: dialogs/katedialogs.cpp:411 dialogs/katedialogs.cpp:419 +#, kde-format +msgid "Ctrl" +msgstr "Ctrl" + +#: dialogs/katedialogs.cpp:412 +#, kde-format +msgid "Meta" +msgstr "Meta" + +#: dialogs/katedialogs.cpp:413 dialogs/katedialogs.cpp:421 +#, kde-format +msgid "Ctrl + Alt" +msgstr "Ctrl + Alt" + +#: dialogs/katedialogs.cpp:414 +#, kde-format +msgid "Meta + Alt" +msgstr "Meta + Alt" + +#: dialogs/katedialogs.cpp:415 +#, kde-format +msgid "Ctrl + Meta" +msgstr "Ctrl + Meta" + +#: dialogs/katedialogs.cpp:418 +#, kde-format +msgid "Cmd" +msgstr "Cmd" + +#: dialogs/katedialogs.cpp:420 +#, kde-format +msgid "Cmd + Alt" +msgstr "Cmd + Alt" + +#: dialogs/katedialogs.cpp:422 +#, kde-format +msgid "Cmd + Ctrl" +msgstr "Cmd + Ctrl" + +#: dialogs/katedialogs.cpp:480 +#, kde-format +msgid "Text Navigation" +msgstr "Навигация на текст" + +#: dialogs/katedialogs.cpp:582 +#, kde-format +msgctxt "Wrap words at (value is at 20 or larger)" +msgid "%v character" +msgid_plural "%v characters" +msgstr[0] "%v символ" +msgstr[1] "%v символи" + +#: dialogs/katedialogs.cpp:587 +#, kde-format +msgid "Feature is not active" +msgstr "Функцията не е активна" + +#: dialogs/katedialogs.cpp:589 +#, kde-format +msgid "Disable Feature" +msgstr "Деактивиране на функцията" + +#: dialogs/katedialogs.cpp:591 +#, kde-format +msgid "May be handy with Markdown" +msgstr "Може да е полезно с Markdown" + +#: dialogs/katedialogs.cpp:593 +#, kde-format +msgid "Mirror characters, similar but not exactly like auto brackets" +msgstr "Огледални символи, подобни, но не точно като автоматичните скоби" + +#: dialogs/katedialogs.cpp:595 +#, kde-format +msgid "Non letter character" +msgstr "Небуквен знак" + +#: dialogs/katedialogs.cpp:712 +#, kde-format +msgid "Editing" +msgstr "Редактиране" + +#: dialogs/katedialogs.cpp:717 +#, kde-format +msgid "Editing Options" +msgstr "Настройки на редактирането" + +#: dialogs/katedialogs.cpp:751 +#, kde-format +msgid "Statusbar" +msgstr "Лента за състояние" + +#: dialogs/katedialogs.cpp:753 +#, kde-format +msgid "Off" +msgstr "Изключено" + +#: dialogs/katedialogs.cpp:754 +#, kde-format +msgid "Follow Line Numbers" +msgstr "Следване на номерата на редовете" + +#: dialogs/katedialogs.cpp:945 dialogs/katedialogs.cpp:950 +#, kde-format +msgid "Appearance" +msgstr "Външен вид" + +#: dialogs/katedialogs.cpp:986 +#, kde-format +msgid "" +"%1 backs up unsaved files to \"swap files.\" Swap files allow %1 to recover " +"your work in the case of a system crash. Disabling swap files may cause data " +"loss in case of a system crash." +msgstr "" +"% 1 архивира незапазените файлове в \"Swap файлове\". Swap файловете " +"позволяват на %1, да възстанови работата си в случай на срив на системата. " +"Деактивирането на Swap файлове може да доведе до загуба на данни в случай на " +"срив." + +#: dialogs/katedialogs.cpp:1027 +#, kde-format +msgid "Advanced" +msgstr "Допълнителни" + +#: dialogs/katedialogs.cpp:1092 +#, kde-format +msgid "" +"You did not provide a backup suffix or prefix. Using default suffix: '~'" +msgstr "" +"Няма зададена наставка и представка за резервно копие и затова ще се " +"използва стандартната представка\"~\"." + +#: dialogs/katedialogs.cpp:1092 +#, kde-format +msgid "No Backup Suffix or Prefix" +msgstr "Няма наставка и представка" + +#: dialogs/katedialogs.cpp:1227 +#, kde-format +msgid "Open/Save" +msgstr "Отваряне/запис" + +#: dialogs/katedialogs.cpp:1232 +#, kde-format +msgid "File Opening & Saving" +msgstr "Настройки на отварянето и записа на файлове" + +#: dialogs/katedialogs.cpp:1255 +#, kde-format +msgid "&Line:" +msgstr "&Ред:" + +#: dialogs/katedialogs.cpp:1256 +#, kde-format +msgid "Go to line number from clipboard" +msgstr "Отиване до номера на реда от клипборда" + +#: dialogs/katedialogs.cpp:1267 +#, kde-format +msgid "Go to" +msgstr "Отиване на" + +#: dialogs/katedialogs.cpp:1347 +#, kde-format +msgid "No valid line number found in clipboard" +msgstr "Не е намерен валиден номер на ред в клипборда" + +#: dialogs/katedialogs.cpp:1411 +#, kde-format +msgid "Dictionary:" +msgstr "Речник:" + +#: dialogs/katedialogs.cpp:1463 +#, kde-format +msgid "Enable Auto Reload" +msgstr "Активиране на автоматичното презареждане" + +#: dialogs/katedialogs.cpp:1466 +#, kde-format +msgid "" +"Reloads and will automatically reload without warning about disk changes " +"from now until you close either the tab or window." +msgstr "" +"От сега нататък презареждането и автоматично презареждане ще се извършва без " +"предупреждение за промени в диска, докато не затворите раздела или прозореца." + +#: dialogs/katedialogs.cpp:1471 +#, kde-format +msgid "View &Difference" +msgstr "&Преглед на разликите" + +#: dialogs/katedialogs.cpp:1473 +#, kde-format +msgid "Shows a diff of the changes." +msgstr "Показва разликата на промените." + +#: dialogs/katedialogs.cpp:1478 +#, kde-format +msgid "&Reload" +msgstr "&Презареждане" + +#: dialogs/katedialogs.cpp:1480 +#, kde-format +msgid "Reloads the file from disk. Unsaved changes will be lost." +msgstr "" +"Презареждане на файла от диска. Незапазените промени ще бъдат загубени." + +#: dialogs/katedialogs.cpp:1484 +#, kde-format +msgctxt "@action:button closes the opened file" +msgid "&Close File" +msgstr "&Затваряне на файла" + +#: dialogs/katedialogs.cpp:1486 +#, kde-format +msgid "Closes the file, discarding its content." +msgstr "Затваряне на файла, отхвърляйки съдържанието му." + +#: dialogs/katedialogs.cpp:1490 +#, kde-format +msgctxt "@action" +msgid "&Save As…" +msgstr "&Запазване като…" + +#: dialogs/katedialogs.cpp:1492 +#, kde-format +msgid "Lets you select a location and save the file again." +msgstr "Запис на файла под друго име или на друго място." + +#. i18n: ectx: property (text), widget (QPushButton, m_skipBtn) +#: dialogs/katedialogs.cpp:1497 spellcheck/spellcheckbar.ui:143 +#, kde-format +msgid "&Ignore" +msgstr "&Пренебрегване" + +#: dialogs/katedialogs.cpp:1498 +#, kde-format +msgid "Ignores the changes on disk without any action." +msgstr "Игнорира промените на диска без никакво действие." + +#: dialogs/katedialogs.cpp:1567 swapfile/kateswapdiffcreator.cpp:131 +#, kde-format +msgid "" +"The diff command failed. Please make sure that diff(1) is installed and in " +"your PATH." +msgstr "" +"Командата diff не върна резултат. Моля, убедете се, че пакетът thatdiff(1) е " +"инсталиран и програмата е включена в пътя за изпълними файлове PATH." + +#: dialogs/katedialogs.cpp:1569 swapfile/kateswapdiffcreator.cpp:89 +#: swapfile/kateswapdiffcreator.cpp:99 swapfile/kateswapdiffcreator.cpp:133 +#, kde-format +msgid "Error Creating Diff" +msgstr "Грешка при изчисляване на разликите" + +#: dialogs/katedialogs.cpp:1576 swapfile/kateswapdiffcreator.cpp:140 +#, kde-format +msgid "The files are identical." +msgstr "Файловете са идентични." + +#: dialogs/katedialogs.cpp:1576 swapfile/kateswapdiffcreator.cpp:140 +#, kde-format +msgid "Diff Output" +msgstr "Diff резултат" + +#. i18n: ectx: property (title), widget (QGroupBox, gbCursorMovement) +#: dialogs/navigationconfigwidget.ui:29 +#, kde-format +msgid "Text Cursor Movement" +msgstr "Движение на курсора" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkSmartHome) +#: dialogs/navigationconfigwidget.ui:35 +#, kde-format +msgid "" +"When selected, pressing the home key will cause the cursor to skip " +"whitespace and go to the start of a line's text. The same applies for the " +"end key." +msgstr "" +"Ако е включена тази отметка, при натискане на клавиша Home курсорът ще се " +"премести в началото на текста, а не в началото на реда (напр. ако има " +"интервал в началото на реда, той ще бъде пропуснат)." + +#. i18n: ectx: property (text), widget (QCheckBox, chkSmartHome) +#: dialogs/navigationconfigwidget.ui:38 +#, kde-format +msgid "Smart ho&me and smart end" +msgstr "&Интелигентно Home и End" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkPagingMovesCursor) +#: dialogs/navigationconfigwidget.ui:45 +#, kde-format +msgid "" +"Selects whether the PageUp and PageDown keys should alter the vertical " +"position of the cursor relative to the top of the view." +msgstr "" +"Преместване на курсора при натискане на клавишите Page Up/Page Down. Ако " +"настройката е включена, при превъртане на страница нагоре или надолу, " +"курсорът ще се позиционира съответно в началото или в края на видимата " +"област." + +#. i18n: ectx: property (text), widget (QCheckBox, chkPagingMovesCursor) +#: dialogs/navigationconfigwidget.ui:48 +#, kde-format +msgid "&PageUp/PageDown moves cursor" +msgstr "П&реместване на курсора при натискане на Page Up/Page Down" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkCamelCursor) +#: dialogs/navigationconfigwidget.ui:55 +#, kde-format +msgid "" +"Selects whether cursor stops at camel case humps and underscores within a " +"word." +msgstr "" +"Избира дали курсорът да спира при главни букви в camelCase думи и долни " +"черти в рамките на една дума" + +#. i18n: ectx: property (text), widget (QCheckBox, chkCamelCursor) +#: dialogs/navigationconfigwidget.ui:58 +#, kde-format +msgid "" +"Stop at 'camelCase' and 'snake_case' subwords when moving the cursor by word" +msgstr "" +"Спиране при поддуми с 'camelCase' и 'snake_case' при преместване на курсора " +"по думи" + +#. i18n: ectx: property (text), widget (QLabel, lblAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:79 +#, kde-format +msgid "&Autocenter cursor:" +msgstr "&Автоматично центриране на курсора:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:89 +#, kde-format +msgid "" +"Sets the number of lines to maintain visible above and below the cursor when " +"possible." +msgstr "" +"Задаване броя на видимите редове във видимата част под и над курсора, ако е " +"възможно." + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, spbSwapFileSync) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:92 dialogs/opensaveconfigadvwidget.ui:120 +#: dialogs/opensaveconfigadvwidget.ui:168 +#, kde-format +msgid "Disabled" +msgstr "Изключено" + +#. i18n: ectx: property (suffix), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:95 +#, kde-format +msgid " lines" +msgstr " редове" + +#. i18n: ectx: property (title), widget (QGroupBox, cbNavigationMisc) +#: dialogs/navigationconfigwidget.ui:120 +#, kde-format +msgid "Misc" +msgstr "Разни" + +#. i18n: ectx: property (text), widget (QLabel, lblTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:128 +#, kde-format +msgid "Text selection mode:" +msgstr "Режим за избор на текст:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:139 inputmode/katenormalinputmode.cpp:64 +#: mode/katemodemanager.cpp:162 +#, kde-format +msgid "Normal" +msgstr "Нормално" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:144 +#, kde-format +msgid "Persistent" +msgstr "Постоянно" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollPastEnd) +#: dialogs/navigationconfigwidget.ui:167 +#, kde-format +msgid "Allow scrolling past the end of the document" +msgstr "Разрешаване на превъртането след края на документа" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackspaceRemoveComposed) +#: dialogs/navigationconfigwidget.ui:174 +#, kde-format +msgid "" +"When selected, composed characters are removed with their diacritics instead " +"of only removing the base character. This is useful for Indic locales." +msgstr "" +"Когато бъдат избрани, съставените символи се премахват с тяхната диакритика " +"вместо само премахване на основния знак. Това е полезно за индийски локали." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackspaceRemoveComposed) +#: dialogs/navigationconfigwidget.ui:177 +#, kde-format +msgid "Backspace key removes character’s base with its diacritics" +msgstr "" +"Клавишът Backspace премахва основата на символа с неговите диакритични знаци" + +#. i18n: ectx: property (text), widget (QCheckBox, cbCycleBookmarks) +#: dialogs/navigationconfigwidget.ui:184 +#, kde-format +msgid "Allow to cycle through bookmarks" +msgstr "Позволяване на превъртане на отметките" + +#. i18n: ectx: property (title), widget (QGroupBox, gbMulticursor) +#: dialogs/navigationconfigwidget.ui:194 +#, kde-format +msgid "Multicursor" +msgstr "Мултикурсор" + +#. i18n: ectx: property (text), widget (QLabel, lblMulticursormodifiers) +#: dialogs/navigationconfigwidget.ui:200 +#, kde-format +msgid "Multiple Cursor Modifiers" +msgstr "Множество модификатори на курсор" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoReloadVersionControl) +#: dialogs/opensaveconfigadvwidget.ui:34 +#, kde-format +msgid "Auto reload files in version control" +msgstr "Автоматично презареждане на файлове в контрола на версиите" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoReloadOnExternalChanges) +#: dialogs/opensaveconfigadvwidget.ui:41 +#, kde-format +msgid "Auto reload files on external changes" +msgstr "Автоматично презареждане на файлове при промяна от друга програма" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/opensaveconfigadvwidget.ui:48 +#, kde-format +msgid "Write a backup file on save for:" +msgstr "Създаване на резервно копие при запазване за:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackupLocalFiles) +#: dialogs/opensaveconfigadvwidget.ui:55 +#, kde-format +msgid "" +"If this option is enabled, backups for local files will be created when " +"saving." +msgstr "" +"Ако тази опция е активирана, при запазване ще се създава резервно копие на " +"файловете." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackupLocalFiles) +#: dialogs/opensaveconfigadvwidget.ui:58 +#, kde-format +msgid "&Local files" +msgstr "На &локални файлове" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackupRemoteFiles) +#: dialogs/opensaveconfigadvwidget.ui:65 +#, kde-format +msgid "" +"If this option is enabled, backups for remote files will be created when " +"saving." +msgstr "" +"Ако тази опция е активирана, при запазване ще се създават резервни копия за " +"отдалечени файлове." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackupRemoteFiles) +#: dialogs/opensaveconfigadvwidget.ui:68 +#, kde-format +msgid "&Remote files" +msgstr "На отд&алечени файлове" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/opensaveconfigadvwidget.ui:75 +#, kde-format +msgid "Prefix for backup files:" +msgstr "Префикс за резервни копия:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtBackupPrefix) +#: dialogs/opensaveconfigadvwidget.ui:85 +#, kde-format +msgid "Enter the prefix to prepend to the backup file names." +msgstr "Въведете префикса, който да добавите към имената на архивните файлове." + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/opensaveconfigadvwidget.ui:92 +#, kde-format +msgid "Suffix for backup files:" +msgstr "Суфикс за резервни копия:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtBackupSuffix) +#: dialogs/opensaveconfigadvwidget.ui:102 +#, kde-format +msgid "Enter the suffix to append to the backup file names." +msgstr "Въведете суфикса, който да добавите към имената на архивните файлове." + +#. i18n: ectx: property (text), widget (QLabel, lblSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:109 +#, kde-format +msgid "Swap file mode:" +msgstr "Режим на swap файл:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:125 +#, kde-format +msgid "Enabled, Store In Default Directory" +msgstr "Активирано, запазване в директорията по разбиране" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:130 +#, kde-format +msgid "Enabled, Store In Custom Directory" +msgstr "Активирано, запазване в потребителска директория" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapDirectory) +#: dialogs/opensaveconfigadvwidget.ui:138 +#, kde-format +msgid "Store swap files in:" +msgstr "Запазване на Swap файлове в:" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapFileSync) +#: dialogs/opensaveconfigadvwidget.ui:158 +#, kde-format +msgid "Save swap files every:" +msgstr "Запазване на Swap файлове на всеки:" + +#. i18n: ectx: property (suffix), widget (QSpinBox, spbSwapFileSync) +#: dialogs/opensaveconfigadvwidget.ui:171 +#, kde-format +msgid "s" +msgstr "с" + +#. i18n: ectx: property (text), widget (QLabel, lblExplanatory) +#: dialogs/opensaveconfigadvwidget.ui:196 +#, kde-format +msgid "" +"This string is located in katedialogs.cpp in KateSaveConfigTab's constructor." +msgstr "Низът е локализиран в katedialogs.cpp в конструктор KateSaveConfigTab." + +#. i18n: ectx: property (text), widget (QCheckBox, chkEditorConfig) +#: dialogs/opensaveconfigadvwidget.ui:209 +#, kde-format +msgid "Honor settings in .editorconfig file" +msgstr "Настройки на зачитане във файл .editorconfig" + +#. i18n: ectx: property (text), widget (QCheckBox, chkUseFirstLineAsDocName) +#: dialogs/opensaveconfigadvwidget.ui:229 +#, kde-format +msgid "Use first line of untitled documents for document name" +msgstr "" +"Използване на първия ред на неозаглавени документи като име на документа" + +#. i18n: ectx: property (title), widget (QGroupBox, gbFileFormat) +#: dialogs/opensaveconfigwidget.ui:29 +#, kde-format +msgid "File Format" +msgstr "Формат на файл" + +#. i18n: ectx: property (text), widget (QLabel, lblEncoding) +#: dialogs/opensaveconfigwidget.ui:40 +#, kde-format +msgid "&Encoding:" +msgstr "Ко&дова таблица:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncoding) +#: dialogs/opensaveconfigwidget.ui:50 +#, kde-format +msgid "" +"This defines the standard encoding to use to open/save files, if not changed " +"in the open/save dialog or by using a command line option." +msgstr "" +"Това определя стандартното кодиране, което да се използва за отваряне/" +"запазване на файлове, ако не е променено в диалоговия прозорец за отваряне/" +"запазване или чрез опция за команден ред." + +#. i18n: ectx: property (text), widget (QLabel, lblEncodingDetection) +#: dialogs/opensaveconfigwidget.ui:57 +#, kde-format +msgid "&Encoding detection:" +msgstr "&Откриване на кодиране:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncodingDetection) +#: dialogs/opensaveconfigwidget.ui:67 +#, kde-format +msgid "" +"if neither the encoding chosen as standard above, nor the encoding specified " +"in the open/save dialog, nor the encoding specified on command line match " +"the content of the file, this detection will be run." +msgstr "" +"това откриване ще бъде стартирано, ако не е посочено кодиране, нито като " +"стандарт по-горе, нито в диалоговия прозорец за отваряне/запазване, нито в " +"командния ред." + +#. i18n: ectx: property (text), widget (QLabel, lblEncodingDetection2) +#: dialogs/opensaveconfigwidget.ui:74 +#, kde-format +msgid "&Fallback encoding:" +msgstr "&Резервно кодиране:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncodingFallback) +#: dialogs/opensaveconfigwidget.ui:84 +#, kde-format +msgid "" +"This defines the fallback encoding to try for opening files if neither the " +"encoding chosen as standard above, nor the encoding specified in the open/" +"save dialog, nor the encoding specified on command line match the content of " +"the file. Before this is used, an attempt will be made to determine the " +"encoding to use by looking for a byte order mark at start of file: if one is " +"found, the right Unicode encoding will be chosen; otherwise encoding " +"detection will run, if both fail the fallback encoding will be tried." +msgstr "" +"Това дефинира резервното кодиране за отваряне на файлове без зададено " +"кодиране. Преди да се използва това, ще се направи опит да се определи " +"кодирането, което да се използва чрез търсене на маркер на байтов " +"последователност в началото на файла: ако такъв е намерен, ще бъде избрано " +"съответното Unicode кодиране; в противен случай ще се стартира откриване на " +"кодиране Ако и двете не успеят, ще се опита резервното кодиране." + +#. i18n: ectx: property (text), widget (QLabel, lblEOL) +#: dialogs/opensaveconfigwidget.ui:91 +#, kde-format +msgid "E&nd of line:" +msgstr "К&рай на ред:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:102 +#, kde-format +msgid "UNIX" +msgstr "UNIX" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:107 +#, kde-format +msgid "DOS/Windows" +msgstr "DOS/Windows" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:112 +#, kde-format +msgid "Macintosh" +msgstr "Macintosh" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkDetectEOL) +#: dialogs/opensaveconfigwidget.ui:122 +#, kde-format +msgid "" +"If this option is enabled the editor will autodetect the end of line type. " +"The first found end of line type will be used for the whole file." +msgstr "" +"Ако тази опция е активирана, редакторът ще открие автоматично края на реда." +"Първият намерен край на ред ще бъде използван за целия файл." + +#. i18n: ectx: property (text), widget (QCheckBox, chkDetectEOL) +#: dialogs/opensaveconfigwidget.ui:125 +#, kde-format +msgid "A&utomatic end of line detection" +msgstr "&Автоматично откриване на край на ред" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkEnableBOM) +#: dialogs/opensaveconfigwidget.ui:132 +#, kde-format +msgid "" +"The byte order mark is a special sequence at the beginning of Unicode " +"encoded documents. It helps editors to open text documents with the correct " +"Unicode encoding. The byte order mark is not visible in the displayed " +"document." +msgstr "" +"Маркерът за подреждане на байтове е специална последователност в началото на " +"Unicode кодирани документи. Той помага на редакторите да отварят текстови " +"документи с правилното Unicode кодиране. Маркерът за подреждане на байтове " +"не се вижда в документа." + +#. i18n: ectx: property (text), widget (QCheckBox, chkEnableBOM) +#: dialogs/opensaveconfigwidget.ui:135 +#, kde-format +msgid "Enable byte order mark (BOM)" +msgstr "Активиране на маркер на байтов последователност" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/opensaveconfigwidget.ui:142 +#, kde-format +msgid "Line length limit:" +msgstr "Ограничение на дължината на реда:" + +#. i18n: ectx: property (specialValueText), widget (QSpinBox, lineLengthLimit) +#: dialogs/opensaveconfigwidget.ui:152 +#, kde-format +msgid "Unlimited" +msgstr "Неограничено" + +#. i18n: ectx: property (title), widget (QGroupBox, gbCleanups) +#: dialogs/opensaveconfigwidget.ui:168 +#, kde-format +msgid "Automatic Cleanups on Save" +msgstr "Автоматично изчистване при запазване" + +#. i18n: ectx: property (whatsThis), widget (QLabel, lblRemoveTrailingSpaces) +#. i18n: ectx: property (whatsThis), widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:176 dialogs/opensaveconfigwidget.ui:189 +#, kde-format +msgid "" +"Depending on the choice, trailing spaces are removed when saving a document, " +"either in the entire document or only of modified lines." +msgstr "" +"В зависимост от избора, крайните интервали се премахват при запазване на " +"документа, в целия документ или само в променените редове." + +#. i18n: ectx: property (text), widget (QLabel, lblRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:179 +#, kde-format +msgid "Re&move trailing spaces:" +msgstr "Премахване на крайните интервали:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, spbAutoSaveInterval) +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/opensaveconfigwidget.ui:193 dialogs/opensaveconfigwidget.ui:270 +#: dialogs/textareaappearanceconfigwidget.ui:104 +#, kde-format +msgid "Never" +msgstr "Никога" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:198 +#, kde-format +msgid "On Modified Lines" +msgstr "В променените редове" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:203 +#, kde-format +msgid "In Entire Document" +msgstr "В целия документ" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkNewLineAtEof) +#: dialogs/opensaveconfigwidget.ui:226 +#, kde-format +msgid "" +"On save, a line break is appended to the document if not already present. " +"The line break is visible after reloading the file." +msgstr "" +"При запис, нов ред се добавя към документа, ако вече не е налице. Новият " +"реда е видим след презареждане на файла." + +#. i18n: ectx: property (text), widget (QCheckBox, chkNewLineAtEof) +#: dialogs/opensaveconfigwidget.ui:229 +#, kde-format +msgid "Append newline at end of file on save" +msgstr "Добавяне на нов ред в края на файла при запис" + +#. i18n: ectx: property (title), widget (QGroupBox, gbAutoSave) +#: dialogs/opensaveconfigwidget.ui:239 +#, kde-format +msgid "Enable Auto Save (local files only)" +msgstr "Активиране на автоматичното запазване(само за локални файлове)" + +#. i18n: ectx: property (text), widget (QCheckBox, cbAutoSaveOnFocus) +#: dialogs/opensaveconfigwidget.ui:254 +#, kde-format +msgid "Auto save document when the active document is losing focus" +msgstr "" +"Автоматично запазване на документа, когато активният документ е извън фокус" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/opensaveconfigwidget.ui:263 +#, kde-format +msgid "Auto save interval:" +msgstr "Интервал на автоматично запазване:" + +#. i18n: ectx: property (suffix), widget (QSpinBox, spbAutoSaveInterval) +#: dialogs/opensaveconfigwidget.ui:273 +#, kde-format +msgid " seconds" +msgstr " секунди" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowHighlightingMode) +#: dialogs/statusbarconfigwidget.ui:19 +#, kde-format +msgid "Show highlighting mode" +msgstr "Показване на режима на акцентиране" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowInputMode) +#: dialogs/statusbarconfigwidget.ui:26 +#, kde-format +msgid "Show input mode" +msgstr "Показване на режима на въвеждане" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowActiveDictionary) +#: dialogs/statusbarconfigwidget.ui:33 +#, kde-format +msgid "Show active dictionary" +msgstr "Покзаване на активния речник" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowTabSetting) +#: dialogs/statusbarconfigwidget.ui:40 +#, kde-format +msgid "Show tab setting" +msgstr "Показване на настройки на табулация" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowLineColumn) +#: dialogs/statusbarconfigwidget.ui:47 +#, kde-format +msgid "Show line column" +msgstr "Показване на редове колони" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowEncoding) +#: dialogs/statusbarconfigwidget.ui:54 +#, kde-format +msgid "Show File Encoding" +msgstr "Показване на кодовата таблица" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowEOL) +#: dialogs/statusbarconfigwidget.ui:61 +#, kde-format +msgid "Show Line Ending Type" +msgstr "Показване на знак за край на ред" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/textareaappearanceconfigwidget.ui:28 +#, kde-format +msgid "Editor font:" +msgstr "Шрифт на редактора:" + +#. i18n: ectx: property (text), widget (QLabel, lblLineHeight) +#: dialogs/textareaappearanceconfigwidget.ui:48 +#, kde-format +msgid "&Line Height Multiplier:" +msgstr "&Множител на височината на реда:" + +#. i18n: ectx: property (toolTip), widget (QDoubleSpinBox, spbLineHeightMultiplier) +#: dialogs/textareaappearanceconfigwidget.ui:58 +#, kde-format +msgid "" +"This value will be multiplied with the font's default line height. A value " +"of 1.0 means that the default height will be used." +msgstr "" +"Тази стойност ще бъде умножена по височината на реда по подразбиране на " +"шрифта. Стойност 1,0 означава, че ще се използва височината по подразбиране." + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/textareaappearanceconfigwidget.ui:93 +#, kde-format +msgid "Show whitespace indicators:" +msgstr "Показване на индикатори за празни полета:" + +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/textareaappearanceconfigwidget.ui:109 +#, kde-format +msgid "At the end of a line" +msgstr "В края на реда" + +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/textareaappearanceconfigwidget.ui:114 +#, kde-format +msgid "Always" +msgstr "Винаги" + +#. i18n: ectx: property (text), widget (QLabel, lbMarkerDescription) +#: dialogs/textareaappearanceconfigwidget.ui:122 +#, kde-format +msgid "Whitespace indicator si&ze:" +msgstr "&Размер на индикатора на празно пространство:" + +#. i18n: ectx: property (whatsThis), widget (QSlider, sliSetMarkerSize) +#: dialogs/textareaappearanceconfigwidget.ui:138 +#, kde-format +msgid "Size of the visible highlight marker." +msgstr "Размер на видимия маркер за осветяване." + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/textareaappearanceconfigwidget.ui:166 +#, kde-format +msgid "Show &tab indicators:" +msgstr "Показване на индикатори за &табулация:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowTabs) +#: dialogs/textareaappearanceconfigwidget.ui:176 +#, kde-format +msgid "" +"The editor will display a symbol to indicate the presence of a tab in the " +"text." +msgstr "Показване на знак на мястото на табулациите." + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/textareaappearanceconfigwidget.ui:202 +#, kde-format +msgid "Bracket matching:" +msgstr "Съвпадащите скоби:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowWholeBracketExpression) +#: dialogs/textareaappearanceconfigwidget.ui:209 +#, kde-format +msgid "" +"If this is enabled, the range between the selected matching brackets will be " +"highlighted." +msgstr "" +"Ако това е активирано, обхватът между избраните съвпадащи скоби ще бъде " +"осветен." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowWholeBracketExpression) +#: dialogs/textareaappearanceconfigwidget.ui:212 +#, kde-format +msgid "Highlight range between selected brackets" +msgstr "Акцентиране на обхвата между избраните скоби" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:219 +#, kde-format +msgid "Show the matching open bracket and lines adjacent to it for context" +msgstr "" +"Показване на съответната отворена скоба и редовете в съседство с нея за " +"контекст" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:222 +#, kde-format +msgid "" +"If this is enabled, a preview of the lines near a matching open bracket is " +"shown. This can help in quickly determining the context of a closing " +"bracket, especially in long function/class declarations and deeply nested if " +"blocks" +msgstr "" +"Ако това е активирано, се показва предварителен преглед на редовете в " +"близост до съответстващата отворена скоба. Това може да помогне за бързо " +"определяне на контекста на затварящата скоба, особено при декларации с дълги " +"функции/клас и дълбоко вложени if блокове" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:225 +#, kde-format +msgid "Show preview of matching open bracket" +msgstr "Предварителен преглед на съвпадаща отворена скоба" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:232 +#, kde-format +msgid "Flash matching brackets" +msgstr "Оцветяване на съвпадащите скоби" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:235 +#, kde-format +msgid "" +"If this is enabled, matching brackets are animated for better visibility." +msgstr "" +"Ако това е активирано, съответстващите скоби се анимират за по-добра " +"видимост." + +#. i18n: ectx: property (text), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:238 +#, kde-format +msgid "Flash matching bracket when cursor moves to other bracket in pair" +msgstr "" +"Примигване на съвпадащите скоби при преминаване на курсора през една от " +"скобите" + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/textareaappearanceconfigwidget.ui:261 +#, kde-format +msgid "Counts:" +msgstr "Изброяване:" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowWordCount) +#: dialogs/textareaappearanceconfigwidget.ui:268 +#, kde-format +msgid "Show/hide word count in status bar" +msgstr "Показване/скриване на броя на думите в лентата на състоянието" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowWordCount) +#: dialogs/textareaappearanceconfigwidget.ui:271 view/katestatusbar.cpp:258 +#, kde-format +msgid "Show word count" +msgstr "Показване на броя на думите" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowLineCount) +#: dialogs/textareaappearanceconfigwidget.ui:278 +#, kde-format +msgid "Show/hide line count in status bar" +msgstr "Показване/скриване на броя на редовете в лентата на състоянието" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowLineCount) +#: dialogs/textareaappearanceconfigwidget.ui:281 view/katestatusbar.cpp:255 +#, kde-format +msgid "Show line count" +msgstr "Показване на броя на редовете" + +#. i18n: ectx: property (text), widget (QLabel, label_25) +#: dialogs/textareaappearanceconfigwidget.ui:304 +#, kde-format +msgid "Fold first line:" +msgstr "Сгъване на първия ред:" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkFoldFirstLine) +#: dialogs/textareaappearanceconfigwidget.ui:317 +#, kde-format +msgid "" +"When this setting is enabled, the editor view automatically folds\n" +"comment blocks that start on the first line of the document. This is\n" +"helpful to hide license headers which are commonly placed at the\n" +"beginning of a file." +msgstr "" +"Когато тази настройка е активирана, изгледът на редактора автоматично се " +"сгъва\n" +"блокове за коментари, които започват от първия ред на документа. Това е\n" +"полезно за скриване на заглавни лицензи, които често се поставят в\n" +"начало на файл." + +#. i18n: ectx: property (text), widget (QCheckBox, cbxWordWrap) +#: dialogs/textareaappearanceconfigwidget.ui:337 +#, kde-format +msgid "Dynamic Word Wrap:" +msgstr "Динамично пренасяне на думи:" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDynWrapAtStaticMarker) +#: dialogs/textareaappearanceconfigwidget.ui:344 +#, kde-format +msgid "Wrap dynamically at static word wrap marker" +msgstr "Пренасяне на думи динамично при статичен маркер за пренасяне" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDynWrapAnywhere) +#: dialogs/textareaappearanceconfigwidget.ui:351 +#, kde-format +msgid "Disregard word boundaries for dynamic wrapping" +msgstr "Пренебрегване на границите на думи за динамично пренасяне" + +#. i18n: ectx: property (text), widget (QLabel, lblDynamicWordWrapIndicators) +#: dialogs/textareaappearanceconfigwidget.ui:358 +#, kde-format +msgid "D&ynamic word wrap indicators:" +msgstr "Индикатори за &динамично пренасяне на думи:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbDynamicWordWrapIndicator) +#: dialogs/textareaappearanceconfigwidget.ui:368 +#, kde-format +msgid "Choose when the Dynamic Word Wrap Indicators should be displayed." +msgstr "Избиране, кога да се показват индикатори за динамично пренасяне." + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/textareaappearanceconfigwidget.ui:391 +#, kde-format +msgid "I&ndent wrapped lines:" +msgstr "&Отстъп на пренесени редове:" + +#. i18n: ectx: property (text), widget (QLabel, lblDynamicWordWrapIndicators_2) +#: dialogs/textareaappearanceconfigwidget.ui:408 +#, kde-format +msgid "&Don't indent lines wider than:" +msgstr "&Без отстъп за редове по-широки от:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbDynamicWordWrapDepth) +#: dialogs/textareaappearanceconfigwidget.ui:424 +#, no-c-format, kde-format +msgid "" +"

Enables the start of dynamically wrapped lines to be aligned vertically " +"to the indentation level of the first line. This can help to make code and " +"markup more readable.

Additionally, this allows you to set a maximum " +"width of the screen, as a percentage, after which dynamically wrapped lines " +"will no longer be vertically aligned. For example, at 50%, lines whose " +"indentation levels are deeper than 50% of the width of the screen will not " +"have vertical alignment applied to subsequent wrapped lines.

" +msgstr "" +"

Позволяване началото на динамично прехвърлени редове да бъде подравнено " +"вертикално до нивото на отстъпа на първия ред. Това може да помогне да се " +"направи кодът и маркирането по-четливо.

Освен това, това ви позволява " +"да зададете максимална ширина на екрана, като процент, след което динамично " +"прехвърлените редове вече няма да бъдат вертикално подравнявани. Например " +"при 50 %, редове, чийто нивата на отстъпите са по-дълбоки от 50 % от " +"ширината на екрана няма да имат вертикално подравняване, приложено към " +"следващите прехвърлени редове.

" + +#. i18n: ectx: property (suffix), widget (QSpinBox, sbDynamicWordWrapDepth) +#: dialogs/textareaappearanceconfigwidget.ui:427 +#, no-c-format, kde-format +msgid "% of View Width" +msgstr "% от видимата част" + +#. i18n: ectx: property (text), widget (QLabel, label_24) +#: dialogs/textareaappearanceconfigwidget.ui:443 +#, kde-format +msgid "Show i&ndentation lines:" +msgstr "Показване на линия за о&тстъпа:" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowIndentationLines) +#: dialogs/textareaappearanceconfigwidget.ui:453 +#, kde-format +msgid "" +"If this is enabled, the editor will display vertical lines to help identify " +"indent lines." +msgstr "Показване на помощна вертикална линия за определяне на отстъпа." + +#: document/katebuffer.cpp:135 +#, kde-format +msgctxt "short translation, user created new file" +msgid "New file" +msgstr "Нов файл" + +#: document/katedocument.cpp:223 +#, kde-format +msgid "Auto Reload Document" +msgstr "Автоматично презареждане на документ" + +#: document/katedocument.cpp:225 +#, kde-format +msgid "Automatic reload the document when it was changed on disk" +msgstr "Автоматично презареждане на документа, когато е бил променен на диска" + +#: document/katedocument.cpp:2307 +#, kde-format +msgid "" +"The file %1 could not be loaded, as it was not possible to read from it.
Check if you have read access to this file." +msgstr "" +"Файлът %1 не можа да бъде зареден, тъй като не беше възможно да се прочете " +"от него.
Проверете дали имате достъп за четене до този файл." + +#: document/katedocument.cpp:2312 +#, kde-format +msgctxt "translators: you can also translate 'Try Again' with 'Reload'" +msgid "Try Again" +msgstr "Повторно опитване" + +#: document/katedocument.cpp:2316 document/katedocument.cpp:6534 +#, kde-format +msgid "&Close" +msgstr "&Затваряне" + +#: document/katedocument.cpp:2317 document/katedocument.cpp:6535 +#, kde-format +msgctxt "Close the message being displayed" +msgid "Close message" +msgstr "Затваряне на съобщението" + +#: document/katedocument.cpp:2449 +#, kde-format +msgid "" +"The file %1 was opened with %2 encoding but contained invalid characters." +"
It is set to read-only mode, as saving might destroy its content.
Either reopen the file with the correct encoding chosen or enable the read-" +"write mode again in the tools menu to be able to edit it." +msgstr "" +"Файлът %1 беше отворен с %2 кодиране, но съдържаше невалидни символи.
" +"Той е настроен на режим само за четене, тъй като запазването може да унищожи " +"съдържанието му.
Или отворете отново файла с избрано правилно " +"кодиране, или активирайте режима четене-запис в менюто с инструменти, за да " +"можете да го редактирате." + +#: document/katedocument.cpp:2468 +#, kde-format +msgid "" +"The file %1 was opened and contained lines longer than the configured Line " +"Length Limit (%2 characters).
The longest of those lines was %3 " +"characters long
Those lines were wrapped and the document is set to read-" +"only mode, as saving will modify its content." +msgstr "" +"Файлът %1 беше отворен и съдържаше редове, по-дълги от конфигурираното " +"Ограничение на дължината на ред (%2 знака).
Най-дългият от тези " +"редове беше %3 символа дълъг
Тези редове бяха пренесени и документът е " +"настроен на режим само за четене, тъй като запазването ще промени " +"съдържанието му." + +#: document/katedocument.cpp:2475 +#, kde-format +msgid "Temporarily raise limit and reload file" +msgstr "Временно увеличаване на лимита и презареждане на файла" + +#: document/katedocument.cpp:2478 +#, kde-format +msgid "Close" +msgstr "Затваряне" + +#: document/katedocument.cpp:2505 +#, kde-format +msgid "" +"Do you really want to save this unmodified file? You could overwrite changed " +"data in the file on disk." +msgstr "" +"Сигурни ли сте, че искате файлът да бъде записан, въпреки че има променена " +"версия на диска? При тази операция може да загубите данни." + +#: document/katedocument.cpp:2506 +#, kde-format +msgid "Trying to Save Unmodified File" +msgstr "Запис на непроменен файл" + +#: document/katedocument.cpp:2507 document/katedocument.cpp:2518 +#: document/katedocument.cpp:2534 +#, kde-format +msgid "Save Nevertheless" +msgstr "Запазване въпреки това" + +#: document/katedocument.cpp:2516 +#, kde-format +msgid "" +"Do you really want to save this file? Both your open file and the file on " +"disk were changed. There could be some data lost." +msgstr "" +"Сигурни ли сте, че искате файла да бъде записан, въпреки че има променена " +"версия на диска и копието отворено в редактора също е променено? При тази " +"операция може да загубите данни." + +#: document/katedocument.cpp:2517 document/katedocument.cpp:2533 +#: document/katedocument.cpp:2853 syntax/katethemeconfig.cpp:1218 +#: syntax/katethemeconfig.cpp:1376 +#, kde-format +msgid "Possible Data Loss" +msgstr "Възможна е загуба на данни" + +#: document/katedocument.cpp:2531 +#, kde-format +msgid "" +"The selected encoding cannot encode every Unicode character in this " +"document. Do you really want to save it? There could be some data lost." +msgstr "" +"Избраното кодиране не може да кодира всеки Unicode символ в този документ. " +"Наистина ли искате да го запазите? Може да има загуба на данни." + +#: document/katedocument.cpp:2601 +#, kde-format +msgid "" +"The document could not be saved, as it was not possible to write to %1.\n" +"Check that you have write access to this file or that enough disk space is " +"available.\n" +"The original file may be lost or damaged. Don't quit the application until " +"the file is successfully written." +msgstr "" +"Документът не можа да бъде запазен, тъй като не беше възможно да пишете в " +"%1.\n" +"Проверете дали имате достъп за запис на този файл или че има достатъчно " +"място на диска на разположение.\n" +"Оригиналният файл може да бъде загубен или повреден. Не излизайте от " +"приложението, докато файлът не е успешно записан." + +#: document/katedocument.cpp:2722 +#, kde-format +msgid "" +"For file %1 no backup copy could be created before saving. If an error " +"occurs while saving, you might lose the data of this file. A reason could be " +"that the media you write to is full or the directory of the file is read-" +"only for you." +msgstr "" +"За файл %1 не може да се създаде резервно копие преди запазване. Ако има " +"грешка, възникнала при запазване, може да загубите данните от този файл. " +"Причината може да бъде, че носителят, на който пишете, е пълен или " +"директорията на файла е само за четене." + +#: document/katedocument.cpp:2726 +#, kde-format +msgid "Failed to create backup copy." +msgstr "Създаването на резервно копие е неуспешно." + +#: document/katedocument.cpp:2727 +#, kde-format +msgid "Try to Save Nevertheless" +msgstr "Запис въпреки това" + +#: document/katedocument.cpp:2852 +#, kde-format +msgid "Do you really want to continue to close this file? Data loss may occur." +msgstr "" +"Сигурни ли сте, че искате файлът да бъде затворен? При тази операция може да " +"загубите данни." + +#: document/katedocument.cpp:2854 +#, kde-format +msgid "Close Nevertheless" +msgstr "Затваряне" + +#: document/katedocument.cpp:4641 +#, kde-format +msgid "Untitled (%1)" +msgstr "Неозаглавено (%1)" + +#: document/katedocument.cpp:4643 +#, kde-format +msgid "Untitled" +msgstr "Неозаглавено" + +#: document/katedocument.cpp:4820 document/katedocument.cpp:5051 +#: document/katedocument.cpp:5061 document/katedocument.cpp:5862 +#: document/katedocument.cpp:6049 +#, kde-format +msgid "Save File" +msgstr "Запис на файл" + +#: document/katedocument.cpp:4823 +#, kde-format +msgid "Save failed" +msgstr "Грешка при запис" + +#: document/katedocument.cpp:5072 +#, kde-format +msgid "Save Copy of File" +msgstr "Запазване на копие на файл" + +#: document/katedocument.cpp:5084 +#, kde-format +msgid "" +"The document could not be saved, as it was not possible to write to %1.\n" +"\n" +"Check that you have write access to this file or that enough disk space is " +"available." +msgstr "" +"Документът не беше записан. Невъзможен запис в „%1“.\n" +"\n" +"Моля, проверете дали имате права за запис във файла и дали има достатъчно " +"свободно място на диска." + +#: document/katedocument.cpp:5376 +#, kde-format +msgid "" +"Using deprecated modeline 'remove-trailing-space'. Please replace with " +"'remove-trailing-spaces modified;', see https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" +msgstr "" +"Използване на остаряла опция 'remove-trailing-space'. Моля, заменете с " +"'remove-trailing-space modified;', вижте https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" + +#: document/katedocument.cpp:5382 +#, kde-format +msgid "" +"Using deprecated modeline 'replace-trailing-space-save'. Please replace with " +"'remove-trailing-spaces all;', see https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" +msgstr "" +"Използване на остаряла опция 'replace-trailing-space-save'. Моля, заменете с " +"'remove-trailing-space all;', вижте https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" + +#: document/katedocument.cpp:5696 +#, kde-format +msgid "The file '%1' was modified on disk." +msgstr "Файлът „%1“ е модифициран на диска." + +#: document/katedocument.cpp:5698 +#, kde-format +msgid "The file '%1' was deleted or moved on disk." +msgstr "Файлът „%1“ е изтрит или преместен от диска." + +#: document/katedocument.cpp:6034 +#, kde-format +msgid "" +"The document \"%1\" has been modified.\n" +"Do you want to save your changes or discard them?" +msgstr "" +"Документът „%1“ бе променен.\n" +"Искате ли да запазите промените си или да ги отхвърлите?Документът „%1“ бе " +"променен.\n" +"Искате ли да запазите промените си или да ги отхвърлите?" + +#: document/katedocument.cpp:6037 +#, kde-format +msgid "Close Document" +msgstr "Затваряне на документа" + +#: document/katedocument.cpp:6148 +#, kde-format +msgid "The file %2 is still loading." +msgstr "Файлът %2 все още се зарежда." + +#: document/katedocument.cpp:6153 +#, kde-format +msgid "&Abort Loading" +msgstr "&Прекъсване на зареждането" + +#: inputmode/katenormalinputmode.cpp:74 +#, kde-format +msgid "OVERWRITE" +msgstr "ПРЕЗАПИСВАНЕ" + +#: inputmode/katenormalinputmode.cpp:74 +#, kde-format +msgid "INSERT" +msgstr "ВМЪКВАНЕ" + +#: inputmode/katenormalinputmodefactory.cpp:29 +#, kde-format +msgid "Normal Mode" +msgstr "Нормален режим" + +#: inputmode/kateviinputmode.cpp:31 +#, kde-format +msgctxt "The INSERT mode of VI" +msgid "VI: INSERT" +msgstr "VI: INSERT" + +#: inputmode/kateviinputmode.cpp:34 +#, kde-format +msgctxt "The NORMAL mode of VI" +msgid "VI: NORMAL" +msgstr "VI: NORMAL" + +#: inputmode/kateviinputmode.cpp:37 +#, kde-format +msgid "VI: VISUAL" +msgstr "VI: VISUAL" + +#: inputmode/kateviinputmode.cpp:40 +#, kde-format +msgid "VI: VISUAL BLOCK" +msgstr "VI: VISUAL BLOCK" + +#: inputmode/kateviinputmode.cpp:43 +#, kde-format +msgid "VI: VISUAL LINE" +msgstr "VI: VISUAL LINE" + +#: inputmode/kateviinputmode.cpp:46 +#, kde-format +msgid "VI: REPLACE" +msgstr "VI: REPLACE" + +#: inputmode/kateviinputmode.cpp:146 +#, kde-format +msgid "vi-mode" +msgstr "vi-режим" + +#: inputmode/kateviinputmode.cpp:159 +#, kde-format +msgid "recording" +msgstr "записване" + +#: inputmode/kateviinputmodefactory.cpp:38 utils/kateglobal.cpp:88 +#: vimode/config/configtab.cpp:237 +#, kde-format +msgid "Vi Input Mode" +msgstr "Режим на въвеждане Vi" + +#: mode/katemodeconfigpage.cpp:46 +#, kde-format +msgid "" +msgstr "<Непроменено>" + +#: mode/katemodeconfigpage.cpp:58 +#, kde-format +msgid "Use Default" +msgstr "Използване на подразбиране" + +#: mode/katemodeconfigpage.cpp:99 mode/katemodeconfigpage.cpp:241 +#, kde-format +msgid "Properties of %1" +msgstr "Информация за %1" + +#: mode/katemodeconfigpage.cpp:178 +#, kde-format +msgid "New Filetype" +msgstr "Нов вид файл" + +#: mode/katemodeconfigpage.cpp:293 +#, kde-format +msgid "" +"Select the MimeTypes you want for this file type.\n" +"Please note that this will automatically edit the associated file extensions " +"as well." +msgstr "" +"Избор на видове по MIME за зададения вид файл.\n" +"Имайте предвид, че тази операция автоматично ще редактира и асоциираните " +"разширения към файла." + +#: mode/katemodeconfigpage.cpp:295 +#, kde-format +msgid "Select Mime Types" +msgstr "Избор на видове по MIME" + +#: mode/katemodeconfigpage.cpp:312 +#, kde-format +msgid "Modes && Filetypes" +msgstr "Режими и видове файлове" + +#: mode/katemodemenulist.cpp:138 +#, kde-format +msgctxt "@info:placeholder" +msgid "Search…" +msgstr "Търсене…" + +#: mode/katemodemenulist.cpp:140 +#, kde-format +msgctxt "ToolTip of the search bar of modes of syntax highlighting" +msgid "" +"Search for syntax highlighting modes by language name or file extension (for " +"example, C++ or .cpp)" +msgstr "" +"Търсене на режими за подчертаване на синтаксис по име на език или разширение " +"на файл (например C ++ или .cpp)" + +#: mode/katemodemenulist.cpp:560 +#, kde-format +msgctxt "A search yielded no results" +msgid "No items matching your search" +msgstr "Няма елементи, съответстващи на вашето търсене" + +#: mode/katemodemenulist.cpp:1087 +#, kde-format +msgctxt "" +"Title (in singular) of the best result in an item search. Please, that the " +"translation doesn't have more than 34 characters, since the menu where it's " +"displayed is small and fixed." +msgid "Best Search Match" +msgstr "Най-добро съвпадение при търсене" + +#: mode/katemodemenulist.cpp:1092 +#, kde-format +msgctxt "" +"Title (in plural) of the best results in an item search. Please, that the " +"translation doesn't have more than 34 characters, since the menu where it's " +"displayed is small and fixed." +msgid "Best Search Matches" +msgstr "Най-добри съвпадения при търсене" + +#: printing/printconfigwidgets.cpp:36 +#, kde-format +msgid "Te&xt Settings" +msgstr "&Текст" + +#: printing/printconfigwidgets.cpp:40 +#, kde-format +msgid "Print line &numbers" +msgstr "Печат на &номерата на редовете" + +#: printing/printconfigwidgets.cpp:43 +#, kde-format +msgid "Print &legend" +msgstr "Печат на &легендата" + +#: printing/printconfigwidgets.cpp:46 +#, kde-format +msgid "Don't print folded code" +msgstr "Да не се отпечатва сгънат код" + +#: printing/printconfigwidgets.cpp:54 +#, kde-format +msgid "" +"

If enabled, line numbers will be printed on the left side of the page(s)." +"

" +msgstr "

Печат на номерата на редовете в лявата страна на листа.

" + +#: printing/printconfigwidgets.cpp:56 +#, kde-format +msgid "" +"

Print a box displaying typographical conventions for the document type, " +"as defined by the syntax highlighting being used.

" +msgstr "" +"

Печат на типографската конвенция за открояване. Конвенцията се печата в " +"малък правоъгълник.

" + +#: printing/printconfigwidgets.cpp:116 +#, kde-format +msgid "Hea&der && Footer" +msgstr "Ко&лонтитули" + +#: printing/printconfigwidgets.cpp:123 +#, kde-format +msgid "Pr&int header" +msgstr "Печат на &горен колонтитул" + +#: printing/printconfigwidgets.cpp:125 +#, kde-format +msgid "Pri&nt footer" +msgstr "Печат на &долен колонтитул" + +#: printing/printconfigwidgets.cpp:131 +#, kde-format +msgid "Header/footer font:" +msgstr "Шрифт на колонтитулите:" + +#: printing/printconfigwidgets.cpp:137 +#, kde-format +msgid "Header Properties" +msgstr "Горен колонтитул" + +#: printing/printconfigwidgets.cpp:141 +#, kde-format +msgid "&Format:" +msgstr "Фо&рмат:" + +#: printing/printconfigwidgets.cpp:163 printing/printconfigwidgets.cpp:209 +#, kde-format +msgid "Colors:" +msgstr "Цветове:" + +#: printing/printconfigwidgets.cpp:170 printing/printconfigwidgets.cpp:216 +#, kde-format +msgid "Foreground:" +msgstr "Текст:" + +#: printing/printconfigwidgets.cpp:175 +#, kde-format +msgid "Bac&kground" +msgstr "&Фон:" + +#: printing/printconfigwidgets.cpp:181 +#, kde-format +msgid "Footer Properties" +msgstr "Долен колонтитул" + +#: printing/printconfigwidgets.cpp:186 +#, kde-format +msgid "For&mat:" +msgstr "Фор&мат:" + +#: printing/printconfigwidgets.cpp:221 +#, kde-format +msgid "&Background" +msgstr "Фо&н:" + +#: printing/printconfigwidgets.cpp:250 +#, kde-format +msgid "

Format of the page header. The following tags are supported:

" +msgstr "

Формат на горен колонтитул. Разрешени са следните етикети:

" + +#: printing/printconfigwidgets.cpp:252 +#, kde-format +msgid "" +"
  • %u: current user name
  • %d: complete date/" +"time in short format
  • %D: complete date/time in long format
  • %h: current time
  • %y: current date in short " +"format
  • %Y: current date in long format
  • %f: " +"file name
  • %U: full URL of the document
  • %p: " +"page number
  • %P: total amount of pages

" +msgstr "" +"
  • %u : текущо потребителско име
  • %d : " +"пълна дата /време в кратък формат
  • %D : пълна дата/час в " +"дълъг формат
  • %h : текущо време
  • %y : " +"текущата дата в кратък формат
  • %Y : текущата дата в дълъг " +"формат
  • %f :име на файл
  • %U : пълен URL " +"адрес на документа
  • %p :номер на страницата
  • " +"%P : общ брой страници

" + +#: printing/printconfigwidgets.cpp:266 +#, kde-format +msgid "

Format of the page footer. The following tags are supported:

" +msgstr "

Формат на долен колонтитул. Разрешени са следните етикети:

" + +#: printing/printconfigwidgets.cpp:352 +#, kde-format +msgid "Add Placeholder..." +msgstr "Добавяне на заместител..." + +#: printing/printconfigwidgets.cpp:354 +#, kde-format +msgid "Current User Name" +msgstr "Текущо потребителско име" + +#: printing/printconfigwidgets.cpp:356 +#, kde-format +msgid "Complete Date/Time (short format)" +msgstr "Пълна дата/час (кратък формат)" + +#: printing/printconfigwidgets.cpp:358 +#, kde-format +msgid "Complete Date/Time (long format)" +msgstr "Пълна дата/час (дълъг формат)" + +#: printing/printconfigwidgets.cpp:360 +#, kde-format +msgid "Current Time" +msgstr "Текущо време" + +#: printing/printconfigwidgets.cpp:362 +#, kde-format +msgid "Current Date (short format)" +msgstr "Текуща дата (кратък формат)" + +#: printing/printconfigwidgets.cpp:364 +#, kde-format +msgid "Current Date (long format)" +msgstr "Текуща дата (дълъг формат)" + +#: printing/printconfigwidgets.cpp:366 +#, kde-format +msgid "File Name" +msgstr "Име на файл" + +#: printing/printconfigwidgets.cpp:368 +#, kde-format +msgid "Full document URL" +msgstr "Пълен URL адрес на документа" + +#: printing/printconfigwidgets.cpp:370 +#, kde-format +msgid "Page Number" +msgstr "Номер на страницата" + +#: printing/printconfigwidgets.cpp:372 +#, kde-format +msgid "Total Amount of Pages" +msgstr "Общ брой страници" + +#: printing/printconfigwidgets.cpp:478 +#, kde-format +msgid "L&ayout" +msgstr "По&дредба" + +#: printing/printconfigwidgets.cpp:484 +#, kde-format +msgid "&Color theme:" +msgstr "&Цветна тема:" + +#: printing/printconfigwidgets.cpp:494 +#, kde-format +msgid "Font:" +msgstr "Шрифт:" + +#: printing/printconfigwidgets.cpp:498 +#, kde-format +msgid "Draw bac&kground color" +msgstr "Печат на &цвета на фона" + +#: printing/printconfigwidgets.cpp:501 +#, kde-format +msgid "Draw &boxes" +msgstr "Печат на &рамка" + +#: printing/printconfigwidgets.cpp:505 +#, kde-format +msgid "Box Properties" +msgstr "Настройки на рамката" + +#: printing/printconfigwidgets.cpp:509 +#, kde-format +msgid "W&idth:" +msgstr "&Широчина:" + +#: printing/printconfigwidgets.cpp:517 +#, kde-format +msgid "&Margin:" +msgstr "&Граница:" + +#: printing/printconfigwidgets.cpp:525 +#, kde-format +msgid "Co&lor:" +msgstr "Ц&вят:" + +#: printing/printconfigwidgets.cpp:547 +#, kde-format +msgid "Select the color theme to use for the print." +msgstr "Изберете цветната тема, която да използвате за печат." + +#: printing/printconfigwidgets.cpp:549 +#, kde-format +msgid "" +"

If enabled, the background color of the editor will be used.

This " +"may be useful if your color theme is designed for a dark background.

" +msgstr "" +"

Ако е активирана, ще се използва цветът на фона на редактора.

Това " +"може да е полезно, ако вашата цветна тема е предназначена за тъмен фон.

" + +#: printing/printconfigwidgets.cpp:552 +#, kde-format +msgid "" +"

If enabled, a box as defined in the properties below will be drawn around " +"the contents of each page. The Header and Footer will be separated from the " +"contents with a line as well.

" +msgstr "" +"

Печат на рамка около съдържанието на всяка страницата. Също така долният " +"и горният колонтитули ще бъдат разделени от съдържанието с линия.

" + +#: printing/printconfigwidgets.cpp:555 +#, kde-format +msgid "The width of the box outline" +msgstr "Широчина на линията на рамката в пиксели." + +#: printing/printconfigwidgets.cpp:556 +#, kde-format +msgid "The margin inside boxes, in pixels" +msgstr "Границата от вътрешната страна на рамката в пиксели." + +#: printing/printconfigwidgets.cpp:557 +#, kde-format +msgid "The line color to use for boxes" +msgstr "Цветът на рамката." + +#: printing/printpainter.cpp:269 +#, kde-format +msgid "(Selection of) " +msgstr "(Маркиране на) " + +#: printing/printpainter.cpp:522 +#, kde-format +msgid "Typographical Conventions for %1" +msgstr "Типографска конвенция за %1" + +#: printing/printpainter.cpp:555 +#, kde-format +msgid "text" +msgstr "текст" + +#: script/data/commands/emmet.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Expand Abbreviation" +msgstr "Разгъване на съкращението" + +#: script/data/commands/emmet.js:10 script/data/commands/emmet.js:14 +#: script/data/commands/emmet.js:19 script/data/commands/emmet.js:23 +#: script/data/commands/emmet.js:27 script/data/commands/emmet.js:31 +#: script/data/commands/emmet.js:35 script/data/commands/emmet.js:39 +#: script/data/commands/emmet.js:43 script/data/commands/emmet.js:47 +#: script/data/commands/emmet.js:51 script/data/commands/emmet.js:55 +#: script/data/commands/emmet.js:59 script/data/commands/emmet.js:63 +#: script/data/commands/emmet.js:67 script/data/commands/emmet.js:71 +#: script/data/commands/emmet.js:75 script/data/commands/emmet.js:79 +#: script/data/commands/emmet.js:83 +#, kde-format +msgctxt "Script command category" +msgid "Emmet" +msgstr "Emmet" + +#: script/data/commands/emmet.js:13 +#, kde-format +msgctxt "Script command name" +msgid "Wrap with Tag" +msgstr "Пренасяне с етикет" + +#: script/data/commands/emmet.js:18 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Matching Tag" +msgstr "Преместване на курсора към съответстващ етикет" + +#: script/data/commands/emmet.js:22 +#, kde-format +msgctxt "Script command name" +msgid "Select HTML/XML Tag Contents Inwards" +msgstr "Избиране на съдържанието на HTML/XML етикет навътре" + +#: script/data/commands/emmet.js:26 +#, kde-format +msgctxt "Script command name" +msgid "Select HTML/XML Tag Contents Outwards" +msgstr "Избиране на съдържанието на HTML/XML етикет навън" + +#: script/data/commands/emmet.js:30 +#, kde-format +msgctxt "Script command name" +msgid "Toggle Comment" +msgstr "Превключване на коментар" + +#: script/data/commands/emmet.js:34 +#, kde-format +msgctxt "Script command name" +msgid "Go to Next Edit Point" +msgstr "Отиване до следващата точка за редактиране" + +#: script/data/commands/emmet.js:38 +#, kde-format +msgctxt "Script command name" +msgid "Go to Previous Edit Point" +msgstr "Отиване до предишната точка за редактиране" + +#: script/data/commands/emmet.js:42 +#, kde-format +msgctxt "Script command name" +msgid "Select Next Edit Point" +msgstr "Избиране на следващата точка за редактиране" + +#: script/data/commands/emmet.js:46 +#, kde-format +msgctxt "Script command name" +msgid "Select Previous Edit Point" +msgstr "Избиране на предишна точка за редактиране" + +#: script/data/commands/emmet.js:50 +#, kde-format +msgctxt "Script command name" +msgid "Delete Tag Under Cursor" +msgstr "Изтриване на етикет под курсора" + +#: script/data/commands/emmet.js:54 +#, kde-format +msgctxt "Script command name" +msgid "Split or Join a Tag" +msgstr "Разделяне или присъединяване на етикет" + +#: script/data/commands/emmet.js:58 +#, kde-format +msgctxt "Script command name" +msgid "Evaluate a Simple Math Expression" +msgstr "Изчисляване на прост математически израз" + +#: script/data/commands/emmet.js:62 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 1" +msgstr "Намаляване на числото с 1" + +#: script/data/commands/emmet.js:66 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 10" +msgstr "Намаляване на числото с 10" + +#: script/data/commands/emmet.js:70 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 0.1" +msgstr "Намаляване на числото с 0,1" + +#: script/data/commands/emmet.js:74 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 1" +msgstr "Увеличаване на числото с 1" + +#: script/data/commands/emmet.js:78 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 10" +msgstr "Увеличаване на числото с 10" + +#: script/data/commands/emmet.js:82 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 0.1" +msgstr "Увеличаване на числото с 0,1" + +#: script/data/commands/emmet.js:96 +#, kde-format +msgid "" +"Expands the abbreviation using Emmet expressions; see http://code.google.com/" +"p/zen-coding/wiki/ZenHTMLSelectorsEn" +msgstr "" +"Разширява съкращението, използвайки изразите Emmet; вижте http://code." +"google.com/p/zen-coding/wiki/ZenHTMLSelectorsEn" + +#: script/data/commands/emmet.js:97 +#, kde-format +msgid "" +"Wraps the selected text in XML tags constructed from the provided Emmet " +"expression (defaults to div)." +msgstr "" +"Пренася избрания текст в XML етикети, конструирани от предоставения Emmet " +"израз (по подразбиране div)." + +#: script/data/commands/emmet.js:98 +#, kde-format +msgid "Moves the caret to the current tag's pair" +msgstr "Премества каретката в текущата двойка етикети" + +#: script/data/commands/emmet.js:99 +#, kde-format +msgid "" +"Select contents of HTML/XML tag, moving inward on continuous invocations" +msgstr "" +"Избиране на съдържанието на HTML/XML етикети, придвижвайки се навътре при " +"непрекъснати извиквания" + +#: script/data/commands/emmet.js:100 +#, kde-format +msgid "" +"Select contents of HTML/XML tag, moving outwards on continuous invocations" +msgstr "" +"Избиране на съдържанието на HTML/XML етикети, движейки се навън при " +"непрекъснати извиквания" + +#: script/data/commands/emmet.js:101 +#, kde-format +msgid "Move to the next edit point (tag or empty attribute)." +msgstr "" +"Преминаване към следващата точка за редактиране (таг или празен атрибут)." + +#: script/data/commands/emmet.js:102 +#, kde-format +msgid "Move to the previous edit point (tag or empty attribute)." +msgstr "" +"Преминаване към предишната точка за редактиране (таг или празен атрибут)." + +#: script/data/commands/emmet.js:103 +#, kde-format +msgid "Select next edit point (tag or empty attribute)." +msgstr "Избиране на следващата точка за редактиране (таг или празен атрибут)." + +#: script/data/commands/emmet.js:104 +#, kde-format +msgid "Select previous edit point (tag or empty attribute)." +msgstr "Избиране на предишна точка за редактиране (таг или празен атрибут)." + +#: script/data/commands/emmet.js:105 +#, kde-format +msgid "Toggle comment of current tag or CSS selector" +msgstr "Превключване на коментар на текущия етикет или CSS селектор" + +#: script/data/commands/emmet.js:106 +#, kde-format +msgid "Deletes tag under cursor" +msgstr "Изтрива етикет под курсора" + +#: script/data/commands/emmet.js:107 +#, kde-format +msgid "Splits or joins a tag" +msgstr "Разделяне или присъединяване на етикет" + +#: script/data/commands/emmet.js:108 +#, kde-format +msgid "Evaluates a simple math expression" +msgstr "Изчислява прост математически израз" + +#: script/data/commands/emmet.js:109 +#, kde-format +msgid "Decrement number under cursor by 1" +msgstr "Намаляване на числото под курсора с 1" + +#: script/data/commands/emmet.js:110 +#, kde-format +msgid "Decrement number under cursor by 10" +msgstr "Намаляване на числото под курсора с 10" + +#: script/data/commands/emmet.js:111 +#, kde-format +msgid "Decrement number under cursor by 0.1" +msgstr "Намаляване на числото под курсора с 0,1" + +#: script/data/commands/emmet.js:112 +#, kde-format +msgid "Increment number under cursor by 1" +msgstr "Увеличаване на числото под курсора с 1" + +#: script/data/commands/emmet.js:113 +#, kde-format +msgid "Increment number under cursor by 10" +msgstr "Увеличаване на числото под курсора с 10" + +#: script/data/commands/emmet.js:114 +#, kde-format +msgid "Increment number under cursor by 0.1" +msgstr "Увеличаване на числото под курсора с 0,1" + +#: script/data/commands/jumpMatchingIndent.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Previous Matching Indent" +msgstr "Преместване на курсора към предишния съвпадащ отстъп" + +#: script/data/commands/jumpMatchingIndent.js:11 +#: script/data/commands/jumpMatchingIndent.js:16 +#: script/data/commands/jumpMatchingIndent.js:21 +#: script/data/commands/jumpMatchingIndent.js:26 +#: script/data/commands/navigation.js:10 script/data/commands/navigation.js:14 +#, kde-format +msgctxt "Script command category" +msgid "Navigation" +msgstr "Навигация" + +#: script/data/commands/jumpMatchingIndent.js:14 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Next Matching Indent" +msgstr "Преместване на курсора към следващия съвпадащ отстъп" + +#: script/data/commands/jumpMatchingIndent.js:19 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Next Blank Line" +msgstr "Преместване на курсора към следващия празен ред" + +#: script/data/commands/jumpMatchingIndent.js:24 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Previous Blank Line" +msgstr "Преместване на курсора към предишния празен ред" + +#: script/data/commands/jumpMatchingIndent.js:80 +#, kde-format +msgid "Move cursor to previous matching indent" +msgstr "Преместване на курсора към предишния съвпадащ на отстъп" + +#: script/data/commands/jumpMatchingIndent.js:83 +#, kde-format +msgid "Move cursor to next matching indent" +msgstr "Преместване на курсора към следващия съвпадащ отстъп" + +#: script/data/commands/jumpMatchingIndent.js:85 +#, kde-format +msgid "Move cursor to next blank line" +msgstr "Преместване на курсора към следващия празен ред" + +#: script/data/commands/jumpMatchingIndent.js:87 +#, kde-format +msgid "Move cursor to previous blank line" +msgstr "Преместване на курсора към предишния празен ред" + +#: script/data/commands/navigation.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Go to Next Paragraph" +msgstr "Отиване до следващ абзац" + +#: script/data/commands/navigation.js:13 +#, kde-format +msgctxt "Script command name" +msgid "Go to Previous Paragraph" +msgstr "Отиване до предишен абзац" + +#: script/data/commands/utils.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Remove Trailing Spaces" +msgstr "Премахване на крайните интервали" + +#: script/data/commands/utils.js:10 script/data/commands/utils.js:14 +#: script/data/commands/utils.js:18 script/data/commands/utils.js:22 +#: script/data/commands/utils.js:27 script/data/commands/utils.js:32 +#: script/data/commands/utils.js:36 script/data/commands/utils.js:40 +#: script/data/commands/utils.js:44 script/data/commands/utils.js:48 +#: script/data/commands/utils.js:52 script/data/commands/utils.js:56 +#, kde-format +msgctxt "Script command category" +msgid "Editing" +msgstr "Редактиране" + +#: script/data/commands/utils.js:13 +#, kde-format +msgctxt "Script command name" +msgid "Remove Leading Spaces" +msgstr "Премахване на интервалите в началото на реда" + +#: script/data/commands/utils.js:17 +#, kde-format +msgctxt "Script command name" +msgid "Remove Trailing and Leading Spaces" +msgstr "Премахване на интервалите в началото и края на реда:" + +#: script/data/commands/utils.js:21 +#, kde-format +msgctxt "Script command name" +msgid "Join Lines" +msgstr "Обединение на редове" + +#: script/data/commands/utils.js:25 +#, kde-format +msgctxt "Script command name" +msgid "Move Lines Down" +msgstr "Преместване на редовете надолу" + +#: script/data/commands/utils.js:30 +#, kde-format +msgctxt "Script command name" +msgid "Move Lines Up" +msgstr "Преместване на редовете нагоре" + +#: script/data/commands/utils.js:35 +#, kde-format +msgctxt "Script command name" +msgid "Duplicate Selected Lines Down" +msgstr "Дублиране на избраните редове надолу" + +#: script/data/commands/utils.js:39 +#, kde-format +msgctxt "Script command name" +msgid "Duplicate Selected Lines Up" +msgstr "Дублиране на избраните редове нагоре" + +#: script/data/commands/utils.js:43 +#, kde-format +msgctxt "Script command name" +msgid "Duplicate selected text" +msgstr "Дублиране на избрания текст" + +#: script/data/commands/utils.js:47 +#, kde-format +msgctxt "Script command name" +msgid "URI-encode Selected Text" +msgstr "URI-кодиране на избрания текст" + +#: script/data/commands/utils.js:51 +#, kde-format +msgctxt "Script command name" +msgid "URI-decode Selected Text" +msgstr "URI-декодиране на избрания текст" + +#: script/data/commands/utils.js:55 +#, kde-format +msgctxt "Script command name" +msgid "Remove Empty Lines" +msgstr "Премахване на празните редове" + +#: script/data/commands/utils.js:410 +#, kde-format +msgid "Sort the selected text or whole document." +msgstr "Сортиране на избрания текст или целия документ." + +#: script/data/commands/utils.js:412 +#, kde-format +msgid "Move selected lines down." +msgstr "Преместване на избраните редове надолу." + +#: script/data/commands/utils.js:414 +#, kde-format +msgid "Move selected lines up." +msgstr "Преместване на избраните редове нагоре." + +#: script/data/commands/utils.js:416 +#, kde-format +msgid "Remove duplicate lines from the selected text or whole document." +msgstr "" +"Премахване на дублиращите се редове от избрания текст или целия документ." + +#: script/data/commands/utils.js:418 +#, kde-format +msgid "" +"Sort the selected text or whole document in natural order.
Here is an " +"example to show the difference to the normal sort method:
sort(a10, a1, " +"a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" +msgstr "" +"Сортиране на избрания текст или целия документ в естествен ред.
" +"Например, за показване на разликата от нормалния метод на сортиране:
" +"sort (a10, a1,a2) => a1, a10, a2
natsort (a10, a1, a2) => a1, a2, a10" + +#: script/data/commands/utils.js:420 +#, kde-format +msgid "Trims trailing whitespace from selection or whole document." +msgstr "Изрязва крайните празни пространства от селекцията или целия документ." + +#: script/data/commands/utils.js:422 +#, kde-format +msgid "Trims leading whitespace from selection or whole document." +msgstr "Изрязва водещите празни пространства от селекцията или целия документ." + +#: script/data/commands/utils.js:424 +#, kde-format +msgid "Trims leading and trailing whitespace from selection or whole document." +msgstr "" +"Изрязва водещите и крайните празни пространства от селекцията или целия " +"документ." + +#: script/data/commands/utils.js:426 +#, kde-format +msgid "" +"Joins selected lines or whole document. Optionally pass a separator to put " +"between each line:
join ', ' will e.g. join lines and " +"separate them by a comma." +msgstr "" +"Обединява избрани редове или цял документ. Опционално задава сепаратор между " +"всеки ред:
join ',' напр. ще присъедини редовете и ще ги " +"отдели със запетая." + +#: script/data/commands/utils.js:428 +#, kde-format +msgid "Removes empty lines from selection or whole document." +msgstr "Премахва празни редове от селекцията или целия документ." + +#: script/data/commands/utils.js:430 +#, kde-format +msgid "" +"This command aligns lines in the selected block or whole document on the " +"column given by a regular expression given as an argument.

If you " +"give an empty pattern it will align on the first non-blank character by " +"default.
If the pattern has a capture it will indent on the captured " +"match.

Examples:
'alignon -' will insert " +"spaces before the first '-' of each lines to align them all on the same " +"column.
'alignon :\\s+(.)' will insert spaces before the " +"first non-blank character that occurs after a colon to align them all on the " +"same column." +msgstr "" +"Тази команда подравнява редовете в избрания блок или целия документ в " +"колона, зададена от регулярен израз, зададен като аргумент.

Ако " +"зададете празен шаблон, той ще се подравни с първия непразен символ по " +"подразбиране.
Ако шаблонът има съвпадение, той ще се подравнисъс " +"съвпадението.

Например:
'alignon -' ще вмъкне " +"интервали преди първото '-' на всеки ред, за да ги подравни всички на една " +"колона.
'alignon :\\s+(.)' ще вмъкне интервали преди първият " +"непразен символ, който се появява след двоеточие, за да ги подравни всички в " +"една колона." + +#: script/data/commands/utils.js:434 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and replace them with the return value of that callback." +"
Example (join selected lines):
each 'function(lines){return " +"lines.join(\", \");}'
To save you some typing, you can also do " +"this to achieve the same:
each 'lines.join(\", \")'" +msgstr "" +"Давано като аргумент на функция на JavaScript, извикайте това за списъка на " +"(избрани) редове и ги заменете с връщаната стойност на този обратен отговор." +"
Пример (присъединяване на избрани редове):
each " +"'function(lines){return lines.join(\", \");}'
За да си спестите " +"малко писане, можете за постигане на същото да въведете:
each " +"'lines.join(\", \")'" + +#: script/data/commands/utils.js:436 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and remove those where the callback returns false." +"
Example (see also rmblank):
filter 'function(l)" +"{return l.length > 0;}'
To save you some typing, you can also do " +"this to achieve the same:
filter 'line.length > 0'" +msgstr "" +"Давано като аргумент на функция на JavaScript, извикайте това за списъка " +"на(избрани) редове и премахнете тези, при които обратното повикване връща " +"false.
Пример (вижте също rmblank):
filter " +"'function(l){return l.length > 0;}'
За да си спестите малко " +"писане, можете за постигане на същото да въведете :
филтър 'line." +"length> 0'" + +#: script/data/commands/utils.js:438 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and replace the line with the return value of the callback." +"
Example (see also ltrim):
map 'function(line)" +"{return line.replace(/^\\s+/, \"\");}'
To save you some typing, " +"you can also do this to achieve the same:
map 'line.replace(/^\\s" +"+/, \"\")'" +msgstr "" +"Давано като аргумент на функция на JavaScript,, извикайте това за списъка на " +"(избрани) редове и заменете реда с връщаната стойност на обратното повикване." +"
Пример (вижте също ltrim):
map 'функция (line)" +"{return line.replace (/ ^\\ s + /,\"\");} '
За да си спестите " +"малко писане,можете за постигнете същото да въведете:
map 'line." +"replace (/ ^\\ s+ /,\"\") '" + +#: script/data/commands/utils.js:440 +#, kde-format +msgid "Duplicates the selected lines up." +msgstr "Дублира избраните редове нагоре." + +#: script/data/commands/utils.js:442 +#, kde-format +msgid "Duplicates the selected lines down." +msgstr "Дублира избраните редове надолу." + +#: script/data/commands/utils.js:446 +#, kde-format +msgid "" +"Encode special chars in a single line selection, so the result text can be " +"used as URI." +msgstr "" +"Кодиране на специални символи в селекция от един ред, за да може текстът на " +"резултата да се използва като URI." + +#: script/data/commands/utils.js:448 +#, kde-format +msgid "Reverse action of URI encode." +msgstr "Обратно действие на URI кодиране." + +#: script/data/commands/utils.js:450 +#, kde-format +msgid "" +"Select text forward from current cursor position to the first occurrence of " +"the given argument after it (or the end of the current line by default)." +msgstr "" +"Избира текст напред от текущата позиция на курсора до първата поява на " +"дадения аргумент след него (или края на текущия ред по подразбиране)." + +#: script/data/commands/utils.js:452 +#, kde-format +msgid "" +"Select text backward from current cursor position to the last occurrence of " +"the given argument before it (or the beginning of the current line by " +"default)." +msgstr "" +"Избира текст назад от текущата позиция на курсора до първата поява на " +"дадения аргумент пред него (или началото на текущия ред по подразбиране)." + +#: script/data/indentation/ada.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "ada" +msgstr "ada" + +#: script/data/indentation/cmake.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "CMake" +msgstr "CMake" + +#: script/data/indentation/cppstyle.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "C++/boost Style" +msgstr "C++/boost Style" + +#: script/data/indentation/cstyle.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "C Style" +msgstr "С стил" + +#: script/data/indentation/haskell.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Haskell" +msgstr "Haskell" + +#: script/data/indentation/julia.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Julia" +msgstr "Julia" + +#: script/data/indentation/latex.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Latex" +msgstr "Латекс" + +#: script/data/indentation/lilypond.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "LilyPond" +msgstr "LilyPond" + +#: script/data/indentation/lisp.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "LISP" +msgstr "LISP" + +#: script/data/indentation/pascal.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Pascal" +msgstr "Паскал" + +#: script/data/indentation/python.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Python" +msgstr "Python" + +#: script/data/indentation/r.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "R" +msgstr "R" + +#: script/data/indentation/replicode.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Replicode" +msgstr "Replicode" + +#: script/data/indentation/ruby.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Ruby" +msgstr "Ruby" + +#: script/data/indentation/xml.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "XML Style" +msgstr "XML стил" + +#: script/katecommandlinescript.cpp:37 +#, kde-format +msgid "Function '%1' not found in script: %2" +msgstr "Функцията „%1“ не е намерена в скрипта: %2" + +#: script/katecommandlinescript.cpp:51 +#, kde-format +msgid "Error calling %1" +msgstr "Грешка при извикване на %1" + +#: script/katecommandlinescript.cpp:68 +#, kde-format +msgid "Bad quoting in call: %1. Please escape single quotes with a backslash." +msgstr "" +"Неправилно цитиране при повикване: %1. Моля, избягайте единични кавички с " +"обратна наклонена черта." + +#: script/katecommandlinescript.cpp:76 utils/katecmds.cpp:217 +#: vimode/cmds.cpp:37 +#, kde-format +msgid "Could not access view" +msgstr "Изгледът не е достъпен." + +#: script/katecommandlinescript.cpp:118 +#, kde-format +msgid "Error calling 'help %1'" +msgstr "Грешка при извикване на \"помощ %1\"" + +#: script/katecommandlinescript.cpp:123 +#, kde-format +msgid "No help specified for command '%1' in script %2" +msgstr "Не е посочена помощ за команда „%1“ в скрипт %2" + +#: script/katescript.cpp:282 +#, kde-format +msgid "Error loading script %1: %2" +msgstr "Грешка при зареждането на скрипт %1: %2" + +#: script/katescriptmanager.cpp:319 +#, kde-format +msgid "Reload all JavaScript files (indenters, command line scripts, etc)." +msgstr "" +"Презареждане всички JavaScript файлове (индентери, скриптове от командния " +"ред и т.н.)." + +#: script/katescriptview.cpp:214 +#, kde-format +msgid "Command not found: %1" +msgstr "Командата не е намерена: %1" + +#: search/katesearchbar.cpp:73 +#, kde-format +msgid "Add..." +msgstr "Добавяне..." + +#: search/katesearchbar.cpp:298 +#, kde-format +msgctxt "short translation" +msgid "1 replacement made" +msgid_plural "%1 replacements made" +msgstr[0] "Направена е 1 замяна" +msgstr[1] "Направени са %1 замени" + +#: search/katesearchbar.cpp:300 +#, kde-format +msgctxt "short translation" +msgid "1 match found" +msgid_plural "%1 matches found" +msgstr[0] "Намерено е 1 съвпадение" +msgstr[1] "Намерени са %1 съвпадения" + +#: search/katesearchbar.cpp:374 +#, kde-format +msgid "Reached top, continued from bottom" +msgstr "Достигна се началото, продължаване от края" + +#: search/katesearchbar.cpp:376 +#, kde-format +msgid "Reached bottom, continued from top" +msgstr "Достигна се края, продължаване отначало" + +#: search/katesearchbar.cpp:381 +#, kde-format +msgid "Not found" +msgstr "Не е открито" + +#: search/katesearchbar.cpp:615 +#, kde-format +msgid "Bottom of file reached. Continue from top?" +msgstr "Достигнат е края на файла. Продължаване отначало?" + +#: search/katesearchbar.cpp:615 +#, kde-format +msgid "Top of file reached. Continue from bottom?" +msgstr "Достигнато е началото на файла. Продължаване от края?" + +#: search/katesearchbar.cpp:618 +#, kde-format +msgid "Continue search?" +msgstr "Продължаване на търсенето?" + +#: search/katesearchbar.cpp:920 +#, kde-format +msgid "SearchHighLight" +msgstr "Акцентиране на търсенето" + +#: search/katesearchbar.cpp:1136 search/katesearchbar.cpp:1755 +#, kde-format +msgid "Clear history" +msgstr "Изчистване на история" + +#: search/katesearchbar.cpp:1166 +#, kde-format +msgid "Beginning of line" +msgstr "Начало на реда" + +#: search/katesearchbar.cpp:1167 +#, kde-format +msgid "End of line" +msgstr "Край на реда" + +#: search/katesearchbar.cpp:1169 +#, kde-format +msgid "Match any character excluding new line (by default)" +msgstr "Съвпада с всеки символ, с изключение на нов ред (по подразбиране)" + +#: search/katesearchbar.cpp:1170 +#, kde-format +msgid "One or more occurrences" +msgstr "Едно или повече появявания" + +#: search/katesearchbar.cpp:1171 +#, kde-format +msgid "Zero or more occurrences" +msgstr "Нула или повече появявания" + +#: search/katesearchbar.cpp:1172 +#, kde-format +msgid "Zero or one occurrences" +msgstr "Нула или една поява" + +#: search/katesearchbar.cpp:1175 +#, kde-format +msgid " through occurrences" +msgstr " чрез появявания" + +#: search/katesearchbar.cpp:1181 +#, kde-format +msgid "Group, capturing" +msgstr "Група, прихващане" + +#: search/katesearchbar.cpp:1182 +#, kde-format +msgid "Or" +msgstr "Или" + +#: search/katesearchbar.cpp:1183 +#, kde-format +msgid "Set of characters" +msgstr "Знаци" + +#: search/katesearchbar.cpp:1184 +#, kde-format +msgid "Negative set of characters" +msgstr "Отрицателен набор от символи" + +#: search/katesearchbar.cpp:1188 +#, kde-format +msgid "Whole match reference" +msgstr "Справка за цялото съвпадение" + +#: search/katesearchbar.cpp:1199 +#, kde-format +msgid "Reference" +msgstr "Препратка" + +#: search/katesearchbar.cpp:1206 +#, kde-format +msgid "Line break" +msgstr "Нов ред" + +#: search/katesearchbar.cpp:1207 +#, kde-format +msgid "Tab" +msgstr "Табулатор" + +#: search/katesearchbar.cpp:1210 +#, kde-format +msgid "Word boundary" +msgstr "Граница на думите" + +#: search/katesearchbar.cpp:1211 +#, kde-format +msgid "Not word boundary" +msgstr "Не граница на думите" + +#: search/katesearchbar.cpp:1212 +#, kde-format +msgid "Digit" +msgstr "Цифра" + +#: search/katesearchbar.cpp:1213 +#, kde-format +msgid "Non-digit" +msgstr "Нецифрено" + +#: search/katesearchbar.cpp:1214 +#, kde-format +msgid "Whitespace (excluding line breaks)" +msgstr "Празно място (с изключение на нов ред)" + +#: search/katesearchbar.cpp:1215 +#, kde-format +msgid "Non-whitespace" +msgstr "Не-празно място" + +#: search/katesearchbar.cpp:1216 +#, kde-format +msgid "Word character (alphanumerics plus '_')" +msgstr "Словни символи (букви,цифри и '_')" + +#: search/katesearchbar.cpp:1217 +#, kde-format +msgid "Non-word character" +msgstr "Не-словни символи" + +#: search/katesearchbar.cpp:1220 +#, kde-format +msgid "Octal character 000 to 377 (2^8-1)" +msgstr "Осмичен знак от 000 до 377 (2 ^ 8-1)" + +#: search/katesearchbar.cpp:1221 +#, kde-format +msgid "Hex character 0000 to FFFF (2^16-1)" +msgstr "Шестнадесетичен знак от 0000 до FFFF (2 ^ 16-1)" + +#: search/katesearchbar.cpp:1222 +#, kde-format +msgid "Backslash" +msgstr "Обратно наклонена черта" + +#: search/katesearchbar.cpp:1226 +#, kde-format +msgid "Group, non-capturing" +msgstr "Група, без прихващане" + +#: search/katesearchbar.cpp:1227 +#, kde-format +msgid "Positive Lookahead" +msgstr "Положително търсене напред" + +#: search/katesearchbar.cpp:1228 +#, kde-format +msgid "Negative lookahead" +msgstr "Отрицателно търсене напред" + +#: search/katesearchbar.cpp:1232 +#, kde-format +msgid "Fixed-length positive lookbehind" +msgstr "Позитивно търсене назад с фиксирана дължина" + +#: search/katesearchbar.cpp:1233 +#, kde-format +msgid "Fixed-length negative lookbehind" +msgstr "Отрицателно търсене отзад с фиксирана дължина" + +#: search/katesearchbar.cpp:1238 +#, kde-format +msgid "Begin lowercase conversion" +msgstr "Започване на преобразуване към малки букви" + +#: search/katesearchbar.cpp:1239 +#, kde-format +msgid "Begin uppercase conversion" +msgstr "Започване на преобразуване към главни букви" + +#: search/katesearchbar.cpp:1240 +#, kde-format +msgid "End case conversion" +msgstr "Край на преобразуването на регистъра" + +#: search/katesearchbar.cpp:1241 +#, kde-format +msgid "Lowercase first character conversion" +msgstr "Преобразуване на първи символи в малки букви" + +#: search/katesearchbar.cpp:1242 +#, kde-format +msgid "Uppercase first character conversion" +msgstr "Преобразуване на първи символи в главни букви" + +#: search/katesearchbar.cpp:1243 +#, kde-format +msgid "Replacement counter (for Replace All)" +msgstr "Брояч на заместванията (за Заместване всички)" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: search/searchbarincremental.ui:50 +#, kde-format +msgid "F&ind:" +msgstr "&Търсене:" + +#. i18n: ectx: property (toolTip), widget (QComboBox, pattern) +#: search/searchbarincremental.ui:78 search/searchbarpower.ui:295 +#, kde-format +msgid "Text to search for" +msgstr "Търсен текст" + +#. i18n: ectx: property (toolTip), widget (QToolButton, findNext) +#. i18n: ectx: property (toolTip), widget (QToolButton, next) +#: search/searchbarincremental.ui:91 search/searchbarpower.ui:175 +#, kde-format +msgid "Jump to next match" +msgstr "Преминаване към следващото съвпадение" + +#. i18n: ectx: property (toolTip), widget (QToolButton, findPrev) +#. i18n: ectx: property (toolTip), widget (QToolButton, prev) +#: search/searchbarincremental.ui:101 search/searchbarpower.ui:185 +#, kde-format +msgid "Jump to previous match" +msgstr "Отиване до предишното съвпадение" + +#. i18n: ectx: property (toolTip), widget (QToolButton, matchCase) +#: search/searchbarincremental.ui:111 search/searchbarpower.ui:136 +#, kde-format +msgid "Match case sensitive" +msgstr "Съвпадение на малки и големи букви" + +#. i18n: ectx: property (toolTip), widget (QToolButton, mutate) +#: search/searchbarincremental.ui:146 +#, kde-format +msgid "Switch to power search and replace bar" +msgstr "Превключване към разширено търсене и лента за замяна" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: search/searchbarpower.ui:50 +#, kde-format +msgid "Fin&d:" +msgstr "&Намиране:" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: search/searchbarpower.ui:63 +#, kde-format +msgid "Rep&lace:" +msgstr "Зам&яна:" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: search/searchbarpower.ui:76 +#, kde-format +msgid "&Mode:" +msgstr "&Режим:" + +#. i18n: ectx: property (toolTip), widget (QComboBox, searchMode) +#: search/searchbarpower.ui:103 +#, kde-format +msgid "Search mode" +msgstr "Търсене" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:113 +#, kde-format +msgid "Plain text" +msgstr "Обикновен текст" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:118 +#, kde-format +msgid "Whole words" +msgstr "Цели думи" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:123 +#, kde-format +msgid "Escape sequences" +msgstr "Изходни последователности" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:128 +#, kde-format +msgid "Regular expression" +msgstr "Регулярен израз" + +#. i18n: ectx: property (toolTip), widget (QToolButton, selectionOnly) +#: search/searchbarpower.ui:149 +#, kde-format +msgid "Search in the selection only" +msgstr "Търсете само в селекцията" + +#. i18n: ectx: property (toolTip), widget (QPushButton, replaceNext) +#: search/searchbarpower.ui:195 +#, kde-format +msgid "Replace next match" +msgstr "Замяна на следващото" + +#. i18n: ectx: property (text), widget (QPushButton, replaceNext) +#. i18n: ectx: property (text), widget (QPushButton, m_replaceBtn) +#: search/searchbarpower.ui:198 spellcheck/spellcheckbar.ui:130 +#, kde-format +msgid "&Replace" +msgstr "&Замяна" + +#. i18n: ectx: property (toolTip), widget (QPushButton, replaceAll) +#: search/searchbarpower.ui:224 +#, kde-format +msgid "Replace all matches" +msgstr "Замяна на всички съвпадения" + +#. i18n: ectx: property (text), widget (QPushButton, replaceAll) +#: search/searchbarpower.ui:227 +#, kde-format +msgid "Replace &All" +msgstr "Замяна на &всички" + +#. i18n: ectx: property (text), widget (QPushButton, findAll) +#: search/searchbarpower.ui:234 +#, kde-format +msgid "&Find All" +msgstr "&Намиране на всички" + +#. i18n: ectx: property (text), widget (QPushButton, cancel) +#: search/searchbarpower.ui:257 +#, kde-format +msgid "Cancel" +msgstr "Отказ" + +#. i18n: ectx: property (toolTip), widget (QToolButton, mutate) +#: search/searchbarpower.ui:268 +#, kde-format +msgid "Switch to incremental search bar" +msgstr "Превключване към инкрементна лента за търсене" + +#. i18n: ectx: property (toolTip), widget (QComboBox, replacement) +#: search/searchbarpower.ui:314 +#, kde-format +msgid "Text to replace with" +msgstr "Текст, с който да се замени" + +#: spellcheck/spellcheckbar.cpp:148 +#, kde-format +msgid "Spell check canceled." +msgstr "Проверката на правописа е анулирана." + +#: spellcheck/spellcheckbar.cpp:245 +#, kde-format +msgctxt "@info:progress" +msgid "Spell checking in progress…" +msgstr "Извършва се проверка на правописа…" + +#: spellcheck/spellcheckbar.cpp:246 spellcheck/spellcheckbar.cpp:435 +#, kde-format +msgctxt "@title:window" +msgid "Check Spelling" +msgstr "Проверка на правописа" + +#: spellcheck/spellcheckbar.cpp:432 spellcheck/spellcheckbar.cpp:435 +#, kde-format +msgid "Spell check complete." +msgstr "Проверката на правописа е завършена." + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel2) +#. i18n: ectx: property (whatsThis), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:30 spellcheck/spellcheckbar.ui:46 +#, kde-format +msgid "" +"

This word was considered to be an \"unknown word\" because it does " +"not match any entry in the dictionary currently in use. It may also be a " +"word in a foreign language.

\n" +"

If the word is not misspelled, you may add it to the dictionary by " +"clicking Add to Dictionary. If you do not want to add the unknown " +"word to the dictionary, but you want to leave it unchanged, click Ignore or Ignore All.

\n" +"

However, if the word is misspelled, you can try to find the correct " +"replacement in the list below. If you cannot find a replacement there, you " +"may type it in the text box below, and click Replace or Replace " +"All.

\n" +"
" +msgstr "" +"

Тази дума се счита за\"неизвестна дума\", тъй като не отговаря на " +"нито един запис в речника, който се използва в момента. Може да е и дума на " +"чужд език.

\n" +"

Ако думата не е грешно написана, можете да я добавите към речника чрез " +"щракване върху Добавяне към речник. Ако не искате да добавите " +"неизвестната дума към речника, но искате да я оставите непроменена, щракнете " +"върху Игнориране или Игнориране на всички.

\n" +"

Ако обаче думата е грешно написана, можете да опитате да намерите " +"правилната замяна в списъка по-долу. Ако не можете да намерите заместител " +"там, може да го напишете в текстовото поле по-долу и щракнете върху " +"Заместване или Заместване Всички.

\n" +"
" + +#. i18n: ectx: property (text), widget (QLabel, textLabel2) +#: spellcheck/spellcheckbar.ui:33 +#, kde-format +msgid "Unknown word:" +msgstr "Неизвестна дума:" + +#. i18n: ectx: property (toolTip), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:40 +#, kde-format +msgid "Unknown word" +msgstr "Неизвестна дума" + +#. i18n: ectx: property (text), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:49 +#, kde-format +msgid "misspelled" +msgstr "с правописна грешка" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_addBtn) +#: spellcheck/spellcheckbar.ui:72 +#, kde-format +msgid "" +"\n" +"

The unknown word was detected and considered unknown because it is not " +"included in the dictionary.
\n" +"Click here if you consider the unknown word not to be misspelled, and you " +"want to avoid wrongly detecting it again in the future. If you want to let " +"it remain as is, but not add it to the dictionary, then click Ignore " +"or Ignore All instead.

\n" +"
" +msgstr "" +"\n" +"

Непознатата дума е открита и се смята за непозната, защото не е включена " +"в речника.
\n" +"Щракнете тук, ако смятате, че неизвестната дума не е грешно написана и " +"искате да избегнете погрешно откриване в бъдеще. Ако искате да я оставите " +"без промяна, но да не го добавяте към речника, тогава щракнете върху " +"Игнориранеили Игнориране всички.

" + +#. i18n: ectx: property (text), widget (QPushButton, m_addBtn) +#: spellcheck/spellcheckbar.ui:75 +#, kde-format +msgid "<< Add to Dictionary" +msgstr "<< Добавяне към речника" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel4) +#: spellcheck/spellcheckbar.ui:89 +#, kde-format +msgid "" +"\n" +"

If the unknown word is misspelled, you should type the correction for " +"your misspelled word here or select it from the list below.

\n" +"

You can then click Replace if you want to correct only this " +"occurrence of the word or Replace All if you want to correct all " +"occurrences.

\n" +"
" +msgstr "" +"\n" +"

Ако непознатата дума е грешно написана, трябва да напишете коректната " +"дума или да намерите правилната замяна в списъка по-долу.

\n" +"

Тогава изберете Заместване или Заместване всички, ако " +"искате да коригирате всички повторения.

\n" +"
" + +#. i18n: ectx: property (text), widget (QLabel, textLabel4) +#: spellcheck/spellcheckbar.ui:92 +#, kde-format +msgid "Replace with:" +msgstr "Заместване с:" + +#. i18n: ectx: property (text), widget (QPushButton, m_suggestBtn) +#: spellcheck/spellcheckbar.ui:118 +#, kde-format +msgid "S&uggest" +msgstr "&Предложения" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_replaceBtn) +#: spellcheck/spellcheckbar.ui:127 +#, kde-format +msgid "" +"\n" +"

Click here to replace this occurrence of the unknown text with the text " +"in the edit box above (to the left).

\n" +"
" +msgstr "" +"\n" +"

Щракнете тук, за да замените появата на неизвестния текст с текста в " +"полето за редактиране по-горе (вляво).

\n" +"
" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_skipBtn) +#: spellcheck/spellcheckbar.ui:140 +#, kde-format +msgid "" +"\n" +"

Click here to let this occurrence of the unknown word remain as is.

\n" +"

This action is useful when the word is a name, an acronym, a foreign word " +"or any other unknown word that you want to use but not add to the dictionary." +"

\n" +"
" +msgstr "" +"\n" +"

Щракнете тук, за да оставите тази поява на неизвестната дума такава, " +"каквато е.

\n" +"

Това действие е полезно, когато думата е име, съкращение, чужда дума или " +"друга неизвестна дума, която искате да използвате, но не и да добавите към " +"речника.

\n" +"
" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel5) +#. i18n: ectx: property (whatsThis), widget (Sonnet::DictionaryComboBox, m_language) +#: spellcheck/spellcheckbar.ui:156 spellcheck/spellcheckbar.ui:174 +#, kde-format +msgid "" +"\n" +"

Select the language of the document you are proofing here.

\n" +"
" +msgstr "" +"\n" +"

Изберете езика на документа, който проверявате тук.

\n" +"
" + +#. i18n: ectx: property (text), widget (QLabel, textLabel5) +#: spellcheck/spellcheckbar.ui:159 +#, kde-format +msgid "&Language:" +msgstr "&Език:" + +#. i18n: ectx: property (toolTip), widget (Sonnet::DictionaryComboBox, m_language) +#: spellcheck/spellcheckbar.ui:169 +#, kde-format +msgid "Language Selection" +msgstr "Избор на език" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_autoCorrect) +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_skipAllBtn) +#: spellcheck/spellcheckbar.ui:197 spellcheck/spellcheckbar.ui:222 +#, kde-format +msgid "" +"\n" +"

Click here to let all occurrences of the unknown word remain as they are." +"

\n" +"

This action is useful when the word is a name, an acronym, a foreign word " +"or any other unknown word that you want to use but not add to the dictionary." +"

\n" +"
" +msgstr "" +"\n" +"

Щракнете тук, за да оставите всички появявания на неизвестната дума да " +"останат такива, каквито са.

\n" +"

Това действие е полезно, когато думата е име, съкращение, чужда дума или " +"друга неизвестна дума, която искате да използвате, но не и да добавите към " +"речника.

\n" +"
" + +#. i18n: ectx: property (text), widget (QPushButton, m_autoCorrect) +#: spellcheck/spellcheckbar.ui:200 +#, kde-format +msgid "Autocorrect" +msgstr "Автоматична корекция" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_replaceAllBtn) +#: spellcheck/spellcheckbar.ui:209 +#, kde-format +msgid "" +"\n" +"

Click here to replace all occurrences of the unknown text with the text " +"in the edit box above (to the left).

\n" +"
" +msgstr "" +"\n" +"

Щракнете тук, за да замените всички случаи на неизвестния текст с текста " +"в полето за редактиране по-горе (вляво).

\n" +"
" + +#. i18n: ectx: property (text), widget (QPushButton, m_replaceAllBtn) +#: spellcheck/spellcheckbar.ui:212 +#, kde-format +msgid "R&eplace All" +msgstr "Заместване &всички" + +#. i18n: ectx: property (text), widget (QPushButton, m_skipAllBtn) +#: spellcheck/spellcheckbar.ui:225 +#, kde-format +msgid "I&gnore All" +msgstr "И&гнориране всички" + +#: spellcheck/spellcheckdialog.cpp:51 +#, kde-format +msgctxt "@action" +msgid "Spelling (from Cursor)…" +msgstr "Проверка на правописа (от курсора)…" + +#: spellcheck/spellcheckdialog.cpp:54 +#, kde-format +msgid "Check the document's spelling from the cursor and forward" +msgstr "Проверка на правописа на документа от курсора до началото а документа" + +#: spellcheck/spellingmenu.cpp:76 +#, kde-format +msgid "Ignore Word" +msgstr "Игнориране на дума" + +#: spellcheck/spellingmenu.cpp:79 +#, kde-format +msgid "Add to Dictionary" +msgstr "Добавяне към речника" + +#: spellcheck/spellingmenu.cpp:172 +#, kde-format +msgid "Spelling '%1'" +msgstr "Проверка на правопис „%1“" + +#: swapfile/kateswapdiffcreator.cpp:87 +#, kde-format +msgid "" +"The diff command could not be found. Please make sure that diff(1) is " +"installed and in your PATH." +msgstr "" +"Командата diff не може да бъде намерена. Моля, уверете се, че diff (1) е " +"инсталиран и е във вашия ПЪТ." + +#: swapfile/kateswapdiffcreator.cpp:98 +#, kde-format +msgid "The diff command '%1' could not be started." +msgstr "Командата „%1“ на diff не може да бъде стартирана." + +#: swapfile/kateswapfile.cpp:642 +#, kde-format +msgid "The file was not closed properly." +msgstr "Файлът не беше затворен правилно." + +#: swapfile/kateswapfile.cpp:645 +#, kde-format +msgid "View Changes" +msgstr "Преглед на промените" + +#: swapfile/kateswapfile.cpp:646 +#, kde-format +msgid "Recover Data" +msgstr "Възстановяване на данни" + +#: swapfile/kateswapfile.cpp:647 +#, kde-format +msgid "Discard" +msgstr "Отхвърляне" + +#: syntax/katecolortreewidget.cpp:34 syntax/katecolortreewidget.cpp:61 +#, kde-format +msgid "Use default color from the color theme" +msgstr "Използване на цвета по подразбиране от цветовата тема" + +#: syntax/katehighlightmenu.cpp:39 +#, kde-format +msgid "None" +msgstr "Без" + +#: syntax/katestyletreewidget.cpp:135 +#, kde-format +msgctxt "@title:column Meaning of text in editor" +msgid "Context" +msgstr "Контекст" + +#: syntax/katestyletreewidget.cpp:136 +#, kde-format +msgctxt "@title:column Text style" +msgid "Normal" +msgstr "Обикновен" + +#: syntax/katestyletreewidget.cpp:136 +#, kde-format +msgctxt "@title:column Text style" +msgid "Selected" +msgstr "Маркирано" + +#: syntax/katestyletreewidget.cpp:136 +#, kde-format +msgctxt "@title:column Text style" +msgid "Background" +msgstr "Фон" + +#: syntax/katestyletreewidget.cpp:137 +#, kde-format +msgctxt "@title:column Text style" +msgid "Background Selected" +msgstr "Фон на маркировката" + +#: syntax/katestyletreewidget.cpp:139 +#, kde-format +msgid "Use Default Style" +msgstr "Използване на стандартен стил" + +#: syntax/katestyletreewidget.cpp:238 +#, kde-format +msgid "&Bold" +msgstr "&Получер" + +#: syntax/katestyletreewidget.cpp:243 +#, kde-format +msgid "&Italic" +msgstr "К&урсив" + +#: syntax/katestyletreewidget.cpp:248 +#, kde-format +msgid "&Underline" +msgstr "По&дчертан" + +#: syntax/katestyletreewidget.cpp:253 +#, kde-format +msgid "S&trikeout" +msgstr "&Зачертан" + +#: syntax/katestyletreewidget.cpp:260 +#, kde-format +msgctxt "@action:inmenu" +msgid "Normal &Color…" +msgstr "Нормален &цвят…" + +#: syntax/katestyletreewidget.cpp:263 +#, kde-format +msgctxt "@action:inmenu" +msgid "&Selected Color…" +msgstr "&Цвят на селекцията…" + +#: syntax/katestyletreewidget.cpp:266 +#, kde-format +msgctxt "@action:inmenu" +msgid "&Background Color…" +msgstr "Цвят на &фона…" + +#: syntax/katestyletreewidget.cpp:269 +#, kde-format +msgctxt "@action:inmenu" +msgid "S&elected Background Color…" +msgstr "Цвят на фо&на на селекцията…" + +#: syntax/katestyletreewidget.cpp:275 +#, kde-format +msgid "Unset Normal Color" +msgstr "Отмяна на цвят на нормален текст" + +#: syntax/katestyletreewidget.cpp:278 +#, kde-format +msgid "Unset Selected Color" +msgstr "Отмяна на цвят на избран текст" + +#: syntax/katestyletreewidget.cpp:284 +#, kde-format +msgid "Unset Background Color" +msgstr "Неустановен цвят на фона" + +#: syntax/katestyletreewidget.cpp:289 +#, kde-format +msgid "Unset Selected Background Color" +msgstr "Неустановен цвят на фона на маркираното" + +#: syntax/katestyletreewidget.cpp:295 +#, kde-format +msgid "Use &Default Style" +msgstr "&Използване на стандартен стил" + +#: syntax/katestyletreewidget.cpp:408 +#, kde-format +msgctxt "No text or background color set" +msgid "None set" +msgstr "Няма зададен" + +#: syntax/katestyletreewidget.cpp:642 +#, kde-format +msgid "" +"\"Use Default Style\" will be automatically unset when you change any style " +"properties." +msgstr "" +"Стандартния стил ще бъде автоматично изключен, ако промените настройките на " +"някой стил." + +#: syntax/katestyletreewidget.cpp:643 +#, kde-format +msgid "Kate Styles" +msgstr "Стилове" + +#: syntax/katethemeconfig.cpp:47 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Normal" +msgstr "Нормално" + +#: syntax/katethemeconfig.cpp:49 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Keyword" +msgstr "Ключова дума" + +#: syntax/katethemeconfig.cpp:51 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Function" +msgstr "Функция" + +#: syntax/katethemeconfig.cpp:53 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Variable" +msgstr "Променлива" + +#: syntax/katethemeconfig.cpp:55 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Control Flow" +msgstr "Контролен поток" + +#: syntax/katethemeconfig.cpp:57 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Operator" +msgstr "Оператор" + +#: syntax/katethemeconfig.cpp:59 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Built-in" +msgstr "Вграден" + +#: syntax/katethemeconfig.cpp:61 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Extension" +msgstr "Разширение" + +#: syntax/katethemeconfig.cpp:63 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Preprocessor" +msgstr "Предпроцесор" + +#: syntax/katethemeconfig.cpp:65 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Attribute" +msgstr "Атрибут" + +#: syntax/katethemeconfig.cpp:68 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Character" +msgstr "Символ" + +#: syntax/katethemeconfig.cpp:70 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Special Character" +msgstr "Специален символ" + +#: syntax/katethemeconfig.cpp:72 +#, kde-format +msgctxt "@item:intable Text context" +msgid "String" +msgstr "Низ" + +#: syntax/katethemeconfig.cpp:74 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Verbatim String" +msgstr "Дословен низ" + +#: syntax/katethemeconfig.cpp:76 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Special String" +msgstr "Специален низ" + +#: syntax/katethemeconfig.cpp:78 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Imports, Modules, Includes" +msgstr "Imports, Modules, Includes" + +#: syntax/katethemeconfig.cpp:81 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Data Type" +msgstr "Вид данни" + +#: syntax/katethemeconfig.cpp:83 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Decimal/Value" +msgstr "Десетична/Стойност" + +#: syntax/katethemeconfig.cpp:85 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Base-N Integer" +msgstr "Base-N Integer" + +#: syntax/katethemeconfig.cpp:87 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Floating Point" +msgstr "Плаваща запетая" + +#: syntax/katethemeconfig.cpp:89 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Constant" +msgstr "Константа" + +#: syntax/katethemeconfig.cpp:92 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Comment" +msgstr "Коментар" + +#: syntax/katethemeconfig.cpp:94 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Documentation" +msgstr "Документация" + +#: syntax/katethemeconfig.cpp:96 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Annotation" +msgstr "Анотация" + +#: syntax/katethemeconfig.cpp:98 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Comment Variable" +msgstr "Променлива на коментара" + +#: syntax/katethemeconfig.cpp:101 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Region Marker" +msgstr "Маркер за регион" + +#: syntax/katethemeconfig.cpp:103 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Information" +msgstr "Информация" + +#: syntax/katethemeconfig.cpp:105 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Warning" +msgstr "Внимание" + +#: syntax/katethemeconfig.cpp:107 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Alert" +msgstr "Внимание" + +#: syntax/katethemeconfig.cpp:110 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Others" +msgstr "Други" + +#: syntax/katethemeconfig.cpp:113 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Error" +msgstr "Грешка" + +#: syntax/katethemeconfig.cpp:162 +#, kde-format +msgid "Use Default Colors" +msgstr "Използване на цветове по подразбиране" + +#: syntax/katethemeconfig.cpp:182 +#, kde-format +msgid "Editor Background Colors" +msgstr "Цветове на фона на редактора" + +#: syntax/katethemeconfig.cpp:184 +#, kde-format +msgid "Text Area" +msgstr "Област за текст" + +#: syntax/katethemeconfig.cpp:186 +#, kde-format +msgid "

Sets the background color of the editing area.

" +msgstr "

Фон на областта за редактиране на текста.

" + +#: syntax/katethemeconfig.cpp:191 +#, kde-format +msgid "Selected Text" +msgstr "Избран текст" + +#: syntax/katethemeconfig.cpp:194 +#, kde-format +msgid "" +"

Sets the background color of the selection.

To set the text color " +"for selected text, use the "Configure Highlighting" dialog." +"

" +msgstr "" +"

Задава фона на селекцията.

За задаване на цвета на текста в " +"селекцията, използвайте диалога "Настройки на акцентиране"." +"

" + +#: syntax/katethemeconfig.cpp:200 +#, kde-format +msgid "Current Line" +msgstr "Текущ ред" + +#: syntax/katethemeconfig.cpp:202 +#, kde-format +msgid "" +"

Sets the background color of the currently active line, which means the " +"line where your cursor is positioned.

" +msgstr "" +"

Фон на текущ ред. Текущ ред е този, на който се намира курсора за " +"въвеждане на текст, а не на мишката.

" + +#: syntax/katethemeconfig.cpp:207 +#, kde-format +msgid "Search Highlight" +msgstr "Акцентиране на търсене" + +#: syntax/katethemeconfig.cpp:209 +#, kde-format +msgid "

Sets the background color of search results.

" +msgstr "

Задава цвета на фона на резултатите от търсенето.

" + +#: syntax/katethemeconfig.cpp:214 +#, kde-format +msgid "Replace Highlight" +msgstr "Заместване на осветените" + +#: syntax/katethemeconfig.cpp:216 +#, kde-format +msgid "

Sets the background color of replaced text.

" +msgstr "

Задава цвета на фона на заменения текст.

" + +#: syntax/katethemeconfig.cpp:223 +#, kde-format +msgid "Icon Border" +msgstr "Граница на икони" + +#: syntax/katethemeconfig.cpp:226 +#, kde-format +msgid "Background Area" +msgstr "Фонова област" + +#: syntax/katethemeconfig.cpp:228 +#, kde-format +msgid "

Sets the background color of the icon border.

" +msgstr "

Задава цвета на фона на границата на иконата.

" + +#: syntax/katethemeconfig.cpp:233 view/screenshotdialog.cpp:265 +#, kde-format +msgid "Line Numbers" +msgstr "Номериране на редове" + +#: syntax/katethemeconfig.cpp:235 +#, kde-format +msgid "

This color will be used to draw the line numbers (if enabled).

" +msgstr "" +"

Този цвят ще се използва за номерата на редовете (ако е активиран).

" + +#: syntax/katethemeconfig.cpp:240 +#, kde-format +msgid "Current Line Number" +msgstr "Номер на текущия ред" + +#: syntax/katethemeconfig.cpp:242 +#, kde-format +msgid "" +"

This color will be used to draw the number of the current line (if " +"enabled).

" +msgstr "" +"

Този цвят ще се използва за номера на текущия ред (ако е активирано).

" + +#: syntax/katethemeconfig.cpp:247 +#, kde-format +msgid "Separator" +msgstr "Разделител" + +#: syntax/katethemeconfig.cpp:249 +#, kde-format +msgid "" +"

This color will be used to draw the line between line numbers and the " +"icon borders, if both are enabled.

" +msgstr "" +"

Този цвят ще се използва за линията между номерата на редовете и " +"границите на икони, ако и двете са активирани.

" + +#: syntax/katethemeconfig.cpp:254 +#, kde-format +msgid "Word Wrap Marker" +msgstr "Маркер за пренасяне" + +#: syntax/katethemeconfig.cpp:257 +#, kde-format +msgid "" +"

Sets the color of Word Wrap-related markers:

Static Word Wrap
A vertical line which shows the column where text is going to be " +"wrapped
Dynamic Word Wrap
An arrow shown to the left of " +"visually-wrapped lines
" +msgstr "" +"

Цвят на маркерите за пренос на думи:

Статичен пренос на думи
Вертикална линя, която показва колоната, където ще се извършва " +"преноса на текста.
Динамичен пренос на думи
Стрелка в края " +"на реда, ако е има пренос на текст.
" + +#: syntax/katethemeconfig.cpp:264 +#, kde-format +msgid "Code Folding" +msgstr "Свиване на код" + +#: syntax/katethemeconfig.cpp:266 +#, kde-format +msgid "

Sets the color of the code folding bar.

" +msgstr "

Задава цвета на лентата за свиване на кода.

" + +#: syntax/katethemeconfig.cpp:271 +#, kde-format +msgid "Modified Lines" +msgstr "Модифицирани линии" + +#: syntax/katethemeconfig.cpp:273 +#, kde-format +msgid "" +"

Sets the color of the line modification marker for modified lines.

" +msgstr "

Задава цвета на маркера за модификация за променените редове.

" + +#: syntax/katethemeconfig.cpp:278 +#, kde-format +msgid "Saved Lines" +msgstr "Запазени редове" + +#: syntax/katethemeconfig.cpp:280 +#, kde-format +msgid "

Sets the color of the line modification marker for saved lines.

" +msgstr "" +"

Задава цвета на маркера за модификация на редове за запазени редове.

" + +#: syntax/katethemeconfig.cpp:287 +#, kde-format +msgid "Text Decorations" +msgstr "Текстови декорации" + +#: syntax/katethemeconfig.cpp:290 +#, kde-format +msgid "Spelling Mistake Line" +msgstr "Правописна грешка" + +#: syntax/katethemeconfig.cpp:292 +#, kde-format +msgid "" +"

Sets the color of the line that is used to indicate spelling mistakes.

" +msgstr "" +"

Задава цвета на реда, който се използва за обозначаване на правописни " +"грешки.

" + +#: syntax/katethemeconfig.cpp:297 +#, kde-format +msgid "Tab and Space Markers" +msgstr "Маркери за табулатори и интервали" + +#: syntax/katethemeconfig.cpp:299 +#, kde-format +msgid "

Sets the color of the tabulator marks.

" +msgstr "

Цвят на табулациите.

" + +#: syntax/katethemeconfig.cpp:304 +#, kde-format +msgid "Indentation Line" +msgstr "Отстъп на ред" + +#: syntax/katethemeconfig.cpp:306 +#, kde-format +msgid "

Sets the color of the vertical indentation lines.

" +msgstr "

Задава цвета на вертикалните линии на отстъп.

" + +#: syntax/katethemeconfig.cpp:311 +#, kde-format +msgid "Bracket Highlight" +msgstr "Акцентиране на скобите" + +#: syntax/katethemeconfig.cpp:314 +#, kde-format +msgid "" +"

Sets the bracket matching color. This means, if you place the cursor e.g. " +"at a (, the matching ) will be highlighted with this color.

" +msgstr "" +"

Цвят за открояване на съвпадащи скоби. Това означава, че ако " +"позиционирате курсора на отваряща скоба (, съвпадащата затваряща " +"скоба ) ще бъде подчертана с този цвят.

" + +#: syntax/katethemeconfig.cpp:322 +#, kde-format +msgid "Marker Colors" +msgstr "Цветове на маркери" + +#: syntax/katethemeconfig.cpp:324 view/kateviewhelpers.cpp:1536 +#, kde-format +msgid "Bookmark" +msgstr "Отметка" + +#: syntax/katethemeconfig.cpp:325 +#, kde-format +msgid "Active Breakpoint" +msgstr "Активна точка на прекъсване" + +#: syntax/katethemeconfig.cpp:326 +#, kde-format +msgid "Reached Breakpoint" +msgstr "Достъпна точка на прекъсване" + +#: syntax/katethemeconfig.cpp:327 +#, kde-format +msgid "Disabled Breakpoint" +msgstr "Изключена точка на прекъсване" + +#: syntax/katethemeconfig.cpp:328 +#, kde-format +msgid "Execution" +msgstr "Изпълнение" + +#: syntax/katethemeconfig.cpp:329 +#, kde-format +msgid "Warning" +msgstr "Предупреждение" + +#: syntax/katethemeconfig.cpp:330 +#, kde-format +msgid "Error" +msgstr "Грешка" + +#: syntax/katethemeconfig.cpp:332 +#, kde-format +msgid "" +"

Sets the background color of mark type.

Note: The marker " +"color is displayed lightly because of transparency.

" +msgstr "" +"

Задава цвета на фона на маркера.

Забележка: Цветът на " +"маркера се показва светъл поради прозрачност.

" + +#: syntax/katethemeconfig.cpp:344 +#, kde-format +msgid "Text Templates & Snippets" +msgstr "Текстови шаблони и фрагменти" + +#: syntax/katethemeconfig.cpp:349 +#, kde-format +msgid "Background" +msgstr "Фон" + +#: syntax/katethemeconfig.cpp:355 +#, kde-format +msgid "Editable Placeholder" +msgstr "Редактируем заместител" + +#: syntax/katethemeconfig.cpp:361 +#, kde-format +msgid "Focused Editable Placeholder" +msgstr "Фокусиран редактируем заместител" + +#: syntax/katethemeconfig.cpp:367 +#, kde-format +msgid "Not Editable Placeholder" +msgstr "Не-редактируем заместител" + +#: syntax/katethemeconfig.cpp:501 +#, kde-format +msgid "" +"

This list displays the default styles for the current color theme and " +"offers the means to edit them. The style name reflects the current style " +"settings.

To edit the colors, click the colored squares, or select the " +"color to edit from the popup menu.

You can unset the Background and " +"Selected Background colors from the popup menu when appropriate.

" +msgstr "" +"

Този списък показва стиловете по подразбиране за текущата цветова тема и " +"предлага средствата за редактирането им. Името на стила отразява текущия " +"стил настройки.

За да редактирате цветовете, щракнете върху цветните " +"квадрати или изберете цвят за редактиране от изскачащото меню.

Можете " +"да деактивирате фона и избрани цветове на фона от изскачащото меню, когато е " +"необходимо.

" + +#: syntax/katethemeconfig.cpp:568 +#, kde-format +msgctxt "@item:intable" +msgid "Normal Text & Source Code" +msgstr "Нормален текст и изходен код" + +#: syntax/katethemeconfig.cpp:575 +#, kde-format +msgctxt "@item:intable" +msgid "Numbers, Types & Constants" +msgstr "Числа, типове и константи" + +#: syntax/katethemeconfig.cpp:582 +#, kde-format +msgctxt "@item:intable" +msgid "Strings & Characters" +msgstr "Низове и символи" + +#: syntax/katethemeconfig.cpp:589 +#, kde-format +msgctxt "@item:intable" +msgid "Comments & Documentation" +msgstr "Коментари и документация" + +#: syntax/katethemeconfig.cpp:596 +#, kde-format +msgctxt "@item:intable" +msgid "Miscellaneous" +msgstr "Разни" + +#: syntax/katethemeconfig.cpp:704 +#, kde-format +msgid "H&ighlight:" +msgstr "Откро&яване:" + +#: syntax/katethemeconfig.cpp:746 +#, kde-format +msgid "" +"

This list displays the contexts of the current syntax highlight mode and " +"offers the means to edit them. The context name reflects the current style " +"settings.

To edit using the keyboard, press <SPACE> and choose a property from the popup menu.

To edit the colors, " +"click the colored squares, or select the color to edit from the popup menu.

You can unset the Background and Selected Background colors from the " +"context menu when appropriate.

" +msgstr "" +"

Този списък показва контекста на текущия режим на подчертаване на " +"синтаксиса и предлага средствата за редактирането им. Името на контекста " +"отразява текущия стил настройки.

За да редактирате с помощта на " +"клавиатурата, натиснете <ИНТЕРВАЛ> и изберете " +"свойство от изскачащото меню.

За да редактирате цветовете,щракнете " +"върху цветните квадратчета или изберете цвета за редактиране от изскачащото " +"меню.

Можете да деактивирате цветовете на фона и избраните фонове от " +"контекстното меню, когато е необходимо.

" + +#: syntax/katethemeconfig.cpp:1027 +#, kde-format +msgid "Default Theme" +msgstr "Тема по подразбиране" + +#: syntax/katethemeconfig.cpp:1028 +#, kde-format +msgid "Theme Editor" +msgstr "Редактор на тема" + +#: syntax/katethemeconfig.cpp:1046 +#, kde-format +msgid "Select theme:" +msgstr "Избиране на тема:" + +#: syntax/katethemeconfig.cpp:1119 +#, kde-format +msgid "&Theme:" +msgstr "&Тема:" + +#: syntax/katethemeconfig.cpp:1128 +#, kde-format +msgctxt "@action:button" +msgid "&Copy…" +msgstr "&Копиране…" + +#: syntax/katethemeconfig.cpp:1136 +#, kde-format +msgctxt "@action:button" +msgid "Export…" +msgstr "Експортиране…" + +#: syntax/katethemeconfig.cpp:1140 +#, kde-format +msgctxt "@action:button" +msgid "Import…" +msgstr "Импортиране…" + +#: syntax/katethemeconfig.cpp:1147 +#, kde-format +msgid "Bundled read-only theme. To modify the theme, please copy it." +msgstr "" +"Свързана тема за само за четене. За да промените темата, моля, копирайте я." + +#: syntax/katethemeconfig.cpp:1160 +#, kde-format +msgid "Colors" +msgstr "Цветове" + +#: syntax/katethemeconfig.cpp:1164 +#, kde-format +msgid "Default Text Styles" +msgstr "Текстови стилове по подразбиране" + +#: syntax/katethemeconfig.cpp:1168 +#, kde-format +msgid "Highlighting Text Styles" +msgstr "Открояване" + +#: syntax/katethemeconfig.cpp:1180 +#, kde-format +msgid "Exporting color theme: %1" +msgstr "Експортиране на цветна тема: %1" + +#: syntax/katethemeconfig.cpp:1182 syntax/katethemeconfig.cpp:1203 +#, kde-format +msgid "Color theme" +msgstr "Цветна тема" + +#: syntax/katethemeconfig.cpp:1203 +#, kde-format +msgid "Importing Color Theme" +msgstr "Импортиране на цветна тема" + +#: syntax/katethemeconfig.cpp:1217 +#, kde-format +msgid "" +"Importing will overwrite the existing theme file \"%1\". This can not be " +"undone." +msgstr "" +"Импортирането ще замени съществуващия файл с тема„%1“. Това не може да бъде " +"отменено." + +#: syntax/katethemeconfig.cpp:1219 +#, kde-format +msgid "Import Nevertheless" +msgstr "Импортиране въпреки това" + +#: syntax/katethemeconfig.cpp:1308 +#, kde-format +msgid "Follow System Color Scheme" +msgstr "Спазване на системната цветова схема" + +#: syntax/katethemeconfig.cpp:1375 +#, kde-format +msgid "Do you really want to delete the theme \"%1\"? This can not be undone." +msgstr "" +"Наистина ли искате да изтриете темата„%1“? Това не може да бъде отменено." + +#: syntax/katethemeconfig.cpp:1377 +#, kde-format +msgid "Delete Nevertheless" +msgstr "Изтриване въпреки това" + +#: syntax/katethemeconfig.cpp:1419 +#, kde-format +msgid "Copy theme" +msgstr "Копиране на тема" + +#: syntax/katethemeconfig.cpp:1420 +#, kde-format +msgid "Name for copy of color theme \"%1\":" +msgstr "Име за копие на цветна тема„%1“:" + +#: syntax/katethemeconfig.cpp:1432 +#, kde-format +msgid "" +"

The theme \"%1\" already exists.

Please choose a different theme " +"name.

" +msgstr "" +"

Темата„%1“вече съществува.

Моля, изберете друго име на тема.

" + +#: syntax/katethemeconfig.cpp:1433 +#, kde-format +msgid "Copy Theme" +msgstr "Копиране на тема" + +#: syntax/katethemeconfig.cpp:1486 syntax/katethemeconfig.cpp:1491 +#, kde-format +msgid "Color Themes" +msgstr "Цветни теми" + +#: utils/kateautoindent.cpp:88 +#, kde-format +msgctxt "Autoindent mode" +msgid "None" +msgstr "Без" + +#: utils/kateautoindent.cpp:92 +#, kde-format +msgctxt "Autoindent mode" +msgid "Normal" +msgstr "Обикновен" + +#: utils/katebookmarks.cpp:49 +#, kde-format +msgid "Toggle &Bookmark" +msgstr "&Превключване на отметките" + +#: utils/katebookmarks.cpp:53 +#, kde-format +msgid "If a line has no bookmark then add one, otherwise remove it." +msgstr "" +"Ако текущия ред няма отметка, се добавя нова отметка, иначе се изтрива " +"съществуващата отметка." + +#: utils/katebookmarks.cpp:56 +#, kde-format +msgid "Clear &All Bookmarks" +msgstr "И&зтриване на всички отметки" + +#: utils/katebookmarks.cpp:59 +#, kde-format +msgid "Remove all bookmarks of the current document." +msgstr "Изтриване на всички отметки в текущият документ." + +#: utils/katebookmarks.cpp:62 utils/katebookmarks.cpp:219 +#, kde-format +msgid "Next Bookmark" +msgstr "Следваща отметка" + +#: utils/katebookmarks.cpp:66 +#, kde-format +msgid "Go to the next bookmark." +msgstr "Отиване до най-близката следваща отметка." + +#: utils/katebookmarks.cpp:69 utils/katebookmarks.cpp:220 +#, kde-format +msgid "Previous Bookmark" +msgstr "Предишна отметка" + +#: utils/katebookmarks.cpp:73 +#, kde-format +msgid "Go to the previous bookmark." +msgstr "Отиване до най-близката предишна отметка." + +#: utils/katebookmarks.cpp:76 +#, kde-format +msgid "&Bookmarks" +msgstr "&Отметки" + +#: utils/katebookmarks.cpp:192 +#, kde-format +msgid "&Next: %1 - \"%2\"" +msgstr "Следва&ща: %1 - „%2“" + +#: utils/katebookmarks.cpp:198 +#, kde-format +msgid "&Previous: %1 - \"%2\"" +msgstr "Преди&шна: %1 - „%2“" + +#: utils/katecmds.cpp:53 +#, kde-format +msgid "

indent

Indents the selected lines or the current line

" +msgstr "

indent

Прави отстъп на избраните редове или текущия ред

" + +#: utils/katecmds.cpp:58 +#, kde-format +msgid "

unindent

Unindents the selected lines or current line.

" +msgstr "" +"

unindent

Премахва отстъпа на избраните редове или текущия ред.

" + +#: utils/katecmds.cpp:63 +#, kde-format +msgid "" +"

cleanindent

Cleans up the indentation of the selected lines or " +"current line according to the indentation settings in the document.

" +msgstr "" +"

cleanindent

Изчиства отстъпа на избраните редове или текущ ред " +"според настройките за отстъп в документа.

" + +#: utils/katecmds.cpp:68 +#, kde-format +msgid "" +"

comment

Inserts comment markers to make the selection or selected " +"lines or current line a comment according to the text format as defined by " +"the syntax highlight definition for the document.

" +msgstr "" +"

comment

Вмъква маркери за коментари, за да направите селекцията " +"или избраните редове или текущ ред коментар според текстовия формат, както е " +"дефиниран от синтаксиса за подчертаване на документа.

" + +#: utils/katecmds.cpp:74 +#, kde-format +msgid "" +"

uncomment

Removes comment markers from the selection or selected " +"lines or current line according to the text format as defined by the syntax " +"highlight definition for the document.

" +msgstr "" +"

uncomment

Премахва маркерите за коментари от избраната област, " +"избраните редове или текущ ред според текстовия формат, дефиниран от " +"синтаксиса за маркиране на документа.

" + +#: utils/katecmds.cpp:80 +#, kde-format +msgid "" +"

goto line number

This command navigates to the specified " +"line number.

" +msgstr "" +"

goto номер на ред

Тази команда се придвижва до посочения " +"номер на ред.

" + +#: utils/katecmds.cpp:85 +#, kde-format +msgid "" +"

set-indent-pasted-text enable

If enabled, indentation of " +"text pasted from the clipboard is adjusted using the current indenter.

Possible true values: 1 on true
possible false values: 0 off false" +msgstr "" +"

set-indent-pasted-text enable

Ако е активиран, отстъпът на " +"текста, поставен от клипборда ще се изравни с този на документа.

Възможни стойности: 1 за вярно
0 за невярно

" + +#: utils/katecmds.cpp:91 +#, kde-format +msgid "Deletes the current line." +msgstr "Изтрива текущия ред." + +#: utils/katecmds.cpp:95 +#, kde-format +msgid "" +"

set-tab-width width

Sets the tab width to the number " +"width

" +msgstr "" +"

set-tab-width width

Задава ширината на табулатора на " +"стойността за ширина

" + +#: utils/katecmds.cpp:100 +#, kde-format +msgid "" +"

set-replace-tab enable

If enabled, tabs are replaced with " +"spaces as you type.

Possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" +"

set-replace-tab enable

Ако е активирано, табулаторите се " +"заменят с интервали, докато пишете.

възможни стойности за активиране: " +"1 on true
възможни стойности за деактивиране: 0 off false

" + +#: utils/katecmds.cpp:107 +#, kde-format +msgid "" +"

set-show-tabs enable

If enabled, TAB characters and trailing " +"whitespace will be visualized by a small dot.

Possible true values: 1 " +"on true
possible false values: 0 off false

" +msgstr "" +"

set-show-tabs enable

Ако е активирано, TAB символи и " +"последващо празното пространство ще се визуализира с малка точка.

възможни стойности за активиране: 1 on true
възможни стойности за " +"деактивиране: 0 off false

" + +#: utils/katecmds.cpp:114 +#, kde-format +msgid "" +"

set-remove-trailing-spaces mode

Removes the trailing spaces " +"in the document depending on the mode.

Possible values:" +"

  • none: never remove trailing spaces.
  • modified: " +"remove trailing spaces only of modified lines.
  • all: remove " +"trailing spaces in the entire document.

" +msgstr "" +"

set-remove-trailing-space mode

Премахва крайните интервали " +"в документа в зависимост от режима.

Възможни стойности:" +"

  • none: без премахване на крайни интервали.
  • modified:премахване на крайни интервали само от модифицирани " +"редове.
  • all: премахване на крайни интервали в целия " +"документ.

" + +#: utils/katecmds.cpp:125 +#, kde-format +msgid "" +"

set-indent-width width

Sets the indentation width to the " +"number width. Used only if you are indenting with spaces.

" +msgstr "" +"

set-indent-width width

Задава ширината на отстъпа на броя " +"на интервалите. Използва се само ако правите отстъп с интервали.

" + +#: utils/katecmds.cpp:130 +#, kde-format +msgid "" +"

set-indent-mode mode

The mode parameter is a value as seen " +"in the Tools - Indentation menu

" +msgstr "" +"

set-indent-mode mode

Параметърът mode е стойност, както е " +"зададена в менюто Инструменти - Отстъп

" + +#: utils/katecmds.cpp:135 +#, kde-format +msgid "" +"

set-auto-indent enable

Enable or disable autoindentation.

possible true values: 1 on true
possible false values: 0 off false" +msgstr "" +"

set-auto-indent enable

Активира или деактивира автоматичния " +"отстъп.

Възможни стойности: 1 за вярно
0 за невярно

" + +#: utils/katecmds.cpp:142 +#, kde-format +msgid "" +"

set-line-numbers enable

Sets the visibility of the line " +"numbers pane.

possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" +"

set-line-numbers еnable

Задава видимостта на панела с " +"номера на редовете.

възможни стойности: 1 за правилно
0 за " +"неправилно

" + +#: utils/katecmds.cpp:149 +#, kde-format +msgid "" +"

set-folding-markers enable

Sets the visibility of the " +"folding markers pane.

possible true values: 1 on true
possible " +"false values: 0 off false

" +msgstr "" +"

set-folding-markers enable

Задава видимостта на панел за " +"маркери за свиване.

възможни стойности активиране: 1 on true
" +"възможни стойности за деактивиране: 0 off false

" + +#: utils/katecmds.cpp:156 +#, kde-format +msgid "" +"

set-icon-border enable

Sets the visibility of the icon " +"border.

possible true values: 1 on true
possible false values: 0 " +"off false

" +msgstr "" +"

set-icon-border еnable

Задава видимостта на границите на " +"иконите.

възможни стойности за активиране: 1 on true
възможни " +"стойности за деактивиране: 0 off false

" + +#: utils/katecmds.cpp:163 +#, kde-format +msgid "" +"

set-word-wrap enable

Enables dynamic word wrap according to " +"enable

possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" +"

set-word-wrap enable

Активира динамично пренасяне на думи " +"споредenable

възможни стойности за активиране: 1 on true
" +"възможни стойности за деактивиране: 0 off false

" + +#: utils/katecmds.cpp:170 +#, kde-format +msgid "" +"

set-word-wrap-column width

Sets the line width for hard " +"wrapping to width. This is used if you are having your text wrapped " +"automatically.

" +msgstr "" +"

set-word-wrap-column width

Задава ширината на реда за " +"прехвърляне на ширина. Това се използва, ако текстът ви се прехвърля " +"автоматично.

" + +#: utils/katecmds.cpp:175 +#, kde-format +msgid "" +"

set-replace-tabs-save enable

When enabled, tabs will be " +"replaced with whitespace whenever the document is saved.

possible " +"true values: 1 on true
possible false values: 0 off false

" +msgstr "" +"

set-replace-tabs-save enable

Когато е активирано, " +"табулаторите ще бъдат замествани с интервали, когато документът е запазен.

възможни стойности за активиране: 1 on true
възможни стойности " +"за деактивиране: 0 off false

" + +#: utils/katecmds.cpp:182 +#, kde-format +msgid "" +"

set-highlight highlight

Sets the syntax highlighting system " +"for the document. The argument must be a valid highlight name, as seen in " +"the Tools → Highlighting menu. This command provides an autocompletion list " +"for its argument.

" +msgstr "" +"

set-highlight highlight

Задава системата за подчертаване " +"на синтаксиса за документа. Аргументът трябва да е валидно име на " +"подчертаване, както е зададено в менюто Инструменти → Акцентиране. Тази " +"команда осигурява списък с автоматично довършване на нейните аргументи.

" + +#: utils/katecmds.cpp:188 +#, kde-format +msgid "

set-mode mode

Sets the mode as seen in Tools - Mode

" +msgstr "" +"

set-mode mode

Задава режима, както се вижда в Инструменти - " +"Режим

" + +#: utils/katecmds.cpp:193 +#, kde-format +msgid "" +"

set-show-indent enable

If enabled, indentation will be " +"visualized by a vertical dotted line.

possible true values: 1 on " +"true
possible false values: 0 off false

" +msgstr "" +"

set-show-indent enable

Ако е активирано, отстъпът ще се " +"визуализира с вертикална прекъсната линия

възможни стойности: 1 за " +"вярно
0 за невярно

" + +#: utils/katecmds.cpp:199 +#, kde-format +msgid "

Open the Print dialog to print the current document.

" +msgstr "" +"

Отваряне на диалоговия прозорец Печат, за да отпечатате текущия документ." +"

" + +#: utils/katecmds.cpp:314 utils/katecmds.cpp:341 +#, kde-format +msgid "Missing argument. Usage: %1 " +msgstr "Липсващ аргумент. Използване: %1 <стойност>" + +#: utils/katecmds.cpp:327 +#, kde-format +msgid "No such highlighting '%1'" +msgstr "Няма такова открояване „%1“" + +#: utils/katecmds.cpp:333 +#, kde-format +msgid "No such mode '%1'" +msgstr "Няма такъв режим „%1“" + +#: utils/katecmds.cpp:346 +#, kde-format +msgid "Failed to convert argument '%1' to integer." +msgstr "Грешка при конвертиране на аргумента „%1“ до целочислен тип." + +#: utils/katecmds.cpp:350 utils/katecmds.cpp:355 +#, kde-format +msgid "Width must be at least 1." +msgstr "Широчината трябва да бъде поне 1." + +#: utils/katecmds.cpp:360 +#, kde-format +msgid "Column must be at least 1." +msgstr "Колоната трябва да бъде поне 1." + +#: utils/katecmds.cpp:390 +#, kde-format +msgid "Usage: %1 on|off|1|0|true|false" +msgstr "Използване: %1 on|off|1|0|true|false" + +#: utils/katecmds.cpp:417 +#, kde-format +msgid "Bad argument '%1'. Usage: %2 on|off|1|0|true|false" +msgstr "Невалиден аргумент „%1“. Използване: %2 on|off|1|0|true|false" + +#: utils/katecmds.cpp:421 +#, kde-format +msgid "" +"Usage: set-remove-trailing-spaces 0|-|none or 1|+|mod|modified or 2|*|all" +msgstr "" +"Употреба: set-remove-trailing-spaces 0|-|none or 1|+|mod|modified or 2|*|all" + +#: utils/katecmds.cpp:435 vimode/cmds.cpp:168 +#, kde-format +msgid "Unknown command '%1'" +msgstr "Непозната команда „%1“" + +#: utils/katecmds.cpp:493 +#, kde-format +msgid "" +"

char identifier

This command allows you to insert literal " +"characters by their numerical identifier, in decimal, octal or hexadecimal " +"form.

Examples:

  • char 234
  • char 0x1234

" +msgstr "" +"

char идентификатор

Тази команда ви позволява да вмъкнете " +"буквени символи чрез техния цифров идентификатор, в десетична, осмична или " +"шестнадесетична форма.

Примери:

  • char 234
  • " +"char 0x1234

" + +#: utils/katecmds.cpp:560 +#, kde-format +msgid "" +"

date or date format

Inserts a date/time string as defined by " +"the specified format, or the format yyyy-MM-dd hh:mm:ss if none is specified." +"

Possible format specifiers are:
dThe day as " +"number without a leading zero (1-31).
ddThe day as " +"number with a leading zero (01-31).
dddThe " +"abbreviated localized day name (e.g. 'Mon'..'Sun').
ddddThe long localized day name (e.g. 'Monday'..'Sunday').
MThe month as number without a leading zero (1-12).
MMThe month as number with a leading zero (01-12).
MMMThe abbreviated localized month name (e.g. " +"'Jan'..'Dec').
yyThe year as two digit number " +"(00-99).
yyyyThe year as four digit number " +"(1752-8000).
hThe hour without a leading zero " +"(0..23 or 1..12 if AM/PM display).
hhThe hour with " +"a leading zero (00..23 or 01..12 if AM/PM display).
mThe minute without a leading zero (0..59).
mmThe minute with a leading zero (00..59).
sThe second without a leading zero (0..59).
ssThe second with a leading zero (00..59).
zThe milliseconds without leading zeroes (0..999).
zzzThe milliseconds with leading zeroes (000..999).
APUse AM/PM display. AP will be replaced by either " +"\"AM\" or \"PM\".
apUse am/pm display. ap will be " +"replaced by either \"am\" or \"pm\".

" +msgstr "" +"

дата или дата формат

Вмъква низ за дата/час, както е " +"дефиниран от посоченият формат или формат гггг-ММ-дд чч: мм: сс, ако не е " +"посочен нито един.

Възможните спецификатори на формат са: " +"
dДенят като число без водеща нула (1-31).
ddДенят като число с водеща нула (01-31).
dddсъкратено локализирано име на ден (напр. \"Пон\". . " +"\"Нед\").
dddd Дългото локализирано име на деня " +"(напр. \"Понеделник\". . \"Неделя\").
MМесецът " +"като число без водеща нула (1-12).
MMМесецът като " +"число с водеща нула (01-12).
MMMСъкратеното " +"локализирано име на месец (напр.'Jan' .. 'Dec').
yyГодината като двуцифрено число(00-99).
ггггГодината като четирицифрено число(1752-8000).
hЧасът без водеща нула(0..23 или 1..12, ако се показва AM/PM).
hhЧасът с водеща нула (00..23 или 01..12, ако се показва " +"AM/PM).
m Минутата без водеща нула (0..59).
mm Минутата с водеща нула (00..59).
s Втората без водеща нула (0..59).
ss Втората " +"с водеща нула (00..59).
z Милисекундите без водещи " +"нули (0..999).
zzzМилисекундите с водещи нули " +"(000..999).
APИзползване на AM/PM дисплей. AP ще " +"бъде заменен от който и да е\"AM\"или\"PM\".
apИзползване на дисплея am/pm. ap ще бъде заменени с\"am\"или\"pm\".

" + +#: utils/katecmds.cpp:621 +#, kde-format +msgid "Remove Duplicate Lines" +msgstr "Изтриване на дублиращи се редове" + +#: utils/katecmds.cpp:622 +#, kde-format +msgid "Remove Duplicates and Sort Text Alphabetically" +msgstr "Премахване на дубликати и сортиране по азбучен ред на избрания текст" + +#: utils/katecmds.cpp:623 +#, kde-format +msgid "Sort Text Naturally" +msgstr "Сортиране натурално на избрания текст" + +#: utils/katecmds.cpp:624 +#, kde-format +msgid "Sort Selected Text Alphabetically" +msgstr "Сортиране по азбучен ред на избрания текст" + +#: utils/katecmds.cpp:699 +#, kde-format +msgid "" +"

sort

Sort the selected text or whole document if there is no " +"selection

" +msgstr "" +"

sort

Сортиране на избрания текст или целия документ, ако нищо не е " +"селектирано.

" + +#: utils/katecmds.cpp:703 +#, kde-format +msgid "" +"

uniq

Remove duplicate lines from the selected text or whole " +"document if there is no selection.

" +msgstr "" +"

uniq

Премахване на дублиращи се редове от избрания текст или " +"целиядокумент, ако няма избор.

" + +#: utils/katecmds.cpp:707 +#, kde-format +msgid "" +"

sortuniq

Sort the selected text or whole document and then remove " +"all duplicate lines.

" +msgstr "" +"

sortuniq

Сортиране на избрания текст или целия документ и след това " +"премахване на всички дублирани редове.

" + +#: utils/katecmds.cpp:711 +#, kde-format +msgid "" +"

natsort

Sort the selected text or whole document in natural order." +"
Here is an example to show the difference to the normal sort method:" +"
sort(a10, a1, a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" +msgstr "" +"

natsort

Сортиране на избрания текст или целия документ в натурален " +"ред.
Ето пример за показване на разликата с нормалния метод на сортиране:" +"
sort(a10, a1, a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" + +#: utils/kateglobal.cpp:60 +#, kde-format +msgid "Kate Part" +msgstr "Kate Part" + +#: utils/kateglobal.cpp:62 +#, kde-format +msgid "Embeddable editor component" +msgstr "Текстов редактор, който може да се вгражда" + +#: utils/kateglobal.cpp:64 +#, kde-format +msgid "(c) 2000-2025 The Kate Authors" +msgstr "(c) 2000-2025 авторите на Kate" + +#: utils/kateglobal.cpp:84 +#, kde-format +msgid "Christoph Cullmann" +msgstr "Christoph Cullmann" + +#: utils/kateglobal.cpp:84 +#, kde-format +msgid "Maintainer" +msgstr "Поддръжка" + +#: utils/kateglobal.cpp:85 +#, kde-format +msgid "Dominik Haumann" +msgstr "Dominik Haumann" + +#: utils/kateglobal.cpp:85 utils/kateglobal.cpp:86 utils/kateglobal.cpp:87 +#: utils/kateglobal.cpp:90 utils/kateglobal.cpp:93 utils/kateglobal.cpp:98 +#, kde-format +msgid "Core Developer" +msgstr "Основен разработчик" + +#: utils/kateglobal.cpp:86 +#, kde-format +msgid "Milian Wolff" +msgstr "Milian Wolff" + +#: utils/kateglobal.cpp:87 +#, kde-format +msgid "Joseph Wenninger" +msgstr "Joseph Wenninger" + +#: utils/kateglobal.cpp:88 +#, kde-format +msgid "Erlend Hamberg" +msgstr "Erlend Hamberg" + +#: utils/kateglobal.cpp:89 +#, kde-format +msgid "Bernhard Beschow" +msgstr "Bernhard Beschow" + +#: utils/kateglobal.cpp:89 utils/kateglobal.cpp:105 +#, kde-format +msgid "Developer" +msgstr "Разработка" + +#: utils/kateglobal.cpp:90 +#, kde-format +msgid "Anders Lund" +msgstr "Anders Lund" + +#: utils/kateglobal.cpp:91 +#, kde-format +msgid "Michel Ludwig" +msgstr "Michel Ludwig" + +#: utils/kateglobal.cpp:91 +#, kde-format +msgid "On-the-fly spell checking" +msgstr "Проверка на правописа в движение" + +#: utils/kateglobal.cpp:92 +#, kde-format +msgid "Pascal Létourneau" +msgstr "Pascal Létourneau" + +#: utils/kateglobal.cpp:92 +#, kde-format +msgid "Large scale bug fixing" +msgstr "Мащабно отстраняване на грешки" + +#: utils/kateglobal.cpp:93 +#, kde-format +msgid "Hamish Rodda" +msgstr "Hamish Rodda" + +#: utils/kateglobal.cpp:94 +#, kde-format +msgid "Waldo Bastian" +msgstr "Waldo Bastian" + +#: utils/kateglobal.cpp:94 +#, kde-format +msgid "The cool buffersystem" +msgstr "Системата за буфер" + +#: utils/kateglobal.cpp:95 +#, kde-format +msgid "Charles Samuels" +msgstr "Charles Samuels" + +#: utils/kateglobal.cpp:95 +#, kde-format +msgid "The Editing Commands" +msgstr "Командите за редактиране" + +#: utils/kateglobal.cpp:96 +#, kde-format +msgid "Matt Newell" +msgstr "Matt Newell" + +#: utils/kateglobal.cpp:96 +#, kde-format +msgid "Testing, ..." +msgstr "Изпробване, ..." + +#: utils/kateglobal.cpp:97 +#, kde-format +msgid "Michael Bartl" +msgstr "Michael Bartl" + +#: utils/kateglobal.cpp:97 +#, kde-format +msgid "Former Core Developer" +msgstr "Предишен основен разработчик" + +#: utils/kateglobal.cpp:98 +#, kde-format +msgid "Michael McCallum" +msgstr "Michael McCallum" + +#: utils/kateglobal.cpp:99 +#, kde-format +msgid "Michael Koch" +msgstr "Michael Koch" + +#: utils/kateglobal.cpp:99 +#, kde-format +msgid "KWrite port to KParts" +msgstr "Версия на KWrite за KParts" + +#: utils/kateglobal.cpp:100 +#, kde-format +msgid "Christian Gebauer" +msgstr "Christian Gebauer" + +#: utils/kateglobal.cpp:101 +#, kde-format +msgid "Simon Hausmann" +msgstr "Simon Hausmann" + +#: utils/kateglobal.cpp:102 +#, kde-format +msgid "Glen Parker" +msgstr "Glen Parker" + +#: utils/kateglobal.cpp:102 +#, kde-format +msgid "KWrite Undo History, Kspell integration" +msgstr "История на редактирането в KWrite, интегриране с Kspell" + +#: utils/kateglobal.cpp:103 +#, kde-format +msgid "Scott Manson" +msgstr "Scott Manson" + +#: utils/kateglobal.cpp:103 +#, kde-format +msgid "KWrite XML Syntax highlighting support" +msgstr "Поддръжка на осветяване на XML в KWrite" + +#: utils/kateglobal.cpp:104 +#, kde-format +msgid "John Firebaugh" +msgstr "John Firebaugh" + +#: utils/kateglobal.cpp:104 +#, kde-format +msgid "Patches and more" +msgstr "Поправки и други" + +#: utils/kateglobal.cpp:105 +#, kde-format +msgid "Andreas Kling" +msgstr "Andreas Kling" + +#: utils/kateglobal.cpp:106 +#, kde-format +msgid "Mirko Stocker" +msgstr "Mirko Stocker" + +#: utils/kateglobal.cpp:106 +#, kde-format +msgid "Various bugfixes" +msgstr "Различни поправки" + +#: utils/kateglobal.cpp:107 +#, kde-format +msgid "Matthew Woehlke" +msgstr "Matthew Woehlke" + +#: utils/kateglobal.cpp:107 +#, kde-format +msgid "Selection, KColorScheme integration" +msgstr "Избиране, интеграция с KColorScheme" + +#: utils/kateglobal.cpp:108 +#, kde-format +msgid "Sebastian Pipping" +msgstr "Sebastian Pipping" + +#: utils/kateglobal.cpp:109 +#, kde-format +msgid "Search bar back- and front-end" +msgstr "Лента за търсене отзад и отпред" + +#: utils/kateglobal.cpp:112 +#, kde-format +msgid "Jochen Wilhelmy" +msgstr "Jochen Wilhelmy" + +#: utils/kateglobal.cpp:112 +#, kde-format +msgid "Original KWrite Author" +msgstr "Оригинален автор на KWrite" + +#: utils/kateglobal.cpp:113 +#, kde-format +msgid "Gerald Senarclens de Grancy" +msgstr "Gerald Senarclens de Grancy" + +#: utils/kateglobal.cpp:113 +#, kde-format +msgid "QA and Scripting" +msgstr "QA and Scripting" + +#: utils/kateglobal.cpp:115 +#, kde-format +msgid "Matteo Merli" +msgstr "Matteo Merli" + +#: utils/kateglobal.cpp:115 +#, kde-format +msgid "Highlighting for RPM Spec-Files, Perl, Diff and more" +msgstr "Осветяване за RPM Spec, Perl, Diff и други" + +#: utils/kateglobal.cpp:116 +#, kde-format +msgid "Rocky Scaletta" +msgstr "Rocky Scaletta" + +#: utils/kateglobal.cpp:116 +#, kde-format +msgid "Highlighting for VHDL" +msgstr "Осветяване за VHDL" + +#: utils/kateglobal.cpp:117 +#, kde-format +msgid "Yury Lebedev" +msgstr "Yury Lebedev" + +#: utils/kateglobal.cpp:117 +#, kde-format +msgid "Highlighting for SQL" +msgstr "Осветяване за SQL" + +#: utils/kateglobal.cpp:118 +#, kde-format +msgid "Chris Ross" +msgstr "Chris Ross" + +#: utils/kateglobal.cpp:118 +#, kde-format +msgid "Highlighting for Ferite" +msgstr "Осветяване за Ferite" + +#: utils/kateglobal.cpp:119 +#, kde-format +msgid "Nick Roux" +msgstr "Nick Roux" + +#: utils/kateglobal.cpp:119 +#, kde-format +msgid "Highlighting for ILERPG" +msgstr "Осветяване за ILERPG" + +#: utils/kateglobal.cpp:120 +#, kde-format +msgid "Carsten Niehaus" +msgstr "Carsten Niehaus" + +#: utils/kateglobal.cpp:120 +#, kde-format +msgid "Highlighting for LaTeX" +msgstr "Осветяване за LaTeX" + +#: utils/kateglobal.cpp:121 +#, kde-format +msgid "Per Wigren" +msgstr "Per Wigren" + +#: utils/kateglobal.cpp:121 +#, kde-format +msgid "Highlighting for Makefiles, Python" +msgstr "Осветяване за Makefile-ове, Python" + +#: utils/kateglobal.cpp:122 +#, kde-format +msgid "Jan Fritz" +msgstr "Jan Fritz" + +#: utils/kateglobal.cpp:122 +#, kde-format +msgid "Highlighting for Python" +msgstr "Осветяване за Python" + +#: utils/kateglobal.cpp:123 +#, kde-format +msgid "Daniel Naber" +msgstr "Daniel Naber" + +#: utils/kateglobal.cpp:124 +#, kde-format +msgid "Roland Pabel" +msgstr "Roland Pabel" + +#: utils/kateglobal.cpp:124 +#, kde-format +msgid "Highlighting for Scheme" +msgstr "Осветяване за Scheme" + +#: utils/kateglobal.cpp:125 +#, kde-format +msgid "Cristi Dumitrescu" +msgstr "Cristi Dumitrescu" + +#: utils/kateglobal.cpp:125 +#, kde-format +msgid "PHP Keyword/Datatype list" +msgstr "Списък с ключови думи и видове данни в PHP" + +#: utils/kateglobal.cpp:126 +#, kde-format +msgid "Carsten Pfeiffer" +msgstr "Carsten Pfeiffer" + +#: utils/kateglobal.cpp:126 +#, kde-format +msgid "Very nice help" +msgstr "Много добра помощ" + +#: utils/kateglobal.cpp:127 +#, kde-format +msgid "Bruno Massa" +msgstr "Bruno Massa" + +#: utils/kateglobal.cpp:127 +#, kde-format +msgid "Highlighting for Lua" +msgstr "Осветяване за Lua" + +#: utils/kateglobal.cpp:129 +#, kde-format +msgid "All people who have contributed and I have forgotten to mention" +msgstr "Всички хора, които са помагали и съм забравил да спомена" + +#: utils/kateglobal.cpp:131 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Ясен Праматаров,Златко Попов" + +#: utils/kateglobal.cpp:131 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "yasen@lindeas.com,zlatkopopov@fsa-bg.org" + +#: utils/kateglobal.cpp:255 +#, kde-format +msgid "Configure" +msgstr "Настройване" + +#: utils/katesedcmd.cpp:268 +#, kde-format +msgid "replace with %1?" +msgstr "заместване с %1?" + +#: utils/katesedcmd.cpp:274 +#, kde-format +msgctxt "%2 is the translation of the next message" +msgid "1 replacement done on %2" +msgid_plural "%1 replacements done on %2" +msgstr[0] "1 смяна извършена на %2" +msgstr[1] "%1 замени, извършени на %2" + +#: utils/katesedcmd.cpp:277 +#, kde-format +msgctxt "substituted into the previous message" +msgid "1 line" +msgid_plural "%1 lines" +msgstr[0] "1 ред" +msgstr[1] "%1 реда" + +#: utils/katevariableexpansionhelpers.cpp:77 +#, kde-format +msgid "" +msgstr "<стойност>" + +#: utils/katevariableexpansionhelpers.cpp:161 +#, kde-format +msgid "Insert variable" +msgstr "Вмъкване на променлива" + +#: utils/katevariableexpansionhelpers.cpp:165 +#, kde-format +msgid "Variables" +msgstr "Променливи" + +#: utils/katevariableexpansionhelpers.cpp:169 +#, kde-format +msgid "Filter" +msgstr "Филтър" + +#: utils/katevariableexpansionhelpers.cpp:188 +#: utils/katevariableexpansionhelpers.cpp:217 +#, kde-format +msgid "Please select a variable." +msgstr "Моля, изберете променлива." + +#: utils/katevariableexpansionhelpers.cpp:206 +#, kde-format +msgid "Current value: %1" +msgstr "Текуща стойност: %1 <стойност>" + +#: utils/katevariableexpansionhelpers.cpp:214 +#, kde-format +msgid "Current value: %1" +msgstr "Текуща стойност: %1" + +#: utils/katevariableexpansionmanager.cpp:86 +#, kde-format +msgid "File base name without path and suffix of the current document." +msgstr "Име на файла без път и суфикс на текущия документ." + +#: utils/katevariableexpansionmanager.cpp:94 +#, kde-format +msgid "File extension of the current document." +msgstr "Файлово разширение на текущия документ." + +#: utils/katevariableexpansionmanager.cpp:102 +#, kde-format +msgid "File name without path of the current document." +msgstr "Име на файл без път на текущия документ." + +#: utils/katevariableexpansionmanager.cpp:110 +#, kde-format +msgid "Full path of the current document including the file name." +msgstr "Пълен път на текущия документ, включително името на файла." + +#: utils/katevariableexpansionmanager.cpp:118 +#, kde-format +msgid "Contents of the current document." +msgstr "Съдържание на текущия документ." + +#: utils/katevariableexpansionmanager.cpp:125 +#, kde-format +msgid "Full path of the current document excluding the file name." +msgstr "Пълен път на текущия документ с изключение на името на файла." + +#: utils/katevariableexpansionmanager.cpp:133 +#, kde-format +msgid "" +"Full document path including file name, with native path separator " +"(backslash on Windows)." +msgstr "" +"Пълен път на документа, включително име на файл, с нативен разделител на " +"пътя (обратно наклонена черта за Windows)." + +#: utils/katevariableexpansionmanager.cpp:141 +#, kde-format +msgid "" +"Full document path excluding file name, with native path separator " +"(backslash on Windows)." +msgstr "" +"Пълен път на документа, с изключение на името на файла, с нативен разделител " +"на пътя (обратна наклонена черта за Windows)." + +#: utils/katevariableexpansionmanager.cpp:149 +#, kde-format +msgid "" +"Line number of the text cursor position in current document (starts with 0)." +msgstr "" +"Номер на реда на позицията на текстовия курсор в текущия документ (започва с " +"0)." + +#: utils/katevariableexpansionmanager.cpp:156 +#, kde-format +msgid "" +"Column number of the text cursor position in current document (starts with " +"0)." +msgstr "" +"Номер на колона на позицията на текстовия курсор в текущия документ (започва " +"с 0)." + +#: utils/katevariableexpansionmanager.cpp:163 +#, kde-format +msgid "X component in global screen coordinates of the cursor position." +msgstr "" +"X компонента в глобалните координати на екрана на позицията на курсора." + +#: utils/katevariableexpansionmanager.cpp:170 +#, kde-format +msgid "Y component in global screen coordinates of the cursor position." +msgstr "" +"Y компонента в глобалните координати на екрана на позицията на курсора." + +#: utils/katevariableexpansionmanager.cpp:177 +#, kde-format +msgid "Text selection of the current document." +msgstr "Избор на текст на текущия документ." + +#: utils/katevariableexpansionmanager.cpp:184 +#, kde-format +msgid "Start line of selected text of the current document." +msgstr "Начален ред на избрания текст на текущия документ." + +#: utils/katevariableexpansionmanager.cpp:191 +#, kde-format +msgid "Start column of selected text of the current document." +msgstr "Начална колона на избрания текст на текущия документ." + +#: utils/katevariableexpansionmanager.cpp:198 +#, kde-format +msgid "End line of selected text of the current document." +msgstr "Краен ред на избрания текст на текущия документ." + +#: utils/katevariableexpansionmanager.cpp:205 +#, kde-format +msgid "End column of selected text of the current document." +msgstr "Крайна колона на избрания текст на текущия документ." + +#: utils/katevariableexpansionmanager.cpp:212 +#, kde-format +msgid "Number of rows of the current document." +msgstr "Брой редове на текущия документ." + +#: utils/katevariableexpansionmanager.cpp:219 +#, kde-format +msgid "Read a document variable." +msgstr "Четене на променлива на документа." + +#: utils/katevariableexpansionmanager.cpp:227 +#, kde-format +msgid "The current date in current locale format." +msgstr "Текущата дата в текущия локален формат." + +#: utils/katevariableexpansionmanager.cpp:234 +#, kde-format +msgid "The current date (ISO)." +msgstr "Текущата дата (ISO)." + +#: utils/katevariableexpansionmanager.cpp:241 +#, kde-format +msgid "The current date (QDate formatstring)." +msgstr "Текущата дата (низ от формат QDate)." + +#: utils/katevariableexpansionmanager.cpp:249 +#, kde-format +msgid "The current time in current locale format." +msgstr "Текущото време в текущия локален формат." + +#: utils/katevariableexpansionmanager.cpp:256 +#, kde-format +msgid "The current time (ISO)." +msgstr "Текущото време (ISO)." + +#: utils/katevariableexpansionmanager.cpp:263 +#, kde-format +msgid "The current time (QTime formatstring)." +msgstr "Текущото време (QTime formatstring)." + +#: utils/katevariableexpansionmanager.cpp:271 +#, kde-format +msgid "Access to environment variables." +msgstr "Достъп до променливи на средата." + +#: utils/katevariableexpansionmanager.cpp:279 +#, kde-format +msgid "Evaluate simple JavaScript statements." +msgstr "Обработване на прости инструкции на JavaScript." + +#: utils/katevariableexpansionmanager.cpp:289 +#, kde-format +msgid "Encode text to make it URL compatible." +msgstr "Кодиране на текста, за съвместимост с URL." + +#: utils/katevariableexpansionmanager.cpp:297 +#, kde-format +msgid "Generate a new UUID." +msgstr "Генериране на нов UUID." + +#: variableeditor/variableeditor.cpp:40 +#, kde-format +msgid "Kate Handbook." +msgstr "Наръчник на Kate." + +#: variableeditor/variableeditor.cpp:213 +#, kde-format +msgid "true" +msgstr "вярно" + +#: variableeditor/variableeditor.cpp:214 +#, kde-format +msgid "false" +msgstr "невярно" + +#: variableeditor/variableeditor.cpp:350 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "none" +msgstr "без" + +#: variableeditor/variableeditor.cpp:351 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "modified" +msgstr "модифицирани" + +#: variableeditor/variableeditor.cpp:352 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "all" +msgstr "всички" + +#: variableeditor/variablelineedit.cpp:42 +#, kde-format +msgid "Show list of valid variables." +msgstr "Показване на списък с валидни променливи." + +#: variableeditor/variablelineedit.cpp:115 +#, kde-format +msgctxt "short translation please" +msgid "Enable automatic insertion of brackets." +msgstr "Активиране на автоматичното вмъкване на скоби." + +#: variableeditor/variablelineedit.cpp:121 +#, kde-format +msgctxt "short translation please" +msgid "Set the number of autocenter lines." +msgstr "Задаване на броя на редовете за автоматично центриране." + +#: variableeditor/variablelineedit.cpp:126 +#, kde-format +msgctxt "short translation please" +msgid "Set the document background color." +msgstr "Задаване на цвета на фона на документа." + +#: variableeditor/variablelineedit.cpp:131 +#, kde-format +msgctxt "short translation please" +msgid "Pressing backspace in leading whitespace unindents." +msgstr "" +"Натискане на backspace във водещи празни места води до премахване на отстъпа." + +#: variableeditor/variablelineedit.cpp:139 +#, kde-format +msgctxt "short translation please" +msgid "Enable block selection mode." +msgstr "Активиране на блоково избиране." + +#: variableeditor/variablelineedit.cpp:144 +#, kde-format +msgctxt "short translation please" +msgid "Enable the byte order mark (BOM) when saving Unicode files." +msgstr "" +"Активиране маркер на байтов последователност при записване на Unicode " +"файлове." + +#: variableeditor/variablelineedit.cpp:149 +#, kde-format +msgctxt "short translation please" +msgid "Set the color for the bracket highlight." +msgstr "Цвят за осветяване на скобите." + +#: variableeditor/variablelineedit.cpp:154 +#, kde-format +msgctxt "short translation please" +msgid "Set the background color for the current line." +msgstr "Цвят на фона за текущия ред." + +#: variableeditor/variablelineedit.cpp:160 +#, kde-format +msgctxt "short translation please" +msgid "Set the default dictionary used for spell checking." +msgstr "Речник по подразбиране, използван за проверка на правописа." + +#: variableeditor/variablelineedit.cpp:165 +#, kde-format +msgctxt "short translation please" +msgid "Enable dynamic word wrap of long lines." +msgstr "Активиране на динамично пренасяне на дълги редове." + +#: variableeditor/variablelineedit.cpp:172 +#, kde-format +msgctxt "short translation please" +msgid "Sets the end of line mode." +msgstr "Тип край на ред." + +#: variableeditor/variablelineedit.cpp:177 +#, kde-format +msgctxt "short translation please" +msgid "" +"Enable whether pressing enter will insert selected auto completion item." +msgstr "" +"Активирайте дали натискането на Enter ще вмъкне избрания елемент за " +"автоматично завършване." + +#: variableeditor/variablelineedit.cpp:182 +#, kde-format +msgctxt "short translation please" +msgid "Enable folding markers in the editor border." +msgstr "Активиране на маркерите за свиване." + +#: variableeditor/variablelineedit.cpp:187 +#, kde-format +msgctxt "short translation please" +msgid "Enable folding preview in the editor border." +msgstr "Активиране на предварителен преглед на свиването." + +#: variableeditor/variablelineedit.cpp:193 +#, kde-format +msgctxt "short translation please" +msgid "Set the point size of the document font." +msgstr "Размера на DPI на шрифта на документа." + +#: variableeditor/variablelineedit.cpp:198 +#, kde-format +msgctxt "short translation please" +msgid "Set the font of the document." +msgstr "Шрифт на документа." + +#: variableeditor/variablelineedit.cpp:214 +#, kde-format +msgctxt "short translation please" +msgid "Set the syntax highlighting." +msgstr "Акцентиране на синтаксиса." + +#: variableeditor/variablelineedit.cpp:219 +#, kde-format +msgctxt "short translation please" +msgid "Set the icon bar color." +msgstr "Цвят на лентата с икони." + +#: variableeditor/variablelineedit.cpp:224 +#, kde-format +msgctxt "short translation please" +msgid "Enable the icon border in the editor view." +msgstr "Активиране на границата на икони." + +#: variableeditor/variablelineedit.cpp:229 +#, kde-format +msgctxt "short translation please" +msgid "Set the auto indentation style." +msgstr "Стил на автоматичното отстъпване." + +#: variableeditor/variablelineedit.cpp:234 +#, kde-format +msgctxt "short translation please" +msgid "Adjust indentation of text pasted from the clipboard." +msgstr "Отстъп на текст, поставен от клипборда." + +#: variableeditor/variablelineedit.cpp:240 +#, kde-format +msgctxt "short translation please" +msgid "Set the indentation depth for each indent level." +msgstr "Дълбочината на отстъп за всяко ниво на отстъп." + +#: variableeditor/variablelineedit.cpp:245 +#, kde-format +msgctxt "short translation please" +msgid "Allow odd indentation level (no multiple of indent width)." +msgstr "" +"Разрешаване на нечетно ниво на отстъп ( некратно на ширината на отстъп)." + +#: variableeditor/variablelineedit.cpp:250 +#, kde-format +msgctxt "short translation please" +msgid "Show line numbers." +msgstr "Номера на редове." + +#: variableeditor/variablelineedit.cpp:255 +#, kde-format +msgctxt "short translation please" +msgid "Insert newline at end of file on save." +msgstr "Поставяне нов ред в края на файла при запис." + +#: variableeditor/variablelineedit.cpp:260 +#, kde-format +msgctxt "short translation please" +msgid "Enable overwrite mode in the document." +msgstr "Активиране на презаписване в документа." + +#: variableeditor/variablelineedit.cpp:265 +#, kde-format +msgctxt "short translation please" +msgid "Enable persistent text selection." +msgstr "Активиране на постоянен избор на текст." + +#: variableeditor/variablelineedit.cpp:270 +#, kde-format +msgctxt "short translation please" +msgid "Replace tabs with spaces when saving the document." +msgstr "Заменяне на табулаторите с интервали при записване на документа." + +#: variableeditor/variablelineedit.cpp:275 +#, kde-format +msgctxt "short translation please" +msgid "Replace tabs with spaces." +msgstr "Заместване на табулаторите с интервали." + +#: variableeditor/variablelineedit.cpp:280 +#, kde-format +msgctxt "short translation please" +msgid "Remove trailing spaces when saving the document." +msgstr "Премахване на крайните интервали при записване документа." + +#: variableeditor/variablelineedit.cpp:285 +#, kde-format +msgctxt "short translation please" +msgid "Show scrollbar minimap." +msgstr "Показване на карта на лентата за превъртане." + +#: variableeditor/variablelineedit.cpp:290 +#, kde-format +msgctxt "short translation please" +msgid "Show scrollbar preview." +msgstr "Показване на предварителен преглед в лентата за превъртане." + +#: variableeditor/variablelineedit.cpp:301 +#, kde-format +msgctxt "short translation please" +msgid "Set the color scheme." +msgstr "Задаване на цветовата схема." + +#: variableeditor/variablelineedit.cpp:306 +#, kde-format +msgctxt "short translation please" +msgid "Set the text selection color." +msgstr "Задаване на цвета за избор на текст." + +#: variableeditor/variablelineedit.cpp:311 +#, kde-format +msgctxt "short translation please" +msgid "Visualize tabs and trailing spaces." +msgstr "Визуализиране на табулатори и крайни интервали." + +#: variableeditor/variablelineedit.cpp:316 +#, kde-format +msgctxt "short translation please" +msgid "Enable smart home navigation." +msgstr "Активиране на интелигентната home навигация." + +#: variableeditor/variablelineedit.cpp:321 +#, kde-format +msgctxt "short translation please" +msgid "Pressing TAB key indents." +msgstr "Клавиш TAB дава отстъп на реда." + +#: variableeditor/variablelineedit.cpp:327 +#, kde-format +msgctxt "short translation please" +msgid "Set the tab display width." +msgstr "Ширина на табулатора ." + +#: variableeditor/variablelineedit.cpp:333 +#, kde-format +msgctxt "short translation please" +msgid "Set the number of undo steps to remember (0 equals infinity)." +msgstr "" +"Задаване броя стъпки на отмяна за запомняне (0 е равно на безкрайност)." + +#: variableeditor/variablelineedit.cpp:339 +#, kde-format +msgctxt "short translation please" +msgid "Set the word wrap column." +msgstr "Задаване на колоната за пренасяне." + +#: variableeditor/variablelineedit.cpp:344 +#, kde-format +msgctxt "short translation please" +msgid "Set the word wrap marker color." +msgstr "Задаване на цвета на маркера за пренасяне." + +#: variableeditor/variablelineedit.cpp:349 +#, kde-format +msgctxt "short translation please" +msgid "Enable word wrap while typing text." +msgstr "Активиране на пренасянето при писане на текст." + +#: view/katestatusbar.cpp:114 +#, kde-format +msgid "Current cursor position. Click to go to a specific line." +msgstr "Текуща позиция на курсора. Щракнете, за да отидете на определен ред." + +#: view/katestatusbar.cpp:127 +#, kde-format +msgid "Insert mode and VI input mode indicator. Click to change the mode." +msgstr "" +"Режим вмъкване и индикатор за режим на въвеждане VI. Щракнете, за да " +"промените режима." + +#: view/katestatusbar.cpp:135 +#, kde-format +msgid "Change dictionary" +msgstr "Промяна на речника" + +#: view/katestatusbar.cpp:161 view/katestatusbar.cpp:488 +#, kde-format +msgid "Tab Width" +msgstr "Ширина на табулатора" + +#: view/katestatusbar.cpp:169 view/katestatusbar.cpp:503 +#, kde-format +msgid "Indentation Width" +msgstr "Ширина на отстъп" + +#: view/katestatusbar.cpp:177 +#, kde-format +msgid "Indentation Mode" +msgstr "Режим на отстъп" + +#: view/katestatusbar.cpp:179 +#, kde-format +msgid "Tabulators && Spaces" +msgstr "Табулатори и интервали" + +#: view/katestatusbar.cpp:182 +#, kde-format +msgid "Tabulators" +msgstr "Табулатори" + +#: view/katestatusbar.cpp:185 +#, kde-format +msgid "Spaces" +msgstr "Интервали" + +#: view/katestatusbar.cpp:197 +#, kde-format +msgid "Encoding" +msgstr "Кодиране" + +#: view/katestatusbar.cpp:200 view/katestatusbar.cpp:201 +#, kde-format +msgid "End of line type" +msgstr "Вид на край на реда" + +#: view/katestatusbar.cpp:207 +#, kde-format +msgid "Mode" +msgstr "Режим" + +#: view/katestatusbar.cpp:209 view/kateview.cpp:703 +#, kde-format +msgid "" +"Here you can choose which mode should be used for the current document. This " +"will influence the highlighting and folding being used, for example." +msgstr "" +"Тук можете да изберете кой режим да се използва за текущия документ. Това ще " +"повлияе например на осветяването и свиването, които се използват." + +#: view/katestatusbar.cpp:216 +#, kde-format +msgid "Syntax highlighting" +msgstr "Акцентиране на синтаксиса" + +#: view/katestatusbar.cpp:261 +#, kde-format +msgid "Line/Column compact mode" +msgstr "Компактен режим ред/колони" + +#: view/katestatusbar.cpp:307 +#, kde-format +msgid "[BLOCK] %1" +msgstr "[BLOCK] %1" + +#: view/katestatusbar.cpp:323 +#, kde-format +msgid "%1/%2:%3" +msgstr "%1/%2:%3" + +#: view/katestatusbar.cpp:325 +#, kde-format +msgid "%1:%2" +msgstr "%1:%2" + +#: view/katestatusbar.cpp:329 +#, kde-format +msgid "Line %1 of %2, Column %3" +msgstr "Линия %1 от %2, колона %3" + +#: view/katestatusbar.cpp:331 +#, kde-format +msgid "Line %1, Column %2" +msgstr "Ред %1, колона %2" + +#: view/katestatusbar.cpp:405 +#, kde-format +msgid "Soft Tabs: %1" +msgstr "Меки интервали: %1" + +#: view/katestatusbar.cpp:406 +#, kde-format +msgid "Soft Tabs: %1 (%2)" +msgstr "Меки интервали: %1 (%2)" + +#: view/katestatusbar.cpp:407 +#, kde-format +msgid "Tab Size: %1" +msgstr "Размер на табулатор: %1" + +#: view/katestatusbar.cpp:408 +#, kde-format +msgid "Indent/Tab: %1/%2" +msgstr "Отстъп/табулатор: %1/%2" + +#: view/katestatusbar.cpp:448 view/katestatusbar.cpp:474 +#, kde-format +msgctxt "@item:inmenu" +msgid "Other…" +msgstr "Други…" + +#: view/katestatusbar.cpp:476 +#, kde-format +msgid "Other (%1)" +msgid_plural "Other (%1)" +msgstr[0] "Други (%1)" +msgstr[1] "Други (%1)" + +#: view/katestatusbar.cpp:488 +#, kde-format +msgid "Please specify the wanted tab width:" +msgstr "Моля, посочете желаната ширина на табулация:" + +#: view/katestatusbar.cpp:504 +#, kde-format +msgid "Please specify the wanted indentation width:" +msgstr "Моля, посочете желаната ширина на отстъп:" + +#: view/katestatusbar.cpp:567 +#, kde-format +msgctxt "" +"%1 and %3 are the selected words/chars count, %2 and %4 are the total words/" +"chars count." +msgid "Words %1/%2, Chars %3/%4" +msgstr "Думи %1/%2, символи %3/%4" + +#: view/katestatusbar.cpp:573 +#, kde-format +msgctxt "%1 and %2 are the total words/chars count." +msgid "Words %1, Chars %2" +msgstr "Думи %1, Символи %2" + +#: view/katestatusbar.cpp:588 +#, kde-format +msgid "Zoom: %1%" +msgstr "Мащабиране: %1%" + +#: view/kateview.cpp:440 +#, kde-format +msgid "Cut the selected text and move it to the clipboard" +msgstr "Изрязване на маркирания текст и поставяне в системния буфер." + +#: view/kateview.cpp:445 +#, kde-format +msgid "Paste previously copied or cut clipboard contents" +msgstr "Поставяне съдържанието на системния буфер." + +#: view/kateview.cpp:448 +#, kde-format +msgid "" +"Use this command to copy the currently selected text to the system clipboard." +msgstr "Копиране на маркирания текст в системния буфер." + +#: view/kateview.cpp:454 +#, kde-format +msgid "Clipboard &History Paste" +msgstr "Поставяне на &история на клипборда" + +#: view/kateview.cpp:459 +#, kde-format +msgid "Paste Selection" +msgstr "Поставяне на селекцията" + +#: view/kateview.cpp:461 +#, kde-format +msgid "Paste previously mouse selection contents" +msgstr "Поставяне на съдържанието на предишната селекция на мишката" + +#: view/kateview.cpp:465 +#, kde-format +msgid "Paste From File" +msgstr "Поставяне от файл" + +#: view/kateview.cpp:469 +#, kde-format +msgid "Copy File Location" +msgstr "Копиране на местоположението на файла" + +#: view/kateview.cpp:470 +#, kde-format +msgid "Copy the current file name and line number" +msgstr "Копиране на името на текущия файл и номера на реда" + +#: view/kateview.cpp:473 +#, kde-format +msgid "Swap with Clipboard Contents" +msgstr "Размяна със съдържанието на клипборда" + +#: view/kateview.cpp:474 +#, kde-format +msgid "Swap the selected text with the clipboard contents" +msgstr "Размяна на избрания текст със съдържанието на клипборда" + +#: view/kateview.cpp:477 +#, kde-format +msgid "Take Screenshot of Selection" +msgstr "Екранна снимка на селекцията" + +#: view/kateview.cpp:481 +#, kde-format +msgid "Save the current document" +msgstr "Запис на текущия документ." + +#: view/kateview.cpp:484 +#, kde-format +msgid "Revert the most recent editing actions" +msgstr "Отменяне на последната извършена операция." + +#: view/kateview.cpp:487 +#, kde-format +msgid "Revert the most recent undo operation" +msgstr "Възстановяване на последната отменена операция." + +#: view/kateview.cpp:491 +#, kde-format +msgid "&Scripts" +msgstr "&Скриптове" + +#: view/kateview.cpp:495 +#, kde-format +msgid "Apply &Word Wrap" +msgstr "Прилагане на &пренасяне" + +#: view/kateview.cpp:497 +#, kde-format +msgid "" +"Use this to wrap the current line, or to reformat the selected lines as " +"paragraph, to fit the 'Wrap words at' setting in the configuration dialog." +"

This is a static word wrap, meaning the document is changed." +msgstr "" +"Използвайте това, за да пренесете текущия ред или да преформатирате " +"избраните редове като параграф, за да се поберат според настройките на " +"\"Пренасяне при\" в диалоговия прозорец за конфигуриране.

Това е " +"статично пренасяне, което означава, че документът е променен." + +#: view/kateview.cpp:503 +#, kde-format +msgid "&Clean Indentation" +msgstr "Конвертиране на &отстъпа" + +#: view/kateview.cpp:505 +#, kde-format +msgid "" +"Use this to clean the indentation of a selected block of text (only tabs/" +"only spaces).

You can configure whether tabs should be honored " +"and used or replaced with spaces, in the configuration dialog." +msgstr "" +"Използвайте това, за да изчистите отстъпа на избран блок от текст (само " +"табулатори /само интервали).

Можете да конфигурирате дали " +"табулаторите трябва да бъдат зачетени и използвани или замествани с " +"интервали в диалоговия прозорец за конфигуриране." + +#: view/kateview.cpp:510 +#, kde-format +msgid "Convert Indentation to Spaces" +msgstr "Преобразуване на отстъп в интервали" + +#: view/kateview.cpp:517 +#, kde-format +msgid "Convert Indentation to Tabs" +msgstr "Преобразуване на отстъп в табулация" + +#: view/kateview.cpp:532 +#, kde-format +msgid "&Format Indentation" +msgstr "&Форматиране на отстъп" + +#: view/kateview.cpp:533 +#, kde-format +msgid "" +"Use this to auto indent the current line or block of text to its proper " +"indent level." +msgstr "" +"Използвайте тази опция, за да направите автоматичен отстъп на текущия ред " +"или блок от текст към тяхното правилно ниво на отстъп." + +#: view/kateview.cpp:537 +#, kde-format +msgctxt "@action" +msgid "&Align On…" +msgstr "&Подравняване…" + +#: view/kateview.cpp:539 +#, kde-format +msgid "" +"This command aligns lines in the selected block or whole document on the " +"column given by a regular expression that you will be prompted for.

If you give an empty pattern it will align on the first non-blank " +"character by default.
If the pattern has a capture it will indent on " +"the captured match.

Examples:
With '-' it will insert " +"spaces before the first '-' of each lines to align them all on the same " +"column.
With ':\\s+(.)' it will insert spaces before the first non-" +"blank character that occurs after a colon to align them all on the same " +"column." +msgstr "" +"Тази команда подравнява редовете в избрания блок или целия документ върху " +"колона, зададена с регулярен израз, за който ще бъдете запитани

Ако зададете празен шаблон, той ще подравни с първия непразен знак по " +"подразбиране.
Ако шаблонът има съвпадение, ще се подравни със " +"съвпадението.

Например:
С '-' ще се вмъкнат интервали " +"пред първото '-' от всеки ред, за да се подравнят всички в еднаколона.
С ':\\s+(.)' ще вмъкне интервали преди първият непразен символ, който се " +"появява след двоеточие, за да ги подравни всички в една колона." + +#: view/kateview.cpp:550 +#, kde-format +msgid "C&omment" +msgstr "Вмъкване на &коментар" + +#: view/kateview.cpp:553 +#, kde-format +msgid "" +"This command comments out the current line or a selected block of text.

The characters for single/multiple line comments are defined within " +"the language's highlighting." +msgstr "" +"Тази команда коментира текущия ред или избран блок от текст.

" +"Символите за еднократни/многоредови коментари са дефинирани в програмния " +"език." + +#: view/kateview.cpp:558 +#, kde-format +msgid "Go to Previous Editing Location" +msgstr "Отиване на предишната позиция за редактиране" + +#: view/kateview.cpp:564 +#, kde-format +msgid "Go to Next Editing Location" +msgstr "Отиване на следващата позиция за редактиране" + +#: view/kateview.cpp:570 +#, kde-format +msgid "Unco&mment" +msgstr "Премахване на ко&ментар" + +#: view/kateview.cpp:573 +#, kde-format +msgid "" +"This command removes comments from the current line or a selected block of " +"text.

The characters for single/multiple line comments are " +"defined within the language's highlighting." +msgstr "" +"Тази команда премахва коментари от текущия ред или избран блок от текст. " +"

Символите за еднократни/многоредови коментари са дефинирани в " +"програмния език." + +#: view/kateview.cpp:578 +#, kde-format +msgid "Toggle Comment" +msgstr "Превключване на коментар" + +#: view/kateview.cpp:582 +#, kde-format +msgid "&Read Only Mode" +msgstr "&Режим само за четене" + +#: view/kateview.cpp:583 +#, kde-format +msgid "Lock/unlock the document for writing" +msgstr "Заключване/отключване на документа за запис." + +#: view/kateview.cpp:588 +#, kde-format +msgid "&Force RTL Direction" +msgstr "&Налагане на посока на текста отдясно наляво" + +#: view/kateview.cpp:589 +#, kde-format +msgid "Force RTL Text Direction" +msgstr "Налагане на посока на текста отдясно наляво" + +#: view/kateview.cpp:599 +#, kde-format +msgid "Uppercase" +msgstr "Главни букви" + +#: view/kateview.cpp:602 +#, kde-format +msgid "" +"Convert the selection to uppercase, or the character to the right of the " +"cursor if no text is selected." +msgstr "Конвертиране на маркирания текст до главни букви." + +#: view/kateview.cpp:608 +#, kde-format +msgid "Lowercase" +msgstr "Малки букви" + +#: view/kateview.cpp:611 +#, kde-format +msgid "" +"Convert the selection to lowercase, or the character to the right of the " +"cursor if no text is selected." +msgstr "Конвертиране на маркирания текст до малки букви." + +#: view/kateview.cpp:617 +#, kde-format +msgid "Capitalize" +msgstr "Първа главна буква" + +#: view/kateview.cpp:620 +#, kde-format +msgid "" +"Capitalize the selection, or the word under the cursor if no text is " +"selected." +msgstr "Конвертиране на първата буква от маркирания текст до главна." + +#: view/kateview.cpp:625 +#, kde-format +msgid "Join Lines" +msgstr "Обединение на редове" + +#: view/kateview.cpp:630 +#, kde-format +msgid "Invoke Code Completion" +msgstr "Завършване на думи" + +#: view/kateview.cpp:631 +#, kde-format +msgid "" +"Manually invoke command completion, usually by using a shortcut bound to " +"this action." +msgstr "" +"Ръчно извикване на завършване на командата, обикновено като използвате " +"клавишна комбинация, свързана с това действие." + +#: view/kateview.cpp:636 +#, kde-format +msgid "Remove Trailing Spaces" +msgstr "Премахване на крайните интервали" + +#: view/kateview.cpp:654 +#, kde-format +msgid "Print the current document." +msgstr "Печат на текущия документ." + +#: view/kateview.cpp:657 +#, kde-format +msgid "Show print preview of current document" +msgstr "Показване на предварителен преглед на текущия документ" + +#: view/kateview.cpp:661 +#, kde-format +msgid "Reloa&d" +msgstr "Презаре&ждане" + +#: view/kateview.cpp:663 +#, kde-format +msgid "Reload the current document from disk." +msgstr "Анулиране на промените и презареждане на текущия документ." + +#: view/kateview.cpp:667 +#, kde-format +msgid "Save the current document to disk, with a name of your choice." +msgstr "Запис на текущия документ под друго име или тип." + +#: view/kateview.cpp:669 +#, kde-format +msgctxt "@action" +msgid "Save As with Encodin&g…" +msgstr "Запазване с &кодирането като…" + +#: view/kateview.cpp:675 +#, kde-format +msgctxt "@action" +msgid "Save Cop&y As…" +msgstr "&Запазване на копие като…" + +#: view/kateview.cpp:676 +#, kde-format +msgid "Save a copy of the current document to disk." +msgstr "Запазване на копие на текущия документ на диска." + +#: view/kateview.cpp:680 +#, kde-format +msgid "" +"This command opens a dialog and lets you choose a line that you want the " +"cursor to move to." +msgstr "Отиване на даден ред в текущия документ." + +#: view/kateview.cpp:684 +#, kde-format +msgid "Go to Previous Modified Line" +msgstr "Придвижване към предишния модифициран ред" + +#: view/kateview.cpp:685 +#, kde-format +msgid "Move upwards to the previous modified line." +msgstr "Придвижване нагоре към предишния модифициран ред." + +#: view/kateview.cpp:690 +#, kde-format +msgid "Go to Next Modified Line" +msgstr "Придвижване към следващия модифициран ред" + +#: view/kateview.cpp:691 +#, kde-format +msgid "Move downwards to the next modified line." +msgstr "Придвижване надолу към следващия модифициран ред." + +#: view/kateview.cpp:695 +#, kde-format +msgctxt "@action" +msgid "&Configure Editor…" +msgstr "&Настройване на редактора…" + +#: view/kateview.cpp:697 +#, kde-format +msgid "Configure various aspects of this editor." +msgstr "Настройване поведението на редактора." + +#: view/kateview.cpp:700 +#, kde-format +msgid "&Mode" +msgstr "&Режим" + +#: view/kateview.cpp:706 +#, kde-format +msgid "&Highlighting" +msgstr "Откро&яване" + +#: view/kateview.cpp:708 +#, kde-format +msgid "Here you can choose how the current document should be highlighted." +msgstr "Открояване на текущия файл." + +#: view/kateview.cpp:711 +#, kde-format +msgid "&Editor Color Theme" +msgstr "&Цветна тема" + +#: view/kateview.cpp:717 +#, kde-format +msgid "&Indentation" +msgstr "О&тстъп" + +#: view/kateview.cpp:726 +#, kde-format +msgid "Select the entire text of the current document." +msgstr "Маркиране на всичкия текст в текущия документ." + +#: view/kateview.cpp:729 +#, kde-format +msgid "" +"If you have selected something within the current document, this will no " +"longer be selected." +msgstr "Размаркиране на маркирания текст." + +#: view/kateview.cpp:733 +#, kde-format +msgid "Enlarge Font" +msgstr "Увеличаване на шрифта" + +#: view/kateview.cpp:735 +#, kde-format +msgid "This increases the display font size." +msgstr "Увеличаване на шрифта в редактора." + +#: view/kateview.cpp:742 +#, kde-format +msgid "Shrink Font" +msgstr "Намаляване на шрифта" + +#: view/kateview.cpp:744 +#, kde-format +msgid "This decreases the display font size." +msgstr "Намаляване на шрифта в редактора." + +#: view/kateview.cpp:751 +#, kde-format +msgid "Reset Font Size" +msgstr "Връщане на стандартния размер на шрифта" + +#: view/kateview.cpp:753 +#, kde-format +msgid "This resets the display font size." +msgstr "Това връща стандартния размер на шрифта." + +#: view/kateview.cpp:756 +#, kde-format +msgid "Bl&ock Selection Mode" +msgstr "&Блоково маркиране" + +#: view/kateview.cpp:759 +#, kde-format +msgid "" +"This command allows switching between the normal (line based) selection mode " +"and the block selection mode." +msgstr "" +"Превключване между нормалното маркиране на текста (по редове) и маркиране на " +"текста по блокове." + +#: view/kateview.cpp:763 +#, kde-format +msgid "Switch to Next Input Mode" +msgstr "Превключване към следващия режим на въвеждане" + +#: view/kateview.cpp:765 +#, kde-format +msgid "Switch to the next input mode." +msgstr "Превключване към следващия режим на въвеждане." + +#: view/kateview.cpp:768 +#, kde-format +msgid "Overwr&ite Mode" +msgstr "Ре&жим на припокриване" + +#: view/kateview.cpp:771 +#, kde-format +msgid "" +"Choose whether you want the text you type to be inserted or to overwrite " +"existing text." +msgstr "" +"Превключване между вмъкване на текста и препокриване на съществуващия текст " +"при писане." + +#: view/kateview.cpp:775 +#, kde-format +msgid "Show Whitespace" +msgstr "Показване на празни полета" + +#: view/kateview.cpp:778 +#, kde-format +msgid "" +"If this option is checked, whitespaces in this document will be visible.

This is only a view option, meaning the document will not be changed." +msgstr "" +"Ако тази опция е избрана, белите полета в този документ ще бъдат видими

Това е само опция за изглед, което означава, че документът няма да " +"се промени." + +#: view/kateview.cpp:782 +#, kde-format +msgid "&Dynamic Word Wrap" +msgstr "&Динамичен пренос на думи" + +#: view/kateview.cpp:786 +#, kde-format +msgid "" +"If this option is checked, the text lines will be wrapped at the view border " +"on the screen.

This is only a view option, meaning the document " +"will not be changed." +msgstr "" +"Ако тази опция е избрана, текстовите редове ще бъдат пренесени на границата " +"на изгледа.

Това е само опция за изглед, което означава, че " +"документът няма да се промени." + +#: view/kateview.cpp:790 +#, kde-format +msgid "Dynamic Word Wrap Indicators" +msgstr "Индикатор за динамичен пренос" + +#: view/kateview.cpp:792 +#, kde-format +msgid "Choose when the Dynamic Word Wrap Indicators should be displayed" +msgstr "Определяне кога да се показват маркерите за статичен пренос на думи." + +#: view/kateview.cpp:794 +#, kde-format +msgid "&Off" +msgstr "&Изключено" + +#: view/kateview.cpp:794 +#, kde-format +msgid "Follow &Line Numbers" +msgstr "&Следване номерата на редовете" + +#: view/kateview.cpp:794 +#, kde-format +msgid "&Always On" +msgstr "&Винаги включено" + +#: view/kateview.cpp:798 +#, kde-format +msgid "Static Word Wrap" +msgstr "Статичен пренос на думи" + +#: view/kateview.cpp:800 +#, kde-format +msgid "" +"If this option is checked, the text lines will be wrapped at the column " +"defined in the editing properties." +msgstr "" +"Ако тази опция е избрана, текстовите редове ще бъдат пренесени в колоната, " +"дефинирана в свойствата за редактиране." + +#: view/kateview.cpp:807 +#, kde-format +msgid "Show Static &Word Wrap Marker" +msgstr "Показване &маркера за статичен пренос" + +#: view/kateview.cpp:810 +#, kde-format +msgid "" +"Show/hide the Word Wrap Marker, a vertical line drawn at the word wrap " +"column as defined in the editing properties" +msgstr "Показване/скриване на маркера за статичен пренос на думи." + +#: view/kateview.cpp:814 +#, kde-format +msgid "Show Folding &Markers" +msgstr "Показване стр&уктурата на кода" + +#: view/kateview.cpp:816 +#, kde-format +msgid "" +"You can choose if the codefolding marks should be shown, if codefolding is " +"possible." +msgstr "Показване структурата на кода, ако е възможно." + +#: view/kateview.cpp:819 +#, kde-format +msgid "Show &Icon Border" +msgstr "Показване &зоната за икони" + +#: view/kateview.cpp:821 +#, kde-format +msgid "" +"Show/hide the icon border.

The icon border shows bookmark " +"symbols, for instance." +msgstr "" +"Показване/скриване на границата на иконата.

Границата на " +"иконата показва символи на отметки, например." + +#: view/kateview.cpp:824 +#, kde-format +msgid "Show &Line Numbers" +msgstr "Показване &номерата на редовете" + +#: view/kateview.cpp:826 +#, kde-format +msgid "Show/hide the line numbers on the left hand side of the view." +msgstr "Показване/скриване номерата на редовете в лявата страна на редактора." + +#: view/kateview.cpp:829 +#, kde-format +msgid "Show Scroll&bar Marks" +msgstr "Показване отметките на &плъзгача" + +#: view/kateview.cpp:831 +#, kde-format +msgid "" +"Show/hide the marks on the vertical scrollbar.

The marks show " +"bookmarks, for instance." +msgstr "" +"Показване/скриване на маркерите на вертикалната лента за превъртане.
" +"
Маркерите показват отметки, например." + +#: view/kateview.cpp:834 +#, kde-format +msgid "Show Scrollbar Mini-Map" +msgstr "Показване на мини-карта на лентата за превъртане" + +#: view/kateview.cpp:836 +#, kde-format +msgid "" +"Show/hide the mini-map on the vertical scrollbar.

The mini-map " +"shows an overview of the whole document." +msgstr "" +"Показване/скриване на мини-картата на вертикалната лента за превъртане.

Мини-картата показва преглед на целия документ." + +#. i18n("Show the whole document in the Mini-Map"), this); +#. ac->addAction(QLatin1String("view_scrollbar_minimap_all"), a); +#. a->setWhatsThis(i18n("Display the whole document in the mini-map.

With this option set the whole document will be visible in the +#. mini-map.")); connect(a, SIGNAL(triggered(bool)), SlOT(toggleScrollBarMiniMapAll())); connect(m_toggleScrollBarMiniMap, SIGNAL(triggered(bool)), +#. m_toggleScrollBarMiniMapAll, SLOT(setEnabled(bool))); +#: view/kateview.cpp:848 +#, kde-format +msgid "Show Non-Printable Spaces" +msgstr "Показване на непечатаеми пространства" + +#: view/kateview.cpp:850 +#, kde-format +msgid "Show/hide bounding box around non-printable spaces" +msgstr "" +"Показване/скриване на ограничителното поле около непечатаеми пространства" + +#: view/kateview.cpp:854 +#, kde-format +msgid "Switch to Command Line" +msgstr "Превключване в команден режим" + +#: view/kateview.cpp:856 +#, kde-format +msgid "Show/hide the command line on the bottom of the view." +msgstr "Показване/скриване на командния ред в долната част на редактора." + +#: view/kateview.cpp:859 +#, kde-format +msgid "Input Modes" +msgstr "Режими на въвеждане" + +#: view/kateview.cpp:868 +#, kde-format +msgid "Activate/deactivate %1" +msgstr "Активиране/деактивиране %1" + +#: view/kateview.cpp:878 +#, kde-format +msgid "&End of Line" +msgstr "Кра&й на ред" + +#: view/kateview.cpp:880 +#, kde-format +msgid "Choose which line endings should be used, when you save the document" +msgstr "Избор на край ред, който ще се използва за запис на файла." + +#: view/kateview.cpp:881 +#, kde-format +msgctxt "@item:inmenu End of Line" +msgid "&UNIX" +msgstr "&UNIX" + +#: view/kateview.cpp:882 +#, kde-format +msgctxt "@item:inmenu End of Line" +msgid "&Windows/DOS" +msgstr "&Windows/DOS" + +#: view/kateview.cpp:883 +#, kde-format +msgctxt "@item:inmenu End of Line" +msgid "&Macintosh" +msgstr "&Macintosh" + +#: view/kateview.cpp:888 +#, kde-format +msgid "Add &Byte Order Mark (BOM)" +msgstr "До&бавяне на маркер на байтов последователност" + +#: view/kateview.cpp:891 +#, kde-format +msgid "" +"Enable/disable adding of byte order marks for UTF-8/UTF-16 encoded files " +"while saving" +msgstr "" +"Активиране/деактивиране на добавяне на маркер на байтов последователност за " +"UTF-8/UTF-16 кодирани файлове при записване" + +#: view/kateview.cpp:895 +#, kde-format +msgid "E&ncoding" +msgstr "Ко&дова таблица" + +#: view/kateview.cpp:899 +#, kde-format +msgid "Look up the first occurrence of a piece of text or regular expression." +msgstr "Търсене за първото срещане на зададен текст или регулярен израз." + +#: view/kateview.cpp:903 +#, kde-format +msgid "Find Selected" +msgstr "Намиране на избраното" + +#: view/kateview.cpp:905 +#, kde-format +msgid "Finds next occurrence of selected text." +msgstr "Намира следващата поява на избран текст." + +#: view/kateview.cpp:909 +#, kde-format +msgid "Find Selected Backwards" +msgstr "Намиране на избраното назад" + +#: view/kateview.cpp:911 +#, kde-format +msgid "Finds previous occurrence of selected text." +msgstr "Намира предишно появяване на избран текст." + +#: view/kateview.cpp:915 +#, kde-format +msgid "Find and Select Next Occurrence" +msgstr "Намиране и селектиране на следващата поява" + +#: view/kateview.cpp:917 +#, kde-format +msgid "Finds next occurrence of the word under cursor and add it to selection." +msgstr "Намира следващата поява на думата под курсора и я добавя към избора." + +#: view/kateview.cpp:921 +#, kde-format +msgid "Mark Currently Selected Occurrence as Skipped" +msgstr "Отбелязване на текущо избрания случай като пропуснат" + +#: view/kateview.cpp:923 +#, kde-format +msgid "Marks the currently selected word as skipped." +msgstr "Маркира текущо избраната дума като пропусната." + +#: view/kateview.cpp:927 +#, kde-format +msgid "Find and Select All Occurrences" +msgstr "Намиране и селектиране на всички появи" + +#: view/kateview.cpp:929 +#, kde-format +msgid "Finds all occurrences of the word under cursor and selects them." +msgstr "Намира всички появи на думата под курсора и ги селектира." + +#: view/kateview.cpp:933 +#, kde-format +msgid "Look up the next occurrence of the search phrase." +msgstr "Търсене за следващото срещане на зададен текст или регулярен израз." + +#: view/kateview.cpp:937 +#, kde-format +msgid "Look up the previous occurrence of the search phrase." +msgstr "Търсене за предишното срещане на зададен текст или регулярен израз." + +#: view/kateview.cpp:941 +#, kde-format +msgid "" +"Look up a piece of text or regular expression and replace the result with " +"some given text." +msgstr "" +"Търсене за зададен текст или регулярен израз и замяна на резултата със друг " +"текст." + +#: view/kateview.cpp:944 +#, kde-format +msgid "Add Cursors to Line Ends" +msgstr "Добавяне на курсор в края на реда" + +#: view/kateview.cpp:946 +#, kde-format +msgid "Creates a cursor at the end of every line in selection." +msgstr "Създава курсор в края на всеки ред в селекцията." + +#: view/kateview.cpp:950 +#, kde-format +msgid "Add Caret below Cursor" +msgstr "Добавяне на знак \"^\" под текущия курсор" + +#: view/kateview.cpp:952 +#, kde-format +msgid "Adds a caret in the line below the current caret." +msgstr "Добавя знак \"^\" под текущия курсор." + +#: view/kateview.cpp:956 +#, kde-format +msgid "Add Caret above Cursor" +msgstr "Добавяне на знак \"^\" над текущия курсор" + +#: view/kateview.cpp:958 +#, kde-format +msgid "Adds a caret in the line above the current caret." +msgstr "Добавя знак \"^\" над текущия курсор." + +#: view/kateview.cpp:962 +#, kde-format +msgid "Toggle Camel Case Cursor Movement" +msgstr "Превключване на camel case предвижване на курсора" + +#: view/kateview.cpp:963 +#, kde-format +msgid "Toggle between normal word movement and camel case cursor movement." +msgstr "Превключва между нормално и camel case предвижване на курсора" + +#: view/kateview.cpp:967 +#, kde-format +msgid "Remove Cursors from Empty Lines" +msgstr "Премахване на курсора от празните редове" + +#: view/kateview.cpp:968 +#, kde-format +msgid "Remove cursors from empty lines" +msgstr "Премахване на курсора от празните редове" + +#: view/kateview.cpp:972 +#, kde-format +msgid "Automatic Spell Checking" +msgstr "Автоматична проверка на правописа" + +#: view/kateview.cpp:973 +#, kde-format +msgid "Enable/disable automatic spell checking" +msgstr "Активиране/Деактивиране на автоматичната проверка на правописа" + +#: view/kateview.cpp:979 +#, kde-format +msgctxt "@action" +msgid "Change Dictionary…" +msgstr "Промяна на речника…" + +#: view/kateview.cpp:980 +#, kde-format +msgid "Change the dictionary that is used for spell checking." +msgstr "Промяна на речника, който се използва за проверка на правописа." + +#: view/kateview.cpp:984 +#, kde-format +msgid "Clear Dictionary Ranges" +msgstr "Изчистване на обхвати на речник" + +#: view/kateview.cpp:986 +#, kde-format +msgid "" +"Remove all the separate dictionary ranges that were set for spell checking." +msgstr "" +"Премахва всички отделни речникови обхвати, които са зададени за проверка на " +"правописа." + +#: view/kateview.cpp:992 +#, kde-format +msgid "Copy as &HTML" +msgstr "Копиране като &HTML" + +#: view/kateview.cpp:993 +#, kde-format +msgid "" +"Copy the selection as HTML, formatted using the current syntax highlighting " +"and color scheme settings." +msgstr "" +"Копиране на селекцията като HTML, форматиран с помощта на текущите настройки " +"за подчертаване на синтаксиса и цветова схема." + +#: view/kateview.cpp:997 +#, kde-format +msgctxt "@action" +msgid "E&xport as HTML…" +msgstr "Ек&спортиране като HTML…" + +#: view/kateview.cpp:999 +#, kde-format +msgid "" +"This command allows you to export the current document with all highlighting " +"information into a HTML document." +msgstr "" +"Тази команда ви позволява да експортирате текущия документ с цялата " +"информация в HTML документ." + +#: view/kateview.cpp:1038 +#, kde-format +msgid "Move Word Left" +msgstr "Преместване на дума в ляво" + +#: view/kateview.cpp:1044 +#, kde-format +msgid "Select Character Left" +msgstr "Маркиране на знака в ляво" + +#: view/kateview.cpp:1050 +#, kde-format +msgid "Select Word Left" +msgstr "Маркиране на думата в ляво" + +#: view/kateview.cpp:1060 +#, kde-format +msgid "Move Word Right" +msgstr "Преместване на дума в дясно" + +#: view/kateview.cpp:1066 +#, kde-format +msgid "Select Character Right" +msgstr "Маркиране на знака в дясно" + +#: view/kateview.cpp:1072 +#, kde-format +msgid "Select Word Right" +msgstr "Маркиране на думата в дясно" + +#: view/kateview.cpp:1082 +#, kde-format +msgid "Start the Marked Selection" +msgstr "Стартиране на маркираната селекцията" + +#: view/kateview.cpp:1083 +#, kde-format +msgid "" +"Emulate the Emacs-like selection mode, where the beginning is marked and " +"then the selection is continuously updated." +msgstr "" +"Емулира режим на селектиране, подобен на този в Emacs, при който се маркира " +"началото и след това селекцията се обновява непрекъснато." + +#: view/kateview.cpp:1088 +#, kde-format +msgid "Move to Beginning of Line" +msgstr "Отиване в началото на реда" + +#: view/kateview.cpp:1094 +#, kde-format +msgid "Move to Beginning of Document" +msgstr "Отиване в началото на документа" + +#: view/kateview.cpp:1100 +#, kde-format +msgid "Select to Beginning of Line" +msgstr "Маркиране до началото на реда" + +#: view/kateview.cpp:1110 +#, kde-format +msgid "Select to Beginning of Document" +msgstr "Маркиране до началото на документа" + +#: view/kateview.cpp:1120 +#, kde-format +msgid "Move to End of Line" +msgstr "Отиване в края на реда" + +#: view/kateview.cpp:1126 +#, kde-format +msgid "Move to End of Document" +msgstr "Отиване в края на документа" + +#: view/kateview.cpp:1132 +#, kde-format +msgid "Select to End of Line" +msgstr "Маркиране до края на реда" + +#: view/kateview.cpp:1142 +#, kde-format +msgid "Select to End of Document" +msgstr "Маркиране до края на документа" + +#: view/kateview.cpp:1152 +#, kde-format +msgid "Select to Previous Line" +msgstr "Маркиране до предишния ред" + +#: view/kateview.cpp:1158 +#, kde-format +msgid "Scroll Line Up" +msgstr "Превъртане ред нагоре" + +#: view/kateview.cpp:1167 +#, kde-format +msgid "Move to Next Line" +msgstr "Преместване до следващия ред" + +#: view/kateview.cpp:1173 +#, kde-format +msgid "Move to Previous Line" +msgstr "Преместване до предишния ред" + +#: view/kateview.cpp:1179 +#, kde-format +msgid "Move Cursor Right" +msgstr "Преместване курсора надясно" + +#: view/kateview.cpp:1185 +#, kde-format +msgid "Move Cursor Left" +msgstr "Преместване курсора наляво" + +#: view/kateview.cpp:1191 +#, kde-format +msgid "Select to Next Line" +msgstr "Маркиране до следващия ред" + +#: view/kateview.cpp:1197 +#, kde-format +msgid "Scroll Line Down" +msgstr "Превъртане ред надолу" + +#: view/kateview.cpp:1206 +#, kde-format +msgid "Scroll Page Up" +msgstr "Превъртане страница нагоре" + +#: view/kateview.cpp:1212 +#, kde-format +msgid "Select Page Up" +msgstr "Маркиране страница нагоре" + +#: view/kateview.cpp:1218 +#, kde-format +msgid "Move to Top of View" +msgstr "Отиване в началото на видимата част" + +#: view/kateview.cpp:1224 +#, kde-format +msgid "Select to Top of View" +msgstr "Маркиране до началото на видимата част" + +#: view/kateview.cpp:1230 +#, kde-format +msgid "Scroll Page Down" +msgstr "Превъртане страница надолу" + +#: view/kateview.cpp:1236 +#, kde-format +msgid "Select Page Down" +msgstr "Маркиране страница надолу" + +#: view/kateview.cpp:1242 +#, kde-format +msgid "Move to Bottom of View" +msgstr "Отиване в края на видимата част" + +#: view/kateview.cpp:1248 +#, kde-format +msgid "Select to Bottom of View" +msgstr "Маркиране до края на видимата част" + +#: view/kateview.cpp:1254 +#, kde-format +msgid "Go to Matching Bracket" +msgstr "Преминаване към съвпадаща скоба" + +#: view/kateview.cpp:1260 +#, kde-format +msgid "Select to Matching Bracket" +msgstr "Маркиране до съвпадаща скоба" + +#: view/kateview.cpp:1267 +#, kde-format +msgid "Move Sub-Word Right" +msgstr "Преместване на под-дума в дясно" + +#: view/kateview.cpp:1274 +#, kde-format +msgid "Select Sub-Word Right" +msgstr "Маркиране на под-думата в дясно" + +#: view/kateview.cpp:1281 +#, kde-format +msgid "Move Sub-Word Left" +msgstr "Преместване на под-дума в ляво" + +#: view/kateview.cpp:1288 +#, kde-format +msgid "Select Sub-Word Left" +msgstr "Маркиране на под-дума в ляво" + +#: view/kateview.cpp:1298 +#, kde-format +msgid "Transpose Characters" +msgstr "Разместване на знаци" + +#: view/kateview.cpp:1303 +#, kde-format +msgid "Transpose Words" +msgstr "Транспониране на символи" + +#: view/kateview.cpp:1308 +#, kde-format +msgid "Delete Line" +msgstr "Изтриване на ред" + +#: view/kateview.cpp:1314 +#, kde-format +msgid "Delete Word Left" +msgstr "Изтриване на дума в ляво" + +#: view/kateview.cpp:1320 +#, kde-format +msgid "Delete Word Right" +msgstr "Изтриване на дума в дясно" + +#: view/kateview.cpp:1326 +#, kde-format +msgid "Delete Next Character" +msgstr "Изтриване на следващия знак" + +#: view/kateview.cpp:1332 +#, kde-format +msgid "Backspace" +msgstr "Изтриване на предишния знак" + +#: view/kateview.cpp:1340 +#, kde-format +msgid "Insert Tab Character" +msgstr "Вмъкване на табулатор" + +#: view/kateview.cpp:1345 +#, kde-format +msgid "Insert Smart Newline" +msgstr "Вмъкване на интелигентен нов ред" + +#: view/kateview.cpp:1346 +#, kde-format +msgid "" +"Insert newline including leading characters of the current line which are " +"not letters or numbers." +msgstr "" +"Вмъкване на нов ред, включително водещи символи от текущия ред, които не са " +"букви или цифри." + +#: view/kateview.cpp:1354 +#, kde-format +msgid "Insert a Non-Indented Newline" +msgstr "Вмъкване на нов ред без отстъп" + +#: view/kateview.cpp:1355 +#, kde-format +msgid "" +"Insert a new line without indentation, regardless of indentation settings." +msgstr "Вмъкване на нов ред без отстъп, независимо от настройките на отстъп." + +#: view/kateview.cpp:1363 +#, kde-format +msgid "Insert a Newline Above Current Line" +msgstr "Вмъкване на нов ред отгоре" + +#: view/kateview.cpp:1364 +#, kde-format +msgid "" +"Insert a new line above current line without modifying the current line." +msgstr "Вмъкване на нов ред отгоре без променяне на текущия ред." + +#: view/kateview.cpp:1372 +#, kde-format +msgid "Insert a Newline Below Current Line" +msgstr "Вмъкване на нов ред отдолу" + +#: view/kateview.cpp:1373 +#, kde-format +msgid "" +"Insert a new line below current line without modifying the current line." +msgstr "Вмъкване на нов ред отдолу без променяне на текущия ред." + +#: view/kateview.cpp:1382 +#, kde-format +msgid "&Indent" +msgstr "Отстъп на&дясно" + +#: view/kateview.cpp:1384 +#, kde-format +msgid "" +"Use this to indent a selected block of text.

You can configure " +"whether tabs should be honored and used or replaced with spaces, in the " +"configuration dialog." +msgstr "" +"Използвайте това, за да зададете отстъп на избран блок от текст.

Можете да конфигурирате дали табулаторите трябва да бъдат зачетени и " +"използвани или заменени с интервали в диалоговия прозорец за конфигуриране." + +#: view/kateview.cpp:1391 +#, kde-format +msgid "&Unindent" +msgstr "Отстъп на&ляво" + +#: view/kateview.cpp:1392 +#, kde-format +msgid "Use this to unindent a selected block of text." +msgstr "Изтриване на отстъп и преместване на текста наляво." + +#: view/kateview.cpp:1398 +#, kde-format +msgid "Delete Sub-Word Left" +msgstr "Изтриване на под-дума в ляво" + +#: view/kateview.cpp:1405 +#, kde-format +msgid "Delete Sub-Word Right" +msgstr "Изтриване на под-дума в дясно" + +#: view/kateview.cpp:1426 +#, kde-format +msgid "Fold Toplevel Nodes" +msgstr "Свиване на възли от високо ниво" + +#: view/kateview.cpp:1430 +#, kde-format +msgid "Unfold Toplevel Nodes" +msgstr "Разгъване на възли от високо ниво" + +#: view/kateview.cpp:1434 +#, kde-format +msgid "Toggle Current Node" +msgstr "Превключване на текущия възел" + +#: view/kateview.cpp:1438 +#, kde-format +msgid "Toggle Contained Nodes" +msgstr "Превключване на съдържащите се възли" + +#: view/kateview.cpp:1447 +#, kde-format +msgid "Say current selection or document" +msgstr "Кажете текущата селекция или документ" + +#: view/kateview.cpp:1457 +#, kde-format +msgid "Stop current output" +msgstr "Спиране на текущия изход" + +#: view/kateview.cpp:1463 +#, kde-format +msgid "Pause current output" +msgstr "Паузиране на текущия изход" + +#: view/kateview.cpp:1469 +#, kde-format +msgid "Resume current output" +msgstr "Продължаване на текущия изход" + +#: view/kateview.cpp:1640 +#, kde-format +msgid "(R/O) %1" +msgstr "(R/O) %1" + +#: view/kateview.cpp:1828 +#, kde-format +msgid "Camel case movement disabled" +msgstr "Деактивирано е camel case предвижване на курсора" + +#: view/kateview.cpp:1830 +#, kde-format +msgid "Camel case movement enabled" +msgstr "Активирано е camel case предвижване на курсора" + +#: view/kateview.cpp:2349 +#, kde-format +msgid "Search wrapped" +msgstr "Търсенето завърши" + +#: view/kateview.cpp:3043 +#, kde-format +msgid "Open File" +msgstr "Отваряне на файл" + +#: view/kateview.cpp:3984 +#, kde-format +msgid "Align On" +msgstr "Подравняване" + +#: view/kateview.cpp:3984 +#, kde-format +msgid "Alignment pattern:" +msgstr "Шаблон на подравняване:" + +#: view/kateview.cpp:5068 +#, kde-format +msgid "Export File as HTML" +msgstr "Експортиране на файл като HTML" + +#: view/kateviewhelpers.cpp:302 view/kateviewhelpers.cpp:351 +#: view/kateviewhelpers.cpp:1012 +#, kde-format +msgctxt "from line - to line" +msgid "

%1

%2
" +msgstr "
%1

%2
" + +#: view/kateviewhelpers.cpp:1212 +#, kde-format +msgid "Available Commands" +msgstr "Налични команди" + +#: view/kateviewhelpers.cpp:1213 +#, kde-format +msgid "" +"

For help on individual commands, do 'help <command>'" +msgstr "" +"

За да получите помощ за дадена команда, напишете help <" +"команда>.

" + +#: view/kateviewhelpers.cpp:1220 +#, kde-format +msgid "No help for '%1'" +msgstr "Няма помощ за „%1“." + +#: view/kateviewhelpers.cpp:1223 +#, kde-format +msgid "No such command %1" +msgstr "Няма такава команда „%1“." + +#: view/kateviewhelpers.cpp:1229 +#, kde-format +msgid "" +"

This is the Katepart command line.
Syntax: command " +"[ arguments ]
For a list of available commands, enter " +"help list
For help for individual commands, enter " +"help <command>

" +msgstr "" +"

Това е командният ред на Katepart.
Синтаксис: " +"команда [аргументи]
За списък с налични команди " +"въведетеhelp list
За помощ за отделни команди " +"въведетеhelp < команда >

" + +#: view/kateviewhelpers.cpp:1317 vimode/emulatedcommandbar/commandmode.cpp:211 +#, kde-format +msgid "No such command: \"%1\"" +msgstr "Няма такава команда: „%1“" + +#: view/kateviewhelpers.cpp:1320 vimode/emulatedcommandbar/commandmode.cpp:193 +#, kde-format +msgid "Error: No range allowed for command \"%1\"." +msgstr "Грешка: Не е разрешен диапазон за команда„%1“." + +#: view/kateviewhelpers.cpp:1330 vimode/emulatedcommandbar/commandmode.cpp:197 +#, kde-format +msgid "Success: " +msgstr "Успех: " + +#: view/kateviewhelpers.cpp:1344 vimode/emulatedcommandbar/commandmode.cpp:206 +#, kde-format +msgid "Command \"%1\" failed." +msgstr "Неуспешна команда „%1“." + +#: view/kateviewhelpers.cpp:2632 view/kateviewhelpers.cpp:2633 +#, kde-format +msgid "Mark Type %1" +msgstr "Маркиране на тип %1" + +#: view/kateviewhelpers.cpp:2656 +#, kde-format +msgid "Set Default Mark Type" +msgstr "Стил по подразбиране" + +#: view/kateviewhelpers.cpp:2801 +#, kde-format +msgid "Disable Annotation Bar" +msgstr "Деактивиране на лентата с пояснения" + +#: view/screenshotdialog.cpp:175 +#, kde-format +msgid "Save" +msgstr "Запазване" + +#: view/screenshotdialog.cpp:176 +#, kde-format +msgid "Copy" +msgstr "Копиране" + +#: view/screenshotdialog.cpp:177 +#, kde-format +msgctxt "@action:button" +msgid "Background Color…" +msgstr "Цвят на фона…" + +#: view/screenshotdialog.cpp:179 +#, kde-format +msgid "Show Extra Decorations" +msgstr "Допълнителни декорации" + +#: view/screenshotdialog.cpp:180 +#, kde-format +msgid "Show Window Decorations" +msgstr "Декорации на прозорци" + +#: view/screenshotdialog.cpp:185 +#, kde-format +msgctxt "@title:window" +msgid "Take Screenshot of Selection" +msgstr "Екранна снимка на селекцията" + +#: view/screenshotdialog.cpp:257 +#, kde-format +msgid "Don't Show Line Numbers" +msgstr "Без показване на номерата на редовете" + +#: view/screenshotdialog.cpp:258 +#, kde-format +msgid "Show Line Numbers From 1" +msgstr "Показване номерата на редовете от 1" + +#: view/screenshotdialog.cpp:259 +#, kde-format +msgid "Show Actual Line Numbers" +msgstr "Показване на актуалните номера на редовете" + +#: view/screenshotdialog.cpp:422 +#, kde-format +msgctxt "@title:window" +msgid "Screenshot saving failed" +msgstr "Неуспешно запазване на снимка на екрана" + +#: view/screenshotdialog.cpp:422 +#, kde-format +msgid "Screenshot saving failed: %1" +msgstr "Неуспешно запазване на снимка на екрана: %1" + +#: vimode/appcommands.cpp:67 +#, kde-format +msgid "All documents written to disk" +msgstr "Всички документи, записани на диск" + +#: vimode/appcommands.cpp:70 +#, kde-format +msgid "Document written to disk" +msgstr "Документ, записан на диск" + +#: vimode/appcommands.cpp:202 +#, kde-format +msgid "" +"

w/wa — write document(s) to disk

Usage: w[a]

Writes the current document(s) to disk. It can be called in " +"two ways:
w — writes the current document to disk
" +"wa — writes all documents to disk.

If no file name is " +"associated with the document, a file dialog will be shown.

" +msgstr "" +"

w/wa — запис на документ (и) на диск

Употреба: " +"w [a]

Записва текущия (те) документ (и) на диск. " +"Може да се извика по два начина:
w — записва текущия " +"документ на диск
wa — записва всички документи на " +"диск.

Ако няма име на файл, свързан с документа, ще се покаже файлов " +"диалогов прозорец.

" + +#: vimode/appcommands.cpp:213 +#, kde-format +msgid "" +"

q/qa/wq/wqa — [write and] quit

Usage: [w]q[a]

Quits the application. If w is prepended, it also " +"writes the document(s) to disk. This command can be called in several ways:" +"
q — closes the current view.
qa — " +"closes all views, effectively quitting the application.
wq " +"— writes the current document to disk and closes its view.
" +"wqa — writes all documents to disk and quits.

In all " +"cases, if the view being closed is the last view, the application quits. If " +"no file name is associated with the document and it should be written to " +"disk, a file dialog will be shown.

" +msgstr "" +"

q/qa/wq/wqa — [ [write and] quit<

Употреба: " +"[w] q [a]

Излиза от приложението. Ако w е " +"добавен, той също записва документа (ите) на диск. Тази команда може да бъде " +"извикана по няколко начина:
q — затваря текущия " +"изглед.
qa —затваря всички изгледи, като ефективно " +"излиза от приложението.
wq — записва текущия документ " +"на диска и затваря изгледа му.
wqa — записва всички " +"документи на диска и спира програмата.

Във всички случаи, ако " +"изгледът, който се затваря, е последният изглед, приложението се затваря. " +"Ако с документа не е свързано име на файл и трябва да се запише на диска, ще " +"се покаже файлов диалогов прозорец.

" + +#: vimode/appcommands.cpp:228 +#, kde-format +msgid "" +"

x/xa — write and quit

Usage: x[a]

Saves document(s) and quits (exits). This command can be called " +"in two ways:
x — closes the current view.
xa — closes all views, effectively quitting the application.

In " +"all cases, if the view being closed is the last view, the application quits. " +"If no file name is associated with the document and it should be written to " +"disk, a file dialog will be shown.

Unlike the 'w' commands, this " +"command only writes the document if it is modified.

" +msgstr "" +"

x/xa — записване и излизане

Употреба: x[a]

Записва документ (и) и излиза (e x си). Тази команда " +"може да бъде извикана по два начина:
x — затваря " +"текущия изглед.
xa — затваря всички изгледи, като " +"ефективно излиза от приложението.

Във всички случаи, ако изгледът, " +"който се затваря, е последният изглед, програмата спира.Ако с документа не е " +"свързано име на файл и трябва да се запише на диска, ще се покаже файлов " +"диалогов прозорец.

За разлика от командите 'w', тази команда записва " +"документа само, ако е модифициран.

" + +#: vimode/appcommands.cpp:242 +#, kde-format +msgid "" +"

sp,split— Split horizontally the current view into two

Usage: sp[lit]

The result is two views on the " +"same document.

" +msgstr "" +"

sp, split — Хоризонтално разделяне на текущия изглед на две " +"

Употреба: sp[lit]

Резултатът е два изгледа на " +"същия документ.

" + +#: vimode/appcommands.cpp:248 +#, kde-format +msgid "" +"

vs,vsplit— Split vertically the current view into two

Usage: vs[plit]

The result is two views on the " +"same document.

" +msgstr "" +"

vs,vsplit— Вертикално разделяне на текущия изглед на две

Употреба: vs[plit]

Резултатът е два изгледа на " +"същия документ.

" + +#: vimode/appcommands.cpp:254 +#, kde-format +msgid "" +"

clo[se]— Close the current view

Usage: clo[se]

After executing it, the current view will be closed.

" +msgstr "" +"

clo [se] — Затваряне на текущия изглед

Употреба: " +"clo [se]

След изпълнението му текущият изглед ще " +"бъде затворен.

" + +#: vimode/appcommands.cpp:260 +#, kde-format +msgid "" +"

[v]new — split view and create new document

Usage: " +"[v]new

Splits the current view and opens a new " +"document in the new view. This command can be called in two ways:
" +"new — splits the view horizontally and opens a new document." +"
vnew — splits the view vertically and opens a new " +"document.

" +msgstr "" +"

[v]new — разделен изглед и създаване на нов документ

" +"Употреба:[v]new

Разделя текущия изглед и отваря нов " +"документ в новия изглед. Тази команда може да бъде извикана по два начина: " +"
new — разделя изгледа хоризонтално и отваря нов " +"документ.
vnew — разделя изгледа вертикално и отваря " +"нов документ.

" + +#: vimode/appcommands.cpp:270 +#, kde-format +msgid "" +"

e[dit] — reload current document

Usage: e[dit]

Starts editing the current document again. This is " +"useful to re-edit the current file, when it was modified on disk.

" +msgstr "" +"

e [dit] — презареждане на текущия документ

Употреба: " +"e [dit]

Стартира р едактиране на текущия " +"документ отново. Това е полезно за повторно редактиране на текущия файл, " +"когато той е бил променен от друга програма.

" + +#: vimode/appcommands.cpp:518 +#, kde-format +msgid "" +"

b,buffer — Edit document N from the document list

Usage: b[uffer] [N]

" +msgstr "" +"

b,buffer — Редактиране на документ N от списъка с документи " +"

Употреба: b [uffer] [N]

" + +#: vimode/appcommands.cpp:523 +#, kde-format +msgid "" +"

bp,bprev — previous buffer

Usage: bp[revious] " +"[N]

Goes to [N]th previous document (\"buffer" +"\") in document list.

[N] defaults to one.

Wraps " +"around the start of the document list.

" +msgstr "" +"

bp, bprev — предишен буфер

Употреба: " +"bp[revious] [N]

Отива на [N] -тия предходен " +"документ (\"b uffer\") в списъка с документи.

[N] по " +"подразбиране е едно.

Прехвърля се в началото на списъка с документи." + +#: vimode/appcommands.cpp:531 +#, kde-format +msgid "" +"

bn,bnext — switch to next document

Usage: " +"bn[ext] [N]

Goes to [N]th next document " +"(\"buffer\") in document list.[N] defaults to one.

Wraps around the end of the document list.

" +msgstr "" +"

bn, bnext — превключване към следващ документ

" +"Употреба:bn [ext] [N]

Отива на [N] тия " +"следващ документ(\"b uffer\") в списъка с документи. [N] по " +"подразбиране е едно.

Прехвърля се в края на списъка с документи.

" + +#: vimode/appcommands.cpp:539 +#, kde-format +msgid "" +"

bf,bfirst — first document

Usage: bf[irst]

Goes to the first document (\"buffer\") in document " +"list.

" +msgstr "" +"

bf, bfirst — първи документ

Употреба: bf " +"[irst]

Отива към f irst - първия документ (\"b " +"uffer\") в списъка с документи.

" + +#: vimode/appcommands.cpp:545 +#, kde-format +msgid "" +"

bl,blast — last document

Usage: bl[ast]

Goes to the last document (\"buffer\") in document " +"list.

" +msgstr "" +"

bl,blast — последен документ

Употреба: bl " +"[ast]

Отива към l ast - последния документ (\"b uffer\") в списъка с документи.

" + +#: vimode/appcommands.cpp:551 +#, kde-format +msgid "

ls

list current buffers

" +msgstr "

ls

списък на текущите буфери

" + +#: vimode/cmds.cpp:52 +#, kde-format +msgid "Missing argument. Usage: %1 " +msgstr "Липсващ аргумент. Употреба: %1 <от>" + +#: vimode/cmds.cpp:68 +#, kde-format +msgid "No mapping found for \"%1\"" +msgstr "Не е намерена схема за„%1“" + +#: vimode/cmds.cpp:71 +#, kde-format +msgid "\"%1\" is mapped to \"%2\"" +msgstr "„%1“е свързано с „%2“" + +#: vimode/cmds.cpp:77 +#, kde-format +msgid "Missing argument(s). Usage: %1 []" +msgstr "Липсващи аргументи. Употреба: %1 <от> [<до>]" + +#: vimode/cmds.cpp:145 vimode/cmds.cpp:161 +#, kde-format +msgid "Wrong arguments" +msgstr "Грешни аргументи" + +#: vimode/config/configtab.cpp:205 +#, kde-format +msgid "Unable to open the config file for reading." +msgstr "Грешка при отваряне на файла с настройки за четене" + +#: vimode/config/configtab.cpp:205 +#, kde-format +msgid "Unable to open file" +msgstr "Грешка при отваряне на файл" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkViCommandsOverride) +#: vimode/config/configwidget.ui:35 +#, kde-format +msgid "" +"When selected, vi commands will override Kate's built-in commands. For " +"example: Ctrl+R will redo, and override the standard action (showing the " +"search and replace dialog)." +msgstr "" +"Когато бъдат избрани, командите vi ще заменят вградените команди на Kate. " +"Например: Ctrl + R ще извърши операцията Повтаряне и ще замени стандартното " +"действие (показване на диалогов прозорец за търсене и замяна)." + +#. i18n: ectx: property (text), widget (QCheckBox, chkViCommandsOverride) +#: vimode/config/configwidget.ui:38 +#, kde-format +msgid "Let Vi commands override Kate shortcuts" +msgstr "Командите на Vi заменят клавишните комбинации на Kate" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkViRelLineNumbers) +#: vimode/config/configwidget.ui:45 +#, kde-format +msgid "" +"Show the line number relative to the line with the cursor in front of each " +"line." +msgstr "Показване пред всеки ред номера на реда спрямо реда с курсора." + +#. i18n: ectx: property (text), widget (QCheckBox, chkViRelLineNumbers) +#: vimode/config/configwidget.ui:48 +#, kde-format +msgid "Display relative line numbers" +msgstr "Показване на относителни номера на редове" + +#. i18n: ectx: property (whatsThis), widget (QGroupBox, groupBox) +#: vimode/config/configwidget.ui:63 +#, kde-format +msgid "" +"Key mapping is used to change the meaning of typed keys. This allows you to " +"move commands to other keys or make special keypresses for doing a series of " +"commands.\n" +"\n" +"Example:\n" +"\"\" → \"I-- \"\n" +"\n" +"This will prepend \"-- \" to a line when pressing F2." +msgstr "" +"Клавишните схеми се използват за промяна на значението на въведените " +"клавиши. Това ви позволява да задавате команди към други клавиши или да " +"извършвате серия от команди чрез специални клавишни комбинации .\n" +"\n" +"Например:\n" +"\"\" → \"I-- \"\n" +"\n" +"Това ще добави \"--\" към реда при натискане на F2." + +#. i18n: ectx: property (title), widget (QGroupBox, groupBox) +#: vimode/config/configwidget.ui:66 +#, kde-format +msgid "Key Mapping" +msgstr "Клавишни схеми" + +#. i18n: ectx: attribute (title), widget (QWidget, normalTab) +#: vimode/config/configwidget.ui:76 +#, kde-format +msgid "Normal mode" +msgstr "Нормален режим" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:95 vimode/config/configwidget.ui:133 +#: vimode/config/configwidget.ui:171 +#, kde-format +msgid "Command" +msgstr "Команда" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:100 vimode/config/configwidget.ui:138 +#: vimode/config/configwidget.ui:176 +#, kde-format +msgid "Replacement" +msgstr "Заместване" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:105 vimode/config/configwidget.ui:143 +#: vimode/config/configwidget.ui:181 +#, kde-format +msgid "Recursive?" +msgstr "Рекурсивен?" + +#. i18n: ectx: attribute (title), widget (QWidget, insertTab) +#: vimode/config/configwidget.ui:114 +#, kde-format +msgid "Insert mode" +msgstr "Режим на вмъкване" + +#. i18n: ectx: attribute (title), widget (QWidget, visualTab) +#: vimode/config/configwidget.ui:152 +#, kde-format +msgid "Visual mode" +msgstr "Визуален режим" + +#. i18n: ectx: property (text), widget (QPushButton, btnRemoveSelectedRows) +#: vimode/config/configwidget.ui:195 +#, kde-format +msgid "Remove selected" +msgstr "Премахване на избраното" + +#. i18n: ectx: property (text), widget (QPushButton, btnAddNewRow) +#: vimode/config/configwidget.ui:202 +#, kde-format +msgid "Add new mapping" +msgstr "Добавяне на нова схема" + +#. i18n: ectx: property (toolTip), widget (QPushButton, btnImportNormal) +#: vimode/config/configwidget.ui:209 +#, kde-format +msgid "" +"Read a vimrc file and attempt to import mappings specified with the " +"\"[n]noremap\" command." +msgstr "" +"Прочитане на vimrc файл и опит за импортиране на схемите, посочени с\"[n] " +"noremap\"команда." + +#. i18n: ectx: property (text), widget (QPushButton, btnImportNormal) +#: vimode/config/configwidget.ui:212 +#, kde-format +msgid "Import from vimrc file" +msgstr "Импортиране от vimrc файл" + +#: vimode/marks.cpp:117 +#, kde-format +msgid "Mark set: %1" +msgstr "Маркерът е зададен: %1" + +#: vimode/marks.cpp:163 +#, kde-format +msgid "There are no more chars for the next bookmark." +msgstr "Няма повече символи за следващата отметка." + +#: vimode/modes/insertvimode.cpp:261 vimode/modes/modebase.cpp:794 +#: vimode/modes/normalvimode.cpp:3567 +#, kde-format +msgid "Nothing in register %1" +msgstr "Няма запис в регистъра %1" + +#: vimode/modes/normalvimode.cpp:1691 +#, kde-format +msgid "'%1' %2, Hex %3, Octal %4" +msgstr "„%1“ %2, Десетична %3, Осмична %4" + +#: vimode/modes/normalvimode.cpp:2534 +#, kde-format +msgid "Mark not set: %1" +msgstr "Маркирането не е зададено: %1" diff --git a/local/recipes/kde/kf6-ktexteditor/source/po/bn/ktexteditor6.po b/local/recipes/kde/kf6-ktexteditor/source/po/bn/ktexteditor6.po new file mode 100644 index 0000000000..e3c333e65f --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/po/bn/ktexteditor6.po @@ -0,0 +1,10193 @@ +# translation of katepart.po to Bengali +# Deepayan Sarkar , 2004, 2005. +msgid "" +msgstr "" +"Project-Id-Version: katepart\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2026-06-23 00:41+0000\n" +"PO-Revision-Date: 2005-01-04 11:33-0600\n" +"Last-Translator: Deepayan Sarkar \n" +"Language-Team: Bengali \n" +"Language: bn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.3.1\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: completion/katecompletionmodel.cpp:147 +#, kde-format +msgid "Argument-hints" +msgstr "" + +#: completion/katecompletionmodel.cpp:148 +#, kde-format +msgid "Best matches" +msgstr "" + +#: completion/katekeywordcompletion.cpp:143 +#, kde-format +msgid "Language keywords" +msgstr "" + +#: completion/katewordcompletion.cpp:74 +#, fuzzy, kde-format +msgid "Auto Word Completion" +msgstr "নির্বাচন" + +#: completion/katewordcompletion.cpp:301 +#, fuzzy, kde-format +msgid "Shell Completion" +msgstr "নির্বাচন" + +#: completion/katewordcompletion.cpp:306 +#, kde-format +msgid "Reuse Word Above" +msgstr "" + +#: completion/katewordcompletion.cpp:312 +#, kde-format +msgid "Reuse Word Below" +msgstr "" + +#. i18n: ectx: Menu (file) +#: data/katepart5ui.rc:4 +#, fuzzy, kde-format +msgid "&File" +msgstr "ফাই&ল টাইপ:" + +#. i18n: ectx: Menu (file_export) +#: data/katepart5ui.rc:10 +#, kde-format +msgid "&Print/Export" +msgstr "" + +#. i18n: ectx: Menu (edit) +#: data/katepart5ui.rc:17 +#, fuzzy, kde-format +msgid "&Edit" +msgstr "&সম্পাদনা..." + +#. i18n: ectx: Menu (edit_find_menu) +#: data/katepart5ui.rc:36 +#, kde-format +msgid "Find Variants" +msgstr "" + +#. i18n: ectx: Menu (selection) +#: data/katepart5ui.rc:46 +#, fuzzy, kde-format +msgid "Selection" +msgstr "নির্বাচন" + +#. i18n: ectx: Menu (capitalization) +#: data/katepart5ui.rc:53 +#, kde-format +msgid "Capitalization" +msgstr "" + +#. i18n: ectx: Menu (view) +#: data/katepart5ui.rc:73 +#, fuzzy, kde-format +msgid "&View" +msgstr "&নতুন" + +#. i18n: ectx: Menu (view_menu_word_wrap) +#: data/katepart5ui.rc:78 +#, fuzzy, kde-format +msgid "Word Wrap" +msgstr "দেখাও" + +#. i18n: ectx: Menu (view_menu_borders) +#: data/katepart5ui.rc:84 dialogs/katedialogs.cpp:747 +#, fuzzy, kde-format +msgid "Borders" +msgstr "বাঁদিক প্রান্ত" + +#. i18n: ectx: Menu (codefolding) +#: data/katepart5ui.rc:92 +#, kde-format +msgid "&Code Folding" +msgstr "" + +#. i18n: ectx: Menu (go) +#: data/katepart5ui.rc:109 +#, kde-format +msgid "&Go" +msgstr "" + +#. i18n: ectx: Menu (tools) +#: data/katepart5ui.rc:124 +#, fuzzy, kde-format +msgid "&Tools" +msgstr "যন্ত্রপাতি (_য)" + +#. i18n: ectx: Menu (wordcompletion) +#: data/katepart5ui.rc:138 +#, fuzzy, kde-format +msgid "Word Completion" +msgstr "নির্বাচন" + +#. i18n: ectx: Menu (spelling) +#: data/katepart5ui.rc:144 spellcheck/spellingmenu.cpp:71 +#: spellcheck/spellingmenu.cpp:195 +#, kde-format +msgid "Spelling" +msgstr "" + +#. i18n: ectx: Menu (speech) +#: data/katepart5ui.rc:153 data/katepart5ui.rc:184 +#, kde-format +msgid "Text to Speech" +msgstr "" + +#. i18n: ectx: Menu (settings) +#: data/katepart5ui.rc:161 +#, fuzzy, kde-format +msgid "&Settings" +msgstr "টেক্স&ট সেটিংস" + +#. i18n: ectx: ToolBar (mainToolBar) +#: data/katepart5ui.rc:192 +#, kde-format +msgid "Main Toolbar" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/bordersappearanceconfigwidget.ui:25 +#, fuzzy, kde-format +msgid "Code block folding:" +msgstr "দেখাও" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowFoldingMarkers) +#: dialogs/bordersappearanceconfigwidget.ui:32 +#, fuzzy, kde-format +msgid "" +"If this option is checked, every new view will display marks for folding." +msgstr "" +"এই অপশন আছে প্রত্যেক নতুন দেখাও দেখাও চিহ্ন জন্য কোড ভাঁজ করার সুবিধাযুক্ত যদি কোড " +"ভাঁজ করার সুবিধাযুক্ত আছে পাওয়া যাচ্ছে." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowFoldingMarkers) +#: dialogs/bordersappearanceconfigwidget.ui:35 +#, kde-format +msgid "Show arrows to collapse code blocks" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowFoldingPreview) +#: dialogs/bordersappearanceconfigwidget.ui:42 +#, fuzzy, kde-format +msgid "" +"If checked, hovering over a folded region shows a preview of the folded text " +"in a popup." +msgstr "" +"এই অপশন আছে প্রত্যেক নতুন দেখাও দেখাও একটি আইকন সীমানা ওপর টি বাঁদিক হাত " +"পাশ

আইকন সীমানা প্রদর্শন করে বুকমার্ক জন্য." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowFoldingPreview) +#: dialogs/bordersappearanceconfigwidget.ui:45 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Show preview of folded blocks on hover" +msgstr "বর্তমান ডকুমেন্টটি ছাপানো হবে।" + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/bordersappearanceconfigwidget.ui:52 +#, kde-format +msgid "Folding arrows visibility:" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbFoldingArrowVisiblity) +#: dialogs/bordersappearanceconfigwidget.ui:63 +#, fuzzy, kde-format +#| msgid "Show &Icon Border" +msgid "Show on Hover" +msgstr "&আইকনের সীমা দেখাও " + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbFoldingArrowVisiblity) +#: dialogs/bordersappearanceconfigwidget.ui:68 +#, fuzzy, kde-format +msgid "Show Always" +msgstr "সবসময় চালু" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/bordersappearanceconfigwidget.ui:92 +#, kde-format +msgid "Left side:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkIconBorder) +#: dialogs/bordersappearanceconfigwidget.ui:99 +#, fuzzy, kde-format +msgid "" +"

If this option is checked, every new view will display an icon border on " +"the left hand side.

The icon border shows bookmark signs, for instance." +"

" +msgstr "" +"এই অপশন আছে প্রত্যেক নতুন দেখাও দেখাও একটি আইকন সীমানা ওপর টি বাঁদিক হাত " +"পাশ

আইকন সীমানা প্রদর্শন করে বুকমার্ক জন্য." + +#. i18n: ectx: property (text), widget (QCheckBox, chkIconBorder) +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMarks) +#: dialogs/bordersappearanceconfigwidget.ui:102 +#: dialogs/bordersappearanceconfigwidget.ui:155 +#, fuzzy, kde-format +msgid "Show marks" +msgstr "দেখাও" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkLineNumbers) +#: dialogs/bordersappearanceconfigwidget.ui:109 +#, fuzzy, kde-format +msgid "" +"If this option is checked, every new view will display line numbers on the " +"left hand side." +msgstr "এই অপশন আছে প্রত্যেক নতুন দেখাও দেখাও লাইন সংখ্যা ওপর টি বাঁদিক হাত পাশ." + +#. i18n: ectx: property (text), widget (QCheckBox, chkLineNumbers) +#: dialogs/bordersappearanceconfigwidget.ui:112 +#, kde-format +msgid "Show &line numbers" +msgstr "লাই&ন নম্বর দেখাও" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowLineModification) +#: dialogs/bordersappearanceconfigwidget.ui:119 +#, fuzzy, kde-format +msgid "" +"If this option is checked, a small indicator for modified and saved lines is " +"shown on the left hand side." +msgstr "এই অপশন আছে প্রত্যেক নতুন দেখাও দেখাও লাইন সংখ্যা ওপর টি বাঁদিক হাত পাশ." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowLineModification) +#: dialogs/bordersappearanceconfigwidget.ui:122 +#, kde-format +msgid "Highlight changed and unsaved lines" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/bordersappearanceconfigwidget.ui:145 +#, fuzzy, kde-format +msgid "Scrollbars:" +msgstr "দেখাও" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMarks) +#: dialogs/bordersappearanceconfigwidget.ui:152 +#, fuzzy, kde-format +msgid "" +"

If this option is checked, every new view will show marks on the vertical " +"scrollbar.

These marks will show bookmarks, for instance.

" +msgstr "" +"এই অপশন আছে প্রত্যেক নতুন দেখাও দেখাও একটি আইকন সীমানা ওপর টি বাঁদিক হাত " +"পাশ

আইকন সীমানা প্রদর্শন করে বুকমার্ক জন্য." + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarPreview) +#: dialogs/bordersappearanceconfigwidget.ui:162 +#, fuzzy, kde-format +msgid "" +"

If this option is checked, hovering over the vertical scrollbar will show " +"a preview of the text.

" +msgstr "" +"এই অপশন আছে প্রত্যেক নতুন দেখাও দেখাও একটি আইকন সীমানা ওপর টি বাঁদিক হাত " +"পাশ

আইকন সীমানা প্রদর্শন করে বুকমার্ক জন্য." + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarPreview) +#: dialogs/bordersappearanceconfigwidget.ui:165 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Show preview when hovering over scrollbar" +msgstr "বর্তমান ডকুমেন্টটি ছাপানো হবে।" + +#. i18n: ectx: property (text), widget (QLabel, lblShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:172 +#, kde-format +msgid "Scro&llbars visibility:" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:183 dialogs/katedialogs.cpp:755 +#, kde-format +msgid "Always On" +msgstr "সবসময় চালু" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:188 +#, kde-format +msgid "Show When Needed" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:193 +#, fuzzy, kde-format +msgid "Always Off" +msgstr "সবসময় চালু" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/bordersappearanceconfigwidget.ui:217 +#, fuzzy, kde-format +msgid "Minimap:" +msgstr "ট্যাব প্রস্থ:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMiniMap) +#: dialogs/bordersappearanceconfigwidget.ui:224 +#, fuzzy, kde-format +msgid "" +"If this option is checked, every new view will show a mini map on the " +"vertical scrollbar." +msgstr "এই অপশন আছে প্রত্যেক নতুন দেখাও দেখাও লাইন সংখ্যা ওপর টি বাঁদিক হাত পাশ." + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMiniMap) +#: dialogs/bordersappearanceconfigwidget.ui:227 +#, fuzzy, kde-format +msgid "Show minimap" +msgstr "দেখাও" + +#. i18n: ectx: property (text), widget (QLabel, labelMiniMapWidth) +#: dialogs/bordersappearanceconfigwidget.ui:250 +#, fuzzy, kde-format +msgid "Minim&ap width:" +msgstr "ট্যাব প্রস্থ:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMiniMapAll) +#: dialogs/bordersappearanceconfigwidget.ui:263 +#, fuzzy, kde-format +msgid "" +"If this option is checked, every new view will show a mini map of the whole " +"document on the vertical scrollbar." +msgstr "এই অপশন আছে প্রত্যেক নতুন দেখাও দেখাও লাইন সংখ্যা ওপর টি বাঁদিক হাত পাশ." + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMiniMapAll) +#: dialogs/bordersappearanceconfigwidget.ui:266 +#, fuzzy, kde-format +msgid "Map the whole document" +msgstr "সংরক্ষণ করো টি বর্তমান নথী" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbSortBookmarksByCreation) +#: dialogs/bordersappearanceconfigwidget.ui:276 +#, fuzzy, kde-format +msgid "" +"Each new bookmark will be added to the bottom, independently from where it " +"is placed in the document." +msgstr "" +"নতুন বুকমার্ক প্রতি টি তলা স্বাধীনভাবে থেকে কোথায় এটি আছে স্থাপিত ইঞ্চি টি নথী." + +#. i18n: ectx: property (text), widget (QRadioButton, rbSortBookmarksByCreation) +#: dialogs/bordersappearanceconfigwidget.ui:279 +#, kde-format +msgid "By date created" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbSortBookmarksByPosition) +#: dialogs/bordersappearanceconfigwidget.ui:286 +#, fuzzy, kde-format +msgid "The bookmarks will be ordered by the line numbers they are placed at." +msgstr " নির্দেশকৃত দ্বারা টি লাইন সংখ্যা তারা স্থাপিত -তে." + +#. i18n: ectx: property (text), widget (QRadioButton, rbSortBookmarksByPosition) +#: dialogs/bordersappearanceconfigwidget.ui:289 +#, fuzzy, kde-format +#| msgid "Show &line numbers" +msgid "By line number" +msgstr "লাই&ন নম্বর দেখাও" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/bordersappearanceconfigwidget.ui:296 +#, fuzzy, kde-format +#| msgid "Sort Bookmarks Menu" +msgid "Sort bookmarks menu:" +msgstr "বুকমার্ক মেনু সাজাও" + +#: dialogs/clipboardhistorydialog.cpp:264 +#, fuzzy, kde-format +msgid "Select text to paste." +msgstr "প্রতি পরবর্তী" + +#: dialogs/clipboardhistorydialog.cpp:296 +#, kde-format +msgid "No entries in clipboard history" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbGeneral) +#. i18n: ectx: property (title), widget (QGroupBox, gbViInputMode) +#: dialogs/completionconfigtab.ui:29 dialogs/katedialogs.cpp:609 +#: dialogs/katedialogs.cpp:743 dialogs/katedialogs.cpp:1026 +#: vimode/config/configwidget.ui:29 +#, kde-format +msgid "General" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoCompletionEnabled) +#: dialogs/completionconfigtab.ui:35 +#, fuzzy, kde-format +msgid "Enable &auto completion" +msgstr "নির্বাচন" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoSelectFirstEntry) +#: dialogs/completionconfigtab.ui:42 +#, fuzzy, kde-format +msgid "Auto select &first completion entry" +msgstr "স্বয়ংক্রিয়" + +#. i18n: ectx: property (text), widget (QCheckBox, chkTabCompletion) +#: dialogs/completionconfigtab.ui:49 +#, kde-format +msgid "Cycle through the list of completions using Tab / Shift+Tab" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkEnterCompletion) +#: dialogs/completionconfigtab.ui:56 +#, kde-format +msgid "" +"Pressing enter will insert the text of selected completion item into the " +"editor. If disabled, Tab key or double-click can still be used to trigger " +"completion." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkEnterCompletion) +#: dialogs/completionconfigtab.ui:59 +#, fuzzy, kde-format +msgid "Use Enter key to insert selected completion" +msgstr "এই প্রতি একটি নির্বাচিত ব্লক -র লেখা." + +#. i18n: ectx: property (title), widget (QGroupBox, gbWordCompletion) +#: dialogs/completionconfigtab.ui:69 +#, fuzzy, kde-format +msgid "A&uto word completion" +msgstr "নির্বাচন" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/completionconfigtab.ui:83 +#, kde-format +msgid "Minimal word length to complete:" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, removeTail) +#: dialogs/completionconfigtab.ui:111 +#, kde-format +msgid "Remove tail of a previous word when completion item chosen from a list" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, removeTail) +#: dialogs/completionconfigtab.ui:114 +#, fuzzy, kde-format +msgid "Remove tail on complete" +msgstr "সরিয়ে ফেলো অনুসরণ করা" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/completionconfigtab.ui:121 +#, kde-format +msgid "" +"Word completion provides suggestions based on the words found in the document" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbKeywordCompletion) +#: dialogs/completionconfigtab.ui:134 +#, fuzzy, kde-format +msgid "&Keyword completion" +msgstr "নির্বাচন" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/completionconfigtab.ui:143 +#, kde-format +msgid "" +"Keyword completion provides suggestions based on the keywords which exist in " +"the document's language." +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbShowDoc) +#: dialogs/completionconfigtab.ui:156 +#, fuzzy, kde-format +msgid "Documentation with completion" +msgstr "নির্বাচন" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/completionconfigtab.ui:165 +#, kde-format +msgid "" +"Show documentation beside completion box. If disabled, documentation can be " +"shown by pressing Alt key." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/editconfigwidget.ui:22 +#, fuzzy, kde-format +msgid "Word wrap:" +msgstr "দেখাও" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkStaticWordWrap) +#: dialogs/editconfigwidget.ui:29 +#, fuzzy, kde-format +msgid "" +"

Automatically start a new line of text when the current line exceeds the " +"length specified by the Wrap words at: option.

This option does " +"not wrap existing lines of text - use the Apply Static Word Wrap " +"option in the Tools menu for that purpose.

If you want lines to " +"be visually wrapped instead, according to the width of the view, " +"enable Dynamic Word Wrap in the Appearance config page.

" +msgstr "" +"শুরু একটি নতুন লাইন -র লেখা যখন টি বর্তমান লাইন ছাড়িয়ে যাওয়া টি দৈর্ঘ্য নির্বাচিত " +"দ্বারা টি শব্দাবলী -তে অপশন

অপশন করে নয় ঘুরিয়ে বিদ্যমান -র লেখা ব্যবহার " +"টি প্রয়োগ অপশন ইঞ্চি টি যন্ত্রপাতি (_য) মেনু জন্য ঐ উদ্দেশ্য

আপনি " +"চাই প্রতি দৃশ্যত মোড়ানো পরিবর্তে প্রতি টি প্রস্থ -র টি দেখাও সক্রিয় " +"ইঞ্চি টি প্রদর্শন ডিফল্ট কনফিগ পাতা." + +#. i18n: ectx: property (text), widget (QCheckBox, chkStaticWordWrap) +#: dialogs/editconfigwidget.ui:32 +#, kde-format +msgid "Wrap &words at a fixed column" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowStaticWordWrapMarker) +#: dialogs/editconfigwidget.ui:39 +#, fuzzy, kde-format +msgid "" +"

If this option is checked, a vertical line will be drawn at the word wrap " +"column as defined in the Editing properties.

" +msgstr "" +"

এই অপশন আছে একটি উলম্ব, খাড়া লাইন অঙ্কিত -তে টি শব্দ ঘুরিয়ে কলাম উল্লেখকৃত " +"ইঞ্চি টি বৈশিষ্ট্যাবলী

ঐ টি শব্দ ঘুরিয়ে আছে শুধু অঙ্কিত যদি আপনি " +"ব্যবহার একটি স্থায়ী শব্দের গ্রাম ফন্ট." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowStaticWordWrapMarker) +#: dialogs/editconfigwidget.ui:42 +#, kde-format +msgid "&Draw vertical line at the word wrap column" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblWordWrap) +#: dialogs/editconfigwidget.ui:49 +#, fuzzy, kde-format +msgid "Wra&p words at:" +msgstr "শব্দাবলী -তে:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbWordWrap) +#: dialogs/editconfigwidget.ui:59 +#, fuzzy, kde-format +msgid "" +"If the Word Wrap option is selected this entry determines the length (in " +"characters) at which the editor will automatically start a new line." +msgstr "" +"টি অপশন আছে নির্বাচিত এই এন্ট্রি, অন্তর্ভুক্তি (Entry) নির্ধারণ করে টি দৈর্ঘ্য ইঞ্চি " +"অক্ষর -তে কোন টি স্বয়ংক্রীয়ভাবে শুরু একটি নতুন লাইন." + +#. i18n: ectx: property (text), widget (QLabel, lblInputMode) +#: dialogs/editconfigwidget.ui:91 +#, fuzzy, kde-format +msgid "Default input mode:" +msgstr "মোড:" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/editconfigwidget.ui:120 +#, fuzzy, kde-format +msgid "Brackets:" +msgstr "বন্ধনী" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoBrackets) +#: dialogs/editconfigwidget.ui:127 +#, kde-format +msgid "Automatically close brackets when opening bracket is typed" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLabel, lbEncloseSelection) +#: dialogs/editconfigwidget.ui:140 +#, kde-format +msgid "" +"When some text is selected these chars will be added on both its sides in a " +"way \"Auto Bracket\" do" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lbEncloseSelection) +#: dialogs/editconfigwidget.ui:143 +#, fuzzy, kde-format +msgid "Enclosing characters:" +msgstr "মধ্যে ঢোকাও ট্যাব বর্ণ, অক্ষর" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/editconfigwidget.ui:166 +#, kde-format +msgid "Copy and paste:" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkTextDragAndDrop) +#: dialogs/editconfigwidget.ui:173 +#, fuzzy, kde-format +msgid "Move selected text when dragged" +msgstr "নির্বাচিত" + +#. i18n: ectx: property (text), widget (QCheckBox, chkSmartCopyCut) +#: dialogs/editconfigwidget.ui:180 +#, kde-format +msgid "Copy/cut the current line if invoked without any text selected" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkMousePasteAtCursorPosition) +#: dialogs/editconfigwidget.ui:187 +#, kde-format +msgid "Don't move the text cursor when pasting by mouse" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblClipboardHistoryEntries) +#: dialogs/editconfigwidget.ui:194 +#, kde-format +msgid "Max Clipboard History Entries:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbClipboardHistoryEntries) +#: dialogs/editconfigwidget.ui:204 +#, kde-format +msgid "This determines the number of entries to keep in the clipboard history" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblBracketHelp) +#: dialogs/editconfigwidget.ui:226 +#, kde-format +msgid "" +"When you type these characters while text is selected, they will surround " +"the selected text instead of replacing it." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAccessibility) +#: dialogs/editconfigwidget.ui:252 +#, kde-format +msgid "Enable accessibility notifications" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/editconfigwidget.ui:259 +#, kde-format +msgid "Accessibility:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblFiletype) +#: dialogs/filetypeconfigwidget.ui:14 +#, kde-format +msgid "&Filetype:" +msgstr "ফাই&ল টাইপ:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbFiletypes) +#: dialogs/filetypeconfigwidget.ui:24 +#, kde-format +msgid "Select the filetype you want to change." +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, btnNew) +#: dialogs/filetypeconfigwidget.ui:31 +#, fuzzy, kde-format +msgid "Create a new file type." +msgstr "সংরক্ষণ করো টি বর্তমান নথী" + +#. i18n: ectx: property (text), widget (QPushButton, btnNew) +#: dialogs/filetypeconfigwidget.ui:34 +#, fuzzy, kde-format +msgid "&New" +msgstr "&নতুন..." + +#. i18n: ectx: property (whatsThis), widget (QPushButton, btnDelete) +#: dialogs/filetypeconfigwidget.ui:41 +#, fuzzy, kde-format +msgid "Delete the current file type." +msgstr "সংরক্ষণ করো টি বর্তমান নথী" + +#. i18n: ectx: property (text), widget (QPushButton, btnDelete) +#: dialogs/filetypeconfigwidget.ui:44 syntax/katethemeconfig.cpp:1132 +#, fuzzy, kde-format +msgid "&Delete" +msgstr "নির্বাচিত" + +#. i18n: ectx: property (title), widget (QGroupBox, gbProperties) +#: dialogs/filetypeconfigwidget.ui:66 mode/katemodeconfigpage.cpp:272 +#, fuzzy, kde-format +msgid "Properties" +msgstr "বাক্সর বৈশিষ্ট্যাবলী" + +#. i18n: ectx: property (text), widget (QLabel, lblName) +#: dialogs/filetypeconfigwidget.ui:72 +#, fuzzy, kde-format +msgid "&Name:" +msgstr "নাম:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtName) +#: dialogs/filetypeconfigwidget.ui:82 +#, kde-format +msgid "" +"The name of the filetype will be the text of the corresponding menu item." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblSection) +#: dialogs/filetypeconfigwidget.ui:89 +#, fuzzy, kde-format +msgid "&Section:" +msgstr "নির্বাচন" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtSection) +#: dialogs/filetypeconfigwidget.ui:99 +#, kde-format +msgid "The section name is used to organize the file types in menus." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblVariables) +#: dialogs/filetypeconfigwidget.ui:106 +#, fuzzy, kde-format +msgid "&Variables:" +msgstr "নিষ্ক্রিয়" + +#. i18n: ectx: property (whatsThis), widget (VariableLineEdit, edtVariables) +#: dialogs/filetypeconfigwidget.ui:116 +#, kde-format +msgid "" +"

This string allows to configure Kate's settings for the files selected by " +"this mimetype using Kate variables. Almost any configuration option can be " +"set, such as highlight, indent-mode, encoding, etc.

For a full list of " +"known variables, see the manual.

" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblHl) +#: dialogs/filetypeconfigwidget.ui:123 +#, fuzzy, kde-format +msgid "&Highlighting:" +msgstr "হাইলাইটিং" + +#. i18n: ectx: property (text), widget (QLabel, lblIndenter) +#: dialogs/filetypeconfigwidget.ui:136 +#, fuzzy, kde-format +msgid "&Indentation mode:" +msgstr "মোড:" + +#. i18n: ectx: property (text), widget (QLabel, lblExtensions) +#: dialogs/filetypeconfigwidget.ui:149 +#, fuzzy, kde-format +msgid "File e&xtensions:" +msgstr "ফাইল এক্সটেন&শন:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtFileExtensions) +#: dialogs/filetypeconfigwidget.ui:159 +#, kde-format +msgid "" +"The wildcards mask allows to select files by filename. A typical mask uses " +"an asterisk and the file extension, for example *.txt; *.text. " +"The string is a semicolon-separated list of masks." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblMimeTypes) +#: dialogs/filetypeconfigwidget.ui:166 +#, kde-format +msgid "MIME &types:" +msgstr "মাইম টা&ইপ:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtMimeTypes) +#: dialogs/filetypeconfigwidget.ui:181 +#, kde-format +msgid "" +"The mime type mask allows to select files by mimetype. The string is a " +"semicolon-separated list of mimetypes, for example text/plain; text/" +"english." +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QToolButton, btnMimeTypes) +#: dialogs/filetypeconfigwidget.ui:188 +#, kde-format +msgid "Displays a wizard that helps you easily select mimetypes." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblPriority) +#: dialogs/filetypeconfigwidget.ui:197 +#, kde-format +msgid "P&riority:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbPriority) +#: dialogs/filetypeconfigwidget.ui:207 +#, kde-format +msgid "" +"Sets priority for this file type. If more than one file type selects the " +"same file, the one with the highest priority will be used." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblMode) +#: dialogs/indentationconfigwidget.ui:43 +#, fuzzy, kde-format +msgid "Default indentation mode:" +msgstr "মোড:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbMode) +#: dialogs/indentationconfigwidget.ui:53 +#, kde-format +msgid "" +"This is a list of available indentation modes. The specified indentation " +"mode will be used for all new documents. Be aware that it is also possible " +"to set the indentation mode with document variables, modes or a .kateconfig " +"file." +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbIndentationMode) +#: dialogs/indentationconfigwidget.ui:75 +#, fuzzy, kde-format +msgid "Indent using" +msgstr "মোড:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbIndentWidth) +#: dialogs/indentationconfigwidget.ui:81 +#, kde-format +msgid "" +"The indentation width is the number of spaces which is used to indent a " +"line. If the option Insert spaces instead of tabulators in the " +"section Editing is disabled, a Tab character is inserted if " +"the indentation is divisible by the tab width." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentWithSpaces) +#: dialogs/indentationconfigwidget.ui:97 +#, fuzzy, kde-format +#| msgid "&Replace" +msgid "&Spaces" +msgstr "&বদলাও" + +#. i18n: ectx: property (text), widget (QLabel, lblIndentWidth) +#: dialogs/indentationconfigwidget.ui:104 +#, fuzzy, kde-format +msgid "&Indentation width:" +msgstr "সঙ্গে" + +#. i18n: ectx: property (text), widget (QLabel, lblTabWidth) +#: dialogs/indentationconfigwidget.ui:114 +#, fuzzy, kde-format +msgid "Tab wi&dth:" +msgstr "ট্যাব প্রস্থ:" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentWithTabs) +#: dialogs/indentationconfigwidget.ui:153 +#, fuzzy, kde-format +msgid "&Tabulators" +msgstr "ট্যা&ব দেখাও" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentMixed) +#: dialogs/indentationconfigwidget.ui:160 +#, fuzzy, kde-format +msgid "Tabulators &and Spaces" +msgstr "ট্যা&ব দেখাও" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoDetectIndent) +#: dialogs/indentationconfigwidget.ui:167 +#, fuzzy, kde-format +msgid "Automatically detect file indentation" +msgstr "স্বয়ংক্রিয়" + +#. i18n: ectx: property (title), widget (QGroupBox, gbProperties) +#: dialogs/indentationconfigwidget.ui:177 +#, fuzzy, kde-format +msgid "Indentation Properties" +msgstr "নিয়মাবলী" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkKeepExtraSpaces) +#: dialogs/indentationconfigwidget.ui:183 +#, kde-format +msgid "" +"If this option is disabled, changing the indentation level aligns a line to " +"a multiple of the width specified in Indentation width." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkKeepExtraSpaces) +#: dialogs/indentationconfigwidget.ui:186 +#, fuzzy, kde-format +msgid "&Keep extra spaces" +msgstr "অতিরিক্ত" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkIndentPaste) +#: dialogs/indentationconfigwidget.ui:193 +#, kde-format +msgid "" +"If this option is selected, pasted code from the clipboard is indented. " +"Triggering the undo-action removes the indentation." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkIndentPaste) +#: dialogs/indentationconfigwidget.ui:196 +#, kde-format +msgid "Adjust indentation of code &pasted from the clipboard" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbKeys) +#: dialogs/indentationconfigwidget.ui:206 +#, fuzzy, kde-format +msgid "Indentation Actions" +msgstr "নিয়মাবলী" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackspaceUnindents) +#: dialogs/indentationconfigwidget.ui:212 +#, kde-format +msgid "" +"If this option is selected, the Backspace key decreases the " +"indentation level if the cursor is located in the leading blank space of a " +"line." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackspaceUnindents) +#: dialogs/indentationconfigwidget.ui:215 +#, fuzzy, kde-format +msgid "&Backspace key in leading blank space unindents" +msgstr "&Backspace কী (Key)" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/indentationconfigwidget.ui:225 +#, kde-format +msgid "" +"\n" +"

Tab key action (if no selection exists) Tab " +"to align the current line in the current code block like in Emacs, make " +"Tab a shortcut to the action Format Indentation." +"\">More ...

" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabAdvances) +#: dialogs/indentationconfigwidget.ui:276 +#, kde-format +msgid "" +"If this option is selected, the Tab key always inserts white space so " +"that the next tab position is reached. If the option Insert spaces " +"instead of tabulators in the section Editing is enabled, spaces " +"are inserted; otherwise, a single tabulator is inserted." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabAdvances) +#: dialogs/indentationconfigwidget.ui:279 +#, kde-format +msgid "Always advance to the &next tab position" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabIndents) +#: dialogs/indentationconfigwidget.ui:286 +#, kde-format +msgid "" +"If this option is selected, the Tab key always indents the current " +"line by the number of character positions specified in Indentation width." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabIndents) +#: dialogs/indentationconfigwidget.ui:289 +#, kde-format +msgid "Always increase indentation &level" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabSmart) +#: dialogs/indentationconfigwidget.ui:296 +#, kde-format +msgid "" +"If this option is selected, the Tab key either indents the current " +"line or advances to the next tab position.

If the insertion point is at " +"or before the first non-space character in the line, or if there is a " +"selection, the current line is indented by the number of character positions " +"specified in Indentation width.

If the insertion point is located " +"after the first non-space character in the line and there is no selection, " +"white space is inserted so that the next tab position is reached: if the " +"option Insert spaces instead of tabulators in the section Editing is enabled, spaces are inserted; otherwise, a single tabulator is " +"inserted." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabSmart) +#: dialogs/indentationconfigwidget.ui:299 +#, kde-format +msgid "Increase indentation level if in l&eading blank space" +msgstr "" + +#: dialogs/katedialogs.cpp:185 dialogs/katedialogs.cpp:187 +#, fuzzy, kde-format +msgid "%v character" +msgid_plural "%v characters" +msgstr[0] "মধ্যে ঢোকাও ট্যাব বর্ণ, অক্ষর" +msgstr[1] "মধ্যে ঢোকাও ট্যাব বর্ণ, অক্ষর" + +#: dialogs/katedialogs.cpp:211 +#, kde-format +msgid "Indentation" +msgstr "" + +#: dialogs/katedialogs.cpp:295 +#, fuzzy, kde-format +msgid "Auto Completion" +msgstr "নির্বাচন" + +#: dialogs/katedialogs.cpp:362 +#, kde-format +msgid "Spellcheck" +msgstr "বানান পরীক্ষা" + +#: dialogs/katedialogs.cpp:410 dialogs/katedialogs.cpp:417 +#, fuzzy, kde-format +msgid "Alt" +msgstr "ferite" + +#: dialogs/katedialogs.cpp:411 dialogs/katedialogs.cpp:419 +#, kde-format +msgid "Ctrl" +msgstr "" + +#: dialogs/katedialogs.cpp:412 +#, kde-format +msgid "Meta" +msgstr "" + +#: dialogs/katedialogs.cpp:413 dialogs/katedialogs.cpp:421 +#, kde-format +msgid "Ctrl + Alt" +msgstr "" + +#: dialogs/katedialogs.cpp:414 +#, kde-format +msgid "Meta + Alt" +msgstr "" + +#: dialogs/katedialogs.cpp:415 +#, kde-format +msgid "Ctrl + Meta" +msgstr "" + +#: dialogs/katedialogs.cpp:418 +#, fuzzy, kde-format +msgid "Cmd" +msgstr "মন্তব্য" + +#: dialogs/katedialogs.cpp:420 +#, kde-format +msgid "Cmd + Alt" +msgstr "" + +#: dialogs/katedialogs.cpp:422 +#, kde-format +msgid "Cmd + Ctrl" +msgstr "" + +#: dialogs/katedialogs.cpp:480 +#, fuzzy, kde-format +msgid "Text Navigation" +msgstr "Sources" + +#: dialogs/katedialogs.cpp:582 +#, fuzzy, kde-format +msgctxt "Wrap words at (value is at 20 or larger)" +msgid "%v character" +msgid_plural "%v characters" +msgstr[0] "মধ্যে ঢোকাও ট্যাব বর্ণ, অক্ষর" +msgstr[1] "মধ্যে ঢোকাও ট্যাব বর্ণ, অক্ষর" + +#: dialogs/katedialogs.cpp:587 +#, kde-format +msgid "Feature is not active" +msgstr "" + +#: dialogs/katedialogs.cpp:589 +#, fuzzy, kde-format +msgid "Disable Feature" +msgstr "নিষ্ক্রিয়" + +#: dialogs/katedialogs.cpp:591 +#, kde-format +msgid "May be handy with Markdown" +msgstr "" + +#: dialogs/katedialogs.cpp:593 +#, kde-format +msgid "Mirror characters, similar but not exactly like auto brackets" +msgstr "" + +#: dialogs/katedialogs.cpp:595 +#, fuzzy, kde-format +msgid "Non letter character" +msgstr "মধ্যে ঢোকাও ট্যাব বর্ণ, অক্ষর" + +#: dialogs/katedialogs.cpp:712 +#, kde-format +msgid "Editing" +msgstr "সম্পাদনা" + +#: dialogs/katedialogs.cpp:717 +#, kde-format +msgid "Editing Options" +msgstr "সম্পাদনা সংক্রান্ত অপশন" + +#: dialogs/katedialogs.cpp:751 +#, fuzzy, kde-format +msgid "Statusbar" +msgstr "Sather" + +#: dialogs/katedialogs.cpp:753 +#, fuzzy, kde-format +msgid "Off" +msgstr "&বন্ধ" + +#: dialogs/katedialogs.cpp:754 +#, kde-format +msgid "Follow Line Numbers" +msgstr "লাইন নম্বর অনুসরণ করো" + +#: dialogs/katedialogs.cpp:945 dialogs/katedialogs.cpp:950 +#, fuzzy, kde-format +msgid "Appearance" +msgstr "আপারকেস" + +#: dialogs/katedialogs.cpp:986 +#, kde-format +msgid "" +"%1 backs up unsaved files to \"swap files.\" Swap files allow %1 to recover " +"your work in the case of a system crash. Disabling swap files may cause data " +"loss in case of a system crash." +msgstr "" + +#: dialogs/katedialogs.cpp:1027 +#, kde-format +msgid "Advanced" +msgstr "" + +#: dialogs/katedialogs.cpp:1092 +#, fuzzy, kde-format +msgid "" +"You did not provide a backup suffix or prefix. Using default suffix: '~'" +msgstr "সরবরাহ একটি ব্যাকআপ সাফিক্স ডিফল্ট, স্বাভাবিক অবস্থায় ব্যবহৃত" + +#: dialogs/katedialogs.cpp:1092 +#, fuzzy, kde-format +msgid "No Backup Suffix or Prefix" +msgstr "না" + +#: dialogs/katedialogs.cpp:1227 +#, kde-format +msgid "Open/Save" +msgstr "খোলো/সংরক্ষণ করো" + +#: dialogs/katedialogs.cpp:1232 +#, kde-format +msgid "File Opening & Saving" +msgstr "ফাইল খোলা এবং সংরক্ষণ করা" + +#: dialogs/katedialogs.cpp:1255 +#, kde-format +msgid "&Line:" +msgstr "" + +#: dialogs/katedialogs.cpp:1256 +#, kde-format +msgid "Go to line number from clipboard" +msgstr "" + +#: dialogs/katedialogs.cpp:1267 +#, kde-format +msgid "Go to" +msgstr "" + +#: dialogs/katedialogs.cpp:1347 +#, kde-format +msgid "No valid line number found in clipboard" +msgstr "" + +#: dialogs/katedialogs.cpp:1411 +#, fuzzy, kde-format +msgid "Dictionary:" +msgstr "নির্বাচন" + +#: dialogs/katedialogs.cpp:1463 +#, fuzzy, kde-format +msgid "Enable Auto Reload" +msgstr "নির্বাচন" + +#: dialogs/katedialogs.cpp:1466 +#, kde-format +msgid "" +"Reloads and will automatically reload without warning about disk changes " +"from now until you close either the tab or window." +msgstr "" + +#: dialogs/katedialogs.cpp:1471 +#, kde-format +msgid "View &Difference" +msgstr "" + +#: dialogs/katedialogs.cpp:1473 +#, kde-format +msgid "Shows a diff of the changes." +msgstr "" + +#: dialogs/katedialogs.cpp:1478 +#, fuzzy, kde-format +#| msgid "Reloa&d" +msgid "&Reload" +msgstr "আবার &পড়ো" + +#: dialogs/katedialogs.cpp:1480 +#, kde-format +msgid "Reloads the file from disk. Unsaved changes will be lost." +msgstr "" + +#: dialogs/katedialogs.cpp:1484 +#, fuzzy, kde-format +msgctxt "@action:button closes the opened file" +msgid "&Close File" +msgstr "দূ&রবর্তী ফাইল" + +#: dialogs/katedialogs.cpp:1486 +#, kde-format +msgid "Closes the file, discarding its content." +msgstr "" + +#: dialogs/katedialogs.cpp:1490 +#, fuzzy, kde-format +msgctxt "@action" +msgid "&Save As…" +msgstr "ফাইল সংরক্ষণ করো " + +#: dialogs/katedialogs.cpp:1492 +#, kde-format +msgid "Lets you select a location and save the file again." +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, m_skipBtn) +#: dialogs/katedialogs.cpp:1497 spellcheck/spellcheckbar.ui:143 +#, kde-format +msgid "&Ignore" +msgstr "" + +#: dialogs/katedialogs.cpp:1498 +#, kde-format +msgid "Ignores the changes on disk without any action." +msgstr "" + +#: dialogs/katedialogs.cpp:1567 swapfile/kateswapdiffcreator.cpp:131 +#, kde-format +msgid "" +"The diff command failed. Please make sure that diff(1) is installed and in " +"your PATH." +msgstr "" + +#: dialogs/katedialogs.cpp:1569 swapfile/kateswapdiffcreator.cpp:89 +#: swapfile/kateswapdiffcreator.cpp:99 swapfile/kateswapdiffcreator.cpp:133 +#, kde-format +msgid "Error Creating Diff" +msgstr "" + +#: dialogs/katedialogs.cpp:1576 swapfile/kateswapdiffcreator.cpp:140 +#, kde-format +msgid "The files are identical." +msgstr "" + +#: dialogs/katedialogs.cpp:1576 swapfile/kateswapdiffcreator.cpp:140 +#, kde-format +msgid "Diff Output" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbCursorMovement) +#: dialogs/navigationconfigwidget.ui:29 +#, kde-format +msgid "Text Cursor Movement" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkSmartHome) +#: dialogs/navigationconfigwidget.ui:35 +#, fuzzy, kde-format +msgid "" +"When selected, pressing the home key will cause the cursor to skip " +"whitespace and go to the start of a line's text. The same applies for the " +"end key." +msgstr "" +"নির্বাচিত চাপ দিচ্ছে টি বাড়ি কী (Key) কারণ টি কার্সার প্রতি এড়িয়ে যাও এবং যাও " +"প্রতি টি শুরু -র একটি লাইন s লেখা." + +#. i18n: ectx: property (text), widget (QCheckBox, chkSmartHome) +#: dialogs/navigationconfigwidget.ui:38 +#, fuzzy, kde-format +msgid "Smart ho&me and smart end" +msgstr "বাড়ি" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkPagingMovesCursor) +#: dialogs/navigationconfigwidget.ui:45 +#, fuzzy, kde-format +msgid "" +"Selects whether the PageUp and PageDown keys should alter the vertical " +"position of the cursor relative to the top of the view." +msgstr "" +"টি PageUp এবং PageDown উচিত পরিবর্তন টি উলম্ব, খাড়া অবস্থান -র টি কার্সার তুলনায় " +"প্রতি টি উপর -র টি দেখাও." + +#. i18n: ectx: property (text), widget (QCheckBox, chkPagingMovesCursor) +#: dialogs/navigationconfigwidget.ui:48 +#, fuzzy, kde-format +msgid "&PageUp/PageDown moves cursor" +msgstr "PageUp PageDown চাল কার্সার" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkCamelCursor) +#: dialogs/navigationconfigwidget.ui:55 +#, kde-format +msgid "" +"Selects whether cursor stops at camel case humps and underscores within a " +"word." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkCamelCursor) +#: dialogs/navigationconfigwidget.ui:58 +#, kde-format +msgid "" +"Stop at 'camelCase' and 'snake_case' subwords when moving the cursor by word" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:79 +#, fuzzy, kde-format +msgid "&Autocenter cursor:" +msgstr "কার্সার:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:89 +#, fuzzy, kde-format +msgid "" +"Sets the number of lines to maintain visible above and below the cursor when " +"possible." +msgstr "টি নম্বর -র প্রতি রক্ষণাবেক্ষণ উপরে এবং নীচে টি কার্সার যখন সম্ভব." + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, spbSwapFileSync) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:92 dialogs/opensaveconfigadvwidget.ui:120 +#: dialogs/opensaveconfigadvwidget.ui:168 +#, fuzzy, kde-format +msgid "Disabled" +msgstr "নিষ্ক্রিয়" + +#. i18n: ectx: property (suffix), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:95 +#, fuzzy, kde-format +msgid " lines" +msgstr "Modula-2" + +#. i18n: ectx: property (title), widget (QGroupBox, cbNavigationMisc) +#: dialogs/navigationconfigwidget.ui:120 +#, fuzzy, kde-format +msgid "Misc" +msgstr "C" + +#. i18n: ectx: property (text), widget (QLabel, lblTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:128 +#, fuzzy, kde-format +msgid "Text selection mode:" +msgstr "নির্বাচন মোড" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:139 inputmode/katenormalinputmode.cpp:64 +#: mode/katemodemanager.cpp:162 +#, fuzzy, kde-format +msgid "Normal" +msgstr "স্বাভাবিক" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:144 +#, kde-format +msgid "Persistent" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollPastEnd) +#: dialogs/navigationconfigwidget.ui:167 +#, kde-format +msgid "Allow scrolling past the end of the document" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackspaceRemoveComposed) +#: dialogs/navigationconfigwidget.ui:174 +#, kde-format +msgid "" +"When selected, composed characters are removed with their diacritics instead " +"of only removing the base character. This is useful for Indic locales." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackspaceRemoveComposed) +#: dialogs/navigationconfigwidget.ui:177 +#, kde-format +msgid "Backspace key removes character’s base with its diacritics" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbCycleBookmarks) +#: dialogs/navigationconfigwidget.ui:184 +#, fuzzy, kde-format +#| msgid "Go to the previous bookmark." +msgid "Allow to cycle through bookmarks" +msgstr "পূর্ববর্তী বুকমার্ক-এ যাও" + +#. i18n: ectx: property (title), widget (QGroupBox, gbMulticursor) +#: dialogs/navigationconfigwidget.ui:194 +#, fuzzy, kde-format +msgid "Multicursor" +msgstr "কার্সার" + +#. i18n: ectx: property (text), widget (QLabel, lblMulticursormodifiers) +#: dialogs/navigationconfigwidget.ui:200 +#, kde-format +msgid "Multiple Cursor Modifiers" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoReloadVersionControl) +#: dialogs/opensaveconfigadvwidget.ui:34 +#, kde-format +msgid "Auto reload files in version control" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoReloadOnExternalChanges) +#: dialogs/opensaveconfigadvwidget.ui:41 +#, kde-format +msgid "Auto reload files on external changes" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/opensaveconfigadvwidget.ui:48 +#, kde-format +msgid "Write a backup file on save for:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackupLocalFiles) +#: dialogs/opensaveconfigadvwidget.ui:55 +#, fuzzy, kde-format +msgid "" +"If this option is enabled, backups for local files will be created when " +"saving." +msgstr "এই যদি আপনি চাই ব্যাকআপ -র স্থানীয় যখন" + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackupLocalFiles) +#: dialogs/opensaveconfigadvwidget.ui:58 +#, fuzzy, kde-format +msgid "&Local files" +msgstr "দূ&রবর্তী ফাইল" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackupRemoteFiles) +#: dialogs/opensaveconfigadvwidget.ui:65 +#, fuzzy, kde-format +msgid "" +"If this option is enabled, backups for remote files will be created when " +"saving." +msgstr "এই যদি আপনি চাই ব্যাকআপ -র দূরবর্তী যখন" + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackupRemoteFiles) +#: dialogs/opensaveconfigadvwidget.ui:68 +#, kde-format +msgid "&Remote files" +msgstr "দূ&রবর্তী ফাইল" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/opensaveconfigadvwidget.ui:75 +#, kde-format +msgid "Prefix for backup files:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtBackupPrefix) +#: dialogs/opensaveconfigadvwidget.ui:85 +#, fuzzy, kde-format +msgid "Enter the prefix to prepend to the backup file names." +msgstr "টি সাফিক্স প্রতি যোগ প্রতি টি ব্যাকআপ ফাইল নাম" + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/opensaveconfigadvwidget.ui:92 +#, kde-format +msgid "Suffix for backup files:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtBackupSuffix) +#: dialogs/opensaveconfigadvwidget.ui:102 +#, fuzzy, kde-format +msgid "Enter the suffix to append to the backup file names." +msgstr "টি সাফিক্স প্রতি যোগ প্রতি টি ব্যাকআপ ফাইল নাম" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:109 +#, fuzzy, kde-format +#| msgid "New Filetype" +msgid "Swap file mode:" +msgstr "নতুন ফাইল টাইপ" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:125 +#, kde-format +msgid "Enabled, Store In Default Directory" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:130 +#, kde-format +msgid "Enabled, Store In Custom Directory" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapDirectory) +#: dialogs/opensaveconfigadvwidget.ui:138 +#, fuzzy, kde-format +#| msgid "New Filetype" +msgid "Store swap files in:" +msgstr "নতুন ফাইল টাইপ" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapFileSync) +#: dialogs/opensaveconfigadvwidget.ui:158 +#, fuzzy, kde-format +#| msgid "New Filetype" +msgid "Save swap files every:" +msgstr "নতুন ফাইল টাইপ" + +#. i18n: ectx: property (suffix), widget (QSpinBox, spbSwapFileSync) +#: dialogs/opensaveconfigadvwidget.ui:171 +#, fuzzy, kde-format +msgid "s" +msgstr "Bash" + +#. i18n: ectx: property (text), widget (QLabel, lblExplanatory) +#: dialogs/opensaveconfigadvwidget.ui:196 +#, kde-format +msgid "" +"This string is located in katedialogs.cpp in KateSaveConfigTab's constructor." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkEditorConfig) +#: dialogs/opensaveconfigadvwidget.ui:209 +#, kde-format +msgid "Honor settings in .editorconfig file" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkUseFirstLineAsDocName) +#: dialogs/opensaveconfigadvwidget.ui:229 +#, fuzzy, kde-format +msgid "Use first line of untitled documents for document name" +msgstr "বর্তমান ডকুমেন্টটি ছাপানো হবে।" + +#. i18n: ectx: property (title), widget (QGroupBox, gbFileFormat) +#: dialogs/opensaveconfigwidget.ui:29 +#, kde-format +msgid "File Format" +msgstr "ফাইল ফর্ম্যাট" + +#. i18n: ectx: property (text), widget (QLabel, lblEncoding) +#: dialogs/opensaveconfigwidget.ui:40 +#, kde-format +msgid "&Encoding:" +msgstr "&এনকোডিং:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncoding) +#: dialogs/opensaveconfigwidget.ui:50 +#, kde-format +msgid "" +"This defines the standard encoding to use to open/save files, if not changed " +"in the open/save dialog or by using a command line option." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblEncodingDetection) +#: dialogs/opensaveconfigwidget.ui:57 +#, fuzzy, kde-format +#| msgid "&Encoding:" +msgid "&Encoding detection:" +msgstr "&এনকোডিং:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncodingDetection) +#: dialogs/opensaveconfigwidget.ui:67 +#, kde-format +msgid "" +"if neither the encoding chosen as standard above, nor the encoding specified " +"in the open/save dialog, nor the encoding specified on command line match " +"the content of the file, this detection will be run." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblEncodingDetection2) +#: dialogs/opensaveconfigwidget.ui:74 +#, fuzzy, kde-format +#| msgid "&Encoding:" +msgid "&Fallback encoding:" +msgstr "&এনকোডিং:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncodingFallback) +#: dialogs/opensaveconfigwidget.ui:84 +#, kde-format +msgid "" +"This defines the fallback encoding to try for opening files if neither the " +"encoding chosen as standard above, nor the encoding specified in the open/" +"save dialog, nor the encoding specified on command line match the content of " +"the file. Before this is used, an attempt will be made to determine the " +"encoding to use by looking for a byte order mark at start of file: if one is " +"found, the right Unicode encoding will be chosen; otherwise encoding " +"detection will run, if both fail the fallback encoding will be tried." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblEOL) +#: dialogs/opensaveconfigwidget.ui:91 +#, fuzzy, kde-format +msgid "E&nd of line:" +msgstr "লাইনের শে&ষ:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:102 +#, kde-format +msgid "UNIX" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:107 +#, fuzzy, kde-format +msgid "DOS/Windows" +msgstr "ডস/উইণ্ডোস" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:112 +#, kde-format +msgid "Macintosh" +msgstr "ম্যাকিনটশ" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkDetectEOL) +#: dialogs/opensaveconfigwidget.ui:122 +#, kde-format +msgid "" +"If this option is enabled the editor will autodetect the end of line type. " +"The first found end of line type will be used for the whole file." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDetectEOL) +#: dialogs/opensaveconfigwidget.ui:125 +#, fuzzy, kde-format +msgid "A&utomatic end of line detection" +msgstr "স্বয়ংক্রিয়" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkEnableBOM) +#: dialogs/opensaveconfigwidget.ui:132 +#, kde-format +msgid "" +"The byte order mark is a special sequence at the beginning of Unicode " +"encoded documents. It helps editors to open text documents with the correct " +"Unicode encoding. The byte order mark is not visible in the displayed " +"document." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkEnableBOM) +#: dialogs/opensaveconfigwidget.ui:135 +#, kde-format +msgid "Enable byte order mark (BOM)" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/opensaveconfigwidget.ui:142 +#, kde-format +msgid "Line length limit:" +msgstr "" + +#. i18n: ectx: property (specialValueText), widget (QSpinBox, lineLengthLimit) +#: dialogs/opensaveconfigwidget.ui:152 +#, fuzzy, kde-format +msgid "Unlimited" +msgstr "অসীম" + +#. i18n: ectx: property (title), widget (QGroupBox, gbCleanups) +#: dialogs/opensaveconfigwidget.ui:168 +#, fuzzy, kde-format +msgid "Automatic Cleanups on Save" +msgstr "স্বয়ংক্রিয় ওপর সংরক্ষণ করো" + +#. i18n: ectx: property (whatsThis), widget (QLabel, lblRemoveTrailingSpaces) +#. i18n: ectx: property (whatsThis), widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:176 dialogs/opensaveconfigwidget.ui:189 +#, kde-format +msgid "" +"Depending on the choice, trailing spaces are removed when saving a document, " +"either in the entire document or only of modified lines." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:179 +#, fuzzy, kde-format +msgid "Re&move trailing spaces:" +msgstr "সরিয়ে ফেলো অনুসরণ করা" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, spbAutoSaveInterval) +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/opensaveconfigwidget.ui:193 dialogs/opensaveconfigwidget.ui:270 +#: dialogs/textareaappearanceconfigwidget.ui:104 +#, kde-format +msgid "Never" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:198 +#, fuzzy, kde-format +msgid "On Modified Lines" +msgstr "উপর" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:203 +#, kde-format +msgid "In Entire Document" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkNewLineAtEof) +#: dialogs/opensaveconfigwidget.ui:226 +#, kde-format +msgid "" +"On save, a line break is appended to the document if not already present. " +"The line break is visible after reloading the file." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkNewLineAtEof) +#: dialogs/opensaveconfigwidget.ui:229 +#, kde-format +msgid "Append newline at end of file on save" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbAutoSave) +#: dialogs/opensaveconfigwidget.ui:239 +#, fuzzy, kde-format +msgid "Enable Auto Save (local files only)" +msgstr "নির্বাচন" + +#. i18n: ectx: property (text), widget (QCheckBox, cbAutoSaveOnFocus) +#: dialogs/opensaveconfigwidget.ui:254 +#, kde-format +msgid "Auto save document when the active document is losing focus" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/opensaveconfigwidget.ui:263 +#, kde-format +msgid "Auto save interval:" +msgstr "" + +#. i18n: ectx: property (suffix), widget (QSpinBox, spbAutoSaveInterval) +#: dialogs/opensaveconfigwidget.ui:273 +#, kde-format +msgid " seconds" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowHighlightingMode) +#: dialogs/statusbarconfigwidget.ui:19 +#, fuzzy, kde-format +msgid "Show highlighting mode" +msgstr "ট" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowInputMode) +#: dialogs/statusbarconfigwidget.ui:26 +#, fuzzy, kde-format +#| msgid "Show &icon border" +msgid "Show input mode" +msgstr "&আইকনের সীমা দেখাও " + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowActiveDictionary) +#: dialogs/statusbarconfigwidget.ui:33 +#, fuzzy, kde-format +msgid "Show active dictionary" +msgstr "&সম্পাদক কনফিগার করো..." + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowTabSetting) +#: dialogs/statusbarconfigwidget.ui:40 +#, fuzzy, kde-format +msgid "Show tab setting" +msgstr "দেখাও" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowLineColumn) +#: dialogs/statusbarconfigwidget.ui:47 +#, fuzzy, kde-format +#| msgid "Show &Line Numbers" +msgid "Show line column" +msgstr "লাইন &নম্বর দেখাও" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowEncoding) +#: dialogs/statusbarconfigwidget.ui:54 +#, fuzzy, kde-format +msgid "Show File Encoding" +msgstr "&এনকোডিং:" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowEOL) +#: dialogs/statusbarconfigwidget.ui:61 +#, kde-format +msgid "Show Line Ending Type" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/textareaappearanceconfigwidget.ui:28 +#, fuzzy, kde-format +msgid "Editor font:" +msgstr "প্লাগ-ইন" + +#. i18n: ectx: property (text), widget (QLabel, lblLineHeight) +#: dialogs/textareaappearanceconfigwidget.ui:48 +#, kde-format +msgid "&Line Height Multiplier:" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QDoubleSpinBox, spbLineHeightMultiplier) +#: dialogs/textareaappearanceconfigwidget.ui:58 +#, kde-format +msgid "" +"This value will be multiplied with the font's default line height. A value " +"of 1.0 means that the default height will be used." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/textareaappearanceconfigwidget.ui:93 +#, kde-format +msgid "Show whitespace indicators:" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/textareaappearanceconfigwidget.ui:109 +#, fuzzy, kde-format +msgid "At the end of a line" +msgstr "প্রতি শেষ -র" + +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/textareaappearanceconfigwidget.ui:114 +#, fuzzy, kde-format +msgid "Always" +msgstr "সবসময় চালু" + +#. i18n: ectx: property (text), widget (QLabel, lbMarkerDescription) +#: dialogs/textareaappearanceconfigwidget.ui:122 +#, fuzzy, kde-format +#| msgid "Highlighting" +msgid "Whitespace indicator si&ze:" +msgstr "হাইলাইটিং" + +#. i18n: ectx: property (whatsThis), widget (QSlider, sliSetMarkerSize) +#: dialogs/textareaappearanceconfigwidget.ui:138 +#, kde-format +msgid "Size of the visible highlight marker." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/textareaappearanceconfigwidget.ui:166 +#, fuzzy, kde-format +msgid "Show &tab indicators:" +msgstr "দেখাও" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowTabs) +#: dialogs/textareaappearanceconfigwidget.ui:176 +#, fuzzy, kde-format +msgid "" +"The editor will display a symbol to indicate the presence of a tab in the " +"text." +msgstr "" +" দেখাও একটি চিহ্ন প্রতি নির্দেশ করা টি উপস্থিতি -র একটি ট্যাব ইঞ্চি টি লেখা." + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/textareaappearanceconfigwidget.ui:202 +#, fuzzy, kde-format +msgid "Bracket matching:" +msgstr "হা&ইলাইট:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowWholeBracketExpression) +#: dialogs/textareaappearanceconfigwidget.ui:209 +#, kde-format +msgid "" +"If this is enabled, the range between the selected matching brackets will be " +"highlighted." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowWholeBracketExpression) +#: dialogs/textareaappearanceconfigwidget.ui:212 +#, kde-format +msgid "Highlight range between selected brackets" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:219 +#, kde-format +msgid "Show the matching open bracket and lines adjacent to it for context" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:222 +#, kde-format +msgid "" +"If this is enabled, a preview of the lines near a matching open bracket is " +"shown. This can help in quickly determining the context of a closing " +"bracket, especially in long function/class declarations and deeply nested if " +"blocks" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:225 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Show preview of matching open bracket" +msgstr "বর্তমান ডকুমেন্টটি ছাপানো হবে।" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:232 +#, fuzzy, kde-format +msgid "Flash matching brackets" +msgstr "প্রতি" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:235 +#, kde-format +msgid "" +"If this is enabled, matching brackets are animated for better visibility." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:238 +#, kde-format +msgid "Flash matching bracket when cursor moves to other bracket in pair" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/textareaappearanceconfigwidget.ui:261 +#, kde-format +msgid "Counts:" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowWordCount) +#: dialogs/textareaappearanceconfigwidget.ui:268 +#, kde-format +msgid "Show/hide word count in status bar" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowWordCount) +#: dialogs/textareaappearanceconfigwidget.ui:271 view/katestatusbar.cpp:258 +#, kde-format +msgid "Show word count" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowLineCount) +#: dialogs/textareaappearanceconfigwidget.ui:278 +#, kde-format +msgid "Show/hide line count in status bar" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowLineCount) +#: dialogs/textareaappearanceconfigwidget.ui:281 view/katestatusbar.cpp:255 +#, fuzzy, kde-format +#| msgid "Show &Line Numbers" +msgid "Show line count" +msgstr "লাইন &নম্বর দেখাও" + +#. i18n: ectx: property (text), widget (QLabel, label_25) +#: dialogs/textareaappearanceconfigwidget.ui:304 +#, fuzzy, kde-format +#| msgid "Go to Line" +msgid "Fold first line:" +msgstr "এই লাইনে যাও" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkFoldFirstLine) +#: dialogs/textareaappearanceconfigwidget.ui:317 +#, kde-format +msgid "" +"When this setting is enabled, the editor view automatically folds\n" +"comment blocks that start on the first line of the document. This is\n" +"helpful to hide license headers which are commonly placed at the\n" +"beginning of a file." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbxWordWrap) +#: dialogs/textareaappearanceconfigwidget.ui:337 +#, fuzzy, kde-format +msgid "Dynamic Word Wrap:" +msgstr "শব্দ ঘুরিয়ে" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDynWrapAtStaticMarker) +#: dialogs/textareaappearanceconfigwidget.ui:344 +#, fuzzy, kde-format +msgid "Wrap dynamically at static word wrap marker" +msgstr "দেখাও" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDynWrapAnywhere) +#: dialogs/textareaappearanceconfigwidget.ui:351 +#, kde-format +msgid "Disregard word boundaries for dynamic wrapping" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblDynamicWordWrapIndicators) +#: dialogs/textareaappearanceconfigwidget.ui:358 +#, fuzzy, kde-format +msgid "D&ynamic word wrap indicators:" +msgstr "শব্দ ঘুরিয়ে নির্দেশক যদি প্রযোজ্য:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbDynamicWordWrapIndicator) +#: dialogs/textareaappearanceconfigwidget.ui:368 +#, fuzzy, kde-format +msgid "Choose when the Dynamic Word Wrap Indicators should be displayed." +msgstr "যখন টি উচিত প্রদর্শিত" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/textareaappearanceconfigwidget.ui:391 +#, fuzzy, kde-format +msgid "I&ndent wrapped lines:" +msgstr "নিয়মাবলী" + +#. i18n: ectx: property (text), widget (QLabel, lblDynamicWordWrapIndicators_2) +#: dialogs/textareaappearanceconfigwidget.ui:408 +#, fuzzy, kde-format +msgid "&Don't indent lines wider than:" +msgstr "সঙ্গে" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbDynamicWordWrapDepth) +#: dialogs/textareaappearanceconfigwidget.ui:424 +#, fuzzy, no-c-format, kde-format +msgid "" +"

Enables the start of dynamically wrapped lines to be aligned vertically " +"to the indentation level of the first line. This can help to make code and " +"markup more readable.

Additionally, this allows you to set a maximum " +"width of the screen, as a percentage, after which dynamically wrapped lines " +"will no longer be vertically aligned. For example, at 50%, lines whose " +"indentation levels are deeper than 50% of the width of the screen will not " +"have vertical alignment applied to subsequent wrapped lines.

" +msgstr "" +"

টি শুরু -র চলন্ত অবস্থায় মোড়ানো প্রতি উলম্বভাবে প্রতি টি স্তর -র টি প্রথম লাইন " +"পারে সাহায্য,সহায়ক তথ্য প্রতি make কোড এবং মার্কআপ আরো পাঠ্য

এই অনুমতি দেয় " +"আপনি প্রতি সেট,সমষ্টি,মান নির্ধারণ একটি সর্বাধিক,সর্বোচ্চ প্রস্থ -র টি পর্দা একটি " +"পরে কোন চলন্ত অবস্থায় মোড়ানো না দীর্ঘতর উলম্বভাবে উদাহরণ -তে স্তর থেকে -র টি " +"প্রস্থ -র টি পর্দা নয় উলম্ব, খাড়া অ্যালাইনমেন্ট, সামঞ্জস্য ফলিত প্রতি মোড়ানো

" + +#. i18n: ectx: property (suffix), widget (QSpinBox, sbDynamicWordWrapDepth) +#: dialogs/textareaappearanceconfigwidget.ui:427 +#, fuzzy, no-c-format, kde-format +msgid "% of View Width" +msgstr "-র দেখাও প্রস্থ" + +#. i18n: ectx: property (text), widget (QLabel, label_24) +#: dialogs/textareaappearanceconfigwidget.ui:443 +#, fuzzy, kde-format +msgid "Show i&ndentation lines:" +msgstr "নিয়মাবলী" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowIndentationLines) +#: dialogs/textareaappearanceconfigwidget.ui:453 +#, fuzzy, kde-format +msgid "" +"If this is enabled, the editor will display vertical lines to help identify " +"indent lines." +msgstr "এই অপশন আছে প্রত্যেক নতুন দেখাও দেখাও লাইন সংখ্যা ওপর টি বাঁদিক হাত পাশ." + +#: document/katebuffer.cpp:135 +#, fuzzy, kde-format +#| msgid "New Filetype" +msgctxt "short translation, user created new file" +msgid "New file" +msgstr "নতুন ফাইল টাইপ" + +#: document/katedocument.cpp:223 +#, fuzzy, kde-format +#| msgid "Move to End of Document" +msgid "Auto Reload Document" +msgstr "ডকুমেন্টের শেষে চলে যাও" + +#: document/katedocument.cpp:225 +#, kde-format +msgid "Automatic reload the document when it was changed on disk" +msgstr "" + +#: document/katedocument.cpp:2307 +#, fuzzy, kde-format +#| msgid "" +#| "The file %1 could not be loaded, as it was not possible to read from it.\n" +#| "\n" +#| "Check if you have read access to this file." +msgid "" +"The file %1 could not be loaded, as it was not possible to read from it.
Check if you have read access to this file." +msgstr "" +"%1 ফাইলটি লোড করা যায়নি, কারণ এই ফাইল থেকে কিছু পড়া সম্ভব হয়নি।\n" +"\n" +"পরীক্ষা করে দেখুন আপনার এই ফাইলটি পড়ার অনুমতি আছে কি না।" + +#: document/katedocument.cpp:2312 +#, kde-format +msgctxt "translators: you can also translate 'Try Again' with 'Reload'" +msgid "Try Again" +msgstr "" + +#: document/katedocument.cpp:2316 document/katedocument.cpp:6534 +#, kde-format +msgid "&Close" +msgstr "" + +#: document/katedocument.cpp:2317 document/katedocument.cpp:6535 +#, kde-format +msgctxt "Close the message being displayed" +msgid "Close message" +msgstr "" + +#: document/katedocument.cpp:2449 +#, kde-format +msgid "" +"The file %1 was opened with %2 encoding but contained invalid characters." +"
It is set to read-only mode, as saving might destroy its content.
Either reopen the file with the correct encoding chosen or enable the read-" +"write mode again in the tools menu to be able to edit it." +msgstr "" + +#: document/katedocument.cpp:2468 +#, kde-format +msgid "" +"The file %1 was opened and contained lines longer than the configured Line " +"Length Limit (%2 characters).
The longest of those lines was %3 " +"characters long
Those lines were wrapped and the document is set to read-" +"only mode, as saving will modify its content." +msgstr "" + +#: document/katedocument.cpp:2475 +#, kde-format +msgid "Temporarily raise limit and reload file" +msgstr "" + +#: document/katedocument.cpp:2478 +#, kde-format +msgid "Close" +msgstr "" + +#: document/katedocument.cpp:2505 +#, kde-format +msgid "" +"Do you really want to save this unmodified file? You could overwrite changed " +"data in the file on disk." +msgstr "" +"আপনি কি সত্যিই এই অপরিবর্তিত ফাইলটি সংরক্ষণ করতে চান? এর ফলে ফাইলে করা অন্যান্য " +"পরিবর্তনগুলি হারিয়ে যেতে পারে।" + +#: document/katedocument.cpp:2506 +#, kde-format +msgid "Trying to Save Unmodified File" +msgstr "" + +#: document/katedocument.cpp:2507 document/katedocument.cpp:2518 +#: document/katedocument.cpp:2534 +#, kde-format +msgid "Save Nevertheless" +msgstr "" + +#: document/katedocument.cpp:2516 +#, fuzzy, kde-format +msgid "" +"Do you really want to save this file? Both your open file and the file on " +"disk were changed. There could be some data lost." +msgstr "" +"আপনি সত্যি চাই প্রতি সংরক্ষণ করা এই ফাইল আপনার খোলা,পড়া, খোলা হোক ফাইল এবং টি " +"ফাইল ওপর ডিস্ক ছিল পরিবর্তিত পারে কিছু তথ্য হারানো." + +#: document/katedocument.cpp:2517 document/katedocument.cpp:2533 +#: document/katedocument.cpp:2853 syntax/katethemeconfig.cpp:1218 +#: syntax/katethemeconfig.cpp:1376 +#, kde-format +msgid "Possible Data Loss" +msgstr "" + +#: document/katedocument.cpp:2531 +#, fuzzy, kde-format +msgid "" +"The selected encoding cannot encode every Unicode character in this " +"document. Do you really want to save it? There could be some data lost." +msgstr "" +"নথী পারে নয় সংরক্ষিত টি নির্বাচিত এনকোডিং যাবে না প্রত্যেক ইউনিকোড বর্ণ, অক্ষর " +"ইঞ্চি এটি আপনি -র কোন এনকোডিং প্রতি ব্যবহার চেষ্টা অথবা." + +#: document/katedocument.cpp:2601 +#, fuzzy, kde-format +msgid "" +"The document could not be saved, as it was not possible to write to %1.\n" +"Check that you have write access to this file or that enough disk space is " +"available.\n" +"The original file may be lost or damaged. Don't quit the application until " +"the file is successfully written." +msgstr "" +"নথী পারে নয় সংরক্ষিত এটি ছিল নয় সম্ভব প্রতি লেখো প্রতি ঐ আপনি লেখো ব্যবহারের " +"সুযোগ প্রতি এই ফাইল অথবা ঐ যথেষ্ট ডিস্ক স্থান আছে পাওয়া যাচ্ছে." + +#: document/katedocument.cpp:2722 +#, kde-format +msgid "" +"For file %1 no backup copy could be created before saving. If an error " +"occurs while saving, you might lose the data of this file. A reason could be " +"that the media you write to is full or the directory of the file is read-" +"only for you." +msgstr "" + +#: document/katedocument.cpp:2726 +#, kde-format +msgid "Failed to create backup copy." +msgstr "" + +#: document/katedocument.cpp:2727 +#, kde-format +msgid "Try to Save Nevertheless" +msgstr "" + +#: document/katedocument.cpp:2852 +#, fuzzy, kde-format +msgid "Do you really want to continue to close this file? Data loss may occur." +msgstr "আপনি সত্যি চাই প্রতি চলিয়ে যাও প্রতি বন্ধ এই ফাইল ক্ষতি হয়তো ঘটা." + +#: document/katedocument.cpp:2854 +#, kde-format +msgid "Close Nevertheless" +msgstr "" + +#: document/katedocument.cpp:4641 +#, fuzzy, kde-format +msgid "Untitled (%1)" +msgstr "অসীম" + +#: document/katedocument.cpp:4643 +#, fuzzy, kde-format +msgid "Untitled" +msgstr "অসীম" + +#: document/katedocument.cpp:4820 document/katedocument.cpp:5051 +#: document/katedocument.cpp:5061 document/katedocument.cpp:5862 +#: document/katedocument.cpp:6049 +#, kde-format +msgid "Save File" +msgstr "ফাইল সংরক্ষণ করো " + +#: document/katedocument.cpp:4823 +#, fuzzy, kde-format +msgid "Save failed" +msgstr "ফাইল সংরক্ষণ করো " + +#: document/katedocument.cpp:5072 +#, fuzzy, kde-format +#| msgid "Save File" +msgid "Save Copy of File" +msgstr "ফাইল সংরক্ষণ করো " + +#: document/katedocument.cpp:5084 +#, fuzzy, kde-format +msgid "" +"The document could not be saved, as it was not possible to write to %1.\n" +"\n" +"Check that you have write access to this file or that enough disk space is " +"available." +msgstr "" +"নথী পারে নয় সংরক্ষিত এটি ছিল নয় সম্ভব প্রতি লেখো প্রতি ঐ আপনি লেখো ব্যবহারের " +"সুযোগ প্রতি এই ফাইল অথবা ঐ যথেষ্ট ডিস্ক স্থান আছে পাওয়া যাচ্ছে." + +#: document/katedocument.cpp:5376 +#, kde-format +msgid "" +"Using deprecated modeline 'remove-trailing-space'. Please replace with " +"'remove-trailing-spaces modified;', see https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" +msgstr "" + +#: document/katedocument.cpp:5382 +#, kde-format +msgid "" +"Using deprecated modeline 'replace-trailing-space-save'. Please replace with " +"'remove-trailing-spaces all;', see https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" +msgstr "" + +#: document/katedocument.cpp:5696 +#, fuzzy, kde-format +msgid "The file '%1' was modified on disk." +msgstr "" +"অপর একটি প্রোগ্রাম %1 ফাইলটিকে ডিস্ক-এ পাল্টেছে (মুছে ফেলেছে)!\n" +"\n" + +#: document/katedocument.cpp:5698 +#, fuzzy, kde-format +msgid "The file '%1' was deleted or moved on disk." +msgstr "" +"অপর একটি প্রোগ্রাম %1 ফাইলটিকে ডিস্ক-এ পাল্টেছে (মুছে ফেলেছে)!\n" +"\n" + +#: document/katedocument.cpp:6034 +#, kde-format +msgid "" +"The document \"%1\" has been modified.\n" +"Do you want to save your changes or discard them?" +msgstr "" + +#: document/katedocument.cpp:6037 +#, kde-format +msgid "Close Document" +msgstr "" + +#: document/katedocument.cpp:6148 +#, kde-format +msgid "The file %2 is still loading." +msgstr "" + +#: document/katedocument.cpp:6153 +#, kde-format +msgid "&Abort Loading" +msgstr "" + +#: inputmode/katenormalinputmode.cpp:74 +#, kde-format +msgid "OVERWRITE" +msgstr "" + +#: inputmode/katenormalinputmode.cpp:74 +#, kde-format +msgid "INSERT" +msgstr "" + +#: inputmode/katenormalinputmodefactory.cpp:29 +#, fuzzy, kde-format +#| msgid "Normal Text" +msgid "Normal Mode" +msgstr "স্বাভাবিক লেখা" + +#: inputmode/kateviinputmode.cpp:31 +#, kde-format +msgctxt "The INSERT mode of VI" +msgid "VI: INSERT" +msgstr "" + +#: inputmode/kateviinputmode.cpp:34 +#, fuzzy, kde-format +#| msgid " NORM " +msgctxt "The NORMAL mode of VI" +msgid "VI: NORMAL" +msgstr " NORM " + +#: inputmode/kateviinputmode.cpp:37 +#, kde-format +msgid "VI: VISUAL" +msgstr "" + +#: inputmode/kateviinputmode.cpp:40 +#, kde-format +msgid "VI: VISUAL BLOCK" +msgstr "" + +#: inputmode/kateviinputmode.cpp:43 +#, kde-format +msgid "VI: VISUAL LINE" +msgstr "" + +#: inputmode/kateviinputmode.cpp:46 +#, kde-format +msgid "VI: REPLACE" +msgstr "" + +#: inputmode/kateviinputmode.cpp:146 +#, kde-format +msgid "vi-mode" +msgstr "" + +#: inputmode/kateviinputmode.cpp:159 +#, fuzzy, kde-format +msgid "recording" +msgstr "&এনকোডিং:" + +#: inputmode/kateviinputmodefactory.cpp:38 utils/kateglobal.cpp:88 +#: vimode/config/configtab.cpp:237 +#, kde-format +msgid "Vi Input Mode" +msgstr "" + +#: mode/katemodeconfigpage.cpp:46 +#, kde-format +msgid "" +msgstr "" + +#: mode/katemodeconfigpage.cpp:58 +#, fuzzy, kde-format +#| msgid "Use Default Style" +msgid "Use Default" +msgstr "ডিফল্ট স্টাইল ব্যবহার করো" + +#: mode/katemodeconfigpage.cpp:99 mode/katemodeconfigpage.cpp:241 +#, kde-format +msgid "Properties of %1" +msgstr "%1-র বৈশিষ্ট্যাবলী" + +#: mode/katemodeconfigpage.cpp:178 +#, kde-format +msgid "New Filetype" +msgstr "নতুন ফাইল টাইপ" + +#: mode/katemodeconfigpage.cpp:293 +#, fuzzy, kde-format +msgid "" +"Select the MimeTypes you want for this file type.\n" +"Please note that this will automatically edit the associated file extensions " +"as well." +msgstr "" +"টি আপনি চাই জন্য এই ফাইল ধরন নোট ঐ এই স্বয়ংক্রীয়ভাবে সম্পাদন, বদলানো, এডিট টি " +"সংশ্লিষ্ট ফাইল বর্ধিতাংশ ভাল." + +#: mode/katemodeconfigpage.cpp:295 +#, kde-format +msgid "Select Mime Types" +msgstr "" + +#: mode/katemodeconfigpage.cpp:312 +#, fuzzy, kde-format +msgid "Modes && Filetypes" +msgstr "ফাই&ল টাইপ:" + +#: mode/katemodemenulist.cpp:138 +#, fuzzy, kde-format +msgctxt "@info:placeholder" +msgid "Search…" +msgstr "প্রথম সন্ধান:" + +#: mode/katemodemenulist.cpp:140 +#, kde-format +msgctxt "ToolTip of the search bar of modes of syntax highlighting" +msgid "" +"Search for syntax highlighting modes by language name or file extension (for " +"example, C++ or .cpp)" +msgstr "" + +#: mode/katemodemenulist.cpp:560 +#, kde-format +msgctxt "A search yielded no results" +msgid "No items matching your search" +msgstr "" + +#: mode/katemodemenulist.cpp:1087 +#, fuzzy, kde-format +msgctxt "" +"Title (in singular) of the best result in an item search. Please, that the " +"translation doesn't have more than 34 characters, since the menu where it's " +"displayed is small and fixed." +msgid "Best Search Match" +msgstr "সন্ধান" + +#: mode/katemodemenulist.cpp:1092 +#, fuzzy, kde-format +msgctxt "" +"Title (in plural) of the best results in an item search. Please, that the " +"translation doesn't have more than 34 characters, since the menu where it's " +"displayed is small and fixed." +msgid "Best Search Matches" +msgstr "সন্ধান" + +#: printing/printconfigwidgets.cpp:36 +#, kde-format +msgid "Te&xt Settings" +msgstr "টেক্স&ট সেটিংস" + +#: printing/printconfigwidgets.cpp:40 +#, fuzzy, kde-format +msgid "Print line &numbers" +msgstr "লাই&ন নম্বর ছাপাও " + +#: printing/printconfigwidgets.cpp:43 +#, fuzzy, kde-format +msgid "Print &legend" +msgstr "লাই&ন নম্বর ছাপাও " + +#: printing/printconfigwidgets.cpp:46 +#, kde-format +msgid "Don't print folded code" +msgstr "" + +#: printing/printconfigwidgets.cpp:54 +#, kde-format +msgid "" +"

If enabled, line numbers will be printed on the left side of the page(s)." +"

" +msgstr "

সক্রিয় করা হলে পাতার বাঁদিকে লাইন নম্বর ছাপানো হবে

" + +#: printing/printconfigwidgets.cpp:56 +#, fuzzy, kde-format +msgid "" +"

Print a box displaying typographical conventions for the document type, " +"as defined by the syntax highlighting being used.

" +msgstr "" +"

ছাপাও একটি বাক্স প্রদর্শনরত টাইপোগ্রাফি সংক্রান্ত প্রথা জন্য টি নথী ধরন " +"উল্লেখকৃত দ্বারা টি বাক্যরীতি হয়ে ব্যবহৃত." + +#: printing/printconfigwidgets.cpp:116 +#, kde-format +msgid "Hea&der && Footer" +msgstr "হেডার (Header) &এবং ফুটার (Footer)" + +#: printing/printconfigwidgets.cpp:123 +#, kde-format +msgid "Pr&int header" +msgstr "হেডা&র ছাপাও " + +#: printing/printconfigwidgets.cpp:125 +#, kde-format +msgid "Pri&nt footer" +msgstr "ফুটার ছাপা&ও" + +#: printing/printconfigwidgets.cpp:131 +#, kde-format +msgid "Header/footer font:" +msgstr "হেডার/ফুটার ফন্ট:" + +#: printing/printconfigwidgets.cpp:137 +#, kde-format +msgid "Header Properties" +msgstr "হেডার বৈশিষ্ট্যাবলী" + +#: printing/printconfigwidgets.cpp:141 +#, kde-format +msgid "&Format:" +msgstr "&ফর্ম্যাট:" + +#: printing/printconfigwidgets.cpp:163 printing/printconfigwidgets.cpp:209 +#, kde-format +msgid "Colors:" +msgstr "রং:" + +#: printing/printconfigwidgets.cpp:170 printing/printconfigwidgets.cpp:216 +#, kde-format +msgid "Foreground:" +msgstr "পুরোভূমি:" + +#: printing/printconfigwidgets.cpp:175 +#, kde-format +msgid "Bac&kground" +msgstr "প&টভূমি" + +#: printing/printconfigwidgets.cpp:181 +#, kde-format +msgid "Footer Properties" +msgstr "ফুটার বৈশিষ্ট্যাবলী" + +#: printing/printconfigwidgets.cpp:186 +#, kde-format +msgid "For&mat:" +msgstr "ফর্ম্যা&ট:" + +#: printing/printconfigwidgets.cpp:221 +#, kde-format +msgid "&Background" +msgstr "&পটভূমি" + +#: printing/printconfigwidgets.cpp:250 +#, kde-format +msgid "

Format of the page header. The following tags are supported:

" +msgstr "

পাতার হেডার-এর ফর্ম্যাট। নিম্নোক্ত ট্যাগ-গুলি ব্যবহার করা যেতে পারে:

" + +#: printing/printconfigwidgets.cpp:252 +#, fuzzy, kde-format +msgid "" +"
  • %u: current user name
  • %d: complete date/" +"time in short format
  • %D: complete date/time in long format
  • %h: current time
  • %y: current date in short " +"format
  • %Y: current date in long format
  • %f: " +"file name
  • %U: full URL of the document
  • %p: " +"page number
  • %P: total amount of pages

" +msgstr "" +"
  • %u: বর্তমান ব্যবহারকারীর নাম
  • %d: সংক্ষিপ্ত " +"ফর্ম্যাটে সম্পূর্ণ তারিখ/সময়
  • %D: বিস্তারিত ফর্ম্যাটে সম্পূর্ণ তারিখ/" +"সময়
  • %h: বর্তমান সময়
  • %y: সংক্ষিপ্ত ফর্ম্যাটে " +"বর্তমান তারিখ
  • %Y: বিস্তারিত ফর্ম্যাটে বর্তমান তারিখ
  • " +"
  • %f: ফাইলের নাম
  • %U: ডকুমেন্টের পূর্ণ ইউ-আর-এল
  • " +"
  • %p: পাতার নম্বর

Note: Do not use " +"the '|' (vertical bar) character." + +#: printing/printconfigwidgets.cpp:266 +#, kde-format +msgid "

Format of the page footer. The following tags are supported:

" +msgstr "

পাতার ফুটার-এর ফর্ম্যাট। নিম্নোক্ত ট্যাগ-গুলি ব্যবহার করা যেতে পারে:

" + +#: printing/printconfigwidgets.cpp:352 +#, kde-format +msgid "Add Placeholder..." +msgstr "" + +#: printing/printconfigwidgets.cpp:354 +#, fuzzy, kde-format +#| msgid "Current line:" +msgid "Current User Name" +msgstr "বর্তমান লাইন:" + +#: printing/printconfigwidgets.cpp:356 +#, kde-format +msgid "Complete Date/Time (short format)" +msgstr "" + +#: printing/printconfigwidgets.cpp:358 +#, kde-format +msgid "Complete Date/Time (long format)" +msgstr "" + +#: printing/printconfigwidgets.cpp:360 +#, fuzzy, kde-format +#| msgid "Current line:" +msgid "Current Time" +msgstr "বর্তমান লাইন:" + +#: printing/printconfigwidgets.cpp:362 +#, kde-format +msgid "Current Date (short format)" +msgstr "" + +#: printing/printconfigwidgets.cpp:364 +#, kde-format +msgid "Current Date (long format)" +msgstr "" + +#: printing/printconfigwidgets.cpp:366 +#, fuzzy, kde-format +#| msgid "Name" +msgid "File Name" +msgstr "নাম" + +#: printing/printconfigwidgets.cpp:368 +#, kde-format +msgid "Full document URL" +msgstr "" + +#: printing/printconfigwidgets.cpp:370 +#, kde-format +msgid "Page Number" +msgstr "" + +#: printing/printconfigwidgets.cpp:372 +#, kde-format +msgid "Total Amount of Pages" +msgstr "" + +#: printing/printconfigwidgets.cpp:478 +#, kde-format +msgid "L&ayout" +msgstr "বিন্যা&স" + +#: printing/printconfigwidgets.cpp:484 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "&Color theme:" +msgstr "রং" + +#: printing/printconfigwidgets.cpp:494 +#, kde-format +msgid "Font:" +msgstr "" + +#: printing/printconfigwidgets.cpp:498 +#, kde-format +msgid "Draw bac&kground color" +msgstr "&পটভূমির রং আঁকো" + +#: printing/printconfigwidgets.cpp:501 +#, kde-format +msgid "Draw &boxes" +msgstr "বাক্স আঁকো (&ব)" + +#: printing/printconfigwidgets.cpp:505 +#, kde-format +msgid "Box Properties" +msgstr "বাক্সর বৈশিষ্ট্যাবলী" + +#: printing/printconfigwidgets.cpp:509 +#, kde-format +msgid "W&idth:" +msgstr "প্রস্থ (&র):" + +#: printing/printconfigwidgets.cpp:517 +#, kde-format +msgid "&Margin:" +msgstr "মার্জি&ন:" + +#: printing/printconfigwidgets.cpp:525 +#, kde-format +msgid "Co&lor:" +msgstr "রং (&র):" + +#: printing/printconfigwidgets.cpp:547 +#, kde-format +msgid "Select the color theme to use for the print." +msgstr "" + +#: printing/printconfigwidgets.cpp:549 +#, fuzzy, kde-format +#| msgid "" +#| "

If enabled, the background color of the editor will be used.

This may be useful if your color scheme is designed for a dark " +#| "background.

" +msgid "" +"

If enabled, the background color of the editor will be used.

This " +"may be useful if your color theme is designed for a dark background.

" +msgstr "" +"

সক্রিয় করা হলে ছাপানোর সময় পটভূমির রং ব্যবহার করা হবে।

এটি কাজে লাগতে " +"পারে যদি আপনার অন্যান্য রংগুলি শুধুমাত্র গাঢ় পটভূমির উপযুক্ত হয়।

" + +#: printing/printconfigwidgets.cpp:552 +#, fuzzy, kde-format +msgid "" +"

If enabled, a box as defined in the properties below will be drawn around " +"the contents of each page. The Header and Footer will be separated from the " +"contents with a line as well.

" +msgstr "" +"

সক্রিয় একটি বাক্স উল্লেখকৃত ইঞ্চি টি বৈশিষ্ট্যাবলী নীচে অঙ্কিত চারপাশ টি বস্তু " +"-র প্রতি পাতা এবং বিচ্ছিন্ন থেকে টি বস্তু সঙ্গে একটি লাইন ভাল

" + +#: printing/printconfigwidgets.cpp:555 +#, kde-format +msgid "The width of the box outline" +msgstr "বাক্সের আউটলাইনের প্রস্থ" + +#: printing/printconfigwidgets.cpp:556 +#, kde-format +msgid "The margin inside boxes, in pixels" +msgstr "বাক্সের অভ্যন্তরের মার্জিন, পিক্সেলে মাপা" + +#: printing/printconfigwidgets.cpp:557 +#, kde-format +msgid "The line color to use for boxes" +msgstr "বাক্সের লাইনের জন্য রং" + +#: printing/printpainter.cpp:269 +#, kde-format +msgid "(Selection of) " +msgstr "(নির্বাচন বন্ধ)" + +#: printing/printpainter.cpp:522 +#, fuzzy, kde-format +msgid "Typographical Conventions for %1" +msgstr "%1-র জন্য " + +#: printing/printpainter.cpp:555 +#, fuzzy, kde-format +msgid "text" +msgstr "প্রসঙ্গ" + +#: script/data/commands/emmet.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Expand Abbreviation" +msgstr "" + +#: script/data/commands/emmet.js:10 script/data/commands/emmet.js:14 +#: script/data/commands/emmet.js:19 script/data/commands/emmet.js:23 +#: script/data/commands/emmet.js:27 script/data/commands/emmet.js:31 +#: script/data/commands/emmet.js:35 script/data/commands/emmet.js:39 +#: script/data/commands/emmet.js:43 script/data/commands/emmet.js:47 +#: script/data/commands/emmet.js:51 script/data/commands/emmet.js:55 +#: script/data/commands/emmet.js:59 script/data/commands/emmet.js:63 +#: script/data/commands/emmet.js:67 script/data/commands/emmet.js:71 +#: script/data/commands/emmet.js:75 script/data/commands/emmet.js:79 +#: script/data/commands/emmet.js:83 +#, kde-format +msgctxt "Script command category" +msgid "Emmet" +msgstr "" + +#: script/data/commands/emmet.js:13 +#, kde-format +msgctxt "Script command name" +msgid "Wrap with Tag" +msgstr "" + +#: script/data/commands/emmet.js:18 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Matching Tag" +msgstr "সরাও প্রতি" + +#: script/data/commands/emmet.js:22 +#, kde-format +msgctxt "Script command name" +msgid "Select HTML/XML Tag Contents Inwards" +msgstr "" + +#: script/data/commands/emmet.js:26 +#, kde-format +msgctxt "Script command name" +msgid "Select HTML/XML Tag Contents Outwards" +msgstr "" + +#: script/data/commands/emmet.js:30 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Toggle Comment" +msgstr "মন্তব্য" + +#: script/data/commands/emmet.js:34 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Go to Next Edit Point" +msgstr "প্রতি পরবর্তী" + +#: script/data/commands/emmet.js:38 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Go to Previous Edit Point" +msgstr "প্রতি" + +#: script/data/commands/emmet.js:42 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Select Next Edit Point" +msgstr "প্রতি পরবর্তী" + +#: script/data/commands/emmet.js:46 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Select Previous Edit Point" +msgstr "প্রতি" + +#: script/data/commands/emmet.js:50 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Delete Tag Under Cursor" +msgstr "সংরক্ষণ করো টি বর্তমান নথী" + +#: script/data/commands/emmet.js:54 +#, kde-format +msgctxt "Script command name" +msgid "Split or Join a Tag" +msgstr "" + +#: script/data/commands/emmet.js:58 +#, kde-format +msgctxt "Script command name" +msgid "Evaluate a Simple Math Expression" +msgstr "" + +#: script/data/commands/emmet.js:62 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 1" +msgstr "" + +#: script/data/commands/emmet.js:66 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 10" +msgstr "" + +#: script/data/commands/emmet.js:70 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 0.1" +msgstr "" + +#: script/data/commands/emmet.js:74 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 1" +msgstr "" + +#: script/data/commands/emmet.js:78 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 10" +msgstr "" + +#: script/data/commands/emmet.js:82 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 0.1" +msgstr "" + +#: script/data/commands/emmet.js:96 +#, kde-format +msgid "" +"Expands the abbreviation using Emmet expressions; see http://code.google.com/" +"p/zen-coding/wiki/ZenHTMLSelectorsEn" +msgstr "" + +#: script/data/commands/emmet.js:97 +#, kde-format +msgid "" +"Wraps the selected text in XML tags constructed from the provided Emmet " +"expression (defaults to div)." +msgstr "" + +#: script/data/commands/emmet.js:98 +#, kde-format +msgid "Moves the caret to the current tag's pair" +msgstr "" + +#: script/data/commands/emmet.js:99 +#, kde-format +msgid "" +"Select contents of HTML/XML tag, moving inward on continuous invocations" +msgstr "" + +#: script/data/commands/emmet.js:100 +#, kde-format +msgid "" +"Select contents of HTML/XML tag, moving outwards on continuous invocations" +msgstr "" + +#: script/data/commands/emmet.js:101 +#, kde-format +msgid "Move to the next edit point (tag or empty attribute)." +msgstr "" + +#: script/data/commands/emmet.js:102 +#, kde-format +msgid "Move to the previous edit point (tag or empty attribute)." +msgstr "" + +#: script/data/commands/emmet.js:103 +#, fuzzy, kde-format +msgid "Select next edit point (tag or empty attribute)." +msgstr "প্রতি পরবর্তী" + +#: script/data/commands/emmet.js:104 +#, fuzzy, kde-format +msgid "Select previous edit point (tag or empty attribute)." +msgstr "প্রতি" + +#: script/data/commands/emmet.js:105 +#, kde-format +msgid "Toggle comment of current tag or CSS selector" +msgstr "" + +#: script/data/commands/emmet.js:106 +#, fuzzy, kde-format +msgid "Deletes tag under cursor" +msgstr "সংরক্ষণ করো টি বর্তমান নথী" + +#: script/data/commands/emmet.js:107 +#, kde-format +msgid "Splits or joins a tag" +msgstr "" + +#: script/data/commands/emmet.js:108 +#, kde-format +msgid "Evaluates a simple math expression" +msgstr "" + +#: script/data/commands/emmet.js:109 +#, kde-format +msgid "Decrement number under cursor by 1" +msgstr "" + +#: script/data/commands/emmet.js:110 +#, kde-format +msgid "Decrement number under cursor by 10" +msgstr "" + +#: script/data/commands/emmet.js:111 +#, kde-format +msgid "Decrement number under cursor by 0.1" +msgstr "" + +#: script/data/commands/emmet.js:112 +#, kde-format +msgid "Increment number under cursor by 1" +msgstr "" + +#: script/data/commands/emmet.js:113 +#, kde-format +msgid "Increment number under cursor by 10" +msgstr "" + +#: script/data/commands/emmet.js:114 +#, kde-format +msgid "Increment number under cursor by 0.1" +msgstr "" + +#: script/data/commands/jumpMatchingIndent.js:9 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Previous Matching Indent" +msgstr "সরাও প্রতি" + +#: script/data/commands/jumpMatchingIndent.js:11 +#: script/data/commands/jumpMatchingIndent.js:16 +#: script/data/commands/jumpMatchingIndent.js:21 +#: script/data/commands/jumpMatchingIndent.js:26 +#: script/data/commands/navigation.js:10 script/data/commands/navigation.js:14 +#, fuzzy, kde-format +msgctxt "Script command category" +msgid "Navigation" +msgstr "Sources" + +#: script/data/commands/jumpMatchingIndent.js:14 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Next Matching Indent" +msgstr "সরাও প্রতি" + +#: script/data/commands/jumpMatchingIndent.js:19 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Next Blank Line" +msgstr "সরাও প্রতি" + +#: script/data/commands/jumpMatchingIndent.js:24 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Previous Blank Line" +msgstr "সরাও প্রতি" + +#: script/data/commands/jumpMatchingIndent.js:80 +#, fuzzy, kde-format +msgid "Move cursor to previous matching indent" +msgstr "সরাও প্রতি" + +#: script/data/commands/jumpMatchingIndent.js:83 +#, fuzzy, kde-format +msgid "Move cursor to next matching indent" +msgstr "সরাও প্রতি" + +#: script/data/commands/jumpMatchingIndent.js:85 +#, fuzzy, kde-format +msgid "Move cursor to next blank line" +msgstr "সরাও প্রতি" + +#: script/data/commands/jumpMatchingIndent.js:87 +#, fuzzy, kde-format +msgid "Move cursor to previous blank line" +msgstr "সরাও প্রতি" + +#: script/data/commands/navigation.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Go to Next Paragraph" +msgstr "" + +#: script/data/commands/navigation.js:13 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Go to Previous Paragraph" +msgstr "প্রতি" + +#: script/data/commands/utils.js:9 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Remove Trailing Spaces" +msgstr "সরিয়ে ফেলো অনুসরণ করা" + +#: script/data/commands/utils.js:10 script/data/commands/utils.js:14 +#: script/data/commands/utils.js:18 script/data/commands/utils.js:22 +#: script/data/commands/utils.js:27 script/data/commands/utils.js:32 +#: script/data/commands/utils.js:36 script/data/commands/utils.js:40 +#: script/data/commands/utils.js:44 script/data/commands/utils.js:48 +#: script/data/commands/utils.js:52 script/data/commands/utils.js:56 +#, fuzzy, kde-format +#| msgid "Editing" +msgctxt "Script command category" +msgid "Editing" +msgstr "সম্পাদনা" + +#: script/data/commands/utils.js:13 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Remove Leading Spaces" +msgstr "সরিয়ে ফেলো অনুসরণ করা" + +#: script/data/commands/utils.js:17 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Remove Trailing and Leading Spaces" +msgstr "সরিয়ে ফেলো অনুসরণ করা" + +#: script/data/commands/utils.js:21 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Join Lines" +msgstr "উপর" + +#: script/data/commands/utils.js:25 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Move Lines Down" +msgstr "উপর" + +#: script/data/commands/utils.js:30 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Move Lines Up" +msgstr "উপর" + +#: script/data/commands/utils.js:35 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Duplicate Selected Lines Down" +msgstr "নির্বাচিত" + +#: script/data/commands/utils.js:39 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Duplicate Selected Lines Up" +msgstr "নির্বাচিত" + +#: script/data/commands/utils.js:43 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Duplicate selected text" +msgstr "নির্বাচিত" + +#: script/data/commands/utils.js:47 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgctxt "Script command name" +msgid "URI-encode Selected Text" +msgstr "নির্বাচিত লেখা:" + +#: script/data/commands/utils.js:51 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgctxt "Script command name" +msgid "URI-decode Selected Text" +msgstr "নির্বাচিত লেখা:" + +#: script/data/commands/utils.js:55 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Remove Empty Lines" +msgstr "সরাও প্রতি" + +#: script/data/commands/utils.js:410 +#, fuzzy, kde-format +msgid "Sort the selected text or whole document." +msgstr "টি সমগ্র লেখা -র টি বর্তমান নথী." + +#: script/data/commands/utils.js:412 +#, fuzzy, kde-format +msgid "Move selected lines down." +msgstr "নির্বাচিত" + +#: script/data/commands/utils.js:414 +#, fuzzy, kde-format +msgid "Move selected lines up." +msgstr "নির্বাচিত" + +#: script/data/commands/utils.js:416 +#, kde-format +msgid "Remove duplicate lines from the selected text or whole document." +msgstr "" + +#: script/data/commands/utils.js:418 +#, kde-format +msgid "" +"Sort the selected text or whole document in natural order.
Here is an " +"example to show the difference to the normal sort method:
sort(a10, a1, " +"a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" +msgstr "" + +#: script/data/commands/utils.js:420 +#, kde-format +msgid "Trims trailing whitespace from selection or whole document." +msgstr "" + +#: script/data/commands/utils.js:422 +#, kde-format +msgid "Trims leading whitespace from selection or whole document." +msgstr "" + +#: script/data/commands/utils.js:424 +#, kde-format +msgid "Trims leading and trailing whitespace from selection or whole document." +msgstr "" + +#: script/data/commands/utils.js:426 +#, kde-format +msgid "" +"Joins selected lines or whole document. Optionally pass a separator to put " +"between each line:
join ', ' will e.g. join lines and " +"separate them by a comma." +msgstr "" + +#: script/data/commands/utils.js:428 +#, kde-format +msgid "Removes empty lines from selection or whole document." +msgstr "" + +#: script/data/commands/utils.js:430 +#, kde-format +msgid "" +"This command aligns lines in the selected block or whole document on the " +"column given by a regular expression given as an argument.

If you " +"give an empty pattern it will align on the first non-blank character by " +"default.
If the pattern has a capture it will indent on the captured " +"match.

Examples:
'alignon -' will insert " +"spaces before the first '-' of each lines to align them all on the same " +"column.
'alignon :\\s+(.)' will insert spaces before the " +"first non-blank character that occurs after a colon to align them all on the " +"same column." +msgstr "" + +#: script/data/commands/utils.js:434 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and replace them with the return value of that callback." +"
Example (join selected lines):
each 'function(lines){return " +"lines.join(\", \");}'
To save you some typing, you can also do " +"this to achieve the same:
each 'lines.join(\", \")'" +msgstr "" + +#: script/data/commands/utils.js:436 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and remove those where the callback returns false." +"
Example (see also rmblank):
filter 'function(l)" +"{return l.length > 0;}'
To save you some typing, you can also do " +"this to achieve the same:
filter 'line.length > 0'" +msgstr "" + +#: script/data/commands/utils.js:438 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and replace the line with the return value of the callback." +"
Example (see also ltrim):
map 'function(line)" +"{return line.replace(/^\\s+/, \"\");}'
To save you some typing, " +"you can also do this to achieve the same:
map 'line.replace(/^\\s" +"+/, \"\")'" +msgstr "" + +#: script/data/commands/utils.js:440 +#, kde-format +msgid "Duplicates the selected lines up." +msgstr "" + +#: script/data/commands/utils.js:442 +#, kde-format +msgid "Duplicates the selected lines down." +msgstr "" + +#: script/data/commands/utils.js:446 +#, kde-format +msgid "" +"Encode special chars in a single line selection, so the result text can be " +"used as URI." +msgstr "" + +#: script/data/commands/utils.js:448 +#, kde-format +msgid "Reverse action of URI encode." +msgstr "" + +#: script/data/commands/utils.js:450 +#, kde-format +msgid "" +"Select text forward from current cursor position to the first occurrence of " +"the given argument after it (or the end of the current line by default)." +msgstr "" + +#: script/data/commands/utils.js:452 +#, kde-format +msgid "" +"Select text backward from current cursor position to the last occurrence of " +"the given argument before it (or the beginning of the current line by " +"default)." +msgstr "" + +#: script/data/indentation/ada.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Ada" +msgctxt "Autoindent mode" +msgid "ada" +msgstr "Ada" + +#: script/data/indentation/cmake.js:2 +#, fuzzy, kde-format +msgctxt "Autoindent mode" +msgid "CMake" +msgstr "C" + +#: script/data/indentation/cppstyle.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "C++/boost Style" +msgstr "" + +#: script/data/indentation/cstyle.js:2 +#, fuzzy, kde-format +msgctxt "Autoindent mode" +msgid "C Style" +msgstr "কেট স্টাইলসমূহ" + +#: script/data/indentation/haskell.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Haskell" +msgctxt "Autoindent mode" +msgid "Haskell" +msgstr "Haskell" + +#: script/data/indentation/julia.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Julia" +msgstr "" + +#: script/data/indentation/latex.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Latex" +msgstr "" + +#: script/data/indentation/lilypond.js:2 +#, fuzzy, kde-format +msgctxt "Autoindent mode" +msgid "LilyPond" +msgstr "LPC" + +#: script/data/indentation/lisp.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "LISP" +msgstr "" + +#: script/data/indentation/pascal.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Pascal" +msgctxt "Autoindent mode" +msgid "Pascal" +msgstr "Pascal" + +#: script/data/indentation/python.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Python" +msgctxt "Autoindent mode" +msgid "Python" +msgstr "Python" + +#: script/data/indentation/r.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "R" +msgstr "" + +#: script/data/indentation/replicode.js:2 +#, fuzzy, kde-format +#| msgid "&Replace" +msgctxt "Autoindent mode" +msgid "Replicode" +msgstr "&বদলাও" + +#: script/data/indentation/ruby.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Ruby" +msgctxt "Autoindent mode" +msgid "Ruby" +msgstr "Ruby" + +#: script/data/indentation/xml.js:2 +#, fuzzy, kde-format +msgctxt "Autoindent mode" +msgid "XML Style" +msgstr "কেট স্টাইলসমূহ" + +#: script/katecommandlinescript.cpp:37 +#, kde-format +msgid "Function '%1' not found in script: %2" +msgstr "" + +#: script/katecommandlinescript.cpp:51 +#, fuzzy, kde-format +#| msgid "Error: %1" +msgid "Error calling %1" +msgstr "সমস্যা: %1" + +#: script/katecommandlinescript.cpp:68 +#, kde-format +msgid "Bad quoting in call: %1. Please escape single quotes with a backslash." +msgstr "" + +#: script/katecommandlinescript.cpp:76 utils/katecmds.cpp:217 +#: vimode/cmds.cpp:37 +#, fuzzy, kde-format +msgid "Could not access view" +msgstr "নয় ব্যবহারের সুযোগ দেখাও" + +#: script/katecommandlinescript.cpp:118 +#, kde-format +msgid "Error calling 'help %1'" +msgstr "" + +#: script/katecommandlinescript.cpp:123 +#, kde-format +msgid "No help specified for command '%1' in script %2" +msgstr "" + +#: script/katescript.cpp:282 +#, fuzzy, kde-format +#| msgid "Error: %1" +msgid "Error loading script %1: %2" +msgstr "সমস্যা: %1" + +#: script/katescriptmanager.cpp:319 +#, kde-format +msgid "Reload all JavaScript files (indenters, command line scripts, etc)." +msgstr "" + +#: script/katescriptview.cpp:214 +#, kde-format +msgid "Command not found: %1" +msgstr "" + +#: search/katesearchbar.cpp:73 +#, kde-format +msgid "Add..." +msgstr "" + +#: search/katesearchbar.cpp:298 +#, fuzzy, kde-format +#| msgid "%1 replacement made." +#| msgid_plural "%1 replacements made." +msgctxt "short translation" +msgid "1 replacement made" +msgid_plural "%1 replacements made" +msgstr[0] "%1-টি স্থানে বদল করা হয়েছে।" +msgstr[1] "%1-টি স্থানে বদল করা হয়েছে।" + +#: search/katesearchbar.cpp:300 +#, kde-format +msgctxt "short translation" +msgid "1 match found" +msgid_plural "%1 matches found" +msgstr[0] "" +msgstr[1] "" + +#: search/katesearchbar.cpp:374 +#, kde-format +msgid "Reached top, continued from bottom" +msgstr "" + +#: search/katesearchbar.cpp:376 +#, kde-format +msgid "Reached bottom, continued from top" +msgstr "" + +#: search/katesearchbar.cpp:381 +#, kde-format +msgid "Not found" +msgstr "" + +#: search/katesearchbar.cpp:615 +#, kde-format +msgid "Bottom of file reached. Continue from top?" +msgstr "" + +#: search/katesearchbar.cpp:615 +#, kde-format +msgid "Top of file reached. Continue from bottom?" +msgstr "" + +#: search/katesearchbar.cpp:618 +#, fuzzy, kde-format +#| msgid "Continue from the end?" +msgid "Continue search?" +msgstr "শেষ থেকে আবার আরম্ভ করব?" + +#: search/katesearchbar.cpp:920 +#, fuzzy, kde-format +#| msgid "Highlighting" +msgid "SearchHighLight" +msgstr "হাইলাইটিং" + +#: search/katesearchbar.cpp:1136 search/katesearchbar.cpp:1755 +#, kde-format +msgid "Clear history" +msgstr "" + +#: search/katesearchbar.cpp:1166 +#, fuzzy, kde-format +msgid "Beginning of line" +msgstr "লাইনের শুরুতে চলে যাও" + +#: search/katesearchbar.cpp:1167 +#, fuzzy, kde-format +msgid "End of line" +msgstr "লাইনের শে&ষ:" + +#: search/katesearchbar.cpp:1169 +#, kde-format +msgid "Match any character excluding new line (by default)" +msgstr "" + +#: search/katesearchbar.cpp:1170 +#, kde-format +msgid "One or more occurrences" +msgstr "" + +#: search/katesearchbar.cpp:1171 +#, kde-format +msgid "Zero or more occurrences" +msgstr "" + +#: search/katesearchbar.cpp:1172 +#, kde-format +msgid "Zero or one occurrences" +msgstr "" + +#: search/katesearchbar.cpp:1175 +#, kde-format +msgid " through occurrences" +msgstr "" + +#: search/katesearchbar.cpp:1181 +#, kde-format +msgid "Group, capturing" +msgstr "" + +#: search/katesearchbar.cpp:1182 +#, kde-format +msgid "Or" +msgstr "" + +#: search/katesearchbar.cpp:1183 +#, fuzzy, kde-format +msgid "Set of characters" +msgstr "মধ্যে ঢোকাও ট্যাব বর্ণ, অক্ষর" + +#: search/katesearchbar.cpp:1184 +#, fuzzy, kde-format +msgid "Negative set of characters" +msgstr "বাঁদিক" + +#: search/katesearchbar.cpp:1188 +#, kde-format +msgid "Whole match reference" +msgstr "" + +#: search/katesearchbar.cpp:1199 +#, kde-format +msgid "Reference" +msgstr "" + +#: search/katesearchbar.cpp:1206 +#, fuzzy, kde-format +msgid "Line break" +msgstr "লাই&ন নম্বর দেখাও" + +#: search/katesearchbar.cpp:1207 +#, kde-format +msgid "Tab" +msgstr "" + +#: search/katesearchbar.cpp:1210 +#, kde-format +msgid "Word boundary" +msgstr "" + +#: search/katesearchbar.cpp:1211 +#, kde-format +msgid "Not word boundary" +msgstr "" + +#: search/katesearchbar.cpp:1212 +#, kde-format +msgid "Digit" +msgstr "" + +#: search/katesearchbar.cpp:1213 +#, kde-format +msgid "Non-digit" +msgstr "" + +#: search/katesearchbar.cpp:1214 +#, kde-format +msgid "Whitespace (excluding line breaks)" +msgstr "" + +#: search/katesearchbar.cpp:1215 +#, fuzzy, kde-format +#| msgid "&Replace" +msgid "Non-whitespace" +msgstr "&বদলাও" + +#: search/katesearchbar.cpp:1216 +#, kde-format +msgid "Word character (alphanumerics plus '_')" +msgstr "" + +#: search/katesearchbar.cpp:1217 +#, fuzzy, kde-format +msgid "Non-word character" +msgstr "মধ্যে ঢোকাও ট্যাব বর্ণ, অক্ষর" + +#: search/katesearchbar.cpp:1220 +#, kde-format +msgid "Octal character 000 to 377 (2^8-1)" +msgstr "" + +#: search/katesearchbar.cpp:1221 +#, kde-format +msgid "Hex character 0000 to FFFF (2^16-1)" +msgstr "" + +#: search/katesearchbar.cpp:1222 +#, fuzzy, kde-format +msgid "Backslash" +msgstr "ওপর সংরক্ষণ করো" + +#: search/katesearchbar.cpp:1226 +#, kde-format +msgid "Group, non-capturing" +msgstr "" + +#: search/katesearchbar.cpp:1227 +#, kde-format +msgid "Positive Lookahead" +msgstr "" + +#: search/katesearchbar.cpp:1228 +#, kde-format +msgid "Negative lookahead" +msgstr "" + +#: search/katesearchbar.cpp:1232 +#, kde-format +msgid "Fixed-length positive lookbehind" +msgstr "" + +#: search/katesearchbar.cpp:1233 +#, kde-format +msgid "Fixed-length negative lookbehind" +msgstr "" + +#: search/katesearchbar.cpp:1238 +#, kde-format +msgid "Begin lowercase conversion" +msgstr "" + +#: search/katesearchbar.cpp:1239 +#, kde-format +msgid "Begin uppercase conversion" +msgstr "" + +#: search/katesearchbar.cpp:1240 +#, kde-format +msgid "End case conversion" +msgstr "" + +#: search/katesearchbar.cpp:1241 +#, kde-format +msgid "Lowercase first character conversion" +msgstr "" + +#: search/katesearchbar.cpp:1242 +#, kde-format +msgid "Uppercase first character conversion" +msgstr "" + +#: search/katesearchbar.cpp:1243 +#, kde-format +msgid "Replacement counter (for Replace All)" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: search/searchbarincremental.ui:50 +#, fuzzy, kde-format +msgid "F&ind:" +msgstr "খোঁজ" + +#. i18n: ectx: property (toolTip), widget (QComboBox, pattern) +#: search/searchbarincremental.ui:78 search/searchbarpower.ui:295 +#, kde-format +msgid "Text to search for" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QToolButton, findNext) +#. i18n: ectx: property (toolTip), widget (QToolButton, next) +#: search/searchbarincremental.ui:91 search/searchbarpower.ui:175 +#, kde-format +msgid "Jump to next match" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QToolButton, findPrev) +#. i18n: ectx: property (toolTip), widget (QToolButton, prev) +#: search/searchbarincremental.ui:101 search/searchbarpower.ui:185 +#, fuzzy, kde-format +msgid "Jump to previous match" +msgstr "পূর্ববর্তী বুকমার্ক-এ যাও" + +#. i18n: ectx: property (toolTip), widget (QToolButton, matchCase) +#: search/searchbarincremental.ui:111 search/searchbarpower.ui:136 +#, fuzzy, kde-format +msgid "Match case sensitive" +msgstr "কেস্ সেনসিটিভ" + +#. i18n: ectx: property (toolTip), widget (QToolButton, mutate) +#: search/searchbarincremental.ui:146 +#, kde-format +msgid "Switch to power search and replace bar" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: search/searchbarpower.ui:50 +#, kde-format +msgid "Fin&d:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: search/searchbarpower.ui:63 +#, fuzzy, kde-format +msgid "Rep&lace:" +msgstr "&বদলাও" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: search/searchbarpower.ui:76 +#, fuzzy, kde-format +msgid "&Mode:" +msgstr "বোল্ড (&ব)" + +#. i18n: ectx: property (toolTip), widget (QComboBox, searchMode) +#: search/searchbarpower.ui:103 +#, fuzzy, kde-format +msgid "Search mode" +msgstr "সন্ধান" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:113 +#, fuzzy, kde-format +msgid "Plain text" +msgstr "পরেরটি খোঁজো" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:118 +#, kde-format +msgid "Whole words" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:123 +#, kde-format +msgid "Escape sequences" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:128 +#, fuzzy, kde-format +msgid "Regular expression" +msgstr "রেগুলার এক্সপ্রেশন" + +#. i18n: ectx: property (toolTip), widget (QToolButton, selectionOnly) +#: search/searchbarpower.ui:149 +#, fuzzy, kde-format +msgid "Search in the selection only" +msgstr "শুধু নির্বাচন" + +#. i18n: ectx: property (toolTip), widget (QPushButton, replaceNext) +#: search/searchbarpower.ui:195 +#, fuzzy, kde-format +msgid "Replace next match" +msgstr "শর্টকাট কনফিগারেশন" + +#. i18n: ectx: property (text), widget (QPushButton, replaceNext) +#. i18n: ectx: property (text), widget (QPushButton, m_replaceBtn) +#: search/searchbarpower.ui:198 spellcheck/spellcheckbar.ui:130 +#, kde-format +msgid "&Replace" +msgstr "&বদলাও" + +#. i18n: ectx: property (toolTip), widget (QPushButton, replaceAll) +#: search/searchbarpower.ui:224 +#, fuzzy, kde-format +msgid "Replace all matches" +msgstr "&সব বদলাও" + +#. i18n: ectx: property (text), widget (QPushButton, replaceAll) +#: search/searchbarpower.ui:227 +#, fuzzy, kde-format +msgid "Replace &All" +msgstr "&সব বদলাও" + +#. i18n: ectx: property (text), widget (QPushButton, findAll) +#: search/searchbarpower.ui:234 +#, kde-format +msgid "&Find All" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, cancel) +#: search/searchbarpower.ui:257 +#, kde-format +msgid "Cancel" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QToolButton, mutate) +#: search/searchbarpower.ui:268 +#, fuzzy, kde-format +msgid "Switch to incremental search bar" +msgstr "পরবর্তী সন্ধান" + +#. i18n: ectx: property (toolTip), widget (QComboBox, replacement) +#: search/searchbarpower.ui:314 +#, kde-format +msgid "Text to replace with" +msgstr "" + +#: spellcheck/spellcheckbar.cpp:148 +#, fuzzy, kde-format +msgid "Spell check canceled." +msgstr "বানান পরীক্ষা" + +#: spellcheck/spellcheckbar.cpp:245 +#, fuzzy, kde-format +msgctxt "@info:progress" +msgid "Spell checking in progress…" +msgstr "বানান পরীক্ষা" + +#: spellcheck/spellcheckbar.cpp:246 spellcheck/spellcheckbar.cpp:435 +#, kde-format +msgctxt "@title:window" +msgid "Check Spelling" +msgstr "" + +#: spellcheck/spellcheckbar.cpp:432 spellcheck/spellcheckbar.cpp:435 +#, fuzzy, kde-format +msgid "Spell check complete." +msgstr "বানান পরীক্ষা" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel2) +#. i18n: ectx: property (whatsThis), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:30 spellcheck/spellcheckbar.ui:46 +#, kde-format +msgid "" +"

This word was considered to be an \"unknown word\" because it does " +"not match any entry in the dictionary currently in use. It may also be a " +"word in a foreign language.

\n" +"

If the word is not misspelled, you may add it to the dictionary by " +"clicking Add to Dictionary. If you do not want to add the unknown " +"word to the dictionary, but you want to leave it unchanged, click Ignore or Ignore All.

\n" +"

However, if the word is misspelled, you can try to find the correct " +"replacement in the list below. If you cannot find a replacement there, you " +"may type it in the text box below, and click Replace or Replace " +"All.

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, textLabel2) +#: spellcheck/spellcheckbar.ui:33 +#, fuzzy, kde-format +msgid "Unknown word:" +msgstr "বাক্সর বৈশিষ্ট্যাবলী" + +#. i18n: ectx: property (toolTip), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:40 +#, fuzzy, kde-format +msgid "Unknown word" +msgstr "বাক্সর বৈশিষ্ট্যাবলী" + +#. i18n: ectx: property (text), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:49 +#, kde-format +msgid "misspelled" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_addBtn) +#: spellcheck/spellcheckbar.ui:72 +#, kde-format +msgid "" +"\n" +"

The unknown word was detected and considered unknown because it is not " +"included in the dictionary.
\n" +"Click here if you consider the unknown word not to be misspelled, and you " +"want to avoid wrongly detecting it again in the future. If you want to let " +"it remain as is, but not add it to the dictionary, then click Ignore " +"or Ignore All instead.

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, m_addBtn) +#: spellcheck/spellcheckbar.ui:75 +#, fuzzy, kde-format +msgid "<< Add to Dictionary" +msgstr "নির্বাচন" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel4) +#: spellcheck/spellcheckbar.ui:89 +#, kde-format +msgid "" +"\n" +"

If the unknown word is misspelled, you should type the correction for " +"your misspelled word here or select it from the list below.

\n" +"

You can then click Replace if you want to correct only this " +"occurrence of the word or Replace All if you want to correct all " +"occurrences.

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, textLabel4) +#: spellcheck/spellcheckbar.ui:92 +#, fuzzy, kde-format +msgid "Replace with:" +msgstr "শর্টকাট কনফিগারেশন" + +#. i18n: ectx: property (text), widget (QPushButton, m_suggestBtn) +#: spellcheck/spellcheckbar.ui:118 +#, kde-format +msgid "S&uggest" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_replaceBtn) +#: spellcheck/spellcheckbar.ui:127 +#, kde-format +msgid "" +"\n" +"

Click here to replace this occurrence of the unknown text with the text " +"in the edit box above (to the left).

\n" +"
" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_skipBtn) +#: spellcheck/spellcheckbar.ui:140 +#, kde-format +msgid "" +"\n" +"

Click here to let this occurrence of the unknown word remain as is.

\n" +"

This action is useful when the word is a name, an acronym, a foreign word " +"or any other unknown word that you want to use but not add to the dictionary." +"

\n" +"
" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel5) +#. i18n: ectx: property (whatsThis), widget (Sonnet::DictionaryComboBox, m_language) +#: spellcheck/spellcheckbar.ui:156 spellcheck/spellcheckbar.ui:174 +#, kde-format +msgid "" +"\n" +"

Select the language of the document you are proofing here.

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, textLabel5) +#: spellcheck/spellcheckbar.ui:159 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "E Language" +msgid "&Language:" +msgstr "E Language" + +#. i18n: ectx: property (toolTip), widget (Sonnet::DictionaryComboBox, m_language) +#: spellcheck/spellcheckbar.ui:169 +#, kde-format +msgid "Language Selection" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_autoCorrect) +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_skipAllBtn) +#: spellcheck/spellcheckbar.ui:197 spellcheck/spellcheckbar.ui:222 +#, kde-format +msgid "" +"\n" +"

Click here to let all occurrences of the unknown word remain as they are." +"

\n" +"

This action is useful when the word is a name, an acronym, a foreign word " +"or any other unknown word that you want to use but not add to the dictionary." +"

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, m_autoCorrect) +#: spellcheck/spellcheckbar.ui:200 +#, kde-format +msgid "Autocorrect" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_replaceAllBtn) +#: spellcheck/spellcheckbar.ui:209 +#, kde-format +msgid "" +"\n" +"

Click here to replace all occurrences of the unknown text with the text " +"in the edit box above (to the left).

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, m_replaceAllBtn) +#: spellcheck/spellcheckbar.ui:212 +#, fuzzy, kde-format +msgid "R&eplace All" +msgstr "&সব বদলাও" + +#. i18n: ectx: property (text), widget (QPushButton, m_skipAllBtn) +#: spellcheck/spellcheckbar.ui:225 +#, kde-format +msgid "I&gnore All" +msgstr "" + +#: spellcheck/spellcheckdialog.cpp:51 +#, kde-format +msgctxt "@action" +msgid "Spelling (from Cursor)…" +msgstr "" + +#: spellcheck/spellcheckdialog.cpp:54 +#, kde-format +msgid "Check the document's spelling from the cursor and forward" +msgstr "" + +#: spellcheck/spellingmenu.cpp:76 +#, kde-format +msgid "Ignore Word" +msgstr "" + +#: spellcheck/spellingmenu.cpp:79 +#, fuzzy, kde-format +msgid "Add to Dictionary" +msgstr "নির্বাচন" + +#: spellcheck/spellingmenu.cpp:172 +#, kde-format +msgid "Spelling '%1'" +msgstr "" + +#: swapfile/kateswapdiffcreator.cpp:87 +#, fuzzy, kde-format +msgid "" +"The diff command could not be found. Please make sure that diff(1) is " +"installed and in your PATH." +msgstr "পারে নয় আরম্ভকৃত make নিশ্চিত আপনি সঠিকভাবে কনফিগার করা এবং ইঞ্চি আপনার." + +#: swapfile/kateswapdiffcreator.cpp:98 +#, kde-format +msgid "The diff command '%1' could not be started." +msgstr "" + +#: swapfile/kateswapfile.cpp:642 +#, kde-format +msgid "The file was not closed properly." +msgstr "" + +#: swapfile/kateswapfile.cpp:645 +#, kde-format +msgid "View Changes" +msgstr "" + +#: swapfile/kateswapfile.cpp:646 +#, kde-format +msgid "Recover Data" +msgstr "" + +#: swapfile/kateswapfile.cpp:647 +#, fuzzy, kde-format +msgid "Discard" +msgstr "নিষ্ক্রিয়" + +#: syntax/katecolortreewidget.cpp:34 syntax/katecolortreewidget.cpp:61 +#, kde-format +msgid "Use default color from the color theme" +msgstr "" + +#: syntax/katehighlightmenu.cpp:39 +#, fuzzy, kde-format +msgid "None" +msgstr "কিছু না" + +#: syntax/katestyletreewidget.cpp:135 +#, fuzzy, kde-format +msgctxt "@title:column Meaning of text in editor" +msgid "Context" +msgstr "প্রসঙ্গ" + +#: syntax/katestyletreewidget.cpp:136 +#, fuzzy, kde-format +msgctxt "@title:column Text style" +msgid "Normal" +msgstr "স্বাভাবিক" + +#: syntax/katestyletreewidget.cpp:136 +#, fuzzy, kde-format +msgctxt "@title:column Text style" +msgid "Selected" +msgstr "নির্বাচিত" + +#: syntax/katestyletreewidget.cpp:136 +#, fuzzy, kde-format +msgctxt "@title:column Text style" +msgid "Background" +msgstr "পটভূমি" + +#: syntax/katestyletreewidget.cpp:137 +#, fuzzy, kde-format +msgctxt "@title:column Text style" +msgid "Background Selected" +msgstr "নির্বাচিত" + +#: syntax/katestyletreewidget.cpp:139 +#, kde-format +msgid "Use Default Style" +msgstr "ডিফল্ট স্টাইল ব্যবহার করো" + +#: syntax/katestyletreewidget.cpp:238 +#, kde-format +msgid "&Bold" +msgstr "বোল্ড (&ব)" + +#: syntax/katestyletreewidget.cpp:243 +#, kde-format +msgid "&Italic" +msgstr "ইটালিক (&ই)" + +#: syntax/katestyletreewidget.cpp:248 +#, kde-format +msgid "&Underline" +msgstr "" + +#: syntax/katestyletreewidget.cpp:253 +#, kde-format +msgid "S&trikeout" +msgstr "" + +#: syntax/katestyletreewidget.cpp:260 +#, fuzzy, kde-format +#| msgid "Normal &Color..." +msgctxt "@action:inmenu" +msgid "Normal &Color…" +msgstr "স্বাভাবি&ক রং..." + +#: syntax/katestyletreewidget.cpp:263 +#, fuzzy, kde-format +#| msgid "&Selected Color..." +msgctxt "@action:inmenu" +msgid "&Selected Color…" +msgstr "নির্বাচি&ত রং..." + +#: syntax/katestyletreewidget.cpp:266 +#, fuzzy, kde-format +msgctxt "@action:inmenu" +msgid "&Background Color…" +msgstr "&পটভূমি" + +#: syntax/katestyletreewidget.cpp:269 +#, fuzzy, kde-format +msgctxt "@action:inmenu" +msgid "S&elected Background Color…" +msgstr "নির্বাচি&ত রং..." + +#: syntax/katestyletreewidget.cpp:275 +#, fuzzy, kde-format +#| msgid "Normal &Color..." +msgid "Unset Normal Color" +msgstr "স্বাভাবি&ক রং..." + +#: syntax/katestyletreewidget.cpp:278 +#, fuzzy, kde-format +#| msgid "&Selected Color..." +msgid "Unset Selected Color" +msgstr "নির্বাচি&ত রং..." + +#: syntax/katestyletreewidget.cpp:284 +#, fuzzy, kde-format +msgid "Unset Background Color" +msgstr "&পটভূমির রং আঁকো" + +#: syntax/katestyletreewidget.cpp:289 +#, kde-format +msgid "Unset Selected Background Color" +msgstr "" + +#: syntax/katestyletreewidget.cpp:295 +#, kde-format +msgid "Use &Default Style" +msgstr "ডি&ফল্ট স্টাইল ব্যবহার করো" + +#: syntax/katestyletreewidget.cpp:408 +#, fuzzy, kde-format +msgctxt "No text or background color set" +msgid "None set" +msgstr "কিছু না" + +#: syntax/katestyletreewidget.cpp:642 +#, fuzzy, kde-format +msgid "" +"\"Use Default Style\" will be automatically unset when you change any style " +"properties." +msgstr "" +"ডিফল্ট স্বয়ংক্রীয়ভাবে নিষ্ক্রিয়করণ যখন আপনি পরিবর্তন যে কোনো ধরন,স্টাইল " +"বৈশিষ্ট্যাবলী." + +#: syntax/katestyletreewidget.cpp:643 +#, kde-format +msgid "Kate Styles" +msgstr "কেট স্টাইলসমূহ" + +#: syntax/katethemeconfig.cpp:47 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Normal" +msgstr "স্বাভাবিক" + +#: syntax/katethemeconfig.cpp:49 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Keyword" +msgstr "" + +#: syntax/katethemeconfig.cpp:51 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Function" +msgstr "" + +#: syntax/katethemeconfig.cpp:53 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Variable" +msgstr "নিষ্ক্রিয়" + +#: syntax/katethemeconfig.cpp:55 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Control Flow" +msgstr "" + +#: syntax/katethemeconfig.cpp:57 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Operator" +msgstr "" + +#: syntax/katethemeconfig.cpp:59 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Built-in" +msgstr "" + +#: syntax/katethemeconfig.cpp:61 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Extension" +msgstr "ফাইল এক্সটেন&শন:" + +#: syntax/katethemeconfig.cpp:63 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Preprocessor" +msgstr "" + +#: syntax/katethemeconfig.cpp:65 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Attribute" +msgstr "" + +#: syntax/katethemeconfig.cpp:68 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Character" +msgstr "মধ্যে ঢোকাও ট্যাব বর্ণ, অক্ষর" + +#: syntax/katethemeconfig.cpp:70 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Special Character" +msgstr "মধ্যে ঢোকাও ট্যাব বর্ণ, অক্ষর" + +#: syntax/katethemeconfig.cpp:72 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "String" +msgstr "টেক্স&ট সেটিংস" + +#: syntax/katethemeconfig.cpp:74 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Verbatim String" +msgstr "" + +#: syntax/katethemeconfig.cpp:76 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Special String" +msgstr "ফাইল টাইপ অনুসারে বিশেষ সেটিংস" + +#: syntax/katethemeconfig.cpp:78 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Imports, Modules, Includes" +msgstr "" + +#: syntax/katethemeconfig.cpp:81 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Data Type" +msgstr "ধরন" + +#: syntax/katethemeconfig.cpp:83 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Decimal/Value" +msgstr "মান" + +#: syntax/katethemeconfig.cpp:85 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Base-N Integer" +msgstr "" + +#: syntax/katethemeconfig.cpp:87 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Floating Point" +msgstr "" + +#: syntax/katethemeconfig.cpp:89 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Constant" +msgstr "প্রসঙ্গ" + +#: syntax/katethemeconfig.cpp:92 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Comment" +msgstr "মন্তব্য" + +#: syntax/katethemeconfig.cpp:94 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Documentation" +msgstr "নিয়মাবলী" + +#: syntax/katethemeconfig.cpp:96 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Annotation" +msgstr "মোড:" + +#: syntax/katethemeconfig.cpp:98 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Comment Variable" +msgstr "নিষ্ক্রিয়" + +#: syntax/katethemeconfig.cpp:101 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Region Marker" +msgstr "" + +#: syntax/katethemeconfig.cpp:103 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Inform" +msgctxt "@item:intable Text context" +msgid "Information" +msgstr "Inform" + +#: syntax/katethemeconfig.cpp:105 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Warning" +msgstr "" + +#: syntax/katethemeconfig.cpp:107 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Alert" +msgstr "ferite" + +#: syntax/katethemeconfig.cpp:110 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Others" +msgstr "অন্যান্য" + +#: syntax/katethemeconfig.cpp:113 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Error" +msgstr "সমস্যা:" + +#: syntax/katethemeconfig.cpp:162 +#, fuzzy, kde-format +#| msgid "Use Default Style" +msgid "Use Default Colors" +msgstr "ডিফল্ট স্টাইল ব্যবহার করো" + +#: syntax/katethemeconfig.cpp:182 +#, fuzzy, kde-format +msgid "Editor Background Colors" +msgstr "&পটভূমির রং আঁকো" + +#: syntax/katethemeconfig.cpp:184 +#, fuzzy, kde-format +msgid "Text Area" +msgstr "টেক্সট ক্ষেত্রের পটভূমি" + +#: syntax/katethemeconfig.cpp:186 +#, fuzzy, kde-format +msgid "

Sets the background color of the editing area.

" +msgstr "

টি পটভূমি, প্রেক্ষাপট, পশ্চাদপট রং -র টি সম্পাদন ক্ষেত্র, অঞ্চল, অংশ

" + +#: syntax/katethemeconfig.cpp:191 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgid "Selected Text" +msgstr "নির্বাচিত লেখা:" + +#: syntax/katethemeconfig.cpp:194 +#, fuzzy, kde-format +msgid "" +"

Sets the background color of the selection.

To set the text color " +"for selected text, use the "Configure Highlighting" dialog." +"

" +msgstr "" +"

টি পটভূমি, প্রেক্ষাপট, পশ্চাদপট রং -র টি নির্বাচন

সেট,সমষ্টি,মান " +"নির্ধারণ টি লেখা রং জন্য নির্বাচিত লেখা ব্যবহার টি কনফিগার ডায়ালগ

" + +#: syntax/katethemeconfig.cpp:200 +#, fuzzy, kde-format +#| msgid "Current line:" +msgid "Current Line" +msgstr "বর্তমান লাইন:" + +#: syntax/katethemeconfig.cpp:202 +#, fuzzy, kde-format +msgid "" +"

Sets the background color of the currently active line, which means the " +"line where your cursor is positioned.

" +msgstr "" +"

টি পটভূমি, প্রেক্ষাপট, পশ্চাদপট রং -র টি বর্তমানে সক্রিয় লাইন কোন মানে টি লাইন " +"কোথায় আপনার কার্সার আছে অবস্থিত

" + +#: syntax/katethemeconfig.cpp:207 +#, fuzzy, kde-format +#| msgid "Highlighting" +msgid "Search Highlight" +msgstr "হাইলাইটিং" + +#: syntax/katethemeconfig.cpp:209 +#, fuzzy, kde-format +msgid "

Sets the background color of search results.

" +msgstr "

টি পটভূমি, প্রেক্ষাপট, পশ্চাদপট রং -র টি সম্পাদন ক্ষেত্র, অঞ্চল, অংশ

" + +#: syntax/katethemeconfig.cpp:214 +#, fuzzy, kde-format +#| msgid "Highlighting" +msgid "Replace Highlight" +msgstr "হাইলাইটিং" + +#: syntax/katethemeconfig.cpp:216 +#, fuzzy, kde-format +msgid "

Sets the background color of replaced text.

" +msgstr "

টি পটভূমি, প্রেক্ষাপট, পশ্চাদপট রং -র টি সম্পাদন ক্ষেত্র, অঞ্চল, অংশ

" + +#: syntax/katethemeconfig.cpp:223 +#, fuzzy, kde-format +#| msgid "Show &Icon Border" +msgid "Icon Border" +msgstr "&আইকনের সীমা দেখাও " + +#: syntax/katethemeconfig.cpp:226 +#, fuzzy, kde-format +msgid "Background Area" +msgstr "পটভূমি" + +#: syntax/katethemeconfig.cpp:228 +#, fuzzy, kde-format +msgid "

Sets the background color of the icon border.

" +msgstr "

টি পটভূমি, প্রেক্ষাপট, পশ্চাদপট রং -র টি সম্পাদন ক্ষেত্র, অঞ্চল, অংশ

" + +#: syntax/katethemeconfig.cpp:233 view/screenshotdialog.cpp:265 +#, fuzzy, kde-format +msgid "Line Numbers" +msgstr "লাই&ন নম্বর দেখাও" + +#: syntax/katethemeconfig.cpp:235 +#, fuzzy, kde-format +msgid "

This color will be used to draw the line numbers (if enabled).

" +msgstr " নির্দেশকৃত দ্বারা টি লাইন সংখ্যা তারা স্থাপিত -তে." + +#: syntax/katethemeconfig.cpp:240 +#, fuzzy, kde-format +#| msgid "Current line:" +msgid "Current Line Number" +msgstr "বর্তমান লাইন:" + +#: syntax/katethemeconfig.cpp:242 +#, fuzzy, kde-format +msgid "" +"

This color will be used to draw the number of the current line (if " +"enabled).

" +msgstr " নির্দেশকৃত দ্বারা টি লাইন সংখ্যা তারা স্থাপিত -তে." + +#: syntax/katethemeconfig.cpp:247 +#, kde-format +msgid "Separator" +msgstr "" + +#: syntax/katethemeconfig.cpp:249 +#, kde-format +msgid "" +"

This color will be used to draw the line between line numbers and the " +"icon borders, if both are enabled.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:254 +#, fuzzy, kde-format +msgid "Word Wrap Marker" +msgstr "ঘুরিয়ে চিহ্ন:" + +#: syntax/katethemeconfig.cpp:257 +#, fuzzy, kde-format +msgid "" +"

Sets the color of Word Wrap-related markers:

Static Word Wrap
A vertical line which shows the column where text is going to be " +"wrapped
Dynamic Word Wrap
An arrow shown to the left of " +"visually-wrapped lines
" +msgstr "" +"

টি রং -র সংশ্লিষ্ট চিহ্ন

উলম্ব, খাড়া লাইন কোন প্রদর্শন " +"করে টি কলাম কোথায় লেখা আছে যাচ্ছে প্রতি মোড়ানো
তীর/নির্দেশক, " +"তীরচিহ্ন প্রদর্শিত প্রতি টি বাঁদিক -র দৃশ্যত মোড়ানো
" + +#: syntax/katethemeconfig.cpp:264 +#, fuzzy, kde-format +msgid "Code Folding" +msgstr "দেখাও" + +#: syntax/katethemeconfig.cpp:266 +#, fuzzy, kde-format +msgid "

Sets the color of the code folding bar.

" +msgstr "

টি পটভূমি, প্রেক্ষাপট, পশ্চাদপট রং -র টি সম্পাদন ক্ষেত্র, অঞ্চল, অংশ

" + +#: syntax/katethemeconfig.cpp:271 +#, fuzzy, kde-format +msgid "Modified Lines" +msgstr "উপর" + +#: syntax/katethemeconfig.cpp:273 +#, fuzzy, kde-format +msgid "" +"

Sets the color of the line modification marker for modified lines.

" +msgstr "

টি রং -র টি সারণিকার চিহ্ন

" + +#: syntax/katethemeconfig.cpp:278 +#, fuzzy, kde-format +#| msgid "Save File" +msgid "Saved Lines" +msgstr "ফাইল সংরক্ষণ করো " + +#: syntax/katethemeconfig.cpp:280 +#, fuzzy, kde-format +msgid "

Sets the color of the line modification marker for saved lines.

" +msgstr "

টি রং -র টি সারণিকার চিহ্ন

" + +#: syntax/katethemeconfig.cpp:287 +#, fuzzy, kde-format +msgid "Text Decorations" +msgstr "নির্বাচন মোড" + +#: syntax/katethemeconfig.cpp:290 +#, kde-format +msgid "Spelling Mistake Line" +msgstr "" + +#: syntax/katethemeconfig.cpp:292 +#, fuzzy, kde-format +msgid "" +"

Sets the color of the line that is used to indicate spelling mistakes.

" +msgstr "

টি রং -র টি সারণিকার চিহ্ন

" + +#: syntax/katethemeconfig.cpp:297 +#, fuzzy, kde-format +msgid "Tab and Space Markers" +msgstr "চিহ্ন:" + +#: syntax/katethemeconfig.cpp:299 +#, fuzzy, kde-format +msgid "

Sets the color of the tabulator marks.

" +msgstr "

টি রং -র টি সারণিকার চিহ্ন

" + +#: syntax/katethemeconfig.cpp:304 +#, fuzzy, kde-format +msgid "Indentation Line" +msgstr "নিয়মাবলী" + +#: syntax/katethemeconfig.cpp:306 +#, fuzzy, kde-format +msgid "

Sets the color of the vertical indentation lines.

" +msgstr "

টি রং -র টি সারণিকার চিহ্ন

" + +#: syntax/katethemeconfig.cpp:311 +#, fuzzy, kde-format +msgid "Bracket Highlight" +msgstr "হা&ইলাইট:" + +#: syntax/katethemeconfig.cpp:314 +#, fuzzy, kde-format +msgid "" +"

Sets the bracket matching color. This means, if you place the cursor e.g. " +"at a (, the matching ) will be highlighted with this color.

" +msgstr "" +"

টি বন্ধনী একইরকম রং মানে যদি আপনি স্থান টি কার্সার e -তে একটি টি " +"একইরকম চিহ্নিত সঙ্গে এই রং

" + +#: syntax/katethemeconfig.cpp:322 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "Marker Colors" +msgstr "রং" + +#: syntax/katethemeconfig.cpp:324 view/kateviewhelpers.cpp:1536 +#, kde-format +msgid "Bookmark" +msgstr "বুকমার্ক" + +#: syntax/katethemeconfig.cpp:325 +#, kde-format +msgid "Active Breakpoint" +msgstr "" + +#: syntax/katethemeconfig.cpp:326 +#, kde-format +msgid "Reached Breakpoint" +msgstr "" + +#: syntax/katethemeconfig.cpp:327 +#, kde-format +msgid "Disabled Breakpoint" +msgstr "" + +#: syntax/katethemeconfig.cpp:328 +#, fuzzy, kde-format +msgid "Execution" +msgstr "নির্বাচন" + +#: syntax/katethemeconfig.cpp:329 +#, kde-format +msgid "Warning" +msgstr "" + +#: syntax/katethemeconfig.cpp:330 +#, fuzzy, kde-format +msgid "Error" +msgstr "সমস্যা:" + +#: syntax/katethemeconfig.cpp:332 +#, fuzzy, kde-format +msgid "" +"

Sets the background color of mark type.

Note: The marker " +"color is displayed lightly because of transparency.

" +msgstr "" +"

টি পটভূমি, প্রেক্ষাপট, পশ্চাদপট রং -র টি নির্বাচন

সেট,সমষ্টি,মান " +"নির্ধারণ টি লেখা রং জন্য নির্বাচিত লেখা ব্যবহার টি কনফিগার ডায়ালগ

" + +#: syntax/katethemeconfig.cpp:344 +#, kde-format +msgid "Text Templates & Snippets" +msgstr "" + +#: syntax/katethemeconfig.cpp:349 +#, fuzzy, kde-format +msgid "Background" +msgstr "পটভূমি" + +#: syntax/katethemeconfig.cpp:355 +#, kde-format +msgid "Editable Placeholder" +msgstr "" + +#: syntax/katethemeconfig.cpp:361 +#, kde-format +msgid "Focused Editable Placeholder" +msgstr "" + +#: syntax/katethemeconfig.cpp:367 +#, kde-format +msgid "Not Editable Placeholder" +msgstr "" + +#: syntax/katethemeconfig.cpp:501 +#, fuzzy, kde-format +msgid "" +"

This list displays the default styles for the current color theme and " +"offers the means to edit them. The style name reflects the current style " +"settings.

To edit the colors, click the colored squares, or select the " +"color to edit from the popup menu.

You can unset the Background and " +"Selected Background colors from the popup menu when appropriate.

" +msgstr "" +"তালিকা প্রদর্শন করে টি প্রসঙ্গ -র টি বর্তমান বাক্যরীতি মোড এবং টি মানে প্রতি " +"সম্পাদন, বদলানো, এডিট ওদের context নাম নির্দেশ করে টি বর্তমান ধরন,স্টাইল " +"বৈশিষ্ট্যাবলী

সম্পাদন, বদলানো, এডিট ব্যবহার করে টি কীবোর্ড সংবাদপত্র<" +"> এবং বেছে নিন একটি বৈশিষ্ট্য থেকে টি পপ-আপ মেনু

সম্পাদন, বদলানো, " +"এডিট টি রং ক্লিক টি রঙীন অথবা নির্বাচন টি রং প্রতি সম্পাদন, বদলানো, এডিট থেকে টি " +"পপ-আপ মেনু." + +#: syntax/katethemeconfig.cpp:568 +#, fuzzy, kde-format +#| msgid "Normal Text" +msgctxt "@item:intable" +msgid "Normal Text & Source Code" +msgstr "স্বাভাবিক লেখা" + +#: syntax/katethemeconfig.cpp:575 +#, kde-format +msgctxt "@item:intable" +msgid "Numbers, Types & Constants" +msgstr "" + +#: syntax/katethemeconfig.cpp:582 +#, fuzzy, kde-format +msgctxt "@item:intable" +msgid "Strings & Characters" +msgstr "মধ্যে ঢোকাও ট্যাব বর্ণ, অক্ষর" + +#: syntax/katethemeconfig.cpp:589 +#, fuzzy, kde-format +msgctxt "@item:intable" +msgid "Comments & Documentation" +msgstr "নিয়মাবলী" + +#: syntax/katethemeconfig.cpp:596 +#, kde-format +msgctxt "@item:intable" +msgid "Miscellaneous" +msgstr "" + +#: syntax/katethemeconfig.cpp:704 +#, kde-format +msgid "H&ighlight:" +msgstr "হা&ইলাইট:" + +#: syntax/katethemeconfig.cpp:746 +#, fuzzy, kde-format +msgid "" +"

This list displays the contexts of the current syntax highlight mode and " +"offers the means to edit them. The context name reflects the current style " +"settings.

To edit using the keyboard, press <SPACE> and choose a property from the popup menu.

To edit the colors, " +"click the colored squares, or select the color to edit from the popup menu.

You can unset the Background and Selected Background colors from the " +"context menu when appropriate.

" +msgstr "" +"তালিকা প্রদর্শন করে টি প্রসঙ্গ -র টি বর্তমান বাক্যরীতি মোড এবং টি মানে প্রতি " +"সম্পাদন, বদলানো, এডিট ওদের context নাম নির্দেশ করে টি বর্তমান ধরন,স্টাইল " +"বৈশিষ্ট্যাবলী

সম্পাদন, বদলানো, এডিট ব্যবহার করে টি কীবোর্ড সংবাদপত্র<" +"> এবং বেছে নিন একটি বৈশিষ্ট্য থেকে টি পপ-আপ মেনু

সম্পাদন, বদলানো, " +"এডিট টি রং ক্লিক টি রঙীন অথবা নির্বাচন টি রং প্রতি সম্পাদন, বদলানো, এডিট থেকে টি " +"পপ-আপ মেনু." + +#: syntax/katethemeconfig.cpp:1027 +#, fuzzy, kde-format +msgid "Default Theme" +msgstr "স্বাভাবিক" + +#: syntax/katethemeconfig.cpp:1028 +#, fuzzy, kde-format +msgid "Theme Editor" +msgstr "&সম্পাদক কনফিগার করো..." + +#: syntax/katethemeconfig.cpp:1046 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgid "Select theme:" +msgstr "নির্বাচিত লেখা:" + +#: syntax/katethemeconfig.cpp:1119 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Scheme" +msgid "&Theme:" +msgstr "Scheme" + +#: syntax/katethemeconfig.cpp:1128 +#, fuzzy, kde-format +msgctxt "@action:button" +msgid "&Copy…" +msgstr "ফাইল সংরক্ষণ করো " + +#: syntax/katethemeconfig.cpp:1136 +#, fuzzy, kde-format +msgctxt "@action:button" +msgid "Export…" +msgstr "&রপ্তানি" + +#: syntax/katethemeconfig.cpp:1140 +#, fuzzy, kde-format +#| msgid "Normal &Color..." +msgctxt "@action:button" +msgid "Import…" +msgstr "স্বাভাবি&ক রং..." + +#: syntax/katethemeconfig.cpp:1147 +#, kde-format +msgid "Bundled read-only theme. To modify the theme, please copy it." +msgstr "" + +#: syntax/katethemeconfig.cpp:1160 +#, kde-format +msgid "Colors" +msgstr "রং" + +#: syntax/katethemeconfig.cpp:1164 +#, fuzzy, kde-format +msgid "Default Text Styles" +msgstr "স্বাভাবিক" + +#: syntax/katethemeconfig.cpp:1168 +#, kde-format +msgid "Highlighting Text Styles" +msgstr "" + +#: syntax/katethemeconfig.cpp:1180 +#, fuzzy, kde-format +#| msgid "Font & Color Schemas" +msgid "Exporting color theme: %1" +msgstr "ফন্ট এবং রং স্কীমা" + +#: syntax/katethemeconfig.cpp:1182 syntax/katethemeconfig.cpp:1203 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "Color theme" +msgstr "রং" + +#: syntax/katethemeconfig.cpp:1203 +#, fuzzy, kde-format +#| msgid "Font & Color Schemas" +msgid "Importing Color Theme" +msgstr "ফন্ট এবং রং স্কীমা" + +#: syntax/katethemeconfig.cpp:1217 +#, kde-format +msgid "" +"Importing will overwrite the existing theme file \"%1\". This can not be " +"undone." +msgstr "" + +#: syntax/katethemeconfig.cpp:1219 +#, kde-format +msgid "Import Nevertheless" +msgstr "" + +#: syntax/katethemeconfig.cpp:1308 +#, fuzzy, kde-format +#| msgid "Font & Color Schemas" +msgid "Follow System Color Scheme" +msgstr "ফন্ট এবং রং স্কীমা" + +#: syntax/katethemeconfig.cpp:1375 +#, kde-format +msgid "Do you really want to delete the theme \"%1\"? This can not be undone." +msgstr "" + +#: syntax/katethemeconfig.cpp:1377 +#, fuzzy, kde-format +msgid "Delete Nevertheless" +msgstr "বাঁদিক" + +#: syntax/katethemeconfig.cpp:1419 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "Copy theme" +msgstr "রং" + +#: syntax/katethemeconfig.cpp:1420 +#, kde-format +msgid "Name for copy of color theme \"%1\":" +msgstr "" + +#: syntax/katethemeconfig.cpp:1432 +#, kde-format +msgid "" +"

The theme \"%1\" already exists.

Please choose a different theme " +"name.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:1433 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "Copy Theme" +msgstr "রং" + +#: syntax/katethemeconfig.cpp:1486 syntax/katethemeconfig.cpp:1491 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "Color Themes" +msgstr "রং" + +#: utils/kateautoindent.cpp:88 +#, fuzzy, kde-format +msgctxt "Autoindent mode" +msgid "None" +msgstr "কিছু না" + +#: utils/kateautoindent.cpp:92 +#, fuzzy, kde-format +msgctxt "Autoindent mode" +msgid "Normal" +msgstr "স্বাভাবিক" + +#: utils/katebookmarks.cpp:49 +#, fuzzy, kde-format +#| msgid "Clear &Bookmark" +msgid "Toggle &Bookmark" +msgstr "বু&কমার্ক ফাঁকা করো " + +#: utils/katebookmarks.cpp:53 +#, kde-format +msgid "If a line has no bookmark then add one, otherwise remove it." +msgstr "লাইনে বুকমার্ক না থাকলে যোগ করো, থাকলে মুছে ফেলো" + +#: utils/katebookmarks.cpp:56 +#, kde-format +msgid "Clear &All Bookmarks" +msgstr "&সব বুকমার্ক ফাঁকা করো " + +#: utils/katebookmarks.cpp:59 +#, kde-format +msgid "Remove all bookmarks of the current document." +msgstr "বর্তমান ডকুমেন্ট থেকে সব বুকমার্ক মুছে ফেলো" + +#: utils/katebookmarks.cpp:62 utils/katebookmarks.cpp:219 +#, kde-format +msgid "Next Bookmark" +msgstr "পরবর্তী বুকমার্ক" + +#: utils/katebookmarks.cpp:66 +#, kde-format +msgid "Go to the next bookmark." +msgstr "পরবর্তী বুকমার্ক-এ যাও" + +#: utils/katebookmarks.cpp:69 utils/katebookmarks.cpp:220 +#, kde-format +msgid "Previous Bookmark" +msgstr "পূর্ববর্তী বুকমার্ক" + +#: utils/katebookmarks.cpp:73 +#, kde-format +msgid "Go to the previous bookmark." +msgstr "পূর্ববর্তী বুকমার্ক-এ যাও" + +#: utils/katebookmarks.cpp:76 +#, fuzzy, kde-format +msgid "&Bookmarks" +msgstr "বুকমার্ক" + +#: utils/katebookmarks.cpp:192 +#, kde-format +msgid "&Next: %1 - \"%2\"" +msgstr "&পরবর্তী: %1 - \"%2\"" + +#: utils/katebookmarks.cpp:198 +#, kde-format +msgid "&Previous: %1 - \"%2\"" +msgstr "পূর্ব&বর্তী: %1 - \"%2\"" + +#: utils/katecmds.cpp:53 +#, kde-format +msgid "

indent

Indents the selected lines or the current line

" +msgstr "" + +#: utils/katecmds.cpp:58 +#, kde-format +msgid "

unindent

Unindents the selected lines or current line.

" +msgstr "" + +#: utils/katecmds.cpp:63 +#, kde-format +msgid "" +"

cleanindent

Cleans up the indentation of the selected lines or " +"current line according to the indentation settings in the document.

" +msgstr "" + +#: utils/katecmds.cpp:68 +#, kde-format +msgid "" +"

comment

Inserts comment markers to make the selection or selected " +"lines or current line a comment according to the text format as defined by " +"the syntax highlight definition for the document.

" +msgstr "" + +#: utils/katecmds.cpp:74 +#, kde-format +msgid "" +"

uncomment

Removes comment markers from the selection or selected " +"lines or current line according to the text format as defined by the syntax " +"highlight definition for the document.

" +msgstr "" + +#: utils/katecmds.cpp:80 +#, kde-format +msgid "" +"

goto line number

This command navigates to the specified " +"line number.

" +msgstr "" + +#: utils/katecmds.cpp:85 +#, kde-format +msgid "" +"

set-indent-pasted-text enable

If enabled, indentation of " +"text pasted from the clipboard is adjusted using the current indenter.

Possible true values: 1 on true
possible false values: 0 off false" +msgstr "" + +#: utils/katecmds.cpp:91 +#, fuzzy, kde-format +msgid "Deletes the current line." +msgstr "সংরক্ষণ করো টি বর্তমান নথী" + +#: utils/katecmds.cpp:95 +#, kde-format +msgid "" +"

set-tab-width width

Sets the tab width to the number " +"width

" +msgstr "" + +#: utils/katecmds.cpp:100 +#, kde-format +msgid "" +"

set-replace-tab enable

If enabled, tabs are replaced with " +"spaces as you type.

Possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:107 +#, kde-format +msgid "" +"

set-show-tabs enable

If enabled, TAB characters and trailing " +"whitespace will be visualized by a small dot.

Possible true values: 1 " +"on true
possible false values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:114 +#, kde-format +msgid "" +"

set-remove-trailing-spaces mode

Removes the trailing spaces " +"in the document depending on the mode.

Possible values:" +"

  • none: never remove trailing spaces.
  • modified: " +"remove trailing spaces only of modified lines.
  • all: remove " +"trailing spaces in the entire document.

" +msgstr "" + +#: utils/katecmds.cpp:125 +#, kde-format +msgid "" +"

set-indent-width width

Sets the indentation width to the " +"number width. Used only if you are indenting with spaces.

" +msgstr "" + +#: utils/katecmds.cpp:130 +#, kde-format +msgid "" +"

set-indent-mode mode

The mode parameter is a value as seen " +"in the Tools - Indentation menu

" +msgstr "" + +#: utils/katecmds.cpp:135 +#, kde-format +msgid "" +"

set-auto-indent enable

Enable or disable autoindentation.

possible true values: 1 on true
possible false values: 0 off false" +msgstr "" + +#: utils/katecmds.cpp:142 +#, kde-format +msgid "" +"

set-line-numbers enable

Sets the visibility of the line " +"numbers pane.

possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:149 +#, kde-format +msgid "" +"

set-folding-markers enable

Sets the visibility of the " +"folding markers pane.

possible true values: 1 on true
possible " +"false values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:156 +#, kde-format +msgid "" +"

set-icon-border enable

Sets the visibility of the icon " +"border.

possible true values: 1 on true
possible false values: 0 " +"off false

" +msgstr "" + +#: utils/katecmds.cpp:163 +#, kde-format +msgid "" +"

set-word-wrap enable

Enables dynamic word wrap according to " +"enable

possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:170 +#, kde-format +msgid "" +"

set-word-wrap-column width

Sets the line width for hard " +"wrapping to width. This is used if you are having your text wrapped " +"automatically.

" +msgstr "" + +#: utils/katecmds.cpp:175 +#, kde-format +msgid "" +"

set-replace-tabs-save enable

When enabled, tabs will be " +"replaced with whitespace whenever the document is saved.

possible " +"true values: 1 on true
possible false values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:182 +#, kde-format +msgid "" +"

set-highlight highlight

Sets the syntax highlighting system " +"for the document. The argument must be a valid highlight name, as seen in " +"the Tools → Highlighting menu. This command provides an autocompletion list " +"for its argument.

" +msgstr "" + +#: utils/katecmds.cpp:188 +#, kde-format +msgid "

set-mode mode

Sets the mode as seen in Tools - Mode

" +msgstr "" + +#: utils/katecmds.cpp:193 +#, kde-format +msgid "" +"

set-show-indent enable

If enabled, indentation will be " +"visualized by a vertical dotted line.

possible true values: 1 on " +"true
possible false values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:199 +#, fuzzy, kde-format +msgid "

Open the Print dialog to print the current document.

" +msgstr "বর্তমান ডকুমেন্টটি ছাপানো হবে।" + +#: utils/katecmds.cpp:314 utils/katecmds.cpp:341 +#, fuzzy, kde-format +msgid "Missing argument. Usage: %1 " +msgstr "নিরুদ্দেশ প্রেরিত মান" + +#: utils/katecmds.cpp:327 +#, fuzzy, kde-format +msgid "No such highlighting '%1'" +msgstr "এরকম কোন কমাণ্ড পাওয়া যায়নি: \"%1\"" + +#: utils/katecmds.cpp:333 +#, fuzzy, kde-format +msgid "No such mode '%1'" +msgstr "এরকম কোন কমাণ্ড পাওয়া যায়নি: \"%1\"" + +#: utils/katecmds.cpp:346 +#, fuzzy, kde-format +msgid "Failed to convert argument '%1' to integer." +msgstr "প্রতি রূপান্তর প্রেরিত মান প্রতি পূর্ণসংখ্যা." + +#: utils/katecmds.cpp:350 utils/katecmds.cpp:355 +#, kde-format +msgid "Width must be at least 1." +msgstr "প্রস্থ অন্তত ১ হতে হবে" + +#: utils/katecmds.cpp:360 +#, kde-format +msgid "Column must be at least 1." +msgstr "কলাম অন্তত ১ হতে হবে" + +#: utils/katecmds.cpp:390 +#, kde-format +msgid "Usage: %1 on|off|1|0|true|false" +msgstr "ব্যবহার: %1 on|off|1|0|true|false" + +#: utils/katecmds.cpp:417 +#, fuzzy, kde-format +msgid "Bad argument '%1'. Usage: %2 on|off|1|0|true|false" +msgstr "প্রেরিত মান ওপর বন্ধ সত্য মিথ্যা" + +#: utils/katecmds.cpp:421 +#, kde-format +msgid "" +"Usage: set-remove-trailing-spaces 0|-|none or 1|+|mod|modified or 2|*|all" +msgstr "" + +#: utils/katecmds.cpp:435 vimode/cmds.cpp:168 +#, fuzzy, kde-format +msgid "Unknown command '%1'" +msgstr "অজ্ঞাত কমান্ড" + +#: utils/katecmds.cpp:493 +#, kde-format +msgid "" +"

char identifier

This command allows you to insert literal " +"characters by their numerical identifier, in decimal, octal or hexadecimal " +"form.

Examples:

  • char 234
  • char 0x1234

" +msgstr "" + +#: utils/katecmds.cpp:560 +#, kde-format +msgid "" +"

date or date format

Inserts a date/time string as defined by " +"the specified format, or the format yyyy-MM-dd hh:mm:ss if none is specified." +"

Possible format specifiers are:
dThe day as " +"number without a leading zero (1-31).
ddThe day as " +"number with a leading zero (01-31).
dddThe " +"abbreviated localized day name (e.g. 'Mon'..'Sun').
ddddThe long localized day name (e.g. 'Monday'..'Sunday').
MThe month as number without a leading zero (1-12).
MMThe month as number with a leading zero (01-12).
MMMThe abbreviated localized month name (e.g. " +"'Jan'..'Dec').
yyThe year as two digit number " +"(00-99).
yyyyThe year as four digit number " +"(1752-8000).
hThe hour without a leading zero " +"(0..23 or 1..12 if AM/PM display).
hhThe hour with " +"a leading zero (00..23 or 01..12 if AM/PM display).
mThe minute without a leading zero (0..59).
mmThe minute with a leading zero (00..59).
sThe second without a leading zero (0..59).
ssThe second with a leading zero (00..59).
zThe milliseconds without leading zeroes (0..999).
zzzThe milliseconds with leading zeroes (000..999).
APUse AM/PM display. AP will be replaced by either " +"\"AM\" or \"PM\".
apUse am/pm display. ap will be " +"replaced by either \"am\" or \"pm\".

" +msgstr "" + +#: utils/katecmds.cpp:621 +#, fuzzy, kde-format +msgid "Remove Duplicate Lines" +msgstr "নির্বাচিত" + +#: utils/katecmds.cpp:622 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgid "Remove Duplicates and Sort Text Alphabetically" +msgstr "নির্বাচিত লেখা:" + +#: utils/katecmds.cpp:623 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgid "Sort Text Naturally" +msgstr "নির্বাচিত লেখা:" + +#: utils/katecmds.cpp:624 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgid "Sort Selected Text Alphabetically" +msgstr "নির্বাচিত লেখা:" + +#: utils/katecmds.cpp:699 +#, fuzzy, kde-format +msgid "" +"

sort

Sort the selected text or whole document if there is no " +"selection

" +msgstr "টি সমগ্র লেখা -র টি বর্তমান নথী." + +#: utils/katecmds.cpp:703 +#, kde-format +msgid "" +"

uniq

Remove duplicate lines from the selected text or whole " +"document if there is no selection.

" +msgstr "" + +#: utils/katecmds.cpp:707 +#, kde-format +msgid "" +"

sortuniq

Sort the selected text or whole document and then remove " +"all duplicate lines.

" +msgstr "" + +#: utils/katecmds.cpp:711 +#, kde-format +msgid "" +"

natsort

Sort the selected text or whole document in natural order." +"
Here is an example to show the difference to the normal sort method:" +"
sort(a10, a1, a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" +msgstr "" + +#: utils/kateglobal.cpp:60 +#, kde-format +msgid "Kate Part" +msgstr "কেট পার্ট" + +#: utils/kateglobal.cpp:62 +#, fuzzy, kde-format +msgid "Embeddable editor component" +msgstr "কম্পোনেন্ট" + +#: utils/kateglobal.cpp:64 +#, fuzzy, kde-format +msgid "(c) 2000-2025 The Kate Authors" +msgstr "(c) ২০০০-২০০৪ কেট লেখকবৃন্দ" + +#: utils/kateglobal.cpp:84 +#, kde-format +msgid "Christoph Cullmann" +msgstr "" + +#: utils/kateglobal.cpp:84 +#, kde-format +msgid "Maintainer" +msgstr "রক্ষণাবেক্ষণকারী" + +#: utils/kateglobal.cpp:85 +#, kde-format +msgid "Dominik Haumann" +msgstr "" + +#: utils/kateglobal.cpp:85 utils/kateglobal.cpp:86 utils/kateglobal.cpp:87 +#: utils/kateglobal.cpp:90 utils/kateglobal.cpp:93 utils/kateglobal.cpp:98 +#, kde-format +msgid "Core Developer" +msgstr "কোর ডেভেলপার" + +#: utils/kateglobal.cpp:86 +#, kde-format +msgid "Milian Wolff" +msgstr "" + +#: utils/kateglobal.cpp:87 +#, kde-format +msgid "Joseph Wenninger" +msgstr "" + +#: utils/kateglobal.cpp:88 +#, kde-format +msgid "Erlend Hamberg" +msgstr "" + +#: utils/kateglobal.cpp:89 +#, kde-format +msgid "Bernhard Beschow" +msgstr "" + +#: utils/kateglobal.cpp:89 utils/kateglobal.cpp:105 +#, fuzzy, kde-format +msgid "Developer" +msgstr "কোর ডেভেলপার" + +#: utils/kateglobal.cpp:90 +#, kde-format +msgid "Anders Lund" +msgstr "" + +#: utils/kateglobal.cpp:91 +#, kde-format +msgid "Michel Ludwig" +msgstr "" + +#: utils/kateglobal.cpp:91 +#, fuzzy, kde-format +#| msgid "Spellcheck" +msgid "On-the-fly spell checking" +msgstr "বানান পরীক্ষা" + +#: utils/kateglobal.cpp:92 +#, kde-format +msgid "Pascal Létourneau" +msgstr "" + +#: utils/kateglobal.cpp:92 +#, kde-format +msgid "Large scale bug fixing" +msgstr "" + +#: utils/kateglobal.cpp:93 +#, kde-format +msgid "Hamish Rodda" +msgstr "" + +#: utils/kateglobal.cpp:94 +#, kde-format +msgid "Waldo Bastian" +msgstr "" + +#: utils/kateglobal.cpp:94 +#, kde-format +msgid "The cool buffersystem" +msgstr "" + +#: utils/kateglobal.cpp:95 +#, kde-format +msgid "Charles Samuels" +msgstr "" + +#: utils/kateglobal.cpp:95 +#, kde-format +msgid "The Editing Commands" +msgstr "সম্পাদনা কমাণ্ড" + +#: utils/kateglobal.cpp:96 +#, kde-format +msgid "Matt Newell" +msgstr "" + +#: utils/kateglobal.cpp:96 +#, kde-format +msgid "Testing, ..." +msgstr "পরীক্ষণ, ..." + +#: utils/kateglobal.cpp:97 +#, kde-format +msgid "Michael Bartl" +msgstr "" + +#: utils/kateglobal.cpp:97 +#, kde-format +msgid "Former Core Developer" +msgstr "প্রাক্তন কোর ডেভেলপার" + +#: utils/kateglobal.cpp:98 +#, kde-format +msgid "Michael McCallum" +msgstr "" + +#: utils/kateglobal.cpp:99 +#, kde-format +msgid "Michael Koch" +msgstr "" + +#: utils/kateglobal.cpp:99 +#, kde-format +msgid "KWrite port to KParts" +msgstr "কে-রাইট-কে পার্ট হিসাবে পোর্ট" + +#: utils/kateglobal.cpp:100 +#, kde-format +msgid "Christian Gebauer" +msgstr "" + +#: utils/kateglobal.cpp:101 +#, kde-format +msgid "Simon Hausmann" +msgstr "" + +#: utils/kateglobal.cpp:102 +#, kde-format +msgid "Glen Parker" +msgstr "" + +#: utils/kateglobal.cpp:102 +#, kde-format +msgid "KWrite Undo History, Kspell integration" +msgstr "" + +#: utils/kateglobal.cpp:103 +#, kde-format +msgid "Scott Manson" +msgstr "" + +#: utils/kateglobal.cpp:103 +#, kde-format +msgid "KWrite XML Syntax highlighting support" +msgstr "কে-রাইট XML syntax হাইলাইট সমর্থন" + +#: utils/kateglobal.cpp:104 +#, kde-format +msgid "John Firebaugh" +msgstr "" + +#: utils/kateglobal.cpp:104 +#, kde-format +msgid "Patches and more" +msgstr "নানা প্যাচ এবং আরো অনেক কিছু" + +#: utils/kateglobal.cpp:105 +#, kde-format +msgid "Andreas Kling" +msgstr "" + +#: utils/kateglobal.cpp:106 +#, kde-format +msgid "Mirko Stocker" +msgstr "" + +#: utils/kateglobal.cpp:106 +#, kde-format +msgid "Various bugfixes" +msgstr "" + +#: utils/kateglobal.cpp:107 +#, kde-format +msgid "Matthew Woehlke" +msgstr "" + +#: utils/kateglobal.cpp:107 +#, kde-format +msgid "Selection, KColorScheme integration" +msgstr "" + +#: utils/kateglobal.cpp:108 +#, kde-format +msgid "Sebastian Pipping" +msgstr "" + +#: utils/kateglobal.cpp:109 +#, kde-format +msgid "Search bar back- and front-end" +msgstr "" + +#: utils/kateglobal.cpp:112 +#, kde-format +msgid "Jochen Wilhelmy" +msgstr "" + +#: utils/kateglobal.cpp:112 +#, fuzzy, kde-format +#| msgid "KWrite Author" +msgid "Original KWrite Author" +msgstr "কে-রাইট লেখক" + +#: utils/kateglobal.cpp:113 +#, kde-format +msgid "Gerald Senarclens de Grancy" +msgstr "" + +#: utils/kateglobal.cpp:113 +#, fuzzy, kde-format +msgid "QA and Scripting" +msgstr "PostScript" + +#: utils/kateglobal.cpp:115 +#, kde-format +msgid "Matteo Merli" +msgstr "" + +#: utils/kateglobal.cpp:115 +#, kde-format +msgid "Highlighting for RPM Spec-Files, Perl, Diff and more" +msgstr "RPM Spec-Files, Perl, Diff ইত্যাদির জন্য হাইলাইট, এবং আরো অনেক কিছু" + +#: utils/kateglobal.cpp:116 +#, kde-format +msgid "Rocky Scaletta" +msgstr "" + +#: utils/kateglobal.cpp:116 +#, kde-format +msgid "Highlighting for VHDL" +msgstr "VHDL-এর জন্য হাইলাইট" + +#: utils/kateglobal.cpp:117 +#, kde-format +msgid "Yury Lebedev" +msgstr "" + +#: utils/kateglobal.cpp:117 +#, kde-format +msgid "Highlighting for SQL" +msgstr "SQL-এর জন্য হাইলাইট" + +#: utils/kateglobal.cpp:118 +#, kde-format +msgid "Chris Ross" +msgstr "" + +#: utils/kateglobal.cpp:118 +#, kde-format +msgid "Highlighting for Ferite" +msgstr "Ferite-এর জন্য হাইলাইট" + +#: utils/kateglobal.cpp:119 +#, kde-format +msgid "Nick Roux" +msgstr "" + +#: utils/kateglobal.cpp:119 +#, kde-format +msgid "Highlighting for ILERPG" +msgstr "ILERPG-এর জন্য হাইলাইট" + +#: utils/kateglobal.cpp:120 +#, kde-format +msgid "Carsten Niehaus" +msgstr "" + +#: utils/kateglobal.cpp:120 +#, kde-format +msgid "Highlighting for LaTeX" +msgstr "LaTeX-এর জন্য হাইলাইট" + +#: utils/kateglobal.cpp:121 +#, kde-format +msgid "Per Wigren" +msgstr "" + +#: utils/kateglobal.cpp:121 +#, kde-format +msgid "Highlighting for Makefiles, Python" +msgstr "Makefiles, Python-এর জন্য হাইলাইট" + +#: utils/kateglobal.cpp:122 +#, kde-format +msgid "Jan Fritz" +msgstr "" + +#: utils/kateglobal.cpp:122 +#, kde-format +msgid "Highlighting for Python" +msgstr "Python-এর জন্য হাইলাইট" + +#: utils/kateglobal.cpp:123 +#, kde-format +msgid "Daniel Naber" +msgstr "" + +#: utils/kateglobal.cpp:124 +#, kde-format +msgid "Roland Pabel" +msgstr "" + +#: utils/kateglobal.cpp:124 +#, kde-format +msgid "Highlighting for Scheme" +msgstr "Scheme-এর জন্য হাইলাইট" + +#: utils/kateglobal.cpp:125 +#, kde-format +msgid "Cristi Dumitrescu" +msgstr "" + +#: utils/kateglobal.cpp:125 +#, kde-format +msgid "PHP Keyword/Datatype list" +msgstr "PHP Keyword/Datatype তালিকা" + +#: utils/kateglobal.cpp:126 +#, kde-format +msgid "Carsten Pfeiffer" +msgstr "" + +#: utils/kateglobal.cpp:126 +#, kde-format +msgid "Very nice help" +msgstr "সুন্দর সহায়িকা" + +#: utils/kateglobal.cpp:127 +#, kde-format +msgid "Bruno Massa" +msgstr "" + +#: utils/kateglobal.cpp:127 +#, fuzzy, kde-format +msgid "Highlighting for Lua" +msgstr "LaTeX-এর জন্য হাইলাইট" + +#: utils/kateglobal.cpp:129 +#, kde-format +msgid "All people who have contributed and I have forgotten to mention" +msgstr "আরো যাঁদের নাম উল্লেখ করতে ভুলে গেছি" + +#: utils/kateglobal.cpp:131 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "দীপায়ন সরকার" + +#: utils/kateglobal.cpp:131 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "deepayan@bengalinux.org" + +#: utils/kateglobal.cpp:255 +#, fuzzy, kde-format +msgid "Configure" +msgstr "&সম্পাদক কনফিগার করো..." + +#: utils/katesedcmd.cpp:268 +#, fuzzy, kde-format +msgid "replace with %1?" +msgstr "শর্টকাট কনফিগারেশন" + +#: utils/katesedcmd.cpp:274 +#, fuzzy, kde-format +msgctxt "%2 is the translation of the next message" +msgid "1 replacement done on %2" +msgid_plural "%1 replacements done on %2" +msgstr[0] "%1-টি স্থানে বদল করা হয়েছে।" +msgstr[1] "%1-টি স্থানে বদল করা হয়েছে।" + +#: utils/katesedcmd.cpp:277 +#, kde-format +msgctxt "substituted into the previous message" +msgid "1 line" +msgid_plural "%1 lines" +msgstr[0] "" +msgstr[1] "" + +#: utils/katevariableexpansionhelpers.cpp:77 +#, kde-format +msgid "" +msgstr "" + +#: utils/katevariableexpansionhelpers.cpp:161 +#, fuzzy, kde-format +msgid "Insert variable" +msgstr "&ইনস্টল" + +#: utils/katevariableexpansionhelpers.cpp:165 +#, kde-format +msgid "Variables" +msgstr "" + +#: utils/katevariableexpansionhelpers.cpp:169 +#, fuzzy, kde-format +msgid "Filter" +msgstr "সম্পাদনা" + +#: utils/katevariableexpansionhelpers.cpp:188 +#: utils/katevariableexpansionhelpers.cpp:217 +#, kde-format +msgid "Please select a variable." +msgstr "" + +#: utils/katevariableexpansionhelpers.cpp:206 +#, fuzzy, kde-format +msgid "Current value: %1" +msgstr "নিরুদ্দেশ প্রেরিত মান" + +#: utils/katevariableexpansionhelpers.cpp:214 +#, fuzzy, kde-format +#| msgid "Current line:" +msgid "Current value: %1" +msgstr "বর্তমান লাইন:" + +#: utils/katevariableexpansionmanager.cpp:86 +#, fuzzy, kde-format +msgid "File base name without path and suffix of the current document." +msgstr "টি সমগ্র লেখা -র টি বর্তমান নথী." + +#: utils/katevariableexpansionmanager.cpp:94 +#, fuzzy, kde-format +msgid "File extension of the current document." +msgstr "টি সমগ্র লেখা -র টি বর্তমান নথী." + +#: utils/katevariableexpansionmanager.cpp:102 +#, fuzzy, kde-format +msgid "File name without path of the current document." +msgstr "টি সমগ্র লেখা -র টি বর্তমান নথী." + +#: utils/katevariableexpansionmanager.cpp:110 +#, fuzzy, kde-format +#| msgid "Reload the current document from disk." +msgid "Full path of the current document including the file name." +msgstr "বর্তমান নথীটি ডিস্ক থেকে নতুন করে পড়া হবে" + +#: utils/katevariableexpansionmanager.cpp:118 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Contents of the current document." +msgstr "বর্তমান ডকুমেন্টটি ছাপানো হবে।" + +#: utils/katevariableexpansionmanager.cpp:125 +#, fuzzy, kde-format +#| msgid "Reload the current document from disk." +msgid "Full path of the current document excluding the file name." +msgstr "বর্তমান নথীটি ডিস্ক থেকে নতুন করে পড়া হবে" + +#: utils/katevariableexpansionmanager.cpp:133 +#, kde-format +msgid "" +"Full document path including file name, with native path separator " +"(backslash on Windows)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:141 +#, kde-format +msgid "" +"Full document path excluding file name, with native path separator " +"(backslash on Windows)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:149 +#, kde-format +msgid "" +"Line number of the text cursor position in current document (starts with 0)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:156 +#, kde-format +msgid "" +"Column number of the text cursor position in current document (starts with " +"0)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:163 +#, kde-format +msgid "X component in global screen coordinates of the cursor position." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:170 +#, kde-format +msgid "Y component in global screen coordinates of the cursor position." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:177 +#, fuzzy, kde-format +msgid "Text selection of the current document." +msgstr "টি সমগ্র লেখা -র টি বর্তমান নথী." + +#: utils/katevariableexpansionmanager.cpp:184 +#, fuzzy, kde-format +msgid "Start line of selected text of the current document." +msgstr "টি সমগ্র লেখা -র টি বর্তমান নথী." + +#: utils/katevariableexpansionmanager.cpp:191 +#, fuzzy, kde-format +msgid "Start column of selected text of the current document." +msgstr "টি সমগ্র লেখা -র টি বর্তমান নথী." + +#: utils/katevariableexpansionmanager.cpp:198 +#, fuzzy, kde-format +msgid "End line of selected text of the current document." +msgstr "টি সমগ্র লেখা -র টি বর্তমান নথী." + +#: utils/katevariableexpansionmanager.cpp:205 +#, fuzzy, kde-format +msgid "End column of selected text of the current document." +msgstr "টি সমগ্র লেখা -র টি বর্তমান নথী." + +#: utils/katevariableexpansionmanager.cpp:212 +#, fuzzy, kde-format +#| msgid "Remove all bookmarks of the current document." +msgid "Number of rows of the current document." +msgstr "বর্তমান ডকুমেন্ট থেকে সব বুকমার্ক মুছে ফেলো" + +#: utils/katevariableexpansionmanager.cpp:219 +#, fuzzy, kde-format +#| msgid "End of document reached." +msgid "Read a document variable." +msgstr "নথীর শেষে পৌঁছে গেছি।" + +#: utils/katevariableexpansionmanager.cpp:227 +#, kde-format +msgid "The current date in current locale format." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:234 +#, kde-format +msgid "The current date (ISO)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:241 +#, kde-format +msgid "The current date (QDate formatstring)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:249 +#, kde-format +msgid "The current time in current locale format." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:256 +#, kde-format +msgid "The current time (ISO)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:263 +#, kde-format +msgid "The current time (QTime formatstring)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:271 +#, kde-format +msgid "Access to environment variables." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:279 +#, kde-format +msgid "Evaluate simple JavaScript statements." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:289 +#, kde-format +msgid "Encode text to make it URL compatible." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:297 +#, kde-format +msgid "Generate a new UUID." +msgstr "" + +#: variableeditor/variableeditor.cpp:40 +#, kde-format +msgid "Kate Handbook." +msgstr "" + +#: variableeditor/variableeditor.cpp:213 +#, kde-format +msgid "true" +msgstr "" + +#: variableeditor/variableeditor.cpp:214 +#, kde-format +msgid "false" +msgstr "" + +#: variableeditor/variableeditor.cpp:350 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "none" +msgstr "" + +#: variableeditor/variableeditor.cpp:351 +#, fuzzy, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "modified" +msgstr "উপর" + +#: variableeditor/variableeditor.cpp:352 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "all" +msgstr "" + +#: variableeditor/variablelineedit.cpp:42 +#, kde-format +msgid "Show list of valid variables." +msgstr "" + +#: variableeditor/variablelineedit.cpp:115 +#, fuzzy, kde-format +msgctxt "short translation please" +msgid "Enable automatic insertion of brackets." +msgstr "প্রতি" + +#: variableeditor/variablelineedit.cpp:121 +#, fuzzy, kde-format +msgctxt "short translation please" +msgid "Set the number of autocenter lines." +msgstr "নম্বর -র প্রতি ইনডেন্ট সঙ্গে." + +#: variableeditor/variablelineedit.cpp:126 +#, fuzzy, kde-format +msgctxt "short translation please" +msgid "Set the document background color." +msgstr "নির্বাচি&ত রং..." + +#: variableeditor/variablelineedit.cpp:131 +#, fuzzy, kde-format +msgctxt "short translation please" +msgid "Pressing backspace in leading whitespace unindents." +msgstr "&Backspace কী (Key)" + +#: variableeditor/variablelineedit.cpp:139 +#, fuzzy, kde-format +#| msgid "Bl&ock Selection Mode" +msgctxt "short translation please" +msgid "Enable block selection mode." +msgstr "ব্লক নির্বা&চন মোড" + +#: variableeditor/variablelineedit.cpp:144 +#, kde-format +msgctxt "short translation please" +msgid "Enable the byte order mark (BOM) when saving Unicode files." +msgstr "" + +#: variableeditor/variablelineedit.cpp:149 +#, kde-format +msgctxt "short translation please" +msgid "Set the color for the bracket highlight." +msgstr "" + +#: variableeditor/variablelineedit.cpp:154 +#, fuzzy, kde-format +msgctxt "short translation please" +msgid "Set the background color for the current line." +msgstr "

টি পটভূমি, প্রেক্ষাপট, পশ্চাদপট রং -র টি সম্পাদন ক্ষেত্র, অঞ্চল, অংশ

" + +#: variableeditor/variablelineedit.cpp:160 +#, kde-format +msgctxt "short translation please" +msgid "Set the default dictionary used for spell checking." +msgstr "" + +#: variableeditor/variablelineedit.cpp:165 +#, fuzzy, kde-format +msgctxt "short translation please" +msgid "Enable dynamic word wrap of long lines." +msgstr "স্থির শব্দ ঘুরিয়ে" + +#: variableeditor/variablelineedit.cpp:172 +#, fuzzy, kde-format +msgctxt "short translation please" +msgid "Sets the end of line mode." +msgstr "প্রতি শেষ -র" + +#: variableeditor/variablelineedit.cpp:177 +#, kde-format +msgctxt "short translation please" +msgid "" +"Enable whether pressing enter will insert selected auto completion item." +msgstr "" + +#: variableeditor/variablelineedit.cpp:182 +#, kde-format +msgctxt "short translation please" +msgid "Enable folding markers in the editor border." +msgstr "" + +#: variableeditor/variablelineedit.cpp:187 +#, kde-format +msgctxt "short translation please" +msgid "Enable folding preview in the editor border." +msgstr "" + +#: variableeditor/variablelineedit.cpp:193 +#, fuzzy, kde-format +msgctxt "short translation please" +msgid "Set the point size of the document font." +msgstr "টি সমগ্র লেখা -র টি বর্তমান নথী." + +#: variableeditor/variablelineedit.cpp:198 +#, fuzzy, kde-format +msgctxt "short translation please" +msgid "Set the font of the document." +msgstr "টি সমগ্র লেখা -র টি বর্তমান নথী." + +#: variableeditor/variablelineedit.cpp:214 +#, fuzzy, kde-format +msgctxt "short translation please" +msgid "Set the syntax highlighting." +msgstr "ট" + +#: variableeditor/variablelineedit.cpp:219 +#, kde-format +msgctxt "short translation please" +msgid "Set the icon bar color." +msgstr "" + +#: variableeditor/variablelineedit.cpp:224 +#, kde-format +msgctxt "short translation please" +msgid "Enable the icon border in the editor view." +msgstr "" + +#: variableeditor/variablelineedit.cpp:229 +#, fuzzy, kde-format +msgctxt "short translation please" +msgid "Set the auto indentation style." +msgstr "নিয়মাবলী" + +#: variableeditor/variablelineedit.cpp:234 +#, kde-format +msgctxt "short translation please" +msgid "Adjust indentation of text pasted from the clipboard." +msgstr "" + +#: variableeditor/variablelineedit.cpp:240 +#, kde-format +msgctxt "short translation please" +msgid "Set the indentation depth for each indent level." +msgstr "" + +#: variableeditor/variablelineedit.cpp:245 +#, kde-format +msgctxt "short translation please" +msgid "Allow odd indentation level (no multiple of indent width)." +msgstr "" + +#: variableeditor/variablelineedit.cpp:250 +#, fuzzy, kde-format +#| msgid "Show &line numbers" +msgctxt "short translation please" +msgid "Show line numbers." +msgstr "লাই&ন নম্বর দেখাও" + +#: variableeditor/variablelineedit.cpp:255 +#, kde-format +msgctxt "short translation please" +msgid "Insert newline at end of file on save." +msgstr "" + +#: variableeditor/variablelineedit.cpp:260 +#, kde-format +msgctxt "short translation please" +msgid "Enable overwrite mode in the document." +msgstr "" + +#: variableeditor/variablelineedit.cpp:265 +#, kde-format +msgctxt "short translation please" +msgid "Enable persistent text selection." +msgstr "" + +#: variableeditor/variablelineedit.cpp:270 +#, kde-format +msgctxt "short translation please" +msgid "Replace tabs with spaces when saving the document." +msgstr "" + +#: variableeditor/variablelineedit.cpp:275 +#, fuzzy, kde-format +msgctxt "short translation please" +msgid "Replace tabs with spaces." +msgstr "&সব বদলাও" + +#: variableeditor/variablelineedit.cpp:280 +#, fuzzy, kde-format +msgctxt "short translation please" +msgid "Remove trailing spaces when saving the document." +msgstr "সরিয়ে ফেলো অনুসরণ করা" + +#: variableeditor/variablelineedit.cpp:285 +#, fuzzy, kde-format +msgctxt "short translation please" +msgid "Show scrollbar minimap." +msgstr "দেখাও" + +#: variableeditor/variablelineedit.cpp:290 +#, fuzzy, kde-format +msgctxt "short translation please" +msgid "Show scrollbar preview." +msgstr "দেখাও" + +#: variableeditor/variablelineedit.cpp:301 +#, fuzzy, kde-format +#| msgid "Font & Color Schemas" +msgctxt "short translation please" +msgid "Set the color scheme." +msgstr "ফন্ট এবং রং স্কীমা" + +#: variableeditor/variablelineedit.cpp:306 +#, kde-format +msgctxt "short translation please" +msgid "Set the text selection color." +msgstr "" + +#: variableeditor/variablelineedit.cpp:311 +#, fuzzy, kde-format +msgctxt "short translation please" +msgid "Visualize tabs and trailing spaces." +msgstr "হাইলাইটিং নিয়মাবলী" + +#: variableeditor/variablelineedit.cpp:316 +#, fuzzy, kde-format +msgctxt "short translation please" +msgid "Enable smart home navigation." +msgstr "নির্বাচন" + +#: variableeditor/variablelineedit.cpp:321 +#, fuzzy, kde-format +msgctxt "short translation please" +msgid "Pressing TAB key indents." +msgstr "কী (Key)" + +#: variableeditor/variablelineedit.cpp:327 +#, kde-format +msgctxt "short translation please" +msgid "Set the tab display width." +msgstr "" + +#: variableeditor/variablelineedit.cpp:333 +#, fuzzy, kde-format +msgctxt "short translation please" +msgid "Set the number of undo steps to remember (0 equals infinity)." +msgstr "টি নম্বর -র বাতিল করা আবার করো ধাপ প্রতি রেকর্ড ধাপ ব্যবহার আরো মেমরি." + +#: variableeditor/variablelineedit.cpp:339 +#, kde-format +msgctxt "short translation please" +msgid "Set the word wrap column." +msgstr "" + +#: variableeditor/variablelineedit.cpp:344 +#, fuzzy, kde-format +msgctxt "short translation please" +msgid "Set the word wrap marker color." +msgstr "নির্বাচি&ত রং..." + +#: variableeditor/variablelineedit.cpp:349 +#, kde-format +msgctxt "short translation please" +msgid "Enable word wrap while typing text." +msgstr "" + +#: view/katestatusbar.cpp:114 +#, kde-format +msgid "Current cursor position. Click to go to a specific line." +msgstr "" + +#: view/katestatusbar.cpp:127 +#, kde-format +msgid "Insert mode and VI input mode indicator. Click to change the mode." +msgstr "" + +#: view/katestatusbar.cpp:135 +#, fuzzy, kde-format +msgid "Change dictionary" +msgstr "&সম্পাদক কনফিগার করো..." + +#: view/katestatusbar.cpp:161 view/katestatusbar.cpp:488 +#, fuzzy, kde-format +msgid "Tab Width" +msgstr "ট্যাব প্রস্থ:" + +#: view/katestatusbar.cpp:169 view/katestatusbar.cpp:503 +#, fuzzy, kde-format +msgid "Indentation Width" +msgstr "সঙ্গে" + +#: view/katestatusbar.cpp:177 +#, fuzzy, kde-format +msgid "Indentation Mode" +msgstr "মোড:" + +#: view/katestatusbar.cpp:179 +#, fuzzy, kde-format +msgid "Tabulators && Spaces" +msgstr "ট্যা&ব দেখাও" + +#: view/katestatusbar.cpp:182 +#, fuzzy, kde-format +msgid "Tabulators" +msgstr "ট্যা&ব দেখাও" + +#: view/katestatusbar.cpp:185 +#, fuzzy, kde-format +#| msgid "&Replace" +msgid "Spaces" +msgstr "&বদলাও" + +#: view/katestatusbar.cpp:197 +#, fuzzy, kde-format +msgid "Encoding" +msgstr "&এনকোডিং:" + +#: view/katestatusbar.cpp:200 view/katestatusbar.cpp:201 +#, fuzzy, kde-format +msgid "End of line type" +msgstr "লাইনের শে&ষ:" + +#: view/katestatusbar.cpp:207 +#, fuzzy, kde-format +msgid "Mode" +msgstr "বোল্ড (&ব)" + +#: view/katestatusbar.cpp:209 view/kateview.cpp:703 +#, kde-format +msgid "" +"Here you can choose which mode should be used for the current document. This " +"will influence the highlighting and folding being used, for example." +msgstr "" + +#: view/katestatusbar.cpp:216 +#, fuzzy, kde-format +msgid "Syntax highlighting" +msgstr "ট" + +#: view/katestatusbar.cpp:261 +#, kde-format +msgid "Line/Column compact mode" +msgstr "" + +#: view/katestatusbar.cpp:307 +#, fuzzy, kde-format +msgid "[BLOCK] %1" +msgstr " BLK " + +#: view/katestatusbar.cpp:323 +#, kde-format +msgid "%1/%2:%3" +msgstr "" + +#: view/katestatusbar.cpp:325 +#, kde-format +msgid "%1:%2" +msgstr "" + +#: view/katestatusbar.cpp:329 +#, fuzzy, kde-format +msgid "Line %1 of %2, Column %3" +msgstr " লাইন: %1" + +#: view/katestatusbar.cpp:331 +#, fuzzy, kde-format +msgid "Line %1, Column %2" +msgstr " লাইন: %1" + +#: view/katestatusbar.cpp:405 +#, kde-format +msgid "Soft Tabs: %1" +msgstr "" + +#: view/katestatusbar.cpp:406 +#, kde-format +msgid "Soft Tabs: %1 (%2)" +msgstr "" + +#: view/katestatusbar.cpp:407 +#, fuzzy, kde-format +msgid "Tab Size: %1" +msgstr " লাইন: %1" + +#: view/katestatusbar.cpp:408 +#, kde-format +msgid "Indent/Tab: %1/%2" +msgstr "" + +#: view/katestatusbar.cpp:448 view/katestatusbar.cpp:474 +#, fuzzy, kde-format +msgctxt "@item:inmenu" +msgid "Other…" +msgstr "অন্যান্য" + +#: view/katestatusbar.cpp:476 +#, fuzzy, kde-format +msgid "Other (%1)" +msgid_plural "Other (%1)" +msgstr[0] "অন্যান্য" +msgstr[1] "অন্যান্য" + +#: view/katestatusbar.cpp:488 +#, kde-format +msgid "Please specify the wanted tab width:" +msgstr "" + +#: view/katestatusbar.cpp:504 +#, kde-format +msgid "Please specify the wanted indentation width:" +msgstr "" + +#: view/katestatusbar.cpp:567 +#, kde-format +msgctxt "" +"%1 and %3 are the selected words/chars count, %2 and %4 are the total words/" +"chars count." +msgid "Words %1/%2, Chars %3/%4" +msgstr "" + +#: view/katestatusbar.cpp:573 +#, kde-format +msgctxt "%1 and %2 are the total words/chars count." +msgid "Words %1, Chars %2" +msgstr "" + +#: view/katestatusbar.cpp:588 +#, kde-format +msgid "Zoom: %1%" +msgstr "" + +#: view/kateview.cpp:440 +#, fuzzy, kde-format +msgid "Cut the selected text and move it to the clipboard" +msgstr "কাটো টি নির্বাচিত লেখা এবং স্থানান্তর এটি প্রতি টি ক্লীপবোর্ড" + +#: view/kateview.cpp:445 +#, fuzzy, kde-format +msgid "Paste previously copied or cut clipboard contents" +msgstr "সাঁটো পূর্বে কপিকৃত অথবা কাট, কাটো ক্লীপবোর্ড বস্তু" + +#: view/kateview.cpp:448 +#, fuzzy, kde-format +msgid "" +"Use this command to copy the currently selected text to the system clipboard." +msgstr "এই কমান্ড প্রতি কপি টি বর্তমানে নির্বাচিত লেখা প্রতি টি সিস্টেম ক্লীপবোর্ড." + +#: view/kateview.cpp:454 +#, kde-format +msgid "Clipboard &History Paste" +msgstr "" + +#: view/kateview.cpp:459 +#, fuzzy, kde-format +msgid "Paste Selection" +msgstr "স্বয়ংক্রিয়" + +#: view/kateview.cpp:461 +#, fuzzy, kde-format +msgid "Paste previously mouse selection contents" +msgstr "সাঁটো পূর্বে কপিকৃত অথবা কাট, কাটো ক্লীপবোর্ড বস্তু" + +#: view/kateview.cpp:465 +#, kde-format +msgid "Paste From File" +msgstr "" + +#: view/kateview.cpp:469 +#, kde-format +msgid "Copy File Location" +msgstr "" + +#: view/kateview.cpp:470 +#, kde-format +msgid "Copy the current file name and line number" +msgstr "" + +#: view/kateview.cpp:473 +#, fuzzy, kde-format +msgid "Swap with Clipboard Contents" +msgstr "সাঁটো পূর্বে কপিকৃত অথবা কাট, কাটো ক্লীপবোর্ড বস্তু" + +#: view/kateview.cpp:474 +#, fuzzy, kde-format +msgid "Swap the selected text with the clipboard contents" +msgstr "কাটো টি নির্বাচিত লেখা এবং স্থানান্তর এটি প্রতি টি ক্লীপবোর্ড" + +#: view/kateview.cpp:477 +#, fuzzy, kde-format +msgid "Take Screenshot of Selection" +msgstr "স্বয়ংক্রিয়" + +#: view/kateview.cpp:481 +#, fuzzy, kde-format +msgid "Save the current document" +msgstr "সংরক্ষণ করো টি বর্তমান নথী" + +#: view/kateview.cpp:484 +#, fuzzy, kde-format +msgid "Revert the most recent editing actions" +msgstr "টি অধিকাংশ সাম্প্রতিক সম্পাদন কাজ" + +#: view/kateview.cpp:487 +#, fuzzy, kde-format +msgid "Revert the most recent undo operation" +msgstr "টি অধিকাংশ সাম্প্রতিক বাতিল করা অপারেশন" + +#: view/kateview.cpp:491 +#, fuzzy, kde-format +msgid "&Scripts" +msgstr "Scripts" + +#: view/kateview.cpp:495 +#, fuzzy, kde-format +msgid "Apply &Word Wrap" +msgstr "দেখাও" + +#: view/kateview.cpp:497 +#, kde-format +msgid "" +"Use this to wrap the current line, or to reformat the selected lines as " +"paragraph, to fit the 'Wrap words at' setting in the configuration dialog." +"

This is a static word wrap, meaning the document is changed." +msgstr "" + +#: view/kateview.cpp:503 +#, kde-format +msgid "&Clean Indentation" +msgstr "" + +#: view/kateview.cpp:505 +#, fuzzy, kde-format +msgid "" +"Use this to clean the indentation of a selected block of text (only tabs/" +"only spaces).

You can configure whether tabs should be honored " +"and used or replaced with spaces, in the configuration dialog." +msgstr "" +"এই প্রতি পরিষ্কার টি -র একটি নির্বাচিত ব্লক -র লেখা শুধু ট্যাব শুধু

পারে ট্যাব " +"উচিত সম্মানিত এবং ব্যবহৃত অথবা অপসারিত সঙ্গে ইঞ্চি টি কনফিগারেশন ডায়ালগ." + +#: view/kateview.cpp:510 +#, fuzzy, kde-format +msgid "Convert Indentation to Spaces" +msgstr "নিয়মাবলী" + +#: view/kateview.cpp:517 +#, fuzzy, kde-format +msgid "Convert Indentation to Tabs" +msgstr "মোড:" + +#: view/kateview.cpp:532 +#, fuzzy, kde-format +msgid "&Format Indentation" +msgstr "মোড:" + +#: view/kateview.cpp:533 +#, kde-format +msgid "" +"Use this to auto indent the current line or block of text to its proper " +"indent level." +msgstr "" + +#: view/kateview.cpp:537 +#, fuzzy, kde-format +msgctxt "@action" +msgid "&Align On…" +msgstr "&সব" + +#: view/kateview.cpp:539 +#, kde-format +msgid "" +"This command aligns lines in the selected block or whole document on the " +"column given by a regular expression that you will be prompted for.

If you give an empty pattern it will align on the first non-blank " +"character by default.
If the pattern has a capture it will indent on " +"the captured match.

Examples:
With '-' it will insert " +"spaces before the first '-' of each lines to align them all on the same " +"column.
With ':\\s+(.)' it will insert spaces before the first non-" +"blank character that occurs after a colon to align them all on the same " +"column." +msgstr "" + +#: view/kateview.cpp:550 +#, kde-format +msgid "C&omment" +msgstr "" + +#: view/kateview.cpp:553 +#, fuzzy, kde-format +msgid "" +"This command comments out the current line or a selected block of text.

The characters for single/multiple line comments are defined within " +"the language's highlighting." +msgstr "" +"কমান্ড টি বর্তমান লাইন অথবা একটি নির্বাচিত ব্লক -র লেখা

অক্ষর জন্য একা " +"একাধিক লাইন উল্লেখকৃত মধ্যে টি ভাষা s." + +#: view/kateview.cpp:558 +#, fuzzy, kde-format +msgid "Go to Previous Editing Location" +msgstr "প্রতি" + +#: view/kateview.cpp:564 +#, fuzzy, kde-format +msgid "Go to Next Editing Location" +msgstr "প্রতি পরবর্তী" + +#: view/kateview.cpp:570 +#, kde-format +msgid "Unco&mment" +msgstr "" + +#: view/kateview.cpp:573 +#, fuzzy, kde-format +msgid "" +"This command removes comments from the current line or a selected block of " +"text.

The characters for single/multiple line comments are " +"defined within the language's highlighting." +msgstr "" +"কমান্ড সরিয়ে ফেলে থেকে টি বর্তমান লাইন অথবা একটি নির্বাচিত ব্লক -র লেখা

" +"অক্ষর জন্য একা একাধিক লাইন উল্লেখকৃত মধ্যে টি ভাষা s." + +#: view/kateview.cpp:578 +#, fuzzy, kde-format +msgid "Toggle Comment" +msgstr "মন্তব্য" + +#: view/kateview.cpp:582 +#, kde-format +msgid "&Read Only Mode" +msgstr "" + +#: view/kateview.cpp:583 +#, fuzzy, kde-format +msgid "Lock/unlock the document for writing" +msgstr "টি নথী জন্য লিখছি" + +#: view/kateview.cpp:588 +#, kde-format +msgid "&Force RTL Direction" +msgstr "" + +#: view/kateview.cpp:589 +#, fuzzy, kde-format +msgid "Force RTL Text Direction" +msgstr "নির্বাচন মোড" + +#: view/kateview.cpp:599 +#, kde-format +msgid "Uppercase" +msgstr "আপারকেস" + +#: view/kateview.cpp:602 +#, fuzzy, kde-format +msgid "" +"Convert the selection to uppercase, or the character to the right of the " +"cursor if no text is selected." +msgstr "" +"টি নির্বাচন প্রতি বড় হাতের অথবা টি বর্ণ, অক্ষর প্রতি টি ডানদিক -র টি কার্সার যদি " +"না লেখা আছে নির্বাচিত." + +#: view/kateview.cpp:608 +#, kde-format +msgid "Lowercase" +msgstr "লোয়ারকেস" + +#: view/kateview.cpp:611 +#, fuzzy, kde-format +msgid "" +"Convert the selection to lowercase, or the character to the right of the " +"cursor if no text is selected." +msgstr "" +"টি নির্বাচন প্রতি ছোটহাতের অথবা টি বর্ণ, অক্ষর প্রতি টি ডানদিক -র টি কার্সার যদি " +"না লেখা আছে নির্বাচিত." + +#: view/kateview.cpp:617 +#, kde-format +msgid "Capitalize" +msgstr "" + +#: view/kateview.cpp:620 +#, fuzzy, kde-format +msgid "" +"Capitalize the selection, or the word under the cursor if no text is " +"selected." +msgstr "টি নির্বাচন অথবা টি শব্দ তলায় টি কার্সার যদি না লেখা আছে নির্বাচিত." + +#: view/kateview.cpp:625 +#, kde-format +msgid "Join Lines" +msgstr "" + +#: view/kateview.cpp:630 +#, fuzzy, kde-format +msgid "Invoke Code Completion" +msgstr "নির্বাচন" + +#: view/kateview.cpp:631 +#, kde-format +msgid "" +"Manually invoke command completion, usually by using a shortcut bound to " +"this action." +msgstr "" + +#: view/kateview.cpp:636 +#, fuzzy, kde-format +msgid "Remove Trailing Spaces" +msgstr "সরিয়ে ফেলো অনুসরণ করা" + +#: view/kateview.cpp:654 +#, kde-format +msgid "Print the current document." +msgstr "বর্তমান ডকুমেন্টটি ছাপানো হবে।" + +#: view/kateview.cpp:657 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Show print preview of current document" +msgstr "বর্তমান ডকুমেন্টটি ছাপানো হবে।" + +#: view/kateview.cpp:661 +#, kde-format +msgid "Reloa&d" +msgstr "আবার &পড়ো" + +#: view/kateview.cpp:663 +#, kde-format +msgid "Reload the current document from disk." +msgstr "বর্তমান নথীটি ডিস্ক থেকে নতুন করে পড়া হবে" + +#: view/kateview.cpp:667 +#, kde-format +msgid "Save the current document to disk, with a name of your choice." +msgstr "বর্তমান নথীটি ডিস্ক-এ পছন্দমত নতুন একটি নামে সংরক্ষণ করা হবে" + +#: view/kateview.cpp:669 +#, kde-format +msgctxt "@action" +msgid "Save As with Encodin&g…" +msgstr "" + +#: view/kateview.cpp:675 +#, fuzzy, kde-format +msgctxt "@action" +msgid "Save Cop&y As…" +msgstr "ফাইল সংরক্ষণ করো " + +#: view/kateview.cpp:676 +#, fuzzy, kde-format +#| msgid "Reload the current document from disk." +msgid "Save a copy of the current document to disk." +msgstr "বর্তমান নথীটি ডিস্ক থেকে নতুন করে পড়া হবে" + +#: view/kateview.cpp:680 +#, fuzzy, kde-format +msgid "" +"This command opens a dialog and lets you choose a line that you want the " +"cursor to move to." +msgstr "" +"কমান্ড খোলে একটি ডায়ালগ এবং আপনি বেছে নিন একটি লাইন ঐ আপনি চাই টি কার্সার প্রতি " +"স্থানান্তর প্রতি." + +#: view/kateview.cpp:684 +#, fuzzy, kde-format +msgid "Go to Previous Modified Line" +msgstr "প্রতি" + +#: view/kateview.cpp:685 +#, fuzzy, kde-format +msgid "Move upwards to the previous modified line." +msgstr "সরাও প্রতি" + +#: view/kateview.cpp:690 +#, fuzzy, kde-format +msgid "Go to Next Modified Line" +msgstr "প্রতি পরবর্তী" + +#: view/kateview.cpp:691 +#, kde-format +msgid "Move downwards to the next modified line." +msgstr "" + +#: view/kateview.cpp:695 +#, fuzzy, kde-format +#| msgid "&Configure Editor..." +msgctxt "@action" +msgid "&Configure Editor…" +msgstr "&সম্পাদক কনফিগার করো..." + +#: view/kateview.cpp:697 +#, kde-format +msgid "Configure various aspects of this editor." +msgstr "এই সম্পাদকের নানান বৈশিষ্ট্য পছন্দমত কনফিগার করা যাবে।" + +#: view/kateview.cpp:700 +#, fuzzy, kde-format +msgid "&Mode" +msgstr "বোল্ড (&ব)" + +#: view/kateview.cpp:706 +#, fuzzy, kde-format +msgid "&Highlighting" +msgstr "হাইলাইটিং" + +#: view/kateview.cpp:708 +#, kde-format +msgid "Here you can choose how the current document should be highlighted." +msgstr "এখানে আপনি বেছে নিতে পারেন বর্তমান নথীটি কিভাবে হাইলাইট করা হবে" + +#: view/kateview.cpp:711 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "&Editor Color Theme" +msgstr "রং" + +#: view/kateview.cpp:717 +#, fuzzy, kde-format +msgid "&Indentation" +msgstr "মোড:" + +#: view/kateview.cpp:726 +#, fuzzy, kde-format +msgid "Select the entire text of the current document." +msgstr "টি সমগ্র লেখা -র টি বর্তমান নথী." + +#: view/kateview.cpp:729 +#, fuzzy, kde-format +msgid "" +"If you have selected something within the current document, this will no " +"longer be selected." +msgstr "আপনি নির্বাচিত মধ্যে টি বর্তমান নথী এই না দীর্ঘতর নির্বাচিত." + +#: view/kateview.cpp:733 +#, kde-format +msgid "Enlarge Font" +msgstr "" + +#: view/kateview.cpp:735 +#, fuzzy, kde-format +msgid "This increases the display font size." +msgstr "বৃদ্ধি টি দেখাও ফন্ট আকার, মাপ, আয়তন, আকৃতি." + +#: view/kateview.cpp:742 +#, kde-format +msgid "Shrink Font" +msgstr "" + +#: view/kateview.cpp:744 +#, fuzzy, kde-format +msgid "This decreases the display font size." +msgstr "হ্রাস পায় টি দেখাও ফন্ট আকার, মাপ, আয়তন, আকৃতি." + +#: view/kateview.cpp:751 +#, kde-format +msgid "Reset Font Size" +msgstr "" + +#: view/kateview.cpp:753 +#, fuzzy, kde-format +msgid "This resets the display font size." +msgstr "বৃদ্ধি টি দেখাও ফন্ট আকার, মাপ, আয়তন, আকৃতি." + +#: view/kateview.cpp:756 +#, kde-format +msgid "Bl&ock Selection Mode" +msgstr "ব্লক নির্বা&চন মোড" + +#: view/kateview.cpp:759 +#, fuzzy, kde-format +msgid "" +"This command allows switching between the normal (line based) selection mode " +"and the block selection mode." +msgstr "" +"কমান্ড অনুমতি দেয় পরিবর্তন মধ্যে টি স্বাভাবিক লাইন ভিত্তি করে নির্বাচন মোড এবং টি " +"ব্লক নির্বাচন মোড." + +#: view/kateview.cpp:763 +#, fuzzy, kde-format +msgid "Switch to Next Input Mode" +msgstr "প্রতি শেষ -র" + +#: view/kateview.cpp:765 +#, fuzzy, kde-format +msgid "Switch to the next input mode." +msgstr "প্রতি শেষ -র" + +#: view/kateview.cpp:768 +#, fuzzy, kde-format +msgid "Overwr&ite Mode" +msgstr "মুছে লেখ" + +#: view/kateview.cpp:771 +#, fuzzy, kde-format +msgid "" +"Choose whether you want the text you type to be inserted or to overwrite " +"existing text." +msgstr "আপনি চাই টি লেখা আপনি ধরন প্রতি অথবা প্রতি বিদ্যমান লেখা." + +#: view/kateview.cpp:775 +#, fuzzy, kde-format +#| msgid "&Replace" +msgid "Show Whitespace" +msgstr "&বদলাও" + +#: view/kateview.cpp:778 +#, fuzzy, kde-format +msgid "" +"If this option is checked, whitespaces in this document will be visible.

This is only a view option, meaning the document will not be changed." +msgstr "এই অপশন আছে টি লেখা মোড়ানো -তে টি দেখাও সীমানা ওপর টি পর্দা." + +#: view/kateview.cpp:782 +#, kde-format +msgid "&Dynamic Word Wrap" +msgstr "" + +#: view/kateview.cpp:786 +#, fuzzy, kde-format +msgid "" +"If this option is checked, the text lines will be wrapped at the view border " +"on the screen.

This is only a view option, meaning the document " +"will not be changed." +msgstr "এই অপশন আছে টি লেখা মোড়ানো -তে টি দেখাও সীমানা ওপর টি পর্দা." + +#: view/kateview.cpp:790 +#, kde-format +msgid "Dynamic Word Wrap Indicators" +msgstr "" + +#: view/kateview.cpp:792 +#, fuzzy, kde-format +msgid "Choose when the Dynamic Word Wrap Indicators should be displayed" +msgstr "যখন টি উচিত প্রদর্শিত" + +#: view/kateview.cpp:794 +#, kde-format +msgid "&Off" +msgstr "&বন্ধ" + +#: view/kateview.cpp:794 +#, kde-format +msgid "Follow &Line Numbers" +msgstr "লাইন নম্ব&র অনুসরণ করো" + +#: view/kateview.cpp:794 +#, kde-format +msgid "&Always On" +msgstr "&সবসময় চালু" + +#: view/kateview.cpp:798 +#, fuzzy, kde-format +msgid "Static Word Wrap" +msgstr "দেখাও" + +#: view/kateview.cpp:800 +#, fuzzy, kde-format +msgid "" +"If this option is checked, the text lines will be wrapped at the column " +"defined in the editing properties." +msgstr "এই অপশন আছে টি লেখা মোড়ানো -তে টি দেখাও সীমানা ওপর টি পর্দা." + +#: view/kateview.cpp:807 +#, fuzzy, kde-format +msgid "Show Static &Word Wrap Marker" +msgstr "দেখাও" + +#: view/kateview.cpp:810 +#, fuzzy, kde-format +msgid "" +"Show/hide the Word Wrap Marker, a vertical line drawn at the word wrap " +"column as defined in the editing properties" +msgstr "" +"দেখাও লুকোও টি একটি উলম্ব, খাড়া লাইন অঙ্কিত -তে টি শব্দ ঘুরিয়ে কলাম উল্লেখকৃত " +"ইঞ্চি টি সম্পাদন বৈশিষ্ট্যাবলী" + +#: view/kateview.cpp:814 +#, fuzzy, kde-format +msgid "Show Folding &Markers" +msgstr "দেখাও" + +#: view/kateview.cpp:816 +#, fuzzy, kde-format +msgid "" +"You can choose if the codefolding marks should be shown, if codefolding is " +"possible." +msgstr "পারে বেছে নিন যদি টি চিহ্ন উচিত প্রদর্শিত যদি আছে সম্ভব." + +#: view/kateview.cpp:819 +#, kde-format +msgid "Show &Icon Border" +msgstr "&আইকনের সীমা দেখাও " + +#: view/kateview.cpp:821 +#, fuzzy, kde-format +msgid "" +"Show/hide the icon border.

The icon border shows bookmark " +"symbols, for instance." +msgstr "" +"দেখাও লুকোও টি আইকন সীমানা

আইকন সীমানা প্রদর্শন করে বুকমার্ক চিহ্ন জন্য." + +#: view/kateview.cpp:824 +#, kde-format +msgid "Show &Line Numbers" +msgstr "লাইন &নম্বর দেখাও" + +#: view/kateview.cpp:826 +#, fuzzy, kde-format +msgid "Show/hide the line numbers on the left hand side of the view." +msgstr "দেখাও লুকোও টি লাইন সংখ্যা ওপর টি বাঁদিক হাত পাশ -র টি দেখাও." + +#: view/kateview.cpp:829 +#, fuzzy, kde-format +msgid "Show Scroll&bar Marks" +msgstr "দেখাও" + +#: view/kateview.cpp:831 +#, fuzzy, kde-format +msgid "" +"Show/hide the marks on the vertical scrollbar.

The marks show " +"bookmarks, for instance." +msgstr "" +"এই অপশন আছে প্রত্যেক নতুন দেখাও দেখাও একটি আইকন সীমানা ওপর টি বাঁদিক হাত " +"পাশ

আইকন সীমানা প্রদর্শন করে বুকমার্ক জন্য." + +#: view/kateview.cpp:834 +#, fuzzy, kde-format +msgid "Show Scrollbar Mini-Map" +msgstr "দেখাও" + +#: view/kateview.cpp:836 +#, fuzzy, kde-format +msgid "" +"Show/hide the mini-map on the vertical scrollbar.

The mini-map " +"shows an overview of the whole document." +msgstr "" +"এই অপশন আছে প্রত্যেক নতুন দেখাও দেখাও একটি আইকন সীমানা ওপর টি বাঁদিক হাত " +"পাশ

আইকন সীমানা প্রদর্শন করে বুকমার্ক জন্য." + +#. i18n("Show the whole document in the Mini-Map"), this); +#. ac->addAction(QLatin1String("view_scrollbar_minimap_all"), a); +#. a->setWhatsThis(i18n("Display the whole document in the mini-map.

With this option set the whole document will be visible in the +#. mini-map.")); connect(a, SIGNAL(triggered(bool)), SlOT(toggleScrollBarMiniMapAll())); connect(m_toggleScrollBarMiniMap, SIGNAL(triggered(bool)), +#. m_toggleScrollBarMiniMapAll, SLOT(setEnabled(bool))); +#: view/kateview.cpp:848 +#, kde-format +msgid "Show Non-Printable Spaces" +msgstr "" + +#: view/kateview.cpp:850 +#, kde-format +msgid "Show/hide bounding box around non-printable spaces" +msgstr "" + +#: view/kateview.cpp:854 +#, fuzzy, kde-format +msgid "Switch to Command Line" +msgstr "প্রতি কমান্ড" + +#: view/kateview.cpp:856 +#, fuzzy, kde-format +msgid "Show/hide the command line on the bottom of the view." +msgstr "দেখাও লুকোও টি কমান্ড লাইন ওপর টি তলা -র টি দেখাও." + +#: view/kateview.cpp:859 +#, kde-format +msgid "Input Modes" +msgstr "" + +#: view/kateview.cpp:868 +#, kde-format +msgid "Activate/deactivate %1" +msgstr "" + +#: view/kateview.cpp:878 +#, kde-format +msgid "&End of Line" +msgstr "লাইনের শে&ষ" + +#: view/kateview.cpp:880 +#, fuzzy, kde-format +msgid "Choose which line endings should be used, when you save the document" +msgstr "কোন লাইন শেষাংশ উচিত ব্যবহৃত যখন আপনি সংরক্ষণ করা টি নথী" + +#: view/kateview.cpp:881 +#, kde-format +msgctxt "@item:inmenu End of Line" +msgid "&UNIX" +msgstr "" + +#: view/kateview.cpp:882 +#, fuzzy, kde-format +msgctxt "@item:inmenu End of Line" +msgid "&Windows/DOS" +msgstr "ডস/উইণ্ডোস" + +#: view/kateview.cpp:883 +#, fuzzy, kde-format +#| msgid "Macintosh" +msgctxt "@item:inmenu End of Line" +msgid "&Macintosh" +msgstr "ম্যাকিনটশ" + +#: view/kateview.cpp:888 +#, kde-format +msgid "Add &Byte Order Mark (BOM)" +msgstr "" + +#: view/kateview.cpp:891 +#, kde-format +msgid "" +"Enable/disable adding of byte order marks for UTF-8/UTF-16 encoded files " +"while saving" +msgstr "" + +#: view/kateview.cpp:895 +#, fuzzy, kde-format +msgid "E&ncoding" +msgstr "&এনকোডিং:" + +#: view/kateview.cpp:899 +#, kde-format +msgid "Look up the first occurrence of a piece of text or regular expression." +msgstr "একটি শব্দসমষ্টি বা রেগুলার এক্সপ্রেশন-এর প্রথম উপস্থিতি খুঁজে বার করো" + +#: view/kateview.cpp:903 +#, fuzzy, kde-format +msgid "Find Selected" +msgstr "নির্বাচিত" + +#: view/kateview.cpp:905 +#, kde-format +msgid "Finds next occurrence of selected text." +msgstr "" + +#: view/kateview.cpp:909 +#, fuzzy, kde-format +msgid "Find Selected Backwards" +msgstr "প্রথম সন্ধান:" + +#: view/kateview.cpp:911 +#, fuzzy, kde-format +msgid "Finds previous occurrence of selected text." +msgstr "সন্ধান করা শব্দসমষ্টির পূর্ববর্তী উপস্থিতি খুঁজে বার করো " + +#: view/kateview.cpp:915 +#, kde-format +msgid "Find and Select Next Occurrence" +msgstr "" + +#: view/kateview.cpp:917 +#, kde-format +msgid "Finds next occurrence of the word under cursor and add it to selection." +msgstr "" + +#: view/kateview.cpp:921 +#, kde-format +msgid "Mark Currently Selected Occurrence as Skipped" +msgstr "" + +#: view/kateview.cpp:923 +#, kde-format +msgid "Marks the currently selected word as skipped." +msgstr "" + +#: view/kateview.cpp:927 +#, kde-format +msgid "Find and Select All Occurrences" +msgstr "" + +#: view/kateview.cpp:929 +#, kde-format +msgid "Finds all occurrences of the word under cursor and selects them." +msgstr "" + +#: view/kateview.cpp:933 +#, kde-format +msgid "Look up the next occurrence of the search phrase." +msgstr "সন্ধান করা শব্দসমষ্টির পরবর্তী উপস্থিতি খুঁজে বার করো" + +#: view/kateview.cpp:937 +#, kde-format +msgid "Look up the previous occurrence of the search phrase." +msgstr "সন্ধান করা শব্দসমষ্টির পূর্ববর্তী উপস্থিতি খুঁজে বার করো " + +#: view/kateview.cpp:941 +#, kde-format +msgid "" +"Look up a piece of text or regular expression and replace the result with " +"some given text." +msgstr "" +"একটি শব্দসমষ্টি বা রেগুলার এক্সপ্রেশন-এর উপস্থিতি খুঁজে বার করে তার বদলে অন্য লেখা " +"বসাও।" + +#: view/kateview.cpp:944 +#, kde-format +msgid "Add Cursors to Line Ends" +msgstr "" + +#: view/kateview.cpp:946 +#, kde-format +msgid "Creates a cursor at the end of every line in selection." +msgstr "" + +#: view/kateview.cpp:950 +#, kde-format +msgid "Add Caret below Cursor" +msgstr "" + +#: view/kateview.cpp:952 +#, fuzzy, kde-format +msgid "Adds a caret in the line below the current caret." +msgstr "টি সমগ্র লেখা -র টি বর্তমান নথী." + +#: view/kateview.cpp:956 +#, kde-format +msgid "Add Caret above Cursor" +msgstr "" + +#: view/kateview.cpp:958 +#, kde-format +msgid "Adds a caret in the line above the current caret." +msgstr "" + +#: view/kateview.cpp:962 +#, kde-format +msgid "Toggle Camel Case Cursor Movement" +msgstr "" + +#: view/kateview.cpp:963 +#, kde-format +msgid "Toggle between normal word movement and camel case cursor movement." +msgstr "" + +#: view/kateview.cpp:967 +#, fuzzy, kde-format +msgid "Remove Cursors from Empty Lines" +msgstr "সরাও প্রতি" + +#: view/kateview.cpp:968 +#, fuzzy, kde-format +msgid "Remove cursors from empty lines" +msgstr "সরাও প্রতি" + +#: view/kateview.cpp:972 +#, fuzzy, kde-format +msgid "Automatic Spell Checking" +msgstr "স্বয়ংক্রিয়" + +#: view/kateview.cpp:973 +#, kde-format +msgid "Enable/disable automatic spell checking" +msgstr "" + +#: view/kateview.cpp:979 +#, fuzzy, kde-format +msgctxt "@action" +msgid "Change Dictionary…" +msgstr "&সম্পাদক কনফিগার করো..." + +#: view/kateview.cpp:980 +#, kde-format +msgid "Change the dictionary that is used for spell checking." +msgstr "" + +#: view/kateview.cpp:984 +#, kde-format +msgid "Clear Dictionary Ranges" +msgstr "" + +#: view/kateview.cpp:986 +#, kde-format +msgid "" +"Remove all the separate dictionary ranges that were set for spell checking." +msgstr "" + +#: view/kateview.cpp:992 +#, kde-format +msgid "Copy as &HTML" +msgstr "" + +#: view/kateview.cpp:993 +#, kde-format +msgid "" +"Copy the selection as HTML, formatted using the current syntax highlighting " +"and color scheme settings." +msgstr "" + +#: view/kateview.cpp:997 +#, fuzzy, kde-format +msgctxt "@action" +msgid "E&xport as HTML…" +msgstr "ফাইল অন্য ফর্ম্যাটে রপ্তানি করো" + +#: view/kateview.cpp:999 +#, fuzzy, kde-format +msgid "" +"This command allows you to export the current document with all highlighting " +"information into a HTML document." +msgstr "" +"কমান্ড অনুমতি দেয় আপনি প্রতি রপ্তানি টি বর্তমান নথী সঙ্গে সব তথ্য ভেতরে একটি মার্কআপ " +"নথী e." + +#: view/kateview.cpp:1038 +#, kde-format +msgid "Move Word Left" +msgstr "শব্দ বাঁদিকে সরাও" + +#: view/kateview.cpp:1044 +#, fuzzy, kde-format +msgid "Select Character Left" +msgstr "বাঁদিক" + +#: view/kateview.cpp:1050 +#, fuzzy, kde-format +msgid "Select Word Left" +msgstr "বাঁদিক" + +#: view/kateview.cpp:1060 +#, kde-format +msgid "Move Word Right" +msgstr "শব্দ ডানদিকে সরাও" + +#: view/kateview.cpp:1066 +#, fuzzy, kde-format +msgid "Select Character Right" +msgstr "ডানদিক" + +#: view/kateview.cpp:1072 +#, fuzzy, kde-format +msgid "Select Word Right" +msgstr "ডানদিক" + +#: view/kateview.cpp:1082 +#, fuzzy, kde-format +msgid "Start the Marked Selection" +msgstr "স্বয়ংক্রিয়" + +#: view/kateview.cpp:1083 +#, kde-format +msgid "" +"Emulate the Emacs-like selection mode, where the beginning is marked and " +"then the selection is continuously updated." +msgstr "" + +#: view/kateview.cpp:1088 +#, kde-format +msgid "Move to Beginning of Line" +msgstr "লাইনের শুরুতে চলে যাও" + +#: view/kateview.cpp:1094 +#, kde-format +msgid "Move to Beginning of Document" +msgstr "ডকুমেন্টের শুরুতে চলে যাও" + +#: view/kateview.cpp:1100 +#, fuzzy, kde-format +msgid "Select to Beginning of Line" +msgstr "প্রতি -র" + +#: view/kateview.cpp:1110 +#, fuzzy, kde-format +msgid "Select to Beginning of Document" +msgstr "প্রতি -র" + +#: view/kateview.cpp:1120 +#, kde-format +msgid "Move to End of Line" +msgstr "লাইনের শেষে চলে যাও" + +#: view/kateview.cpp:1126 +#, kde-format +msgid "Move to End of Document" +msgstr "ডকুমেন্টের শেষে চলে যাও" + +#: view/kateview.cpp:1132 +#, fuzzy, kde-format +msgid "Select to End of Line" +msgstr "প্রতি শেষ -র" + +#: view/kateview.cpp:1142 +#, fuzzy, kde-format +msgid "Select to End of Document" +msgstr "প্রতি শেষ -র" + +#: view/kateview.cpp:1152 +#, fuzzy, kde-format +msgid "Select to Previous Line" +msgstr "প্রতি" + +#: view/kateview.cpp:1158 +#, fuzzy, kde-format +msgid "Scroll Line Up" +msgstr "উপর" + +#: view/kateview.cpp:1167 +#, fuzzy, kde-format +msgid "Move to Next Line" +msgstr "প্রতি পরবর্তী" + +#: view/kateview.cpp:1173 +#, fuzzy, kde-format +msgid "Move to Previous Line" +msgstr "প্রতি" + +#: view/kateview.cpp:1179 +#, fuzzy, kde-format +#| msgid "Move Word Right" +msgid "Move Cursor Right" +msgstr "শব্দ ডানদিকে সরাও" + +#: view/kateview.cpp:1185 +#, fuzzy, kde-format +#| msgid "Move Word Left" +msgid "Move Cursor Left" +msgstr "শব্দ বাঁদিকে সরাও" + +#: view/kateview.cpp:1191 +#, fuzzy, kde-format +msgid "Select to Next Line" +msgstr "প্রতি পরবর্তী" + +#: view/kateview.cpp:1197 +#, kde-format +msgid "Scroll Line Down" +msgstr "" + +#: view/kateview.cpp:1206 +#, fuzzy, kde-format +msgid "Scroll Page Up" +msgstr "পাতা উপর" + +#: view/kateview.cpp:1212 +#, fuzzy, kde-format +msgid "Select Page Up" +msgstr "পাতা উপর" + +#: view/kateview.cpp:1218 +#, fuzzy, kde-format +msgid "Move to Top of View" +msgstr "সরাও প্রতি উপর -র প্রদর্শন" + +#: view/kateview.cpp:1224 +#, fuzzy, kde-format +msgid "Select to Top of View" +msgstr "প্রতি উপর -র প্রদর্শন" + +#: view/kateview.cpp:1230 +#, fuzzy, kde-format +msgid "Scroll Page Down" +msgstr "পাতা" + +#: view/kateview.cpp:1236 +#, fuzzy, kde-format +msgid "Select Page Down" +msgstr "পাতা" + +#: view/kateview.cpp:1242 +#, fuzzy, kde-format +msgid "Move to Bottom of View" +msgstr "সরাও প্রতি তলায় -র প্রদর্শন" + +#: view/kateview.cpp:1248 +#, fuzzy, kde-format +msgid "Select to Bottom of View" +msgstr "প্রতি তলায় -র প্রদর্শন" + +#: view/kateview.cpp:1254 +#, fuzzy, kde-format +msgid "Go to Matching Bracket" +msgstr "সরাও প্রতি" + +#: view/kateview.cpp:1260 +#, fuzzy, kde-format +msgid "Select to Matching Bracket" +msgstr "প্রতি" + +#: view/kateview.cpp:1267 +#, fuzzy, kde-format +#| msgid "Move Word Right" +msgid "Move Sub-Word Right" +msgstr "শব্দ ডানদিকে সরাও" + +#: view/kateview.cpp:1274 +#, fuzzy, kde-format +msgid "Select Sub-Word Right" +msgstr "ডানদিক" + +#: view/kateview.cpp:1281 +#, fuzzy, kde-format +#| msgid "Move Word Left" +msgid "Move Sub-Word Left" +msgstr "শব্দ বাঁদিকে সরাও" + +#: view/kateview.cpp:1288 +#, fuzzy, kde-format +msgid "Select Sub-Word Left" +msgstr "বাঁদিক" + +#: view/kateview.cpp:1298 +#, kde-format +msgid "Transpose Characters" +msgstr "" + +#: view/kateview.cpp:1303 +#, kde-format +msgid "Transpose Words" +msgstr "" + +#: view/kateview.cpp:1308 +#, kde-format +msgid "Delete Line" +msgstr "লাইন মুছে ফেলো" + +#: view/kateview.cpp:1314 +#, fuzzy, kde-format +msgid "Delete Word Left" +msgstr "মোছো বাঁদিক" + +#: view/kateview.cpp:1320 +#, fuzzy, kde-format +msgid "Delete Word Right" +msgstr "মোছো ডানদিক" + +#: view/kateview.cpp:1326 +#, fuzzy, kde-format +msgid "Delete Next Character" +msgstr "বাঁদিক" + +#: view/kateview.cpp:1332 +#, fuzzy, kde-format +msgid "Backspace" +msgstr "ওপর সংরক্ষণ করো" + +#: view/kateview.cpp:1340 +#, fuzzy, kde-format +msgid "Insert Tab Character" +msgstr "মধ্যে ঢোকাও ইনডেন্ট অক্ষর" + +#: view/kateview.cpp:1345 +#, fuzzy, kde-format +msgid "Insert Smart Newline" +msgstr "বর্তমান লাইন" + +#: view/kateview.cpp:1346 +#, kde-format +msgid "" +"Insert newline including leading characters of the current line which are " +"not letters or numbers." +msgstr "" + +#: view/kateview.cpp:1354 +#, fuzzy, kde-format +msgid "Insert a Non-Indented Newline" +msgstr "বর্তমান লাইন" + +#: view/kateview.cpp:1355 +#, kde-format +msgid "" +"Insert a new line without indentation, regardless of indentation settings." +msgstr "" + +#: view/kateview.cpp:1363 +#, kde-format +msgid "Insert a Newline Above Current Line" +msgstr "" + +#: view/kateview.cpp:1364 +#, kde-format +msgid "" +"Insert a new line above current line without modifying the current line." +msgstr "" + +#: view/kateview.cpp:1372 +#, kde-format +msgid "Insert a Newline Below Current Line" +msgstr "" + +#: view/kateview.cpp:1373 +#, kde-format +msgid "" +"Insert a new line below current line without modifying the current line." +msgstr "" + +#: view/kateview.cpp:1382 +#, kde-format +msgid "&Indent" +msgstr "" + +#: view/kateview.cpp:1384 +#, fuzzy, kde-format +msgid "" +"Use this to indent a selected block of text.

You can configure " +"whether tabs should be honored and used or replaced with spaces, in the " +"configuration dialog." +msgstr "" +"এই প্রতি ইনডেন্ট একটি নির্বাচিত ব্লক -র লেখা

পারে ট্যাব উচিত সম্মানিত এবং " +"ব্যবহৃত অথবা অপসারিত সঙ্গে ইঞ্চি টি কনফিগারেশন ডায়ালগ." + +#: view/kateview.cpp:1391 +#, kde-format +msgid "&Unindent" +msgstr "" + +#: view/kateview.cpp:1392 +#, fuzzy, kde-format +msgid "Use this to unindent a selected block of text." +msgstr "এই প্রতি একটি নির্বাচিত ব্লক -র লেখা." + +#: view/kateview.cpp:1398 +#, fuzzy, kde-format +msgid "Delete Sub-Word Left" +msgstr "মোছো বাঁদিক" + +#: view/kateview.cpp:1405 +#, fuzzy, kde-format +msgid "Delete Sub-Word Right" +msgstr "মোছো ডানদিক" + +#: view/kateview.cpp:1426 +#, fuzzy, kde-format +msgid "Fold Toplevel Nodes" +msgstr "সর্বোচ্চ স্তর ভাঁজ করার সুবিধাযুক্ত নোড" + +#: view/kateview.cpp:1430 +#, fuzzy, kde-format +msgid "Unfold Toplevel Nodes" +msgstr "সর্বোচ্চ স্তর ভাঁজ করার সুবিধাযুক্ত নোড" + +#: view/kateview.cpp:1434 +#, fuzzy, kde-format +#| msgid "Current line:" +msgid "Toggle Current Node" +msgstr "বর্তমান লাইন:" + +#: view/kateview.cpp:1438 +#, fuzzy, kde-format +msgid "Toggle Contained Nodes" +msgstr "মন্তব্য" + +#: view/kateview.cpp:1447 +#, fuzzy, kde-format +msgid "Say current selection or document" +msgstr "টি সমগ্র লেখা -র টি বর্তমান নথী." + +#: view/kateview.cpp:1457 +#, fuzzy, kde-format +msgid "Stop current output" +msgstr "সংরক্ষণ করো টি বর্তমান নথী" + +#: view/kateview.cpp:1463 +#, fuzzy, kde-format +msgid "Pause current output" +msgstr "সংরক্ষণ করো টি বর্তমান নথী" + +#: view/kateview.cpp:1469 +#, fuzzy, kde-format +msgid "Resume current output" +msgstr "সংরক্ষণ করো টি বর্তমান নথী" + +#: view/kateview.cpp:1640 +#, kde-format +msgid "(R/O) %1" +msgstr "" + +#: view/kateview.cpp:1828 +#, kde-format +msgid "Camel case movement disabled" +msgstr "" + +#: view/kateview.cpp:1830 +#, kde-format +msgid "Camel case movement enabled" +msgstr "" + +#: view/kateview.cpp:2349 +#, fuzzy, kde-format +msgid "Search wrapped" +msgstr "সন্ধান" + +#: view/kateview.cpp:3043 +#, fuzzy, kde-format +msgid "Open File" +msgstr "ফাইল সংরক্ষণ করো " + +#: view/kateview.cpp:3984 +#, fuzzy, kde-format +msgid "Align On" +msgstr "&সব" + +#: view/kateview.cpp:3984 +#, kde-format +msgid "Alignment pattern:" +msgstr "" + +#: view/kateview.cpp:5068 +#, fuzzy, kde-format +msgid "Export File as HTML" +msgstr "ফাইল অন্য ফর্ম্যাটে রপ্তানি করো" + +#: view/kateviewhelpers.cpp:302 view/kateviewhelpers.cpp:351 +#: view/kateviewhelpers.cpp:1012 +#, kde-format +msgctxt "from line - to line" +msgid "
%1

%2
" +msgstr "" + +#: view/kateviewhelpers.cpp:1212 +#, kde-format +msgid "Available Commands" +msgstr "" + +#: view/kateviewhelpers.cpp:1213 +#, kde-format +msgid "" +"

For help on individual commands, do 'help <command>'" +msgstr "" + +#: view/kateviewhelpers.cpp:1220 +#, kde-format +msgid "No help for '%1'" +msgstr "" + +#: view/kateviewhelpers.cpp:1223 +#, fuzzy, kde-format +msgid "No such command %1" +msgstr "এরকম কোন কমাণ্ড পাওয়া যায়নি: \"%1\"" + +#: view/kateviewhelpers.cpp:1229 +#, kde-format +msgid "" +"

This is the Katepart command line.
Syntax: command " +"[ arguments ]
For a list of available commands, enter " +"help list
For help for individual commands, enter " +"help <command>

" +msgstr "" + +#: view/kateviewhelpers.cpp:1317 vimode/emulatedcommandbar/commandmode.cpp:211 +#, kde-format +msgid "No such command: \"%1\"" +msgstr "এরকম কোন কমাণ্ড পাওয়া যায়নি: \"%1\"" + +#: view/kateviewhelpers.cpp:1320 vimode/emulatedcommandbar/commandmode.cpp:193 +#, kde-format +msgid "Error: No range allowed for command \"%1\"." +msgstr "" + +#: view/kateviewhelpers.cpp:1330 vimode/emulatedcommandbar/commandmode.cpp:197 +#, kde-format +msgid "Success: " +msgstr "সফল:" + +#: view/kateviewhelpers.cpp:1344 vimode/emulatedcommandbar/commandmode.cpp:206 +#, kde-format +msgid "Command \"%1\" failed." +msgstr "কমাণ্ড \"%1\" ব্যর্থ" + +#: view/kateviewhelpers.cpp:2632 view/kateviewhelpers.cpp:2633 +#, fuzzy, kde-format +msgid "Mark Type %1" +msgstr "ধরন ১" + +#: view/kateviewhelpers.cpp:2656 +#, fuzzy, kde-format +msgid "Set Default Mark Type" +msgstr "ডিফল্ট ধরন" + +#: view/kateviewhelpers.cpp:2801 +#, kde-format +msgid "Disable Annotation Bar" +msgstr "" + +#: view/screenshotdialog.cpp:175 +#, fuzzy, kde-format +#| msgid "Open/Save" +msgid "Save" +msgstr "খোলো/সংরক্ষণ করো" + +#: view/screenshotdialog.cpp:176 +#, fuzzy, kde-format +msgid "Copy" +msgstr "ফাইল সংরক্ষণ করো " + +#: view/screenshotdialog.cpp:177 +#, fuzzy, kde-format +msgctxt "@action:button" +msgid "Background Color…" +msgstr "&পটভূমি" + +#: view/screenshotdialog.cpp:179 +#, fuzzy, kde-format +msgid "Show Extra Decorations" +msgstr "নির্বাচন মোড" + +#: view/screenshotdialog.cpp:180 +#, fuzzy, kde-format +msgid "Show Window Decorations" +msgstr "নিয়মাবলী" + +#: view/screenshotdialog.cpp:185 +#, fuzzy, kde-format +msgctxt "@title:window" +msgid "Take Screenshot of Selection" +msgstr "স্বয়ংক্রিয়" + +#: view/screenshotdialog.cpp:257 +#, fuzzy, kde-format +#| msgid "Show &Line Numbers" +msgid "Don't Show Line Numbers" +msgstr "লাইন &নম্বর দেখাও" + +#: view/screenshotdialog.cpp:258 +#, fuzzy, kde-format +#| msgid "Show &Line Numbers" +msgid "Show Line Numbers From 1" +msgstr "লাইন &নম্বর দেখাও" + +#: view/screenshotdialog.cpp:259 +#, fuzzy, kde-format +#| msgid "Show &Line Numbers" +msgid "Show Actual Line Numbers" +msgstr "লাইন &নম্বর দেখাও" + +#: view/screenshotdialog.cpp:422 +#, kde-format +msgctxt "@title:window" +msgid "Screenshot saving failed" +msgstr "" + +#: view/screenshotdialog.cpp:422 +#, kde-format +msgid "Screenshot saving failed: %1" +msgstr "" + +#: vimode/appcommands.cpp:67 +#, kde-format +msgid "All documents written to disk" +msgstr "" + +#: vimode/appcommands.cpp:70 +#, kde-format +msgid "Document written to disk" +msgstr "" + +#: vimode/appcommands.cpp:202 +#, kde-format +msgid "" +"

w/wa — write document(s) to disk

Usage: w[a]

Writes the current document(s) to disk. It can be called in " +"two ways:
w — writes the current document to disk
" +"wa — writes all documents to disk.

If no file name is " +"associated with the document, a file dialog will be shown.

" +msgstr "" + +#: vimode/appcommands.cpp:213 +#, kde-format +msgid "" +"

q/qa/wq/wqa — [write and] quit

Usage: [w]q[a]

Quits the application. If w is prepended, it also " +"writes the document(s) to disk. This command can be called in several ways:" +"
q — closes the current view.
qa — " +"closes all views, effectively quitting the application.
wq " +"— writes the current document to disk and closes its view.
" +"wqa — writes all documents to disk and quits.

In all " +"cases, if the view being closed is the last view, the application quits. If " +"no file name is associated with the document and it should be written to " +"disk, a file dialog will be shown.

" +msgstr "" + +#: vimode/appcommands.cpp:228 +#, kde-format +msgid "" +"

x/xa — write and quit

Usage: x[a]

Saves document(s) and quits (exits). This command can be called " +"in two ways:
x — closes the current view.
xa — closes all views, effectively quitting the application.

In " +"all cases, if the view being closed is the last view, the application quits. " +"If no file name is associated with the document and it should be written to " +"disk, a file dialog will be shown.

Unlike the 'w' commands, this " +"command only writes the document if it is modified.

" +msgstr "" + +#: vimode/appcommands.cpp:242 +#, kde-format +msgid "" +"

sp,split— Split horizontally the current view into two

Usage: sp[lit]

The result is two views on the " +"same document.

" +msgstr "" + +#: vimode/appcommands.cpp:248 +#, kde-format +msgid "" +"

vs,vsplit— Split vertically the current view into two

Usage: vs[plit]

The result is two views on the " +"same document.

" +msgstr "" + +#: vimode/appcommands.cpp:254 +#, kde-format +msgid "" +"

clo[se]— Close the current view

Usage: clo[se]

After executing it, the current view will be closed.

" +msgstr "" + +#: vimode/appcommands.cpp:260 +#, kde-format +msgid "" +"

[v]new — split view and create new document

Usage: " +"[v]new

Splits the current view and opens a new " +"document in the new view. This command can be called in two ways:
" +"new — splits the view horizontally and opens a new document." +"
vnew — splits the view vertically and opens a new " +"document.

" +msgstr "" + +#: vimode/appcommands.cpp:270 +#, kde-format +msgid "" +"

e[dit] — reload current document

Usage: e[dit]

Starts editing the current document again. This is " +"useful to re-edit the current file, when it was modified on disk.

" +msgstr "" + +#: vimode/appcommands.cpp:518 +#, kde-format +msgid "" +"

b,buffer — Edit document N from the document list

Usage: b[uffer] [N]

" +msgstr "" + +#: vimode/appcommands.cpp:523 +#, kde-format +msgid "" +"

bp,bprev — previous buffer

Usage: bp[revious] " +"[N]

Goes to [N]th previous document (\"buffer" +"\") in document list.

[N] defaults to one.

Wraps " +"around the start of the document list.

" +msgstr "" + +#: vimode/appcommands.cpp:531 +#, kde-format +msgid "" +"

bn,bnext — switch to next document

Usage: " +"bn[ext] [N]

Goes to [N]th next document " +"(\"buffer\") in document list.[N] defaults to one.

Wraps around the end of the document list.

" +msgstr "" + +#: vimode/appcommands.cpp:539 +#, kde-format +msgid "" +"

bf,bfirst — first document

Usage: bf[irst]

Goes to the first document (\"buffer\") in document " +"list.

" +msgstr "" + +#: vimode/appcommands.cpp:545 +#, kde-format +msgid "" +"

bl,blast — last document

Usage: bl[ast]

Goes to the last document (\"buffer\") in document " +"list.

" +msgstr "" + +#: vimode/appcommands.cpp:551 +#, kde-format +msgid "

ls

list current buffers

" +msgstr "" + +#: vimode/cmds.cpp:52 +#, fuzzy, kde-format +msgid "Missing argument. Usage: %1 " +msgstr "নিরুদ্দেশ প্রেরিত মান" + +#: vimode/cmds.cpp:68 +#, kde-format +msgid "No mapping found for \"%1\"" +msgstr "" + +#: vimode/cmds.cpp:71 +#, kde-format +msgid "\"%1\" is mapped to \"%2\"" +msgstr "" + +#: vimode/cmds.cpp:77 +#, fuzzy, kde-format +msgid "Missing argument(s). Usage: %1 []" +msgstr "নিরুদ্দেশ প্রেরিত মান" + +#: vimode/cmds.cpp:145 vimode/cmds.cpp:161 +#, kde-format +msgid "Wrong arguments" +msgstr "" + +#: vimode/config/configtab.cpp:205 +#, fuzzy, kde-format +#| msgid "Unable to open %1" +msgid "Unable to open the config file for reading." +msgstr "%1 খোলা যায়নি" + +#: vimode/config/configtab.cpp:205 +#, fuzzy, kde-format +#| msgid "Unable to open %1" +msgid "Unable to open file" +msgstr "%1 খোলা যায়নি" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkViCommandsOverride) +#: vimode/config/configwidget.ui:35 +#, kde-format +msgid "" +"When selected, vi commands will override Kate's built-in commands. For " +"example: Ctrl+R will redo, and override the standard action (showing the " +"search and replace dialog)." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkViCommandsOverride) +#: vimode/config/configwidget.ui:38 +#, kde-format +msgid "Let Vi commands override Kate shortcuts" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkViRelLineNumbers) +#: vimode/config/configwidget.ui:45 +#, fuzzy, kde-format +msgid "" +"Show the line number relative to the line with the cursor in front of each " +"line." +msgstr "দেখাও লুকোও টি লাইন সংখ্যা ওপর টি বাঁদিক হাত পাশ -র টি দেখাও." + +#. i18n: ectx: property (text), widget (QCheckBox, chkViRelLineNumbers) +#: vimode/config/configwidget.ui:48 +#, fuzzy, kde-format +msgid "Display relative line numbers" +msgstr "লাই&ন নম্বর ছাপাও " + +#. i18n: ectx: property (whatsThis), widget (QGroupBox, groupBox) +#: vimode/config/configwidget.ui:63 +#, kde-format +msgid "" +"Key mapping is used to change the meaning of typed keys. This allows you to " +"move commands to other keys or make special keypresses for doing a series of " +"commands.\n" +"\n" +"Example:\n" +"\"\" → \"I-- \"\n" +"\n" +"This will prepend \"-- \" to a line when pressing F2." +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, groupBox) +#: vimode/config/configwidget.ui:66 +#, kde-format +msgid "Key Mapping" +msgstr "" + +#. i18n: ectx: attribute (title), widget (QWidget, normalTab) +#: vimode/config/configwidget.ui:76 +#, fuzzy, kde-format +#| msgid "Normal Text" +msgid "Normal mode" +msgstr "স্বাভাবিক লেখা" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:95 vimode/config/configwidget.ui:133 +#: vimode/config/configwidget.ui:171 +#, fuzzy, kde-format +msgid "Command" +msgstr "মন্তব্য" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:100 vimode/config/configwidget.ui:138 +#: vimode/config/configwidget.ui:176 +#, fuzzy, kde-format +msgid "Replacement" +msgstr "&বদলাও" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:105 vimode/config/configwidget.ui:143 +#: vimode/config/configwidget.ui:181 +#, kde-format +msgid "Recursive?" +msgstr "" + +#. i18n: ectx: attribute (title), widget (QWidget, insertTab) +#: vimode/config/configwidget.ui:114 +#, fuzzy, kde-format +msgid "Insert mode" +msgstr "&ইনস্টল" + +#. i18n: ectx: attribute (title), widget (QWidget, visualTab) +#: vimode/config/configwidget.ui:152 +#, fuzzy, kde-format +#| msgid "Normal Text" +msgid "Visual mode" +msgstr "স্বাভাবিক লেখা" + +#. i18n: ectx: property (text), widget (QPushButton, btnRemoveSelectedRows) +#: vimode/config/configwidget.ui:195 +#, fuzzy, kde-format +msgid "Remove selected" +msgstr "নির্বাচিত" + +#. i18n: ectx: property (text), widget (QPushButton, btnAddNewRow) +#: vimode/config/configwidget.ui:202 +#, kde-format +msgid "Add new mapping" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QPushButton, btnImportNormal) +#: vimode/config/configwidget.ui:209 +#, kde-format +msgid "" +"Read a vimrc file and attempt to import mappings specified with the " +"\"[n]noremap\" command." +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, btnImportNormal) +#: vimode/config/configwidget.ui:212 +#, kde-format +msgid "Import from vimrc file" +msgstr "" + +#: vimode/marks.cpp:117 +#, fuzzy, kde-format +msgid "Mark set: %1" +msgstr "ধরন ১" + +#: vimode/marks.cpp:163 +#, fuzzy, kde-format +#| msgid "Go to the next bookmark." +msgid "There are no more chars for the next bookmark." +msgstr "পরবর্তী বুকমার্ক-এ যাও" + +#: vimode/modes/insertvimode.cpp:261 vimode/modes/modebase.cpp:794 +#: vimode/modes/normalvimode.cpp:3567 +#, kde-format +msgid "Nothing in register %1" +msgstr "" + +#: vimode/modes/normalvimode.cpp:1691 +#, kde-format +msgid "'%1' %2, Hex %3, Octal %4" +msgstr "" + +#: vimode/modes/normalvimode.cpp:2534 +#, fuzzy, kde-format +msgid "Mark not set: %1" +msgstr "ধরন ১" + +#, fuzzy +#~ msgid "Set &Bookmark" +#~ msgstr "পরবর্তী বুকমার্ক" + +#, fuzzy +#~ msgid "The file '%1' was created on disk." +#~ msgstr "" +#~ "অপর একটি প্রোগ্রাম %1 ফাইলটিকে ডিস্ক-এ পাল্টেছে (মুছে ফেলেছে)!\n" +#~ "\n" + +#, fuzzy +#~ msgid "" +#~ "Use this command to copy the currently selected text as HTML to the " +#~ "system clipboard." +#~ msgstr "এই কমান্ড প্রতি কপি টি বর্তমানে নির্বাচিত লেখা প্রতি টি সিস্টেম ক্লীপবোর্ড." + +#, fuzzy +#~ msgctxt "Wrap words at (value is at 20 or larger)" +#~ msgid " character" +#~ msgid_plural " characters" +#~ msgstr[0] "মধ্যে ঢোকাও ট্যাব বর্ণ, অক্ষর" +#~ msgstr[1] "মধ্যে ঢোকাও ট্যাব বর্ণ, অক্ষর" + +#, fuzzy +#~ msgid "Save..." +#~ msgstr "ফাইল সংরক্ষণ করো " + +#, fuzzy +#~ msgid "&Copy..." +#~ msgstr "ফাইল সংরক্ষণ করো " + +#, fuzzy +#~ msgid "Other..." +#~ msgstr "অন্যান্য" + +#, fuzzy +#~ msgid "&Align On..." +#~ msgstr "&সব" + +#, fuzzy +#~ msgid "Change Dictionary..." +#~ msgstr "&সম্পাদক কনফিগার করো..." + +#~ msgid "" +#~ "The file %1 could not be loaded, as it was not possible to read from it.\n" +#~ "\n" +#~ "Check if you have read access to this file." +#~ msgstr "" +#~ "%1 ফাইলটি লোড করা যায়নি, কারণ এই ফাইল থেকে কিছু পড়া সম্ভব হয়নি।\n" +#~ "\n" +#~ "পরীক্ষা করে দেখুন আপনার এই ফাইলটি পড়ার অনুমতি আছে কি না।" + +#, fuzzy +#~ msgid "Insert Tab" +#~ msgstr "&ইনস্টল" + +#, fuzzy +#~ msgid "Namespaces" +#~ msgstr "স্পেস-এর সংখ্যা:" + +#, fuzzy +#~ msgid "Structs" +#~ msgstr "শর্টকাট" + +#, fuzzy +#~ msgid "Enumerations" +#~ msgstr "Sources" + +#, fuzzy +#~ msgctxt "Script command name" +#~ msgid "Toggle comment" +#~ msgstr "মন্তব্য" + +#~ msgid "Choo&se Font..." +#~ msgstr "&ফন্ট বেছে নিন..." + +#, fuzzy +#~ msgctxt "Script command category" +#~ msgid "Quick Coding" +#~ msgstr "&এনকোডিং:" + +#, fuzzy +#~ msgid "&Default theme for %1:" +#~ msgstr "ডিফল্ট স্কীমা জন্য:" + +#, fuzzy +#~ msgid "Automatic Selection" +#~ msgstr "স্বয়ংক্রিয়" + +#, fuzzy +#~ msgid "Meaning of current icon: Document was modified or deleted on disk" +#~ msgstr "" +#~ "অপর একটি প্রোগ্রাম %1 ফাইলটিকে ডিস্ক-এ পাল্টেছে (মুছে ফেলেছে)!\n" +#~ "\n" + +#, fuzzy +#~ msgid "Meaning of current icon: Document is in read-only mode" +#~ msgstr "" +#~ "অপর একটি প্রোগ্রাম %1 ফাইলটিকে ডিস্ক-এ পাল্টেছে (মুছে ফেলেছে)!\n" +#~ "\n" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Lua" +#~ msgctxt "Autoindent mode" +#~ msgid "Lua" +#~ msgstr "Lua" + +#, fuzzy +#~ msgid "Show &folding markers" +#~ msgstr "দেখাও" + +#, fuzzy +#~ msgid "Show line modification markers" +#~ msgstr "দেখাও" + +#, fuzzy +#~ msgid "" +#~ "Choose how the bookmarks should be ordered in the Bookmarks menu." +#~ msgstr "কি ভাবে টি উচিত নির্দেশকৃত ইঞ্চি টি বুকমার্ক মেনু." + +#, fuzzy +#~| msgid "By c&reation" +#~ msgid "B&y creation" +#~ msgstr "সৃষ্টির তারি&খ অনুযায়ী " + +#, fuzzy +#~| msgid "By &position" +#~ msgid "By posi&tion" +#~ msgstr "&অবস্থান অনুযায়ী " + +#, fuzzy +#~ msgid "" +#~ "

Backing up on save will cause Kate to copy the disk file to '<" +#~ "prefix><filename><suffix>' before saving changes.

The " +#~ "suffix defaults to ~ and prefix is empty by default." +#~ msgstr "" +#~ "

উপর ওপর সংরক্ষণ করা কারণ কেট প্রতি কপি টি ডিস্ক ফাইল প্রতি<>< " +#~ "সাফিক্স> আগে

সাফিক্স ডিফল্ট অবস্থায় প্রতি" + +#, fuzzy +#~ msgid "Backup on Save" +#~ msgstr "ওপর সংরক্ষণ করো" + +#, fuzzy +#~ msgid "Disable" +#~ msgstr "নিষ্ক্রিয়" + +#, fuzzy +#~ msgid "Enable static &word wrap" +#~ msgstr "স্থির শব্দ ঘুরিয়ে" + +#, fuzzy +#~ msgid "Show static word wra&p marker" +#~ msgstr "দেখাও" + +#, fuzzy +#~ msgid "Input Mode" +#~ msgstr "মোড:" + +#, fuzzy +#~ msgid "Enable automatic brackets" +#~ msgstr "প্রতি" + +#, fuzzy +#~ msgid "Chars to enclose selection:" +#~ msgstr "বর্তমান শব্দ, তারপর নির্বাচন" + +#, fuzzy +#~ msgid "&Align dynamically wrapped lines to indentation depth:" +#~ msgstr "চলন্ত অবস্থায় মোড়ানো প্রতি গভীরতা:" + +#, fuzzy +#~ msgid "" +#~ "If this option is checked, the text lines will be wrapped at the view " +#~ "border on the screen." +#~ msgstr "এই অপশন আছে টি লেখা মোড়ানো -তে টি দেখাও সীমানা ওপর টি পর্দা." + +#, fuzzy +#~| msgid "Highlighting for Ferite" +#~ msgid "Highlight marker size:" +#~ msgstr "Ferite-এর জন্য হাইলাইট" + +#, fuzzy +#~ msgid "Highlight tabulators" +#~ msgstr "হাইলাইটিং" + +#, fuzzy +#~ msgid "Scope" +#~ msgstr "থেমে যা&ও" + +#~ msgid "Name" +#~ msgstr "নাম" + +#, fuzzy +#~ msgid "Private" +#~ msgstr "ferite" + +#, fuzzy +#~ msgid "Static" +#~ msgstr "Sather" + +#, fuzzy +#~ msgid "Constant" +#~ msgstr "প্রসঙ্গ" + +#, fuzzy +#~ msgid "Namespace" +#~ msgstr "ওপর সংরক্ষণ করো" + +#, fuzzy +#~ msgid "Variable" +#~ msgstr "নিষ্ক্রিয়" + +#, fuzzy +#~ msgid "Enumeration" +#~ msgstr "Sources" + +#, fuzzy +#~ msgid "Template" +#~ msgstr "&বদলাও" + +#, fuzzy +#~ msgid "Override" +#~ msgstr "মুছে লেখো (&ম)" + +#, fuzzy +#~ msgid "Friend" +#~ msgstr "খোঁজ" + +#, fuzzy +#~ msgid "Local Scope" +#~ msgstr "স্থানীয় ফাই&ল" + +#, fuzzy +#~ msgid "Unknown Property" +#~ msgstr "বাক্সর বৈশিষ্ট্যাবলী" + +#, fuzzy +#~ msgid "Code Completion Configuration" +#~ msgstr "শর্টকাট কনফিগারেশন" + +#, fuzzy +#~ msgid "Description" +#~ msgstr "নির্বাচন" + +#, fuzzy +#~ msgid "Edit Entry..." +#~ msgstr "&সম্পাদনা..." + +#, fuzzy +#~ msgid "Add Entry..." +#~ msgstr "&সম্পাদনা..." + +#, fuzzy +#~ msgid "Further Notes" +#~ msgstr "ফুটার বৈশিষ্ট্যাবলী" + +#, fuzzy +#~ msgid "Edit Command" +#~ msgstr "সম্পাদনা কমাণ্ড" + +#, fuzzy +#~ msgid "Choose an icon." +#~ msgstr "&ফন্ট বেছে নিন..." + +#, fuzzy +#~ msgid "&Category:" +#~ msgstr "প্যাটার্ণ" + +#, fuzzy +#~ msgid "Sorting" +#~ msgstr "টেক্স&ট সেটিংস" + +#, fuzzy +#~ msgid "Case sensitive" +#~ msgstr "কেস্ সেনসিটিভ" + +#, fuzzy +#~ msgid "Filtering" +#~ msgstr "সম্পাদনা" + +#, fuzzy +#~ msgid "Access Grouping Properties" +#~ msgstr "ফুটার বৈশিষ্ট্যাবলী" + +#, fuzzy +#~ msgid "Item Grouping properties" +#~ msgstr "ফুটার বৈশিষ্ট্যাবলী" + +#, fuzzy +#~ msgid "Columns" +#~ msgstr "রং" + +#, fuzzy +#~ msgid "(c) 2000-2019 The Kate Authors" +#~ msgstr "(c) ২০০০-২০০৪ কেট লেখকবৃন্দ" + +#, fuzzy +#~ msgid "Replace current schema?" +#~ msgstr "শর্টকাট কনফিগারেশন" + +#, fuzzy +#~ msgid "Replace existing schema %1" +#~ msgstr "শর্টকাট কনফিগারেশন" + +#, fuzzy +#~| msgid "Name for New Schema" +#~ msgid "Import as new schema:" +#~ msgstr "নতুন স্কীমার নাম" + +#, fuzzy +#~| msgid "Highlighting for Scheme" +#~ msgid "Loading all highlightings for schema" +#~ msgstr "Scheme-এর জন্য হাইলাইট" + +#, fuzzy +#~| msgid "Font & Color Schemas" +#~ msgid "Kate color schema" +#~ msgstr "ফন্ট এবং রং স্কীমা" + +#, fuzzy +#~| msgid "File Format" +#~ msgid "Fileformat error" +#~ msgstr "ফাইল ফর্ম্যাট" + +#~ msgid "&New..." +#~ msgstr "&নতুন..." + +#, fuzzy +#~ msgid "Replace existing theme %1" +#~ msgstr "শর্টকাট কনফিগারেশন" + +#, fuzzy +#~ msgid "Name unspecified" +#~ msgstr "ওপর সংরক্ষণ করো" + +#~ msgid "Name for New Schema" +#~ msgstr "নতুন স্কীমার নাম" + +#~ msgid "Name:" +#~ msgstr "নাম:" + +#~ msgid "New Schema" +#~ msgstr "নতুন স্কীমা" + +#~ msgid "&Schema:" +#~ msgstr "স্কীমা (&স):" + +#~ msgid "Fonts & Colors" +#~ msgstr "ফন্ট এবং রং" + +#~ msgid "Font & Color Schemas" +#~ msgstr "ফন্ট এবং রং স্কীমা" + +#~ msgid "&Schema" +#~ msgstr "স্কীমা (&স)" + +#~ msgid "" +#~ "A file named \"%1\" already exists. Are you sure you want to overwrite it?" +#~ msgstr "" +#~ "\"%1\" নামক একটি ফাইল আগে থেকেই আছে। আপনি কি সেটি মুছে ফেলার ব্যাপারে " +#~ "নিশ্চিত?" + +#~ msgid "Overwrite File?" +#~ msgstr "ফাইল মুছে লিখব?" + +#, fuzzy +#~ msgid "Show static word wra&p marker (if applicable)" +#~ msgstr "দেখাও স্থির শব্দ ঘুরিয়ে যদি প্রযোজ্য" + +#, fuzzy +#~ msgid "" +#~ "Use this command to wrap all lines of the current document which are " +#~ "longer than the width of the current view, to fit into this view.

This is a static word wrap, meaning it is not updated when the " +#~ "view is resized." +#~ msgstr "" +#~ "এই কমান্ড প্রতি ঘুরিয়ে সব -র টি বর্তমান নথী কোন দীর্ঘতর থেকে টি প্রস্থ -র টি " +#~ "বর্তমান দেখাও প্রতি উপযোগী ভেতরে এই দেখাও

আছে একটি স্থির শব্দ ঘুরিয়ে " +#~ "অর্থ এটি আছে নয় আপডেটকৃত যখন টি দেখাও আছে পরিবর্তিত আকার." + +#, fuzzy +#~ msgid "Highlight trailing &spaces" +#~ msgstr "হাইলাইটিং নিয়মাবলী" + +#, fuzzy +#~ msgid "Spellcheck Selection..." +#~ msgstr "বানান পরীক্ষা" + +#~ msgid "&Go to line:" +#~ msgstr "&এই লাইনে যাও" + +#, fuzzy +#~ msgid "Download Highlighting Files..." +#~ msgstr "হাইলাইটিং নিয়মাবলী" + +#~ msgid "Installed" +#~ msgstr "ইনস্টল করা" + +#~ msgid "&Install" +#~ msgstr "&ইনস্টল" + +#, fuzzy +#~ msgctxt "Syntax highlighting" +#~ msgid "None" +#~ msgstr "কিছু না" + +#~ msgid "Normal Text" +#~ msgstr "স্বাভাবিক লেখা" + +#, fuzzy +#~ msgid "" +#~ "%1: Deprecated syntax. Attribute (%2) not addressed by symbolic " +#~ "name
" +#~ msgstr " বাক্যরীতি নয় উদ্দেশ্যে বলা দ্বারা প্রতীকী নাম
" + +#, fuzzy +#~ msgid "%1: Deprecated syntax. Context %2 has no symbolic name
" +#~ msgstr " বাক্যরীতি নয় উদ্দেশ্যে বলা দ্বারা প্রতীকী নাম
" + +#, fuzzy +#~ msgid "" +#~ "There were warning(s) and/or error(s) while parsing the syntax " +#~ "highlighting configuration." +#~ msgstr "" +#~ "ছিল সতর্কবার্তা s এবং অথবা ভুল s যতক্ষণ পার্স করা হচ্ছে টি বাক্যরীতি কনফিগারেশন." + +#, fuzzy +#~ msgid "Kate Syntax Highlighting Parser" +#~ msgstr "ট" + +#, fuzzy +#~ msgid "" +#~ "Since there has been an error parsing the highlighting description, this " +#~ "highlighting will be disabled" +#~ msgstr "আছে একটি ভুল পার্স করা হচ্ছে টি বর্ণনা এই নিষ্ক্রিয়" + +#~ msgid "Unable to open %1" +#~ msgstr "%1 খোলা যায়নি" + +#, fuzzy +#~ msgid "" +#~ "The error %4
has been detected in the file %1 at %2/%3" +#~ msgstr " ভুল
আছে সনাক্তকৃত ইঞ্চি টি ফাইল -তে
" + +#, fuzzy +#~| msgid "Continue from the end?" +#~ msgid "Continuing search from top" +#~ msgstr "শেষ থেকে আবার আরম্ভ করব?" + +#, fuzzy +#~| msgid "Continue from the end?" +#~ msgid "Continuing search from bottom" +#~ msgstr "শেষ থেকে আবার আরম্ভ করব?" + +#~ msgctxt "Language Section" +#~ msgid "Scripts" +#~ msgstr "Scripts" + +#~ msgctxt "Language Section" +#~ msgid "Sources" +#~ msgstr "Sources" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "ABC" +#~ msgstr "C" + +#~ msgctxt "Language Section" +#~ msgid "Other" +#~ msgstr "অন্যান্য" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "ActionScript 2.0" +#~ msgstr "Scripts" + +#~ msgctxt "Language" +#~ msgid "Ada" +#~ msgstr "Ada" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "AHDL" +#~ msgstr "VHDL" + +#, fuzzy +#~ msgctxt "Language Section" +#~ msgid "Hardware" +#~ msgstr "Games" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Alerts" +#~ msgstr "ferite" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Alerts_indent" +#~ msgstr "ferite" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "ANSI C89" +#~ msgstr "C" + +#, fuzzy +#~ msgctxt "Language Section" +#~ msgid "Scientific" +#~ msgstr "Scripts" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Apache Configuration" +#~ msgstr "Sources" + +#, fuzzy +#~ msgctxt "Language Section" +#~ msgid "Configuration" +#~ msgstr "Sources" + +#, fuzzy +#~ msgctxt "Language Section" +#~ msgid "Assembler" +#~ msgstr "Games" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "AVR Assembler" +#~ msgstr "GNU Assembler" + +#~ msgctxt "Language" +#~ msgid "Asm6502" +#~ msgstr "Asm6502" + +#~ msgctxt "Language Section" +#~ msgid "Markup" +#~ msgstr "Markup" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "ASP" +#~ msgstr "CSS" + +#~ msgctxt "Language" +#~ msgid "AWK" +#~ msgstr "AWK" + +#~ msgctxt "Language" +#~ msgid "Bash" +#~ msgstr "Bash" + +#~ msgctxt "Language" +#~ msgid "BibTeX" +#~ msgstr "BibTeX" + +#~ msgctxt "Language" +#~ msgid "C" +#~ msgstr "C" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Cg" +#~ msgstr "C" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "CGiS" +#~ msgstr "CSS" + +#~ msgctxt "Language" +#~ msgid "ChangeLog" +#~ msgstr "ChangeLog" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Cisco" +#~ msgstr "C" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Clipper" +#~ msgstr "C" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "CoffeeScript" +#~ msgstr "Scripts" + +#~ msgctxt "Language" +#~ msgid "ColdFusion" +#~ msgstr "ColdFusion" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Common Lisp" +#~ msgstr "C" + +#~ msgctxt "Language" +#~ msgid "Component-Pascal" +#~ msgstr "Component-Pascal" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Crack" +#~ msgstr "C" + +#~ msgctxt "Language" +#~ msgid "C#" +#~ msgstr "C#" + +#~ msgctxt "Language" +#~ msgid "CSS" +#~ msgstr "CSS" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "CubeScript" +#~ msgstr "Scripts" + +#~ msgctxt "Language" +#~ msgid "CUE Sheet" +#~ msgstr "CUE Sheet" + +#~ msgctxt "Language" +#~ msgid "D" +#~ msgstr "D" + +#~ msgctxt "Language" +#~ msgid "Debian Changelog" +#~ msgstr "Debian Changelog" + +#~ msgctxt "Language" +#~ msgid "Debian Control" +#~ msgstr "Debian Control" + +#~ msgctxt "Language" +#~ msgid ".desktop" +#~ msgstr ".desktop" + +#~ msgctxt "Language" +#~ msgid "Diff" +#~ msgstr "Diff" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Makefile" +#~ msgctxt "Language" +#~ msgid "Dockerfile" +#~ msgstr "Makefile" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Doxygen" +#~ msgstr "D" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "DoxygenLua" +#~ msgstr "D" + +#~ msgctxt "Language" +#~ msgid "E Language" +#~ msgstr "E Language" + +#~ msgctxt "Language" +#~ msgid "Eiffel" +#~ msgstr "Eiffel" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Email" +#~ msgstr "Eiffel" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Euphoria" +#~ msgstr "Lua" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Intel x86 (FASM)" +#~ msgstr "CSS" + +#~ msgctxt "Language" +#~ msgid "ferite" +#~ msgstr "ferite" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "4GL" +#~ msgstr "GDL" + +#, fuzzy +#~ msgctxt "Language Section" +#~ msgid "Database" +#~ msgstr "অন্যান্য" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "4GL-PER" +#~ msgstr "LPC" + +#~ msgctxt "Language" +#~ msgid "Fortran" +#~ msgstr "Fortran" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "fstab" +#~ msgstr "scilab" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "GAP" +#~ msgstr "CSS" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "GDB Backtrace" +#~ msgstr "ওপর সংরক্ষণ করো" + +#~ msgctxt "Language" +#~ msgid "GDL" +#~ msgstr "GDL" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "GNU Gettext" +#~ msgstr "CUE Sheet" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "GLSL" +#~ msgstr "SQL" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "D" +#~ msgctxt "Language Section" +#~ msgid "3D" +#~ msgstr "D" + +#~ msgctxt "Language" +#~ msgid "GNU Assembler" +#~ msgstr "GNU Assembler" + +#~ msgctxt "Language" +#~ msgid "Haskell" +#~ msgstr "Haskell" + +#~ msgctxt "Language" +#~ msgid "HTML" +#~ msgstr "HTML" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Quake Script" +#~ msgstr "PostScript" + +#~ msgctxt "Language" +#~ msgid "IDL" +#~ msgstr "IDL" + +#~ msgctxt "Language" +#~ msgid "ILERPG" +#~ msgstr "ILERPG" + +#~ msgctxt "Language" +#~ msgid "Inform" +#~ msgstr "Inform" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "INI Files" +#~ msgstr "ferite" + +#~ msgctxt "Language" +#~ msgid "Java" +#~ msgstr "Java" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Javadoc" +#~ msgstr "Java" + +#~ msgctxt "Language" +#~ msgid "JavaScript" +#~ msgstr "JavaScript" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "JSP" +#~ msgstr "CSS" + +#~ msgctxt "Language" +#~ msgid "KBasic" +#~ msgstr "KBasic" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Kconfig" +#~ msgstr "&সম্পাদক কনফিগার করো..." + +#~ msgctxt "Language" +#~ msgid "LaTeX" +#~ msgstr "LaTeX" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "GNU Linker Script" +#~ msgstr "PostScript" + +#~ msgctxt "Language" +#~ msgid "LDIF" +#~ msgstr "LDIF" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Lex/Flex" +#~ msgstr "LDIF" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "LilyPond" +#~ msgstr "LPC" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Literate Haskell" +#~ msgctxt "Language" +#~ msgid "Literate Curry" +#~ msgstr "Literate Haskell" + +#~ msgctxt "Language" +#~ msgid "Literate Haskell" +#~ msgstr "Literate Haskell" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Logtalk" +#~ msgstr "Lua" + +#~ msgctxt "Language" +#~ msgid "LPC" +#~ msgstr "LPC" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "LSL" +#~ msgstr "SQL" + +#~ msgctxt "Language" +#~ msgid "Lua" +#~ msgstr "Lua" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "M3U" +#~ msgstr "SML" + +#~ msgctxt "Language" +#~ msgid "MAB-DB" +#~ msgstr "MAB-DB" + +#~ msgctxt "Language" +#~ msgid "Makefile" +#~ msgstr "Makefile" + +#~ msgctxt "Language" +#~ msgid "Mason" +#~ msgstr "Mason" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Matlab" +#~ msgstr "Matlab M-File" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "MediaWiki" +#~ msgstr "C" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "SML" +#~ msgctxt "Language" +#~ msgid "MEL" +#~ msgstr "SML" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "MIPS Assembler" +#~ msgstr "GNU Assembler" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Modelica" +#~ msgstr "Modula-2" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Modelines" +#~ msgstr "Modula-2" + +#~ msgctxt "Language" +#~ msgid "Modula-2" +#~ msgstr "Modula-2" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "MonoBasic" +#~ msgstr "KBasic" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Music Publisher" +#~ msgstr "Perl" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Intel x86 (NASM)" +#~ msgstr "CSS" + +#~ msgctxt "Language" +#~ msgid "Objective-C" +#~ msgstr "Objective-C" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Objective-C++" +#~ msgstr "Objective-C" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Objective Caml" +#~ msgstr "Objective-C" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Objective Caml Ocamllex" +#~ msgstr "Objective-C" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Objective Caml Ocamlyacc" +#~ msgstr "Objective-C" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Octave" +#~ msgstr "Objective-C" + +#~ msgctxt "Language" +#~ msgid "Pascal" +#~ msgstr "Pascal" + +#~ msgctxt "Language" +#~ msgid "Perl" +#~ msgstr "Perl" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "PHP/PHP" +#~ msgstr "PHP" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "PicAsm" +#~ msgstr "Pike" + +#~ msgctxt "Language" +#~ msgid "Pike" +#~ msgstr "Pike" + +#~ msgctxt "Language" +#~ msgid "PostScript" +#~ msgstr "PostScript" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "POV-Ray" +#~ msgstr "Ruby" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "progress" +#~ msgstr "Progress 4GL" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "PureBasic" +#~ msgstr "KBasic" + +#~ msgctxt "Language" +#~ msgid "Python" +#~ msgstr "Python" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "QMake" +#~ msgstr "C" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "SML" +#~ msgctxt "Language" +#~ msgid "QML" +#~ msgstr "SML" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "R Script" +#~ msgstr "PostScript" + +#, fuzzy +#~| msgid "&Replace" +#~ msgctxt "Language" +#~ msgid "Replicode" +#~ msgstr "&বদলাও" + +#~ msgctxt "Language" +#~ msgid "REXX" +#~ msgstr "REXX" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Ruby/Rails/RHTML" +#~ msgstr "HTML" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "RenderMan RIB" +#~ msgstr "Mason" + +#~ msgctxt "Language" +#~ msgid "RPM Spec" +#~ msgstr "RPM Spec" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "RSI IDL" +#~ msgstr "RSI_IDL" + +#, fuzzy +#~| msgid "File Format" +#~ msgctxt "Language" +#~ msgid "Rich Text Format" +#~ msgstr "ফাইল ফর্ম্যাট" + +#~ msgctxt "Language" +#~ msgid "Ruby" +#~ msgstr "Ruby" + +#~ msgctxt "Language" +#~ msgid "Sather" +#~ msgstr "Sather" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Scala" +#~ msgstr "Sather" + +#~ msgctxt "Language" +#~ msgid "scilab" +#~ msgstr "scilab" + +#~ msgctxt "Language" +#~ msgid "SGML" +#~ msgstr "SGML" + +#~ msgctxt "Language" +#~ msgid "Sieve" +#~ msgstr "Sieve" + +#~ msgctxt "Language" +#~ msgid "SML" +#~ msgstr "SML" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Spice" +#~ msgstr "Sieve" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "SQL (MySQL)" +#~ msgstr "SQL-MySQL" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "SQL (PostgreSQL)" +#~ msgstr "SQL-PostgreSQL" + +#~ msgctxt "Language" +#~ msgid "SQL" +#~ msgstr "SQL" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "STL" +#~ msgstr "SQL" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Verilog" +#~ msgctxt "Language" +#~ msgid "SystemVerilog" +#~ msgstr "Verilog" + +#~ msgctxt "Language" +#~ msgid "Tcl/Tk" +#~ msgstr "Tcl/Tk" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Textile" +#~ msgstr "টেক্সট ক্ষেত্রের পটভূমি" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "TI Basic" +#~ msgstr "KBasic" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "txt2tags" +#~ msgstr "Bash" + +#~ msgctxt "Language" +#~ msgid "UnrealScript" +#~ msgstr "UnrealScript" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Varnish Configuration Language" +#~ msgstr "Sources" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Varnish 4 Configuration Language" +#~ msgstr "Sources" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Varnish Test Case language" +#~ msgstr "Sources" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Varnish 4 Test Case language" +#~ msgstr "Sources" + +#~ msgctxt "Language" +#~ msgid "Velocity" +#~ msgstr "Velocity" + +#~ msgctxt "Language" +#~ msgid "Verilog" +#~ msgstr "Verilog" + +#~ msgctxt "Language" +#~ msgid "VHDL" +#~ msgstr "VHDL" + +#~ msgctxt "Language" +#~ msgid "VRML" +#~ msgstr "VRML" + +#~ msgctxt "Language" +#~ msgid "WINE Config" +#~ msgstr "WINE Config" + +#~ msgctxt "Language" +#~ msgid "xHarbour" +#~ msgstr "xHarbour" + +#~ msgctxt "Language" +#~ msgid "XML" +#~ msgstr "XML" + +#~ msgctxt "Language" +#~ msgid "XML (Debug)" +#~ msgstr "XML (Debug)" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "PostScript" +#~ msgctxt "Language" +#~ msgid "Xonotic Script" +#~ msgstr "PostScript" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "x.org Configuration" +#~ msgstr "Sources" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "xslt" +#~ msgstr "D" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "XUL" +#~ msgstr "XML" + +#~ msgctxt "Language" +#~ msgid "yacas" +#~ msgstr "yacas" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Yacc/Bison" +#~ msgstr "Mason" + +#, fuzzy +#~ msgid "Close the document." +#~ msgstr "সংরক্ষণ করো টি বর্তমান নথী" + +#, fuzzy +#~ msgid "KDE Default" +#~ msgstr "প্রদর্শন ডিফল্ট" + +#, fuzzy +#~ msgid "&Next" +#~ msgstr "প্রসঙ্গ" + +#, fuzzy +#~ msgid "&Previous" +#~ msgstr "পূর্ববর্তী বুকমার্ক" + +#, fuzzy +#~ msgid "Case-sensitive searching" +#~ msgstr "কেস্ সেনসিটিভ" + +#, fuzzy +#~ msgid "Mo&de:" +#~ msgstr "বোল্ড (&ব)" + +#, fuzzy +#~ msgctxt "spinbox special value for 1" +#~ msgid "1 character" +#~ msgstr "মধ্যে ঢোকাও ট্যাব বর্ণ, অক্ষর" + +#, fuzzy +#~ msgctxt "suffix for spinbox >1 wrap words at (value is at 20 or larger)" +#~ msgid " characters" +#~ msgstr "মধ্যে ঢোকাও ট্যাব বর্ণ, অক্ষর" + +#, fuzzy +#~ msgid "Indentation width" +#~ msgstr "সঙ্গে" + +#, fuzzy +#~| msgid "Error: %1" +#~ msgid "Error calling action(%1)" +#~ msgstr "সমস্যা: %1" + +#~ msgid "Errors!" +#~ msgstr "সমস্যা!" + +#~ msgid "Error: %1" +#~ msgstr "সমস্যা: %1" + +#, fuzzy +#~| msgid "Selected text:" +#~ msgctxt "Language" +#~ msgid "Restructured Text" +#~ msgstr "নির্বাচিত লেখা:" + +#, fuzzy +#~| msgid "Unable to open %1" +#~ msgid "Unable to find '%1'" +#~ msgstr "%1 খোলা যায়নি" + +#, fuzzy +#~ msgid "A&uto Word Completion HI" +#~ msgstr "নির্বাচন" + +#, fuzzy +#~ msgid "Matching Bracket" +#~ msgstr "সরাও প্রতি" + +#~ msgctxt "Language" +#~ msgid "C++" +#~ msgstr "C++" + +#, fuzzy +#~ msgid "Text Area Background" +#~ msgstr "টেক্সট ক্ষেত্রের পটভূমি" + +#~ msgid "Normal text:" +#~ msgstr "স্বাভাবিক লেখা:" + +#, fuzzy +#~ msgid "" +#~ "

Sets the background color of the selection.

To set the text " +#~ "color for selected text, use the \"Configure Highlighting\" dialog." +#~ "

" +#~ msgstr "" +#~ "

টি পটভূমি, প্রেক্ষাপট, পশ্চাদপট রং -র টি নির্বাচন

সেট,সমষ্টি,মান " +#~ "নির্ধারণ টি লেখা রং জন্য নির্বাচিত লেখা ব্যবহার টি কনফিগার ডায়ালগ

" + +#, fuzzy +#~ msgid "" +#~ "

Sets the background color of the selected marker type.

Note: The marker color is displayed lightly because of transparency.

" +#~ msgstr "" +#~ "

টি পটভূমি, প্রেক্ষাপট, পশ্চাদপট রং -র টি নির্বাচন

সেট,সমষ্টি,মান " +#~ "নির্ধারণ টি লেখা রং জন্য নির্বাচিত লেখা ব্যবহার টি কনফিগার ডায়ালগ

" + +#~ msgid "Left border background:" +#~ msgstr "বাঁদিকের সীমানার পটভূমি:" + +#, fuzzy +#~ msgid "Line numbers:" +#~ msgstr "লাই&ন নম্বর দেখাও" + +#, fuzzy +#~ msgid "Word wrap markers:" +#~ msgstr "ঘুরিয়ে চিহ্ন:" + +#, fuzzy +#~ msgid "Tab and space markers:" +#~ msgstr "চিহ্ন:" + +#, fuzzy +#~ msgid "Na&mespace:" +#~ msgstr "ওপর সংরক্ষণ করো" + +#, fuzzy +#~ msgid "&Authors:" +#~ msgstr "কে-রাইট লেখক" + +#, fuzzy +#~| msgid "&Filetype:" +#~ msgid "&File types:" +#~ msgstr "ফাই&ল টাইপ:" + +#, fuzzy +#~| msgid "Shortcuts" +#~ msgid "Shortcut:" +#~ msgstr "শর্টকাট" + +#, fuzzy +#~ msgid "S&cripts" +#~ msgstr "Scripts" + +#, fuzzy +#~ msgid "" +#~ msgstr "নির্বাচন" + +#, fuzzy +#~ msgid "Output file '%1' could not be opened for writing" +#~ msgstr "%1 ফাইলটি পুরোপুরি লোড করা যায়নি, কারণ ডিস্ক-এ যথেষ্ট অস্থায়ী জায়গা নেই।" + +#, fuzzy +#~ msgid "Cannot open snippet repository %1." +#~ msgstr "নির্বাচন" + +#, fuzzy +#~| msgid "Filetypes" +#~ msgid "Applies to all filetypes" +#~ msgstr "ফাইল টাইপ" + +#, fuzzy +#~ msgid "Add Repository" +#~ msgstr "নির্বাচন" + +#, fuzzy +#~ msgid "Remove Snippet" +#~ msgstr "নির্বাচিত" + +#, fuzzy +#~ msgid "Filter..." +#~ msgstr "সম্পাদনা" + +#, fuzzy +#~ msgid "Extensions Manager" +#~ msgstr "প্লাগ-ইন ম্যানেজার" + +#, fuzzy +#~ msgid "Create Snippet" +#~ msgstr "নির্বাচিত" + +#, fuzzy +#~ msgid "OVR" +#~ msgstr " OVR " + +#, fuzzy +#~ msgid "INS" +#~ msgstr " INS " + +#, fuzzy +#~| msgid "Move Word Left" +#~ msgid "Move Left" +#~ msgstr "শব্দ বাঁদিকে সরাও" + +#, fuzzy +#~| msgid "Move Word Right" +#~ msgid "Move Right" +#~ msgstr "শব্দ ডানদিকে সরাও" + +#, fuzzy +#~ msgid "Move Up" +#~ msgstr "উপর" + +#, fuzzy +#~ msgid "Execute" +#~ msgstr "নির্বাচন" + +#, fuzzy +#~ msgid "Show/hide the JavaScript Console on the bottom of the view." +#~ msgstr "দেখাও লুকোও টি কমান্ড লাইন ওপর টি তলা -র টি দেখাও." + +#, fuzzy +#~| msgid "Always On" +#~ msgid "Always on" +#~ msgstr "সবসময় চালু" + +#, fuzzy +#~| msgid "Print the current document." +#~ msgid "Modify the current snippet" +#~ msgstr "বর্তমান ডকুমেন্টটি ছাপানো হবে।" + +#, fuzzy +#~ msgid "Create a new repository file" +#~ msgstr "সংরক্ষণ করো টি বর্তমান নথী" + +#, fuzzy +#~ msgid "Kate Snippets" +#~ msgstr "নির্বাচিত" + +#, fuzzy +#~ msgid "New Snippet" +#~ msgstr "নির্বাচিত" + +#, fuzzy +#~ msgid "No file specified" +#~ msgstr "ওপর সংরক্ষণ করো" + +#, fuzzy +#~ msgid "File could not be copied to repository" +#~ msgstr "%1 ফাইলটি পুরোপুরি লোড করা যায়নি, কারণ ডিস্ক-এ যথেষ্ট অস্থায়ী জায়গা নেই।" + +#, fuzzy +#~ msgid "Snippet Repository:" +#~ msgstr "নির্বাচন" + +#, fuzzy +#~| msgid "Insert File..." +#~ msgid "New Snippet File..." +#~ msgstr "ফাইল মধ্যে ঢোকাও..." + +#, fuzzy +#~ msgid "Get New Snippets..." +#~ msgstr "নির্বাচিত" + +#, fuzzy +#~ msgid "Kate Part Snippets" +#~ msgstr "নির্বাচিত" + +#, fuzzy +#~ msgid "&Keep highlighting" +#~ msgstr "হাইলাইটিং" + +#, fuzzy +#~ msgid "R/O" +#~ msgstr " R/O " + +#, fuzzy +#~ msgid "Show &folding markers (if available)" +#~ msgstr "দেখাও ভাঁজ করার সুবিধাযুক্ত চিহ্ন যদি পাওয়া যাচ্ছে" + +#~ msgid "Plugins" +#~ msgstr "প্লাগ-ইন" + +#, fuzzy +#~| msgid "Move Word Left" +#~ msgid "Programmer's Move Word Left" +#~ msgstr "শব্দ বাঁদিকে সরাও" + +#, fuzzy +#~ msgid "Programmer's Select Word Left" +#~ msgstr "বাঁদিক" + +#, fuzzy +#~| msgid "Move Word Right" +#~ msgid "Programmer's Move Word Right" +#~ msgstr "শব্দ ডানদিকে সরাও" + +#, fuzzy +#~ msgid "Programmer's Select Word Right" +#~ msgstr "ডানদিক" + +#~ msgctxt "Language" +#~ msgid "Prolog" +#~ msgstr "Prolog" + +#, fuzzy +#~ msgid "" +#~ "Selections will be overwritten by typed text and will be lost on cursor " +#~ "movement." +#~ msgstr " দ্বারা লেখা এবং হারানো ওপর কার্সার চলাচল." + +#~ msgid "&Normal" +#~ msgstr "স্বাভাবি&ক" + +#, fuzzy +#~ msgid "Selections will stay even after cursor movement and typing." +#~ msgstr " অবস্থান করা জোড় পরে কার্সার চলাচল এবং টাইপ করছে." + +#, fuzzy +#~ msgid "" +#~ "When the user types a left bracket ([,(, or {) KateView automatically " +#~ "enters the right bracket (}, ), or ]) to the right of the cursor." +#~ msgstr "" +#~ "টি ব্যবহারকারী ধরন একটি বাঁদিক বন্ধনী অথবা স্বয়ংক্রীয়ভাবে প্রবেশ করা টি ডানদিক " +#~ "বন্ধনী অথবা প্রতি টি ডানদিক -র টি কার্সার." + +#, fuzzy +#~ msgid "" +#~ "

When on, moving the insertion cursor using the Left and " +#~ "Right keys will go on to previous/next line at beginning/end of " +#~ "the line, similar to most editors.

When off, the insertion cursor " +#~ "cannot be moved left of the line start, but it can be moved off the line " +#~ "end, which can be very handy for programmers.

" +#~ msgstr "" +#~ "ওপর চলন্ত টি ঢোকানো কার্সার ব্যবহার করে টি বাঁদিক এবং ডানদিক " +#~ "যাও ওপর প্রতি পরবর্তী লাইন -তে শুরু শেষ -র টি লাইন অনুরূপ প্রতি অধিকাংশ " +#~ "সম্পাদক

বন্ধ টি ঢোকানো কার্সার যাবে না স্থানান্তরিত বাঁদিক -র টি লাইন শুরু " +#~ "কিন্তু এটি পারে স্থানান্তরিত বন্ধ টি লাইন শেষ কোন পারে খুব কাজের জন্য " +#~ "প্রোগ্রামারবৃন্দ." + +#, fuzzy +#~ msgid "Wrap c&ursor" +#~ msgstr "কার্সার" + +#, fuzzy +#~ msgid "" +#~ "If this is enabled, the editor will remove any trailing whitespace on " +#~ "lines that are changed through editing." +#~ msgstr "" +#~ "এই অপশন আছে প্রত্যেক নতুন দেখাও দেখাও লাইন সংখ্যা ওপর টি বাঁদিক হাত পাশ." + +#, fuzzy +#~ msgid "Remove &trailing spaces while editing" +#~ msgstr "সরিয়ে ফেলো অনুসরণ করা" + +#, fuzzy +#~ msgid "" +#~ "The editor will automatically eliminate extra spaces at the ends of lines " +#~ "of text while saving the file. This change is only visible after a save " +#~ "if you reload the file." +#~ msgstr " স্বয়ংক্রীয়ভাবে ধ্বংস করা অতিরিক্ত -তে টি শেষ -র -র লেখা." + +#, fuzzy +#~ msgctxt "short translation please" +#~ msgid "Remove trailing spaces when editing a line." +#~ msgstr "সরিয়ে ফেলো অনুসরণ করা" + +#, fuzzy +#~ msgid "Overwrite" +#~ msgstr "মুছে লেখো (&ম)" + +#, fuzzy +#~| msgid "&Stop" +#~ msgid "Stop" +#~ msgstr "থেমে যা&ও" + +#, fuzzy +#~| msgid "Colors" +#~ msgctxt "@title:column a color button" +#~ msgid "Color" +#~ msgstr "রং" + +#, fuzzy +#~| msgid "Normal &Color..." +#~ msgid "Export HlColors..." +#~ msgstr "স্বাভাবি&ক রং..." + +#, fuzzy +#~| msgid "Normal &Color..." +#~ msgid "Import HlColors..." +#~ msgstr "স্বাভাবি&ক রং..." + +#, fuzzy +#~ msgid "Template Background" +#~ msgstr "টেক্সট ক্ষেত্রের পটভূমি" + +#, fuzzy +#~| msgid "&Format:" +#~ msgid "Form" +#~ msgstr "&ফর্ম্যাট:" + +#, fuzzy +#~ msgid "Create another view containing the current document" +#~ msgstr "টি সমগ্র লেখা -র টি বর্তমান নথী." + +#, fuzzy +#~ msgid "&About Editor Component" +#~ msgstr "কম্পোনেন্ট" + +#~ msgid " INS " +#~ msgstr " INS " + +#, fuzzy +#~ msgid " LINE " +#~ msgstr " INS " + +#, fuzzy +#~ msgid "Read the contents of stdin" +#~ msgstr "বর্তমান নথীটি ডিস্ক থেকে নতুন করে পড়া হবে" + +#, fuzzy +#~ msgid "KWrite" +#~ msgstr "ferite" + +#, fuzzy +#~ msgid "KWrite - Text Editor" +#~ msgstr "কে-রাইট লেখক" + +#, fuzzy +#~ msgid "Choose Editor Component" +#~ msgstr "কম্পোনেন্ট" + +#, fuzzy +#~ msgid "TestRegression" +#~ msgstr "রেগুলার এক্সপ্রেশন" + +#~ msgid "Error: " +#~ msgstr "সমস্যা:" + +#, fuzzy +#~ msgid "&Insert spaces instead of tabulators" +#~ msgstr "পরিবর্তে -র ট্যাব প্রতি ইনডেন্ট" + +#, fuzzy +#~ msgctxt "Encodings menu" +#~ msgid "Disabled" +#~ msgstr "নিষ্ক্রিয়" + +#, fuzzy +#~ msgid "&Options" +#~ msgstr "সন্ধান অপশন" + +#, fuzzy +#~ msgid "From &cursor" +#~ msgstr "কার্সার" + +#, fuzzy +#~ msgid "Hi&ghlight all" +#~ msgstr "হাইলাইটিং" + +#, fuzzy +#~ msgid "(c) 2000-2008 The Kate Authors" +#~ msgstr "(c) ২০০০-২০০৪ কেট লেখকবৃন্দ" + +#, fuzzy +#~ msgid "Unable to read file: '%1'" +#~ msgstr "%1 খোলা যায়নি" + +#~ msgid "Success" +#~ msgstr "সফল" + +#, fuzzy +#~ msgid "Move Character Right" +#~ msgstr "ডানদিক" + +#, fuzzy +#~ msgid "Move Character Left" +#~ msgstr "বাঁদিক" + +#~ msgid "&Overwrite" +#~ msgstr "মুছে লেখো (&ম)" + +#, fuzzy +#~ msgid "Case Sensitive" +#~ msgstr "কেস্ সেনসিটিভ" + +#, fuzzy +#~ msgid "(c) 2000-2007 The Kate Authors" +#~ msgstr "(c) ২০০০-২০০৪ কেট লেখকবৃন্দ" + +#, fuzzy +#~ msgid "Line must be at least 1" +#~ msgstr "প্রস্থ অন্তত ১ হতে হবে" + +#, fuzzy +#~ msgid "Highlight all matches" +#~ msgstr "হাইলাইটিং" + +#, fuzzy +#~ msgid "Selection only " +#~ msgstr "শুধু নির্বাচন" + +#~ msgid "Shortcuts Configuration" +#~ msgstr "শর্টকাট কনফিগারেশন" + +#, fuzzy +#~ msgid "The spelling program seems to have crashed." +#~ msgstr "মনে হয় আই-স্পেল ক্র্যাশ করেছে।" + +#, fuzzy +#~ msgid "Could not access view." +#~ msgstr "নয় ব্যবহারের সুযোগ দেখাও" + +#, fuzzy +#~ msgid "Could not access lookup object." +#~ msgstr "নয় ব্যবহারের সুযোগ দেখাও" + +#, fuzzy +#~ msgid "Setup" +#~ msgstr "থেমে যা&ও" + +#, fuzzy +#~ msgid "&Maximum undo steps:" +#~ msgstr "বাতিল করা ধাপ:" + +#, fuzzy +#~ msgid " Static" +#~ msgstr "Sather" + +#~ msgid "Print syntax &guide" +#~ msgstr "বাক্যরীতি &সহায়িকা ছাপাও" + +#~ msgid "Print &selected text only" +#~ msgstr "শুধু নির্বাচি&ত লেখা ছাপাও " + +#~ msgid "" +#~ "

This option is only available if some text is selected in the document." +#~ "

If available and enabled, only the selected text is printed.

" +#~ msgstr "" +#~ "

এই অপশনটি শুধু তখনই পাওয়া যাবে যদি ডকুমেন্টে কিছু লেখা নির্বাচিত হয়ে থাকে।

সে ক্ষেত্রে অপশনটি সক্রিয় করা থাকলে শুধুমাত্র নির্বাচিত লেখাটুকু ছাপানো হবে।" +#~ "

" + +#~ msgid "Print %1" +#~ msgstr "%1 ছাপাও" + +#~ msgid "Nowhere" +#~ msgstr "কোথাও না" + +#~ msgid "Selection, then Current Word" +#~ msgstr "নির্বাচন, তারপর বর্তমান শব্দ" + +#~ msgid "Current Word Only" +#~ msgstr "শুধু বর্তমান শব্দ" + +#~ msgid "Current Word, then Selection" +#~ msgstr "বর্তমান শব্দ, তারপর নির্বাচন" + +#, fuzzy +#~ msgid "Smart search t&ext from:" +#~ msgstr "সন্ধান,খোঁজা লেখা থেকে:" + +#, fuzzy +#~ msgid "" +#~ "

This determines where a view will get the search text from \n" +#~ "(this will be automatically entered into the Find Text dialog): \n" +#~ "

\n" +#~ "

\n" +#~ "

    \n" +#~ "
  • Nowhere: Don't guess the search text.\n" +#~ "
  • \n" +#~ "
  • Selection Only: Use the current text selection, \n" +#~ "if available.\n" +#~ "
  • \n" +#~ "
  • Selection, then Current Word: Use the current \n" +#~ "selection if available, otherwise use the current word.\n" +#~ "
  • \n" +#~ "
  • Current Word Only: Use the word that the cursor \n" +#~ "is currently resting on, if available.\n" +#~ "
  • \n" +#~ "
  • Current Word, then Selection: Use the current \n" +#~ "word if available, otherwise use the current selection.\n" +#~ "
  • \n" +#~ "
\n" +#~ "

\n" +#~ "

\n" +#~ "Note that, in all the above modes, if a search string has \n" +#~ "not been or cannot be determined, then the Find Text Dialog \n" +#~ "will fall back to the last search text.\n" +#~ "

" +#~ msgstr "" +#~ "নির্ধারণ করে কোথায় পাওয়া টি সন্ধান,খোঁজা লেখা থেকে এই স্বয়ংক্রীয়ভাবে " +#~ "ঢোকানো ভেতরে টি খোঁজো ডায়ালগ
  • আন্দাজ টি সন্ধান,খোঁজা লেখা
  • নির্বাচন টি বর্তমান লেখা নির্বাচন যদি পাওয়া যাচ্ছে
  • " +#~ "নির্বাচন তারপর টি বর্তমান নির্বাচন যদি পাওয়া যাচ্ছে অন্যথা ব্যবহার টি " +#~ "বর্তমান শব্দ
  • টি শব্দ ঐ টি কার্সার আছে বর্তমানে ওপর যদি পাওয়া " +#~ "যাচ্ছে
  • তারপর নির্বাচন টি বর্তমান শব্দ যদি পাওয়া যাচ্ছে অন্যথা " +#~ "ব্যবহার টি বর্তমান নির্বাচন
ঐ ইঞ্চি সব টি উপরে মোড যদি একটি সন্ধান," +#~ "খোঁজা পঙ্‌ক্তি আছে নয় অথবা যাবে না তারপর টি খোঁজো ডায়ালগ পড়ে যাওয়া পিছন প্রতি " +#~ "টি শেষ সন্ধান,খোঁজা লেখা." + +#, fuzzy +#~ msgid "NORM" +#~ msgstr " NORM " + +#, fuzzy +#~ msgid "Automatically &show completion list" +#~ msgstr "স্বয়ংক্রিয়" + +#, fuzzy +#~ msgid "Choose File to Insert" +#~ msgstr "ফাইল (_ফ) প্রতি মধ্যে ঢোকাও" + +#~ msgid "" +#~ "Failed to load file:\n" +#~ "\n" +#~ msgstr "" +#~ "ফাইল লোড করা যায়নি:\n" +#~ "\n" + +#, fuzzy +#~ msgid "Insert File Error" +#~ msgstr "মধ্যে ঢোকাও ফাইল (_ফ) সমস্যা" + +#, fuzzy +#~ msgid "" +#~ "

The file %1 does not exist or is not readable, " +#~ "aborting." +#~ msgstr "

ফাইল করে নয় আছে অথবা আছে নয় পাঠ্য বন্ধ করছে." + +#, fuzzy +#~ msgid "

Unable to open file %1, aborting." +#~ msgstr "

প্রতি খোলা,পড়া, খোলা হোক ফাইল বন্ধ করছে." + +#, fuzzy +#~ msgid "

File %1 had no contents." +#~ msgstr "

ফাইল (_ফ) না বস্তু." + +#, fuzzy +#~ msgid "Data Tools" +#~ msgstr "যন্ত্রপাতি (_য)" + +#~ msgid "(not available)" +#~ msgstr "(পাওয়া যাচ্ছে না)" + +#, fuzzy +#~ msgid "" +#~ "Data tools are only available when text is selected, or when the right " +#~ "mouse button is clicked over a word. If no data tools are offered even " +#~ "when text is selected, you need to install them. Some data tools are part " +#~ "of the KOffice package." +#~ msgstr "" +#~ "সরঞ্জাম শুধু পাওয়া যাচ্ছে যখন লেখা আছে নির্বাচিত অথবা যখন টি ডানদিক মাউস বাটন " +#~ "আছে শেষ একটি শব্দ না তথ্য সরঞ্জাম প্রস্তাব দেওয়া জোড় যখন লেখা আছে নির্বাচিত " +#~ "আপনি প্রয়োজন প্রতি ইনস্টল ওদের তথ্য সরঞ্জাম অংশ -র টি প্যাকেজ." + +#, fuzzy +#~ msgid "AutoBookmarks" +#~ msgstr "বুকমার্ক" + +#, fuzzy +#~ msgid "Configure AutoBookmarks" +#~ msgstr "বুকমার্ক ফাঁকা করো " + +#, fuzzy +#~ msgid "&File mask:" +#~ msgstr "ফাইল ফর্ম্যাট" + +#, fuzzy +#~ msgid "" +#~ "Select the MimeTypes for this pattern.\n" +#~ "Please note that this will automatically edit the associated file " +#~ "extensions as well." +#~ msgstr "" +#~ "টি আপনি চাই জন্য এই ফাইল ধরন নোট ঐ এই স্বয়ংক্রীয়ভাবে সম্পাদন, বদলানো, এডিট " +#~ "টি সংশ্লিষ্ট ফাইল বর্ধিতাংশ ভাল." + +#, fuzzy +#~ msgid "&Patterns" +#~ msgstr "প্যাটার্ণ" + +#, fuzzy +#~ msgid "Pattern" +#~ msgstr "প্যাটার্ণ" + +#, fuzzy +#~ msgid "Mime Types" +#~ msgstr "মাইম টাইপ" + +#, fuzzy +#~ msgid "Press this button to delete the currently selected entity." +#~ msgstr "এই কমান্ড প্রতি কপি টি বর্তমানে নির্বাচিত লেখা প্রতি টি সিস্টেম ক্লীপবোর্ড." + +#, fuzzy +#~ msgid "Press this button to edit the currently selected entity." +#~ msgstr "এই কমান্ড প্রতি কপি টি বর্তমানে নির্বাচিত লেখা প্রতি টি সিস্টেম ক্লীপবোর্ড." + +#, fuzzy +#~ msgid "Configure..." +#~ msgstr "&সম্পাদক কনফিগার করো..." + +#, fuzzy +#~ msgid "Cursor & Selection Behavior" +#~ msgstr "নির্বাচন সংক্রান্ত আচরণবিধি" + +#, fuzzy +#~ msgid "Script Manager" +#~ msgstr "প্লাগ-ইন ম্যানেজার" + +#, fuzzy +#~ msgid "" +#~ "Select the MimeTypes you want highlighted using the '%1' syntax highlight " +#~ "rules.\n" +#~ "Please note that this will automatically edit the associated file " +#~ "extensions as well." +#~ msgstr "" +#~ "টি আপনি চাই চিহ্নিত ব্যবহার করে টি বাক্যরীতি নিয়ম নোট ঐ এই স্বয়ংক্রীয়ভাবে " +#~ "সম্পাদন, বদলানো, এডিট টি সংশ্লিষ্ট ফাইল বর্ধিতাংশ ভাল." + +#, fuzzy +#~ msgid "Hide &Icon Border" +#~ msgstr "&আইকনের সীমা দেখাও " + +#, fuzzy +#~ msgid "Hide &Line Numbers" +#~ msgstr "লাইন &নম্বর দেখাও" + +#, fuzzy +#~ msgid "Search string '%1' not found." +#~ msgstr "সন্ধান করা শব্দসমষ্টি '%1' পাওয়া যায়নি!" + +#~ msgid "Beginning of document reached." +#~ msgstr "নথীর শুরুতে পৌঁছে গেছি।" + +#~ msgid "End of selection reached." +#~ msgstr "নির্বাচিত অংশের শেষে পৌঁছে গেছি।" + +#~ msgid "Beginning of selection reached." +#~ msgstr "নির্বাচিত অংশের শুরুতে পৌঁছে গেছি।" + +#~ msgid "Continue from the beginning?" +#~ msgstr "শুরু থেকে আবার আরম্ভ করব?" + +#, fuzzy +#~ msgid "Re&place && Close" +#~ msgstr "বদলাও এবং বন্ধ করো" + +#~ msgid "" +#~ "This file could not be loaded correctly due to lack of temporary disk " +#~ "space. Saving it could cause data loss.\n" +#~ "\n" +#~ "Do you really want to save it?" +#~ msgstr "" +#~ "ডিস্ক-এ স্থানাভাবের দরুন এই ফাইলটি পুরোপুরি লোড করা যায়নি। এটি সংরক্ষণ করা হলে " +#~ "এর কিছু অংশ হারিয়ে যাবার সম্ভাবনা রয়েছে।\n" +#~ "\n" +#~ "আপনি কি তা সত্ত্বেও ফাইলটি সংরক্ষণ করতে চান?" + +#~ msgid "N&ame:" +#~ msgstr "না&ম:" + +#, fuzzy +#~ msgid "Use &spaces instead of tabs to indent" +#~ msgstr "পরিবর্তে -র ট্যাব প্রতি ইনডেন্ট" + +#, fuzzy +#~ msgid "Keep indent &profile" +#~ msgstr "ইনডেন্ট পরিচিতি" + +#, fuzzy +#~ msgid "Keys to Use" +#~ msgstr "প্রতি" + +#, fuzzy +#~ msgid "Tab Key Mode if Nothing Selected" +#~ msgstr "যদি নির্বাচিত" + +#, fuzzy +#~ msgid "Check this if you want to indent with spaces rather than tabs." +#~ msgstr "এই যদি আপনি চাই প্রতি ইনডেন্ট সঙ্গে বরং থেকে ট্যাব." + +#, fuzzy +#~ msgid "" +#~ "Indentations of more than the selected number of spaces will not be " +#~ "shortened." +#~ msgstr "-র আরো থেকে টি নির্বাচিত নম্বর -র নয় সংক্ষেপিত." + +#, fuzzy +#~ msgid "" +#~ "This allows the Tab key to be used to increase the indentation " +#~ "level." +#~ msgstr "অনুমতি দেয় টি কী (Key) প্রতি ব্যবহৃত প্রতি বৃদ্ধি টি স্তর." + +#, fuzzy +#~ msgid "" +#~ "This allows the Backspace key to be used to decrease the " +#~ "indentation level." +#~ msgstr "অনুমতি দেয় টি Backspace কী (Key) প্রতি ব্যবহৃত প্রতি হ্রাস টি স্তর." + +#, fuzzy +#~ msgid "Configure Indenter" +#~ msgstr "&সম্পাদক কনফিগার করো..." + +#, fuzzy +#~ msgid "Configure %1" +#~ msgstr "&সম্পাদক কনফিগার করো..." + +#~ msgid "Do&wnload..." +#~ msgstr "ডাউনলো&ড..." + +#, fuzzy +#~ msgid "" +#~ "Choose a Syntax Highlight mode from this list to view its " +#~ "properties below." +#~ msgstr "একটি মোড থেকে এই তালিকা প্রতি দেখাও তার বৈশিষ্ট্যাবলী নীচে." + +#, fuzzy +#~ msgid "" +#~ "The list of file extensions used to determine which files to highlight " +#~ "using the current syntax highlight mode." +#~ msgstr "" +#~ "তালিকা -র ফাইল বর্ধিতাংশ ব্যবহৃত প্রতি নির্ধারণ কোন প্রতি ব্যবহার করে টি বর্তমান " +#~ "বাক্যরীতি মোড." + +#, fuzzy +#~ msgid "" +#~ "The list of Mime Types used to determine which files to highlight using " +#~ "the current highlight mode.

Click the wizard button on the left of the " +#~ "entry field to display the MimeType selection dialog." +#~ msgstr "" +#~ "তালিকা -র ব্যবহৃত প্রতি নির্ধারণ কোন প্রতি ব্যবহার করে টি বর্তমান মোড

টি বাটন " +#~ "ওপর টি বাঁদিক -র টি এন্ট্রি, অন্তর্ভুক্তি (Entry) ক্ষেত্রে প্রতি দেখাও টি মাইম টাইপ " +#~ "নির্বাচন ডায়ালগ." + +#, fuzzy +#~ msgid "" +#~ "Display a dialog with a list of all available mime types to choose from." +#~ "

The File Extensions entry will automatically be " +#~ "edited as well." +#~ msgstr "" +#~ "দেখাও একটি ডায়ালগ সঙ্গে একটি তালিকা -র সব পাওয়া যাচ্ছে মাইম ধরন প্রতি বেছে " +#~ "নিন থেকে

ফাইল (_ফ) এন্ট্রি, অন্তর্ভুক্তি (Entry) " +#~ "স্বয়ংক্রীয়ভাবে সম্পাদিত ভাল." + +#, fuzzy +#~ msgid "" +#~ "Click this button to download new or updated syntax highlight " +#~ "descriptions from the Kate website." +#~ msgstr "" +#~ "এই বাটন প্রতি ডাউনলোড নতুন অথবা আপডেটকৃত বাক্যরীতি বর্ণনা থেকে টি কেট ওয়েবসাইট." + +#~ msgid " Col: %1" +#~ msgstr " কলাম: %1" + +#, fuzzy +#~ msgid "Overwrite the file" +#~ msgstr "ফাইল মুছে লিখব?" + +#, fuzzy +#~ msgid "Mode must be at least 0." +#~ msgstr "অবশ্যই -তে অন্তত." + +#, fuzzy +#~ msgid "Search Incrementally" +#~ msgstr "সন্ধান" + +#, fuzzy +#~ msgid "Search Incrementally Backwards" +#~ msgstr "সন্ধান" + +#~ msgid "From Beginning" +#~ msgstr "শুরু থেকে" + +#, fuzzy +#~ msgctxt "Incremental Search" +#~ msgid "I-Search:" +#~ msgstr "সন্ধান সন্ধান:" + +#, fuzzy +#~ msgctxt "Incremental Search found no match" +#~ msgid "Failing I-Search:" +#~ msgstr "সন্ধান পাওয়া গেছে না মিল প্রথম সন্ধান:" + +#, fuzzy +#~ msgctxt "Incremental Search in the reverse direction" +#~ msgid "I-Search Backward:" +#~ msgstr "সন্ধান ইঞ্চি টি উল্টা দিকে,দিঙ্‌নির্দেশ সন্ধান:" + +#, fuzzy +#~ msgctxt "Incremental Search has passed the end of the document" +#~ msgid "Wrapped I-Search:" +#~ msgstr "সন্ধান আছে পাশ টি শেষ -র টি নথী প্রথম সন্ধান:" + +#, fuzzy +#~ msgid "Failing Wrapped I-Search:" +#~ msgstr "প্রথম সন্ধান:" + +#, fuzzy +#~ msgid "Wrapped I-Search Backward:" +#~ msgstr "প্রথম সন্ধান:" + +#, fuzzy +#~ msgid "Failing Wrapped I-Search Backward:" +#~ msgstr "প্রথম সন্ধান:" + +#, fuzzy +#~ msgctxt "" +#~ "Incremental Search has passed both the end of the document and the " +#~ "original starting position" +#~ msgid "Overwrapped I-Search:" +#~ msgstr "" +#~ "সন্ধান আছে পাশ উভয় টি শেষ -র টি নথী এবং টি প্রকৃত আরম্ভ হতে যাচ্ছে অবস্থান প্রথম " +#~ "সন্ধান:" + +#, fuzzy +#~ msgid "Failing Overwrapped I-Search:" +#~ msgstr "প্রথম সন্ধান:" + +#, fuzzy +#~ msgid "Overwrapped I-Search Backwards:" +#~ msgstr "প্রথম সন্ধান:" + +#, fuzzy +#~ msgid "Failing Overwrapped I-Search Backward:" +#~ msgstr "প্রথম সন্ধান:" + +#, fuzzy +#~ msgid "Error: unknown i-search state!" +#~ msgstr "সমস্যা অজানা i সন্ধান,খোঁজা অবস্থা!" diff --git a/local/recipes/kde/kf6-ktexteditor/source/po/br/ktexteditor6.po b/local/recipes/kde/kf6-ktexteditor/source/po/br/ktexteditor6.po new file mode 100644 index 0000000000..26d862ec69 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/po/br/ktexteditor6.po @@ -0,0 +1,10024 @@ +# KDE breton translation +# Thierry Vignaud , 2004-2005 +msgid "" +msgstr "" +"Project-Id-Version: katepart4\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2026-06-23 00:41+0000\n" +"PO-Revision-Date: 2004-09-28 14:05+0200\n" +"Last-Translator: Thierry Vignaud \n" +"Language-Team: Brezhoneg \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" + +#: completion/katecompletionmodel.cpp:147 +#, fuzzy, kde-format +#| msgid "Arguments" +msgid "Argument-hints" +msgstr "Arventennoù" + +#: completion/katecompletionmodel.cpp:148 +#, kde-format +msgid "Best matches" +msgstr "" + +#: completion/katekeywordcompletion.cpp:143 +#, kde-format +msgid "Language keywords" +msgstr "" + +#: completion/katewordcompletion.cpp:74 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgid "Auto Word Completion" +msgstr "Lugent klokadur a ger" + +#: completion/katewordcompletion.cpp:301 +#, kde-format +msgid "Shell Completion" +msgstr "Klokadur shell" + +#: completion/katewordcompletion.cpp:306 +#, kde-format +msgid "Reuse Word Above" +msgstr "" + +#: completion/katewordcompletion.cpp:312 +#, kde-format +msgid "Reuse Word Below" +msgstr "" + +#. i18n: ectx: Menu (file) +#: data/katepart5ui.rc:4 +#, kde-format +msgid "&File" +msgstr "&Restr" + +#. i18n: ectx: Menu (file_export) +#: data/katepart5ui.rc:10 +#, kde-format +msgid "&Print/Export" +msgstr "" + +#. i18n: ectx: Menu (edit) +#: data/katepart5ui.rc:17 +#, kde-format +msgid "&Edit" +msgstr "&Aozañ" + +#. i18n: ectx: Menu (edit_find_menu) +#: data/katepart5ui.rc:36 +#, kde-format +msgid "Find Variants" +msgstr "" + +#. i18n: ectx: Menu (selection) +#: data/katepart5ui.rc:46 +#, fuzzy, kde-format +#| msgid "Selection Only" +msgid "Selection" +msgstr "Ar choazh hepken" + +#. i18n: ectx: Menu (capitalization) +#: data/katepart5ui.rc:53 +#, kde-format +msgid "Capitalization" +msgstr "" + +#. i18n: ectx: Menu (view) +#: data/katepart5ui.rc:73 +#, kde-format +msgid "&View" +msgstr "&Gwel" + +#. i18n: ectx: Menu (view_menu_word_wrap) +#: data/katepart5ui.rc:78 +#, fuzzy, kde-format +#| msgid "&Dynamic Word Wrap" +msgid "Word Wrap" +msgstr "Plegañ ar &gerioù ent &buhezek" + +#. i18n: ectx: Menu (view_menu_borders) +#: data/katepart5ui.rc:84 dialogs/katedialogs.cpp:747 +#, fuzzy, kde-format +#| msgid "Borders" +msgid "Borders" +msgstr "Bevennoù" + +#. i18n: ectx: Menu (codefolding) +#: data/katepart5ui.rc:92 +#, kde-format +msgid "&Code Folding" +msgstr "" + +#. i18n: ectx: Menu (go) +#: data/katepart5ui.rc:109 +#, fuzzy, kde-format +#| msgid "Go" +msgid "&Go" +msgstr "Mont" + +#. i18n: ectx: Menu (tools) +#: data/katepart5ui.rc:124 +#, kde-format +msgid "&Tools" +msgstr "&Ostilhoù" + +#. i18n: ectx: Menu (wordcompletion) +#: data/katepart5ui.rc:138 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgid "Word Completion" +msgstr "Lugent klokadur a ger" + +#. i18n: ectx: Menu (spelling) +#: data/katepart5ui.rc:144 spellcheck/spellingmenu.cpp:71 +#: spellcheck/spellingmenu.cpp:195 +#, kde-format +msgid "Spelling" +msgstr "" + +#. i18n: ectx: Menu (speech) +#: data/katepart5ui.rc:153 data/katepart5ui.rc:184 +#, kde-format +msgid "Text to Speech" +msgstr "" + +#. i18n: ectx: Menu (settings) +#: data/katepart5ui.rc:161 +#, kde-format +msgid "&Settings" +msgstr "&Kefluniadur" + +#. i18n: ectx: ToolBar (mainToolBar) +#: data/katepart5ui.rc:192 +#, kde-format +msgid "Main Toolbar" +msgstr "Barrenn kentañ an ostilhoù" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/bordersappearanceconfigwidget.ui:25 +#, kde-format +msgid "Code block folding:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowFoldingMarkers) +#: dialogs/bordersappearanceconfigwidget.ui:32 +#, kde-format +msgid "" +"If this option is checked, every new view will display marks for folding." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowFoldingMarkers) +#: dialogs/bordersappearanceconfigwidget.ui:35 +#, kde-format +msgid "Show arrows to collapse code blocks" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowFoldingPreview) +#: dialogs/bordersappearanceconfigwidget.ui:42 +#, kde-format +msgid "" +"If checked, hovering over a folded region shows a preview of the folded text " +"in a popup." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowFoldingPreview) +#: dialogs/bordersappearanceconfigwidget.ui:45 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Show preview of folded blocks on hover" +msgstr "Moulañ an teul red." + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/bordersappearanceconfigwidget.ui:52 +#, kde-format +msgid "Folding arrows visibility:" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbFoldingArrowVisiblity) +#: dialogs/bordersappearanceconfigwidget.ui:63 +#, fuzzy, kde-format +#| msgid "Show &Icon Border" +msgid "Show on Hover" +msgstr "Diskouez bevenn an &arlun" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbFoldingArrowVisiblity) +#: dialogs/bordersappearanceconfigwidget.ui:68 +#, fuzzy, kde-format +#| msgid "Always" +msgid "Show Always" +msgstr "Bepred" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/bordersappearanceconfigwidget.ui:92 +#, kde-format +msgid "Left side:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkIconBorder) +#: dialogs/bordersappearanceconfigwidget.ui:99 +#, kde-format +msgid "" +"

If this option is checked, every new view will display an icon border on " +"the left hand side.

The icon border shows bookmark signs, for instance." +"

" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkIconBorder) +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMarks) +#: dialogs/bordersappearanceconfigwidget.ui:102 +#: dialogs/bordersappearanceconfigwidget.ui:155 +#, fuzzy, kde-format +#| msgid "Show &line numbers" +msgid "Show marks" +msgstr "Diskouez niverennoù &linenn" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkLineNumbers) +#: dialogs/bordersappearanceconfigwidget.ui:109 +#, kde-format +msgid "" +"If this option is checked, every new view will display line numbers on the " +"left hand side." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkLineNumbers) +#: dialogs/bordersappearanceconfigwidget.ui:112 +#, kde-format +msgid "Show &line numbers" +msgstr "Diskouez niverennoù &linenn" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowLineModification) +#: dialogs/bordersappearanceconfigwidget.ui:119 +#, kde-format +msgid "" +"If this option is checked, a small indicator for modified and saved lines is " +"shown on the left hand side." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowLineModification) +#: dialogs/bordersappearanceconfigwidget.ui:122 +#, kde-format +msgid "Highlight changed and unsaved lines" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/bordersappearanceconfigwidget.ui:145 +#, kde-format +msgid "Scrollbars:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMarks) +#: dialogs/bordersappearanceconfigwidget.ui:152 +#, kde-format +msgid "" +"

If this option is checked, every new view will show marks on the vertical " +"scrollbar.

These marks will show bookmarks, for instance.

" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarPreview) +#: dialogs/bordersappearanceconfigwidget.ui:162 +#, kde-format +msgid "" +"

If this option is checked, hovering over the vertical scrollbar will show " +"a preview of the text.

" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarPreview) +#: dialogs/bordersappearanceconfigwidget.ui:165 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Show preview when hovering over scrollbar" +msgstr "Moulañ an teul red." + +#. i18n: ectx: property (text), widget (QLabel, lblShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:172 +#, kde-format +msgid "Scro&llbars visibility:" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:183 dialogs/katedialogs.cpp:755 +#, kde-format +msgid "Always On" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:188 +#, kde-format +msgid "Show When Needed" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:193 +#, fuzzy, kde-format +#| msgid "Always" +msgid "Always Off" +msgstr "Bepred" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/bordersappearanceconfigwidget.ui:217 +#, fuzzy, kde-format +#| msgid "Tab width:" +msgid "Minimap:" +msgstr "Ledander ar bevennigoù :" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMiniMap) +#: dialogs/bordersappearanceconfigwidget.ui:224 +#, kde-format +msgid "" +"If this option is checked, every new view will show a mini map on the " +"vertical scrollbar." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMiniMap) +#: dialogs/bordersappearanceconfigwidget.ui:227 +#, kde-format +msgid "Show minimap" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, labelMiniMapWidth) +#: dialogs/bordersappearanceconfigwidget.ui:250 +#, fuzzy, kde-format +#| msgid "Tab width:" +msgid "Minim&ap width:" +msgstr "Ledander ar bevennigoù :" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMiniMapAll) +#: dialogs/bordersappearanceconfigwidget.ui:263 +#, kde-format +msgid "" +"If this option is checked, every new view will show a mini map of the whole " +"document on the vertical scrollbar." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMiniMapAll) +#: dialogs/bordersappearanceconfigwidget.ui:266 +#, fuzzy, kde-format +#| msgid "Save the current document" +msgid "Map the whole document" +msgstr "Enrollañ an teul red" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbSortBookmarksByCreation) +#: dialogs/bordersappearanceconfigwidget.ui:276 +#, kde-format +msgid "" +"Each new bookmark will be added to the bottom, independently from where it " +"is placed in the document." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbSortBookmarksByCreation) +#: dialogs/bordersappearanceconfigwidget.ui:279 +#, kde-format +msgid "By date created" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbSortBookmarksByPosition) +#: dialogs/bordersappearanceconfigwidget.ui:286 +#, kde-format +msgid "The bookmarks will be ordered by the line numbers they are placed at." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbSortBookmarksByPosition) +#: dialogs/bordersappearanceconfigwidget.ui:289 +#, fuzzy, kde-format +#| msgid "Show &line numbers" +msgid "By line number" +msgstr "Diskouez niverennoù &linenn" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/bordersappearanceconfigwidget.ui:296 +#, fuzzy, kde-format +#| msgid "Set &Bookmark" +msgid "Sort bookmarks menu:" +msgstr "Lakaat ar &sil" + +#: dialogs/clipboardhistorydialog.cpp:264 +#, fuzzy, kde-format +#| msgid "Select to Next Line" +msgid "Select text to paste." +msgstr "Dibab betek al linenn a-heul" + +#: dialogs/clipboardhistorydialog.cpp:296 +#, kde-format +msgid "No entries in clipboard history" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbGeneral) +#. i18n: ectx: property (title), widget (QGroupBox, gbViInputMode) +#: dialogs/completionconfigtab.ui:29 dialogs/katedialogs.cpp:609 +#: dialogs/katedialogs.cpp:743 dialogs/katedialogs.cpp:1026 +#: vimode/config/configwidget.ui:29 +#, kde-format +msgid "General" +msgstr "Pennañ" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoCompletionEnabled) +#: dialogs/completionconfigtab.ui:35 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgid "Enable &auto completion" +msgstr "Lugent klokadur a ger" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoSelectFirstEntry) +#: dialogs/completionconfigtab.ui:42 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgid "Auto select &first completion entry" +msgstr "Lugent klokadur a ger" + +#. i18n: ectx: property (text), widget (QCheckBox, chkTabCompletion) +#: dialogs/completionconfigtab.ui:49 +#, kde-format +msgid "Cycle through the list of completions using Tab / Shift+Tab" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkEnterCompletion) +#: dialogs/completionconfigtab.ui:56 +#, kde-format +msgid "" +"Pressing enter will insert the text of selected completion item into the " +"editor. If disabled, Tab key or double-click can still be used to trigger " +"completion." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkEnterCompletion) +#: dialogs/completionconfigtab.ui:59 +#, kde-format +msgid "Use Enter key to insert selected completion" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbWordCompletion) +#: dialogs/completionconfigtab.ui:69 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgid "A&uto word completion" +msgstr "Lugent klokadur a ger" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/completionconfigtab.ui:83 +#, kde-format +msgid "Minimal word length to complete:" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, removeTail) +#: dialogs/completionconfigtab.ui:111 +#, kde-format +msgid "Remove tail of a previous word when completion item chosen from a list" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, removeTail) +#: dialogs/completionconfigtab.ui:114 +#, fuzzy, kde-format +#| msgid "H&ighlight:" +msgid "Remove tail on complete" +msgstr "S&plannadur :" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/completionconfigtab.ui:121 +#, kde-format +msgid "" +"Word completion provides suggestions based on the words found in the document" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbKeywordCompletion) +#: dialogs/completionconfigtab.ui:134 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgid "&Keyword completion" +msgstr "Lugent klokadur a ger" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/completionconfigtab.ui:143 +#, kde-format +msgid "" +"Keyword completion provides suggestions based on the keywords which exist in " +"the document's language." +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbShowDoc) +#: dialogs/completionconfigtab.ui:156 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgid "Documentation with completion" +msgstr "Lugent klokadur a ger" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/completionconfigtab.ui:165 +#, kde-format +msgid "" +"Show documentation beside completion box. If disabled, documentation can be " +"shown by pressing Alt key." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/editconfigwidget.ui:22 +#, fuzzy, kde-format +#| msgid "&Dynamic Word Wrap" +msgid "Word wrap:" +msgstr "Plegañ ar &gerioù ent &buhezek" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkStaticWordWrap) +#: dialogs/editconfigwidget.ui:29 +#, kde-format +msgid "" +"

Automatically start a new line of text when the current line exceeds the " +"length specified by the Wrap words at: option.

This option does " +"not wrap existing lines of text - use the Apply Static Word Wrap " +"option in the Tools menu for that purpose.

If you want lines to " +"be visually wrapped instead, according to the width of the view, " +"enable Dynamic Word Wrap in the Appearance config page.

" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkStaticWordWrap) +#: dialogs/editconfigwidget.ui:32 +#, kde-format +msgid "Wrap &words at a fixed column" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowStaticWordWrapMarker) +#: dialogs/editconfigwidget.ui:39 +#, kde-format +msgid "" +"

If this option is checked, a vertical line will be drawn at the word wrap " +"column as defined in the Editing properties.

" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowStaticWordWrapMarker) +#: dialogs/editconfigwidget.ui:42 +#, kde-format +msgid "&Draw vertical line at the word wrap column" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblWordWrap) +#: dialogs/editconfigwidget.ui:49 +#, fuzzy, kde-format +#| msgid "Wrap words at:" +msgid "Wra&p words at:" +msgstr "Plegañ ar gerioù da :" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbWordWrap) +#: dialogs/editconfigwidget.ui:59 +#, kde-format +msgid "" +"If the Word Wrap option is selected this entry determines the length (in " +"characters) at which the editor will automatically start a new line." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblInputMode) +#: dialogs/editconfigwidget.ui:91 +#, kde-format +msgid "Default input mode:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/editconfigwidget.ui:120 +#, fuzzy, kde-format +#| msgid "Match case" +msgid "Brackets:" +msgstr "Klotaat ar c'hef" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoBrackets) +#: dialogs/editconfigwidget.ui:127 +#, kde-format +msgid "Automatically close brackets when opening bracket is typed" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLabel, lbEncloseSelection) +#: dialogs/editconfigwidget.ui:140 +#, kde-format +msgid "" +"When some text is selected these chars will be added on both its sides in a " +"way \"Auto Bracket\" do" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lbEncloseSelection) +#: dialogs/editconfigwidget.ui:143 +#, fuzzy, kde-format +#| msgid "Character" +msgid "Enclosing characters:" +msgstr "Arouezennoù" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/editconfigwidget.ui:166 +#, kde-format +msgid "Copy and paste:" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkTextDragAndDrop) +#: dialogs/editconfigwidget.ui:173 +#, fuzzy, kde-format +#| msgid "Selected" +msgid "Move selected text when dragged" +msgstr "Diuzet" + +#. i18n: ectx: property (text), widget (QCheckBox, chkSmartCopyCut) +#: dialogs/editconfigwidget.ui:180 +#, kde-format +msgid "Copy/cut the current line if invoked without any text selected" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkMousePasteAtCursorPosition) +#: dialogs/editconfigwidget.ui:187 +#, kde-format +msgid "Don't move the text cursor when pasting by mouse" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblClipboardHistoryEntries) +#: dialogs/editconfigwidget.ui:194 +#, kde-format +msgid "Max Clipboard History Entries:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbClipboardHistoryEntries) +#: dialogs/editconfigwidget.ui:204 +#, kde-format +msgid "This determines the number of entries to keep in the clipboard history" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblBracketHelp) +#: dialogs/editconfigwidget.ui:226 +#, kde-format +msgid "" +"When you type these characters while text is selected, they will surround " +"the selected text instead of replacing it." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAccessibility) +#: dialogs/editconfigwidget.ui:252 +#, kde-format +msgid "Enable accessibility notifications" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/editconfigwidget.ui:259 +#, kde-format +msgid "Accessibility:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblFiletype) +#: dialogs/filetypeconfigwidget.ui:14 +#, kde-format +msgid "&Filetype:" +msgstr "Rizh ar &restr :" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbFiletypes) +#: dialogs/filetypeconfigwidget.ui:24 +#, kde-format +msgid "Select the filetype you want to change." +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, btnNew) +#: dialogs/filetypeconfigwidget.ui:31 +#, kde-format +msgid "Create a new file type." +msgstr "Moulañ ur seurt restr nevez." + +#. i18n: ectx: property (text), widget (QPushButton, btnNew) +#: dialogs/filetypeconfigwidget.ui:34 +#, fuzzy, kde-format +#| msgid "&New..." +msgid "&New" +msgstr "&Nevez ..." + +#. i18n: ectx: property (whatsThis), widget (QPushButton, btnDelete) +#: dialogs/filetypeconfigwidget.ui:41 +#, kde-format +msgid "Delete the current file type." +msgstr "Lemel ar seurt restr red." + +#. i18n: ectx: property (text), widget (QPushButton, btnDelete) +#: dialogs/filetypeconfigwidget.ui:44 syntax/katethemeconfig.cpp:1132 +#, kde-format +msgid "&Delete" +msgstr "&Distruj" + +#. i18n: ectx: property (title), widget (QGroupBox, gbProperties) +#: dialogs/filetypeconfigwidget.ui:66 mode/katemodeconfigpage.cpp:272 +#, kde-format +msgid "Properties" +msgstr "Perzhioù" + +#. i18n: ectx: property (text), widget (QLabel, lblName) +#: dialogs/filetypeconfigwidget.ui:72 +#, fuzzy, kde-format +#| msgid "Name:" +msgid "&Name:" +msgstr "Anv :" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtName) +#: dialogs/filetypeconfigwidget.ui:82 +#, kde-format +msgid "" +"The name of the filetype will be the text of the corresponding menu item." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblSection) +#: dialogs/filetypeconfigwidget.ui:89 +#, kde-format +msgid "&Section:" +msgstr "&Dachenn :" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtSection) +#: dialogs/filetypeconfigwidget.ui:99 +#, kde-format +msgid "The section name is used to organize the file types in menus." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblVariables) +#: dialogs/filetypeconfigwidget.ui:106 +#, fuzzy, kde-format +msgid "&Variables:" +msgstr "Marv" + +#. i18n: ectx: property (whatsThis), widget (VariableLineEdit, edtVariables) +#: dialogs/filetypeconfigwidget.ui:116 +#, kde-format +msgid "" +"

This string allows to configure Kate's settings for the files selected by " +"this mimetype using Kate variables. Almost any configuration option can be " +"set, such as highlight, indent-mode, encoding, etc.

For a full list of " +"known variables, see the manual.

" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblHl) +#: dialogs/filetypeconfigwidget.ui:123 +#, fuzzy, kde-format +#| msgid "H&ighlight:" +msgid "&Highlighting:" +msgstr "S&plannadur :" + +#. i18n: ectx: property (text), widget (QLabel, lblIndenter) +#: dialogs/filetypeconfigwidget.ui:136 +#, fuzzy, kde-format +#| msgid "&Indentation" +msgid "&Indentation mode:" +msgstr "&Keflosk" + +#. i18n: ectx: property (text), widget (QLabel, lblExtensions) +#: dialogs/filetypeconfigwidget.ui:149 +#, kde-format +msgid "File e&xtensions:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtFileExtensions) +#: dialogs/filetypeconfigwidget.ui:159 +#, kde-format +msgid "" +"The wildcards mask allows to select files by filename. A typical mask uses " +"an asterisk and the file extension, for example *.txt; *.text. " +"The string is a semicolon-separated list of masks." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblMimeTypes) +#: dialogs/filetypeconfigwidget.ui:166 +#, kde-format +msgid "MIME &types:" +msgstr "&Rizhioù MIME :" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtMimeTypes) +#: dialogs/filetypeconfigwidget.ui:181 +#, kde-format +msgid "" +"The mime type mask allows to select files by mimetype. The string is a " +"semicolon-separated list of mimetypes, for example text/plain; text/" +"english." +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QToolButton, btnMimeTypes) +#: dialogs/filetypeconfigwidget.ui:188 +#, kde-format +msgid "Displays a wizard that helps you easily select mimetypes." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblPriority) +#: dialogs/filetypeconfigwidget.ui:197 +#, fuzzy, kde-format +#| msgid "Prio&rity:" +msgid "P&riority:" +msgstr "&Renk :" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbPriority) +#: dialogs/filetypeconfigwidget.ui:207 +#, kde-format +msgid "" +"Sets priority for this file type. If more than one file type selects the " +"same file, the one with the highest priority will be used." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblMode) +#: dialogs/indentationconfigwidget.ui:43 +#, kde-format +msgid "Default indentation mode:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbMode) +#: dialogs/indentationconfigwidget.ui:53 +#, kde-format +msgid "" +"This is a list of available indentation modes. The specified indentation " +"mode will be used for all new documents. Be aware that it is also possible " +"to set the indentation mode with document variables, modes or a .kateconfig " +"file." +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbIndentationMode) +#: dialogs/indentationconfigwidget.ui:75 +#, fuzzy, kde-format +#| msgid "Indentation" +msgid "Indent using" +msgstr "Keflosk" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbIndentWidth) +#: dialogs/indentationconfigwidget.ui:81 +#, kde-format +msgid "" +"The indentation width is the number of spaces which is used to indent a " +"line. If the option Insert spaces instead of tabulators in the " +"section Editing is disabled, a Tab character is inserted if " +"the indentation is divisible by the tab width." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentWithSpaces) +#: dialogs/indentationconfigwidget.ui:97 +#, fuzzy, kde-format +#| msgid "&Replace" +msgid "&Spaces" +msgstr "&Erlec'hiañ" + +#. i18n: ectx: property (text), widget (QLabel, lblIndentWidth) +#: dialogs/indentationconfigwidget.ui:104 +#, fuzzy, kde-format +#| msgid "Indentation" +msgid "&Indentation width:" +msgstr "Keflosk" + +#. i18n: ectx: property (text), widget (QLabel, lblTabWidth) +#: dialogs/indentationconfigwidget.ui:114 +#, fuzzy, kde-format +#| msgid "Tab width:" +msgid "Tab wi&dth:" +msgstr "Ledander ar bevennigoù :" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentWithTabs) +#: dialogs/indentationconfigwidget.ui:153 +#, fuzzy, kde-format +msgid "&Tabulators" +msgstr "&Diskouez ar bevennigoù" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentMixed) +#: dialogs/indentationconfigwidget.ui:160 +#, fuzzy, kde-format +msgid "Tabulators &and Spaces" +msgstr "&Diskouez ar bevennigoù" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoDetectIndent) +#: dialogs/indentationconfigwidget.ui:167 +#, fuzzy, kde-format +#| msgid "Automatic Indentation" +msgid "Automatically detect file indentation" +msgstr "Emgeflosk" + +#. i18n: ectx: property (title), widget (QGroupBox, gbProperties) +#: dialogs/indentationconfigwidget.ui:177 +#, fuzzy, kde-format +#| msgid "Indentation" +msgid "Indentation Properties" +msgstr "Keflosk" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkKeepExtraSpaces) +#: dialogs/indentationconfigwidget.ui:183 +#, kde-format +msgid "" +"If this option is disabled, changing the indentation level aligns a line to " +"a multiple of the width specified in Indentation width." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkKeepExtraSpaces) +#: dialogs/indentationconfigwidget.ui:186 +#, kde-format +msgid "&Keep extra spaces" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkIndentPaste) +#: dialogs/indentationconfigwidget.ui:193 +#, kde-format +msgid "" +"If this option is selected, pasted code from the clipboard is indented. " +"Triggering the undo-action removes the indentation." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkIndentPaste) +#: dialogs/indentationconfigwidget.ui:196 +#, kde-format +msgid "Adjust indentation of code &pasted from the clipboard" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbKeys) +#: dialogs/indentationconfigwidget.ui:206 +#, fuzzy, kde-format +#| msgid "Indentation" +msgid "Indentation Actions" +msgstr "Keflosk" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackspaceUnindents) +#: dialogs/indentationconfigwidget.ui:212 +#, kde-format +msgid "" +"If this option is selected, the Backspace key decreases the " +"indentation level if the cursor is located in the leading blank space of a " +"line." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackspaceUnindents) +#: dialogs/indentationconfigwidget.ui:215 +#, kde-format +msgid "&Backspace key in leading blank space unindents" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/indentationconfigwidget.ui:225 +#, kde-format +msgid "" +"\n" +"

Tab key action (if no selection exists) Tab " +"to align the current line in the current code block like in Emacs, make " +"Tab a shortcut to the action Format Indentation." +"\">More ...

" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabAdvances) +#: dialogs/indentationconfigwidget.ui:276 +#, kde-format +msgid "" +"If this option is selected, the Tab key always inserts white space so " +"that the next tab position is reached. If the option Insert spaces " +"instead of tabulators in the section Editing is enabled, spaces " +"are inserted; otherwise, a single tabulator is inserted." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabAdvances) +#: dialogs/indentationconfigwidget.ui:279 +#, kde-format +msgid "Always advance to the &next tab position" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabIndents) +#: dialogs/indentationconfigwidget.ui:286 +#, kde-format +msgid "" +"If this option is selected, the Tab key always indents the current " +"line by the number of character positions specified in Indentation width." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabIndents) +#: dialogs/indentationconfigwidget.ui:289 +#, kde-format +msgid "Always increase indentation &level" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabSmart) +#: dialogs/indentationconfigwidget.ui:296 +#, kde-format +msgid "" +"If this option is selected, the Tab key either indents the current " +"line or advances to the next tab position.

If the insertion point is at " +"or before the first non-space character in the line, or if there is a " +"selection, the current line is indented by the number of character positions " +"specified in Indentation width.

If the insertion point is located " +"after the first non-space character in the line and there is no selection, " +"white space is inserted so that the next tab position is reached: if the " +"option Insert spaces instead of tabulators in the section Editing is enabled, spaces are inserted; otherwise, a single tabulator is " +"inserted." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabSmart) +#: dialogs/indentationconfigwidget.ui:299 +#, kde-format +msgid "Increase indentation level if in l&eading blank space" +msgstr "" + +#: dialogs/katedialogs.cpp:185 dialogs/katedialogs.cpp:187 +#, fuzzy, kde-format +#| msgid "Character" +msgid "%v character" +msgid_plural "%v characters" +msgstr[0] "Arouezennoù" +msgstr[1] "" + +#: dialogs/katedialogs.cpp:211 +#, kde-format +msgid "Indentation" +msgstr "Keflosk" + +#: dialogs/katedialogs.cpp:295 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgid "Auto Completion" +msgstr "Lugent klokadur a ger" + +#: dialogs/katedialogs.cpp:362 +#, kde-format +msgid "Spellcheck" +msgstr "Gwiriekaat ar skritur" + +#: dialogs/katedialogs.cpp:410 dialogs/katedialogs.cpp:417 +#, fuzzy, kde-format +#| msgid "Alert" +msgid "Alt" +msgstr "Alert" + +#: dialogs/katedialogs.cpp:411 dialogs/katedialogs.cpp:419 +#, kde-format +msgid "Ctrl" +msgstr "" + +#: dialogs/katedialogs.cpp:412 +#, kde-format +msgid "Meta" +msgstr "" + +#: dialogs/katedialogs.cpp:413 dialogs/katedialogs.cpp:421 +#, kde-format +msgid "Ctrl + Alt" +msgstr "" + +#: dialogs/katedialogs.cpp:414 +#, kde-format +msgid "Meta + Alt" +msgstr "" + +#: dialogs/katedialogs.cpp:415 +#, kde-format +msgid "Ctrl + Meta" +msgstr "" + +#: dialogs/katedialogs.cpp:418 +#, fuzzy, kde-format +#| msgid "Comment" +msgid "Cmd" +msgstr "Askelenn" + +#: dialogs/katedialogs.cpp:420 +#, kde-format +msgid "Cmd + Alt" +msgstr "" + +#: dialogs/katedialogs.cpp:422 +#, kde-format +msgid "Cmd + Ctrl" +msgstr "" + +#: dialogs/katedialogs.cpp:480 +#, fuzzy, kde-format +#| msgctxt "Language Section" +#| msgid "Configuration" +msgid "Text Navigation" +msgstr "Kefluniadur" + +#: dialogs/katedialogs.cpp:582 +#, fuzzy, kde-format +#| msgid "Character" +msgctxt "Wrap words at (value is at 20 or larger)" +msgid "%v character" +msgid_plural "%v characters" +msgstr[0] "Arouezennoù" +msgstr[1] "" + +#: dialogs/katedialogs.cpp:587 +#, kde-format +msgid "Feature is not active" +msgstr "" + +#: dialogs/katedialogs.cpp:589 +#, fuzzy, kde-format +#| msgid "Disabled" +msgid "Disable Feature" +msgstr "Marv" + +#: dialogs/katedialogs.cpp:591 +#, kde-format +msgid "May be handy with Markdown" +msgstr "" + +#: dialogs/katedialogs.cpp:593 +#, kde-format +msgid "Mirror characters, similar but not exactly like auto brackets" +msgstr "" + +#: dialogs/katedialogs.cpp:595 +#, fuzzy, kde-format +#| msgid "Character" +msgid "Non letter character" +msgstr "Arouezennoù" + +#: dialogs/katedialogs.cpp:712 +#, kde-format +msgid "Editing" +msgstr "Emaon oc'h aozañ" + +#: dialogs/katedialogs.cpp:717 +#, kde-format +msgid "Editing Options" +msgstr "Emaon oc'h aozañ an dibarzhoù" + +#: dialogs/katedialogs.cpp:751 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Stata" +msgid "Statusbar" +msgstr "Stata" + +#: dialogs/katedialogs.cpp:753 +#, kde-format +msgid "Off" +msgstr "Lazhet" + +#: dialogs/katedialogs.cpp:754 +#, kde-format +msgid "Follow Line Numbers" +msgstr "" + +#: dialogs/katedialogs.cpp:945 dialogs/katedialogs.cpp:950 +#, kde-format +msgid "Appearance" +msgstr "Neuziadur" + +#: dialogs/katedialogs.cpp:986 +#, kde-format +msgid "" +"%1 backs up unsaved files to \"swap files.\" Swap files allow %1 to recover " +"your work in the case of a system crash. Disabling swap files may cause data " +"loss in case of a system crash." +msgstr "" + +#: dialogs/katedialogs.cpp:1027 +#, kde-format +msgid "Advanced" +msgstr "" + +#: dialogs/katedialogs.cpp:1092 +#, kde-format +msgid "" +"You did not provide a backup suffix or prefix. Using default suffix: '~'" +msgstr "" + +#: dialogs/katedialogs.cpp:1092 +#, kde-format +msgid "No Backup Suffix or Prefix" +msgstr "" + +#: dialogs/katedialogs.cpp:1227 +#, kde-format +msgid "Open/Save" +msgstr "Digeriñ/Enrollañ" + +#: dialogs/katedialogs.cpp:1232 +#, kde-format +msgid "File Opening & Saving" +msgstr "" + +#: dialogs/katedialogs.cpp:1255 +#, kde-format +msgid "&Line:" +msgstr "" + +#: dialogs/katedialogs.cpp:1256 +#, kde-format +msgid "Go to line number from clipboard" +msgstr "" + +#: dialogs/katedialogs.cpp:1267 +#, kde-format +msgid "Go to" +msgstr "" + +#: dialogs/katedialogs.cpp:1347 +#, kde-format +msgid "No valid line number found in clipboard" +msgstr "" + +#: dialogs/katedialogs.cpp:1411 +#, fuzzy, kde-format +#| msgid "&Section:" +msgid "Dictionary:" +msgstr "&Dachenn :" + +#: dialogs/katedialogs.cpp:1463 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgid "Enable Auto Reload" +msgstr "Lugent klokadur a ger" + +#: dialogs/katedialogs.cpp:1466 +#, kde-format +msgid "" +"Reloads and will automatically reload without warning about disk changes " +"from now until you close either the tab or window." +msgstr "" + +#: dialogs/katedialogs.cpp:1471 +#, kde-format +msgid "View &Difference" +msgstr "" + +#: dialogs/katedialogs.cpp:1473 +#, kde-format +msgid "Shows a diff of the changes." +msgstr "" + +#: dialogs/katedialogs.cpp:1478 +#, fuzzy, kde-format +#| msgid "Reloa&d" +msgid "&Reload" +msgstr "Adkar&gañ" + +#: dialogs/katedialogs.cpp:1480 +#, kde-format +msgid "Reloads the file from disk. Unsaved changes will be lost." +msgstr "" + +#: dialogs/katedialogs.cpp:1484 +#, fuzzy, kde-format +#| msgid "&Reload File" +msgctxt "@action:button closes the opened file" +msgid "&Close File" +msgstr "&Adkargañ ar restr" + +#: dialogs/katedialogs.cpp:1486 +#, kde-format +msgid "Closes the file, discarding its content." +msgstr "" + +#: dialogs/katedialogs.cpp:1490 +#, fuzzy, kde-format +#| msgid "&Save File As..." +msgctxt "@action" +msgid "&Save As…" +msgstr "&Enrollañ ar restr e ..." + +#: dialogs/katedialogs.cpp:1492 +#, kde-format +msgid "Lets you select a location and save the file again." +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, m_skipBtn) +#: dialogs/katedialogs.cpp:1497 spellcheck/spellcheckbar.ui:143 +#, kde-format +msgid "&Ignore" +msgstr "&Tremen e-biou" + +#: dialogs/katedialogs.cpp:1498 +#, kde-format +msgid "Ignores the changes on disk without any action." +msgstr "" + +#: dialogs/katedialogs.cpp:1567 swapfile/kateswapdiffcreator.cpp:131 +#, kde-format +msgid "" +"The diff command failed. Please make sure that diff(1) is installed and in " +"your PATH." +msgstr "" + +#: dialogs/katedialogs.cpp:1569 swapfile/kateswapdiffcreator.cpp:89 +#: swapfile/kateswapdiffcreator.cpp:99 swapfile/kateswapdiffcreator.cpp:133 +#, kde-format +msgid "Error Creating Diff" +msgstr "" + +#: dialogs/katedialogs.cpp:1576 swapfile/kateswapdiffcreator.cpp:140 +#, kde-format +msgid "The files are identical." +msgstr "" + +#: dialogs/katedialogs.cpp:1576 swapfile/kateswapdiffcreator.cpp:140 +#, kde-format +msgid "Diff Output" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbCursorMovement) +#: dialogs/navigationconfigwidget.ui:29 +#, kde-format +msgid "Text Cursor Movement" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkSmartHome) +#: dialogs/navigationconfigwidget.ui:35 +#, kde-format +msgid "" +"When selected, pressing the home key will cause the cursor to skip " +"whitespace and go to the start of a line's text. The same applies for the " +"end key." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkSmartHome) +#: dialogs/navigationconfigwidget.ui:38 +#, kde-format +msgid "Smart ho&me and smart end" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkPagingMovesCursor) +#: dialogs/navigationconfigwidget.ui:45 +#, kde-format +msgid "" +"Selects whether the PageUp and PageDown keys should alter the vertical " +"position of the cursor relative to the top of the view." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkPagingMovesCursor) +#: dialogs/navigationconfigwidget.ui:48 +#, kde-format +msgid "&PageUp/PageDown moves cursor" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkCamelCursor) +#: dialogs/navigationconfigwidget.ui:55 +#, kde-format +msgid "" +"Selects whether cursor stops at camel case humps and underscores within a " +"word." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkCamelCursor) +#: dialogs/navigationconfigwidget.ui:58 +#, kde-format +msgid "" +"Stop at 'camelCase' and 'snake_case' subwords when moving the cursor by word" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:79 +#, kde-format +msgid "&Autocenter cursor:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:89 +#, kde-format +msgid "" +"Sets the number of lines to maintain visible above and below the cursor when " +"possible." +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, spbSwapFileSync) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:92 dialogs/opensaveconfigadvwidget.ui:120 +#: dialogs/opensaveconfigadvwidget.ui:168 +#, kde-format +msgid "Disabled" +msgstr "Marv" + +#. i18n: ectx: property (suffix), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:95 +#, fuzzy, kde-format +#| msgid "Inline" +msgid " lines" +msgstr "Enlinenn" + +#. i18n: ectx: property (title), widget (QGroupBox, cbNavigationMisc) +#: dialogs/navigationconfigwidget.ui:120 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Cisco" +msgid "Misc" +msgstr "Cisco" + +#. i18n: ectx: property (text), widget (QLabel, lblTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:128 +#, fuzzy, kde-format +#| msgid "Selection Mode" +msgid "Text selection mode:" +msgstr "Mod choazh" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:139 inputmode/katenormalinputmode.cpp:64 +#: mode/katemodemanager.cpp:162 +#, fuzzy, kde-format +#| msgid "Normal" +msgid "Normal" +msgstr "Boas" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:144 +#, kde-format +msgid "Persistent" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollPastEnd) +#: dialogs/navigationconfigwidget.ui:167 +#, kde-format +msgid "Allow scrolling past the end of the document" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackspaceRemoveComposed) +#: dialogs/navigationconfigwidget.ui:174 +#, kde-format +msgid "" +"When selected, composed characters are removed with their diacritics instead " +"of only removing the base character. This is useful for Indic locales." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackspaceRemoveComposed) +#: dialogs/navigationconfigwidget.ui:177 +#, kde-format +msgid "Backspace key removes character’s base with its diacritics" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbCycleBookmarks) +#: dialogs/navigationconfigwidget.ui:184 +#, fuzzy, kde-format +#| msgid "Go to the previous bookmark." +msgid "Allow to cycle through bookmarks" +msgstr "Mont d'ar sil diaraok." + +#. i18n: ectx: property (title), widget (QGroupBox, gbMulticursor) +#: dialogs/navigationconfigwidget.ui:194 +#, fuzzy, kde-format +#| msgid "&From Cursor" +msgid "Multicursor" +msgstr "&Eus ar reti" + +#. i18n: ectx: property (text), widget (QLabel, lblMulticursormodifiers) +#: dialogs/navigationconfigwidget.ui:200 +#, kde-format +msgid "Multiple Cursor Modifiers" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoReloadVersionControl) +#: dialogs/opensaveconfigadvwidget.ui:34 +#, kde-format +msgid "Auto reload files in version control" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoReloadOnExternalChanges) +#: dialogs/opensaveconfigadvwidget.ui:41 +#, kde-format +msgid "Auto reload files on external changes" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/opensaveconfigadvwidget.ui:48 +#, kde-format +msgid "Write a backup file on save for:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackupLocalFiles) +#: dialogs/opensaveconfigadvwidget.ui:55 +#, kde-format +msgid "" +"If this option is enabled, backups for local files will be created when " +"saving." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackupLocalFiles) +#: dialogs/opensaveconfigadvwidget.ui:58 +#, fuzzy, kde-format +#| msgid "&Remote files" +msgid "&Local files" +msgstr "Restroù &A-bell" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackupRemoteFiles) +#: dialogs/opensaveconfigadvwidget.ui:65 +#, kde-format +msgid "" +"If this option is enabled, backups for remote files will be created when " +"saving." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackupRemoteFiles) +#: dialogs/opensaveconfigadvwidget.ui:68 +#, kde-format +msgid "&Remote files" +msgstr "Restroù &A-bell" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/opensaveconfigadvwidget.ui:75 +#, kde-format +msgid "Prefix for backup files:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtBackupPrefix) +#: dialogs/opensaveconfigadvwidget.ui:85 +#, kde-format +msgid "Enter the prefix to prepend to the backup file names." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/opensaveconfigadvwidget.ui:92 +#, kde-format +msgid "Suffix for backup files:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtBackupSuffix) +#: dialogs/opensaveconfigadvwidget.ui:102 +#, kde-format +msgid "Enter the suffix to append to the backup file names." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:109 +#, fuzzy, kde-format +#| msgid "New Filetype" +msgid "Swap file mode:" +msgstr "Rizh nevez ar restr" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:125 +#, kde-format +msgid "Enabled, Store In Default Directory" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:130 +#, kde-format +msgid "Enabled, Store In Custom Directory" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapDirectory) +#: dialogs/opensaveconfigadvwidget.ui:138 +#, fuzzy, kde-format +#| msgid "New Filetype" +msgid "Store swap files in:" +msgstr "Rizh nevez ar restr" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapFileSync) +#: dialogs/opensaveconfigadvwidget.ui:158 +#, fuzzy, kde-format +#| msgid "New Filetype" +msgid "Save swap files every:" +msgstr "Rizh nevez ar restr" + +#. i18n: ectx: property (suffix), widget (QSpinBox, spbSwapFileSync) +#: dialogs/opensaveconfigadvwidget.ui:171 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Bash" +msgid "s" +msgstr "Bash" + +#. i18n: ectx: property (text), widget (QLabel, lblExplanatory) +#: dialogs/opensaveconfigadvwidget.ui:196 +#, kde-format +msgid "" +"This string is located in katedialogs.cpp in KateSaveConfigTab's constructor." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkEditorConfig) +#: dialogs/opensaveconfigadvwidget.ui:209 +#, fuzzy, kde-format +#| msgid "Do not use config file" +msgid "Honor settings in .editorconfig file" +msgstr "N'implijit ket restr ar gefluniadur" + +#. i18n: ectx: property (text), widget (QCheckBox, chkUseFirstLineAsDocName) +#: dialogs/opensaveconfigadvwidget.ui:229 +#, kde-format +msgid "Use first line of untitled documents for document name" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbFileFormat) +#: dialogs/opensaveconfigwidget.ui:29 +#, kde-format +msgid "File Format" +msgstr "Furmad ar restroù" + +#. i18n: ectx: property (text), widget (QLabel, lblEncoding) +#: dialogs/opensaveconfigwidget.ui:40 +#, kde-format +msgid "&Encoding:" +msgstr "&Kodadur :" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncoding) +#: dialogs/opensaveconfigwidget.ui:50 +#, kde-format +msgid "" +"This defines the standard encoding to use to open/save files, if not changed " +"in the open/save dialog or by using a command line option." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblEncodingDetection) +#: dialogs/opensaveconfigwidget.ui:57 +#, fuzzy, kde-format +#| msgid "&Encoding:" +msgid "&Encoding detection:" +msgstr "&Kodadur :" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncodingDetection) +#: dialogs/opensaveconfigwidget.ui:67 +#, kde-format +msgid "" +"if neither the encoding chosen as standard above, nor the encoding specified " +"in the open/save dialog, nor the encoding specified on command line match " +"the content of the file, this detection will be run." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblEncodingDetection2) +#: dialogs/opensaveconfigwidget.ui:74 +#, fuzzy, kde-format +#| msgid "&Encoding:" +msgid "&Fallback encoding:" +msgstr "&Kodadur :" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncodingFallback) +#: dialogs/opensaveconfigwidget.ui:84 +#, kde-format +msgid "" +"This defines the fallback encoding to try for opening files if neither the " +"encoding chosen as standard above, nor the encoding specified in the open/" +"save dialog, nor the encoding specified on command line match the content of " +"the file. Before this is used, an attempt will be made to determine the " +"encoding to use by looking for a byte order mark at start of file: if one is " +"found, the right Unicode encoding will be chosen; otherwise encoding " +"detection will run, if both fail the fallback encoding will be tried." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblEOL) +#: dialogs/opensaveconfigwidget.ui:91 +#, fuzzy, kde-format +#| msgid "&End of Line" +msgid "E&nd of line:" +msgstr "&Fin al linenn" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:102 +#, kde-format +msgid "UNIX" +msgstr "UNIX" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:107 +#, kde-format +msgid "DOS/Windows" +msgstr "DOS/Windows" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:112 +#, kde-format +msgid "Macintosh" +msgstr "Macintosh" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkDetectEOL) +#: dialogs/opensaveconfigwidget.ui:122 +#, kde-format +msgid "" +"If this option is enabled the editor will autodetect the end of line type. " +"The first found end of line type will be used for the whole file." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDetectEOL) +#: dialogs/opensaveconfigwidget.ui:125 +#, fuzzy, kde-format +msgid "A&utomatic end of line detection" +msgstr "Emgeflosk" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkEnableBOM) +#: dialogs/opensaveconfigwidget.ui:132 +#, kde-format +msgid "" +"The byte order mark is a special sequence at the beginning of Unicode " +"encoded documents. It helps editors to open text documents with the correct " +"Unicode encoding. The byte order mark is not visible in the displayed " +"document." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkEnableBOM) +#: dialogs/opensaveconfigwidget.ui:135 +#, kde-format +msgid "Enable byte order mark (BOM)" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/opensaveconfigwidget.ui:142 +#, kde-format +msgid "Line length limit:" +msgstr "" + +#. i18n: ectx: property (specialValueText), widget (QSpinBox, lineLengthLimit) +#: dialogs/opensaveconfigwidget.ui:152 +#, fuzzy, kde-format +#| msgid "Untitled" +msgid "Unlimited" +msgstr "Diditl" + +#. i18n: ectx: property (title), widget (QGroupBox, gbCleanups) +#: dialogs/opensaveconfigwidget.ui:168 +#, fuzzy, kde-format +#| msgid "Backspace" +msgid "Automatic Cleanups on Save" +msgstr "War-gil" + +#. i18n: ectx: property (whatsThis), widget (QLabel, lblRemoveTrailingSpaces) +#. i18n: ectx: property (whatsThis), widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:176 dialogs/opensaveconfigwidget.ui:189 +#, kde-format +msgid "" +"Depending on the choice, trailing spaces are removed when saving a document, " +"either in the entire document or only of modified lines." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:179 +#, fuzzy, kde-format +#| msgid "H&ighlight:" +msgid "Re&move trailing spaces:" +msgstr "S&plannadur :" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, spbAutoSaveInterval) +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/opensaveconfigwidget.ui:193 dialogs/opensaveconfigwidget.ui:270 +#: dialogs/textareaappearanceconfigwidget.ui:104 +#, kde-format +msgid "Never" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:198 +#, fuzzy, kde-format +#| msgid "Scroll Line Up" +msgid "On Modified Lines" +msgstr "Dibunañ al linenn a-ius" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:203 +#, fuzzy, kde-format +#| msgid "&Word Wrap Document" +msgid "In Entire Document" +msgstr "Plegañ an teul" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkNewLineAtEof) +#: dialogs/opensaveconfigwidget.ui:226 +#, kde-format +msgid "" +"On save, a line break is appended to the document if not already present. " +"The line break is visible after reloading the file." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkNewLineAtEof) +#: dialogs/opensaveconfigwidget.ui:229 +#, kde-format +msgid "Append newline at end of file on save" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbAutoSave) +#: dialogs/opensaveconfigwidget.ui:239 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgid "Enable Auto Save (local files only)" +msgstr "Lugent klokadur a ger" + +#. i18n: ectx: property (text), widget (QCheckBox, cbAutoSaveOnFocus) +#: dialogs/opensaveconfigwidget.ui:254 +#, kde-format +msgid "Auto save document when the active document is losing focus" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/opensaveconfigwidget.ui:263 +#, kde-format +msgid "Auto save interval:" +msgstr "" + +#. i18n: ectx: property (suffix), widget (QSpinBox, spbAutoSaveInterval) +#: dialogs/opensaveconfigwidget.ui:273 +#, kde-format +msgid " seconds" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowHighlightingMode) +#: dialogs/statusbarconfigwidget.ui:19 +#, fuzzy, kde-format +#| msgid "H&ighlight:" +msgid "Show highlighting mode" +msgstr "S&plannadur :" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowInputMode) +#: dialogs/statusbarconfigwidget.ui:26 +#, fuzzy, kde-format +#| msgid "Show &icon border" +msgid "Show input mode" +msgstr "Diskouez &arlun ar vevenn" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowActiveDictionary) +#: dialogs/statusbarconfigwidget.ui:33 +#, fuzzy, kde-format +#| msgid "Choose Editor..." +msgid "Show active dictionary" +msgstr "Dibabit an aozer ..." + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowTabSetting) +#: dialogs/statusbarconfigwidget.ui:40 +#, fuzzy, kde-format +#| msgid "Show &line numbers" +msgid "Show tab setting" +msgstr "Diskouez niverennoù &linenn" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowLineColumn) +#: dialogs/statusbarconfigwidget.ui:47 +#, fuzzy, kde-format +#| msgid "Show &Line Numbers" +msgid "Show line column" +msgstr "Diskouez niverennoù &linenn" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowEncoding) +#: dialogs/statusbarconfigwidget.ui:54 +#, fuzzy, kde-format +#| msgid "E&ncoding" +msgid "Show File Encoding" +msgstr "K&odadur" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowEOL) +#: dialogs/statusbarconfigwidget.ui:61 +#, kde-format +msgid "Show Line Ending Type" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/textareaappearanceconfigwidget.ui:28 +#, fuzzy, kde-format +#| msgid "Plugins" +msgid "Editor font:" +msgstr "Lugentoù" + +#. i18n: ectx: property (text), widget (QLabel, lblLineHeight) +#: dialogs/textareaappearanceconfigwidget.ui:48 +#, kde-format +msgid "&Line Height Multiplier:" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QDoubleSpinBox, spbLineHeightMultiplier) +#: dialogs/textareaappearanceconfigwidget.ui:58 +#, kde-format +msgid "" +"This value will be multiplied with the font's default line height. A value " +"of 1.0 means that the default height will be used." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/textareaappearanceconfigwidget.ui:93 +#, kde-format +msgid "Show whitespace indicators:" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/textareaappearanceconfigwidget.ui:109 +#, fuzzy, kde-format +#| msgid "Select to End of Line" +msgid "At the end of a line" +msgstr "Dibab betek dibenn al linenn" + +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/textareaappearanceconfigwidget.ui:114 +#, kde-format +msgid "Always" +msgstr "Bepred" + +#. i18n: ectx: property (text), widget (QLabel, lbMarkerDescription) +#: dialogs/textareaappearanceconfigwidget.ui:122 +#, fuzzy, kde-format +#| msgid "H&ighlight:" +msgid "Whitespace indicator si&ze:" +msgstr "S&plannadur :" + +#. i18n: ectx: property (whatsThis), widget (QSlider, sliSetMarkerSize) +#: dialogs/textareaappearanceconfigwidget.ui:138 +#, kde-format +msgid "Size of the visible highlight marker." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/textareaappearanceconfigwidget.ui:166 +#, fuzzy, kde-format +#| msgid "Show &line numbers" +msgid "Show &tab indicators:" +msgstr "Diskouez niverennoù &linenn" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowTabs) +#: dialogs/textareaappearanceconfigwidget.ui:176 +#, kde-format +msgid "" +"The editor will display a symbol to indicate the presence of a tab in the " +"text." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/textareaappearanceconfigwidget.ui:202 +#, fuzzy, kde-format +#| msgid "H&ighlight:" +msgid "Bracket matching:" +msgstr "S&plannadur :" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowWholeBracketExpression) +#: dialogs/textareaappearanceconfigwidget.ui:209 +#, kde-format +msgid "" +"If this is enabled, the range between the selected matching brackets will be " +"highlighted." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowWholeBracketExpression) +#: dialogs/textareaappearanceconfigwidget.ui:212 +#, kde-format +msgid "Highlight range between selected brackets" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:219 +#, kde-format +msgid "Show the matching open bracket and lines adjacent to it for context" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:222 +#, kde-format +msgid "" +"If this is enabled, a preview of the lines near a matching open bracket is " +"shown. This can help in quickly determining the context of a closing " +"bracket, especially in long function/class declarations and deeply nested if " +"blocks" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:225 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Show preview of matching open bracket" +msgstr "Moulañ an teul red." + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:232 +#, kde-format +msgid "Flash matching brackets" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:235 +#, kde-format +msgid "" +"If this is enabled, matching brackets are animated for better visibility." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:238 +#, kde-format +msgid "Flash matching bracket when cursor moves to other bracket in pair" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/textareaappearanceconfigwidget.ui:261 +#, kde-format +msgid "Counts:" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowWordCount) +#: dialogs/textareaappearanceconfigwidget.ui:268 +#, kde-format +msgid "Show/hide word count in status bar" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowWordCount) +#: dialogs/textareaappearanceconfigwidget.ui:271 view/katestatusbar.cpp:258 +#, kde-format +msgid "Show word count" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowLineCount) +#: dialogs/textareaappearanceconfigwidget.ui:278 +#, kde-format +msgid "Show/hide line count in status bar" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowLineCount) +#: dialogs/textareaappearanceconfigwidget.ui:281 view/katestatusbar.cpp:255 +#, fuzzy, kde-format +#| msgid "Show &Line Numbers" +msgid "Show line count" +msgstr "Diskouez niverennoù &linenn" + +#. i18n: ectx: property (text), widget (QLabel, label_25) +#: dialogs/textareaappearanceconfigwidget.ui:304 +#, fuzzy, kde-format +#| msgid "Go to Line" +msgid "Fold first line:" +msgstr "Kit da linenn" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkFoldFirstLine) +#: dialogs/textareaappearanceconfigwidget.ui:317 +#, kde-format +msgid "" +"When this setting is enabled, the editor view automatically folds\n" +"comment blocks that start on the first line of the document. This is\n" +"helpful to hide license headers which are commonly placed at the\n" +"beginning of a file." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbxWordWrap) +#: dialogs/textareaappearanceconfigwidget.ui:337 +#, fuzzy, kde-format +#| msgid "&Dynamic Word Wrap" +msgid "Dynamic Word Wrap:" +msgstr "Plegañ ar &gerioù ent buhezek" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDynWrapAtStaticMarker) +#: dialogs/textareaappearanceconfigwidget.ui:344 +#, fuzzy, kde-format +#| msgid "&Dynamic word wrap" +msgid "Wrap dynamically at static word wrap marker" +msgstr "Plegañ ar &gerioù ent &buhezek" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDynWrapAnywhere) +#: dialogs/textareaappearanceconfigwidget.ui:351 +#, kde-format +msgid "Disregard word boundaries for dynamic wrapping" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblDynamicWordWrapIndicators) +#: dialogs/textareaappearanceconfigwidget.ui:358 +#, fuzzy, kde-format +#| msgid "&Dynamic word wrap" +msgid "D&ynamic word wrap indicators:" +msgstr "Plegañ ar &gerioù ent &buhezek" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbDynamicWordWrapIndicator) +#: dialogs/textareaappearanceconfigwidget.ui:368 +#, kde-format +msgid "Choose when the Dynamic Word Wrap Indicators should be displayed." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/textareaappearanceconfigwidget.ui:391 +#, fuzzy, kde-format +#| msgid "Indentation" +msgid "I&ndent wrapped lines:" +msgstr "Keflosk" + +#. i18n: ectx: property (text), widget (QLabel, lblDynamicWordWrapIndicators_2) +#: dialogs/textareaappearanceconfigwidget.ui:408 +#, fuzzy, kde-format +#| msgid "Indentation" +msgid "&Don't indent lines wider than:" +msgstr "Keflosk" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbDynamicWordWrapDepth) +#: dialogs/textareaappearanceconfigwidget.ui:424 +#, no-c-format, kde-format +msgid "" +"

Enables the start of dynamically wrapped lines to be aligned vertically " +"to the indentation level of the first line. This can help to make code and " +"markup more readable.

Additionally, this allows you to set a maximum " +"width of the screen, as a percentage, after which dynamically wrapped lines " +"will no longer be vertically aligned. For example, at 50%, lines whose " +"indentation levels are deeper than 50% of the width of the screen will not " +"have vertical alignment applied to subsequent wrapped lines.

" +msgstr "" + +#. i18n: ectx: property (suffix), widget (QSpinBox, sbDynamicWordWrapDepth) +#: dialogs/textareaappearanceconfigwidget.ui:427 +#, fuzzy, no-c-format, kde-format +#| msgid "% of View Width" +msgid "% of View Width" +msgstr "% a ledander ar well" + +#. i18n: ectx: property (text), widget (QLabel, label_24) +#: dialogs/textareaappearanceconfigwidget.ui:443 +#, fuzzy, kde-format +msgid "Show i&ndentation lines:" +msgstr "Keflosk" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowIndentationLines) +#: dialogs/textareaappearanceconfigwidget.ui:453 +#, kde-format +msgid "" +"If this is enabled, the editor will display vertical lines to help identify " +"indent lines." +msgstr "" + +#: document/katebuffer.cpp:135 +#, fuzzy, kde-format +#| msgid "New Filetype" +msgctxt "short translation, user created new file" +msgid "New file" +msgstr "Rizh nevez ar restr" + +#: document/katedocument.cpp:223 +#, fuzzy, kde-format +#| msgid "&Word Wrap Document" +msgid "Auto Reload Document" +msgstr "Plegañ an teul" + +#: document/katedocument.cpp:225 +#, kde-format +msgid "Automatic reload the document when it was changed on disk" +msgstr "" + +#: document/katedocument.cpp:2307 +#, kde-format +msgid "" +"The file %1 could not be loaded, as it was not possible to read from it.
Check if you have read access to this file." +msgstr "" + +#: document/katedocument.cpp:2312 +#, kde-format +msgctxt "translators: you can also translate 'Try Again' with 'Reload'" +msgid "Try Again" +msgstr "" + +#: document/katedocument.cpp:2316 document/katedocument.cpp:6534 +#, kde-format +msgid "&Close" +msgstr "" + +#: document/katedocument.cpp:2317 document/katedocument.cpp:6535 +#, kde-format +msgctxt "Close the message being displayed" +msgid "Close message" +msgstr "" + +#: document/katedocument.cpp:2449 +#, kde-format +msgid "" +"The file %1 was opened with %2 encoding but contained invalid characters." +"
It is set to read-only mode, as saving might destroy its content.
Either reopen the file with the correct encoding chosen or enable the read-" +"write mode again in the tools menu to be able to edit it." +msgstr "" + +#: document/katedocument.cpp:2468 +#, kde-format +msgid "" +"The file %1 was opened and contained lines longer than the configured Line " +"Length Limit (%2 characters).
The longest of those lines was %3 " +"characters long
Those lines were wrapped and the document is set to read-" +"only mode, as saving will modify its content." +msgstr "" + +#: document/katedocument.cpp:2475 +#, kde-format +msgid "Temporarily raise limit and reload file" +msgstr "" + +#: document/katedocument.cpp:2478 +#, kde-format +msgid "Close" +msgstr "" + +#: document/katedocument.cpp:2505 +#, kde-format +msgid "" +"Do you really want to save this unmodified file? You could overwrite changed " +"data in the file on disk." +msgstr "" + +#: document/katedocument.cpp:2506 +#, kde-format +msgid "Trying to Save Unmodified File" +msgstr "" + +#: document/katedocument.cpp:2507 document/katedocument.cpp:2518 +#: document/katedocument.cpp:2534 +#, kde-format +msgid "Save Nevertheless" +msgstr "" + +#: document/katedocument.cpp:2516 +#, kde-format +msgid "" +"Do you really want to save this file? Both your open file and the file on " +"disk were changed. There could be some data lost." +msgstr "" + +#: document/katedocument.cpp:2517 document/katedocument.cpp:2533 +#: document/katedocument.cpp:2853 syntax/katethemeconfig.cpp:1218 +#: syntax/katethemeconfig.cpp:1376 +#, kde-format +msgid "Possible Data Loss" +msgstr "" + +#: document/katedocument.cpp:2531 +#, kde-format +msgid "" +"The selected encoding cannot encode every Unicode character in this " +"document. Do you really want to save it? There could be some data lost." +msgstr "" + +#: document/katedocument.cpp:2601 +#, kde-format +msgid "" +"The document could not be saved, as it was not possible to write to %1.\n" +"Check that you have write access to this file or that enough disk space is " +"available.\n" +"The original file may be lost or damaged. Don't quit the application until " +"the file is successfully written." +msgstr "" + +#: document/katedocument.cpp:2722 +#, kde-format +msgid "" +"For file %1 no backup copy could be created before saving. If an error " +"occurs while saving, you might lose the data of this file. A reason could be " +"that the media you write to is full or the directory of the file is read-" +"only for you." +msgstr "" + +#: document/katedocument.cpp:2726 +#, kde-format +msgid "Failed to create backup copy." +msgstr "" + +#: document/katedocument.cpp:2727 +#, kde-format +msgid "Try to Save Nevertheless" +msgstr "" + +#: document/katedocument.cpp:2852 +#, kde-format +msgid "Do you really want to continue to close this file? Data loss may occur." +msgstr "" + +#: document/katedocument.cpp:2854 +#, kde-format +msgid "Close Nevertheless" +msgstr "" + +#: document/katedocument.cpp:4641 +#, fuzzy, kde-format +#| msgid "Untitled" +msgid "Untitled (%1)" +msgstr "Diditl" + +#: document/katedocument.cpp:4643 +#, kde-format +msgid "Untitled" +msgstr "Diditl" + +#: document/katedocument.cpp:4820 document/katedocument.cpp:5051 +#: document/katedocument.cpp:5061 document/katedocument.cpp:5862 +#: document/katedocument.cpp:6049 +#, kde-format +msgid "Save File" +msgstr "Enrollañ ar restr" + +#: document/katedocument.cpp:4823 +#, kde-format +msgid "Save failed" +msgstr "Enrollañ sac'het" + +#: document/katedocument.cpp:5072 +#, fuzzy, kde-format +#| msgid "Save File" +msgid "Save Copy of File" +msgstr "Enrollañ ar restr" + +#: document/katedocument.cpp:5084 +#, kde-format +msgid "" +"The document could not be saved, as it was not possible to write to %1.\n" +"\n" +"Check that you have write access to this file or that enough disk space is " +"available." +msgstr "" + +#: document/katedocument.cpp:5376 +#, kde-format +msgid "" +"Using deprecated modeline 'remove-trailing-space'. Please replace with " +"'remove-trailing-spaces modified;', see https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" +msgstr "" + +#: document/katedocument.cpp:5382 +#, kde-format +msgid "" +"Using deprecated modeline 'replace-trailing-space-save'. Please replace with " +"'remove-trailing-spaces all;', see https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" +msgstr "" + +#: document/katedocument.cpp:5696 +#, fuzzy, kde-format +#| msgid "The file '%1' was deleted by another program." +msgid "The file '%1' was modified on disk." +msgstr "" +"Bez' ez eus un restr gant an anv « %1 » endeo\n" +"Ha fellout a ra deoc'h e rasklañ ?" + +#: document/katedocument.cpp:5698 +#, fuzzy, kde-format +#| msgid "The file '%1' was deleted by another program." +msgid "The file '%1' was deleted or moved on disk." +msgstr "" +"Bez' ez eus un restr gant an anv « %1 » endeo\n" +"Ha fellout a ra deoc'h e rasklañ ?" + +#: document/katedocument.cpp:6034 +#, kde-format +msgid "" +"The document \"%1\" has been modified.\n" +"Do you want to save your changes or discard them?" +msgstr "" + +#: document/katedocument.cpp:6037 +#, fuzzy, kde-format +#| msgid "&Word Wrap Document" +msgid "Close Document" +msgstr "Plegañ an teul" + +#: document/katedocument.cpp:6148 +#, kde-format +msgid "The file %2 is still loading." +msgstr "" + +#: document/katedocument.cpp:6153 +#, kde-format +msgid "&Abort Loading" +msgstr "" + +#: inputmode/katenormalinputmode.cpp:74 +#, kde-format +msgid "OVERWRITE" +msgstr "" + +#: inputmode/katenormalinputmode.cpp:74 +#, kde-format +msgid "INSERT" +msgstr "" + +#: inputmode/katenormalinputmodefactory.cpp:29 +#, fuzzy, kde-format +#| msgid "Normal Text" +msgid "Normal Mode" +msgstr "Skrid boas" + +#: inputmode/kateviinputmode.cpp:31 +#, kde-format +msgctxt "The INSERT mode of VI" +msgid "VI: INSERT" +msgstr "" + +#: inputmode/kateviinputmode.cpp:34 +#, kde-format +msgctxt "The NORMAL mode of VI" +msgid "VI: NORMAL" +msgstr "" + +#: inputmode/kateviinputmode.cpp:37 +#, kde-format +msgid "VI: VISUAL" +msgstr "" + +#: inputmode/kateviinputmode.cpp:40 +#, kde-format +msgid "VI: VISUAL BLOCK" +msgstr "" + +#: inputmode/kateviinputmode.cpp:43 +#, kde-format +msgid "VI: VISUAL LINE" +msgstr "" + +#: inputmode/kateviinputmode.cpp:46 +#, kde-format +msgid "VI: REPLACE" +msgstr "" + +#: inputmode/kateviinputmode.cpp:146 +#, kde-format +msgid "vi-mode" +msgstr "" + +#: inputmode/kateviinputmode.cpp:159 +#, fuzzy, kde-format +#| msgid "E&ncoding" +msgid "recording" +msgstr "K&odadur" + +#: inputmode/kateviinputmodefactory.cpp:38 utils/kateglobal.cpp:88 +#: vimode/config/configtab.cpp:237 +#, kde-format +msgid "Vi Input Mode" +msgstr "" + +#: mode/katemodeconfigpage.cpp:46 +#, kde-format +msgid "" +msgstr "" + +#: mode/katemodeconfigpage.cpp:58 +#, fuzzy, kde-format +#| msgid "Use Default Style" +msgid "Use Default" +msgstr "Implijit ar c'hiz dre ziouer" + +#: mode/katemodeconfigpage.cpp:99 mode/katemodeconfigpage.cpp:241 +#, kde-format +msgid "Properties of %1" +msgstr "&Perzhioù evit %1" + +#: mode/katemodeconfigpage.cpp:178 +#, kde-format +msgid "New Filetype" +msgstr "Rizh nevez ar restr" + +#: mode/katemodeconfigpage.cpp:293 +#, kde-format +msgid "" +"Select the MimeTypes you want for this file type.\n" +"Please note that this will automatically edit the associated file extensions " +"as well." +msgstr "" + +#: mode/katemodeconfigpage.cpp:295 +#, kde-format +msgid "Select Mime Types" +msgstr "Dibabit ar seurtoù Mime" + +#: mode/katemodeconfigpage.cpp:312 +#, fuzzy, kde-format +#| msgid "&Filetype" +msgid "Modes && Filetypes" +msgstr "Rizh ar &restr" + +#: mode/katemodemenulist.cpp:138 +#, fuzzy, kde-format +#| msgid "Search" +msgctxt "@info:placeholder" +msgid "Search…" +msgstr "Klask" + +#: mode/katemodemenulist.cpp:140 +#, kde-format +msgctxt "ToolTip of the search bar of modes of syntax highlighting" +msgid "" +"Search for syntax highlighting modes by language name or file extension (for " +"example, C++ or .cpp)" +msgstr "" + +#: mode/katemodemenulist.cpp:560 +#, kde-format +msgctxt "A search yielded no results" +msgid "No items matching your search" +msgstr "" + +#: mode/katemodemenulist.cpp:1087 +#, kde-format +msgctxt "" +"Title (in singular) of the best result in an item search. Please, that the " +"translation doesn't have more than 34 characters, since the menu where it's " +"displayed is small and fixed." +msgid "Best Search Match" +msgstr "" + +#: mode/katemodemenulist.cpp:1092 +#, kde-format +msgctxt "" +"Title (in plural) of the best results in an item search. Please, that the " +"translation doesn't have more than 34 characters, since the menu where it's " +"displayed is small and fixed." +msgid "Best Search Matches" +msgstr "" + +#: printing/printconfigwidgets.cpp:36 +#, kde-format +msgid "Te&xt Settings" +msgstr "Kefluniadur ar skr&id" + +#: printing/printconfigwidgets.cpp:40 +#, fuzzy, kde-format +#| msgid "Show &line numbers" +msgid "Print line &numbers" +msgstr "Diskouez niverennoù &linenn" + +#: printing/printconfigwidgets.cpp:43 +#, fuzzy, kde-format +#| msgid "Pr&int header" +msgid "Print &legend" +msgstr "Mo&ulañ ar reollin" + +#: printing/printconfigwidgets.cpp:46 +#, kde-format +msgid "Don't print folded code" +msgstr "" + +#: printing/printconfigwidgets.cpp:54 +#, kde-format +msgid "" +"

If enabled, line numbers will be printed on the left side of the page(s)." +"

" +msgstr "" + +#: printing/printconfigwidgets.cpp:56 +#, kde-format +msgid "" +"

Print a box displaying typographical conventions for the document type, " +"as defined by the syntax highlighting being used.

" +msgstr "" + +#: printing/printconfigwidgets.cpp:116 +#, kde-format +msgid "Hea&der && Footer" +msgstr "Reo&llin ha traoñ" + +#: printing/printconfigwidgets.cpp:123 +#, kde-format +msgid "Pr&int header" +msgstr "Mo&ulañ ar reollin" + +#: printing/printconfigwidgets.cpp:125 +#, kde-format +msgid "Pri&nt footer" +msgstr "Mou&lañ an traoñ" + +#: printing/printconfigwidgets.cpp:131 +#, kde-format +msgid "Header/footer font:" +msgstr "Nodrezh ar reollin/traoñ :" + +#: printing/printconfigwidgets.cpp:137 +#, kde-format +msgid "Header Properties" +msgstr "Perzhioù ar reollin" + +#: printing/printconfigwidgets.cpp:141 +#, kde-format +msgid "&Format:" +msgstr "&Furmad :" + +#: printing/printconfigwidgets.cpp:163 printing/printconfigwidgets.cpp:209 +#, kde-format +msgid "Colors:" +msgstr "Livioù :" + +#: printing/printconfigwidgets.cpp:170 printing/printconfigwidgets.cpp:216 +#, kde-format +msgid "Foreground:" +msgstr "War-c'horre :" + +#: printing/printconfigwidgets.cpp:175 +#, kde-format +msgid "Bac&kground" +msgstr "Dre&kleur" + +#: printing/printconfigwidgets.cpp:181 +#, kde-format +msgid "Footer Properties" +msgstr "Dibarzhoù an traoñ" + +#: printing/printconfigwidgets.cpp:186 +#, kde-format +msgid "For&mat:" +msgstr "Fur&mad :" + +#: printing/printconfigwidgets.cpp:221 +#, kde-format +msgid "&Background" +msgstr "&Drekleur" + +#: printing/printconfigwidgets.cpp:250 +#, kde-format +msgid "

Format of the page header. The following tags are supported:

" +msgstr "" + +#: printing/printconfigwidgets.cpp:252 +#, kde-format +msgid "" +"
  • %u: current user name
  • %d: complete date/" +"time in short format
  • %D: complete date/time in long format
  • %h: current time
  • %y: current date in short " +"format
  • %Y: current date in long format
  • %f: " +"file name
  • %U: full URL of the document
  • %p: " +"page number
  • %P: total amount of pages

" +msgstr "" + +#: printing/printconfigwidgets.cpp:266 +#, kde-format +msgid "

Format of the page footer. The following tags are supported:

" +msgstr "" + +#: printing/printconfigwidgets.cpp:352 +#, kde-format +msgid "Add Placeholder..." +msgstr "" + +#: printing/printconfigwidgets.cpp:354 +#, fuzzy, kde-format +#| msgid "Current line:" +msgid "Current User Name" +msgstr "Linenn red :" + +#: printing/printconfigwidgets.cpp:356 +#, kde-format +msgid "Complete Date/Time (short format)" +msgstr "" + +#: printing/printconfigwidgets.cpp:358 +#, kde-format +msgid "Complete Date/Time (long format)" +msgstr "" + +#: printing/printconfigwidgets.cpp:360 +#, fuzzy, kde-format +#| msgid "Current line:" +msgid "Current Time" +msgstr "Linenn red :" + +#: printing/printconfigwidgets.cpp:362 +#, kde-format +msgid "Current Date (short format)" +msgstr "" + +#: printing/printconfigwidgets.cpp:364 +#, kde-format +msgid "Current Date (long format)" +msgstr "" + +#: printing/printconfigwidgets.cpp:366 +#, fuzzy, kde-format +#| msgid "File Masks" +msgid "File Name" +msgstr "Maskloù restr" + +#: printing/printconfigwidgets.cpp:368 +#, kde-format +msgid "Full document URL" +msgstr "" + +#: printing/printconfigwidgets.cpp:370 +#, kde-format +msgid "Page Number" +msgstr "" + +#: printing/printconfigwidgets.cpp:372 +#, kde-format +msgid "Total Amount of Pages" +msgstr "" + +#: printing/printconfigwidgets.cpp:478 +#, kde-format +msgid "L&ayout" +msgstr "Do&are" + +#: printing/printconfigwidgets.cpp:484 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "&Color theme:" +msgstr "Livioù" + +#: printing/printconfigwidgets.cpp:494 +#, fuzzy, kde-format +#| msgid "Font" +msgid "Font:" +msgstr "Nodrez" + +#: printing/printconfigwidgets.cpp:498 +#, kde-format +msgid "Draw bac&kground color" +msgstr "" + +#: printing/printconfigwidgets.cpp:501 +#, kde-format +msgid "Draw &boxes" +msgstr "Tresañ ar &boestoù" + +#: printing/printconfigwidgets.cpp:505 +#, kde-format +msgid "Box Properties" +msgstr "Perzhioù ar voest" + +#: printing/printconfigwidgets.cpp:509 +#, kde-format +msgid "W&idth:" +msgstr "L&edander :" + +#: printing/printconfigwidgets.cpp:517 +#, kde-format +msgid "&Margin:" +msgstr "&Bevenn :" + +#: printing/printconfigwidgets.cpp:525 +#, kde-format +msgid "Co&lor:" +msgstr "&Liv :" + +#: printing/printconfigwidgets.cpp:547 +#, kde-format +msgid "Select the color theme to use for the print." +msgstr "" + +#: printing/printconfigwidgets.cpp:549 +#, kde-format +msgid "" +"

If enabled, the background color of the editor will be used.

This " +"may be useful if your color theme is designed for a dark background.

" +msgstr "" + +#: printing/printconfigwidgets.cpp:552 +#, kde-format +msgid "" +"

If enabled, a box as defined in the properties below will be drawn around " +"the contents of each page. The Header and Footer will be separated from the " +"contents with a line as well.

" +msgstr "" + +#: printing/printconfigwidgets.cpp:555 +#, kde-format +msgid "The width of the box outline" +msgstr "" + +#: printing/printconfigwidgets.cpp:556 +#, kde-format +msgid "The margin inside boxes, in pixels" +msgstr "" + +#: printing/printconfigwidgets.cpp:557 +#, kde-format +msgid "The line color to use for boxes" +msgstr "Liv al linenn da implij gant ar &boestoù" + +#: printing/printpainter.cpp:269 +#, kde-format +msgid "(Selection of) " +msgstr "(Diuzadenn eus) " + +#: printing/printpainter.cpp:522 +#, kde-format +msgid "Typographical Conventions for %1" +msgstr "" + +#: printing/printpainter.cpp:555 +#, fuzzy, kde-format +#| msgid "Next" +msgid "text" +msgstr "A heul" + +#: script/data/commands/emmet.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Expand Abbreviation" +msgstr "" + +#: script/data/commands/emmet.js:10 script/data/commands/emmet.js:14 +#: script/data/commands/emmet.js:19 script/data/commands/emmet.js:23 +#: script/data/commands/emmet.js:27 script/data/commands/emmet.js:31 +#: script/data/commands/emmet.js:35 script/data/commands/emmet.js:39 +#: script/data/commands/emmet.js:43 script/data/commands/emmet.js:47 +#: script/data/commands/emmet.js:51 script/data/commands/emmet.js:55 +#: script/data/commands/emmet.js:59 script/data/commands/emmet.js:63 +#: script/data/commands/emmet.js:67 script/data/commands/emmet.js:71 +#: script/data/commands/emmet.js:75 script/data/commands/emmet.js:79 +#: script/data/commands/emmet.js:83 +#, kde-format +msgctxt "Script command category" +msgid "Emmet" +msgstr "" + +#: script/data/commands/emmet.js:13 +#, kde-format +msgctxt "Script command name" +msgid "Wrap with Tag" +msgstr "" + +#: script/data/commands/emmet.js:18 +#, fuzzy, kde-format +#| msgid "Move Word Right" +msgctxt "Script command name" +msgid "Move Cursor to Matching Tag" +msgstr "Fiñval ar ger d'a-zehou" + +#: script/data/commands/emmet.js:22 +#, kde-format +msgctxt "Script command name" +msgid "Select HTML/XML Tag Contents Inwards" +msgstr "" + +#: script/data/commands/emmet.js:26 +#, kde-format +msgctxt "Script command name" +msgid "Select HTML/XML Tag Contents Outwards" +msgstr "" + +#: script/data/commands/emmet.js:30 +#, fuzzy, kde-format +#| msgid "Comment" +msgctxt "Script command name" +msgid "Toggle Comment" +msgstr "Askelenn" + +#: script/data/commands/emmet.js:34 +#, fuzzy, kde-format +#| msgid "Select to Next Line" +msgctxt "Script command name" +msgid "Go to Next Edit Point" +msgstr "Dibab betek al linenn a-heul" + +#: script/data/commands/emmet.js:38 +#, fuzzy, kde-format +#| msgid "Move to Previous Line" +msgctxt "Script command name" +msgid "Go to Previous Edit Point" +msgstr "Fiñval d'al linenn diaraok" + +#: script/data/commands/emmet.js:42 +#, fuzzy, kde-format +#| msgid "Select to Next Line" +msgctxt "Script command name" +msgid "Select Next Edit Point" +msgstr "Dibab betek al linenn a-heul" + +#: script/data/commands/emmet.js:46 +#, fuzzy, kde-format +#| msgid "Select to Previous Line" +msgctxt "Script command name" +msgid "Select Previous Edit Point" +msgstr "Dibab betek al linenn diaraok" + +#: script/data/commands/emmet.js:50 +#, fuzzy, kde-format +#| msgid "Delete the current file type." +msgctxt "Script command name" +msgid "Delete Tag Under Cursor" +msgstr "Lemel ar seurt restr red." + +#: script/data/commands/emmet.js:54 +#, kde-format +msgctxt "Script command name" +msgid "Split or Join a Tag" +msgstr "" + +#: script/data/commands/emmet.js:58 +#, kde-format +msgctxt "Script command name" +msgid "Evaluate a Simple Math Expression" +msgstr "" + +#: script/data/commands/emmet.js:62 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 1" +msgstr "" + +#: script/data/commands/emmet.js:66 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 10" +msgstr "" + +#: script/data/commands/emmet.js:70 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 0.1" +msgstr "" + +#: script/data/commands/emmet.js:74 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 1" +msgstr "" + +#: script/data/commands/emmet.js:78 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 10" +msgstr "" + +#: script/data/commands/emmet.js:82 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 0.1" +msgstr "" + +#: script/data/commands/emmet.js:96 +#, kde-format +msgid "" +"Expands the abbreviation using Emmet expressions; see http://code.google.com/" +"p/zen-coding/wiki/ZenHTMLSelectorsEn" +msgstr "" + +#: script/data/commands/emmet.js:97 +#, kde-format +msgid "" +"Wraps the selected text in XML tags constructed from the provided Emmet " +"expression (defaults to div)." +msgstr "" + +#: script/data/commands/emmet.js:98 +#, kde-format +msgid "Moves the caret to the current tag's pair" +msgstr "" + +#: script/data/commands/emmet.js:99 +#, kde-format +msgid "" +"Select contents of HTML/XML tag, moving inward on continuous invocations" +msgstr "" + +#: script/data/commands/emmet.js:100 +#, kde-format +msgid "" +"Select contents of HTML/XML tag, moving outwards on continuous invocations" +msgstr "" + +#: script/data/commands/emmet.js:101 +#, kde-format +msgid "Move to the next edit point (tag or empty attribute)." +msgstr "" + +#: script/data/commands/emmet.js:102 +#, kde-format +msgid "Move to the previous edit point (tag or empty attribute)." +msgstr "" + +#: script/data/commands/emmet.js:103 +#, fuzzy, kde-format +#| msgid "Select to Next Line" +msgid "Select next edit point (tag or empty attribute)." +msgstr "Dibab betek al linenn a-heul" + +#: script/data/commands/emmet.js:104 +#, fuzzy, kde-format +#| msgid "Select to Previous Line" +msgid "Select previous edit point (tag or empty attribute)." +msgstr "Dibab betek al linenn diaraok" + +#: script/data/commands/emmet.js:105 +#, kde-format +msgid "Toggle comment of current tag or CSS selector" +msgstr "" + +#: script/data/commands/emmet.js:106 +#, fuzzy, kde-format +#| msgid "Delete the current file type." +msgid "Deletes tag under cursor" +msgstr "Lemel ar seurt restr red." + +#: script/data/commands/emmet.js:107 +#, kde-format +msgid "Splits or joins a tag" +msgstr "" + +#: script/data/commands/emmet.js:108 +#, kde-format +msgid "Evaluates a simple math expression" +msgstr "" + +#: script/data/commands/emmet.js:109 +#, kde-format +msgid "Decrement number under cursor by 1" +msgstr "" + +#: script/data/commands/emmet.js:110 +#, kde-format +msgid "Decrement number under cursor by 10" +msgstr "" + +#: script/data/commands/emmet.js:111 +#, kde-format +msgid "Decrement number under cursor by 0.1" +msgstr "" + +#: script/data/commands/emmet.js:112 +#, kde-format +msgid "Increment number under cursor by 1" +msgstr "" + +#: script/data/commands/emmet.js:113 +#, kde-format +msgid "Increment number under cursor by 10" +msgstr "" + +#: script/data/commands/emmet.js:114 +#, kde-format +msgid "Increment number under cursor by 0.1" +msgstr "" + +#: script/data/commands/jumpMatchingIndent.js:9 +#, fuzzy, kde-format +#| msgid "Move Word Right" +msgctxt "Script command name" +msgid "Move Cursor to Previous Matching Indent" +msgstr "Fiñval ar ger d'a-zehou" + +#: script/data/commands/jumpMatchingIndent.js:11 +#: script/data/commands/jumpMatchingIndent.js:16 +#: script/data/commands/jumpMatchingIndent.js:21 +#: script/data/commands/jumpMatchingIndent.js:26 +#: script/data/commands/navigation.js:10 script/data/commands/navigation.js:14 +#, fuzzy, kde-format +#| msgctxt "Language Section" +#| msgid "Configuration" +msgctxt "Script command category" +msgid "Navigation" +msgstr "Kefluniadur" + +#: script/data/commands/jumpMatchingIndent.js:14 +#, fuzzy, kde-format +#| msgid "Move Word Right" +msgctxt "Script command name" +msgid "Move Cursor to Next Matching Indent" +msgstr "Fiñval ar ger d'a-zehou" + +#: script/data/commands/jumpMatchingIndent.js:19 +#, fuzzy, kde-format +#| msgid "Move Word Right" +msgctxt "Script command name" +msgid "Move Cursor to Next Blank Line" +msgstr "Fiñval ar ger d'a-zehou" + +#: script/data/commands/jumpMatchingIndent.js:24 +#, fuzzy, kde-format +#| msgid "Move Word Right" +msgctxt "Script command name" +msgid "Move Cursor to Previous Blank Line" +msgstr "Fiñval ar ger d'a-zehou" + +#: script/data/commands/jumpMatchingIndent.js:80 +#, fuzzy, kde-format +#| msgid "Move Word Right" +msgid "Move cursor to previous matching indent" +msgstr "Fiñval ar ger d'a-zehou" + +#: script/data/commands/jumpMatchingIndent.js:83 +#, fuzzy, kde-format +#| msgid "Move Word Right" +msgid "Move cursor to next matching indent" +msgstr "Fiñval ar ger d'a-zehou" + +#: script/data/commands/jumpMatchingIndent.js:85 +#, fuzzy, kde-format +#| msgid "Move Word Right" +msgid "Move cursor to next blank line" +msgstr "Fiñval ar ger d'a-zehou" + +#: script/data/commands/jumpMatchingIndent.js:87 +#, fuzzy, kde-format +#| msgid "Move Word Right" +msgid "Move cursor to previous blank line" +msgstr "Fiñval ar ger d'a-zehou" + +#: script/data/commands/navigation.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Go to Next Paragraph" +msgstr "" + +#: script/data/commands/navigation.js:13 +#, fuzzy, kde-format +#| msgid "Move to Previous Line" +msgctxt "Script command name" +msgid "Go to Previous Paragraph" +msgstr "Fiñval d'al linenn diaraok" + +#: script/data/commands/utils.js:9 +#, fuzzy, kde-format +#| msgid "H&ighlight:" +msgctxt "Script command name" +msgid "Remove Trailing Spaces" +msgstr "S&plannadur :" + +#: script/data/commands/utils.js:10 script/data/commands/utils.js:14 +#: script/data/commands/utils.js:18 script/data/commands/utils.js:22 +#: script/data/commands/utils.js:27 script/data/commands/utils.js:32 +#: script/data/commands/utils.js:36 script/data/commands/utils.js:40 +#: script/data/commands/utils.js:44 script/data/commands/utils.js:48 +#: script/data/commands/utils.js:52 script/data/commands/utils.js:56 +#, fuzzy, kde-format +#| msgid "Editing" +msgctxt "Script command category" +msgid "Editing" +msgstr "Emaon oc'h aozañ" + +#: script/data/commands/utils.js:13 +#, fuzzy, kde-format +#| msgid "H&ighlight:" +msgctxt "Script command name" +msgid "Remove Leading Spaces" +msgstr "S&plannadur :" + +#: script/data/commands/utils.js:17 +#, fuzzy, kde-format +#| msgid "H&ighlight:" +msgctxt "Script command name" +msgid "Remove Trailing and Leading Spaces" +msgstr "S&plannadur :" + +#: script/data/commands/utils.js:21 +#, fuzzy, kde-format +#| msgid "Scroll Line Up" +msgctxt "Script command name" +msgid "Join Lines" +msgstr "Dibunañ al linenn a-ius" + +#: script/data/commands/utils.js:25 +#, fuzzy, kde-format +#| msgid "Scroll Line Down" +msgctxt "Script command name" +msgid "Move Lines Down" +msgstr "Dibunañ al linenn izeloc'h" + +#: script/data/commands/utils.js:30 +#, fuzzy, kde-format +#| msgid "Scroll Line Up" +msgctxt "Script command name" +msgid "Move Lines Up" +msgstr "Dibunañ al linenn a-ius" + +#: script/data/commands/utils.js:35 +#, fuzzy, kde-format +#| msgid "Selected" +msgctxt "Script command name" +msgid "Duplicate Selected Lines Down" +msgstr "Diuzet" + +#: script/data/commands/utils.js:39 +#, fuzzy, kde-format +#| msgid "Selected" +msgctxt "Script command name" +msgid "Duplicate Selected Lines Up" +msgstr "Diuzet" + +#: script/data/commands/utils.js:43 +#, fuzzy, kde-format +#| msgid "Selected" +msgctxt "Script command name" +msgid "Duplicate selected text" +msgstr "Diuzet" + +#: script/data/commands/utils.js:47 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgctxt "Script command name" +msgid "URI-encode Selected Text" +msgstr "Testenn diuzet :" + +#: script/data/commands/utils.js:51 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgctxt "Script command name" +msgid "URI-decode Selected Text" +msgstr "Testenn diuzet :" + +#: script/data/commands/utils.js:55 +#, fuzzy, kde-format +#| msgid "Move Word Right" +msgctxt "Script command name" +msgid "Remove Empty Lines" +msgstr "Fiñval ar ger d'a-zehou" + +#: script/data/commands/utils.js:410 +#, kde-format +msgid "Sort the selected text or whole document." +msgstr "" + +#: script/data/commands/utils.js:412 +#, fuzzy, kde-format +#| msgid "Selected" +msgid "Move selected lines down." +msgstr "Diuzet" + +#: script/data/commands/utils.js:414 +#, fuzzy, kde-format +#| msgid "Selected" +msgid "Move selected lines up." +msgstr "Diuzet" + +#: script/data/commands/utils.js:416 +#, kde-format +msgid "Remove duplicate lines from the selected text or whole document." +msgstr "" + +#: script/data/commands/utils.js:418 +#, kde-format +msgid "" +"Sort the selected text or whole document in natural order.
Here is an " +"example to show the difference to the normal sort method:
sort(a10, a1, " +"a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" +msgstr "" + +#: script/data/commands/utils.js:420 +#, kde-format +msgid "Trims trailing whitespace from selection or whole document." +msgstr "" + +#: script/data/commands/utils.js:422 +#, kde-format +msgid "Trims leading whitespace from selection or whole document." +msgstr "" + +#: script/data/commands/utils.js:424 +#, kde-format +msgid "Trims leading and trailing whitespace from selection or whole document." +msgstr "" + +#: script/data/commands/utils.js:426 +#, kde-format +msgid "" +"Joins selected lines or whole document. Optionally pass a separator to put " +"between each line:
join ', ' will e.g. join lines and " +"separate them by a comma." +msgstr "" + +#: script/data/commands/utils.js:428 +#, kde-format +msgid "Removes empty lines from selection or whole document." +msgstr "" + +#: script/data/commands/utils.js:430 +#, kde-format +msgid "" +"This command aligns lines in the selected block or whole document on the " +"column given by a regular expression given as an argument.

If you " +"give an empty pattern it will align on the first non-blank character by " +"default.
If the pattern has a capture it will indent on the captured " +"match.

Examples:
'alignon -' will insert " +"spaces before the first '-' of each lines to align them all on the same " +"column.
'alignon :\\s+(.)' will insert spaces before the " +"first non-blank character that occurs after a colon to align them all on the " +"same column." +msgstr "" + +#: script/data/commands/utils.js:434 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and replace them with the return value of that callback." +"
Example (join selected lines):
each 'function(lines){return " +"lines.join(\", \");}'
To save you some typing, you can also do " +"this to achieve the same:
each 'lines.join(\", \")'" +msgstr "" + +#: script/data/commands/utils.js:436 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and remove those where the callback returns false." +"
Example (see also rmblank):
filter 'function(l)" +"{return l.length > 0;}'
To save you some typing, you can also do " +"this to achieve the same:
filter 'line.length > 0'" +msgstr "" + +#: script/data/commands/utils.js:438 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and replace the line with the return value of the callback." +"
Example (see also ltrim):
map 'function(line)" +"{return line.replace(/^\\s+/, \"\");}'
To save you some typing, " +"you can also do this to achieve the same:
map 'line.replace(/^\\s" +"+/, \"\")'" +msgstr "" + +#: script/data/commands/utils.js:440 +#, kde-format +msgid "Duplicates the selected lines up." +msgstr "" + +#: script/data/commands/utils.js:442 +#, kde-format +msgid "Duplicates the selected lines down." +msgstr "" + +#: script/data/commands/utils.js:446 +#, kde-format +msgid "" +"Encode special chars in a single line selection, so the result text can be " +"used as URI." +msgstr "" + +#: script/data/commands/utils.js:448 +#, kde-format +msgid "Reverse action of URI encode." +msgstr "" + +#: script/data/commands/utils.js:450 +#, kde-format +msgid "" +"Select text forward from current cursor position to the first occurrence of " +"the given argument after it (or the end of the current line by default)." +msgstr "" + +#: script/data/commands/utils.js:452 +#, kde-format +msgid "" +"Select text backward from current cursor position to the last occurrence of " +"the given argument before it (or the beginning of the current line by " +"default)." +msgstr "" + +#: script/data/indentation/ada.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Ada" +msgctxt "Autoindent mode" +msgid "ada" +msgstr "Ada" + +#: script/data/indentation/cmake.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "CMake" +msgctxt "Autoindent mode" +msgid "CMake" +msgstr "CMake" + +#: script/data/indentation/cppstyle.js:2 +#, fuzzy, kde-format +#| msgid "C Style" +msgctxt "Autoindent mode" +msgid "C++/boost Style" +msgstr "Giz C" + +#: script/data/indentation/cstyle.js:2 +#, fuzzy, kde-format +#| msgid "C Style" +msgctxt "Autoindent mode" +msgid "C Style" +msgstr "Giz C" + +#: script/data/indentation/haskell.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Haskell" +msgctxt "Autoindent mode" +msgid "Haskell" +msgstr "Haskell" + +#: script/data/indentation/julia.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Julia" +msgstr "" + +#: script/data/indentation/latex.js:2 +#, fuzzy, kde-format +#| msgid "Latest" +msgctxt "Autoindent mode" +msgid "Latex" +msgstr "Diwezhatañ" + +#: script/data/indentation/lilypond.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "LilyPond" +msgctxt "Autoindent mode" +msgid "LilyPond" +msgstr "LilyPond" + +#: script/data/indentation/lisp.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "LISP" +msgstr "" + +#: script/data/indentation/pascal.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Pascal" +msgctxt "Autoindent mode" +msgid "Pascal" +msgstr "Pascal" + +#: script/data/indentation/python.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Python" +msgctxt "Autoindent mode" +msgid "Python" +msgstr "Python" + +#: script/data/indentation/r.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "R" +msgstr "" + +#: script/data/indentation/replicode.js:2 +#, fuzzy, kde-format +#| msgid "&Replace" +msgctxt "Autoindent mode" +msgid "Replicode" +msgstr "&Erlec'hiañ" + +#: script/data/indentation/ruby.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Ruby" +msgctxt "Autoindent mode" +msgid "Ruby" +msgstr "Ruby" + +#: script/data/indentation/xml.js:2 +#, fuzzy, kde-format +#| msgid "XML Style" +msgctxt "Autoindent mode" +msgid "XML Style" +msgstr "Giz XML" + +#: script/katecommandlinescript.cpp:37 +#, kde-format +msgid "Function '%1' not found in script: %2" +msgstr "" + +#: script/katecommandlinescript.cpp:51 +#, fuzzy, kde-format +#| msgid "Error: %1" +msgid "Error calling %1" +msgstr "Fazi : %1" + +#: script/katecommandlinescript.cpp:68 +#, kde-format +msgid "Bad quoting in call: %1. Please escape single quotes with a backslash." +msgstr "" + +#: script/katecommandlinescript.cpp:76 utils/katecmds.cpp:217 +#: vimode/cmds.cpp:37 +#, kde-format +msgid "Could not access view" +msgstr "Ne m'eus ket gallet tizhout ar wel." + +#: script/katecommandlinescript.cpp:118 +#, kde-format +msgid "Error calling 'help %1'" +msgstr "" + +#: script/katecommandlinescript.cpp:123 +#, kde-format +msgid "No help specified for command '%1' in script %2" +msgstr "" + +#: script/katescript.cpp:282 +#, fuzzy, kde-format +#| msgid "Error: %1" +msgid "Error loading script %1: %2" +msgstr "Fazi : %1" + +#: script/katescriptmanager.cpp:319 +#, kde-format +msgid "Reload all JavaScript files (indenters, command line scripts, etc)." +msgstr "" + +#: script/katescriptview.cpp:214 +#, fuzzy, kde-format +msgid "Command not found: %1" +msgstr "N'eo ket bet kavet an urzhiad" + +#: search/katesearchbar.cpp:73 +#, kde-format +msgid "Add..." +msgstr "Ouzhpennañ ..." + +#: search/katesearchbar.cpp:298 +#, fuzzy, kde-format +#| msgid "Replace" +msgctxt "short translation" +msgid "1 replacement made" +msgid_plural "%1 replacements made" +msgstr[0] "Erlec'hiañ" +msgstr[1] "" + +#: search/katesearchbar.cpp:300 +#, kde-format +msgctxt "short translation" +msgid "1 match found" +msgid_plural "%1 matches found" +msgstr[0] "" +msgstr[1] "" + +#: search/katesearchbar.cpp:374 +#, kde-format +msgid "Reached top, continued from bottom" +msgstr "" + +#: search/katesearchbar.cpp:376 +#, kde-format +msgid "Reached bottom, continued from top" +msgstr "" + +#: search/katesearchbar.cpp:381 +#, kde-format +msgid "Not found" +msgstr "" + +#: search/katesearchbar.cpp:615 +#, kde-format +msgid "Bottom of file reached. Continue from top?" +msgstr "" + +#: search/katesearchbar.cpp:615 +#, kde-format +msgid "Top of file reached. Continue from bottom?" +msgstr "" + +#: search/katesearchbar.cpp:618 +#, fuzzy, kde-format +#| msgid "Continue from the end?" +msgid "Continue search?" +msgstr "Kenderc'hel adalek an diwezh ?" + +#: search/katesearchbar.cpp:920 +#, fuzzy, kde-format +#| msgid "H&ighlight:" +msgid "SearchHighLight" +msgstr "S&plannadur :" + +#: search/katesearchbar.cpp:1136 search/katesearchbar.cpp:1755 +#, kde-format +msgid "Clear history" +msgstr "" + +#: search/katesearchbar.cpp:1166 +#, fuzzy, kde-format +#| msgid "Move to Beginning of Line" +msgid "Beginning of line" +msgstr "Fiñval da zerou al linenn" + +#: search/katesearchbar.cpp:1167 +#, fuzzy, kde-format +#| msgid "&End of Line" +msgid "End of line" +msgstr "&Fin al linenn" + +#: search/katesearchbar.cpp:1169 +#, kde-format +msgid "Match any character excluding new line (by default)" +msgstr "" + +#: search/katesearchbar.cpp:1170 +#, kde-format +msgid "One or more occurrences" +msgstr "" + +#: search/katesearchbar.cpp:1171 +#, kde-format +msgid "Zero or more occurrences" +msgstr "" + +#: search/katesearchbar.cpp:1172 +#, kde-format +msgid "Zero or one occurrences" +msgstr "" + +#: search/katesearchbar.cpp:1175 +#, kde-format +msgid " through occurrences" +msgstr "" + +#: search/katesearchbar.cpp:1181 +#, kde-format +msgid "Group, capturing" +msgstr "" + +#: search/katesearchbar.cpp:1182 +#, kde-format +msgid "Or" +msgstr "" + +#: search/katesearchbar.cpp:1183 +#, fuzzy, kde-format +#| msgid "Character" +msgid "Set of characters" +msgstr "Arouezennoù" + +#: search/katesearchbar.cpp:1184 +#, fuzzy, kde-format +#| msgid "Delete Next Character" +msgid "Negative set of characters" +msgstr "Lemel an arouezenn a-heul" + +#: search/katesearchbar.cpp:1188 +#, kde-format +msgid "Whole match reference" +msgstr "" + +#: search/katesearchbar.cpp:1199 +#, kde-format +msgid "Reference" +msgstr "" + +#: search/katesearchbar.cpp:1206 +#, fuzzy, kde-format +#| msgid "Line numbers:" +msgid "Line break" +msgstr "Niverennoù al linennoù :" + +#: search/katesearchbar.cpp:1207 +#, kde-format +msgid "Tab" +msgstr "Blavennig" + +#: search/katesearchbar.cpp:1210 +#, kde-format +msgid "Word boundary" +msgstr "" + +#: search/katesearchbar.cpp:1211 +#, kde-format +msgid "Not word boundary" +msgstr "" + +#: search/katesearchbar.cpp:1212 +#, kde-format +msgid "Digit" +msgstr "Sifr" + +#: search/katesearchbar.cpp:1213 +#, kde-format +msgid "Non-digit" +msgstr "" + +#: search/katesearchbar.cpp:1214 +#, kde-format +msgid "Whitespace (excluding line breaks)" +msgstr "" + +#: search/katesearchbar.cpp:1215 +#, fuzzy, kde-format +#| msgid "&Replace" +msgid "Non-whitespace" +msgstr "&Erlec'hiañ" + +#: search/katesearchbar.cpp:1216 +#, kde-format +msgid "Word character (alphanumerics plus '_')" +msgstr "" + +#: search/katesearchbar.cpp:1217 +#, fuzzy, kde-format +#| msgid "Character" +msgid "Non-word character" +msgstr "Arouezennoù" + +#: search/katesearchbar.cpp:1220 +#, kde-format +msgid "Octal character 000 to 377 (2^8-1)" +msgstr "" + +#: search/katesearchbar.cpp:1221 +#, kde-format +msgid "Hex character 0000 to FFFF (2^16-1)" +msgstr "" + +#: search/katesearchbar.cpp:1222 +#, fuzzy, kde-format +#| msgid "Backspace" +msgid "Backslash" +msgstr "War-gil" + +#: search/katesearchbar.cpp:1226 +#, kde-format +msgid "Group, non-capturing" +msgstr "" + +#: search/katesearchbar.cpp:1227 +#, kde-format +msgid "Positive Lookahead" +msgstr "" + +#: search/katesearchbar.cpp:1228 +#, kde-format +msgid "Negative lookahead" +msgstr "" + +#: search/katesearchbar.cpp:1232 +#, kde-format +msgid "Fixed-length positive lookbehind" +msgstr "" + +#: search/katesearchbar.cpp:1233 +#, kde-format +msgid "Fixed-length negative lookbehind" +msgstr "" + +#: search/katesearchbar.cpp:1238 +#, kde-format +msgid "Begin lowercase conversion" +msgstr "" + +#: search/katesearchbar.cpp:1239 +#, kde-format +msgid "Begin uppercase conversion" +msgstr "" + +#: search/katesearchbar.cpp:1240 +#, kde-format +msgid "End case conversion" +msgstr "" + +#: search/katesearchbar.cpp:1241 +#, kde-format +msgid "Lowercase first character conversion" +msgstr "" + +#: search/katesearchbar.cpp:1242 +#, kde-format +msgid "Uppercase first character conversion" +msgstr "" + +#: search/katesearchbar.cpp:1243 +#, kde-format +msgid "Replacement counter (for Replace All)" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: search/searchbarincremental.ui:50 +#, fuzzy, kde-format +#| msgid "Find" +msgid "F&ind:" +msgstr "Klask" + +#. i18n: ectx: property (toolTip), widget (QComboBox, pattern) +#: search/searchbarincremental.ui:78 search/searchbarpower.ui:295 +#, kde-format +msgid "Text to search for" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QToolButton, findNext) +#. i18n: ectx: property (toolTip), widget (QToolButton, next) +#: search/searchbarincremental.ui:91 search/searchbarpower.ui:175 +#, kde-format +msgid "Jump to next match" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QToolButton, findPrev) +#. i18n: ectx: property (toolTip), widget (QToolButton, prev) +#: search/searchbarincremental.ui:101 search/searchbarpower.ui:185 +#, fuzzy, kde-format +#| msgid "Go to the previous bookmark." +msgid "Jump to previous match" +msgstr "Mont d'ar sil diaraok." + +#. i18n: ectx: property (toolTip), widget (QToolButton, matchCase) +#: search/searchbarincremental.ui:111 search/searchbarpower.ui:136 +#, fuzzy, kde-format +#| msgid "Case &sensitive" +msgid "Match case sensitive" +msgstr "Evezh&iek ouzh ar c'hef" + +#. i18n: ectx: property (toolTip), widget (QToolButton, mutate) +#: search/searchbarincremental.ui:146 +#, kde-format +msgid "Switch to power search and replace bar" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: search/searchbarpower.ui:50 +#, kde-format +msgid "Fin&d:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: search/searchbarpower.ui:63 +#, fuzzy, kde-format +#| msgid "Replace" +msgid "Rep&lace:" +msgstr "Erlec'hiañ" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: search/searchbarpower.ui:76 +#, fuzzy, kde-format +#| msgid "&Bold" +msgid "&Mode:" +msgstr "&Druz" + +#. i18n: ectx: property (toolTip), widget (QComboBox, searchMode) +#: search/searchbarpower.ui:103 +#, fuzzy, kde-format +#| msgid "Search" +msgid "Search mode" +msgstr "Klask" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:113 +#, fuzzy, kde-format +#| msgid "&Find Next" +msgid "Plain text" +msgstr "&Kavout a-heul" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:118 +#, kde-format +msgid "Whole words" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:123 +#, kde-format +msgid "Escape sequences" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:128 +#, fuzzy, kde-format +#| msgid "&Regular Expression" +msgid "Regular expression" +msgstr "Troienn &reolataet" + +#. i18n: ectx: property (toolTip), widget (QToolButton, selectionOnly) +#: search/searchbarpower.ui:149 +#, fuzzy, kde-format +#| msgid "&Selection Only" +msgid "Search in the selection only" +msgstr "Ar choazh hepken" + +#. i18n: ectx: property (toolTip), widget (QPushButton, replaceNext) +#: search/searchbarpower.ui:195 +#, fuzzy, kde-format +#| msgid "Replace Confirmation" +msgid "Replace next match" +msgstr "Erlec'hiañ ar gefluniadur" + +#. i18n: ectx: property (text), widget (QPushButton, replaceNext) +#. i18n: ectx: property (text), widget (QPushButton, m_replaceBtn) +#: search/searchbarpower.ui:198 spellcheck/spellcheckbar.ui:130 +#, kde-format +msgid "&Replace" +msgstr "&Erlec'hiañ" + +#. i18n: ectx: property (toolTip), widget (QPushButton, replaceAll) +#: search/searchbarpower.ui:224 +#, fuzzy, kde-format +#| msgid "Replace &All" +msgid "Replace all matches" +msgstr "Erlec'hiañ pep tra" + +#. i18n: ectx: property (text), widget (QPushButton, replaceAll) +#: search/searchbarpower.ui:227 +#, fuzzy, kde-format +#| msgid "Replace &All" +msgid "Replace &All" +msgstr "Erlec'hiañ pep tra" + +#. i18n: ectx: property (text), widget (QPushButton, findAll) +#: search/searchbarpower.ui:234 +#, kde-format +msgid "&Find All" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, cancel) +#: search/searchbarpower.ui:257 +#, kde-format +msgid "Cancel" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QToolButton, mutate) +#: search/searchbarpower.ui:268 +#, kde-format +msgid "Switch to incremental search bar" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QComboBox, replacement) +#: search/searchbarpower.ui:314 +#, kde-format +msgid "Text to replace with" +msgstr "" + +#: spellcheck/spellcheckbar.cpp:148 +#, fuzzy, kde-format +#| msgid "Spellcheck Selection..." +msgid "Spell check canceled." +msgstr "Dibab gwiriekaat ar skritur ..." + +#: spellcheck/spellcheckbar.cpp:245 +#, fuzzy, kde-format +#| msgid "Spellcheck Selection..." +msgctxt "@info:progress" +msgid "Spell checking in progress…" +msgstr "Dibab gwiriekaat ar skritur ..." + +#: spellcheck/spellcheckbar.cpp:246 spellcheck/spellcheckbar.cpp:435 +#, kde-format +msgctxt "@title:window" +msgid "Check Spelling" +msgstr "" + +#: spellcheck/spellcheckbar.cpp:432 spellcheck/spellcheckbar.cpp:435 +#, fuzzy, kde-format +#| msgid "Spellcheck Selection..." +msgid "Spell check complete." +msgstr "Dibab gwiriekaat ar skritur ..." + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel2) +#. i18n: ectx: property (whatsThis), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:30 spellcheck/spellcheckbar.ui:46 +#, kde-format +msgid "" +"

This word was considered to be an \"unknown word\" because it does " +"not match any entry in the dictionary currently in use. It may also be a " +"word in a foreign language.

\n" +"

If the word is not misspelled, you may add it to the dictionary by " +"clicking Add to Dictionary. If you do not want to add the unknown " +"word to the dictionary, but you want to leave it unchanged, click Ignore or Ignore All.

\n" +"

However, if the word is misspelled, you can try to find the correct " +"replacement in the list below. If you cannot find a replacement there, you " +"may type it in the text box below, and click Replace or Replace " +"All.

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, textLabel2) +#: spellcheck/spellcheckbar.ui:33 +#, fuzzy, kde-format +msgid "Unknown word:" +msgstr "Perzhioù ar voest" + +#. i18n: ectx: property (toolTip), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:40 +#, fuzzy, kde-format +msgid "Unknown word" +msgstr "Perzhioù ar voest" + +#. i18n: ectx: property (text), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:49 +#, kde-format +msgid "misspelled" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_addBtn) +#: spellcheck/spellcheckbar.ui:72 +#, kde-format +msgid "" +"\n" +"

The unknown word was detected and considered unknown because it is not " +"included in the dictionary.
\n" +"Click here if you consider the unknown word not to be misspelled, and you " +"want to avoid wrongly detecting it again in the future. If you want to let " +"it remain as is, but not add it to the dictionary, then click Ignore " +"or Ignore All instead.

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, m_addBtn) +#: spellcheck/spellcheckbar.ui:75 +#, fuzzy, kde-format +#| msgid "&Section:" +msgid "<< Add to Dictionary" +msgstr "&Dachenn :" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel4) +#: spellcheck/spellcheckbar.ui:89 +#, kde-format +msgid "" +"\n" +"

If the unknown word is misspelled, you should type the correction for " +"your misspelled word here or select it from the list below.

\n" +"

You can then click Replace if you want to correct only this " +"occurrence of the word or Replace All if you want to correct all " +"occurrences.

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, textLabel4) +#: spellcheck/spellcheckbar.ui:92 +#, fuzzy, kde-format +#| msgid "Replace Confirmation" +msgid "Replace with:" +msgstr "Erlec'hiañ ar gefluniadur" + +#. i18n: ectx: property (text), widget (QPushButton, m_suggestBtn) +#: spellcheck/spellcheckbar.ui:118 +#, kde-format +msgid "S&uggest" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_replaceBtn) +#: spellcheck/spellcheckbar.ui:127 +#, kde-format +msgid "" +"\n" +"

Click here to replace this occurrence of the unknown text with the text " +"in the edit box above (to the left).

\n" +"
" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_skipBtn) +#: spellcheck/spellcheckbar.ui:140 +#, kde-format +msgid "" +"\n" +"

Click here to let this occurrence of the unknown word remain as is.

\n" +"

This action is useful when the word is a name, an acronym, a foreign word " +"or any other unknown word that you want to use but not add to the dictionary." +"

\n" +"
" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel5) +#. i18n: ectx: property (whatsThis), widget (Sonnet::DictionaryComboBox, m_language) +#: spellcheck/spellcheckbar.ui:156 spellcheck/spellcheckbar.ui:174 +#, kde-format +msgid "" +"\n" +"

Select the language of the document you are proofing here.

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, textLabel5) +#: spellcheck/spellcheckbar.ui:159 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "E Language" +msgid "&Language:" +msgstr "Yezh E" + +#. i18n: ectx: property (toolTip), widget (Sonnet::DictionaryComboBox, m_language) +#: spellcheck/spellcheckbar.ui:169 +#, kde-format +msgid "Language Selection" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_autoCorrect) +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_skipAllBtn) +#: spellcheck/spellcheckbar.ui:197 spellcheck/spellcheckbar.ui:222 +#, kde-format +msgid "" +"\n" +"

Click here to let all occurrences of the unknown word remain as they are." +"

\n" +"

This action is useful when the word is a name, an acronym, a foreign word " +"or any other unknown word that you want to use but not add to the dictionary." +"

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, m_autoCorrect) +#: spellcheck/spellcheckbar.ui:200 +#, kde-format +msgid "Autocorrect" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_replaceAllBtn) +#: spellcheck/spellcheckbar.ui:209 +#, kde-format +msgid "" +"\n" +"

Click here to replace all occurrences of the unknown text with the text " +"in the edit box above (to the left).

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, m_replaceAllBtn) +#: spellcheck/spellcheckbar.ui:212 +#, fuzzy, kde-format +#| msgid "Replace &All" +msgid "R&eplace All" +msgstr "Erlec'hiañ pep tra" + +#. i18n: ectx: property (text), widget (QPushButton, m_skipAllBtn) +#: spellcheck/spellcheckbar.ui:225 +#, fuzzy, kde-format +#| msgid "&Ignore" +msgid "I&gnore All" +msgstr "&Tremen e-biou" + +#: spellcheck/spellcheckdialog.cpp:51 +#, fuzzy, kde-format +#| msgid "Spelling (from cursor)..." +msgctxt "@action" +msgid "Spelling (from Cursor)…" +msgstr "O wiriekaat ar skritur (eus ar reti) ..." + +#: spellcheck/spellcheckdialog.cpp:54 +#, kde-format +msgid "Check the document's spelling from the cursor and forward" +msgstr "" + +#: spellcheck/spellingmenu.cpp:76 +#, fuzzy, kde-format +#| msgid "&Ignore" +msgid "Ignore Word" +msgstr "&Tremen e-biou" + +#: spellcheck/spellingmenu.cpp:79 +#, fuzzy, kde-format +#| msgid "&Section:" +msgid "Add to Dictionary" +msgstr "&Dachenn :" + +#: spellcheck/spellingmenu.cpp:172 +#, kde-format +msgid "Spelling '%1'" +msgstr "" + +#: swapfile/kateswapdiffcreator.cpp:87 +#, kde-format +msgid "" +"The diff command could not be found. Please make sure that diff(1) is " +"installed and in your PATH." +msgstr "" + +#: swapfile/kateswapdiffcreator.cpp:98 +#, kde-format +msgid "The diff command '%1' could not be started." +msgstr "" + +#: swapfile/kateswapfile.cpp:642 +#, kde-format +msgid "The file was not closed properly." +msgstr "" + +#: swapfile/kateswapfile.cpp:645 +#, fuzzy, kde-format +#| msgid "File Changed on Disk" +msgid "View Changes" +msgstr "Kemmet e oa ar restr war ar bladenn" + +#: swapfile/kateswapfile.cpp:646 +#, fuzzy, kde-format +#| msgid "Remove entry" +msgid "Recover Data" +msgstr "Dilemel ar bouetadur" + +#: swapfile/kateswapfile.cpp:647 +#, fuzzy, kde-format +#| msgid "Disabled" +msgid "Discard" +msgstr "Marv" + +#: syntax/katecolortreewidget.cpp:34 syntax/katecolortreewidget.cpp:61 +#, kde-format +msgid "Use default color from the color theme" +msgstr "" + +#: syntax/katehighlightmenu.cpp:39 +#, fuzzy, kde-format +#| msgid "None" +msgid "None" +msgstr "Ebet" + +#: syntax/katestyletreewidget.cpp:135 +#, fuzzy, kde-format +#| msgid "Next" +msgctxt "@title:column Meaning of text in editor" +msgid "Context" +msgstr "A heul" + +#: syntax/katestyletreewidget.cpp:136 +#, fuzzy, kde-format +#| msgid "Normal" +msgctxt "@title:column Text style" +msgid "Normal" +msgstr "Boas" + +#: syntax/katestyletreewidget.cpp:136 +#, fuzzy, kde-format +#| msgid "Selected" +msgctxt "@title:column Text style" +msgid "Selected" +msgstr "Diuzet" + +#: syntax/katestyletreewidget.cpp:136 +#, fuzzy, kde-format +#| msgid "Background" +msgctxt "@title:column Text style" +msgid "Background" +msgstr "Drekleur" + +#: syntax/katestyletreewidget.cpp:137 +#, fuzzy, kde-format +#| msgid "Background" +msgctxt "@title:column Text style" +msgid "Background Selected" +msgstr "Drekleur" + +#: syntax/katestyletreewidget.cpp:139 +#, kde-format +msgid "Use Default Style" +msgstr "Implijit ar c'hiz dre ziouer" + +#: syntax/katestyletreewidget.cpp:238 +#, kde-format +msgid "&Bold" +msgstr "&Druz" + +#: syntax/katestyletreewidget.cpp:243 +#, kde-format +msgid "&Italic" +msgstr "&Italek" + +#: syntax/katestyletreewidget.cpp:248 +#, kde-format +msgid "&Underline" +msgstr "&Islinañ" + +#: syntax/katestyletreewidget.cpp:253 +#, kde-format +msgid "S&trikeout" +msgstr "" + +#: syntax/katestyletreewidget.cpp:260 +#, fuzzy, kde-format +#| msgid "Normal &Color..." +msgctxt "@action:inmenu" +msgid "Normal &Color…" +msgstr "&Liv boas ..." + +#: syntax/katestyletreewidget.cpp:263 +#, fuzzy, kde-format +#| msgid "&Selected Color..." +msgctxt "@action:inmenu" +msgid "&Selected Color…" +msgstr "Liv &diuzet ..." + +#: syntax/katestyletreewidget.cpp:266 +#, fuzzy, kde-format +#| msgid "&Background Color..." +msgctxt "@action:inmenu" +msgid "&Background Color…" +msgstr "&Liv an drekleur ..." + +#: syntax/katestyletreewidget.cpp:269 +#, fuzzy, kde-format +#| msgid "S&elected Background Color..." +msgctxt "@action:inmenu" +msgid "S&elected Background Color…" +msgstr "Liv drekleur d&ibabet ..." + +#: syntax/katestyletreewidget.cpp:275 +#, fuzzy, kde-format +#| msgid "Normal &Color..." +msgid "Unset Normal Color" +msgstr "&Liv boas ..." + +#: syntax/katestyletreewidget.cpp:278 +#, fuzzy, kde-format +#| msgid "&Selected Color..." +msgid "Unset Selected Color" +msgstr "Liv &diuzet ..." + +#: syntax/katestyletreewidget.cpp:284 +#, kde-format +msgid "Unset Background Color" +msgstr "" + +#: syntax/katestyletreewidget.cpp:289 +#, kde-format +msgid "Unset Selected Background Color" +msgstr "" + +#: syntax/katestyletreewidget.cpp:295 +#, kde-format +msgid "Use &Default Style" +msgstr "Impl&ijit ar c'hiz dre ziouer" + +#: syntax/katestyletreewidget.cpp:408 +#, fuzzy, kde-format +msgctxt "No text or background color set" +msgid "None set" +msgstr "Ebet" + +#: syntax/katestyletreewidget.cpp:642 +#, kde-format +msgid "" +"\"Use Default Style\" will be automatically unset when you change any style " +"properties." +msgstr "" + +#: syntax/katestyletreewidget.cpp:643 +#, kde-format +msgid "Kate Styles" +msgstr "Gizioù Kate" + +#: syntax/katethemeconfig.cpp:47 +#, fuzzy, kde-format +#| msgid "Normal" +msgctxt "@item:intable Text context" +msgid "Normal" +msgstr "Boas" + +#: syntax/katethemeconfig.cpp:49 +#, fuzzy, kde-format +#| msgid "Keyword" +msgctxt "@item:intable Text context" +msgid "Keyword" +msgstr "Ger alc'hwez" + +#: syntax/katethemeconfig.cpp:51 +#, fuzzy, kde-format +#| msgid "Function" +msgctxt "@item:intable Text context" +msgid "Function" +msgstr "Fonksion" + +#: syntax/katethemeconfig.cpp:53 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Variable" +msgstr "Marv" + +#: syntax/katethemeconfig.cpp:55 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Control Flow" +msgstr "" + +#: syntax/katethemeconfig.cpp:57 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Operator" +msgstr "" + +#: syntax/katethemeconfig.cpp:59 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Built-in" +msgstr "" + +#: syntax/katethemeconfig.cpp:61 +#, fuzzy, kde-format +#| msgid "Extensions" +msgctxt "@item:intable Text context" +msgid "Extension" +msgstr "Astennoù" + +#: syntax/katethemeconfig.cpp:63 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Preprocessor" +msgstr "" + +#: syntax/katethemeconfig.cpp:65 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Attribute" +msgstr "" + +#: syntax/katethemeconfig.cpp:68 +#, fuzzy, kde-format +#| msgid "Character" +msgctxt "@item:intable Text context" +msgid "Character" +msgstr "Arouezennoù" + +#: syntax/katethemeconfig.cpp:70 +#, fuzzy, kde-format +#| msgid "Character" +msgctxt "@item:intable Text context" +msgid "Special Character" +msgstr "Arouezennoù" + +#: syntax/katethemeconfig.cpp:72 +#, fuzzy, kde-format +#| msgid "String" +msgctxt "@item:intable Text context" +msgid "String" +msgstr "Hedad" + +#: syntax/katethemeconfig.cpp:74 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Verbatim String" +msgstr "" + +#: syntax/katethemeconfig.cpp:76 +#, fuzzy, kde-format +#| msgid "String" +msgctxt "@item:intable Text context" +msgid "Special String" +msgstr "Hedad" + +#: syntax/katethemeconfig.cpp:78 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Imports, Modules, Includes" +msgstr "" + +#: syntax/katethemeconfig.cpp:81 +#, fuzzy, kde-format +#| msgid "Data Type" +msgctxt "@item:intable Text context" +msgid "Data Type" +msgstr "Seurt ar roadoù" + +#: syntax/katethemeconfig.cpp:83 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Decimal/Value" +msgstr "" + +#: syntax/katethemeconfig.cpp:85 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Base-N Integer" +msgstr "" + +#: syntax/katethemeconfig.cpp:87 +#, fuzzy, kde-format +#| msgid "Floating Point" +msgctxt "@item:intable Text context" +msgid "Floating Point" +msgstr "Niver skej" + +#: syntax/katethemeconfig.cpp:89 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Constant" +msgstr "" + +#: syntax/katethemeconfig.cpp:92 +#, fuzzy, kde-format +#| msgid "Comment" +msgctxt "@item:intable Text context" +msgid "Comment" +msgstr "Askelenn" + +#: syntax/katethemeconfig.cpp:94 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Documentation" +msgstr "Keflosk" + +#: syntax/katethemeconfig.cpp:96 +#, fuzzy, kde-format +#| msgid "Indentation" +msgctxt "@item:intable Text context" +msgid "Annotation" +msgstr "Keflosk" + +#: syntax/katethemeconfig.cpp:98 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Comment Variable" +msgstr "Marv" + +#: syntax/katethemeconfig.cpp:101 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Region Marker" +msgstr "" + +#: syntax/katethemeconfig.cpp:103 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Inform" +msgctxt "@item:intable Text context" +msgid "Information" +msgstr "Inform" + +#: syntax/katethemeconfig.cpp:105 +#, fuzzy, kde-format +#| msgid "Warning" +msgctxt "@item:intable Text context" +msgid "Warning" +msgstr "Diwallit" + +#: syntax/katethemeconfig.cpp:107 +#, fuzzy, kde-format +#| msgid "Alert" +msgctxt "@item:intable Text context" +msgid "Alert" +msgstr "Alert" + +#: syntax/katethemeconfig.cpp:110 +#, fuzzy, kde-format +#| msgid "Others" +msgctxt "@item:intable Text context" +msgid "Others" +msgstr "Ar re all" + +#: syntax/katethemeconfig.cpp:113 +#, fuzzy, kde-format +#| msgid "Error" +msgctxt "@item:intable Text context" +msgid "Error" +msgstr "Fazi" + +#: syntax/katethemeconfig.cpp:162 +#, fuzzy, kde-format +#| msgid "Use Default Style" +msgid "Use Default Colors" +msgstr "Implijit ar c'hiz dre ziouer" + +#: syntax/katethemeconfig.cpp:182 +#, fuzzy, kde-format +#| msgid "&Background Color..." +msgid "Editor Background Colors" +msgstr "&Liv an drekleur ..." + +#: syntax/katethemeconfig.cpp:184 +#, fuzzy, kde-format +msgid "Text Area" +msgstr "Drekleur" + +#: syntax/katethemeconfig.cpp:186 +#, kde-format +msgid "

Sets the background color of the editing area.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:191 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgid "Selected Text" +msgstr "Testenn diuzet :" + +#: syntax/katethemeconfig.cpp:194 +#, kde-format +msgid "" +"

Sets the background color of the selection.

To set the text color " +"for selected text, use the "Configure Highlighting" dialog." +"

" +msgstr "" + +#: syntax/katethemeconfig.cpp:200 +#, fuzzy, kde-format +#| msgid "Current line:" +msgid "Current Line" +msgstr "Linenn red :" + +#: syntax/katethemeconfig.cpp:202 +#, kde-format +msgid "" +"

Sets the background color of the currently active line, which means the " +"line where your cursor is positioned.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:207 +#, fuzzy, kde-format +#| msgid "H&ighlight:" +msgid "Search Highlight" +msgstr "S&plannadur :" + +#: syntax/katethemeconfig.cpp:209 +#, kde-format +msgid "

Sets the background color of search results.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:214 +#, fuzzy, kde-format +#| msgid "H&ighlight:" +msgid "Replace Highlight" +msgstr "S&plannadur :" + +#: syntax/katethemeconfig.cpp:216 +#, kde-format +msgid "

Sets the background color of replaced text.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:223 +#, fuzzy, kde-format +#| msgid "Show &Icon Border" +msgid "Icon Border" +msgstr "Diskouez bevenn an &arlun" + +#: syntax/katethemeconfig.cpp:226 +#, fuzzy, kde-format +#| msgid "Background" +msgid "Background Area" +msgstr "Drekleur" + +#: syntax/katethemeconfig.cpp:228 +#, kde-format +msgid "

Sets the background color of the icon border.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:233 view/screenshotdialog.cpp:265 +#, fuzzy, kde-format +#| msgid "Line numbers:" +msgid "Line Numbers" +msgstr "Niverennoù al linennoù :" + +#: syntax/katethemeconfig.cpp:235 +#, kde-format +msgid "

This color will be used to draw the line numbers (if enabled).

" +msgstr "" + +#: syntax/katethemeconfig.cpp:240 +#, fuzzy, kde-format +#| msgid "Current line:" +msgid "Current Line Number" +msgstr "Linenn red :" + +#: syntax/katethemeconfig.cpp:242 +#, kde-format +msgid "" +"

This color will be used to draw the number of the current line (if " +"enabled).

" +msgstr "" + +#: syntax/katethemeconfig.cpp:247 +#, kde-format +msgid "Separator" +msgstr "" + +#: syntax/katethemeconfig.cpp:249 +#, kde-format +msgid "" +"

This color will be used to draw the line between line numbers and the " +"icon borders, if both are enabled.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:254 +#, fuzzy, kde-format +#| msgid "&Word Wrap Document" +msgid "Word Wrap Marker" +msgstr "Plegañ an teul" + +#: syntax/katethemeconfig.cpp:257 +#, kde-format +msgid "" +"

Sets the color of Word Wrap-related markers:

Static Word Wrap
A vertical line which shows the column where text is going to be " +"wrapped
Dynamic Word Wrap
An arrow shown to the left of " +"visually-wrapped lines
" +msgstr "" + +#: syntax/katethemeconfig.cpp:264 +#, kde-format +msgid "Code Folding" +msgstr "" + +#: syntax/katethemeconfig.cpp:266 +#, kde-format +msgid "

Sets the color of the code folding bar.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:271 +#, fuzzy, kde-format +#| msgid "Scroll Line Up" +msgid "Modified Lines" +msgstr "Dibunañ al linenn a-ius" + +#: syntax/katethemeconfig.cpp:273 +#, kde-format +msgid "" +"

Sets the color of the line modification marker for modified lines.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:278 +#, fuzzy, kde-format +#| msgid "Save File" +msgid "Saved Lines" +msgstr "Enrollañ ar restr" + +#: syntax/katethemeconfig.cpp:280 +#, kde-format +msgid "

Sets the color of the line modification marker for saved lines.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:287 +#, fuzzy, kde-format +#| msgid "Selection Mode" +msgid "Text Decorations" +msgstr "Mod choazh" + +#: syntax/katethemeconfig.cpp:290 +#, kde-format +msgid "Spelling Mistake Line" +msgstr "" + +#: syntax/katethemeconfig.cpp:292 +#, kde-format +msgid "" +"

Sets the color of the line that is used to indicate spelling mistakes.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:297 +#, fuzzy, kde-format +msgid "Tab and Space Markers" +msgstr "&Diskouez ar bevennigoù" + +#: syntax/katethemeconfig.cpp:299 +#, kde-format +msgid "

Sets the color of the tabulator marks.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:304 +#, fuzzy, kde-format +#| msgid "Indentation" +msgid "Indentation Line" +msgstr "Keflosk" + +#: syntax/katethemeconfig.cpp:306 +#, kde-format +msgid "

Sets the color of the vertical indentation lines.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:311 +#, fuzzy, kde-format +#| msgid "H&ighlight:" +msgid "Bracket Highlight" +msgstr "S&plannadur :" + +#: syntax/katethemeconfig.cpp:314 +#, kde-format +msgid "" +"

Sets the bracket matching color. This means, if you place the cursor e.g. " +"at a (, the matching ) will be highlighted with this color.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:322 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "Marker Colors" +msgstr "Livioù" + +#: syntax/katethemeconfig.cpp:324 view/kateviewhelpers.cpp:1536 +#, kde-format +msgid "Bookmark" +msgstr "Sinedoù" + +#: syntax/katethemeconfig.cpp:325 +#, kde-format +msgid "Active Breakpoint" +msgstr "" + +#: syntax/katethemeconfig.cpp:326 +#, kde-format +msgid "Reached Breakpoint" +msgstr "" + +#: syntax/katethemeconfig.cpp:327 +#, kde-format +msgid "Disabled Breakpoint" +msgstr "" + +#: syntax/katethemeconfig.cpp:328 +#, kde-format +msgid "Execution" +msgstr "" + +#: syntax/katethemeconfig.cpp:329 +#, kde-format +msgid "Warning" +msgstr "Diwallit" + +#: syntax/katethemeconfig.cpp:330 +#, kde-format +msgid "Error" +msgstr "Fazi" + +#: syntax/katethemeconfig.cpp:332 +#, kde-format +msgid "" +"

Sets the background color of mark type.

Note: The marker " +"color is displayed lightly because of transparency.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:344 +#, kde-format +msgid "Text Templates & Snippets" +msgstr "" + +#: syntax/katethemeconfig.cpp:349 +#, fuzzy, kde-format +#| msgid "Background" +msgid "Background" +msgstr "Drekleur" + +#: syntax/katethemeconfig.cpp:355 +#, kde-format +msgid "Editable Placeholder" +msgstr "" + +#: syntax/katethemeconfig.cpp:361 +#, kde-format +msgid "Focused Editable Placeholder" +msgstr "" + +#: syntax/katethemeconfig.cpp:367 +#, kde-format +msgid "Not Editable Placeholder" +msgstr "" + +#: syntax/katethemeconfig.cpp:501 +#, kde-format +msgid "" +"

This list displays the default styles for the current color theme and " +"offers the means to edit them. The style name reflects the current style " +"settings.

To edit the colors, click the colored squares, or select the " +"color to edit from the popup menu.

You can unset the Background and " +"Selected Background colors from the popup menu when appropriate.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:568 +#, fuzzy, kde-format +#| msgid "Normal Text" +msgctxt "@item:intable" +msgid "Normal Text & Source Code" +msgstr "Skrid boas" + +#: syntax/katethemeconfig.cpp:575 +#, kde-format +msgctxt "@item:intable" +msgid "Numbers, Types & Constants" +msgstr "" + +#: syntax/katethemeconfig.cpp:582 +#, fuzzy, kde-format +#| msgid "Character" +msgctxt "@item:intable" +msgid "Strings & Characters" +msgstr "Arouezennoù" + +#: syntax/katethemeconfig.cpp:589 +#, fuzzy, kde-format +msgctxt "@item:intable" +msgid "Comments & Documentation" +msgstr "Keflosk" + +#: syntax/katethemeconfig.cpp:596 +#, kde-format +msgctxt "@item:intable" +msgid "Miscellaneous" +msgstr "" + +#: syntax/katethemeconfig.cpp:704 +#, kde-format +msgid "H&ighlight:" +msgstr "S&plannadur :" + +#: syntax/katethemeconfig.cpp:746 +#, kde-format +msgid "" +"

This list displays the contexts of the current syntax highlight mode and " +"offers the means to edit them. The context name reflects the current style " +"settings.

To edit using the keyboard, press <SPACE> and choose a property from the popup menu.

To edit the colors, " +"click the colored squares, or select the color to edit from the popup menu.

You can unset the Background and Selected Background colors from the " +"context menu when appropriate.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:1027 +#, fuzzy, kde-format +#| msgid "Use Default Style" +msgid "Default Theme" +msgstr "Implijit ar c'hiz dre ziouer" + +#: syntax/katethemeconfig.cpp:1028 +#, fuzzy, kde-format +#| msgid "Choose Editor..." +msgid "Theme Editor" +msgstr "Dibabit an aozer ..." + +#: syntax/katethemeconfig.cpp:1046 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgid "Select theme:" +msgstr "Testenn diuzet :" + +#: syntax/katethemeconfig.cpp:1119 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Scheme" +msgid "&Theme:" +msgstr "Scheme" + +#: syntax/katethemeconfig.cpp:1128 +#, fuzzy, kde-format +#| msgid "&Save File As..." +msgctxt "@action:button" +msgid "&Copy…" +msgstr "&Enrollañ ar restr e ..." + +#: syntax/katethemeconfig.cpp:1136 +#, fuzzy, kde-format +#| msgid "E&xport as HTML..." +msgctxt "@action:button" +msgid "Export…" +msgstr "E&zporzh e HTML ..." + +#: syntax/katethemeconfig.cpp:1140 +#, fuzzy, kde-format +#| msgid "Normal &Color..." +msgctxt "@action:button" +msgid "Import…" +msgstr "&Liv boas ..." + +#: syntax/katethemeconfig.cpp:1147 +#, kde-format +msgid "Bundled read-only theme. To modify the theme, please copy it." +msgstr "" + +#: syntax/katethemeconfig.cpp:1160 +#, kde-format +msgid "Colors" +msgstr "Livioù" + +#: syntax/katethemeconfig.cpp:1164 +#, fuzzy, kde-format +#| msgid "Use Default Style" +msgid "Default Text Styles" +msgstr "Implijit ar c'hiz dre ziouer" + +#: syntax/katethemeconfig.cpp:1168 +#, kde-format +msgid "Highlighting Text Styles" +msgstr "" + +#: syntax/katethemeconfig.cpp:1180 +#, fuzzy, kde-format +#| msgid "Replace Confirmation" +msgid "Exporting color theme: %1" +msgstr "Erlec'hiañ ar gefluniadur" + +#: syntax/katethemeconfig.cpp:1182 syntax/katethemeconfig.cpp:1203 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "Color theme" +msgstr "Livioù" + +#: syntax/katethemeconfig.cpp:1203 +#, fuzzy, kde-format +#| msgid "Replace Confirmation" +msgid "Importing Color Theme" +msgstr "Erlec'hiañ ar gefluniadur" + +#: syntax/katethemeconfig.cpp:1217 +#, kde-format +msgid "" +"Importing will overwrite the existing theme file \"%1\". This can not be " +"undone." +msgstr "" + +#: syntax/katethemeconfig.cpp:1219 +#, kde-format +msgid "Import Nevertheless" +msgstr "" + +#: syntax/katethemeconfig.cpp:1308 +#, fuzzy, kde-format +#| msgid "Replace Confirmation" +msgid "Follow System Color Scheme" +msgstr "Erlec'hiañ ar gefluniadur" + +#: syntax/katethemeconfig.cpp:1375 +#, kde-format +msgid "Do you really want to delete the theme \"%1\"? This can not be undone." +msgstr "" + +#: syntax/katethemeconfig.cpp:1377 +#, fuzzy, kde-format +#| msgid "Delete Next Character" +msgid "Delete Nevertheless" +msgstr "Lemel an arouezenn a-heul" + +#: syntax/katethemeconfig.cpp:1419 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "Copy theme" +msgstr "Livioù" + +#: syntax/katethemeconfig.cpp:1420 +#, kde-format +msgid "Name for copy of color theme \"%1\":" +msgstr "" + +#: syntax/katethemeconfig.cpp:1432 +#, kde-format +msgid "" +"

The theme \"%1\" already exists.

Please choose a different theme " +"name.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:1433 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "Copy Theme" +msgstr "Livioù" + +#: syntax/katethemeconfig.cpp:1486 syntax/katethemeconfig.cpp:1491 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "Color Themes" +msgstr "Livioù" + +#: utils/kateautoindent.cpp:88 +#, fuzzy, kde-format +#| msgid "None" +msgctxt "Autoindent mode" +msgid "None" +msgstr "Ebet" + +#: utils/kateautoindent.cpp:92 +#, fuzzy, kde-format +#| msgid "Normal" +msgctxt "Autoindent mode" +msgid "Normal" +msgstr "Boas" + +#: utils/katebookmarks.cpp:49 +#, fuzzy, kde-format +#| msgid "Clear &Bookmark" +msgid "Toggle &Bookmark" +msgstr "Goullonderiñ ar &sinedoù" + +#: utils/katebookmarks.cpp:53 +#, kde-format +msgid "If a line has no bookmark then add one, otherwise remove it." +msgstr "" + +#: utils/katebookmarks.cpp:56 +#, kde-format +msgid "Clear &All Bookmarks" +msgstr "Goullonderiñ ar sinedoù &holl" + +#: utils/katebookmarks.cpp:59 +#, kde-format +msgid "Remove all bookmarks of the current document." +msgstr "Dilemel an holl sinedoù eus an teul red." + +#: utils/katebookmarks.cpp:62 utils/katebookmarks.cpp:219 +#, kde-format +msgid "Next Bookmark" +msgstr "Sined a heul" + +#: utils/katebookmarks.cpp:66 +#, kde-format +msgid "Go to the next bookmark." +msgstr "Mont d'ar sil a-heul." + +#: utils/katebookmarks.cpp:69 utils/katebookmarks.cpp:220 +#, kde-format +msgid "Previous Bookmark" +msgstr "Sined diaraok" + +#: utils/katebookmarks.cpp:73 +#, kde-format +msgid "Go to the previous bookmark." +msgstr "Mont d'ar sil diaraok." + +#: utils/katebookmarks.cpp:76 +#, kde-format +msgid "&Bookmarks" +msgstr "&Sinedoù" + +#: utils/katebookmarks.cpp:192 +#, kde-format +msgid "&Next: %1 - \"%2\"" +msgstr "&A heul : %1 - « %2 »" + +#: utils/katebookmarks.cpp:198 +#, kde-format +msgid "&Previous: %1 - \"%2\"" +msgstr "A-&raok : %1 - « %2 »" + +#: utils/katecmds.cpp:53 +#, kde-format +msgid "

indent

Indents the selected lines or the current line

" +msgstr "" + +#: utils/katecmds.cpp:58 +#, kde-format +msgid "

unindent

Unindents the selected lines or current line.

" +msgstr "" + +#: utils/katecmds.cpp:63 +#, kde-format +msgid "" +"

cleanindent

Cleans up the indentation of the selected lines or " +"current line according to the indentation settings in the document.

" +msgstr "" + +#: utils/katecmds.cpp:68 +#, kde-format +msgid "" +"

comment

Inserts comment markers to make the selection or selected " +"lines or current line a comment according to the text format as defined by " +"the syntax highlight definition for the document.

" +msgstr "" + +#: utils/katecmds.cpp:74 +#, kde-format +msgid "" +"

uncomment

Removes comment markers from the selection or selected " +"lines or current line according to the text format as defined by the syntax " +"highlight definition for the document.

" +msgstr "" + +#: utils/katecmds.cpp:80 +#, kde-format +msgid "" +"

goto line number

This command navigates to the specified " +"line number.

" +msgstr "" + +#: utils/katecmds.cpp:85 +#, kde-format +msgid "" +"

set-indent-pasted-text enable

If enabled, indentation of " +"text pasted from the clipboard is adjusted using the current indenter.

Possible true values: 1 on true
possible false values: 0 off false" +msgstr "" + +#: utils/katecmds.cpp:91 +#, fuzzy, kde-format +#| msgid "Delete the current file type." +msgid "Deletes the current line." +msgstr "Lemel ar seurt restr red." + +#: utils/katecmds.cpp:95 +#, kde-format +msgid "" +"

set-tab-width width

Sets the tab width to the number " +"width

" +msgstr "" + +#: utils/katecmds.cpp:100 +#, kde-format +msgid "" +"

set-replace-tab enable

If enabled, tabs are replaced with " +"spaces as you type.

Possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:107 +#, kde-format +msgid "" +"

set-show-tabs enable

If enabled, TAB characters and trailing " +"whitespace will be visualized by a small dot.

Possible true values: 1 " +"on true
possible false values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:114 +#, kde-format +msgid "" +"

set-remove-trailing-spaces mode

Removes the trailing spaces " +"in the document depending on the mode.

Possible values:" +"

  • none: never remove trailing spaces.
  • modified: " +"remove trailing spaces only of modified lines.
  • all: remove " +"trailing spaces in the entire document.

" +msgstr "" + +#: utils/katecmds.cpp:125 +#, kde-format +msgid "" +"

set-indent-width width

Sets the indentation width to the " +"number width. Used only if you are indenting with spaces.

" +msgstr "" + +#: utils/katecmds.cpp:130 +#, kde-format +msgid "" +"

set-indent-mode mode

The mode parameter is a value as seen " +"in the Tools - Indentation menu

" +msgstr "" + +#: utils/katecmds.cpp:135 +#, kde-format +msgid "" +"

set-auto-indent enable

Enable or disable autoindentation.

possible true values: 1 on true
possible false values: 0 off false" +msgstr "" + +#: utils/katecmds.cpp:142 +#, kde-format +msgid "" +"

set-line-numbers enable

Sets the visibility of the line " +"numbers pane.

possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:149 +#, kde-format +msgid "" +"

set-folding-markers enable

Sets the visibility of the " +"folding markers pane.

possible true values: 1 on true
possible " +"false values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:156 +#, kde-format +msgid "" +"

set-icon-border enable

Sets the visibility of the icon " +"border.

possible true values: 1 on true
possible false values: 0 " +"off false

" +msgstr "" + +#: utils/katecmds.cpp:163 +#, kde-format +msgid "" +"

set-word-wrap enable

Enables dynamic word wrap according to " +"enable

possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:170 +#, kde-format +msgid "" +"

set-word-wrap-column width

Sets the line width for hard " +"wrapping to width. This is used if you are having your text wrapped " +"automatically.

" +msgstr "" + +#: utils/katecmds.cpp:175 +#, kde-format +msgid "" +"

set-replace-tabs-save enable

When enabled, tabs will be " +"replaced with whitespace whenever the document is saved.

possible " +"true values: 1 on true
possible false values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:182 +#, kde-format +msgid "" +"

set-highlight highlight

Sets the syntax highlighting system " +"for the document. The argument must be a valid highlight name, as seen in " +"the Tools → Highlighting menu. This command provides an autocompletion list " +"for its argument.

" +msgstr "" + +#: utils/katecmds.cpp:188 +#, kde-format +msgid "

set-mode mode

Sets the mode as seen in Tools - Mode

" +msgstr "" + +#: utils/katecmds.cpp:193 +#, kde-format +msgid "" +"

set-show-indent enable

If enabled, indentation will be " +"visualized by a vertical dotted line.

possible true values: 1 on " +"true
possible false values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:199 +#, fuzzy, kde-format +msgid "

Open the Print dialog to print the current document.

" +msgstr "Moulañ an teul red." + +#: utils/katecmds.cpp:314 utils/katecmds.cpp:341 +#, kde-format +msgid "Missing argument. Usage: %1 " +msgstr "Mankout a ra an arventenn. Arveriadur : %1 " + +#: utils/katecmds.cpp:327 +#, fuzzy, kde-format +#| msgid "No such command: \"%1\"" +msgid "No such highlighting '%1'" +msgstr "Hevelep urzhiad ebet : « %1 »" + +#: utils/katecmds.cpp:333 +#, fuzzy, kde-format +#| msgid "No such command: \"%1\"" +msgid "No such mode '%1'" +msgstr "Hevelep urzhiad ebet : « %1 »" + +#: utils/katecmds.cpp:346 +#, kde-format +msgid "Failed to convert argument '%1' to integer." +msgstr "" + +#: utils/katecmds.cpp:350 utils/katecmds.cpp:355 +#, kde-format +msgid "Width must be at least 1." +msgstr "Ret eo d'ober 1 arouezenn gant al ledander d'an nebeutañ." + +#: utils/katecmds.cpp:360 +#, kde-format +msgid "Column must be at least 1." +msgstr "Ret eo d'ober 1 bann d'an nebeutañ." + +#: utils/katecmds.cpp:390 +#, kde-format +msgid "Usage: %1 on|off|1|0|true|false" +msgstr "" + +#: utils/katecmds.cpp:417 +#, kde-format +msgid "Bad argument '%1'. Usage: %2 on|off|1|0|true|false" +msgstr "" + +#: utils/katecmds.cpp:421 +#, kde-format +msgid "" +"Usage: set-remove-trailing-spaces 0|-|none or 1|+|mod|modified or 2|*|all" +msgstr "" + +#: utils/katecmds.cpp:435 vimode/cmds.cpp:168 +#, kde-format +msgid "Unknown command '%1'" +msgstr "Urzhiad dianav '%1'" + +#: utils/katecmds.cpp:493 +#, kde-format +msgid "" +"

char identifier

This command allows you to insert literal " +"characters by their numerical identifier, in decimal, octal or hexadecimal " +"form.

Examples:

  • char 234
  • char 0x1234

" +msgstr "" + +#: utils/katecmds.cpp:560 +#, kde-format +msgid "" +"

date or date format

Inserts a date/time string as defined by " +"the specified format, or the format yyyy-MM-dd hh:mm:ss if none is specified." +"

Possible format specifiers are:
dThe day as " +"number without a leading zero (1-31).
ddThe day as " +"number with a leading zero (01-31).
dddThe " +"abbreviated localized day name (e.g. 'Mon'..'Sun').
ddddThe long localized day name (e.g. 'Monday'..'Sunday').
MThe month as number without a leading zero (1-12).
MMThe month as number with a leading zero (01-12).
MMMThe abbreviated localized month name (e.g. " +"'Jan'..'Dec').
yyThe year as two digit number " +"(00-99).
yyyyThe year as four digit number " +"(1752-8000).
hThe hour without a leading zero " +"(0..23 or 1..12 if AM/PM display).
hhThe hour with " +"a leading zero (00..23 or 01..12 if AM/PM display).
mThe minute without a leading zero (0..59).
mmThe minute with a leading zero (00..59).
sThe second without a leading zero (0..59).
ssThe second with a leading zero (00..59).
zThe milliseconds without leading zeroes (0..999).
zzzThe milliseconds with leading zeroes (000..999).
APUse AM/PM display. AP will be replaced by either " +"\"AM\" or \"PM\".
apUse am/pm display. ap will be " +"replaced by either \"am\" or \"pm\".

" +msgstr "" + +#: utils/katecmds.cpp:621 +#, fuzzy, kde-format +#| msgid "Selected" +msgid "Remove Duplicate Lines" +msgstr "Diuzet" + +#: utils/katecmds.cpp:622 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgid "Remove Duplicates and Sort Text Alphabetically" +msgstr "Testenn diuzet :" + +#: utils/katecmds.cpp:623 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgid "Sort Text Naturally" +msgstr "Testenn diuzet :" + +#: utils/katecmds.cpp:624 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgid "Sort Selected Text Alphabetically" +msgstr "Testenn diuzet :" + +#: utils/katecmds.cpp:699 +#, kde-format +msgid "" +"

sort

Sort the selected text or whole document if there is no " +"selection

" +msgstr "" + +#: utils/katecmds.cpp:703 +#, kde-format +msgid "" +"

uniq

Remove duplicate lines from the selected text or whole " +"document if there is no selection.

" +msgstr "" + +#: utils/katecmds.cpp:707 +#, kde-format +msgid "" +"

sortuniq

Sort the selected text or whole document and then remove " +"all duplicate lines.

" +msgstr "" + +#: utils/katecmds.cpp:711 +#, kde-format +msgid "" +"

natsort

Sort the selected text or whole document in natural order." +"
Here is an example to show the difference to the normal sort method:" +"
sort(a10, a1, a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" +msgstr "" + +#: utils/kateglobal.cpp:60 +#, kde-format +msgid "Kate Part" +msgstr "Perzh Kate" + +#: utils/kateglobal.cpp:62 +#, kde-format +msgid "Embeddable editor component" +msgstr "" + +#: utils/kateglobal.cpp:64 +#, fuzzy, kde-format +#| msgid "(c) 2000-2005 The Kate Authors" +msgid "(c) 2000-2025 The Kate Authors" +msgstr "(c) 2000-2005 Oberour Kate" + +#: utils/kateglobal.cpp:84 +#, kde-format +msgid "Christoph Cullmann" +msgstr "" + +#: utils/kateglobal.cpp:84 +#, kde-format +msgid "Maintainer" +msgstr "Ratreer" + +#: utils/kateglobal.cpp:85 +#, kde-format +msgid "Dominik Haumann" +msgstr "" + +#: utils/kateglobal.cpp:85 utils/kateglobal.cpp:86 utils/kateglobal.cpp:87 +#: utils/kateglobal.cpp:90 utils/kateglobal.cpp:93 utils/kateglobal.cpp:98 +#, kde-format +msgid "Core Developer" +msgstr "Diorrer kentañ" + +#: utils/kateglobal.cpp:86 +#, kde-format +msgid "Milian Wolff" +msgstr "" + +#: utils/kateglobal.cpp:87 +#, kde-format +msgid "Joseph Wenninger" +msgstr "Joseph Wenninger" + +#: utils/kateglobal.cpp:88 +#, kde-format +msgid "Erlend Hamberg" +msgstr "" + +#: utils/kateglobal.cpp:89 +#, kde-format +msgid "Bernhard Beschow" +msgstr "" + +#: utils/kateglobal.cpp:89 utils/kateglobal.cpp:105 +#, kde-format +msgid "Developer" +msgstr "Diorrer" + +#: utils/kateglobal.cpp:90 +#, kde-format +msgid "Anders Lund" +msgstr "" + +#: utils/kateglobal.cpp:91 +#, kde-format +msgid "Michel Ludwig" +msgstr "" + +#: utils/kateglobal.cpp:91 +#, fuzzy, kde-format +#| msgid "Spellcheck" +msgid "On-the-fly spell checking" +msgstr "Gwiriekaat ar skritur" + +#: utils/kateglobal.cpp:92 +#, kde-format +msgid "Pascal Létourneau" +msgstr "" + +#: utils/kateglobal.cpp:92 +#, kde-format +msgid "Large scale bug fixing" +msgstr "" + +#: utils/kateglobal.cpp:93 +#, kde-format +msgid "Hamish Rodda" +msgstr "Hamish Rodda" + +#: utils/kateglobal.cpp:94 +#, kde-format +msgid "Waldo Bastian" +msgstr "Waldo Bastian" + +#: utils/kateglobal.cpp:94 +#, kde-format +msgid "The cool buffersystem" +msgstr "" + +#: utils/kateglobal.cpp:95 +#, kde-format +msgid "Charles Samuels" +msgstr "" + +#: utils/kateglobal.cpp:95 +#, kde-format +msgid "The Editing Commands" +msgstr "" + +#: utils/kateglobal.cpp:96 +#, kde-format +msgid "Matt Newell" +msgstr "" + +#: utils/kateglobal.cpp:96 +#, kde-format +msgid "Testing, ..." +msgstr "" + +#: utils/kateglobal.cpp:97 +#, kde-format +msgid "Michael Bartl" +msgstr "" + +#: utils/kateglobal.cpp:97 +#, kde-format +msgid "Former Core Developer" +msgstr "" + +#: utils/kateglobal.cpp:98 +#, kde-format +msgid "Michael McCallum" +msgstr "" + +#: utils/kateglobal.cpp:99 +#, kde-format +msgid "Michael Koch" +msgstr "" + +#: utils/kateglobal.cpp:99 +#, kde-format +msgid "KWrite port to KParts" +msgstr "" + +#: utils/kateglobal.cpp:100 +#, kde-format +msgid "Christian Gebauer" +msgstr "" + +#: utils/kateglobal.cpp:101 +#, kde-format +msgid "Simon Hausmann" +msgstr "Simon Hausmann" + +#: utils/kateglobal.cpp:102 +#, kde-format +msgid "Glen Parker" +msgstr "" + +#: utils/kateglobal.cpp:102 +#, kde-format +msgid "KWrite Undo History, Kspell integration" +msgstr "" + +#: utils/kateglobal.cpp:103 +#, kde-format +msgid "Scott Manson" +msgstr "" + +#: utils/kateglobal.cpp:103 +#, kde-format +msgid "KWrite XML Syntax highlighting support" +msgstr "" + +#: utils/kateglobal.cpp:104 +#, kde-format +msgid "John Firebaugh" +msgstr "" + +#: utils/kateglobal.cpp:104 +#, kde-format +msgid "Patches and more" +msgstr "" + +#: utils/kateglobal.cpp:105 +#, kde-format +msgid "Andreas Kling" +msgstr "" + +#: utils/kateglobal.cpp:106 +#, kde-format +msgid "Mirko Stocker" +msgstr "" + +#: utils/kateglobal.cpp:106 +#, kde-format +msgid "Various bugfixes" +msgstr "" + +#: utils/kateglobal.cpp:107 +#, kde-format +msgid "Matthew Woehlke" +msgstr "Matthew Woehlke" + +#: utils/kateglobal.cpp:107 +#, kde-format +msgid "Selection, KColorScheme integration" +msgstr "" + +#: utils/kateglobal.cpp:108 +#, kde-format +msgid "Sebastian Pipping" +msgstr "" + +#: utils/kateglobal.cpp:109 +#, kde-format +msgid "Search bar back- and front-end" +msgstr "" + +#: utils/kateglobal.cpp:112 +#, kde-format +msgid "Jochen Wilhelmy" +msgstr "" + +#: utils/kateglobal.cpp:112 +#, fuzzy, kde-format +#| msgid "KWrite Author" +msgid "Original KWrite Author" +msgstr "Oberour KWrite" + +#: utils/kateglobal.cpp:113 +#, kde-format +msgid "Gerald Senarclens de Grancy" +msgstr "" + +#: utils/kateglobal.cpp:113 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Quake Script" +msgid "QA and Scripting" +msgstr "Urzhiaoueg Quake" + +#: utils/kateglobal.cpp:115 +#, kde-format +msgid "Matteo Merli" +msgstr "" + +#: utils/kateglobal.cpp:115 +#, kde-format +msgid "Highlighting for RPM Spec-Files, Perl, Diff and more" +msgstr "" + +#: utils/kateglobal.cpp:116 +#, kde-format +msgid "Rocky Scaletta" +msgstr "" + +#: utils/kateglobal.cpp:116 +#, kde-format +msgid "Highlighting for VHDL" +msgstr "" + +#: utils/kateglobal.cpp:117 +#, kde-format +msgid "Yury Lebedev" +msgstr "" + +#: utils/kateglobal.cpp:117 +#, kde-format +msgid "Highlighting for SQL" +msgstr "" + +#: utils/kateglobal.cpp:118 +#, kde-format +msgid "Chris Ross" +msgstr "" + +#: utils/kateglobal.cpp:118 +#, kde-format +msgid "Highlighting for Ferite" +msgstr "" + +#: utils/kateglobal.cpp:119 +#, kde-format +msgid "Nick Roux" +msgstr "" + +#: utils/kateglobal.cpp:119 +#, kde-format +msgid "Highlighting for ILERPG" +msgstr "" + +#: utils/kateglobal.cpp:120 +#, kde-format +msgid "Carsten Niehaus" +msgstr "" + +#: utils/kateglobal.cpp:120 +#, kde-format +msgid "Highlighting for LaTeX" +msgstr "" + +#: utils/kateglobal.cpp:121 +#, kde-format +msgid "Per Wigren" +msgstr "" + +#: utils/kateglobal.cpp:121 +#, kde-format +msgid "Highlighting for Makefiles, Python" +msgstr "" + +#: utils/kateglobal.cpp:122 +#, kde-format +msgid "Jan Fritz" +msgstr "" + +#: utils/kateglobal.cpp:122 +#, kde-format +msgid "Highlighting for Python" +msgstr "" + +#: utils/kateglobal.cpp:123 +#, kde-format +msgid "Daniel Naber" +msgstr "" + +#: utils/kateglobal.cpp:124 +#, kde-format +msgid "Roland Pabel" +msgstr "" + +#: utils/kateglobal.cpp:124 +#, kde-format +msgid "Highlighting for Scheme" +msgstr "" + +#: utils/kateglobal.cpp:125 +#, kde-format +msgid "Cristi Dumitrescu" +msgstr "" + +#: utils/kateglobal.cpp:125 +#, kde-format +msgid "PHP Keyword/Datatype list" +msgstr "" + +#: utils/kateglobal.cpp:126 +#, kde-format +msgid "Carsten Pfeiffer" +msgstr "Carsten Pfeiffer" + +#: utils/kateglobal.cpp:126 +#, kde-format +msgid "Very nice help" +msgstr "" + +#: utils/kateglobal.cpp:127 +#, kde-format +msgid "Bruno Massa" +msgstr "" + +#: utils/kateglobal.cpp:127 +#, fuzzy, kde-format +#| msgid "H&ighlight:" +msgid "Highlighting for Lua" +msgstr "S&plannadur :" + +#: utils/kateglobal.cpp:129 +#, kde-format +msgid "All people who have contributed and I have forgotten to mention" +msgstr "" + +#: utils/kateglobal.cpp:131 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Thierry Vignaud, Jañ-Mai Drapier" + +#: utils/kateglobal.cpp:131 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "tvignaud@mandriva.com, jdrapier@club-internet.fr" + +#: utils/kateglobal.cpp:255 +#, kde-format +msgid "Configure" +msgstr "Kefluniañ" + +#: utils/katesedcmd.cpp:268 +#, fuzzy, kde-format +#| msgid "Replace Confirmation" +msgid "replace with %1?" +msgstr "Erlec'hiañ ar gefluniadur" + +#: utils/katesedcmd.cpp:274 +#, kde-format +msgctxt "%2 is the translation of the next message" +msgid "1 replacement done on %2" +msgid_plural "%1 replacements done on %2" +msgstr[0] "" +msgstr[1] "" + +#: utils/katesedcmd.cpp:277 +#, fuzzy, kde-format +#| msgid "Inline" +msgctxt "substituted into the previous message" +msgid "1 line" +msgid_plural "%1 lines" +msgstr[0] "Enlinenn" +msgstr[1] "" + +#: utils/katevariableexpansionhelpers.cpp:77 +#, kde-format +msgid "" +msgstr "" + +#: utils/katevariableexpansionhelpers.cpp:161 +#, fuzzy, kde-format +#| msgid "&Insert" +msgid "Insert variable" +msgstr "&Enlakaat" + +#: utils/katevariableexpansionhelpers.cpp:165 +#, kde-format +msgid "Variables" +msgstr "" + +#: utils/katevariableexpansionhelpers.cpp:169 +#, fuzzy, kde-format +#| msgid "String" +msgid "Filter" +msgstr "Hedad" + +#: utils/katevariableexpansionhelpers.cpp:188 +#: utils/katevariableexpansionhelpers.cpp:217 +#, kde-format +msgid "Please select a variable." +msgstr "" + +#: utils/katevariableexpansionhelpers.cpp:206 +#, fuzzy, kde-format +#| msgid "Missing argument. Usage: %1 " +msgid "Current value: %1" +msgstr "Mankout a ra an arventenn. Arveriadur : %1 " + +#: utils/katevariableexpansionhelpers.cpp:214 +#, fuzzy, kde-format +#| msgid "Current line:" +msgid "Current value: %1" +msgstr "Linenn red :" + +#: utils/katevariableexpansionmanager.cpp:86 +#, fuzzy, kde-format +#| msgid "Remove all bookmarks of the current document." +msgid "File base name without path and suffix of the current document." +msgstr "Dilemel an holl sinedoù eus an teul red." + +#: utils/katevariableexpansionmanager.cpp:94 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "File extension of the current document." +msgstr "Moulañ an teul red." + +#: utils/katevariableexpansionmanager.cpp:102 +#, fuzzy, kde-format +msgid "File name without path of the current document." +msgstr "Moulañ an teul red." + +#: utils/katevariableexpansionmanager.cpp:110 +#, fuzzy, kde-format +#| msgid "Reload the current document from disk." +msgid "Full path of the current document including the file name." +msgstr "Adkargañ an teul red eus ar bladenn." + +#: utils/katevariableexpansionmanager.cpp:118 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Contents of the current document." +msgstr "Moulañ an teul red." + +#: utils/katevariableexpansionmanager.cpp:125 +#, fuzzy, kde-format +#| msgid "Reload the current document from disk." +msgid "Full path of the current document excluding the file name." +msgstr "Adkargañ an teul red eus ar bladenn." + +#: utils/katevariableexpansionmanager.cpp:133 +#, kde-format +msgid "" +"Full document path including file name, with native path separator " +"(backslash on Windows)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:141 +#, kde-format +msgid "" +"Full document path excluding file name, with native path separator " +"(backslash on Windows)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:149 +#, kde-format +msgid "" +"Line number of the text cursor position in current document (starts with 0)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:156 +#, kde-format +msgid "" +"Column number of the text cursor position in current document (starts with " +"0)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:163 +#, kde-format +msgid "X component in global screen coordinates of the cursor position." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:170 +#, kde-format +msgid "Y component in global screen coordinates of the cursor position." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:177 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Text selection of the current document." +msgstr "Moulañ an teul red." + +#: utils/katevariableexpansionmanager.cpp:184 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Start line of selected text of the current document." +msgstr "Moulañ an teul red." + +#: utils/katevariableexpansionmanager.cpp:191 +#, fuzzy, kde-format +msgid "Start column of selected text of the current document." +msgstr "Moulañ an teul red." + +#: utils/katevariableexpansionmanager.cpp:198 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "End line of selected text of the current document." +msgstr "Moulañ an teul red." + +#: utils/katevariableexpansionmanager.cpp:205 +#, fuzzy, kde-format +msgid "End column of selected text of the current document." +msgstr "Moulañ an teul red." + +#: utils/katevariableexpansionmanager.cpp:212 +#, fuzzy, kde-format +#| msgid "Remove all bookmarks of the current document." +msgid "Number of rows of the current document." +msgstr "Dilemel an holl sinedoù eus an teul red." + +#: utils/katevariableexpansionmanager.cpp:219 +#, fuzzy, kde-format +#| msgid "End of document reached." +msgid "Read a document variable." +msgstr "Setu eo dibenn an teul." + +#: utils/katevariableexpansionmanager.cpp:227 +#, kde-format +msgid "The current date in current locale format." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:234 +#, kde-format +msgid "The current date (ISO)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:241 +#, kde-format +msgid "The current date (QDate formatstring)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:249 +#, kde-format +msgid "The current time in current locale format." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:256 +#, kde-format +msgid "The current time (ISO)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:263 +#, kde-format +msgid "The current time (QTime formatstring)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:271 +#, kde-format +msgid "Access to environment variables." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:279 +#, kde-format +msgid "Evaluate simple JavaScript statements." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:289 +#, kde-format +msgid "Encode text to make it URL compatible." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:297 +#, kde-format +msgid "Generate a new UUID." +msgstr "" + +#: variableeditor/variableeditor.cpp:40 +#, kde-format +msgid "Kate Handbook." +msgstr "" + +#: variableeditor/variableeditor.cpp:213 +#, kde-format +msgid "true" +msgstr "" + +#: variableeditor/variableeditor.cpp:214 +#, kde-format +msgid "false" +msgstr "" + +#: variableeditor/variableeditor.cpp:350 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "none" +msgstr "" + +#: variableeditor/variableeditor.cpp:351 +#, fuzzy, kde-format +#| msgid "Scroll Line Up" +msgctxt "value for variable remove-trailing-spaces" +msgid "modified" +msgstr "Dibunañ al linenn a-ius" + +#: variableeditor/variableeditor.cpp:352 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "all" +msgstr "" + +#: variableeditor/variablelineedit.cpp:42 +#, kde-format +msgid "Show list of valid variables." +msgstr "" + +#: variableeditor/variablelineedit.cpp:115 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgctxt "short translation please" +msgid "Enable automatic insertion of brackets." +msgstr "Lugent klokadur a ger" + +#: variableeditor/variablelineedit.cpp:121 +#, kde-format +msgctxt "short translation please" +msgid "Set the number of autocenter lines." +msgstr "" + +#: variableeditor/variablelineedit.cpp:126 +#, fuzzy, kde-format +#| msgid "S&elected Background Color..." +msgctxt "short translation please" +msgid "Set the document background color." +msgstr "Liv drekleur d&ibabet ..." + +#: variableeditor/variablelineedit.cpp:131 +#, kde-format +msgctxt "short translation please" +msgid "Pressing backspace in leading whitespace unindents." +msgstr "" + +#: variableeditor/variablelineedit.cpp:139 +#, fuzzy, kde-format +#| msgid "End of selection reached." +msgctxt "short translation please" +msgid "Enable block selection mode." +msgstr "Tizhet eo dibenn an dibab." + +#: variableeditor/variablelineedit.cpp:144 +#, kde-format +msgctxt "short translation please" +msgid "Enable the byte order mark (BOM) when saving Unicode files." +msgstr "" + +#: variableeditor/variablelineedit.cpp:149 +#, kde-format +msgctxt "short translation please" +msgid "Set the color for the bracket highlight." +msgstr "" + +#: variableeditor/variablelineedit.cpp:154 +#, kde-format +msgctxt "short translation please" +msgid "Set the background color for the current line." +msgstr "" + +#: variableeditor/variablelineedit.cpp:160 +#, kde-format +msgctxt "short translation please" +msgid "Set the default dictionary used for spell checking." +msgstr "" + +#: variableeditor/variablelineedit.cpp:165 +#, fuzzy, kde-format +#| msgid "&Dynamic word wrap" +msgctxt "short translation please" +msgid "Enable dynamic word wrap of long lines." +msgstr "Plegañ ar &gerioù ent &buhezek" + +#: variableeditor/variablelineedit.cpp:172 +#, fuzzy, kde-format +#| msgid "Select to End of Line" +msgctxt "short translation please" +msgid "Sets the end of line mode." +msgstr "Dibab betek dibenn al linenn" + +#: variableeditor/variablelineedit.cpp:177 +#, kde-format +msgctxt "short translation please" +msgid "" +"Enable whether pressing enter will insert selected auto completion item." +msgstr "" + +#: variableeditor/variablelineedit.cpp:182 +#, kde-format +msgctxt "short translation please" +msgid "Enable folding markers in the editor border." +msgstr "" + +#: variableeditor/variablelineedit.cpp:187 +#, kde-format +msgctxt "short translation please" +msgid "Enable folding preview in the editor border." +msgstr "" + +#: variableeditor/variablelineedit.cpp:193 +#, kde-format +msgctxt "short translation please" +msgid "Set the point size of the document font." +msgstr "" + +#: variableeditor/variablelineedit.cpp:198 +#, fuzzy, kde-format +#| msgid "Save the current document" +msgctxt "short translation please" +msgid "Set the font of the document." +msgstr "Enrollañ an teul red" + +#: variableeditor/variablelineedit.cpp:214 +#, fuzzy, kde-format +#| msgid "H&ighlight:" +msgctxt "short translation please" +msgid "Set the syntax highlighting." +msgstr "S&plannadur :" + +#: variableeditor/variablelineedit.cpp:219 +#, kde-format +msgctxt "short translation please" +msgid "Set the icon bar color." +msgstr "" + +#: variableeditor/variablelineedit.cpp:224 +#, kde-format +msgctxt "short translation please" +msgid "Enable the icon border in the editor view." +msgstr "" + +#: variableeditor/variablelineedit.cpp:229 +#, fuzzy, kde-format +msgctxt "short translation please" +msgid "Set the auto indentation style." +msgstr "Keflosk" + +#: variableeditor/variablelineedit.cpp:234 +#, kde-format +msgctxt "short translation please" +msgid "Adjust indentation of text pasted from the clipboard." +msgstr "" + +#: variableeditor/variablelineedit.cpp:240 +#, kde-format +msgctxt "short translation please" +msgid "Set the indentation depth for each indent level." +msgstr "" + +#: variableeditor/variablelineedit.cpp:245 +#, kde-format +msgctxt "short translation please" +msgid "Allow odd indentation level (no multiple of indent width)." +msgstr "" + +#: variableeditor/variablelineedit.cpp:250 +#, fuzzy, kde-format +#| msgid "Show &line numbers" +msgctxt "short translation please" +msgid "Show line numbers." +msgstr "Diskouez niverennoù &linenn" + +#: variableeditor/variablelineedit.cpp:255 +#, kde-format +msgctxt "short translation please" +msgid "Insert newline at end of file on save." +msgstr "" + +#: variableeditor/variablelineedit.cpp:260 +#, kde-format +msgctxt "short translation please" +msgid "Enable overwrite mode in the document." +msgstr "" + +#: variableeditor/variablelineedit.cpp:265 +#, kde-format +msgctxt "short translation please" +msgid "Enable persistent text selection." +msgstr "" + +#: variableeditor/variablelineedit.cpp:270 +#, kde-format +msgctxt "short translation please" +msgid "Replace tabs with spaces when saving the document." +msgstr "" + +#: variableeditor/variablelineedit.cpp:275 +#, fuzzy, kde-format +#| msgid "Replace &All" +msgctxt "short translation please" +msgid "Replace tabs with spaces." +msgstr "Erlec'hiañ pep tra" + +#: variableeditor/variablelineedit.cpp:280 +#, fuzzy, kde-format +#| msgid "Remove all bookmarks of the current document." +msgctxt "short translation please" +msgid "Remove trailing spaces when saving the document." +msgstr "Dilemel an holl sinedoù eus an teul red." + +#: variableeditor/variablelineedit.cpp:285 +#, kde-format +msgctxt "short translation please" +msgid "Show scrollbar minimap." +msgstr "" + +#: variableeditor/variablelineedit.cpp:290 +#, kde-format +msgctxt "short translation please" +msgid "Show scrollbar preview." +msgstr "" + +#: variableeditor/variablelineedit.cpp:301 +#, fuzzy, kde-format +#| msgid "Replace Confirmation" +msgctxt "short translation please" +msgid "Set the color scheme." +msgstr "Erlec'hiañ ar gefluniadur" + +#: variableeditor/variablelineedit.cpp:306 +#, kde-format +msgctxt "short translation please" +msgid "Set the text selection color." +msgstr "" + +#: variableeditor/variablelineedit.cpp:311 +#, fuzzy, kde-format +#| msgid "H&ighlight:" +msgctxt "short translation please" +msgid "Visualize tabs and trailing spaces." +msgstr "S&plannadur :" + +#: variableeditor/variablelineedit.cpp:316 +#, fuzzy, kde-format +#| msgid "Word Completion Plugin" +msgctxt "short translation please" +msgid "Enable smart home navigation." +msgstr "Lugent klokadur a ger" + +#: variableeditor/variablelineedit.cpp:321 +#, kde-format +msgctxt "short translation please" +msgid "Pressing TAB key indents." +msgstr "" + +#: variableeditor/variablelineedit.cpp:327 +#, kde-format +msgctxt "short translation please" +msgid "Set the tab display width." +msgstr "" + +#: variableeditor/variablelineedit.cpp:333 +#, kde-format +msgctxt "short translation please" +msgid "Set the number of undo steps to remember (0 equals infinity)." +msgstr "" + +#: variableeditor/variablelineedit.cpp:339 +#, kde-format +msgctxt "short translation please" +msgid "Set the word wrap column." +msgstr "" + +#: variableeditor/variablelineedit.cpp:344 +#, fuzzy, kde-format +#| msgid "S&elected Background Color..." +msgctxt "short translation please" +msgid "Set the word wrap marker color." +msgstr "Liv drekleur d&ibabet ..." + +#: variableeditor/variablelineedit.cpp:349 +#, kde-format +msgctxt "short translation please" +msgid "Enable word wrap while typing text." +msgstr "" + +#: view/katestatusbar.cpp:114 +#, kde-format +msgid "Current cursor position. Click to go to a specific line." +msgstr "" + +#: view/katestatusbar.cpp:127 +#, kde-format +msgid "Insert mode and VI input mode indicator. Click to change the mode." +msgstr "" + +#: view/katestatusbar.cpp:135 +#, fuzzy, kde-format +#| msgid "Choose Editor..." +msgid "Change dictionary" +msgstr "Dibabit an aozer ..." + +#: view/katestatusbar.cpp:161 view/katestatusbar.cpp:488 +#, fuzzy, kde-format +#| msgid "Tab width:" +msgid "Tab Width" +msgstr "Ledander ar bevennigoù :" + +#: view/katestatusbar.cpp:169 view/katestatusbar.cpp:503 +#, fuzzy, kde-format +#| msgid "Indentation" +msgid "Indentation Width" +msgstr "Keflosk" + +#: view/katestatusbar.cpp:177 +#, fuzzy, kde-format +#| msgid "&Indentation" +msgid "Indentation Mode" +msgstr "&Keflosk" + +#: view/katestatusbar.cpp:179 +#, fuzzy, kde-format +msgid "Tabulators && Spaces" +msgstr "&Diskouez ar bevennigoù" + +#: view/katestatusbar.cpp:182 +#, fuzzy, kde-format +msgid "Tabulators" +msgstr "&Diskouez ar bevennigoù" + +#: view/katestatusbar.cpp:185 +#, fuzzy, kde-format +#| msgid "&Replace" +msgid "Spaces" +msgstr "&Erlec'hiañ" + +#: view/katestatusbar.cpp:197 +#, fuzzy, kde-format +#| msgid "E&ncoding" +msgid "Encoding" +msgstr "K&odadur" + +#: view/katestatusbar.cpp:200 view/katestatusbar.cpp:201 +#, fuzzy, kde-format +#| msgid "&End of Line" +msgid "End of line type" +msgstr "&Fin al linenn" + +#: view/katestatusbar.cpp:207 +#, fuzzy, kde-format +#| msgid "&Bold" +msgid "Mode" +msgstr "&Druz" + +#: view/katestatusbar.cpp:209 view/kateview.cpp:703 +#, kde-format +msgid "" +"Here you can choose which mode should be used for the current document. This " +"will influence the highlighting and folding being used, for example." +msgstr "" + +#: view/katestatusbar.cpp:216 +#, fuzzy, kde-format +#| msgid "H&ighlight:" +msgid "Syntax highlighting" +msgstr "S&plannadur :" + +#: view/katestatusbar.cpp:261 +#, kde-format +msgid "Line/Column compact mode" +msgstr "" + +#: view/katestatusbar.cpp:307 +#, fuzzy, kde-format +#| msgid " BLK " +msgid "[BLOCK] %1" +msgstr " BLK " + +#: view/katestatusbar.cpp:323 +#, kde-format +msgid "%1/%2:%3" +msgstr "" + +#: view/katestatusbar.cpp:325 +#, kde-format +msgid "%1:%2" +msgstr "" + +#: view/katestatusbar.cpp:329 +#, fuzzy, kde-format +#| msgid " Line: %1 Col: %2 " +msgid "Line %1 of %2, Column %3" +msgstr " Linenn : %1 Bann : %2 " + +#: view/katestatusbar.cpp:331 +#, fuzzy, kde-format +#| msgid " Line: %1 Col: %2 " +msgid "Line %1, Column %2" +msgstr " Linenn : %1 Bann : %2 " + +#: view/katestatusbar.cpp:405 +#, kde-format +msgid "Soft Tabs: %1" +msgstr "" + +#: view/katestatusbar.cpp:406 +#, kde-format +msgid "Soft Tabs: %1 (%2)" +msgstr "" + +#: view/katestatusbar.cpp:407 +#, kde-format +msgid "Tab Size: %1" +msgstr "" + +#: view/katestatusbar.cpp:408 +#, kde-format +msgid "Indent/Tab: %1/%2" +msgstr "" + +#: view/katestatusbar.cpp:448 view/katestatusbar.cpp:474 +#, fuzzy, kde-format +#| msgid "Other" +msgctxt "@item:inmenu" +msgid "Other…" +msgstr "All" + +#: view/katestatusbar.cpp:476 +#, fuzzy, kde-format +#| msgid "Other" +msgid "Other (%1)" +msgid_plural "Other (%1)" +msgstr[0] "All" +msgstr[1] "" + +#: view/katestatusbar.cpp:488 +#, kde-format +msgid "Please specify the wanted tab width:" +msgstr "" + +#: view/katestatusbar.cpp:504 +#, kde-format +msgid "Please specify the wanted indentation width:" +msgstr "" + +#: view/katestatusbar.cpp:567 +#, kde-format +msgctxt "" +"%1 and %3 are the selected words/chars count, %2 and %4 are the total words/" +"chars count." +msgid "Words %1/%2, Chars %3/%4" +msgstr "" + +#: view/katestatusbar.cpp:573 +#, kde-format +msgctxt "%1 and %2 are the total words/chars count." +msgid "Words %1, Chars %2" +msgstr "" + +#: view/katestatusbar.cpp:588 +#, kde-format +msgid "Zoom: %1%" +msgstr "" + +#: view/kateview.cpp:440 +#, kde-format +msgid "Cut the selected text and move it to the clipboard" +msgstr "" + +#: view/kateview.cpp:445 +#, kde-format +msgid "Paste previously copied or cut clipboard contents" +msgstr "" + +#: view/kateview.cpp:448 +#, kde-format +msgid "" +"Use this command to copy the currently selected text to the system clipboard." +msgstr "" + +#: view/kateview.cpp:454 +#, kde-format +msgid "Clipboard &History Paste" +msgstr "" + +#: view/kateview.cpp:459 +#, fuzzy, kde-format +msgid "Paste Selection" +msgstr "Emgeflosk" + +#: view/kateview.cpp:461 +#, kde-format +msgid "Paste previously mouse selection contents" +msgstr "" + +#: view/kateview.cpp:465 +#, kde-format +msgid "Paste From File" +msgstr "" + +#: view/kateview.cpp:469 +#, kde-format +msgid "Copy File Location" +msgstr "" + +#: view/kateview.cpp:470 +#, kde-format +msgid "Copy the current file name and line number" +msgstr "" + +#: view/kateview.cpp:473 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Swap with Clipboard Contents" +msgstr "Moulañ an teul red." + +#: view/kateview.cpp:474 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Swap the selected text with the clipboard contents" +msgstr "Moulañ an teul red." + +#: view/kateview.cpp:477 +#, fuzzy, kde-format +msgid "Take Screenshot of Selection" +msgstr "Emgeflosk" + +#: view/kateview.cpp:481 +#, kde-format +msgid "Save the current document" +msgstr "Enrollañ an teul red" + +#: view/kateview.cpp:484 +#, kde-format +msgid "Revert the most recent editing actions" +msgstr "" + +#: view/kateview.cpp:487 +#, kde-format +msgid "Revert the most recent undo operation" +msgstr "" + +#: view/kateview.cpp:491 +#, fuzzy, kde-format +#| msgid "Scripts" +msgid "&Scripts" +msgstr "Urzhiaouegoù" + +#: view/kateview.cpp:495 +#, fuzzy, kde-format +#| msgid "Word Wrap" +msgid "Apply &Word Wrap" +msgstr "Hoskiñ ar gerioù" + +#: view/kateview.cpp:497 +#, kde-format +msgid "" +"Use this to wrap the current line, or to reformat the selected lines as " +"paragraph, to fit the 'Wrap words at' setting in the configuration dialog." +"

This is a static word wrap, meaning the document is changed." +msgstr "" + +#: view/kateview.cpp:503 +#, kde-format +msgid "&Clean Indentation" +msgstr "" + +#: view/kateview.cpp:505 +#, kde-format +msgid "" +"Use this to clean the indentation of a selected block of text (only tabs/" +"only spaces).

You can configure whether tabs should be honored " +"and used or replaced with spaces, in the configuration dialog." +msgstr "" + +#: view/kateview.cpp:510 +#, fuzzy, kde-format +#| msgid "Indentation" +msgid "Convert Indentation to Spaces" +msgstr "Keflosk" + +#: view/kateview.cpp:517 +#, fuzzy, kde-format +#| msgid "&Indentation" +msgid "Convert Indentation to Tabs" +msgstr "&Keflosk" + +#: view/kateview.cpp:532 +#, fuzzy, kde-format +#| msgid "&Indentation" +msgid "&Format Indentation" +msgstr "&Keflosk" + +#: view/kateview.cpp:533 +#, kde-format +msgid "" +"Use this to auto indent the current line or block of text to its proper " +"indent level." +msgstr "" + +#: view/kateview.cpp:537 +#, fuzzy, kde-format +#| msgid "&Align" +msgctxt "@action" +msgid "&Align On…" +msgstr "&Steudañ" + +#: view/kateview.cpp:539 +#, kde-format +msgid "" +"This command aligns lines in the selected block or whole document on the " +"column given by a regular expression that you will be prompted for.

If you give an empty pattern it will align on the first non-blank " +"character by default.
If the pattern has a capture it will indent on " +"the captured match.

Examples:
With '-' it will insert " +"spaces before the first '-' of each lines to align them all on the same " +"column.
With ':\\s+(.)' it will insert spaces before the first non-" +"blank character that occurs after a colon to align them all on the same " +"column." +msgstr "" + +#: view/kateview.cpp:550 +#, kde-format +msgid "C&omment" +msgstr "A&skelenn" + +#: view/kateview.cpp:553 +#, kde-format +msgid "" +"This command comments out the current line or a selected block of text.

The characters for single/multiple line comments are defined within " +"the language's highlighting." +msgstr "" + +#: view/kateview.cpp:558 +#, fuzzy, kde-format +#| msgid "Move to Previous Line" +msgid "Go to Previous Editing Location" +msgstr "Fiñval d'al linenn diaraok" + +#: view/kateview.cpp:564 +#, fuzzy, kde-format +#| msgid "Select to Next Line" +msgid "Go to Next Editing Location" +msgstr "Dibab betek al linenn a-heul" + +#: view/kateview.cpp:570 +#, kde-format +msgid "Unco&mment" +msgstr "" + +#: view/kateview.cpp:573 +#, kde-format +msgid "" +"This command removes comments from the current line or a selected block of " +"text.

The characters for single/multiple line comments are " +"defined within the language's highlighting." +msgstr "" + +#: view/kateview.cpp:578 +#, fuzzy, kde-format +#| msgid "Comment" +msgid "Toggle Comment" +msgstr "Askelenn" + +#: view/kateview.cpp:582 +#, kde-format +msgid "&Read Only Mode" +msgstr "Mod &lenn-hepken" + +#: view/kateview.cpp:583 +#, kde-format +msgid "Lock/unlock the document for writing" +msgstr "" + +#: view/kateview.cpp:588 +#, kde-format +msgid "&Force RTL Direction" +msgstr "" + +#: view/kateview.cpp:589 +#, fuzzy, kde-format +#| msgid "Selection Mode" +msgid "Force RTL Text Direction" +msgstr "Mod choazh" + +#: view/kateview.cpp:599 +#, kde-format +msgid "Uppercase" +msgstr "Lizherennoù vras" + +#: view/kateview.cpp:602 +#, kde-format +msgid "" +"Convert the selection to uppercase, or the character to the right of the " +"cursor if no text is selected." +msgstr "" + +#: view/kateview.cpp:608 +#, kde-format +msgid "Lowercase" +msgstr "Lizherennoù vihan" + +#: view/kateview.cpp:611 +#, kde-format +msgid "" +"Convert the selection to lowercase, or the character to the right of the " +"cursor if no text is selected." +msgstr "" + +#: view/kateview.cpp:617 +#, kde-format +msgid "Capitalize" +msgstr "" + +#: view/kateview.cpp:620 +#, kde-format +msgid "" +"Capitalize the selection, or the word under the cursor if no text is " +"selected." +msgstr "" + +#: view/kateview.cpp:625 +#, kde-format +msgid "Join Lines" +msgstr "" + +#: view/kateview.cpp:630 +#, fuzzy, kde-format +msgid "Invoke Code Completion" +msgstr "Klokadur shell" + +#: view/kateview.cpp:631 +#, kde-format +msgid "" +"Manually invoke command completion, usually by using a shortcut bound to " +"this action." +msgstr "" + +#: view/kateview.cpp:636 +#, fuzzy, kde-format +#| msgid "H&ighlight:" +msgid "Remove Trailing Spaces" +msgstr "S&plannadur :" + +#: view/kateview.cpp:654 +#, kde-format +msgid "Print the current document." +msgstr "Moulañ an teul red." + +#: view/kateview.cpp:657 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Show print preview of current document" +msgstr "Moulañ an teul red." + +#: view/kateview.cpp:661 +#, kde-format +msgid "Reloa&d" +msgstr "Adkar&gañ" + +#: view/kateview.cpp:663 +#, kde-format +msgid "Reload the current document from disk." +msgstr "Adkargañ an teul red eus ar bladenn." + +#: view/kateview.cpp:667 +#, kde-format +msgid "Save the current document to disk, with a name of your choice." +msgstr "" + +#: view/kateview.cpp:669 +#, kde-format +msgctxt "@action" +msgid "Save As with Encodin&g…" +msgstr "" + +#: view/kateview.cpp:675 +#, fuzzy, kde-format +#| msgid "&Save File As..." +msgctxt "@action" +msgid "Save Cop&y As…" +msgstr "&Enrollañ ar restr e ..." + +#: view/kateview.cpp:676 +#, fuzzy, kde-format +#| msgid "Reload the current document from disk." +msgid "Save a copy of the current document to disk." +msgstr "Adkargañ an teul red eus ar bladenn." + +#: view/kateview.cpp:680 +#, kde-format +msgid "" +"This command opens a dialog and lets you choose a line that you want the " +"cursor to move to." +msgstr "" + +#: view/kateview.cpp:684 +#, fuzzy, kde-format +#| msgid "Move to Previous Line" +msgid "Go to Previous Modified Line" +msgstr "Fiñval d'al linenn diaraok" + +#: view/kateview.cpp:685 +#, fuzzy, kde-format +#| msgid "Move Word Right" +msgid "Move upwards to the previous modified line." +msgstr "Fiñval ar ger d'a-zehou" + +#: view/kateview.cpp:690 +#, fuzzy, kde-format +#| msgid "Move to Next Line" +msgid "Go to Next Modified Line" +msgstr "Fiñval d'al liketenn a-heul" + +#: view/kateview.cpp:691 +#, kde-format +msgid "Move downwards to the next modified line." +msgstr "" + +#: view/kateview.cpp:695 +#, fuzzy, kde-format +#| msgid "&Configure Editor..." +msgctxt "@action" +msgid "&Configure Editor…" +msgstr "&Kefluniañ an aozer ..." + +#: view/kateview.cpp:697 +#, kde-format +msgid "Configure various aspects of this editor." +msgstr "" + +#: view/kateview.cpp:700 +#, fuzzy, kde-format +#| msgid "&Bold" +msgid "&Mode" +msgstr "&Druz" + +#: view/kateview.cpp:706 +#, fuzzy, kde-format +#| msgid "H&ighlight:" +msgid "&Highlighting" +msgstr "S&plannadur :" + +#: view/kateview.cpp:708 +#, kde-format +msgid "Here you can choose how the current document should be highlighted." +msgstr "" + +#: view/kateview.cpp:711 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "&Editor Color Theme" +msgstr "Livioù" + +#: view/kateview.cpp:717 +#, kde-format +msgid "&Indentation" +msgstr "&Keflosk" + +#: view/kateview.cpp:726 +#, kde-format +msgid "Select the entire text of the current document." +msgstr "" + +#: view/kateview.cpp:729 +#, kde-format +msgid "" +"If you have selected something within the current document, this will no " +"longer be selected." +msgstr "" + +#: view/kateview.cpp:733 +#, kde-format +msgid "Enlarge Font" +msgstr "Brasaat an nodrezh" + +#: view/kateview.cpp:735 +#, kde-format +msgid "This increases the display font size." +msgstr "" + +#: view/kateview.cpp:742 +#, kde-format +msgid "Shrink Font" +msgstr "Izelaat an nodrezh" + +#: view/kateview.cpp:744 +#, kde-format +msgid "This decreases the display font size." +msgstr "" + +#: view/kateview.cpp:751 +#, kde-format +msgid "Reset Font Size" +msgstr "" + +#: view/kateview.cpp:753 +#, kde-format +msgid "This resets the display font size." +msgstr "" + +#: view/kateview.cpp:756 +#, kde-format +msgid "Bl&ock Selection Mode" +msgstr "" + +#: view/kateview.cpp:759 +#, kde-format +msgid "" +"This command allows switching between the normal (line based) selection mode " +"and the block selection mode." +msgstr "" + +#: view/kateview.cpp:763 +#, fuzzy, kde-format +#| msgid "Select to End of Line" +msgid "Switch to Next Input Mode" +msgstr "Dibab betek dibenn al linenn" + +#: view/kateview.cpp:765 +#, fuzzy, kde-format +#| msgid "Select to End of Line" +msgid "Switch to the next input mode." +msgstr "Dibab betek dibenn al linenn" + +#: view/kateview.cpp:768 +#, kde-format +msgid "Overwr&ite Mode" +msgstr "" + +#: view/kateview.cpp:771 +#, kde-format +msgid "" +"Choose whether you want the text you type to be inserted or to overwrite " +"existing text." +msgstr "" + +#: view/kateview.cpp:775 +#, fuzzy, kde-format +#| msgid "&Replace" +msgid "Show Whitespace" +msgstr "&Erlec'hiañ" + +#: view/kateview.cpp:778 +#, kde-format +msgid "" +"If this option is checked, whitespaces in this document will be visible.

This is only a view option, meaning the document will not be changed." +msgstr "" + +#: view/kateview.cpp:782 +#, kde-format +msgid "&Dynamic Word Wrap" +msgstr "Plegañ ar &gerioù ent buhezek" + +#: view/kateview.cpp:786 +#, kde-format +msgid "" +"If this option is checked, the text lines will be wrapped at the view border " +"on the screen.

This is only a view option, meaning the document " +"will not be changed." +msgstr "" + +#: view/kateview.cpp:790 +#, kde-format +msgid "Dynamic Word Wrap Indicators" +msgstr "" + +#: view/kateview.cpp:792 +#, kde-format +msgid "Choose when the Dynamic Word Wrap Indicators should be displayed" +msgstr "" + +#: view/kateview.cpp:794 +#, kde-format +msgid "&Off" +msgstr "E&bet" + +#: view/kateview.cpp:794 +#, kde-format +msgid "Follow &Line Numbers" +msgstr "" + +#: view/kateview.cpp:794 +#, kde-format +msgid "&Always On" +msgstr "" + +#: view/kateview.cpp:798 +#, fuzzy, kde-format +#| msgid "&Dynamic Word Wrap" +msgid "Static Word Wrap" +msgstr "Plegañ ar &gerioù ent &buhezek" + +#: view/kateview.cpp:800 +#, kde-format +msgid "" +"If this option is checked, the text lines will be wrapped at the column " +"defined in the editing properties." +msgstr "" + +#: view/kateview.cpp:807 +#, kde-format +msgid "Show Static &Word Wrap Marker" +msgstr "" + +#: view/kateview.cpp:810 +#, kde-format +msgid "" +"Show/hide the Word Wrap Marker, a vertical line drawn at the word wrap " +"column as defined in the editing properties" +msgstr "" + +#: view/kateview.cpp:814 +#, kde-format +msgid "Show Folding &Markers" +msgstr "" + +#: view/kateview.cpp:816 +#, kde-format +msgid "" +"You can choose if the codefolding marks should be shown, if codefolding is " +"possible." +msgstr "" + +#: view/kateview.cpp:819 +#, kde-format +msgid "Show &Icon Border" +msgstr "Diskouez bevenn an &arlun" + +#: view/kateview.cpp:821 +#, kde-format +msgid "" +"Show/hide the icon border.

The icon border shows bookmark " +"symbols, for instance." +msgstr "" + +#: view/kateview.cpp:824 +#, kde-format +msgid "Show &Line Numbers" +msgstr "Diskouez niverennoù &linenn" + +#: view/kateview.cpp:826 +#, kde-format +msgid "Show/hide the line numbers on the left hand side of the view." +msgstr "" + +#: view/kateview.cpp:829 +#, kde-format +msgid "Show Scroll&bar Marks" +msgstr "" + +#: view/kateview.cpp:831 +#, kde-format +msgid "" +"Show/hide the marks on the vertical scrollbar.

The marks show " +"bookmarks, for instance." +msgstr "" + +#: view/kateview.cpp:834 +#, kde-format +msgid "Show Scrollbar Mini-Map" +msgstr "" + +#: view/kateview.cpp:836 +#, kde-format +msgid "" +"Show/hide the mini-map on the vertical scrollbar.

The mini-map " +"shows an overview of the whole document." +msgstr "" + +#. i18n("Show the whole document in the Mini-Map"), this); +#. ac->addAction(QLatin1String("view_scrollbar_minimap_all"), a); +#. a->setWhatsThis(i18n("Display the whole document in the mini-map.

With this option set the whole document will be visible in the +#. mini-map.")); connect(a, SIGNAL(triggered(bool)), SlOT(toggleScrollBarMiniMapAll())); connect(m_toggleScrollBarMiniMap, SIGNAL(triggered(bool)), +#. m_toggleScrollBarMiniMapAll, SLOT(setEnabled(bool))); +#: view/kateview.cpp:848 +#, kde-format +msgid "Show Non-Printable Spaces" +msgstr "" + +#: view/kateview.cpp:850 +#, kde-format +msgid "Show/hide bounding box around non-printable spaces" +msgstr "" + +#: view/kateview.cpp:854 +#, kde-format +msgid "Switch to Command Line" +msgstr "Gwintañ d'al linenn urzhiañ" + +#: view/kateview.cpp:856 +#, kde-format +msgid "Show/hide the command line on the bottom of the view." +msgstr "" + +#: view/kateview.cpp:859 +#, kde-format +msgid "Input Modes" +msgstr "" + +#: view/kateview.cpp:868 +#, kde-format +msgid "Activate/deactivate %1" +msgstr "" + +#: view/kateview.cpp:878 +#, kde-format +msgid "&End of Line" +msgstr "&Fin al linenn" + +#: view/kateview.cpp:880 +#, kde-format +msgid "Choose which line endings should be used, when you save the document" +msgstr "" + +#: view/kateview.cpp:881 +#, fuzzy, kde-format +#| msgid "UNIX" +msgctxt "@item:inmenu End of Line" +msgid "&UNIX" +msgstr "UNIX" + +#: view/kateview.cpp:882 +#, fuzzy, kde-format +#| msgid "DOS/Windows" +msgctxt "@item:inmenu End of Line" +msgid "&Windows/DOS" +msgstr "DOS/Windows" + +#: view/kateview.cpp:883 +#, fuzzy, kde-format +#| msgid "Macintosh" +msgctxt "@item:inmenu End of Line" +msgid "&Macintosh" +msgstr "Macintosh" + +#: view/kateview.cpp:888 +#, kde-format +msgid "Add &Byte Order Mark (BOM)" +msgstr "" + +#: view/kateview.cpp:891 +#, kde-format +msgid "" +"Enable/disable adding of byte order marks for UTF-8/UTF-16 encoded files " +"while saving" +msgstr "" + +#: view/kateview.cpp:895 +#, kde-format +msgid "E&ncoding" +msgstr "K&odadur" + +#: view/kateview.cpp:899 +#, kde-format +msgid "Look up the first occurrence of a piece of text or regular expression." +msgstr "" + +#: view/kateview.cpp:903 +#, fuzzy, kde-format +#| msgid "Selected" +msgid "Find Selected" +msgstr "Diuzet" + +#: view/kateview.cpp:905 +#, kde-format +msgid "Finds next occurrence of selected text." +msgstr "" + +#: view/kateview.cpp:909 +#, fuzzy, kde-format +#| msgid "Selected" +msgid "Find Selected Backwards" +msgstr "Diuzet" + +#: view/kateview.cpp:911 +#, kde-format +msgid "Finds previous occurrence of selected text." +msgstr "" + +#: view/kateview.cpp:915 +#, kde-format +msgid "Find and Select Next Occurrence" +msgstr "" + +#: view/kateview.cpp:917 +#, kde-format +msgid "Finds next occurrence of the word under cursor and add it to selection." +msgstr "" + +#: view/kateview.cpp:921 +#, kde-format +msgid "Mark Currently Selected Occurrence as Skipped" +msgstr "" + +#: view/kateview.cpp:923 +#, kde-format +msgid "Marks the currently selected word as skipped." +msgstr "" + +#: view/kateview.cpp:927 +#, kde-format +msgid "Find and Select All Occurrences" +msgstr "" + +#: view/kateview.cpp:929 +#, kde-format +msgid "Finds all occurrences of the word under cursor and selects them." +msgstr "" + +#: view/kateview.cpp:933 +#, kde-format +msgid "Look up the next occurrence of the search phrase." +msgstr "" + +#: view/kateview.cpp:937 +#, kde-format +msgid "Look up the previous occurrence of the search phrase." +msgstr "" + +#: view/kateview.cpp:941 +#, kde-format +msgid "" +"Look up a piece of text or regular expression and replace the result with " +"some given text." +msgstr "" + +#: view/kateview.cpp:944 +#, kde-format +msgid "Add Cursors to Line Ends" +msgstr "" + +#: view/kateview.cpp:946 +#, kde-format +msgid "Creates a cursor at the end of every line in selection." +msgstr "" + +#: view/kateview.cpp:950 +#, kde-format +msgid "Add Caret below Cursor" +msgstr "" + +#: view/kateview.cpp:952 +#, kde-format +msgid "Adds a caret in the line below the current caret." +msgstr "" + +#: view/kateview.cpp:956 +#, kde-format +msgid "Add Caret above Cursor" +msgstr "" + +#: view/kateview.cpp:958 +#, kde-format +msgid "Adds a caret in the line above the current caret." +msgstr "" + +#: view/kateview.cpp:962 +#, kde-format +msgid "Toggle Camel Case Cursor Movement" +msgstr "" + +#: view/kateview.cpp:963 +#, kde-format +msgid "Toggle between normal word movement and camel case cursor movement." +msgstr "" + +#: view/kateview.cpp:967 +#, fuzzy, kde-format +#| msgid "Move Word Right" +msgid "Remove Cursors from Empty Lines" +msgstr "Fiñval ar ger d'a-zehou" + +#: view/kateview.cpp:968 +#, fuzzy, kde-format +#| msgid "Move Word Right" +msgid "Remove cursors from empty lines" +msgstr "Fiñval ar ger d'a-zehou" + +#: view/kateview.cpp:972 +#, fuzzy, kde-format +msgid "Automatic Spell Checking" +msgstr "Emgeflosk" + +#: view/kateview.cpp:973 +#, kde-format +msgid "Enable/disable automatic spell checking" +msgstr "" + +#: view/kateview.cpp:979 +#, fuzzy, kde-format +#| msgid "Choose Editor..." +msgctxt "@action" +msgid "Change Dictionary…" +msgstr "Dibabit an aozer ..." + +#: view/kateview.cpp:980 +#, kde-format +msgid "Change the dictionary that is used for spell checking." +msgstr "" + +#: view/kateview.cpp:984 +#, kde-format +msgid "Clear Dictionary Ranges" +msgstr "" + +#: view/kateview.cpp:986 +#, kde-format +msgid "" +"Remove all the separate dictionary ranges that were set for spell checking." +msgstr "" + +#: view/kateview.cpp:992 +#, kde-format +msgid "Copy as &HTML" +msgstr "Eilañ e &HTML" + +#: view/kateview.cpp:993 +#, kde-format +msgid "" +"Copy the selection as HTML, formatted using the current syntax highlighting " +"and color scheme settings." +msgstr "" + +#: view/kateview.cpp:997 +#, fuzzy, kde-format +#| msgid "Export File as HTML" +msgctxt "@action" +msgid "E&xport as HTML…" +msgstr "Ezporzh ar restr e HTML" + +#: view/kateview.cpp:999 +#, kde-format +msgid "" +"This command allows you to export the current document with all highlighting " +"information into a HTML document." +msgstr "" + +#: view/kateview.cpp:1038 +#, kde-format +msgid "Move Word Left" +msgstr "Fiñval ar ger d'a-gleiz" + +#: view/kateview.cpp:1044 +#, kde-format +msgid "Select Character Left" +msgstr "" + +#: view/kateview.cpp:1050 +#, kde-format +msgid "Select Word Left" +msgstr "Dibabit ar ger a-gleiz" + +#: view/kateview.cpp:1060 +#, kde-format +msgid "Move Word Right" +msgstr "Fiñval ar ger d'a-zehou" + +#: view/kateview.cpp:1066 +#, kde-format +msgid "Select Character Right" +msgstr "" + +#: view/kateview.cpp:1072 +#, kde-format +msgid "Select Word Right" +msgstr "Dibabit ar ger a-zehou" + +#: view/kateview.cpp:1082 +#, fuzzy, kde-format +msgid "Start the Marked Selection" +msgstr "Emgeflosk" + +#: view/kateview.cpp:1083 +#, kde-format +msgid "" +"Emulate the Emacs-like selection mode, where the beginning is marked and " +"then the selection is continuously updated." +msgstr "" + +#: view/kateview.cpp:1088 +#, kde-format +msgid "Move to Beginning of Line" +msgstr "Fiñval da zerou al linenn" + +#: view/kateview.cpp:1094 +#, kde-format +msgid "Move to Beginning of Document" +msgstr "Fiñval da zerou an teul" + +#: view/kateview.cpp:1100 +#, kde-format +msgid "Select to Beginning of Line" +msgstr "Diuz da zerou al linenn" + +#: view/kateview.cpp:1110 +#, kde-format +msgid "Select to Beginning of Document" +msgstr "Diuz da zerou an teul" + +#: view/kateview.cpp:1120 +#, kde-format +msgid "Move to End of Line" +msgstr "Mont da zibenn al linenn" + +#: view/kateview.cpp:1126 +#, kde-format +msgid "Move to End of Document" +msgstr "Mont da zibenn an teul" + +#: view/kateview.cpp:1132 +#, kde-format +msgid "Select to End of Line" +msgstr "Dibab betek dibenn al linenn" + +#: view/kateview.cpp:1142 +#, kde-format +msgid "Select to End of Document" +msgstr "Dibab betek dibenn an teul" + +#: view/kateview.cpp:1152 +#, kde-format +msgid "Select to Previous Line" +msgstr "Dibab betek al linenn diaraok" + +#: view/kateview.cpp:1158 +#, kde-format +msgid "Scroll Line Up" +msgstr "Dibunañ al linenn a-ius" + +#: view/kateview.cpp:1167 +#, kde-format +msgid "Move to Next Line" +msgstr "Fiñval d'al liketenn a-heul" + +#: view/kateview.cpp:1173 +#, kde-format +msgid "Move to Previous Line" +msgstr "Fiñval d'al linenn diaraok" + +#: view/kateview.cpp:1179 +#, fuzzy, kde-format +#| msgid "Move Word Right" +msgid "Move Cursor Right" +msgstr "Fiñval ar ger d'a-zehou" + +#: view/kateview.cpp:1185 +#, fuzzy, kde-format +#| msgid "Move Word Left" +msgid "Move Cursor Left" +msgstr "Fiñval ar ger d'a-gleiz" + +#: view/kateview.cpp:1191 +#, kde-format +msgid "Select to Next Line" +msgstr "Dibab betek al linenn a-heul" + +#: view/kateview.cpp:1197 +#, kde-format +msgid "Scroll Line Down" +msgstr "Dibunañ al linenn izeloc'h" + +#: view/kateview.cpp:1206 +#, kde-format +msgid "Scroll Page Up" +msgstr "Dibunañ ar bajenn a-ius" + +#: view/kateview.cpp:1212 +#, kde-format +msgid "Select Page Up" +msgstr "" + +#: view/kateview.cpp:1218 +#, kde-format +msgid "Move to Top of View" +msgstr "" + +#: view/kateview.cpp:1224 +#, kde-format +msgid "Select to Top of View" +msgstr "" + +#: view/kateview.cpp:1230 +#, kde-format +msgid "Scroll Page Down" +msgstr "Dibunañ d'a-gleiz ar bajenn" + +#: view/kateview.cpp:1236 +#, kde-format +msgid "Select Page Down" +msgstr "" + +#: view/kateview.cpp:1242 +#, kde-format +msgid "Move to Bottom of View" +msgstr "" + +#: view/kateview.cpp:1248 +#, kde-format +msgid "Select to Bottom of View" +msgstr "" + +#: view/kateview.cpp:1254 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Go to Matching Bracket" +msgstr "Moulañ an teul red." + +#: view/kateview.cpp:1260 +#, kde-format +msgid "Select to Matching Bracket" +msgstr "" + +#: view/kateview.cpp:1267 +#, fuzzy, kde-format +#| msgid "Move Word Right" +msgid "Move Sub-Word Right" +msgstr "Fiñval ar ger d'a-zehou" + +#: view/kateview.cpp:1274 +#, fuzzy, kde-format +#| msgid "Select Word Right" +msgid "Select Sub-Word Right" +msgstr "Dibabit ar ger a-zehou" + +#: view/kateview.cpp:1281 +#, fuzzy, kde-format +#| msgid "Move Word Left" +msgid "Move Sub-Word Left" +msgstr "Fiñval ar ger d'a-gleiz" + +#: view/kateview.cpp:1288 +#, fuzzy, kde-format +#| msgid "Select Word Left" +msgid "Select Sub-Word Left" +msgstr "Dibabit ar ger a-gleiz" + +#: view/kateview.cpp:1298 +#, kde-format +msgid "Transpose Characters" +msgstr "" + +#: view/kateview.cpp:1303 +#, fuzzy, kde-format +#| msgid "&Ignore" +msgid "Transpose Words" +msgstr "&Tremen e-biou" + +#: view/kateview.cpp:1308 +#, kde-format +msgid "Delete Line" +msgstr "Lemel ul linenn" + +#: view/kateview.cpp:1314 +#, kde-format +msgid "Delete Word Left" +msgstr "Lemel ar ger a-gleiz" + +#: view/kateview.cpp:1320 +#, kde-format +msgid "Delete Word Right" +msgstr "Lemel ar ger a-zehou" + +#: view/kateview.cpp:1326 +#, kde-format +msgid "Delete Next Character" +msgstr "Lemel an arouezenn a-heul" + +#: view/kateview.cpp:1332 +#, kde-format +msgid "Backspace" +msgstr "War-gil" + +#: view/kateview.cpp:1340 +#, fuzzy, kde-format +#| msgid "&Insert" +msgid "Insert Tab Character" +msgstr "&Enlakaat" + +#: view/kateview.cpp:1345 +#, kde-format +msgid "Insert Smart Newline" +msgstr "" + +#: view/kateview.cpp:1346 +#, kde-format +msgid "" +"Insert newline including leading characters of the current line which are " +"not letters or numbers." +msgstr "" + +#: view/kateview.cpp:1354 +#, kde-format +msgid "Insert a Non-Indented Newline" +msgstr "" + +#: view/kateview.cpp:1355 +#, kde-format +msgid "" +"Insert a new line without indentation, regardless of indentation settings." +msgstr "" + +#: view/kateview.cpp:1363 +#, kde-format +msgid "Insert a Newline Above Current Line" +msgstr "" + +#: view/kateview.cpp:1364 +#, kde-format +msgid "" +"Insert a new line above current line without modifying the current line." +msgstr "" + +#: view/kateview.cpp:1372 +#, kde-format +msgid "Insert a Newline Below Current Line" +msgstr "" + +#: view/kateview.cpp:1373 +#, kde-format +msgid "" +"Insert a new line below current line without modifying the current line." +msgstr "" + +#: view/kateview.cpp:1382 +#, kde-format +msgid "&Indent" +msgstr "&Kefoskañ" + +#: view/kateview.cpp:1384 +#, kde-format +msgid "" +"Use this to indent a selected block of text.

You can configure " +"whether tabs should be honored and used or replaced with spaces, in the " +"configuration dialog." +msgstr "" + +#: view/kateview.cpp:1391 +#, kde-format +msgid "&Unindent" +msgstr "" + +#: view/kateview.cpp:1392 +#, kde-format +msgid "Use this to unindent a selected block of text." +msgstr "" + +#: view/kateview.cpp:1398 +#, fuzzy, kde-format +#| msgid "Delete Word Left" +msgid "Delete Sub-Word Left" +msgstr "Lemel ar ger a-gleiz" + +#: view/kateview.cpp:1405 +#, fuzzy, kde-format +#| msgid "Delete Word Right" +msgid "Delete Sub-Word Right" +msgstr "Lemel ar ger a-zehou" + +#: view/kateview.cpp:1426 +#, fuzzy, kde-format +#| msgid "Current line:" +msgid "Fold Toplevel Nodes" +msgstr "Linenn red :" + +#: view/kateview.cpp:1430 +#, fuzzy, kde-format +#| msgid "Current line:" +msgid "Unfold Toplevel Nodes" +msgstr "Linenn red :" + +#: view/kateview.cpp:1434 +#, fuzzy, kde-format +#| msgid "Current line:" +msgid "Toggle Current Node" +msgstr "Linenn red :" + +#: view/kateview.cpp:1438 +#, fuzzy, kde-format +#| msgid "Comment" +msgid "Toggle Contained Nodes" +msgstr "Askelenn" + +#: view/kateview.cpp:1447 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Say current selection or document" +msgstr "Moulañ an teul red." + +#: view/kateview.cpp:1457 +#, fuzzy, kde-format +#| msgid "Save the current document" +msgid "Stop current output" +msgstr "Enrollañ an teul red" + +#: view/kateview.cpp:1463 +#, fuzzy, kde-format +#| msgid "Save the current document" +msgid "Pause current output" +msgstr "Enrollañ an teul red" + +#: view/kateview.cpp:1469 +#, fuzzy, kde-format +#| msgid "Save the current document" +msgid "Resume current output" +msgstr "Enrollañ an teul red" + +#: view/kateview.cpp:1640 +#, kde-format +msgid "(R/O) %1" +msgstr "" + +#: view/kateview.cpp:1828 +#, kde-format +msgid "Camel case movement disabled" +msgstr "" + +#: view/kateview.cpp:1830 +#, kde-format +msgid "Camel case movement enabled" +msgstr "" + +#: view/kateview.cpp:2349 +#, fuzzy, kde-format +#| msgid "Search" +msgid "Search wrapped" +msgstr "Klask" + +#: view/kateview.cpp:3043 +#, kde-format +msgid "Open File" +msgstr "Digeriñ ur Restr" + +#: view/kateview.cpp:3984 +#, fuzzy, kde-format +#| msgid "&Align" +msgid "Align On" +msgstr "&Steudañ" + +#: view/kateview.cpp:3984 +#, kde-format +msgid "Alignment pattern:" +msgstr "" + +#: view/kateview.cpp:5068 +#, kde-format +msgid "Export File as HTML" +msgstr "Ezporzh ar restr e HTML" + +#: view/kateviewhelpers.cpp:302 view/kateviewhelpers.cpp:351 +#: view/kateviewhelpers.cpp:1012 +#, kde-format +msgctxt "from line - to line" +msgid "

%1

%2
" +msgstr "" + +#: view/kateviewhelpers.cpp:1212 +#, kde-format +msgid "Available Commands" +msgstr "Urzhiadoù da gaout" + +#: view/kateviewhelpers.cpp:1213 +#, kde-format +msgid "" +"

For help on individual commands, do 'help <command>'" +msgstr "" + +#: view/kateviewhelpers.cpp:1220 +#, kde-format +msgid "No help for '%1'" +msgstr "N'eus ket skoazell ebet evit « %1 »" + +#: view/kateviewhelpers.cpp:1223 +#, kde-format +msgid "No such command %1" +msgstr "Hevelep urzhiad %1 ebet" + +#: view/kateviewhelpers.cpp:1229 +#, kde-format +msgid "" +"

This is the Katepart command line.
Syntax: command " +"[ arguments ]
For a list of available commands, enter " +"help list
For help for individual commands, enter " +"help <command>

" +msgstr "" + +#: view/kateviewhelpers.cpp:1317 vimode/emulatedcommandbar/commandmode.cpp:211 +#, kde-format +msgid "No such command: \"%1\"" +msgstr "Hevelep urzhiad ebet : « %1 »" + +#: view/kateviewhelpers.cpp:1320 vimode/emulatedcommandbar/commandmode.cpp:193 +#, kde-format +msgid "Error: No range allowed for command \"%1\"." +msgstr "" + +#: view/kateviewhelpers.cpp:1330 vimode/emulatedcommandbar/commandmode.cpp:197 +#, kde-format +msgid "Success: " +msgstr "Berzh : " + +#: view/kateviewhelpers.cpp:1344 vimode/emulatedcommandbar/commandmode.cpp:206 +#, kde-format +msgid "Command \"%1\" failed." +msgstr "Sac'het eo an urzhiad « %1 »." + +#: view/kateviewhelpers.cpp:2632 view/kateviewhelpers.cpp:2633 +#, kde-format +msgid "Mark Type %1" +msgstr "" + +#: view/kateviewhelpers.cpp:2656 +#, kde-format +msgid "Set Default Mark Type" +msgstr "" + +#: view/kateviewhelpers.cpp:2801 +#, kde-format +msgid "Disable Annotation Bar" +msgstr "" + +#: view/screenshotdialog.cpp:175 +#, fuzzy, kde-format +#| msgid "Open/Save" +msgid "Save" +msgstr "Digeriñ/Enrollañ" + +#: view/screenshotdialog.cpp:176 +#, fuzzy, kde-format +#| msgid "&Save File As..." +msgid "Copy" +msgstr "&Enrollañ ar restr e ..." + +#: view/screenshotdialog.cpp:177 +#, fuzzy, kde-format +#| msgid "&Background Color..." +msgctxt "@action:button" +msgid "Background Color…" +msgstr "&Liv an drekleur ..." + +#: view/screenshotdialog.cpp:179 +#, fuzzy, kde-format +#| msgid "Selection Mode" +msgid "Show Extra Decorations" +msgstr "Mod choazh" + +#: view/screenshotdialog.cpp:180 +#, fuzzy, kde-format +msgid "Show Window Decorations" +msgstr "Keflosk" + +#: view/screenshotdialog.cpp:185 +#, fuzzy, kde-format +msgctxt "@title:window" +msgid "Take Screenshot of Selection" +msgstr "Emgeflosk" + +#: view/screenshotdialog.cpp:257 +#, fuzzy, kde-format +#| msgid "Show &Line Numbers" +msgid "Don't Show Line Numbers" +msgstr "Diskouez niverennoù &linenn" + +#: view/screenshotdialog.cpp:258 +#, fuzzy, kde-format +#| msgid "Show &Line Numbers" +msgid "Show Line Numbers From 1" +msgstr "Diskouez niverennoù &linenn" + +#: view/screenshotdialog.cpp:259 +#, fuzzy, kde-format +#| msgid "Show &Line Numbers" +msgid "Show Actual Line Numbers" +msgstr "Diskouez niverennoù &linenn" + +#: view/screenshotdialog.cpp:422 +#, kde-format +msgctxt "@title:window" +msgid "Screenshot saving failed" +msgstr "" + +#: view/screenshotdialog.cpp:422 +#, kde-format +msgid "Screenshot saving failed: %1" +msgstr "" + +#: vimode/appcommands.cpp:67 +#, fuzzy, kde-format +#| msgid "Document to open" +msgid "All documents written to disk" +msgstr "Teul da zigeriñ" + +#: vimode/appcommands.cpp:70 +#, fuzzy, kde-format +#| msgid "Document to open" +msgid "Document written to disk" +msgstr "Teul da zigeriñ" + +#: vimode/appcommands.cpp:202 +#, kde-format +msgid "" +"

w/wa — write document(s) to disk

Usage: w[a]

Writes the current document(s) to disk. It can be called in " +"two ways:
w — writes the current document to disk
" +"wa — writes all documents to disk.

If no file name is " +"associated with the document, a file dialog will be shown.

" +msgstr "" + +#: vimode/appcommands.cpp:213 +#, kde-format +msgid "" +"

q/qa/wq/wqa — [write and] quit

Usage: [w]q[a]

Quits the application. If w is prepended, it also " +"writes the document(s) to disk. This command can be called in several ways:" +"
q — closes the current view.
qa — " +"closes all views, effectively quitting the application.
wq " +"— writes the current document to disk and closes its view.
" +"wqa — writes all documents to disk and quits.

In all " +"cases, if the view being closed is the last view, the application quits. If " +"no file name is associated with the document and it should be written to " +"disk, a file dialog will be shown.

" +msgstr "" + +#: vimode/appcommands.cpp:228 +#, kde-format +msgid "" +"

x/xa — write and quit

Usage: x[a]

Saves document(s) and quits (exits). This command can be called " +"in two ways:
x — closes the current view.
xa — closes all views, effectively quitting the application.

In " +"all cases, if the view being closed is the last view, the application quits. " +"If no file name is associated with the document and it should be written to " +"disk, a file dialog will be shown.

Unlike the 'w' commands, this " +"command only writes the document if it is modified.

" +msgstr "" + +#: vimode/appcommands.cpp:242 +#, kde-format +msgid "" +"

sp,split— Split horizontally the current view into two

Usage: sp[lit]

The result is two views on the " +"same document.

" +msgstr "" + +#: vimode/appcommands.cpp:248 +#, kde-format +msgid "" +"

vs,vsplit— Split vertically the current view into two

Usage: vs[plit]

The result is two views on the " +"same document.

" +msgstr "" + +#: vimode/appcommands.cpp:254 +#, kde-format +msgid "" +"

clo[se]— Close the current view

Usage: clo[se]

After executing it, the current view will be closed.

" +msgstr "" + +#: vimode/appcommands.cpp:260 +#, kde-format +msgid "" +"

[v]new — split view and create new document

Usage: " +"[v]new

Splits the current view and opens a new " +"document in the new view. This command can be called in two ways:
" +"new — splits the view horizontally and opens a new document." +"
vnew — splits the view vertically and opens a new " +"document.

" +msgstr "" + +#: vimode/appcommands.cpp:270 +#, kde-format +msgid "" +"

e[dit] — reload current document

Usage: e[dit]

Starts editing the current document again. This is " +"useful to re-edit the current file, when it was modified on disk.

" +msgstr "" + +#: vimode/appcommands.cpp:518 +#, kde-format +msgid "" +"

b,buffer — Edit document N from the document list

Usage: b[uffer] [N]

" +msgstr "" + +#: vimode/appcommands.cpp:523 +#, kde-format +msgid "" +"

bp,bprev — previous buffer

Usage: bp[revious] " +"[N]

Goes to [N]th previous document (\"buffer" +"\") in document list.

[N] defaults to one.

Wraps " +"around the start of the document list.

" +msgstr "" + +#: vimode/appcommands.cpp:531 +#, kde-format +msgid "" +"

bn,bnext — switch to next document

Usage: " +"bn[ext] [N]

Goes to [N]th next document " +"(\"buffer\") in document list.[N] defaults to one.

Wraps around the end of the document list.

" +msgstr "" + +#: vimode/appcommands.cpp:539 +#, kde-format +msgid "" +"

bf,bfirst — first document

Usage: bf[irst]

Goes to the first document (\"buffer\") in document " +"list.

" +msgstr "" + +#: vimode/appcommands.cpp:545 +#, kde-format +msgid "" +"

bl,blast — last document

Usage: bl[ast]

Goes to the last document (\"buffer\") in document " +"list.

" +msgstr "" + +#: vimode/appcommands.cpp:551 +#, kde-format +msgid "

ls

list current buffers

" +msgstr "" + +#: vimode/cmds.cpp:52 +#, fuzzy, kde-format +#| msgid "Missing argument. Usage: %1 " +msgid "Missing argument. Usage: %1 " +msgstr "Mankout a ra an arventenn. Arveriadur : %1 " + +#: vimode/cmds.cpp:68 +#, kde-format +msgid "No mapping found for \"%1\"" +msgstr "" + +#: vimode/cmds.cpp:71 +#, kde-format +msgid "\"%1\" is mapped to \"%2\"" +msgstr "" + +#: vimode/cmds.cpp:77 +#, fuzzy, kde-format +#| msgid "Missing argument. Usage: %1 " +msgid "Missing argument(s). Usage: %1 []" +msgstr "Mankout a ra an arventenn. Arveriadur : %1 " + +#: vimode/cmds.cpp:145 vimode/cmds.cpp:161 +#, fuzzy, kde-format +#| msgid "Arguments" +msgid "Wrong arguments" +msgstr "Arventennoù" + +#: vimode/config/configtab.cpp:205 +#, fuzzy, kde-format +#| msgid "Unable to open %1" +msgid "Unable to open the config file for reading." +msgstr "N'hellan ket digeriñ '%1'" + +#: vimode/config/configtab.cpp:205 +#, fuzzy, kde-format +#| msgid "Unable to open %1" +msgid "Unable to open file" +msgstr "N'hellan ket digeriñ '%1'" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkViCommandsOverride) +#: vimode/config/configwidget.ui:35 +#, kde-format +msgid "" +"When selected, vi commands will override Kate's built-in commands. For " +"example: Ctrl+R will redo, and override the standard action (showing the " +"search and replace dialog)." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkViCommandsOverride) +#: vimode/config/configwidget.ui:38 +#, kde-format +msgid "Let Vi commands override Kate shortcuts" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkViRelLineNumbers) +#: vimode/config/configwidget.ui:45 +#, kde-format +msgid "" +"Show the line number relative to the line with the cursor in front of each " +"line." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkViRelLineNumbers) +#: vimode/config/configwidget.ui:48 +#, fuzzy, kde-format +#| msgid "Show &line numbers" +msgid "Display relative line numbers" +msgstr "Diskouez niverennoù &linenn" + +#. i18n: ectx: property (whatsThis), widget (QGroupBox, groupBox) +#: vimode/config/configwidget.ui:63 +#, kde-format +msgid "" +"Key mapping is used to change the meaning of typed keys. This allows you to " +"move commands to other keys or make special keypresses for doing a series of " +"commands.\n" +"\n" +"Example:\n" +"\"\" → \"I-- \"\n" +"\n" +"This will prepend \"-- \" to a line when pressing F2." +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, groupBox) +#: vimode/config/configwidget.ui:66 +#, kde-format +msgid "Key Mapping" +msgstr "" + +#. i18n: ectx: attribute (title), widget (QWidget, normalTab) +#: vimode/config/configwidget.ui:76 +#, fuzzy, kde-format +#| msgid "Normal Text" +msgid "Normal mode" +msgstr "Skrid boas" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:95 vimode/config/configwidget.ui:133 +#: vimode/config/configwidget.ui:171 +#, fuzzy, kde-format +#| msgid "Comment" +msgid "Command" +msgstr "Askelenn" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:100 vimode/config/configwidget.ui:138 +#: vimode/config/configwidget.ui:176 +#, fuzzy, kde-format +#| msgid "Replace" +msgid "Replacement" +msgstr "Erlec'hiañ" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:105 vimode/config/configwidget.ui:143 +#: vimode/config/configwidget.ui:181 +#, kde-format +msgid "Recursive?" +msgstr "" + +#. i18n: ectx: attribute (title), widget (QWidget, insertTab) +#: vimode/config/configwidget.ui:114 +#, fuzzy, kde-format +#| msgid "&Insert" +msgid "Insert mode" +msgstr "&Enlakaat" + +#. i18n: ectx: attribute (title), widget (QWidget, visualTab) +#: vimode/config/configwidget.ui:152 +#, fuzzy, kde-format +#| msgid "Normal Text" +msgid "Visual mode" +msgstr "Skrid boas" + +#. i18n: ectx: property (text), widget (QPushButton, btnRemoveSelectedRows) +#: vimode/config/configwidget.ui:195 +#, fuzzy, kde-format +#| msgid "Selected" +msgid "Remove selected" +msgstr "Diuzet" + +#. i18n: ectx: property (text), widget (QPushButton, btnAddNewRow) +#: vimode/config/configwidget.ui:202 +#, kde-format +msgid "Add new mapping" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QPushButton, btnImportNormal) +#: vimode/config/configwidget.ui:209 +#, kde-format +msgid "" +"Read a vimrc file and attempt to import mappings specified with the " +"\"[n]noremap\" command." +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, btnImportNormal) +#: vimode/config/configwidget.ui:212 +#, kde-format +msgid "Import from vimrc file" +msgstr "" + +#: vimode/marks.cpp:117 +#, fuzzy, kde-format +msgid "Mark set: %1" +msgstr " Linenn : %1" + +#: vimode/marks.cpp:163 +#, fuzzy, kde-format +#| msgid "Go to the next bookmark." +msgid "There are no more chars for the next bookmark." +msgstr "Mont d'ar sil a-heul." + +#: vimode/modes/insertvimode.cpp:261 vimode/modes/modebase.cpp:794 +#: vimode/modes/normalvimode.cpp:3567 +#, kde-format +msgid "Nothing in register %1" +msgstr "" + +#: vimode/modes/normalvimode.cpp:1691 +#, kde-format +msgid "'%1' %2, Hex %3, Octal %4" +msgstr "" + +#: vimode/modes/normalvimode.cpp:2534 +#, fuzzy, kde-format +msgid "Mark not set: %1" +msgstr " Linenn : %1" + +#~ msgid "Set &Bookmark" +#~ msgstr "Lakaat ar &sil" + +#, fuzzy +#~| msgid "The file '%1' was created by another program." +#~ msgid "The file '%1' was created on disk." +#~ msgstr "" +#~ "Bez' ez eus un restr gant an anv « %1 » endeo\n" +#~ "Ha fellout a ra deoc'h e rasklañ ?" + +#, fuzzy +#~| msgid "Character" +#~ msgctxt "Wrap words at (value is at 20 or larger)" +#~ msgid " character" +#~ msgid_plural " characters" +#~ msgstr[0] "Arouezennoù" +#~ msgstr[1] "" + +#, fuzzy +#~| msgid "&Save File As..." +#~ msgid "Save..." +#~ msgstr "&Enrollañ ar restr e ..." + +#, fuzzy +#~| msgid "&Save File As..." +#~ msgid "&Copy..." +#~ msgstr "&Enrollañ ar restr e ..." + +#, fuzzy +#~| msgid "Other" +#~ msgid "Other..." +#~ msgstr "All" + +#, fuzzy +#~| msgid "&Align" +#~ msgid "&Align On..." +#~ msgstr "&Steudañ" + +#, fuzzy +#~| msgid "Choose Editor..." +#~ msgid "Change Dictionary..." +#~ msgstr "Dibabit an aozer ..." + +#, fuzzy +#~ msgid "Namespaces" +#~ msgstr "Niver a egor :" + +#~ msgid "Classes" +#~ msgstr "Renkadoù" + +#, fuzzy +#~ msgid "Structs" +#~ msgstr "Berradennoù" + +#~ msgid "Functions" +#~ msgstr "Fonksionoù" + +#, fuzzy +#~ msgid "Enumerations" +#~ msgstr "Kefluniadur" + +#, fuzzy +#~| msgid "Comment" +#~ msgctxt "Script command name" +#~ msgid "Toggle comment" +#~ msgstr "Askelenn" + +#~ msgid "Choo&se Font..." +#~ msgstr "Dibabit an nodre&zh ..." + +#, fuzzy +#~| msgid "E&ncoding" +#~ msgctxt "Script command category" +#~ msgid "Quick Coding" +#~ msgstr "K&odadur" + +#, fuzzy +#~ msgid "Automatic Selection" +#~ msgstr "Emgeflosk" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Lua" +#~ msgctxt "Autoindent mode" +#~ msgid "Lua" +#~ msgstr "Lua" + +#, fuzzy +#~| msgid "Show &line numbers" +#~ msgid "Show line modification markers" +#~ msgstr "Diskouez niverennoù &linenn" + +#, fuzzy +#~| msgid "Search Options" +#~ msgid "By posi&tion" +#~ msgstr "Dibarzhoù klask" + +#, fuzzy +#~| msgid "Backspace" +#~ msgid "Backup on Save" +#~ msgstr "War-gil" + +#, fuzzy +#~| msgid "Prefix" +#~ msgid "&Prefix:" +#~ msgstr "Rakger" + +#~ msgid "&Suffix:" +#~ msgstr "&Dibenn-ger :" + +#, fuzzy +#~| msgid "Disabled" +#~ msgid "Disable" +#~ msgstr "Marv" + +#, fuzzy +#~| msgid "Folder Config File" +#~ msgid "Directory for swp files" +#~ msgstr "Restr kefluniadur renkell" + +#, fuzzy +#~| msgid "&Dynamic word wrap" +#~ msgid "Enable static &word wrap" +#~ msgstr "Plegañ ar &gerioù ent &buhezek" + +#, fuzzy +#~| msgid "&Dynamic word wrap" +#~ msgid "Show static word wra&p marker" +#~ msgstr "Plegañ ar &gerioù ent &buhezek" + +#, fuzzy +#~| msgid "&Indentation" +#~ msgid "Input Mode" +#~ msgstr "&Keflosk" + +#, fuzzy +#~| msgid "Word Completion Plugin" +#~ msgid "Enable automatic brackets" +#~ msgstr "Lugent klokadur a ger" + +#, fuzzy +#~| msgid "Cursor & Selection" +#~ msgid "Chars to enclose selection:" +#~ msgstr "Reti & choazh" + +#, fuzzy +#~ msgid "Highlight marker size:" +#~ msgstr "S&plannadur :" + +#, fuzzy +#~ msgid "Highlight tabulators" +#~ msgstr "S&plannadur :" + +#~ msgid "Prefix" +#~ msgstr "Rakger" + +#~ msgid "Icon" +#~ msgstr "Arlun" + +#, fuzzy +#~ msgid "Scope" +#~ msgstr "&Plaenaozañ" + +#~ msgid "Name" +#~ msgstr "Anv" + +#~ msgid "Arguments" +#~ msgstr "Arventennoù" + +#~ msgid "Postfix" +#~ msgstr "Postfix" + +#~ msgid "Public" +#~ msgstr "Foran" + +#~ msgid "Protected" +#~ msgstr "Gwarezet" + +#~ msgid "Private" +#~ msgstr "Prevez" + +#~ msgid "Static" +#~ msgstr "S&tatik" + +#, fuzzy +#~ msgid "Namespace" +#~ msgstr "War-gil" + +#~ msgid "Class" +#~ msgstr "Renkad" + +#, fuzzy +#~ msgid "Union" +#~ msgstr "Fonksion" + +#~ msgid "Function" +#~ msgstr "Fonksion" + +#, fuzzy +#~ msgid "Variable" +#~ msgstr "Marv" + +#, fuzzy +#~ msgid "Enumeration" +#~ msgstr "Kefluniadur" + +#~ msgid "Template" +#~ msgstr "Patrom" + +#~ msgid "Virtual" +#~ msgstr "Galloudel" + +#, fuzzy +#~ msgid "Override" +#~ msgstr "Rasklañ" + +#~ msgid "Inline" +#~ msgstr "Enlinenn" + +#~ msgid "Friend" +#~ msgstr "Mignon" + +#~ msgid "Signal" +#~ msgstr "Arhent" + +#, fuzzy +#~ msgid "Local Scope" +#~ msgstr "Restroù &lec'hel" + +#, fuzzy +#~ msgid "Unknown Property" +#~ msgstr "Perzhioù ar voest" + +#, fuzzy +#~ msgid "Code Completion Configuration" +#~ msgstr "Lugent klokadur a ger" + +#, fuzzy +#~| msgid "&Section:" +#~ msgid "Description" +#~ msgstr "&Dachenn :" + +#, fuzzy +#~| msgid "Edit Entry" +#~ msgid "Edit Entry..." +#~ msgstr "Aozañ ar bouetadur" + +#, fuzzy +#~| msgid "Remove entry" +#~ msgid "Remove Entry" +#~ msgstr "Dilemel ar bouetadur" + +#, fuzzy +#~| msgid "Add entry..." +#~ msgid "Add Entry..." +#~ msgstr "Ouzhpennañ ur bouetadur ..." + +#, fuzzy +#~| msgid "Footer Properties" +#~ msgid "Further Notes" +#~ msgstr "Dibarzhoù an traoñ" + +#, fuzzy +#~| msgid "Available Commands" +#~ msgid "Edit Command" +#~ msgstr "Urzhiadoù da gaout" + +#, fuzzy +#~| msgid "Choo&se Font..." +#~ msgid "Choose an icon." +#~ msgstr "Dibabit an nodre&zh ..." + +#, fuzzy +#~| msgid "&Section:" +#~ msgid "&Description:" +#~ msgstr "&Dachenn :" + +#, fuzzy +#~| msgid "&Pattern:" +#~ msgid "&Category:" +#~ msgstr "&Sil :" + +#, fuzzy +#~| msgid "String" +#~ msgid "Sorting" +#~ msgstr "Hedad" + +#, fuzzy +#~| msgid "Case &sensitive" +#~ msgid "Case sensitive" +#~ msgstr "Evezh&iek ouzh ar c'hef" + +#~ msgid "^" +#~ msgstr "^" + +#, fuzzy +#~| msgid "String" +#~ msgid "Filtering" +#~ msgstr "Hedad" + +#, fuzzy +#~| msgid "Footer Properties" +#~ msgid "Access Grouping Properties" +#~ msgstr "Dibarzhoù an traoñ" + +#, fuzzy +#~| msgid "Footer Properties" +#~ msgid "Item Grouping properties" +#~ msgstr "Dibarzhoù an traoñ" + +#, fuzzy +#~| msgid "Colors" +#~ msgid "Columns" +#~ msgstr "Livioù" + +#, fuzzy +#~| msgid "(c) 2000-2005 The Kate Authors" +#~ msgid "(c) 2000-2019 The Kate Authors" +#~ msgstr "(c) 2000-2005 Oberour Kate" + +#, fuzzy +#~| msgid "What do you want to do?" +#~ msgid "How do you want to import the schema?" +#~ msgstr "Petra e fell deoc'h d'ober ?" + +#, fuzzy +#~| msgid "Replace Confirmation" +#~ msgid "Replace current schema?" +#~ msgstr "Erlec'hiañ ar gefluniadur" + +#, fuzzy +#~| msgid "Replace Confirmation" +#~ msgid "Replace existing schema %1" +#~ msgstr "Erlec'hiañ ar gefluniadur" + +#, fuzzy +#~| msgid "H&ighlight:" +#~ msgid "Loading all highlightings for schema" +#~ msgstr "S&plannadur :" + +#, fuzzy +#~| msgid "Replace Confirmation" +#~ msgid "Kate color schema" +#~ msgstr "Erlec'hiañ ar gefluniadur" + +#, fuzzy +#~| msgid "File Format" +#~ msgid "Fileformat error" +#~ msgstr "Furmad ar restroù" + +#~ msgid "&New..." +#~ msgstr "&Nevez ..." + +#, fuzzy +#~| msgid "Replace Confirmation" +#~ msgid "Replace existing theme %1" +#~ msgstr "Erlec'hiañ ar gefluniadur" + +#, fuzzy +#~ msgid "Name unspecified" +#~ msgstr "War-gil" + +#~ msgid "Name:" +#~ msgstr "Anv :" + +#~ msgid "&Schema:" +#~ msgstr "&Steuñv :" + +#~ msgid "Fonts & Colors" +#~ msgstr "Nodrezhoù ha livioù" + +#~ msgid "&Schema" +#~ msgstr "&Steuñv" + +#~ msgid "" +#~ "A file named \"%1\" already exists. Are you sure you want to overwrite it?" +#~ msgstr "" +#~ "Bez' ez eus un restr gant an anv « %1 » endeo. Ha fellout a ra deoc'h e " +#~ "rasklañ ?" + +#~ msgid "Overwrite File?" +#~ msgstr "Rasklañ ar restr ?" + +#, fuzzy +#~| msgid "H&ighlight:" +#~ msgid "Highlight trailing &spaces" +#~ msgstr "S&plannadur :" + +#~ msgid "Spellcheck Selection..." +#~ msgstr "Dibab gwiriekaat ar skritur ..." + +#~ msgid "&Go to line:" +#~ msgstr "&Kit da linenn :" + +#~ msgid "What do you want to do?" +#~ msgstr "Petra e fell deoc'h d'ober ?" + +#~ msgid "File Was Changed on Disk" +#~ msgstr "Cheñchet e oa ar restr war ar bladenn" + +#~ msgid "Installed" +#~ msgstr "Staliaet" + +#~ msgid "Latest" +#~ msgstr "Diwezhatañ" + +#~ msgid "&Install" +#~ msgstr "&Staliañ" + +#, fuzzy +#~| msgid "None" +#~ msgctxt "Syntax highlighting" +#~ msgid "None" +#~ msgstr "Ebet" + +#~ msgid "Normal Text" +#~ msgstr "Skrid boas" + +#~ msgid "Unable to open %1" +#~ msgstr "N'hellan ket digeriñ '%1'" + +#, fuzzy +#~| msgid "Continue from the end?" +#~ msgid "Continuing search from top" +#~ msgstr "Kenderc'hel adalek an diwezh ?" + +#, fuzzy +#~| msgid "Continue from the end?" +#~ msgid "Continuing search from bottom" +#~ msgstr "Kenderc'hel adalek an diwezh ?" + +#~ msgctxt "Language Section" +#~ msgid "Scripts" +#~ msgstr "Urzhiaouegoù" + +#~ msgctxt "Language Section" +#~ msgid "Sources" +#~ msgstr "Tarzh" + +#~ msgctxt "Language" +#~ msgid "ABC" +#~ msgstr "ABC" + +#~ msgctxt "Language Section" +#~ msgid "Other" +#~ msgstr "Ar re all" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "ActionScript 2.0" +#~ msgstr "Urzhiaouegoù" + +#~ msgctxt "Language" +#~ msgid "Ada" +#~ msgstr "Ada" + +#~ msgctxt "Language" +#~ msgid "AHDL" +#~ msgstr "AHDL" + +#~ msgctxt "Language Section" +#~ msgid "Hardware" +#~ msgstr "Periantel" + +#~ msgctxt "Language" +#~ msgid "ANSI C89" +#~ msgstr "ANSI C89" + +#~ msgctxt "Language Section" +#~ msgid "Scientific" +#~ msgstr "Skiantel" + +#~ msgctxt "Language" +#~ msgid "Apache Configuration" +#~ msgstr "Kefluniadur Apache" + +#~ msgctxt "Language Section" +#~ msgid "Configuration" +#~ msgstr "Kefluniadur" + +#~ msgctxt "Language Section" +#~ msgid "Assembler" +#~ msgstr "Stroller" + +#~ msgctxt "Language" +#~ msgid "AVR Assembler" +#~ msgstr "Stroller AVR" + +#~ msgctxt "Language" +#~ msgid "Asm6502" +#~ msgstr "Asm6502" + +#~ msgctxt "Language" +#~ msgid "ASP" +#~ msgstr "ASP" + +#~ msgctxt "Language" +#~ msgid "AWK" +#~ msgstr "AWK" + +#~ msgctxt "Language" +#~ msgid "Bash" +#~ msgstr "Bash" + +#~ msgctxt "Language" +#~ msgid "BibTeX" +#~ msgstr "BibTeX" + +#~ msgctxt "Language" +#~ msgid "C" +#~ msgstr "C" + +#~ msgctxt "Language" +#~ msgid "Cg" +#~ msgstr "Cg" + +#~ msgctxt "Language" +#~ msgid "CGiS" +#~ msgstr "CGiS" + +#~ msgctxt "Language" +#~ msgid "ChangeLog" +#~ msgstr "ChangeLog" + +#~ msgctxt "Language" +#~ msgid "Cisco" +#~ msgstr "Cisco" + +#~ msgctxt "Language" +#~ msgid "Clipper" +#~ msgstr "Clipper" + +#, fuzzy +#~| msgid "Scripts" +#~ msgctxt "Language" +#~ msgid "CoffeeScript" +#~ msgstr "Urzhiaouegoù" + +#~ msgctxt "Language" +#~ msgid "ColdFusion" +#~ msgstr "ColdFusion" + +#~ msgctxt "Language" +#~ msgid "Common Lisp" +#~ msgstr "Common Lisp" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "CMake" +#~ msgctxt "Language" +#~ msgid "Crack" +#~ msgstr "CMake" + +#~ msgctxt "Language" +#~ msgid "C#" +#~ msgstr "C#" + +#~ msgctxt "Language" +#~ msgid "CSS" +#~ msgstr "CSS" + +#, fuzzy +#~| msgid "Scripts" +#~ msgctxt "Language" +#~ msgid "CubeScript" +#~ msgstr "Urzhiaouegoù" + +#~ msgctxt "Language" +#~ msgid "CUE Sheet" +#~ msgstr "Folenn CUE" + +#~ msgctxt "Language" +#~ msgid "D" +#~ msgstr "D" + +#~ msgctxt "Language" +#~ msgid "Debian Changelog" +#~ msgstr "Changelog Debian" + +#~ msgctxt "Language" +#~ msgid "Debian Control" +#~ msgstr "Control Debian" + +#~ msgctxt "Language" +#~ msgid ".desktop" +#~ msgstr ".desktop" + +#~ msgctxt "Language" +#~ msgid "Diff" +#~ msgstr "Diff" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Makefile" +#~ msgctxt "Language" +#~ msgid "Dockerfile" +#~ msgstr "Makefile" + +#~ msgctxt "Language" +#~ msgid "Doxygen" +#~ msgstr "Doxygen" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Doxygen" +#~ msgctxt "Language" +#~ msgid "DoxygenLua" +#~ msgstr "Doxygen" + +#~ msgctxt "Language" +#~ msgid "E Language" +#~ msgstr "Yezh E" + +#~ msgctxt "Language" +#~ msgid "Eiffel" +#~ msgstr "Eiffel" + +#~ msgctxt "Language" +#~ msgid "Email" +#~ msgstr "Postel" + +#~ msgctxt "Language" +#~ msgid "Euphoria" +#~ msgstr "Euphoria" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Intel x86 (NASM)" +#~ msgctxt "Language" +#~ msgid "Intel x86 (FASM)" +#~ msgstr "Intel x86 (NASM)" + +#~ msgctxt "Language" +#~ msgid "ferite" +#~ msgstr "ferite" + +#~ msgctxt "Language" +#~ msgid "4GL" +#~ msgstr "4GL" + +#~ msgctxt "Language Section" +#~ msgid "Database" +#~ msgstr "Stlennvon" + +#~ msgctxt "Language" +#~ msgid "4GL-PER" +#~ msgstr "4GL-PER" + +#~ msgctxt "Language" +#~ msgid "Fortran" +#~ msgstr "Fortran" + +#~ msgctxt "Language" +#~ msgid "fstab" +#~ msgstr "fstab" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "GAP" +#~ msgstr "ASP" + +#, fuzzy +#~| msgid "Backspace" +#~ msgctxt "Language" +#~ msgid "GDB Backtrace" +#~ msgstr "War-gil" + +#~ msgctxt "Language" +#~ msgid "GDL" +#~ msgstr "GDL" + +#~ msgctxt "Language" +#~ msgid "GNU Gettext" +#~ msgstr "GNU Gettext" + +#, fuzzy +#~| msgid "&Ignore" +#~ msgctxt "Language" +#~ msgid "Git Ignore" +#~ msgstr "&Tremen e-biou" + +#~ msgctxt "Language" +#~ msgid "GLSL" +#~ msgstr "GLSL" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "D" +#~ msgctxt "Language Section" +#~ msgid "3D" +#~ msgstr "D" + +#~ msgctxt "Language" +#~ msgid "GNU Assembler" +#~ msgstr "Stroller GNU" + +#, fuzzy +#~| msgid "Go" +#~ msgctxt "Language" +#~ msgid "Go" +#~ msgstr "Mont" + +#~ msgctxt "Language" +#~ msgid "Haskell" +#~ msgstr "Haskell" + +#~ msgctxt "Language" +#~ msgid "HTML" +#~ msgstr "HTML" + +#~ msgctxt "Language" +#~ msgid "Quake Script" +#~ msgstr "Urzhiaoueg Quake" + +#~ msgctxt "Language" +#~ msgid "IDL" +#~ msgstr "IDL" + +#~ msgctxt "Language" +#~ msgid "ILERPG" +#~ msgstr "ILERPG" + +#~ msgctxt "Language" +#~ msgid "Inform" +#~ msgstr "Inform" + +#~ msgctxt "Language" +#~ msgid "INI Files" +#~ msgstr "Restroù LDIF" + +#~ msgctxt "Language" +#~ msgid "Java" +#~ msgstr "Java" + +#~ msgctxt "Language" +#~ msgid "Javadoc" +#~ msgstr "Javadoc" + +#~ msgctxt "Language" +#~ msgid "JavaScript" +#~ msgstr "JavaScript" + +#~ msgctxt "Language" +#~ msgid "JSP" +#~ msgstr "JSP" + +#~ msgctxt "Language" +#~ msgid "KBasic" +#~ msgstr "KBasic" + +#, fuzzy +#~| msgid "Configure" +#~ msgctxt "Language" +#~ msgid "Kconfig" +#~ msgstr "Kefluniañ" + +#~ msgctxt "Language" +#~ msgid "LaTeX" +#~ msgstr "LaTeX" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Quake Script" +#~ msgctxt "Language" +#~ msgid "GNU Linker Script" +#~ msgstr "Urzhiaoueg Quake" + +#~ msgctxt "Language" +#~ msgid "LDIF" +#~ msgstr "LDIF" + +#~ msgctxt "Language" +#~ msgid "Lex/Flex" +#~ msgstr "Lex/Flex" + +#~ msgctxt "Language" +#~ msgid "LilyPond" +#~ msgstr "LilyPond" + +#~ msgctxt "Language" +#~ msgid "Logtalk" +#~ msgstr "Logtalk" + +#~ msgctxt "Language" +#~ msgid "LPC" +#~ msgstr "LPC" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "GLSL" +#~ msgctxt "Language" +#~ msgid "LSL" +#~ msgstr "GLSL" + +#~ msgctxt "Language" +#~ msgid "Lua" +#~ msgstr "Lua" + +#~ msgctxt "Language" +#~ msgid "M3U" +#~ msgstr "M3U" + +#~ msgctxt "Language" +#~ msgid "MAB-DB" +#~ msgstr "MAB-DB" + +#~ msgctxt "Language" +#~ msgid "Makefile" +#~ msgstr "Makefile" + +#~ msgctxt "Language" +#~ msgid "Mason" +#~ msgstr "Mason" + +#~ msgctxt "Language" +#~ msgid "Matlab" +#~ msgstr "Matlab" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "MediaWiki" +#~ msgstr "CMake" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "SML" +#~ msgctxt "Language" +#~ msgid "MEL" +#~ msgstr "SML" + +#~ msgctxt "Language" +#~ msgid "MIPS Assembler" +#~ msgstr "Stroller MIPS" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Modula-2" +#~ msgctxt "Language" +#~ msgid "Modelica" +#~ msgstr "Modula-2" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Modula-2" +#~ msgctxt "Language" +#~ msgid "Modelines" +#~ msgstr "Modula-2" + +#~ msgctxt "Language" +#~ msgid "Modula-2" +#~ msgstr "Modula-2" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "MonoBasic" +#~ msgstr "KBasic" + +#~ msgctxt "Language" +#~ msgid "Intel x86 (NASM)" +#~ msgstr "Intel x86 (NASM)" + +#~ msgctxt "Language" +#~ msgid "Objective-C" +#~ msgstr "Objective-C" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Objective-C++" +#~ msgstr "Objective-C" + +#~ msgctxt "Language" +#~ msgid "Objective Caml" +#~ msgstr "Objective Caml" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Objective Caml" +#~ msgctxt "Language" +#~ msgid "Objective Caml Ocamllex" +#~ msgstr "Objective Caml" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Objective Caml" +#~ msgctxt "Language" +#~ msgid "Objective Caml Ocamlyacc" +#~ msgstr "Objective Caml" + +#~ msgctxt "Language" +#~ msgid "Octave" +#~ msgstr "Octave" + +#~ msgctxt "Language" +#~ msgid "Pascal" +#~ msgstr "Pascal" + +#~ msgctxt "Language" +#~ msgid "Perl" +#~ msgstr "Perl" + +#~ msgctxt "Language" +#~ msgid "PHP/PHP" +#~ msgstr "PHP/PHP" + +#~ msgctxt "Language" +#~ msgid "PicAsm" +#~ msgstr "PicAsm" + +#~ msgctxt "Language" +#~ msgid "Pike" +#~ msgstr "Pike" + +#~ msgctxt "Language" +#~ msgid "PostScript" +#~ msgstr "PostScript" + +#~ msgctxt "Language" +#~ msgid "POV-Ray" +#~ msgstr "POV-Ray" + +#~ msgctxt "Language" +#~ msgid "progress" +#~ msgstr "progress" + +#~ msgctxt "Language" +#~ msgid "PureBasic" +#~ msgstr "PureBasic" + +#~ msgctxt "Language" +#~ msgid "Python" +#~ msgstr "Python" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "CMake" +#~ msgctxt "Language" +#~ msgid "QMake" +#~ msgstr "CMake" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "SML" +#~ msgctxt "Language" +#~ msgid "QML" +#~ msgstr "SML" + +#~ msgctxt "Language" +#~ msgid "R Script" +#~ msgstr "Urzhiaoueg R" + +#, fuzzy +#~| msgid "&Replace" +#~ msgctxt "Language" +#~ msgid "Replicode" +#~ msgstr "&Erlec'hiañ" + +#~ msgctxt "Language" +#~ msgid "REXX" +#~ msgstr "REXX" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Ruby/Rails/RHTML" +#~ msgstr "HTML" + +#~ msgctxt "Language" +#~ msgid "RenderMan RIB" +#~ msgstr "RenderMan RIB" + +#~ msgctxt "Language" +#~ msgid "RPM Spec" +#~ msgstr "Spec RPM" + +#~ msgctxt "Language" +#~ msgid "RSI IDL" +#~ msgstr "RSI IDL" + +#, fuzzy +#~| msgid "File Format" +#~ msgctxt "Language" +#~ msgid "Rich Text Format" +#~ msgstr "Furmad ar restroù" + +#~ msgctxt "Language" +#~ msgid "Ruby" +#~ msgstr "Ruby" + +#~ msgctxt "Language" +#~ msgid "Sather" +#~ msgstr "Sather" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Stata" +#~ msgctxt "Language" +#~ msgid "Scala" +#~ msgstr "Stata" + +#~ msgctxt "Language" +#~ msgid "scilab" +#~ msgstr "scilab" + +#~ msgctxt "Language" +#~ msgid "SGML" +#~ msgstr "SGML" + +#~ msgctxt "Language" +#~ msgid "Sieve" +#~ msgstr "Sieve" + +#~ msgctxt "Language" +#~ msgid "SML" +#~ msgstr "SML" + +#~ msgctxt "Language" +#~ msgid "Spice" +#~ msgstr "Spice" + +#~ msgctxt "Language" +#~ msgid "SQL (MySQL)" +#~ msgstr "SQL (MySQL)" + +#~ msgctxt "Language" +#~ msgid "SQL (PostgreSQL)" +#~ msgstr "SQL (PostgreSQL)" + +#~ msgctxt "Language" +#~ msgid "SQL" +#~ msgstr "SQL" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "GLSL" +#~ msgctxt "Language" +#~ msgid "STL" +#~ msgstr "GLSL" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Verilog" +#~ msgctxt "Language" +#~ msgid "SystemVerilog" +#~ msgstr "Verilog" + +#~ msgctxt "Language" +#~ msgid "Tcl/Tk" +#~ msgstr "Tcl/Tk" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Textile" +#~ msgstr "Drekleur" + +#~ msgctxt "Language" +#~ msgid "TI Basic" +#~ msgstr "TI Basic" + +#~ msgctxt "Language" +#~ msgid "txt2tags" +#~ msgstr "txt2tags" + +#~ msgctxt "Language" +#~ msgid "UnrealScript" +#~ msgstr "UnrealScript" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Apache Configuration" +#~ msgctxt "Language" +#~ msgid "Varnish Configuration Language" +#~ msgstr "Kefluniadur Apache" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Apache Configuration" +#~ msgctxt "Language" +#~ msgid "Varnish 4 Configuration Language" +#~ msgstr "Kefluniadur Apache" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Apache Configuration" +#~ msgctxt "Language" +#~ msgid "Varnish Test Case language" +#~ msgstr "Kefluniadur Apache" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Apache Configuration" +#~ msgctxt "Language" +#~ msgid "Varnish 4 Test Case language" +#~ msgstr "Kefluniadur Apache" + +#~ msgctxt "Language" +#~ msgid "Velocity" +#~ msgstr "Velocity" + +#~ msgctxt "Language" +#~ msgid "Verilog" +#~ msgstr "Verilog" + +#~ msgctxt "Language" +#~ msgid "VHDL" +#~ msgstr "VHDL" + +#~ msgctxt "Language" +#~ msgid "VRML" +#~ msgstr "VRML" + +#~ msgctxt "Language" +#~ msgid "WINE Config" +#~ msgstr "Kefluniadur WINE" + +#~ msgctxt "Language" +#~ msgid "xHarbour" +#~ msgstr "xHarbour" + +#~ msgctxt "Language" +#~ msgid "XML" +#~ msgstr "XML" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "PostScript" +#~ msgctxt "Language" +#~ msgid "Xonotic Script" +#~ msgstr "PostScript" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "x.org Configuration" +#~ msgstr "Kefluniadur" + +#~ msgctxt "Language" +#~ msgid "xslt" +#~ msgstr "xslt" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "XUL" +#~ msgstr "XML" + +#~ msgctxt "Language" +#~ msgid "yacas" +#~ msgstr "yacas" + +#~ msgctxt "Language" +#~ msgid "Yacc/Bison" +#~ msgstr "Yacc/Bison" + +#, fuzzy +#~| msgid "unknown" +#~ msgctxt "Language" +#~ msgid "Zonnon" +#~ msgstr "dianav" + +#~ msgid "File Was Deleted on Disk" +#~ msgstr "Dilemet e oa ar restr war ar bladenn" + +#~ msgid "File Changed on Disk" +#~ msgstr "Kemmet e oa ar restr war ar bladenn" + +#, fuzzy +#~| msgid "&Word Wrap Document" +#~ msgid "Close the document." +#~ msgstr "Plegañ an teul" + +#~ msgid "KDE Default" +#~ msgstr "KDE dre ziouer" + +#, fuzzy +#~| msgid "Next" +#~ msgid "&Next" +#~ msgstr "A heul" + +#, fuzzy +#~| msgid "Previous" +#~ msgid "&Previous" +#~ msgstr "A-raok" + +#, fuzzy +#~| msgid "&Case Sensitive" +#~ msgid "Case-sensitive searching" +#~ msgstr "&Evezhiek ouzh ar c'hef" + +#, fuzzy +#~| msgid "&Bold" +#~ msgid "Mo&de:" +#~ msgstr "&Druz" + +#, fuzzy +#~| msgid "Character" +#~ msgctxt "spinbox special value for 1" +#~ msgid "1 character" +#~ msgstr "Arouezennoù" + +#, fuzzy +#~| msgid "Character" +#~ msgctxt "suffix for spinbox >1 wrap words at (value is at 20 or larger)" +#~ msgid " characters" +#~ msgstr "Arouezennoù" + +#, fuzzy +#~| msgid "Indentation" +#~ msgid "Indentation width" +#~ msgstr "Keflosk" + +#, fuzzy +#~| msgid "Error: %1" +#~ msgid "Error calling action(%1)" +#~ msgstr "Fazi : %1" + +#~ msgid "Errors!" +#~ msgstr "Fazioù !" + +#~ msgid "Error: %1" +#~ msgstr "Fazi : %1" + +#, fuzzy +#~| msgid "Selected text:" +#~ msgctxt "Language" +#~ msgid "Restructured Text" +#~ msgstr "Testenn diuzet :" + +#, fuzzy +#~| msgid "Unable to open %1" +#~ msgid "Unable to find '%1'" +#~ msgstr "N'hellan ket digeriñ '%1'" + +#, fuzzy +#~| msgid "Word Completion Plugin" +#~ msgid "A&uto Word Completion HI" +#~ msgstr "Lugent klokadur a ger" + +#~ msgctxt "Language" +#~ msgid "C++" +#~ msgstr "C++" + +#, fuzzy +#~ msgid "Text Area Background" +#~ msgstr "Drekleur" + +#~ msgid "Normal text:" +#~ msgstr "Skrid reoliek :" + +#~ msgid "Additional Elements" +#~ msgstr "Traoù ouzhpenn :" + +#, fuzzy +#~ msgid "Left border background:" +#~ msgstr "Drekleur" + +#~ msgid "Line numbers:" +#~ msgstr "Niverennoù al linennoù :" + +#, fuzzy +#~ msgid "Na&mespace:" +#~ msgstr "War-gil" + +#, fuzzy +#~| msgid "License:" +#~ msgid "&License:" +#~ msgstr "Aotre :" + +#, fuzzy +#~| msgid "Author:" +#~ msgid "&Authors:" +#~ msgstr "Oberour :" + +#, fuzzy +#~| msgid "&Filetype:" +#~ msgid "&File types:" +#~ msgstr "Rizh ar &restr :" + +#, fuzzy +#~| msgid "&Help" +#~ msgid "Help" +#~ msgstr "&Skoazell" + +#, fuzzy +#~| msgid "Prefix" +#~ msgid "Display &Prefix:" +#~ msgstr "Rakger" + +#, fuzzy +#~| msgid "Arguments" +#~ msgid "Display &Arguments:" +#~ msgstr "Arventennoù" + +#, fuzzy +#~| msgid "Shortcuts" +#~ msgid "Shortcut:" +#~ msgstr "Berradennoù" + +#, fuzzy +#~| msgid "Scripts" +#~ msgid "S&cripts" +#~ msgstr "Urzhiaouegoù" + +#, fuzzy +#~| msgid "Edit Entry" +#~ msgid "" +#~ msgstr "Aozañ ar bouetadur" + +#, fuzzy +#~| msgid "Edit Entry" +#~ msgid "Cannot open snippet repository %1." +#~ msgstr "Aozañ ar bouetadur" + +#, fuzzy +#~| msgid "Filetypes" +#~ msgid "Applies to all filetypes" +#~ msgstr "Rizhioù restr" + +#, fuzzy +#~| msgid "&Section:" +#~ msgid "Add Repository" +#~ msgstr "&Dachenn :" + +#, fuzzy +#~| msgid "Edit Entry" +#~ msgid "Edit Repository" +#~ msgstr "Aozañ ar bouetadur" + +#, fuzzy +#~| msgid "Remove entry" +#~ msgid "Remove Repository" +#~ msgstr "Dilemel ar bouetadur" + +#, fuzzy +#~| msgid "Edit Entry" +#~ msgid "Edit Snippet" +#~ msgstr "Aozañ ar bouetadur" + +#, fuzzy +#~| msgid "Remove entry" +#~ msgid "Remove Snippet" +#~ msgstr "Dilemel ar bouetadur" + +#, fuzzy +#~| msgid "String" +#~ msgid "Filter..." +#~ msgstr "Hedad" + +#, fuzzy +#~| msgid "Plugin Manager" +#~ msgid "Extensions Manager" +#~ msgstr "Merour al lugentoù" + +#, fuzzy +#~| msgid "Remove entry" +#~ msgid "Create Snippet" +#~ msgstr "Dilemel ar bouetadur" + +#~ msgid "OVR" +#~ msgstr "OVR" + +#, fuzzy +#~| msgid "Move Word Left" +#~ msgid "Move Left" +#~ msgstr "Fiñval ar ger d'a-gleiz" + +#, fuzzy +#~| msgid "Move Word Right" +#~ msgid "Move Right" +#~ msgstr "Fiñval ar ger d'a-zehou" + +#, fuzzy +#~| msgid "Scroll Line Up" +#~ msgid "Move Up" +#~ msgstr "Dibunañ al linenn a-ius" + +#, fuzzy +#~| msgid "Scroll Line Down" +#~ msgid "Move Down" +#~ msgstr "Dibunañ al linenn izeloc'h" + +#, fuzzy +#~| msgid "Always" +#~ msgid "Always on" +#~ msgstr "Bepred" + +#, fuzzy +#~| msgid "Print the current document." +#~ msgid "Modify the current snippet" +#~ msgstr "Moulañ an teul red." + +#, fuzzy +#~| msgid "Create a new file type." +#~ msgid "Create a new repository file" +#~ msgstr "Moulañ ur seurt restr nevez." + +#, fuzzy +#~| msgid "Remove entry" +#~ msgid "Kate Snippets" +#~ msgstr "Dilemel ar bouetadur" + +#, fuzzy +#~| msgid "Remove entry" +#~ msgid "New Snippet" +#~ msgstr "Dilemel ar bouetadur" + +#, fuzzy +#~ msgid "No file specified" +#~ msgstr "War-gil" + +#, fuzzy +#~| msgid "Edit Entry" +#~ msgid "Snippet Repository:" +#~ msgstr "Aozañ ar bouetadur" + +#, fuzzy +#~| msgid "Insert File..." +#~ msgid "New Snippet File..." +#~ msgstr "Ensoc'hañ ur restr ..." + +#, fuzzy +#~| msgid "Remove entry" +#~ msgid "Get New Snippets..." +#~ msgstr "Dilemel ar bouetadur" + +#, fuzzy +#~| msgid "Remove entry" +#~ msgid "Kate Part Snippets" +#~ msgstr "Dilemel ar bouetadur" + +#, fuzzy +#~| msgid "H&ighlight:" +#~ msgid "&Keep highlighting" +#~ msgstr "S&plannadur :" + +#~ msgid "R/O" +#~ msgstr "L/H" + +#~ msgid "Plugins" +#~ msgstr "Lugentoù" + +#, fuzzy +#~| msgid "Move Word Left" +#~ msgid "Programmer's Move Word Left" +#~ msgstr "Fiñval ar ger d'a-gleiz" + +#, fuzzy +#~| msgid "Select Word Left" +#~ msgid "Programmer's Select Word Left" +#~ msgstr "Dibabit ar ger a-gleiz" + +#, fuzzy +#~| msgid "Move Word Right" +#~ msgid "Programmer's Move Word Right" +#~ msgstr "Fiñval ar ger d'a-zehou" + +#, fuzzy +#~| msgid "Select Word Right" +#~ msgid "Programmer's Select Word Right" +#~ msgstr "Dibabit ar ger a-zehou" + +#~ msgctxt "Language" +#~ msgid "Prolog" +#~ msgstr "Prolog" + +#~ msgid "&Normal" +#~ msgstr "&Boas" + +#~ msgid "Wrap c&ursor" +#~ msgstr "Plegañ ar reti" + +#~ msgid "Overwrite" +#~ msgstr "Rasklañ" + +#, fuzzy +#~| msgid "&Stop" +#~ msgid "Stop" +#~ msgstr "&Plaenaozañ" + +#, fuzzy +#~| msgid "Colors" +#~ msgctxt "@title:column a color button" +#~ msgid "Color" +#~ msgstr "Livioù" + +#, fuzzy +#~| msgid "Normal &Color..." +#~ msgid "Export HlColors..." +#~ msgstr "&Liv boas ..." + +#, fuzzy +#~| msgid "Normal &Color..." +#~ msgid "Import HlColors..." +#~ msgstr "&Liv boas ..." + +#, fuzzy +#~ msgid "Template Background" +#~ msgstr "Drekleur" + +#, fuzzy +#~| msgid "&Format:" +#~ msgid "Form" +#~ msgstr "&Furmad :" + +#~ msgid "&New Window" +#~ msgstr "Prenestr &nevez" + +#, fuzzy +#~ msgid "Create another view containing the current document" +#~ msgstr "Moulañ an teul red." + +#~ msgid "Close the current document view" +#~ msgstr "Serriñ gwell an teul red" + +#~ msgid "Sho&w Path" +#~ msgstr "Dis&kouez an hent" + +#, fuzzy +#~ msgid "Read the contents of stdin" +#~ msgstr "Adkargañ an teul red eus ar bladenn." + +#~ msgid "Set encoding for the file to open" +#~ msgstr "Lakaat kodadur ar restr da zigeriñ" + +#~ msgid "KWrite" +#~ msgstr "KWrite" + +#~ msgid "KWrite - Text Editor" +#~ msgstr "KWrite - Aozer skrid" + +#, fuzzy +#~ msgid "Choose Editor Component" +#~ msgstr "Dibabit ar restr da enlakaat" + +#, fuzzy +#~| msgid "&Regular Expression" +#~ msgid "TestRegression" +#~ msgstr "Troienn &reolataet" + +#~ msgid "Error: " +#~ msgstr "Fazi : " + +#, fuzzy +#~| msgid "Disabled" +#~ msgctxt "Encodings menu" +#~ msgid "Disabled" +#~ msgstr "Marv" + +#~ msgid "Binary File Opened" +#~ msgstr "Digor eo ar restr binarel" + +#, fuzzy +#~ msgid "Broken UTF-8 File Opened" +#~ msgstr "Digor eo ar restr binarel" + +#, fuzzy +#~| msgid "General" +#~ msgid "Universal" +#~ msgstr "Pennañ" + +#, fuzzy +#~| msgid "&From Cursor" +#~ msgid "From &cursor" +#~ msgstr "&Eus ar reti" + +#, fuzzy +#~ msgid "Hi&ghlight all" +#~ msgstr "S&plannadur :" + +#, fuzzy +#~| msgid "(c) 2000-2005 The Kate Authors" +#~ msgid "(c) 2000-2008 The Kate Authors" +#~ msgstr "(c) 2000-2005 Oberour Kate" + +#, fuzzy +#~ msgid "Unable to read file: '%1'" +#~ msgstr "N'hellan ket digeriñ '%1'" + +#~ msgid "Success" +#~ msgstr "Berzh" + +#, fuzzy +#~ msgid "Move Character Right" +#~ msgstr "Arouezennoù" + +#, fuzzy +#~ msgid "Move Character Left" +#~ msgstr "Arouezennoù" + +#~ msgid "&Overwrite" +#~ msgstr "&Rasklañ" + +#, fuzzy +#~| msgid "&Find Next" +#~ msgid "Plain text\t\t(Alt+1)" +#~ msgstr "&Kavout a-heul" + +#, fuzzy +#~| msgid "&Regular Expression" +#~ msgid "Regular expression\t(Alt+4)" +#~ msgstr "Troienn &reolataet" + +#, fuzzy +#~| msgid "&Case Sensitive" +#~ msgid "Case Sensitive" +#~ msgstr "&Evezhiek ouzh ar c'hef" + +#, fuzzy +#~| msgid "(c) 2000-2005 The Kate Authors" +#~ msgid "(c) 2000-2007 The Kate Authors" +#~ msgstr "(c) 2000-2005 Oberour Kate" + +#~ msgid "Line must be at least 1" +#~ msgstr "Ret eo d'ober 1 linenn d'an nebeutañ" + +#, fuzzy +#~| msgid "&Selection Only" +#~ msgid "Selection only " +#~ msgstr "Ar choazh hepken" + +#~ msgid "Shortcuts Configuration" +#~ msgstr "Kefluniadur ar Berradennoù" + +#~ msgid "unknown" +#~ msgstr "dianav" + +#~ msgid "Could not access view." +#~ msgstr "Ne m'eus ket gallet tizhout ar wel.." + +#, fuzzy +#~ msgid "Could not access lookup object." +#~ msgstr "Ne m'eus ket gallet tizhout ar wel." + +#~ msgid "Setup" +#~ msgstr "Kefluniadur" + +#, fuzzy +#~ msgid " Static" +#~ msgstr "Stata" + +#~ msgid "Print %1" +#~ msgstr "Moulañ %1" + +#~ msgid "Nowhere" +#~ msgstr "Neblec'h" + +#~ msgid "Current Word Only" +#~ msgstr "Ar ger red hepken" + +#, fuzzy +#~| msgid "&From Cursor" +#~ msgid "&From cursor" +#~ msgstr "&Eus ar reti" + +#, fuzzy +#~ msgid "&Highlight all" +#~ msgstr "S&plannadur :" + +#, fuzzy +#~ msgctxt "" +#~ "This is the second part of two strings that will comprise the sentence " +#~ "'Show completions when a word is at least N characters'" +#~ msgid "characters long." +#~ msgstr "Arouezennoù" + +#~ msgid "Choose File to Insert" +#~ msgstr "Dibabit ar restr da enlakaat" + +#~ msgid "" +#~ "Failed to load file:\n" +#~ "\n" +#~ msgstr "N'hellan ket kargañ ar restr :\n" + +#~ msgid "Insert File Error" +#~ msgstr "Fazi en ur ensoc'hañ ur restr" + +#~ msgid "

Unable to open file %1, aborting." +#~ msgstr "" +#~ "

N'hellan ket digeriñ ar restr %1, o nullañ emaon." + +#~ msgid "Data Tools" +#~ msgstr "Ostilhoù roadoù" + +#~ msgid "(not available)" +#~ msgstr "(n'eo ket da gaout)" + +#~ msgid "&Pattern:" +#~ msgstr "&Sil :" + +#~ msgid "&Patterns" +#~ msgstr "&Siloù :" + +#~ msgid "Pattern" +#~ msgstr "Sil" + +#~ msgid "Mime Types" +#~ msgstr "Rizhioù Mime" + +#~ msgid "&Edit..." +#~ msgstr "&Aozañ ..." + +#~ msgid "Word Completion Plugin" +#~ msgstr "Lugent klokadur a ger" + +#~ msgid "Configure the Word Completion Plugin" +#~ msgstr "Kefluniañ al lugent klokadur a ger" + +#~ msgid "Configure..." +#~ msgstr "Kefluniañ ..." + +#~ msgid "Cursor & Selection Behavior" +#~ msgstr "Emzalc'h ar reti hag ar choazh" + +#~ msgid "Script Manager" +#~ msgstr "Merour an urzhiaouegoù" + +#~ msgid "Hide &Icon Border" +#~ msgstr "Kuzhat bevenn an &arlun" + +#~ msgid "Hide Path" +#~ msgstr "Kuzhat an hent" + +#~ msgid "Search string '%1' not found." +#~ msgstr "Hedad war glask digavus ! '%1'." + +#~ msgid "Beginning of document reached." +#~ msgstr "Tizhet eo deroù an teul." + +#~ msgid "Beginning of selection reached." +#~ msgstr "Tizhet eo derou an dibab." + +#~ msgid "Continue from the beginning?" +#~ msgstr "Kenderc'hel adalek an deroù ?" + +#~ msgid "Re&place && Close" +#~ msgstr "Er&lec'hiañ ha serriñ" + +#~ msgid "N&ame:" +#~ msgstr "A&nv :" + +#~ msgid "Keys to Use" +#~ msgstr "Alc'hwezioù da implij" + +#, fuzzy +#~ msgid "Configure Indenter" +#~ msgstr "&Kefluniañ an aozer ..." + +#~ msgid "Memory Usage" +#~ msgstr "Penaos vez implijet ar vemor" + +#~ msgid "Configure %1" +#~ msgstr "Kefluniañ %1" + +#~ msgid "Do&wnload..." +#~ msgstr "En&kargañ ..." + +#~ msgid "JavaScript file not found" +#~ msgstr "N'eo ket bet kavet ar restr JavaScript" + +#~ msgid " Col: %1" +#~ msgstr " Bann : %1" + +#~ msgid "Overwrite the file" +#~ msgstr "Rasklañ ar restr" + +#~ msgid "Python Style" +#~ msgstr "Giz python" + +#~ msgid "S&S C Style" +#~ msgstr "Giz S&S C" + +#~ msgid "Mode must be at least 0." +#~ msgstr "Ret eo da bezañ 0 ar mod gant d'an nebeutañ." diff --git a/local/recipes/kde/kf6-ktexteditor/source/po/bs/ktexteditor6.po b/local/recipes/kde/kf6-ktexteditor/source/po/bs/ktexteditor6.po new file mode 100644 index 0000000000..02645e4908 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/po/bs/ktexteditor6.po @@ -0,0 +1,10624 @@ +# translation of katepart4.po to bosanski +# Marko Rosic , 2003. +# Toplica Tanaskovic , 2003, 2004, 2005. +# Chusslove Illich , 2004, 2005, 2006, 2007, 2008, 2009, 2010. +# Dalibor Djuric , 2010. +# Dalibor Djuric , 2010. +# KDE 4 , 2011. +msgid "" +msgstr "" +"Project-Id-Version: katepart4\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2026-06-23 00:41+0000\n" +"PO-Revision-Date: 2014-01-31 20:37+0100\n" +"Last-Translator: Samir Ribić \n" +"Language-Team: bosanski \n" +"Language: bs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Launchpad (build 16451)\n" +"X-Launchpad-Export-Date: 2013-01-26 22:04+0000\n" +"X-Associated-UI-Catalogs: kdelibs4\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" +"X-Environment: kde\n" + +#: completion/katecompletionmodel.cpp:147 +#, kde-format +msgid "Argument-hints" +msgstr "Savjeti za argumente" + +#: completion/katecompletionmodel.cpp:148 +#, kde-format +msgid "Best matches" +msgstr "Najbliža poklapanja" + +#: completion/katekeywordcompletion.cpp:143 +#, kde-format +msgid "Language keywords" +msgstr "" + +#: completion/katewordcompletion.cpp:74 +#, kde-format +msgid "Auto Word Completion" +msgstr "Samodopuna riječi" + +#: completion/katewordcompletion.cpp:301 +#, kde-format +msgid "Shell Completion" +msgstr "Dopuna u školjci" + +#: completion/katewordcompletion.cpp:306 +#, kde-format +msgid "Reuse Word Above" +msgstr "Ponovi riječ iznad" + +#: completion/katewordcompletion.cpp:312 +#, kde-format +msgid "Reuse Word Below" +msgstr "Ponovi riječ ispod" + +#. i18n: ectx: Menu (file) +#: data/katepart5ui.rc:4 +#, kde-format +msgid "&File" +msgstr "&Datoteka" + +#. i18n: ectx: Menu (file_export) +#: data/katepart5ui.rc:10 +#, kde-format +msgid "&Print/Export" +msgstr "" + +#. i18n: ectx: Menu (edit) +#: data/katepart5ui.rc:17 +#, kde-format +msgid "&Edit" +msgstr "&Izmijeni" + +#. i18n: ectx: Menu (edit_find_menu) +#: data/katepart5ui.rc:36 +#, kde-format +msgid "Find Variants" +msgstr "Nađi varijante" + +#. i18n: ectx: Menu (selection) +#: data/katepart5ui.rc:46 +#, fuzzy, kde-format +#| msgid "&Section:" +msgid "Selection" +msgstr "&Odjeljak:" + +#. i18n: ectx: Menu (capitalization) +#: data/katepart5ui.rc:53 +#, fuzzy, kde-format +#| msgid "Capitalize" +msgid "Capitalization" +msgstr "Veliko prvo slovo" + +#. i18n: ectx: Menu (view) +#: data/katepart5ui.rc:73 +#, kde-format +msgid "&View" +msgstr "&Prikaz" + +#. i18n: ectx: Menu (view_menu_word_wrap) +#: data/katepart5ui.rc:78 +#, fuzzy, kde-format +#| msgid "Static Word Wrap" +msgid "Word Wrap" +msgstr "Statičko prelamanje teksta" + +#. i18n: ectx: Menu (view_menu_borders) +#: data/katepart5ui.rc:84 dialogs/katedialogs.cpp:747 +#, kde-format +msgid "Borders" +msgstr "Ivice" + +#. i18n: ectx: Menu (codefolding) +#: data/katepart5ui.rc:92 +#, kde-format +msgid "&Code Folding" +msgstr "&Sažimanje koda" + +#. i18n: ectx: Menu (go) +#: data/katepart5ui.rc:109 +#, fuzzy, kde-format +#| msgid "Go" +msgid "&Go" +msgstr "Idi" + +#. i18n: ectx: Menu (tools) +#: data/katepart5ui.rc:124 +#, kde-format +msgid "&Tools" +msgstr "&Alatke" + +#. i18n: ectx: Menu (wordcompletion) +#: data/katepart5ui.rc:138 +#, kde-format +msgid "Word Completion" +msgstr "Dopuna riječi" + +# >> @title:mijenu +#. i18n: ectx: Menu (spelling) +#: data/katepart5ui.rc:144 spellcheck/spellingmenu.cpp:71 +#: spellcheck/spellingmenu.cpp:195 +#, kde-format +msgid "Spelling" +msgstr "Pravopis" + +#. i18n: ectx: Menu (speech) +#: data/katepart5ui.rc:153 data/katepart5ui.rc:184 +#, fuzzy, kde-format +#| msgid "Text to search for" +msgid "Text to Speech" +msgstr "Tekst koji treba potražiti" + +#. i18n: ectx: Menu (settings) +#: data/katepart5ui.rc:161 +#, kde-format +msgid "&Settings" +msgstr "&Podešavanje" + +#. i18n: ectx: ToolBar (mainToolBar) +#: data/katepart5ui.rc:192 +#, kde-format +msgid "Main Toolbar" +msgstr "Glavna traka" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/bordersappearanceconfigwidget.ui:25 +#, fuzzy, kde-format +#| msgid "Code Folding" +msgid "Code block folding:" +msgstr "Sakrivanje koda" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowFoldingMarkers) +#: dialogs/bordersappearanceconfigwidget.ui:32 +#, kde-format +msgid "" +"If this option is checked, every new view will display marks for folding." +msgstr "" +"Ako je ovo uključeno, svaki novi prikaz će sadržati oznake za sažimanje." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowFoldingMarkers) +#: dialogs/bordersappearanceconfigwidget.ui:35 +#, kde-format +msgid "Show arrows to collapse code blocks" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowFoldingPreview) +#: dialogs/bordersappearanceconfigwidget.ui:42 +#, fuzzy, kde-format +#| msgid "" +#| "

If this option is checked, every new view will show marks on the " +#| "vertical scrollbar.

These marks will show bookmarks, for instance." +msgid "" +"If checked, hovering over a folded region shows a preview of the folded text " +"in a popup." +msgstr "" +"

Ako je ovo uključeno, svaki novi prikaz će davati zareze na uspravnoj " +"klizačkoj traci.

Ovi zarezi, na primjer, označavaju položaje " +"obilježivača.

" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowFoldingPreview) +#: dialogs/bordersappearanceconfigwidget.ui:45 +#, fuzzy, kde-format +msgid "Show preview of folded blocks on hover" +msgstr "Štampaj tekući dokument." + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/bordersappearanceconfigwidget.ui:52 +#, kde-format +msgid "Folding arrows visibility:" +msgstr "" + +# >> @action:inmenu +#. i18n: ectx: property (text), item, widget (QComboBox, cmbFoldingArrowVisiblity) +#: dialogs/bordersappearanceconfigwidget.ui:63 +#, fuzzy, kde-format +#| msgid "Show &Icon Border" +msgid "Show on Hover" +msgstr "&Pojas ikona" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbFoldingArrowVisiblity) +#: dialogs/bordersappearanceconfigwidget.ui:68 +#, fuzzy, kde-format +#| msgid "Always" +msgid "Show Always" +msgstr "Uvijek" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/bordersappearanceconfigwidget.ui:92 +#, kde-format +msgid "Left side:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkIconBorder) +#: dialogs/bordersappearanceconfigwidget.ui:99 +#, kde-format +msgid "" +"

If this option is checked, every new view will display an icon border on " +"the left hand side.

The icon border shows bookmark signs, for instance." +"

" +msgstr "" +"

Ako je ovo uključeno, svaki novi prikaz će imati pojas ikona na " +"svojoj lijevoj strani.

Ovaj pojas, na primjer, sadrži oznake " +"obilježivača.

" + +#. i18n: ectx: property (text), widget (QCheckBox, chkIconBorder) +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMarks) +#: dialogs/bordersappearanceconfigwidget.ui:102 +#: dialogs/bordersappearanceconfigwidget.ui:155 +#, fuzzy, kde-format +#| msgid "Show &scrollbar marks" +msgid "Show marks" +msgstr "&Zarezi u klizačkoj traci" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkLineNumbers) +#: dialogs/bordersappearanceconfigwidget.ui:109 +#, kde-format +msgid "" +"If this option is checked, every new view will display line numbers on the " +"left hand side." +msgstr "" +"Ako je ovo uključeno, svaki novi prikaz će imati brojeve redova na svojoj " +"lijevoj strani." + +#. i18n: ectx: property (text), widget (QCheckBox, chkLineNumbers) +#: dialogs/bordersappearanceconfigwidget.ui:112 +#, kde-format +msgid "Show &line numbers" +msgstr "&Brojevi redova" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowLineModification) +#: dialogs/bordersappearanceconfigwidget.ui:119 +#, kde-format +msgid "" +"If this option is checked, a small indicator for modified and saved lines is " +"shown on the left hand side." +msgstr "" +"Ako je ova opcija označena, mali pokazivač za promijenjene i sačuvane linije " +"je prikazan na lijevoj strani." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowLineModification) +#: dialogs/bordersappearanceconfigwidget.ui:122 +#, fuzzy, kde-format +#| msgid "Highlight range between selected brackets" +msgid "Highlight changed and unsaved lines" +msgstr "Istakni opseg između izabranih zagrada" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/bordersappearanceconfigwidget.ui:145 +#, fuzzy, kde-format +#| msgid "Show &scrollbar marks" +msgid "Scrollbars:" +msgstr "&Zarezi u klizačkoj traci" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMarks) +#: dialogs/bordersappearanceconfigwidget.ui:152 +#, kde-format +msgid "" +"

If this option is checked, every new view will show marks on the vertical " +"scrollbar.

These marks will show bookmarks, for instance.

" +msgstr "" +"

Ako je ovo uključeno, svaki novi prikaz će davati zareze na uspravnoj " +"klizačkoj traci.

Ovi zarezi, na primjer, označavaju položaje " +"obilježivača.

" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarPreview) +#: dialogs/bordersappearanceconfigwidget.ui:162 +#, fuzzy, kde-format +#| msgid "" +#| "

If this option is checked, every new view will show marks on the " +#| "vertical scrollbar.

These marks will show bookmarks, for instance." +msgid "" +"

If this option is checked, hovering over the vertical scrollbar will show " +"a preview of the text.

" +msgstr "" +"

Ako je ovo uključeno, svaki novi prikaz će davati zareze na uspravnoj " +"klizačkoj traci.

Ovi zarezi, na primjer, označavaju položaje " +"obilježivača.

" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarPreview) +#: dialogs/bordersappearanceconfigwidget.ui:165 +#, fuzzy, kde-format +msgid "Show preview when hovering over scrollbar" +msgstr "Štampaj tekući dokument." + +#. i18n: ectx: property (text), widget (QLabel, lblShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:172 +#, kde-format +msgid "Scro&llbars visibility:" +msgstr "" + +# >> Wrap indicators +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:183 dialogs/katedialogs.cpp:755 +#, kde-format +msgid "Always On" +msgstr "uvijek uključeni" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:188 +#, kde-format +msgid "Show When Needed" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:193 +#, fuzzy, kde-format +msgid "Always Off" +msgstr "Uvijek" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/bordersappearanceconfigwidget.ui:217 +#, fuzzy, kde-format +#| msgid "Minimap Width" +msgid "Minimap:" +msgstr "Širina minimapiranja" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMiniMap) +#: dialogs/bordersappearanceconfigwidget.ui:224 +#, kde-format +msgid "" +"If this option is checked, every new view will show a mini map on the " +"vertical scrollbar." +msgstr "" +"Ako je ovo uključeno, svaki novi prikaz će imati mini mapu na svojoj " +"vertikalnoj kliznoj traci." + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMiniMap) +#: dialogs/bordersappearanceconfigwidget.ui:227 +#, fuzzy, kde-format +#| msgid "Show scrollbar mini-map" +msgid "Show minimap" +msgstr "Prikaži mini mapu klizne trake" + +#. i18n: ectx: property (text), widget (QLabel, labelMiniMapWidth) +#: dialogs/bordersappearanceconfigwidget.ui:250 +#, fuzzy, kde-format +#| msgid "Minimap Width" +msgid "Minim&ap width:" +msgstr "Širina minimapiranja" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMiniMapAll) +#: dialogs/bordersappearanceconfigwidget.ui:263 +#, kde-format +msgid "" +"If this option is checked, every new view will show a mini map of the whole " +"document on the vertical scrollbar." +msgstr "" +"Ako je ovo uključeno, svaki novi prikaz će imati mini mapu cijelog dokumenta " +"na vertikalnoj kliznoj traci." + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMiniMapAll) +#: dialogs/bordersappearanceconfigwidget.ui:266 +#, kde-format +msgid "Map the whole document" +msgstr "Mapiraj cijeli dokument" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbSortBookmarksByCreation) +#: dialogs/bordersappearanceconfigwidget.ui:276 +#, kde-format +msgid "" +"Each new bookmark will be added to the bottom, independently from where it " +"is placed in the document." +msgstr "" +"Svaki novi obilježivač će biti dodat na dno, nezavisno od toga gdje je " +"smješten u dokumentu." + +#. i18n: ectx: property (text), widget (QRadioButton, rbSortBookmarksByCreation) +#: dialogs/bordersappearanceconfigwidget.ui:279 +#, kde-format +msgid "By date created" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbSortBookmarksByPosition) +#: dialogs/bordersappearanceconfigwidget.ui:286 +#, kde-format +msgid "The bookmarks will be ordered by the line numbers they are placed at." +msgstr "" +"Obilježivači će biti poređani po brojevima redova na kojima su postavljeni." + +#. i18n: ectx: property (text), widget (QRadioButton, rbSortBookmarksByPosition) +#: dialogs/bordersappearanceconfigwidget.ui:289 +#, fuzzy, kde-format +#| msgid "Show &line numbers" +msgid "By line number" +msgstr "&Brojevi redova" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/bordersappearanceconfigwidget.ui:296 +#, fuzzy, kde-format +#| msgid "Sort Bookmarks Menu" +msgid "Sort bookmarks menu:" +msgstr "Ređaj obilježivače u meniju" + +#: dialogs/clipboardhistorydialog.cpp:264 +#, fuzzy, kde-format +#| msgid "Select next edit point" +msgid "Select text to paste." +msgstr "Izaberi sljedeću uređivačku tačku" + +#: dialogs/clipboardhistorydialog.cpp:296 +#, kde-format +msgid "No entries in clipboard history" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbGeneral) +#. i18n: ectx: property (title), widget (QGroupBox, gbViInputMode) +#: dialogs/completionconfigtab.ui:29 dialogs/katedialogs.cpp:609 +#: dialogs/katedialogs.cpp:743 dialogs/katedialogs.cpp:1026 +#: vimode/config/configwidget.ui:29 +#, kde-format +msgid "General" +msgstr "Opšte" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoCompletionEnabled) +#: dialogs/completionconfigtab.ui:35 +#, kde-format +msgid "Enable &auto completion" +msgstr "Omogući &automatsko kompletiranje" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoSelectFirstEntry) +#: dialogs/completionconfigtab.ui:42 +#, kde-format +msgid "Auto select &first completion entry" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkTabCompletion) +#: dialogs/completionconfigtab.ui:49 +#, kde-format +msgid "Cycle through the list of completions using Tab / Shift+Tab" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkEnterCompletion) +#: dialogs/completionconfigtab.ui:56 +#, kde-format +msgid "" +"Pressing enter will insert the text of selected completion item into the " +"editor. If disabled, Tab key or double-click can still be used to trigger " +"completion." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkEnterCompletion) +#: dialogs/completionconfigtab.ui:59 +#, fuzzy, kde-format +#| msgid "Use this to unindent a selected block of text." +msgid "Use Enter key to insert selected completion" +msgstr "Izvucite izabrani blok teksta." + +#. i18n: ectx: property (title), widget (QGroupBox, gbWordCompletion) +#: dialogs/completionconfigtab.ui:69 +#, fuzzy, kde-format +#| msgid "Auto Word Completion" +msgid "A&uto word completion" +msgstr "Samodopuna riječi" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/completionconfigtab.ui:83 +#, kde-format +msgid "Minimal word length to complete:" +msgstr "Najmanja dužina riječi za dopunu:" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, removeTail) +#: dialogs/completionconfigtab.ui:111 +#, kde-format +msgid "Remove tail of a previous word when completion item chosen from a list" +msgstr "" +"Ukloni trag prethodne riječi prilikom kompletiranja stavke izabrane iz liste" + +#. i18n: ectx: property (text), widget (QCheckBox, removeTail) +#: dialogs/completionconfigtab.ui:114 +#, kde-format +msgid "Remove tail on complete" +msgstr "Ukloni kraj pri završetku" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/completionconfigtab.ui:121 +#, kde-format +msgid "" +"Word completion provides suggestions based on the words found in the document" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbKeywordCompletion) +#: dialogs/completionconfigtab.ui:134 +#, fuzzy, kde-format +#| msgid "Word Completion" +msgid "&Keyword completion" +msgstr "Dopuna riječi" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/completionconfigtab.ui:143 +#, kde-format +msgid "" +"Keyword completion provides suggestions based on the keywords which exist in " +"the document's language." +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbShowDoc) +#: dialogs/completionconfigtab.ui:156 +#, fuzzy, kde-format +#| msgid "Auto Completion" +msgid "Documentation with completion" +msgstr "Samodopuna" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/completionconfigtab.ui:165 +#, kde-format +msgid "" +"Show documentation beside completion box. If disabled, documentation can be " +"shown by pressing Alt key." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/editconfigwidget.ui:22 +#, fuzzy, kde-format +#| msgid "Static Word Wrap" +msgid "Word wrap:" +msgstr "Statičko prelamanje teksta" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkStaticWordWrap) +#: dialogs/editconfigwidget.ui:29 +#, kde-format +msgid "" +"

Automatically start a new line of text when the current line exceeds the " +"length specified by the Wrap words at: option.

This option does " +"not wrap existing lines of text - use the Apply Static Word Wrap " +"option in the Tools menu for that purpose.

If you want lines to " +"be visually wrapped instead, according to the width of the view, " +"enable Dynamic Word Wrap in the Appearance config page.

" +msgstr "" +"

Automatski početi novu liniju teksta kada trenutna linija prelazi dužinu " +"utvrđenu s Prelomi riječi na: opciji.

Ova opcija ne prelama " +"postojeće linije teksta - koristite Primijeni statički prijelom riječi opciju u meniju Alati za tu namjenu.

Ako želite da se linije " +"vizualno prelome umjesto toga, prema širini pogleda, omogućite " +"Dinamički prijelom riječi u Izgled konfigurcijskoj stranici." + +#. i18n: ectx: property (text), widget (QCheckBox, chkStaticWordWrap) +#: dialogs/editconfigwidget.ui:32 +#, kde-format +msgid "Wrap &words at a fixed column" +msgstr "" + +# skip-rule: linije +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowStaticWordWrapMarker) +#: dialogs/editconfigwidget.ui:39 +#, fuzzy, kde-format +#| msgid "" +#| "

If this option is checked, a vertical line will be drawn at the word " +#| "wrap column as defined in the Editing properties.

Note that the word wrap marker is only drawn if you use a fixed " +#| "pitch font.

" +msgid "" +"

If this option is checked, a vertical line will be drawn at the word wrap " +"column as defined in the Editing properties.

" +msgstr "" +"

Ako je ovo uključeno, biće iscrtana uspravna linija na koloni " +"prelamanja teksta, određenoj u odijeljku Uređivanje.

Ova linija se crta samo kada se koristi font fiksne širine.

" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowStaticWordWrapMarker) +#: dialogs/editconfigwidget.ui:42 +#, fuzzy, kde-format +#| msgctxt "short translation please" +#| msgid "Set the word wrap column." +msgid "&Draw vertical line at the word wrap column" +msgstr "Postavi kolonu za prelom riječi." + +#. i18n: ectx: property (text), widget (QLabel, lblWordWrap) +#: dialogs/editconfigwidget.ui:49 +#, fuzzy, kde-format +#| msgid "W&rap words at:" +msgid "Wra&p words at:" +msgstr "Prelomi tekst &na:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbWordWrap) +#: dialogs/editconfigwidget.ui:59 +#, kde-format +msgid "" +"If the Word Wrap option is selected this entry determines the length (in " +"characters) at which the editor will automatically start a new line." +msgstr "" +"Ako je uključeno prelamanje teksta, ova postavka određuje dužinu (u " +"znakovima) poslije koje će uređivač automatski započeti novi red." + +#. i18n: ectx: property (text), widget (QLabel, lblInputMode) +#: dialogs/editconfigwidget.ui:91 +#, fuzzy, kde-format +#| msgid "Default indentation mode:" +msgid "Default input mode:" +msgstr "Podrazumijevano uvlačenje:" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/editconfigwidget.ui:120 +#, fuzzy, kde-format +msgid "Brackets:" +msgstr "Idi na parnjačku zagradu" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoBrackets) +#: dialogs/editconfigwidget.ui:127 +#, kde-format +msgid "Automatically close brackets when opening bracket is typed" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLabel, lbEncloseSelection) +#: dialogs/editconfigwidget.ui:140 +#, kde-format +msgid "" +"When some text is selected these chars will be added on both its sides in a " +"way \"Auto Bracket\" do" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lbEncloseSelection) +#: dialogs/editconfigwidget.ui:143 +#, fuzzy, kde-format +msgid "Enclosing characters:" +msgstr " znak" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/editconfigwidget.ui:166 +#, fuzzy, kde-format +#| msgid "Roland Pabel" +msgid "Copy and paste:" +msgstr "Roland Pabel" + +#. i18n: ectx: property (text), widget (QCheckBox, chkTextDragAndDrop) +#: dialogs/editconfigwidget.ui:173 +#, fuzzy, kde-format +#| msgid "Move selected lines down." +msgid "Move selected text when dragged" +msgstr "Pomijera izabrane redove nadolje." + +#. i18n: ectx: property (text), widget (QCheckBox, chkSmartCopyCut) +#: dialogs/editconfigwidget.ui:180 +#, fuzzy, kde-format +#| msgid "Copy/Cut the current line if no selection" +msgid "Copy/cut the current line if invoked without any text selected" +msgstr "Kopiraj/isijeci tekući red ako nema izbora" + +#. i18n: ectx: property (text), widget (QCheckBox, chkMousePasteAtCursorPosition) +#: dialogs/editconfigwidget.ui:187 +#, kde-format +msgid "Don't move the text cursor when pasting by mouse" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblClipboardHistoryEntries) +#: dialogs/editconfigwidget.ui:194 +#, fuzzy, kde-format +#| msgid "Clipboard &History" +msgid "Max Clipboard History Entries:" +msgstr "&Historijat međuspremnika" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbClipboardHistoryEntries) +#: dialogs/editconfigwidget.ui:204 +#, kde-format +msgid "This determines the number of entries to keep in the clipboard history" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblBracketHelp) +#: dialogs/editconfigwidget.ui:226 +#, kde-format +msgid "" +"When you type these characters while text is selected, they will surround " +"the selected text instead of replacing it." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAccessibility) +#: dialogs/editconfigwidget.ui:252 +#, kde-format +msgid "Enable accessibility notifications" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/editconfigwidget.ui:259 +#, kde-format +msgid "Accessibility:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblFiletype) +#: dialogs/filetypeconfigwidget.ui:14 +#, kde-format +msgid "&Filetype:" +msgstr "&Tip datoteke:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbFiletypes) +#: dialogs/filetypeconfigwidget.ui:24 +#, kde-format +msgid "Select the filetype you want to change." +msgstr "Izaberite tip datoteke koji želite da izmijenite." + +#. i18n: ectx: property (whatsThis), widget (QPushButton, btnNew) +#: dialogs/filetypeconfigwidget.ui:31 +#, kde-format +msgid "Create a new file type." +msgstr "Napravi novi tip datoteke." + +#. i18n: ectx: property (text), widget (QPushButton, btnNew) +#: dialogs/filetypeconfigwidget.ui:34 +#, kde-format +msgid "&New" +msgstr "&Novi" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, btnDelete) +#: dialogs/filetypeconfigwidget.ui:41 +#, kde-format +msgid "Delete the current file type." +msgstr "Obriši tekući tip datoteke." + +#. i18n: ectx: property (text), widget (QPushButton, btnDelete) +#: dialogs/filetypeconfigwidget.ui:44 syntax/katethemeconfig.cpp:1132 +#, kde-format +msgid "&Delete" +msgstr "&Obriši" + +#. i18n: ectx: property (title), widget (QGroupBox, gbProperties) +#: dialogs/filetypeconfigwidget.ui:66 mode/katemodeconfigpage.cpp:272 +#, kde-format +msgid "Properties" +msgstr "Svojstva" + +#. i18n: ectx: property (text), widget (QLabel, lblName) +#: dialogs/filetypeconfigwidget.ui:72 +#, kde-format +msgid "&Name:" +msgstr "&Ime:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtName) +#: dialogs/filetypeconfigwidget.ui:82 +#, kde-format +msgid "" +"The name of the filetype will be the text of the corresponding menu item." +msgstr "Ime tipa datoteke biće tekst odgovarajuće stavke u meniju." + +#. i18n: ectx: property (text), widget (QLabel, lblSection) +#: dialogs/filetypeconfigwidget.ui:89 +#, kde-format +msgid "&Section:" +msgstr "&Odjeljak:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtSection) +#: dialogs/filetypeconfigwidget.ui:99 +#, kde-format +msgid "The section name is used to organize the file types in menus." +msgstr "Ime odijeljka koristi se za organizovanje tipova datoteka u menijima." + +#. i18n: ectx: property (text), widget (QLabel, lblVariables) +#: dialogs/filetypeconfigwidget.ui:106 +#, kde-format +msgid "&Variables:" +msgstr "&Promjenljive:" + +#. i18n: ectx: property (whatsThis), widget (VariableLineEdit, edtVariables) +#: dialogs/filetypeconfigwidget.ui:116 +#, kde-format +msgid "" +"

This string allows to configure Kate's settings for the files selected by " +"this mimetype using Kate variables. Almost any configuration option can be " +"set, such as highlight, indent-mode, encoding, etc.

For a full list of " +"known variables, see the manual.

" +msgstr "" +"

Ovom se niskom mogu podesiti Kateine postavke za datoteke izabrane ovim " +"MIME tipom, koristeći Kateine promjenljive. Može se zadati skoro svaka " +"opcija postave, kao što je isticanje, uvlačenje, kodiranje, itd.

Za " +"potpun spisak promjenljivih, pogledajte priručnik.

" + +#. i18n: ectx: property (text), widget (QLabel, lblHl) +#: dialogs/filetypeconfigwidget.ui:123 +#, kde-format +msgid "&Highlighting:" +msgstr "&Isticanje:" + +#. i18n: ectx: property (text), widget (QLabel, lblIndenter) +#: dialogs/filetypeconfigwidget.ui:136 +#, fuzzy, kde-format +#| msgid "&Indentation Mode:" +msgid "&Indentation mode:" +msgstr "Režim &uvlačenja:" + +#. i18n: ectx: property (text), widget (QLabel, lblExtensions) +#: dialogs/filetypeconfigwidget.ui:149 +#, kde-format +msgid "File e&xtensions:" +msgstr "&Nastavci datoteka:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtFileExtensions) +#: dialogs/filetypeconfigwidget.ui:159 +#, kde-format +msgid "" +"The wildcards mask allows to select files by filename. A typical mask uses " +"an asterisk and the file extension, for example *.txt; *.text. " +"The string is a semicolon-separated list of masks." +msgstr "" +"Džokerskom maskom datoteke se mogu izabrati prema imenu. Tipična maska " +"koristi zvjezdicu i nastavak imena, na primjer *.txt; *.text " +"— spisak više maski zadaje se razdvojen tačka-zapetom." + +#. i18n: ectx: property (text), widget (QLabel, lblMimeTypes) +#: dialogs/filetypeconfigwidget.ui:166 +#, kde-format +msgid "MIME &types:" +msgstr "MIME &tipovi:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtMimeTypes) +#: dialogs/filetypeconfigwidget.ui:181 +#, kde-format +msgid "" +"The mime type mask allows to select files by mimetype. The string is a " +"semicolon-separated list of mimetypes, for example text/plain; text/" +"english." +msgstr "" +"Maskom za MIME tip datoteke se mogu izabrati prema tom svojstvu. Može se " +"zadati spisak više maski, razdvojenih tačka-zapetom, npr. text/plain; " +"text/english." + +#. i18n: ectx: property (whatsThis), widget (QToolButton, btnMimeTypes) +#: dialogs/filetypeconfigwidget.ui:188 +#, kde-format +msgid "Displays a wizard that helps you easily select mimetypes." +msgstr "Prikazuje čarobnjak kojim lako možete izabrati MIME tipove." + +#. i18n: ectx: property (text), widget (QLabel, lblPriority) +#: dialogs/filetypeconfigwidget.ui:197 +#, kde-format +msgid "P&riority:" +msgstr "&Prioritet:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbPriority) +#: dialogs/filetypeconfigwidget.ui:207 +#, kde-format +msgid "" +"Sets priority for this file type. If more than one file type selects the " +"same file, the one with the highest priority will be used." +msgstr "" +"Postavlja prioritet za ovaj tip datoteke. Ako više od jednog tipa bira istu " +"datoteku, upotrijebiće se onaj sa najvišim prioritetom." + +#. i18n: ectx: property (text), widget (QLabel, lblMode) +#: dialogs/indentationconfigwidget.ui:43 +#, kde-format +msgid "Default indentation mode:" +msgstr "Podrazumijevano uvlačenje:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbMode) +#: dialogs/indentationconfigwidget.ui:53 +#, kde-format +msgid "" +"This is a list of available indentation modes. The specified indentation " +"mode will be used for all new documents. Be aware that it is also possible " +"to set the indentation mode with document variables, modes or a .kateconfig " +"file." +msgstr "" +"Ovo je spisak uvlačenja na raspolaganju. Zadato uvlačenje će se " +"koristiti za sve nove dokumente. Imajte na umu da je uvlačenje takođe moguće " +"zadati u promjenljivama dokumenta, režimima ili datoteci ." +"kateconfig" + +#. i18n: ectx: property (title), widget (QGroupBox, gbIndentationMode) +#: dialogs/indentationconfigwidget.ui:75 +#, kde-format +msgid "Indent using" +msgstr "Nazubi pomoću" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbIndentWidth) +#: dialogs/indentationconfigwidget.ui:81 +#, kde-format +msgid "" +"The indentation width is the number of spaces which is used to indent a " +"line. If the option Insert spaces instead of tabulators in the " +"section Editing is disabled, a Tab character is inserted if " +"the indentation is divisible by the tab width." +msgstr "" +"Dubina uvlačenja je broj razmaka kojim se red uvlači. Ako je isključena " +"opcija Umeći razmake umjesto tabulatora u odijeljku " +"Uređivanje, umetaće se tabulatori kada je dubina " +"uvlačenja djeljiva širinom tabulatora." + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentWithSpaces) +#: dialogs/indentationconfigwidget.ui:97 +#, kde-format +msgid "&Spaces" +msgstr "&Razmaka" + +#. i18n: ectx: property (text), widget (QLabel, lblIndentWidth) +#: dialogs/indentationconfigwidget.ui:104 +#, kde-format +msgid "&Indentation width:" +msgstr "Širina &nazubljivanja:" + +#. i18n: ectx: property (text), widget (QLabel, lblTabWidth) +#: dialogs/indentationconfigwidget.ui:114 +#, kde-format +msgid "Tab wi&dth:" +msgstr "&Širina tabulatora:" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentWithTabs) +#: dialogs/indentationconfigwidget.ui:153 +#, kde-format +msgid "&Tabulators" +msgstr "&Tabulatora" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentMixed) +#: dialogs/indentationconfigwidget.ui:160 +#, kde-format +msgid "Tabulators &and Spaces" +msgstr "T&abulatori i razmaci" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoDetectIndent) +#: dialogs/indentationconfigwidget.ui:167 +#, fuzzy, kde-format +#| msgid "A&utomatic end of line detection" +msgid "Automatically detect file indentation" +msgstr "&Automatsko otkrivanje kraja reda" + +#. i18n: ectx: property (title), widget (QGroupBox, gbProperties) +#: dialogs/indentationconfigwidget.ui:177 +#, kde-format +msgid "Indentation Properties" +msgstr "Svojstva uvlačenja" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkKeepExtraSpaces) +#: dialogs/indentationconfigwidget.ui:183 +#, kde-format +msgid "" +"If this option is disabled, changing the indentation level aligns a line to " +"a multiple of the width specified in Indentation width." +msgstr "" +"Ako je ova opcija isključena, promjenom nivoa uvlačenja red se ravna na " +"umnožak zadat pod Dubina uvlačenja:." + +#. i18n: ectx: property (text), widget (QCheckBox, chkKeepExtraSpaces) +#: dialogs/indentationconfigwidget.ui:186 +#, kde-format +msgid "&Keep extra spaces" +msgstr "Sačuvaj dodatne &razmake" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkIndentPaste) +#: dialogs/indentationconfigwidget.ui:193 +#, kde-format +msgid "" +"If this option is selected, pasted code from the clipboard is indented. " +"Triggering the undo-action removes the indentation." +msgstr "" +"Ako je ova opcija uključena, uvlači se kôd umetnut iz međuspremnika " +"(uvlačenje uklanjate upotrijebivši Poništi)." + +#. i18n: ectx: property (text), widget (QCheckBox, chkIndentPaste) +#: dialogs/indentationconfigwidget.ui:196 +#, kde-format +msgid "Adjust indentation of code &pasted from the clipboard" +msgstr "&Prilagodi nazubljivanje koda umetnutog iz međuspremnika" + +#. i18n: ectx: property (title), widget (QGroupBox, gbKeys) +#: dialogs/indentationconfigwidget.ui:206 +#, kde-format +msgid "Indentation Actions" +msgstr "Dejstva uvlačenja" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackspaceUnindents) +#: dialogs/indentationconfigwidget.ui:212 +#, kde-format +msgid "" +"If this option is selected, the Backspace key decreases the " +"indentation level if the cursor is located in the leading blank space of a " +"line." +msgstr "" +"Ako je ova opcija uključena, taster Backspace " +"smanjuje nivo uvlačenja kada se kursor nalazi na vodećem razmaku u redu." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackspaceUnindents) +#: dialogs/indentationconfigwidget.ui:215 +#, kde-format +msgid "&Backspace key in leading blank space unindents" +msgstr "Taster za &Brisanje u vodećem razmaku smanjuje nazubljenje" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/indentationconfigwidget.ui:225 +#, fuzzy, kde-format +#| msgid "" +#| "\n" +#| "

Tab key action (if no selection exists) Tab to align the current line in the current code block like in emacs, " +#| "make Tab a shortcut to the action Align.\">More ...

" +msgid "" +"\n" +"

Tab key action (if no selection exists) Tab " +"to align the current line in the current code block like in Emacs, make " +"Tab a shortcut to the action Format Indentation." +"\">More ...

" +msgstr "" +"

Dejstvo tastera Tab (ako nema izbora) Više...

" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabAdvances) +#: dialogs/indentationconfigwidget.ui:276 +#, kde-format +msgid "" +"If this option is selected, the Tab key always inserts white space so " +"that the next tab position is reached. If the option Insert spaces " +"instead of tabulators in the section Editing is enabled, spaces " +"are inserted; otherwise, a single tabulator is inserted." +msgstr "" +"Ako je ovo uključeno, taster Tab uvijek umeće " +"praznine do dostizanje naredne tabulatorske pozicije. Ako je uključena " +"opcija Umeći razmake umjesto tabulatora u odijeljku " +"Uređivanje, umeću se razmaci; u suprotnom jedan " +"tabulator." + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabAdvances) +#: dialogs/indentationconfigwidget.ui:279 +#, kde-format +msgid "Always advance to the &next tab position" +msgstr "Uvijek pređi na &narednu tabulatorsku poziciju" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabIndents) +#: dialogs/indentationconfigwidget.ui:286 +#, kde-format +msgid "" +"If this option is selected, the Tab key always indents the current " +"line by the number of character positions specified in Indentation width." +msgstr "" +"Ako je ovo uključeno, taster Tab uvijek uvlači " +"tekući red onoliko koliko je zadato pod Dubina uvlačenja:." + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabIndents) +#: dialogs/indentationconfigwidget.ui:289 +#, kde-format +msgid "Always increase indentation &level" +msgstr "Uvijek povećaj nivo nazub&ljivanja" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabSmart) +#: dialogs/indentationconfigwidget.ui:296 +#, kde-format +msgid "" +"If this option is selected, the Tab key either indents the current " +"line or advances to the next tab position.

If the insertion point is at " +"or before the first non-space character in the line, or if there is a " +"selection, the current line is indented by the number of character positions " +"specified in Indentation width.

If the insertion point is located " +"after the first non-space character in the line and there is no selection, " +"white space is inserted so that the next tab position is reached: if the " +"option Insert spaces instead of tabulators in the section Editing is enabled, spaces are inserted; otherwise, a single tabulator is " +"inserted." +msgstr "" +"

Ako je ovo uključeno, taster Tab ili uvlači " +"tekući red ili napreduje na sljedeći položaj tabulatora.

Ako je tačka " +"umetanja kod ili prije prvog ne‑razmaka u redu, ili ako je dio teksta " +"izabran, red se uvlači onoliko koliko je zadato pod Dubina " +"uvlačenja:.

Ako se tačka umetanja nalazi poslije prvog " +"ne‑razmaka i ništa nije izabrano, umeću se praznine do dostizanja narednog " +"položaja tabulatora. U tom slučaju, ako je uključeno Umeći " +"razmake umjesto tabulatora u odijeljku Uređivanje, umeću se razmaci; u suprotnom jedan tabulator.

" + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabSmart) +#: dialogs/indentationconfigwidget.ui:299 +#, kde-format +msgid "Increase indentation level if in l&eading blank space" +msgstr "Povećaj nivo nazubljivanja ako je ubačen vodeći b&lanko znak" + +#: dialogs/katedialogs.cpp:185 dialogs/katedialogs.cpp:187 +#, fuzzy, kde-format +msgid "%v character" +msgid_plural "%v characters" +msgstr[0] " znak" +msgstr[1] " znak" +msgstr[2] " znak" + +#: dialogs/katedialogs.cpp:211 +#, kde-format +msgid "Indentation" +msgstr "Uvlačenje" + +#: dialogs/katedialogs.cpp:295 +#, kde-format +msgid "Auto Completion" +msgstr "Samodopuna" + +# >> @title:tab +#: dialogs/katedialogs.cpp:362 +#, kde-format +msgid "Spellcheck" +msgstr "Provjera pravopisa" + +#: dialogs/katedialogs.cpp:410 dialogs/katedialogs.cpp:417 +#, fuzzy, kde-format +#| msgctxt "@item:intable Text context" +#| msgid "Alert" +msgid "Alt" +msgstr "upozorenje" + +#: dialogs/katedialogs.cpp:411 dialogs/katedialogs.cpp:419 +#, kde-format +msgid "Ctrl" +msgstr "" + +#: dialogs/katedialogs.cpp:412 +#, kde-format +msgid "Meta" +msgstr "" + +#: dialogs/katedialogs.cpp:413 dialogs/katedialogs.cpp:421 +#, kde-format +msgid "Ctrl + Alt" +msgstr "" + +#: dialogs/katedialogs.cpp:414 +#, kde-format +msgid "Meta + Alt" +msgstr "" + +#: dialogs/katedialogs.cpp:415 +#, kde-format +msgid "Ctrl + Meta" +msgstr "" + +#: dialogs/katedialogs.cpp:418 +#, fuzzy, kde-format +#| msgid "Command" +msgid "Cmd" +msgstr "naredba" + +#: dialogs/katedialogs.cpp:420 +#, kde-format +msgid "Cmd + Alt" +msgstr "" + +#: dialogs/katedialogs.cpp:422 +#, kde-format +msgid "Cmd + Ctrl" +msgstr "" + +#: dialogs/katedialogs.cpp:480 +#, kde-format +msgid "Text Navigation" +msgstr "Navigacija Teksta" + +#: dialogs/katedialogs.cpp:582 +#, fuzzy, kde-format +msgctxt "Wrap words at (value is at 20 or larger)" +msgid "%v character" +msgid_plural "%v characters" +msgstr[0] " znak" +msgstr[1] " znak" +msgstr[2] " znak" + +#: dialogs/katedialogs.cpp:587 +#, kde-format +msgid "Feature is not active" +msgstr "" + +# >> @item:inlistbox +#: dialogs/katedialogs.cpp:589 +#, fuzzy, kde-format +#| msgid "Disabled Breakpoint" +msgid "Disable Feature" +msgstr "isključena prijelomna tačka" + +#: dialogs/katedialogs.cpp:591 +#, kde-format +msgid "May be handy with Markdown" +msgstr "" + +#: dialogs/katedialogs.cpp:593 +#, kde-format +msgid "Mirror characters, similar but not exactly like auto brackets" +msgstr "" + +#: dialogs/katedialogs.cpp:595 +#, fuzzy, kde-format +#| msgid "Non-word character" +msgid "Non letter character" +msgstr "nije znak riječi" + +#: dialogs/katedialogs.cpp:712 +#, kde-format +msgid "Editing" +msgstr "Izmjena" + +#: dialogs/katedialogs.cpp:717 +#, kde-format +msgid "Editing Options" +msgstr "Uređivačke opcije" + +#: dialogs/katedialogs.cpp:751 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Stata" +msgid "Statusbar" +msgstr "Stata" + +# >> Wrap indicators +#: dialogs/katedialogs.cpp:753 +#, kde-format +msgid "Off" +msgstr "isključeni" + +#: dialogs/katedialogs.cpp:754 +#, kde-format +msgid "Follow Line Numbers" +msgstr "Prati brojeve linija" + +#: dialogs/katedialogs.cpp:945 dialogs/katedialogs.cpp:950 +#, kde-format +msgid "Appearance" +msgstr "Izgled" + +#: dialogs/katedialogs.cpp:986 +#, kde-format +msgid "" +"%1 backs up unsaved files to \"swap files.\" Swap files allow %1 to recover " +"your work in the case of a system crash. Disabling swap files may cause data " +"loss in case of a system crash." +msgstr "" + +#: dialogs/katedialogs.cpp:1027 +#, kde-format +msgid "Advanced" +msgstr "Napredno" + +#: dialogs/katedialogs.cpp:1092 +#, kde-format +msgid "" +"You did not provide a backup suffix or prefix. Using default suffix: '~'" +msgstr "" +"Niste unijeli prefiks ili sufiks za ime rezerve. Koristim podrazumijevani: ~" + +#: dialogs/katedialogs.cpp:1092 +#, kde-format +msgid "No Backup Suffix or Prefix" +msgstr "Nema sufiksa ili prefiksa rezerve" + +#: dialogs/katedialogs.cpp:1227 +#, kde-format +msgid "Open/Save" +msgstr "Radnje s datotekom" + +#: dialogs/katedialogs.cpp:1232 +#, kde-format +msgid "File Opening & Saving" +msgstr "Otvaranje i upisivanje datoteka" + +#: dialogs/katedialogs.cpp:1255 +#, kde-format +msgid "&Line:" +msgstr "" + +#: dialogs/katedialogs.cpp:1256 +#, kde-format +msgid "Go to line number from clipboard" +msgstr "" + +#: dialogs/katedialogs.cpp:1267 +#, kde-format +msgid "Go to" +msgstr "" + +#: dialogs/katedialogs.cpp:1347 +#, kde-format +msgid "No valid line number found in clipboard" +msgstr "" + +#: dialogs/katedialogs.cpp:1411 +#, kde-format +msgid "Dictionary:" +msgstr "Rječnik:" + +#: dialogs/katedialogs.cpp:1463 +#, fuzzy, kde-format +#| msgid "Enable &auto completion" +msgid "Enable Auto Reload" +msgstr "Omogući &automatsko kompletiranje" + +#: dialogs/katedialogs.cpp:1466 +#, kde-format +msgid "" +"Reloads and will automatically reload without warning about disk changes " +"from now until you close either the tab or window." +msgstr "" + +#: dialogs/katedialogs.cpp:1471 +#, fuzzy, kde-format +#| msgid "&View Difference" +msgid "View &Difference" +msgstr "Prikaži &razliku" + +#: dialogs/katedialogs.cpp:1473 +#, kde-format +msgid "Shows a diff of the changes." +msgstr "" + +#: dialogs/katedialogs.cpp:1478 +#, fuzzy, kde-format +#| msgid "Reloa&d" +msgid "&Reload" +msgstr "&Učitaj ponovo" + +#: dialogs/katedialogs.cpp:1480 +#, fuzzy, kde-format +#| msgid "" +#| "Reload the file from disk. If you have unsaved changes, they will be lost." +msgid "Reloads the file from disk. Unsaved changes will be lost." +msgstr "" +"Učitaj ponovo datoteku sa diska. Ako imate nesačuvanih izmjena, biće " +"izgubljene." + +#: dialogs/katedialogs.cpp:1484 +#, fuzzy, kde-format +#| msgid "&Close" +msgctxt "@action:button closes the opened file" +msgid "&Close File" +msgstr "&Zatvori" + +#: dialogs/katedialogs.cpp:1486 +#, kde-format +msgid "Closes the file, discarding its content." +msgstr "" + +#: dialogs/katedialogs.cpp:1490 +#, fuzzy, kde-format +#| msgid "&Save File As..." +msgctxt "@action" +msgid "&Save As…" +msgstr "&Snimi datoteku kao..." + +#: dialogs/katedialogs.cpp:1492 +#, kde-format +msgid "Lets you select a location and save the file again." +msgstr "Možete izabrati lokaciju i ponovo sačuvati datoteku." + +#. i18n: ectx: property (text), widget (QPushButton, m_skipBtn) +#: dialogs/katedialogs.cpp:1497 spellcheck/spellcheckbar.ui:143 +#, fuzzy, kde-format +#| msgid "Ignore Word" +msgid "&Ignore" +msgstr "Ignoriši riječ" + +#: dialogs/katedialogs.cpp:1498 +#, fuzzy, kde-format +#| msgid "Ignore the changes. You will not be prompted again." +msgid "Ignores the changes on disk without any action." +msgstr "Ignoriši izmjene. Nećete biti ponovo upitani." + +#: dialogs/katedialogs.cpp:1567 swapfile/kateswapdiffcreator.cpp:131 +#, kde-format +msgid "" +"The diff command failed. Please make sure that diff(1) is installed and in " +"your PATH." +msgstr "" +"Naredba diff nije uspjela. Uvjerite se da je diff instalirana i da se nalazi u putanji." + +#: dialogs/katedialogs.cpp:1569 swapfile/kateswapdiffcreator.cpp:89 +#: swapfile/kateswapdiffcreator.cpp:99 swapfile/kateswapdiffcreator.cpp:133 +#, kde-format +msgid "Error Creating Diff" +msgstr "Greška pri razlikovanju" + +#: dialogs/katedialogs.cpp:1576 swapfile/kateswapdiffcreator.cpp:140 +#, kde-format +msgid "The files are identical." +msgstr "Datoteke su identične." + +#: dialogs/katedialogs.cpp:1576 swapfile/kateswapdiffcreator.cpp:140 +#, kde-format +msgid "Diff Output" +msgstr "Izlaz razlike" + +#. i18n: ectx: property (title), widget (QGroupBox, gbCursorMovement) +#: dialogs/navigationconfigwidget.ui:29 +#, kde-format +msgid "Text Cursor Movement" +msgstr "Pomijeranje kursora" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkSmartHome) +#: dialogs/navigationconfigwidget.ui:35 +#, kde-format +msgid "" +"When selected, pressing the home key will cause the cursor to skip " +"whitespace and go to the start of a line's text. The same applies for the " +"end key." +msgstr "" +"Kada je uključeno, pritiskom na taster Home kursor " +"će preskočiti praznine i otići na početak reda. Isto važi i za taster " +"End." + +#. i18n: ectx: property (text), widget (QCheckBox, chkSmartHome) +#: dialogs/navigationconfigwidget.ui:38 +#, kde-format +msgid "Smart ho&me and smart end" +msgstr "&Pametno na početak i kraj" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkPagingMovesCursor) +#: dialogs/navigationconfigwidget.ui:45 +#, kde-format +msgid "" +"Selects whether the PageUp and PageDown keys should alter the vertical " +"position of the cursor relative to the top of the view." +msgstr "" +"Određuje da li tasteri PageUp i PageDown mijenjaju uspravni položaj kursora relativno prema vrhu prikaza." + +#. i18n: ectx: property (text), widget (QCheckBox, chkPagingMovesCursor) +#: dialogs/navigationconfigwidget.ui:48 +#, kde-format +msgid "&PageUp/PageDown moves cursor" +msgstr "&Kursor šeta pri PageUp/PageDown" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkCamelCursor) +#: dialogs/navigationconfigwidget.ui:55 +#, kde-format +msgid "" +"Selects whether cursor stops at camel case humps and underscores within a " +"word." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkCamelCursor) +#: dialogs/navigationconfigwidget.ui:58 +#, kde-format +msgid "" +"Stop at 'camelCase' and 'snake_case' subwords when moving the cursor by word" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:79 +#, kde-format +msgid "&Autocenter cursor:" +msgstr "&Automatsko centriranje kursora:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:89 +#, kde-format +msgid "" +"Sets the number of lines to maintain visible above and below the cursor when " +"possible." +msgstr "" +"Postavlja broj redova koje treba održavati u prikazu iznad i ispod kursora " +"ako je moguće." + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, spbSwapFileSync) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:92 dialogs/opensaveconfigadvwidget.ui:120 +#: dialogs/opensaveconfigadvwidget.ui:168 +#, kde-format +msgid "Disabled" +msgstr "isključeno" + +#. i18n: ectx: property (suffix), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:95 +#, kde-format +msgid " lines" +msgstr " linije" + +#. i18n: ectx: property (title), widget (QGroupBox, cbNavigationMisc) +#: dialogs/navigationconfigwidget.ui:120 +#, kde-format +msgid "Misc" +msgstr "Razno" + +#. i18n: ectx: property (text), widget (QLabel, lblTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:128 +#, kde-format +msgid "Text selection mode:" +msgstr "Režim izbora teksta:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:139 inputmode/katenormalinputmode.cpp:64 +#: mode/katemodemanager.cpp:162 +#, kde-format +msgid "Normal" +msgstr "običan" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:144 +#, kde-format +msgid "Persistent" +msgstr "Postojan" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollPastEnd) +#: dialogs/navigationconfigwidget.ui:167 +#, kde-format +msgid "Allow scrolling past the end of the document" +msgstr "Dozvoli klizanje iza kraja dokumenta" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackspaceRemoveComposed) +#: dialogs/navigationconfigwidget.ui:174 +#, kde-format +msgid "" +"When selected, composed characters are removed with their diacritics instead " +"of only removing the base character. This is useful for Indic locales." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackspaceRemoveComposed) +#: dialogs/navigationconfigwidget.ui:177 +#, kde-format +msgid "Backspace key removes character’s base with its diacritics" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbCycleBookmarks) +#: dialogs/navigationconfigwidget.ui:184 +#, fuzzy, kde-format +#| msgid "Go to the previous bookmark." +msgid "Allow to cycle through bookmarks" +msgstr "Idi na prethodni obilježivač." + +#. i18n: ectx: property (title), widget (QGroupBox, gbMulticursor) +#: dialogs/navigationconfigwidget.ui:194 +#, kde-format +msgid "Multicursor" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblMulticursormodifiers) +#: dialogs/navigationconfigwidget.ui:200 +#, kde-format +msgid "Multiple Cursor Modifiers" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoReloadVersionControl) +#: dialogs/opensaveconfigadvwidget.ui:34 +#, kde-format +msgid "Auto reload files in version control" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoReloadOnExternalChanges) +#: dialogs/opensaveconfigadvwidget.ui:41 +#, kde-format +msgid "Auto reload files on external changes" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/opensaveconfigadvwidget.ui:48 +#, kde-format +msgid "Write a backup file on save for:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackupLocalFiles) +#: dialogs/opensaveconfigadvwidget.ui:55 +#, kde-format +msgid "" +"If this option is enabled, backups for local files will be created when " +"saving." +msgstr "" +"Ako je ovo uključeno, za lokalne datoteke se prave rezerve pri upisivanju." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackupLocalFiles) +#: dialogs/opensaveconfigadvwidget.ui:58 +#, kde-format +msgid "&Local files" +msgstr "&Lokalne datoteke" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackupRemoteFiles) +#: dialogs/opensaveconfigadvwidget.ui:65 +#, kde-format +msgid "" +"If this option is enabled, backups for remote files will be created when " +"saving." +msgstr "" +"Ako je ovo uključeno, pri upisivanju se prave rezerve i za udaljene datoteke." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackupRemoteFiles) +#: dialogs/opensaveconfigadvwidget.ui:68 +#, kde-format +msgid "&Remote files" +msgstr "&Udaljene datoteke" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/opensaveconfigadvwidget.ui:75 +#, kde-format +msgid "Prefix for backup files:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtBackupPrefix) +#: dialogs/opensaveconfigadvwidget.ui:85 +#, kde-format +msgid "Enter the prefix to prepend to the backup file names." +msgstr "Unesite prefiks za imena rezervnih datoteka." + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/opensaveconfigadvwidget.ui:92 +#, kde-format +msgid "Suffix for backup files:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtBackupSuffix) +#: dialogs/opensaveconfigadvwidget.ui:102 +#, kde-format +msgid "Enter the suffix to append to the backup file names." +msgstr "Unesite sufiks za imena rezervnih datoteka." + +#. i18n: ectx: property (text), widget (QLabel, lblSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:109 +#, fuzzy, kde-format +msgid "Swap file mode:" +msgstr "Nova datoteka" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:125 +#, kde-format +msgid "Enabled, Store In Default Directory" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:130 +#, kde-format +msgid "Enabled, Store In Custom Directory" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapDirectory) +#: dialogs/opensaveconfigadvwidget.ui:138 +#, fuzzy, kde-format +msgid "Store swap files in:" +msgstr "Nova datoteka" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapFileSync) +#: dialogs/opensaveconfigadvwidget.ui:158 +#, fuzzy, kde-format +msgid "Save swap files every:" +msgstr "Nova datoteka" + +#. i18n: ectx: property (suffix), widget (QSpinBox, spbSwapFileSync) +#: dialogs/opensaveconfigadvwidget.ui:171 +#, kde-format +msgid "s" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblExplanatory) +#: dialogs/opensaveconfigadvwidget.ui:196 +#, kde-format +msgid "" +"This string is located in katedialogs.cpp in KateSaveConfigTab's constructor." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkEditorConfig) +#: dialogs/opensaveconfigadvwidget.ui:209 +#, kde-format +msgid "Honor settings in .editorconfig file" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkUseFirstLineAsDocName) +#: dialogs/opensaveconfigadvwidget.ui:229 +#, kde-format +msgid "Use first line of untitled documents for document name" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbFileFormat) +#: dialogs/opensaveconfigwidget.ui:29 +#, kde-format +msgid "File Format" +msgstr "Format datoteke" + +#. i18n: ectx: property (text), widget (QLabel, lblEncoding) +#: dialogs/opensaveconfigwidget.ui:40 +#, kde-format +msgid "&Encoding:" +msgstr "&Kodiranje:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncoding) +#: dialogs/opensaveconfigwidget.ui:50 +#, kde-format +msgid "" +"This defines the standard encoding to use to open/save files, if not changed " +"in the open/save dialog or by using a command line option." +msgstr "" +"Definiše standardno kodiranje pri otvaranju i upisivanju datoteka, kada se " +"ono ne zada kroz dijalog ili opciju komandne linije." + +#. i18n: ectx: property (text), widget (QLabel, lblEncodingDetection) +#: dialogs/opensaveconfigwidget.ui:57 +#, fuzzy, kde-format +#| msgid "&Encoding Detection:" +msgid "&Encoding detection:" +msgstr "&Otkrivanje kodiranja:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncodingDetection) +#: dialogs/opensaveconfigwidget.ui:67 +#, kde-format +msgid "" +"if neither the encoding chosen as standard above, nor the encoding specified " +"in the open/save dialog, nor the encoding specified on command line match " +"the content of the file, this detection will be run." +msgstr "" +"Ako sadržaju datoteke ne odgovara standardno kodiranje iznad, niti ono " +"zadato u dijalogu za otvaranje ili upisivanje, niti ono u komandnoj liniji, " +"biće izvršeno ovo otkrivanje." + +#. i18n: ectx: property (text), widget (QLabel, lblEncodingDetection2) +#: dialogs/opensaveconfigwidget.ui:74 +#, fuzzy, kde-format +#| msgid "&Fallback Encoding:" +msgid "&Fallback encoding:" +msgstr "&Alternativno kodiranje:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncodingFallback) +#: dialogs/opensaveconfigwidget.ui:84 +#, fuzzy, kde-format +#| msgid "" +#| "This defines the fallback encoding to try for opening files if neither " +#| "the encoding chosen as standard above, nor the encoding specified in the " +#| "open/save dialog, nor the encoding specified on command line match the " +#| "content of the file. Before this is used, an attempt will be made to " +#| "determine the encoding to use by looking for a byte order marker at start " +#| "of file: if one is found, the right unicode encoding will be chosen; " +#| "otherwise encoding detection will run, if both fail fallback encoding " +#| "will be tried." +msgid "" +"This defines the fallback encoding to try for opening files if neither the " +"encoding chosen as standard above, nor the encoding specified in the open/" +"save dialog, nor the encoding specified on command line match the content of " +"the file. Before this is used, an attempt will be made to determine the " +"encoding to use by looking for a byte order mark at start of file: if one is " +"found, the right Unicode encoding will be chosen; otherwise encoding " +"detection will run, if both fail the fallback encoding will be tried." +msgstr "" +"Definiše odstupno kodiranje pri otvaranju datoteka, za slučaj da sadržaju " +"datoteke ne odgovara nijedno od kodiranja izabranog iznad kao standardno, " +"zadatog u dijalogu za otvaranje ili upisivanje, ili u komandnoj liniji. " +"Prije spadanja na odstupno kodiranje, pokušava se automatsko otkrivanje: ako " +"datoteka počinje markerom redoslijeda bajtova, biće izabrano pravo Unicode " +"kodiranje; inače će biti izvršeno prepoznavanje kodiranja. Ako nijedno ne " +"urodi plodom, prelazi se na odstupno kodiranje." + +#. i18n: ectx: property (text), widget (QLabel, lblEOL) +#: dialogs/opensaveconfigwidget.ui:91 +#, kde-format +msgid "E&nd of line:" +msgstr "&Kraj reda:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:102 +#, kde-format +msgid "UNIX" +msgstr "Unix" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:107 +#, kde-format +msgid "DOS/Windows" +msgstr "DOS/Windows" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:112 +#, kde-format +msgid "Macintosh" +msgstr "MacOS" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkDetectEOL) +#: dialogs/opensaveconfigwidget.ui:122 +#, kde-format +msgid "" +"If this option is enabled the editor will autodetect the end of line type. " +"The first found end of line type will be used for the whole file." +msgstr "" +"Ako je ovo uključeno, uređivač će sam zaključiti o načinu okončavanja reda " +"(uzima se da prvi nađeni kraj važi za cijelu datoteku)." + +#. i18n: ectx: property (text), widget (QCheckBox, chkDetectEOL) +#: dialogs/opensaveconfigwidget.ui:125 +#, kde-format +msgid "A&utomatic end of line detection" +msgstr "&Automatsko otkrivanje kraja reda" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkEnableBOM) +#: dialogs/opensaveconfigwidget.ui:132 +#, fuzzy, kde-format +#| msgid "" +#| "The byte order mark is a special sequence at the beginning of unicode " +#| "encoded documents. It helps editors to open text documents with the " +#| "correct unicode encoding. The byte order mark is not visible in the " +#| "displayed document." +msgid "" +"The byte order mark is a special sequence at the beginning of Unicode " +"encoded documents. It helps editors to open text documents with the correct " +"Unicode encoding. The byte order mark is not visible in the displayed " +"document." +msgstr "" +"Marker redoslijeda bajtova je poseban niz na početku Unicode tekstualnih " +"dokumenata, koji pomaže uređivačima da otvore dokument sa pravim Unicode " +"kodiranjem. Ovaj marker se ne vidi u prikazu dokumenta po otvaranju." + +#. i18n: ectx: property (text), widget (QCheckBox, chkEnableBOM) +#: dialogs/opensaveconfigwidget.ui:135 +#, fuzzy, kde-format +#| msgid "Enable byte order marker" +msgid "Enable byte order mark (BOM)" +msgstr "Marker redoslijeda bajtova" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/opensaveconfigwidget.ui:142 +#, fuzzy, kde-format +#| msgid "Line Length Limit:" +msgid "Line length limit:" +msgstr "Limit dužine linije:" + +#. i18n: ectx: property (specialValueText), widget (QSpinBox, lineLengthLimit) +#: dialogs/opensaveconfigwidget.ui:152 +#, kde-format +msgid "Unlimited" +msgstr "Neograničeno" + +#. i18n: ectx: property (title), widget (QGroupBox, gbCleanups) +#: dialogs/opensaveconfigwidget.ui:168 +#, kde-format +msgid "Automatic Cleanups on Save" +msgstr "Automatska čišćenja pri snimanju" + +#. i18n: ectx: property (whatsThis), widget (QLabel, lblRemoveTrailingSpaces) +#. i18n: ectx: property (whatsThis), widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:176 dialogs/opensaveconfigwidget.ui:189 +#, kde-format +msgid "" +"Depending on the choice, trailing spaces are removed when saving a document, " +"either in the entire document or only of modified lines." +msgstr "" +"Zavisno od izbora, prateći razmaci se uklanjaju pri snimanju dokumenta, u " +"cijelom dokumentu ili u izmijenjenim linijama" + +#. i18n: ectx: property (text), widget (QLabel, lblRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:179 +#, kde-format +msgid "Re&move trailing spaces:" +msgstr "Ukloni &prateće razmake" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, spbAutoSaveInterval) +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/opensaveconfigwidget.ui:193 dialogs/opensaveconfigwidget.ui:270 +#: dialogs/textareaappearanceconfigwidget.ui:104 +#, kde-format +msgid "Never" +msgstr "Nikad" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:198 +#, kde-format +msgid "On Modified Lines" +msgstr "Na promijenjenim redovima" + +# >> @title:window +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:203 +#, kde-format +msgid "In Entire Document" +msgstr "U cijelom dokumentu" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkNewLineAtEof) +#: dialogs/opensaveconfigwidget.ui:226 +#, kde-format +msgid "" +"On save, a line break is appended to the document if not already present. " +"The line break is visible after reloading the file." +msgstr "" +"Pri spremanju, prijelom reda se dodaje dokumentu, ako već nije prisutan." +"Prijelom reda vidljiv je nakon ponovnog učitavanja datoteke." + +#. i18n: ectx: property (text), widget (QCheckBox, chkNewLineAtEof) +#: dialogs/opensaveconfigwidget.ui:229 +#, kde-format +msgid "Append newline at end of file on save" +msgstr "Dodavanje novog reda na kraju datoteke za spremanje" + +#. i18n: ectx: property (title), widget (QGroupBox, gbAutoSave) +#: dialogs/opensaveconfigwidget.ui:239 +#, fuzzy, kde-format +#| msgid "Enable &auto completion" +msgid "Enable Auto Save (local files only)" +msgstr "Omogući &automatsko kompletiranje" + +#. i18n: ectx: property (text), widget (QCheckBox, cbAutoSaveOnFocus) +#: dialogs/opensaveconfigwidget.ui:254 +#, kde-format +msgid "Auto save document when the active document is losing focus" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/opensaveconfigwidget.ui:263 +#, kde-format +msgid "Auto save interval:" +msgstr "" + +#. i18n: ectx: property (suffix), widget (QSpinBox, spbAutoSaveInterval) +#: dialogs/opensaveconfigwidget.ui:273 +#, kde-format +msgid " seconds" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowHighlightingMode) +#: dialogs/statusbarconfigwidget.ui:19 +#, fuzzy, kde-format +#| msgid "Syntax highlighting" +msgid "Show highlighting mode" +msgstr "Označavanje sintakse." + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowInputMode) +#: dialogs/statusbarconfigwidget.ui:26 +#, fuzzy, kde-format +#| msgid "Use Vi input mode" +msgid "Show input mode" +msgstr "Režim unosa s VI editorom" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowActiveDictionary) +#: dialogs/statusbarconfigwidget.ui:33 +#, fuzzy, kde-format +#| msgid "Change Dictionary..." +msgid "Show active dictionary" +msgstr "Promijeni rječnik..." + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowTabSetting) +#: dialogs/statusbarconfigwidget.ui:40 +#, fuzzy, kde-format +#| msgid "Show line modification markers" +msgid "Show tab setting" +msgstr "Prikaži oznake izmijenjene linije" + +# >> @action:inmenu +#. i18n: ectx: property (text), widget (QCheckBox, cbShowLineColumn) +#: dialogs/statusbarconfigwidget.ui:47 +#, fuzzy, kde-format +#| msgid "Show &Line Numbers" +msgid "Show line column" +msgstr "&Brojevi redova" + +# >> @action:inmenu +#. i18n: ectx: property (text), widget (QCheckBox, cbShowEncoding) +#: dialogs/statusbarconfigwidget.ui:54 +#, fuzzy, kde-format +#| msgid "Show &Line Numbers" +msgid "Show File Encoding" +msgstr "&Brojevi redova" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowEOL) +#: dialogs/statusbarconfigwidget.ui:61 +#, kde-format +msgid "Show Line Ending Type" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/textareaappearanceconfigwidget.ui:28 +#, kde-format +msgid "Editor font:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblLineHeight) +#: dialogs/textareaappearanceconfigwidget.ui:48 +#, fuzzy, kde-format +#| msgid "Line Length Limit:" +msgid "&Line Height Multiplier:" +msgstr "Limit dužine linije:" + +#. i18n: ectx: property (toolTip), widget (QDoubleSpinBox, spbLineHeightMultiplier) +#: dialogs/textareaappearanceconfigwidget.ui:58 +#, kde-format +msgid "" +"This value will be multiplied with the font's default line height. A value " +"of 1.0 means that the default height will be used." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/textareaappearanceconfigwidget.ui:93 +#, fuzzy, kde-format +#| msgid "Ignore white space changes" +msgid "Show whitespace indicators:" +msgstr "Ignoriši izmjene u prazninama" + +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/textareaappearanceconfigwidget.ui:109 +#, fuzzy, kde-format +#| msgctxt "short translation please" +#| msgid "Sets the end of line mode." +msgid "At the end of a line" +msgstr "Postavlja režim kraja linije." + +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/textareaappearanceconfigwidget.ui:114 +#, kde-format +msgid "Always" +msgstr "Uvijek" + +#. i18n: ectx: property (text), widget (QLabel, lbMarkerDescription) +#: dialogs/textareaappearanceconfigwidget.ui:122 +#, fuzzy, kde-format +#| msgid "Whitespace Highlighting" +msgid "Whitespace indicator si&ze:" +msgstr "Osvjetljavanje praznina" + +#. i18n: ectx: property (whatsThis), widget (QSlider, sliSetMarkerSize) +#: dialogs/textareaappearanceconfigwidget.ui:138 +#, kde-format +msgid "Size of the visible highlight marker." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/textareaappearanceconfigwidget.ui:166 +#, fuzzy, kde-format +#| msgid "Show line modification markers" +msgid "Show &tab indicators:" +msgstr "Prikaži oznake izmijenjene linije" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowTabs) +#: dialogs/textareaappearanceconfigwidget.ui:176 +#, kde-format +msgid "" +"The editor will display a symbol to indicate the presence of a tab in the " +"text." +msgstr "" +"Uređivač će prikazivati simbol kao naznaku prisustva tabulatora u tekstu." + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/textareaappearanceconfigwidget.ui:202 +#, fuzzy, kde-format +#| msgid "Bracket Highlight" +msgid "Bracket matching:" +msgstr "Držač istaknutih" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowWholeBracketExpression) +#: dialogs/textareaappearanceconfigwidget.ui:209 +#, kde-format +msgid "" +"If this is enabled, the range between the selected matching brackets will be " +"highlighted." +msgstr "" +"Kada je uključeno, biće istaknut opseg između izabranih parnjačkih zagrada." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowWholeBracketExpression) +#: dialogs/textareaappearanceconfigwidget.ui:212 +#, kde-format +msgid "Highlight range between selected brackets" +msgstr "Istakni opseg između izabranih zagrada" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:219 +#, kde-format +msgid "Show the matching open bracket and lines adjacent to it for context" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:222 +#, kde-format +msgid "" +"If this is enabled, a preview of the lines near a matching open bracket is " +"shown. This can help in quickly determining the context of a closing " +"bracket, especially in long function/class declarations and deeply nested if " +"blocks" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:225 +#, fuzzy, kde-format +msgid "Show preview of matching open bracket" +msgstr "Štampaj tekući dokument." + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:232 +#, fuzzy, kde-format +msgid "Flash matching brackets" +msgstr "Izaberi do parnjačke zagrade" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:235 +#, kde-format +msgid "" +"If this is enabled, matching brackets are animated for better visibility." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:238 +#, kde-format +msgid "Flash matching bracket when cursor moves to other bracket in pair" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/textareaappearanceconfigwidget.ui:261 +#, kde-format +msgid "Counts:" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowWordCount) +#: dialogs/textareaappearanceconfigwidget.ui:268 +#, kde-format +msgid "Show/hide word count in status bar" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowWordCount) +#: dialogs/textareaappearanceconfigwidget.ui:271 view/katestatusbar.cpp:258 +#, fuzzy, kde-format +#| msgid "Not word boundary" +msgid "Show word count" +msgstr "nije granica riječi" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowLineCount) +#: dialogs/textareaappearanceconfigwidget.ui:278 +#, kde-format +msgid "Show/hide line count in status bar" +msgstr "" + +# >> @action:inmenu +#. i18n: ectx: property (text), widget (QCheckBox, chkShowLineCount) +#: dialogs/textareaappearanceconfigwidget.ui:281 view/katestatusbar.cpp:255 +#, fuzzy, kde-format +#| msgid "Show &Line Numbers" +msgid "Show line count" +msgstr "&Brojevi redova" + +#. i18n: ectx: property (text), widget (QLabel, label_25) +#: dialogs/textareaappearanceconfigwidget.ui:304 +#, fuzzy, kde-format +#| msgid "End of line" +msgid "Fold first line:" +msgstr "kraj reda" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkFoldFirstLine) +#: dialogs/textareaappearanceconfigwidget.ui:317 +#, kde-format +msgid "" +"When this setting is enabled, the editor view automatically folds\n" +"comment blocks that start on the first line of the document. This is\n" +"helpful to hide license headers which are commonly placed at the\n" +"beginning of a file." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbxWordWrap) +#: dialogs/textareaappearanceconfigwidget.ui:337 +#, fuzzy, kde-format +#| msgid "&Dynamic Word Wrap" +msgid "Dynamic Word Wrap:" +msgstr "&Dinamički prelom" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDynWrapAtStaticMarker) +#: dialogs/textareaappearanceconfigwidget.ui:344 +#, fuzzy, kde-format +#| msgid "Enable static &word wrap" +msgid "Wrap dynamically at static word wrap marker" +msgstr "Uključi &statičko prelamanje teksta" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDynWrapAnywhere) +#: dialogs/textareaappearanceconfigwidget.ui:351 +#, kde-format +msgid "Disregard word boundaries for dynamic wrapping" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblDynamicWordWrapIndicators) +#: dialogs/textareaappearanceconfigwidget.ui:358 +#, fuzzy, kde-format +#| msgid "Dynamic Word Wrap Indicators" +msgid "D&ynamic word wrap indicators:" +msgstr "Pokazatelji dinamičkog prijeloma" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbDynamicWordWrapIndicator) +#: dialogs/textareaappearanceconfigwidget.ui:368 +#, kde-format +msgid "Choose when the Dynamic Word Wrap Indicators should be displayed." +msgstr "Izaberite kada treba prikazivati pokazatelje dinamičkog prelamanja." + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/textareaappearanceconfigwidget.ui:391 +#, fuzzy, kde-format +#| msgid "Indentation Properties" +msgid "I&ndent wrapped lines:" +msgstr "Svojstva uvlačenja" + +#. i18n: ectx: property (text), widget (QLabel, lblDynamicWordWrapIndicators_2) +#: dialogs/textareaappearanceconfigwidget.ui:408 +#, fuzzy, kde-format +#| msgid "&Indentation width:" +msgid "&Don't indent lines wider than:" +msgstr "Širina &nazubljivanja:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbDynamicWordWrapDepth) +#: dialogs/textareaappearanceconfigwidget.ui:424 +#, no-c-format, kde-format +msgid "" +"

Enables the start of dynamically wrapped lines to be aligned vertically " +"to the indentation level of the first line. This can help to make code and " +"markup more readable.

Additionally, this allows you to set a maximum " +"width of the screen, as a percentage, after which dynamically wrapped lines " +"will no longer be vertically aligned. For example, at 50%, lines whose " +"indentation levels are deeper than 50% of the width of the screen will not " +"have vertical alignment applied to subsequent wrapped lines.

" +msgstr "" +"

Zadaje da početak dinamički prelomljenih redova bude poravnat na nivo " +"uvlačenja prvog. Ovo može doprinijeti čitljivosti kôda i obilježavanja.

Pored toga, možete zadati i najveću širinu prikaza (kao procenat) " +"poslije koje se dinamički prelomljeni redovi više neće uspravno ravnati. Na " +"primjer, 50% znači da redovi čiji su nivoi uvlačenja veći od 50% širine " +"prikaza neće biti ravnati po prijelomu.

" + +#. i18n: ectx: property (suffix), widget (QSpinBox, sbDynamicWordWrapDepth) +#: dialogs/textareaappearanceconfigwidget.ui:427 +#, no-c-format, kde-format +msgid "% of View Width" +msgstr "% od širine prikaza" + +# skip-rule: linije +#. i18n: ectx: property (text), widget (QLabel, label_24) +#: dialogs/textareaappearanceconfigwidget.ui:443 +#, fuzzy, kde-format +#| msgid "Show i&ndentation lines" +msgid "Show i&ndentation lines:" +msgstr "Prikaži linije &uvlačenja" + +# skip-rule: linije +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowIndentationLines) +#: dialogs/textareaappearanceconfigwidget.ui:453 +#, kde-format +msgid "" +"If this is enabled, the editor will display vertical lines to help identify " +"indent lines." +msgstr "" +"Kada je uključeno, uređivač prikazuje uspravne linije za lakše uočavanje " +"uvlačenja." + +#: document/katebuffer.cpp:135 +#, kde-format +msgctxt "short translation, user created new file" +msgid "New file" +msgstr "Nova datoteka" + +# >> @title:window +#: document/katedocument.cpp:223 +#, fuzzy, kde-format +#| msgid "Close Document" +msgid "Auto Reload Document" +msgstr "Zatvaranje dokumenta" + +#: document/katedocument.cpp:225 +#, kde-format +msgid "Automatic reload the document when it was changed on disk" +msgstr "" + +#: document/katedocument.cpp:2307 +#, kde-format +msgid "" +"The file %1 could not be loaded, as it was not possible to read from it.
Check if you have read access to this file." +msgstr "" +"Datoteka %1 nije mogla biti učitana, pošto se ne može čitati.
Provjerite da li imate dozvolu čitanja za ovu datoteku." + +#: document/katedocument.cpp:2312 +#, kde-format +msgctxt "translators: you can also translate 'Try Again' with 'Reload'" +msgid "Try Again" +msgstr "Pokušaj ponovo" + +#: document/katedocument.cpp:2316 document/katedocument.cpp:6534 +#, kde-format +msgid "&Close" +msgstr "&Zatvori" + +#: document/katedocument.cpp:2317 document/katedocument.cpp:6535 +#, fuzzy, kde-format +#| msgid "Close message" +msgctxt "Close the message being displayed" +msgid "Close message" +msgstr "Zatvori poruku" + +#: document/katedocument.cpp:2449 +#, fuzzy, kde-format +#| msgid "" +#| "The file %1 was opened with %2 encoding but contained invalid characters." +#| "
It is set to read-only mode, as saving might destroy its content." +#| "
Either reopen the file with the correct encoding chosen or enable " +#| "the read-write mode again in the menu to be able to edit it." +msgid "" +"The file %1 was opened with %2 encoding but contained invalid characters." +"
It is set to read-only mode, as saving might destroy its content.
Either reopen the file with the correct encoding chosen or enable the read-" +"write mode again in the tools menu to be able to edit it." +msgstr "" +"Datoteka %1 otvorena je sa kodiranjem %2, ali sadrži neispravne znake. " +"Postavljen je režim samo‑za‑čitanje, jer bi sadržaj mogao biti oštećen " +"upisivanjem.
Ili ponovo otvorite datoteku sa tačnim kodiranjem, ili " +"ručno uključite režim čitanja-pisanja ako ipak želite da ga uređujete." + +#: document/katedocument.cpp:2468 +#, fuzzy, kde-format +msgid "" +"The file %1 was opened and contained lines longer than the configured Line " +"Length Limit (%2 characters).
The longest of those lines was %3 " +"characters long
Those lines were wrapped and the document is set to read-" +"only mode, as saving will modify its content." +msgstr "" +"Datoteka %1 je otvorena i sadržava linije duže od konfigurisanog limita " +"dužine reda(%2 znaka).
Ti redovi su prelomljeni i dokument je " +"postavljen u režim za čitanje, kao ušteda će se izmijeniti njegov sadržaj." + +#: document/katedocument.cpp:2475 +#, kde-format +msgid "Temporarily raise limit and reload file" +msgstr "" + +#: document/katedocument.cpp:2478 +#, kde-format +msgid "Close" +msgstr "Zatvori" + +#: document/katedocument.cpp:2505 +#, kde-format +msgid "" +"Do you really want to save this unmodified file? You could overwrite changed " +"data in the file on disk." +msgstr "" +"Želite li stvarno snimiti ovu neizmijenjenu datoteku? Mogli biste prepisati " +"preko izmijenjenih podataka na disku." + +#: document/katedocument.cpp:2506 +#, kde-format +msgid "Trying to Save Unmodified File" +msgstr "Pokušaj da se snimi neizmijenjena datoteka" + +#: document/katedocument.cpp:2507 document/katedocument.cpp:2518 +#: document/katedocument.cpp:2534 +#, kde-format +msgid "Save Nevertheless" +msgstr "Ipak snimi" + +#: document/katedocument.cpp:2516 +#, kde-format +msgid "" +"Do you really want to save this file? Both your open file and the file on " +"disk were changed. There could be some data lost." +msgstr "" +"Želite li stvarno snimiti ovu neizmijenjenu datoteku? Izmijenjena je i vaša " +"otvorena datoteka i datoteka na disku. Moglo bi doći do gubitka podataka." + +#: document/katedocument.cpp:2517 document/katedocument.cpp:2533 +#: document/katedocument.cpp:2853 syntax/katethemeconfig.cpp:1218 +#: syntax/katethemeconfig.cpp:1376 +#, kde-format +msgid "Possible Data Loss" +msgstr "Moguć gubitak podataka" + +#: document/katedocument.cpp:2531 +#, fuzzy, kde-format +#| msgid "" +#| "The selected encoding cannot encode every unicode character in this " +#| "document. Do you really want to save it? There could be some data lost." +msgid "" +"The selected encoding cannot encode every Unicode character in this " +"document. Do you really want to save it? There could be some data lost." +msgstr "" +"Izabrani kodni raspored ne sadrži sve potrebne Unicode znakove koji su " +"korišteni u ovom dokumentu. Da li ga zaista želite snimiti? Može doći do " +"gubitka podataka." + +#: document/katedocument.cpp:2601 +#, fuzzy, kde-format +#| msgid "" +#| "The document could not be saved, as it was not possible to write to %1.\n" +#| "\n" +#| "Check that you have write access to this file or that enough disk space " +#| "is available." +msgid "" +"The document could not be saved, as it was not possible to write to %1.\n" +"Check that you have write access to this file or that enough disk space is " +"available.\n" +"The original file may be lost or damaged. Don't quit the application until " +"the file is successfully written." +msgstr "" +"Nisam mogao snimiti dokument, pošto nije moguće pisati u %1.\n" +"\n" +"Provjerite da li imate dozvolu za pisanje u ovu datoteku i da li ima " +"dovoljno prostora na disku." + +#: document/katedocument.cpp:2722 +#, kde-format +msgid "" +"For file %1 no backup copy could be created before saving. If an error " +"occurs while saving, you might lose the data of this file. A reason could be " +"that the media you write to is full or the directory of the file is read-" +"only for you." +msgstr "" +"Za datoteku %1 ne može da se napravi rezerva prije " +"upisivanja — ukoliko dođe do greške pri upisu, možete izgubiti podatke iz " +"datoteke. Razlog bi mogao biti pun medijum na koji upisujete, ili nedostatak " +"dozvole pisanja u direktorij u kome je datoteka." + +#: document/katedocument.cpp:2726 +#, kde-format +msgid "Failed to create backup copy." +msgstr "Ne mogu da napravim rezervu." + +#: document/katedocument.cpp:2727 +#, kde-format +msgid "Try to Save Nevertheless" +msgstr "Ipak pokušaj da snimiš" + +#: document/katedocument.cpp:2852 +#, kde-format +msgid "Do you really want to continue to close this file? Data loss may occur." +msgstr "" +"Želite li zaista da zatvorite ovu datoteku? Može doći do gubitka podataka." + +#: document/katedocument.cpp:2854 +#, kde-format +msgid "Close Nevertheless" +msgstr "Ipak zatvori" + +#: document/katedocument.cpp:4641 +#, fuzzy, kde-format +#| msgid "Untitled" +msgid "Untitled (%1)" +msgstr "Neimenovano" + +#: document/katedocument.cpp:4643 +#, kde-format +msgid "Untitled" +msgstr "Neimenovano" + +#: document/katedocument.cpp:4820 document/katedocument.cpp:5051 +#: document/katedocument.cpp:5061 document/katedocument.cpp:5862 +#: document/katedocument.cpp:6049 +#, kde-format +msgid "Save File" +msgstr "Snimi datoteku" + +#: document/katedocument.cpp:4823 +#, kde-format +msgid "Save failed" +msgstr "Snimanje nije uspjelo" + +#: document/katedocument.cpp:5072 +#, fuzzy, kde-format +msgid "Save Copy of File" +msgstr "Snimi datoteku" + +#: document/katedocument.cpp:5084 +#, kde-format +msgid "" +"The document could not be saved, as it was not possible to write to %1.\n" +"\n" +"Check that you have write access to this file or that enough disk space is " +"available." +msgstr "" +"Nisam mogao snimiti dokument, pošto nije moguće pisati u %1.\n" +"\n" +"Provjerite da li imate dozvolu za pisanje u ovu datoteku i da li ima " +"dovoljno prostora na disku." + +#: document/katedocument.cpp:5376 +#, fuzzy, kde-format +#| msgid "" +#| "Using deprecated modeline 'remove-trailing-space'. Please replace with " +#| "'remove-trailing-spaces modified;', see http://docs.kde.org/stable/en/kde-" +#| "baseapps/kate/config-variables.html#variable-remove-trailing-spaces" +msgid "" +"Using deprecated modeline 'remove-trailing-space'. Please replace with " +"'remove-trailing-spaces modified;', see https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" +msgstr "" +"Koristim zastarjeli modeline 'remove-trailing-space'. Molim zamijenite s " +"'remove-trailing-spaces modified;', vidi http://docs.kde.org/stable/en/kde-" +"baseapps/kate/config-variables.html#variable-remove-trailing-spaces" + +#: document/katedocument.cpp:5382 +#, fuzzy, kde-format +#| msgid "" +#| "Using deprecated modeline 'replace-trailing-space-save'. Please replace " +#| "with 'remove-trailing-spaces all;', see http://docs.kde.org/stable/en/kde-" +#| "baseapps/kate/config-variables.html#variable-remove-trailing-spaces" +msgid "" +"Using deprecated modeline 'replace-trailing-space-save'. Please replace with " +"'remove-trailing-spaces all;', see https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" +msgstr "" +"Koristim zastarjeli modeline 'replace-trailing-space-save'. Molim zamijenite " +"sa 'remove-trailing-spaces all;', vidi http://docs.kde.org/stable/en/kde-" +"baseapps/kate/config-variables.html#variable-remove-trailing-spaces" + +#: document/katedocument.cpp:5696 +#, fuzzy, kde-format +#| msgid "The file '%1' was modified by another program." +msgid "The file '%1' was modified on disk." +msgstr "Neki drugi program je izmijenio datoteku %1." + +#: document/katedocument.cpp:5698 +#, fuzzy, kde-format +#| msgid "The file '%1' was deleted by another program." +msgid "The file '%1' was deleted or moved on disk." +msgstr "Neki drugi program je obrisao datoteku %1." + +#: document/katedocument.cpp:6034 +#, kde-format +msgid "" +"The document \"%1\" has been modified.\n" +"Do you want to save your changes or discard them?" +msgstr "" +"Dokument \"%1\" je mijenjan.\n" +"Želite li snimiti vaše izmjene ili ih poništiti?" + +# >> @title:window +#: document/katedocument.cpp:6037 +#, kde-format +msgid "Close Document" +msgstr "Zatvaranje dokumenta" + +#: document/katedocument.cpp:6148 +#, kde-format +msgid "The file %2 is still loading." +msgstr "Datoteka %2 se još učitava." + +#: document/katedocument.cpp:6153 +#, kde-format +msgid "&Abort Loading" +msgstr "&Prekini učitavanje" + +#: inputmode/katenormalinputmode.cpp:74 +#, kde-format +msgid "OVERWRITE" +msgstr "" + +#: inputmode/katenormalinputmode.cpp:74 +#, kde-format +msgid "INSERT" +msgstr "" + +#: inputmode/katenormalinputmodefactory.cpp:29 +#, fuzzy, kde-format +#| msgid "Normal mode" +msgid "Normal Mode" +msgstr "Običan režim" + +#: inputmode/kateviinputmode.cpp:31 +#, fuzzy, kde-format +#| msgid "VI: INSERT MODE" +msgctxt "The INSERT mode of VI" +msgid "VI: INSERT" +msgstr "VI: UMETANJE" + +#: inputmode/kateviinputmode.cpp:34 +#, fuzzy, kde-format +#| msgid "VI: NORMAL MODE" +msgctxt "The NORMAL mode of VI" +msgid "VI: NORMAL" +msgstr "VI: NORMALNO" + +#: inputmode/kateviinputmode.cpp:37 +#, kde-format +msgid "VI: VISUAL" +msgstr "VI: VIZUELNO" + +#: inputmode/kateviinputmode.cpp:40 +#, kde-format +msgid "VI: VISUAL BLOCK" +msgstr "VI: VIZUELNO BLOK" + +#: inputmode/kateviinputmode.cpp:43 +#, kde-format +msgid "VI: VISUAL LINE" +msgstr "VI: VIZUELNO RED" + +#: inputmode/kateviinputmode.cpp:46 +#, kde-format +msgid "VI: REPLACE" +msgstr "VI: ZAMJENA" + +#: inputmode/kateviinputmode.cpp:146 +#, kde-format +msgid "vi-mode" +msgstr "" + +#: inputmode/kateviinputmode.cpp:159 +#, kde-format +msgid "recording" +msgstr "zapisivanje" + +#: inputmode/kateviinputmodefactory.cpp:38 utils/kateglobal.cpp:88 +#: vimode/config/configtab.cpp:237 +#, kde-format +msgid "Vi Input Mode" +msgstr "Režim unosa poput editora 'vi'" + +#: mode/katemodeconfigpage.cpp:46 +#, kde-format +msgid "" +msgstr "(neizmijenjeno)" + +# >> @item:inlistbox Identation mode +#: mode/katemodeconfigpage.cpp:58 +#, kde-format +msgid "Use Default" +msgstr "podrazumijevani" + +#: mode/katemodeconfigpage.cpp:99 mode/katemodeconfigpage.cpp:241 +#, kde-format +msgid "Properties of %1" +msgstr "Svojstva tipa %1" + +#: mode/katemodeconfigpage.cpp:178 +#, kde-format +msgid "New Filetype" +msgstr "Novi tip datoteke" + +#: mode/katemodeconfigpage.cpp:293 +#, kde-format +msgid "" +"Select the MimeTypes you want for this file type.\n" +"Please note that this will automatically edit the associated file extensions " +"as well." +msgstr "" +"Izaberite MIME tipove koje želite za ovaj tip datoteke.\n" +"Imajte na umu da će ovo automatski izmijeniti i pridružene nastavke imena " +"datoteka." + +#: mode/katemodeconfigpage.cpp:295 +#, kde-format +msgid "Select Mime Types" +msgstr "Izaberite MIME tipove" + +#: mode/katemodeconfigpage.cpp:312 +#, kde-format +msgid "Modes && Filetypes" +msgstr "Režimi i tipovi datoteka" + +#: mode/katemodemenulist.cpp:138 +#, fuzzy, kde-format +#| msgid "Search mode" +msgctxt "@info:placeholder" +msgid "Search…" +msgstr "Režim traženja" + +#: mode/katemodemenulist.cpp:140 +#, kde-format +msgctxt "ToolTip of the search bar of modes of syntax highlighting" +msgid "" +"Search for syntax highlighting modes by language name or file extension (for " +"example, C++ or .cpp)" +msgstr "" + +#: mode/katemodemenulist.cpp:560 +#, kde-format +msgctxt "A search yielded no results" +msgid "No items matching your search" +msgstr "" + +#: mode/katemodemenulist.cpp:1087 +#, fuzzy, kde-format +#| msgid "Best matches" +msgctxt "" +"Title (in singular) of the best result in an item search. Please, that the " +"translation doesn't have more than 34 characters, since the menu where it's " +"displayed is small and fixed." +msgid "Best Search Match" +msgstr "Najbliža poklapanja" + +#: mode/katemodemenulist.cpp:1092 +#, fuzzy, kde-format +#| msgid "Best matches" +msgctxt "" +"Title (in plural) of the best results in an item search. Please, that the " +"translation doesn't have more than 34 characters, since the menu where it's " +"displayed is small and fixed." +msgid "Best Search Matches" +msgstr "Najbliža poklapanja" + +#: printing/printconfigwidgets.cpp:36 +#, kde-format +msgid "Te&xt Settings" +msgstr "Postavke &teksta" + +#: printing/printconfigwidgets.cpp:40 +#, kde-format +msgid "Print line &numbers" +msgstr "Štampaj brojeve &redova" + +#: printing/printconfigwidgets.cpp:43 +#, kde-format +msgid "Print &legend" +msgstr "Štampaj &legendu" + +#: printing/printconfigwidgets.cpp:46 +#, kde-format +msgid "Don't print folded code" +msgstr "" + +#: printing/printconfigwidgets.cpp:54 +#, kde-format +msgid "" +"

If enabled, line numbers will be printed on the left side of the page(s)." +"

" +msgstr "" +"

Kada je uključeno, brojevi redova se štampaju na lijevoj strani stranice." +"

" + +#: printing/printconfigwidgets.cpp:56 +#, kde-format +msgid "" +"

Print a box displaying typographical conventions for the document type, " +"as defined by the syntax highlighting being used.

" +msgstr "" +"

Štampa okvir sa tipografskim konvencijama za ovaj tip dokumenta, " +"definisanim isticanjem sintakse koje se koristi.

" + +#: printing/printconfigwidgets.cpp:116 +#, kde-format +msgid "Hea&der && Footer" +msgstr "Zaglavlje &i podnožje" + +#: printing/printconfigwidgets.cpp:123 +#, kde-format +msgid "Pr&int header" +msgstr "Štampaj &zaglavlje" + +#: printing/printconfigwidgets.cpp:125 +#, kde-format +msgid "Pri&nt footer" +msgstr "Štampaj &podnožje" + +#: printing/printconfigwidgets.cpp:131 +#, kde-format +msgid "Header/footer font:" +msgstr "Font zaglavlja/podnožja:" + +#: printing/printconfigwidgets.cpp:137 +#, kde-format +msgid "Header Properties" +msgstr "Svojstva zaglavlja" + +#: printing/printconfigwidgets.cpp:141 +#, kde-format +msgid "&Format:" +msgstr "&Format:" + +#: printing/printconfigwidgets.cpp:163 printing/printconfigwidgets.cpp:209 +#, kde-format +msgid "Colors:" +msgstr "Boje:" + +#: printing/printconfigwidgets.cpp:170 printing/printconfigwidgets.cpp:216 +#, kde-format +msgid "Foreground:" +msgstr "Boja ispisa:" + +#: printing/printconfigwidgets.cpp:175 +#, kde-format +msgid "Bac&kground" +msgstr "&Pozadina" + +#: printing/printconfigwidgets.cpp:181 +#, kde-format +msgid "Footer Properties" +msgstr "Svojstva podnožja" + +#: printing/printconfigwidgets.cpp:186 +#, kde-format +msgid "For&mat:" +msgstr "F&ormat:" + +#: printing/printconfigwidgets.cpp:221 +#, kde-format +msgid "&Background" +msgstr "Po&zadina" + +#: printing/printconfigwidgets.cpp:250 +#, kde-format +msgid "

Format of the page header. The following tags are supported:

" +msgstr "

Format zaglavlja stranice. Na raspolaganju su sljedeće oznake:

" + +#: printing/printconfigwidgets.cpp:252 +#, kde-format +msgid "" +"
  • %u: current user name
  • %d: complete date/" +"time in short format
  • %D: complete date/time in long format
  • %h: current time
  • %y: current date in short " +"format
  • %Y: current date in long format
  • %f: " +"file name
  • %U: full URL of the document
  • %p: " +"page number
  • %P: total amount of pages

" +msgstr "" +"
  • %u: ime trenutnog korisnika
  • %d: puni datum/" +"vrijeme u kratkom formatu
  • %D: puni datum/vrijeme u dugom " +"formatu
  • %h: trenutno vrijeme
  • %y: trenutni " +"datum u kratkom formatu
  • %Y: trenutni datum u dugom formatu
  • %f: ime datoteke
  • %U: puni URL dokumenta
  • %p: broj strane
  • %P: ukupan broj stranica

" + +#: printing/printconfigwidgets.cpp:266 +#, kde-format +msgid "

Format of the page footer. The following tags are supported:

" +msgstr "

Format podnožja stranice. Na raspolaganju su sljedeće oznake:

" + +#: printing/printconfigwidgets.cpp:352 +#, kde-format +msgid "Add Placeholder..." +msgstr "Dodaj mjesto.." + +#: printing/printconfigwidgets.cpp:354 +#, kde-format +msgid "Current User Name" +msgstr "Ime trenutnog korisnika" + +#: printing/printconfigwidgets.cpp:356 +#, kde-format +msgid "Complete Date/Time (short format)" +msgstr "Puni datum/vrijeme (kratki format)" + +#: printing/printconfigwidgets.cpp:358 +#, kde-format +msgid "Complete Date/Time (long format)" +msgstr "Puni datum/vrijeme (dugi format)" + +#: printing/printconfigwidgets.cpp:360 +#, kde-format +msgid "Current Time" +msgstr "Trenutno vrijeme" + +#: printing/printconfigwidgets.cpp:362 +#, kde-format +msgid "Current Date (short format)" +msgstr "Trenutni datum (kratki format)" + +#: printing/printconfigwidgets.cpp:364 +#, kde-format +msgid "Current Date (long format)" +msgstr "Trenutni datum (dugi format)" + +#: printing/printconfigwidgets.cpp:366 +#, kde-format +msgid "File Name" +msgstr "Ime datoteke" + +#: printing/printconfigwidgets.cpp:368 +#, kde-format +msgid "Full document URL" +msgstr "Puni URL dokumenta" + +#: printing/printconfigwidgets.cpp:370 +#, kde-format +msgid "Page Number" +msgstr "Broj stranice" + +#: printing/printconfigwidgets.cpp:372 +#, kde-format +msgid "Total Amount of Pages" +msgstr "Ukupan broj stranica" + +#: printing/printconfigwidgets.cpp:478 +#, kde-format +msgid "L&ayout" +msgstr "&Raspored" + +#: printing/printconfigwidgets.cpp:484 +#, fuzzy, kde-format +#| msgid "Use KDE Color Scheme" +msgid "&Color theme:" +msgstr "Koristi KDE šemu boja" + +#: printing/printconfigwidgets.cpp:494 +#, fuzzy, kde-format +#| msgid "Font" +msgid "Font:" +msgstr "Font" + +#: printing/printconfigwidgets.cpp:498 +#, kde-format +msgid "Draw bac&kground color" +msgstr "Crtaj &pozadinsku boju" + +#: printing/printconfigwidgets.cpp:501 +#, kde-format +msgid "Draw &boxes" +msgstr "Crtaj &okvire" + +#: printing/printconfigwidgets.cpp:505 +#, kde-format +msgid "Box Properties" +msgstr "Svojstva okvira" + +#: printing/printconfigwidgets.cpp:509 +#, kde-format +msgid "W&idth:" +msgstr "&Širina:" + +#: printing/printconfigwidgets.cpp:517 +#, kde-format +msgid "&Margin:" +msgstr "&Margina:" + +#: printing/printconfigwidgets.cpp:525 +#, kde-format +msgid "Co&lor:" +msgstr "&Boja:" + +#: printing/printconfigwidgets.cpp:547 +#, fuzzy, kde-format +#| msgid "Select the color scheme to use for the print." +msgid "Select the color theme to use for the print." +msgstr "Izaberite šemu boja za štampanje." + +#: printing/printconfigwidgets.cpp:549 +#, fuzzy, kde-format +#| msgid "" +#| "

If enabled, the background color of the editor will be used.

This may be useful if your color scheme is designed for a dark " +#| "background.

" +msgid "" +"

If enabled, the background color of the editor will be used.

This " +"may be useful if your color theme is designed for a dark background.

" +msgstr "" +"

Ako je uključeno, koristiće se boja pozadine uređivača. Može dobro doći " +"ako je šema boja projektovana za tamnu pozadinu.

" + +# skip-rule: linije +#: printing/printconfigwidgets.cpp:552 +#, kde-format +msgid "" +"

If enabled, a box as defined in the properties below will be drawn around " +"the contents of each page. The Header and Footer will be separated from the " +"contents with a line as well.

" +msgstr "" +"

Ako je uključeno, crtaće se oko sadržaja svake stranice, prema svojstvima " +"ispod. Zaglavlje i podnožje biće takođe odvojeni linijom od sadržaja.

" + +#: printing/printconfigwidgets.cpp:555 +#, kde-format +msgid "The width of the box outline" +msgstr "Debljina linije okvira" + +#: printing/printconfigwidgets.cpp:556 +#, kde-format +msgid "The margin inside boxes, in pixels" +msgstr "Margina unutar okvira, u pikselima" + +# skip-rule: linije +#: printing/printconfigwidgets.cpp:557 +#, kde-format +msgid "The line color to use for boxes" +msgstr "Boja linija za okvir" + +#: printing/printpainter.cpp:269 +#, kde-format +msgid "(Selection of) " +msgstr "(odabir) " + +#: printing/printpainter.cpp:522 +#, kde-format +msgid "Typographical Conventions for %1" +msgstr "Tipografske konvencije za %1" + +#: printing/printpainter.cpp:555 +#, kde-format +msgid "text" +msgstr "tekst" + +#: script/data/commands/emmet.js:9 +#, fuzzy, kde-format +#| msgid "Expand Abbreviation" +msgctxt "Script command name" +msgid "Expand Abbreviation" +msgstr "Raširi skraćenicu" + +#: script/data/commands/emmet.js:10 script/data/commands/emmet.js:14 +#: script/data/commands/emmet.js:19 script/data/commands/emmet.js:23 +#: script/data/commands/emmet.js:27 script/data/commands/emmet.js:31 +#: script/data/commands/emmet.js:35 script/data/commands/emmet.js:39 +#: script/data/commands/emmet.js:43 script/data/commands/emmet.js:47 +#: script/data/commands/emmet.js:51 script/data/commands/emmet.js:55 +#: script/data/commands/emmet.js:59 script/data/commands/emmet.js:63 +#: script/data/commands/emmet.js:67 script/data/commands/emmet.js:71 +#: script/data/commands/emmet.js:75 script/data/commands/emmet.js:79 +#: script/data/commands/emmet.js:83 +#, fuzzy, kde-format +#| msgid "Emmet" +msgctxt "Script command category" +msgid "Emmet" +msgstr "Emmet" + +#: script/data/commands/emmet.js:13 +#, fuzzy, kde-format +#| msgid "Wrap with tag" +msgctxt "Script command name" +msgid "Wrap with Tag" +msgstr "Omotaj oznakom" + +#: script/data/commands/emmet.js:18 +#, fuzzy, kde-format +#| msgid "Move cursor to matching tag" +msgctxt "Script command name" +msgid "Move Cursor to Matching Tag" +msgstr "Pomjeri kursor na parnjačku zagradu" + +#: script/data/commands/emmet.js:22 +#, fuzzy, kde-format +#| msgid "Select HTML/XML tag contents inwards" +msgctxt "Script command name" +msgid "Select HTML/XML Tag Contents Inwards" +msgstr "Izaberi HTML/XML sadržaj oznaka prema unutra" + +#: script/data/commands/emmet.js:26 +#, fuzzy, kde-format +#| msgid "Select HTML/XML tag contents outwards" +msgctxt "Script command name" +msgid "Select HTML/XML Tag Contents Outwards" +msgstr "Izaberi HTML/XML sadržaj oznaka prema vani" + +#: script/data/commands/emmet.js:30 +#, fuzzy, kde-format +#| msgid "Toggle Comment" +msgctxt "Script command name" +msgid "Toggle Comment" +msgstr "Zakomentariši/otkomentariši" + +#: script/data/commands/emmet.js:34 +#, fuzzy, kde-format +#| msgid "Go to next edit point" +msgctxt "Script command name" +msgid "Go to Next Edit Point" +msgstr "Idi na sljedeću uređivačku tačku" + +#: script/data/commands/emmet.js:38 +#, fuzzy, kde-format +#| msgid "Go to previous edit point" +msgctxt "Script command name" +msgid "Go to Previous Edit Point" +msgstr "Pomjeri na prethodnu uređivačku tačku" + +#: script/data/commands/emmet.js:42 +#, fuzzy, kde-format +#| msgid "Select next edit point" +msgctxt "Script command name" +msgid "Select Next Edit Point" +msgstr "Izaberi sljedeću uređivačku tačku" + +#: script/data/commands/emmet.js:46 +#, fuzzy, kde-format +#| msgid "Select previous edit point" +msgctxt "Script command name" +msgid "Select Previous Edit Point" +msgstr "Izaberi pethodnu uređivačku tačku" + +#: script/data/commands/emmet.js:50 +#, fuzzy, kde-format +#| msgid "Delete tag under cursor" +msgctxt "Script command name" +msgid "Delete Tag Under Cursor" +msgstr "Obriši oznaku pod kursorom" + +#: script/data/commands/emmet.js:54 +#, fuzzy, kde-format +#| msgid "Split or join a tag" +msgctxt "Script command name" +msgid "Split or Join a Tag" +msgstr "Razdvoji ili spoji oznaku" + +#: script/data/commands/emmet.js:58 +#, fuzzy, kde-format +#| msgid "Evaluate a simple math expression" +msgctxt "Script command name" +msgid "Evaluate a Simple Math Expression" +msgstr "Izračunaj prosti matematički izraz" + +#: script/data/commands/emmet.js:62 +#, fuzzy, kde-format +#| msgid "Decrement number by 1" +msgctxt "Script command name" +msgid "Decrement Number by 1" +msgstr "Smanji broj za 1" + +#: script/data/commands/emmet.js:66 +#, fuzzy, kde-format +#| msgid "Decrement number by 10" +msgctxt "Script command name" +msgid "Decrement Number by 10" +msgstr "Smanji broj za 10" + +#: script/data/commands/emmet.js:70 +#, fuzzy, kde-format +#| msgid "Decrement number by 0.1" +msgctxt "Script command name" +msgid "Decrement Number by 0.1" +msgstr "Smanji broj za 0.1" + +#: script/data/commands/emmet.js:74 +#, fuzzy, kde-format +#| msgid "Increment number by 1" +msgctxt "Script command name" +msgid "Increment Number by 1" +msgstr "Uvećaj broj za 1" + +#: script/data/commands/emmet.js:78 +#, fuzzy, kde-format +#| msgid "Increment number by 10" +msgctxt "Script command name" +msgid "Increment Number by 10" +msgstr "Uvećaj broj za 10" + +#: script/data/commands/emmet.js:82 +#, fuzzy, kde-format +#| msgid "Increment number by 0.1" +msgctxt "Script command name" +msgid "Increment Number by 0.1" +msgstr "Uvećaj broj za 0.1" + +#: script/data/commands/emmet.js:96 +#, kde-format +msgid "" +"Expands the abbreviation using Emmet expressions; see http://code.google.com/" +"p/zen-coding/wiki/ZenHTMLSelectorsEn" +msgstr "" +"Širi skraćenicu koristeći Emmet izraze; vidi http://code.google.com/p/zen-" +"coding/wiki/ZenHTMLSelectorsEn" + +#: script/data/commands/emmet.js:97 +#, kde-format +msgid "" +"Wraps the selected text in XML tags constructed from the provided Emmet " +"expression (defaults to div)." +msgstr "" +"Prelomi izabrani tekst u XML oznakama sastavljenim iz datog Emmet izraza " +"(normalno div)." + +#: script/data/commands/emmet.js:98 +#, kde-format +msgid "Moves the caret to the current tag's pair" +msgstr "Pomijera pokazivač na parnjaka oznake" + +#: script/data/commands/emmet.js:99 +#, kde-format +msgid "" +"Select contents of HTML/XML tag, moving inward on continuous invocations" +msgstr "Odaberi sadržaj HTML/XML pomijerajući se ka kontinualnim pozivima" + +#: script/data/commands/emmet.js:100 +#, kde-format +msgid "" +"Select contents of HTML/XML tag, moving outwards on continuous invocations" +msgstr "Odaberi sadržaj HTML/XML pomijerajući se iz kontinualni pozivia" + +#: script/data/commands/emmet.js:101 +#, kde-format +msgid "Move to the next edit point (tag or empty attribute)." +msgstr "Pomjeri na sljedeću uređivačku tačku (oznaka ili prazan atribut)" + +#: script/data/commands/emmet.js:102 +#, kde-format +msgid "Move to the previous edit point (tag or empty attribute)." +msgstr "Pomjeri na prethodnu uređivačku tačku (oznaka ili prazan atribut)" + +#: script/data/commands/emmet.js:103 +#, kde-format +msgid "Select next edit point (tag or empty attribute)." +msgstr "Izaberi sljedeću uređivačku tačku (oznaka ili prazan atribut)" + +#: script/data/commands/emmet.js:104 +#, kde-format +msgid "Select previous edit point (tag or empty attribute)." +msgstr "Izaberi prethodnu uređivačku tačku (oznaka ili prazan atribut)" + +#: script/data/commands/emmet.js:105 +#, kde-format +msgid "Toggle comment of current tag or CSS selector" +msgstr "Preklopi komentar nad trenutnom oznakom ili CSS selektorom" + +#: script/data/commands/emmet.js:106 +#, kde-format +msgid "Deletes tag under cursor" +msgstr "Briše oznaku pod kursorom" + +#: script/data/commands/emmet.js:107 +#, kde-format +msgid "Splits or joins a tag" +msgstr "Razdvaja ili spaja oznaku" + +#: script/data/commands/emmet.js:108 +#, kde-format +msgid "Evaluates a simple math expression" +msgstr "Računa prosti matematički izraz" + +#: script/data/commands/emmet.js:109 +#, kde-format +msgid "Decrement number under cursor by 1" +msgstr "Smanji broj pod kursorom za 1" + +#: script/data/commands/emmet.js:110 +#, kde-format +msgid "Decrement number under cursor by 10" +msgstr "Smanji broj pod kursorom za 10" + +#: script/data/commands/emmet.js:111 +#, kde-format +msgid "Decrement number under cursor by 0.1" +msgstr "Smanji broj pod kursorom za 0.1" + +#: script/data/commands/emmet.js:112 +#, kde-format +msgid "Increment number under cursor by 1" +msgstr "Uvećaj broj pod kursorom za 1" + +#: script/data/commands/emmet.js:113 +#, kde-format +msgid "Increment number under cursor by 10" +msgstr "Uvećaj broj pod kursorom za 10" + +#: script/data/commands/emmet.js:114 +#, kde-format +msgid "Increment number under cursor by 0.1" +msgstr "Uvećaj broj pod kursorom za 0.1" + +#: script/data/commands/jumpMatchingIndent.js:9 +#, fuzzy, kde-format +#| msgid "Move cursor to previous matching indent" +msgctxt "Script command name" +msgid "Move Cursor to Previous Matching Indent" +msgstr "Pomjeri kursor na prethodnu parnjačku zagradu" + +#: script/data/commands/jumpMatchingIndent.js:11 +#: script/data/commands/jumpMatchingIndent.js:16 +#: script/data/commands/jumpMatchingIndent.js:21 +#: script/data/commands/jumpMatchingIndent.js:26 +#: script/data/commands/navigation.js:10 script/data/commands/navigation.js:14 +#, fuzzy, kde-format +#| msgid "Navigation" +msgctxt "Script command category" +msgid "Navigation" +msgstr "Navigacija" + +#: script/data/commands/jumpMatchingIndent.js:14 +#, fuzzy, kde-format +#| msgid "Move cursor to next matching indent" +msgctxt "Script command name" +msgid "Move Cursor to Next Matching Indent" +msgstr "Pomjeri kursor na narednu parnjačku zagradu" + +#: script/data/commands/jumpMatchingIndent.js:19 +#, fuzzy, kde-format +#| msgid "Move cursor to next matching indent" +msgctxt "Script command name" +msgid "Move Cursor to Next Blank Line" +msgstr "Pomjeri kursor na narednu parnjačku zagradu" + +#: script/data/commands/jumpMatchingIndent.js:24 +#, fuzzy, kde-format +#| msgid "Move cursor to previous matching indent" +msgctxt "Script command name" +msgid "Move Cursor to Previous Blank Line" +msgstr "Pomjeri kursor na prethodnu parnjačku zagradu" + +#: script/data/commands/jumpMatchingIndent.js:80 +#, kde-format +msgid "Move cursor to previous matching indent" +msgstr "Pomjeri kursor na prethodnu parnjačku zagradu" + +#: script/data/commands/jumpMatchingIndent.js:83 +#, kde-format +msgid "Move cursor to next matching indent" +msgstr "Pomjeri kursor na narednu parnjačku zagradu" + +#: script/data/commands/jumpMatchingIndent.js:85 +#, fuzzy, kde-format +#| msgid "Move cursor to next matching indent" +msgid "Move cursor to next blank line" +msgstr "Pomjeri kursor na narednu parnjačku zagradu" + +#: script/data/commands/jumpMatchingIndent.js:87 +#, fuzzy, kde-format +#| msgid "Move cursor to previous matching indent" +msgid "Move cursor to previous blank line" +msgstr "Pomjeri kursor na prethodnu parnjačku zagradu" + +#: script/data/commands/navigation.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Go to Next Paragraph" +msgstr "" + +#: script/data/commands/navigation.js:13 +#, fuzzy, kde-format +#| msgid "Go to previous edit point" +msgctxt "Script command name" +msgid "Go to Previous Paragraph" +msgstr "Pomjeri na prethodnu uređivačku tačku" + +#: script/data/commands/utils.js:9 +#, fuzzy, kde-format +#| msgid "Re&move trailing spaces:" +msgctxt "Script command name" +msgid "Remove Trailing Spaces" +msgstr "Ukloni &prateće razmake" + +#: script/data/commands/utils.js:10 script/data/commands/utils.js:14 +#: script/data/commands/utils.js:18 script/data/commands/utils.js:22 +#: script/data/commands/utils.js:27 script/data/commands/utils.js:32 +#: script/data/commands/utils.js:36 script/data/commands/utils.js:40 +#: script/data/commands/utils.js:44 script/data/commands/utils.js:48 +#: script/data/commands/utils.js:52 script/data/commands/utils.js:56 +#, fuzzy, kde-format +#| msgid "Editing" +msgctxt "Script command category" +msgid "Editing" +msgstr "Izmjena" + +#: script/data/commands/utils.js:13 +#, fuzzy, kde-format +#| msgid "Re&move trailing spaces:" +msgctxt "Script command name" +msgid "Remove Leading Spaces" +msgstr "Ukloni &prateće razmake" + +#: script/data/commands/utils.js:17 +#, fuzzy, kde-format +#| msgid "Re&move trailing spaces:" +msgctxt "Script command name" +msgid "Remove Trailing and Leading Spaces" +msgstr "Ukloni &prateće razmake" + +#: script/data/commands/utils.js:21 +#, fuzzy, kde-format +#| msgid "Join Lines" +msgctxt "Script command name" +msgid "Join Lines" +msgstr "Spoji redove" + +#: script/data/commands/utils.js:25 +#, fuzzy, kde-format +#| msgid "Move Lines Down" +msgctxt "Script command name" +msgid "Move Lines Down" +msgstr "Pomjeri redove nadolje" + +#: script/data/commands/utils.js:30 +#, fuzzy, kde-format +#| msgid "Move Lines Up" +msgctxt "Script command name" +msgid "Move Lines Up" +msgstr "Pomjeri redove nagore" + +#: script/data/commands/utils.js:35 +#, fuzzy, kde-format +#| msgid "Duplicate Selected Lines Down" +msgctxt "Script command name" +msgid "Duplicate Selected Lines Down" +msgstr "Udvostruči izabrane redove dolje" + +#: script/data/commands/utils.js:39 +#, fuzzy, kde-format +#| msgid "Duplicate Selected Lines Up" +msgctxt "Script command name" +msgid "Duplicate Selected Lines Up" +msgstr "Udvostruči izabrane redove gore" + +#: script/data/commands/utils.js:43 +#, fuzzy, kde-format +#| msgid "Duplicate Selected Lines Up" +msgctxt "Script command name" +msgid "Duplicate selected text" +msgstr "Udvostruči izabrane redove gore" + +#: script/data/commands/utils.js:47 +#, fuzzy, kde-format +#| msgid "URI-encode Selected Text" +msgctxt "Script command name" +msgid "URI-encode Selected Text" +msgstr "URI kodiraj izabrani tekst" + +#: script/data/commands/utils.js:51 +#, fuzzy, kde-format +#| msgid "URI-decode Selected Text" +msgctxt "Script command name" +msgid "URI-decode Selected Text" +msgstr "URI dekodiraj izabrani tekst" + +#: script/data/commands/utils.js:55 +#, fuzzy, kde-format +#| msgid "Move cursor to next matching indent" +msgctxt "Script command name" +msgid "Remove Empty Lines" +msgstr "Pomjeri kursor na narednu parnjačku zagradu" + +#: script/data/commands/utils.js:410 +#, kde-format +msgid "Sort the selected text or whole document." +msgstr "Sortira izabrani tekst ili cijeli dokument." + +#: script/data/commands/utils.js:412 +#, kde-format +msgid "Move selected lines down." +msgstr "Pomijera izabrane redove nadolje." + +#: script/data/commands/utils.js:414 +#, kde-format +msgid "Move selected lines up." +msgstr "Pomijera izabrane redove nagore." + +#: script/data/commands/utils.js:416 +#, kde-format +msgid "Remove duplicate lines from the selected text or whole document." +msgstr "Uklanja duplirane redove iz izabranog teksta ili cijelog dokumenta." + +#: script/data/commands/utils.js:418 +#, kde-format +msgid "" +"Sort the selected text or whole document in natural order.
Here is an " +"example to show the difference to the normal sort method:
sort(a10, a1, " +"a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" +msgstr "" +"Ređa izabrani tekst ili cijeli dokument prirodnim redoslijedom.
Evo " +"primjera koji pokazuje razliku u odnosu na uobičajeni metod:
sort(a10, a1, a2) → a1, a10, a2
natsort(a10, a1, " +"a2) → a1, a2, a10" + +#: script/data/commands/utils.js:420 +#, kde-format +msgid "Trims trailing whitespace from selection or whole document." +msgstr "Uklanja prateće praznine iz izbora ili cijelog dokumenta." + +#: script/data/commands/utils.js:422 +#, kde-format +msgid "Trims leading whitespace from selection or whole document." +msgstr "Uklanja vodeće praznine iz izbora ili cijelog dokumenta." + +#: script/data/commands/utils.js:424 +#, kde-format +msgid "Trims leading and trailing whitespace from selection or whole document." +msgstr "Uklanja vodeće i prateće praznine iz izbora ili cijelog dokumenta." + +#: script/data/commands/utils.js:426 +#, kde-format +msgid "" +"Joins selected lines or whole document. Optionally pass a separator to put " +"between each line:
join ', ' will e.g. join lines and " +"separate them by a comma." +msgstr "" +"Spaja izabrane redove ili cijeli dokument. Možete proslijediti razdvajač " +"koji će biti umetnut između svaka dva reda:
join ', ' će " +"npr. spojiti redove zarezima." + +#: script/data/commands/utils.js:428 +#, kde-format +msgid "Removes empty lines from selection or whole document." +msgstr "Uklanja prazne redove iz izbora ili cijelog dokumenta." + +#: script/data/commands/utils.js:430 +#, kde-format +msgid "" +"This command aligns lines in the selected block or whole document on the " +"column given by a regular expression given as an argument.

If you " +"give an empty pattern it will align on the first non-blank character by " +"default.
If the pattern has a capture it will indent on the captured " +"match.

Examples:
'alignon -' will insert " +"spaces before the first '-' of each lines to align them all on the same " +"column.
'alignon :\\s+(.)' will insert spaces before the " +"first non-blank character that occurs after a colon to align them all on the " +"same column." +msgstr "" + +#: script/data/commands/utils.js:434 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and replace them with the return value of that callback." +"
Example (join selected lines):
each 'function(lines){return " +"lines.join(\", \");}'
To save you some typing, you can also do " +"this to achieve the same:
each 'lines.join(\", \")'" +msgstr "" +"Ako je JavaScript function argument, pozovite ovo za listu (odabranih) " +"linija i zamijenite ih s povratnom vrijednoću za taj callback.
Na primjer " +"(spajanje odabranih linija):
each 'function(lines){return lines." +"join(\", \");}'
Da smanjite kucanje, ovo možete postići i ovako:" +"
each 'lines.join(\", \")'" + +#: script/data/commands/utils.js:436 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and remove those where the callback returns false." +"
Example (see also rmblank):
filter 'function(l)" +"{return l.length > 0;}'
To save you some typing, you can also do " +"this to achieve the same:
filter 'line.length > 0'" +msgstr "" +"Poziva javaskriptnu funkciju datu kao argument nad listom (izabranih) redova " +"i uklanja one za koje funkcija vrati netačno.
Primjer (v. takođe " +"rmblank):
filter 'function(l){return l.length > " +"0;}'
Da biste uštedeli nešto kucanja, isto možete postići i " +"ovako:
filter 'line.length > 0'" + +#: script/data/commands/utils.js:438 +#, fuzzy, kde-format +#| msgid "" +#| "Given a JavaScript function as argument, call that for the list of " +#| "(selected) lines and replace the line with the return value of the " +#| "callback.
Example (see also ltrim):
map " +#| "'function(line){return line.replace(/^\\s+/, \"\");}'
To save " +#| "you some typing, you can also do this to achieve the same:
map " +#| "'line.replace(/^\\s+/, \"\")'" +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and replace the line with the return value of the callback." +"
Example (see also ltrim):
map 'function(line)" +"{return line.replace(/^\\s+/, \"\");}'
To save you some typing, " +"you can also do this to achieve the same:
map 'line.replace(/^\\s" +"+/, \"\")'" +msgstr "" +"Poziva javaskriptnu funkciju datu kao argument nad listom (izabranih) redova " +"i zamenjuje svaki red povratnom vrednošću iz funkcije.
Primjer (v. " +"takođe ltrim):
map 'function(line){return line." +"replace(/^\\s+/, \"\");}'
Da biste uštedeli nešto kucanja, isto " +"možete postići i ovako:
map 'line.replace(/^\\s+/, \"\")'" + +#: script/data/commands/utils.js:440 +#, kde-format +msgid "Duplicates the selected lines up." +msgstr "Udvostručava izabrane redove gore." + +#: script/data/commands/utils.js:442 +#, kde-format +msgid "Duplicates the selected lines down." +msgstr "Udvostručava izabrane redove dolje." + +#: script/data/commands/utils.js:446 +#, kde-format +msgid "" +"Encode special chars in a single line selection, so the result text can be " +"used as URI." +msgstr "" +"Kodiraj specijalne znakove u izboru jedne linije kako bi se rezultat " +"koristio kao URI." + +#: script/data/commands/utils.js:448 +#, kde-format +msgid "Reverse action of URI encode." +msgstr "Inverzna akcija od URI kodiranja" + +#: script/data/commands/utils.js:450 +#, kde-format +msgid "" +"Select text forward from current cursor position to the first occurrence of " +"the given argument after it (or the end of the current line by default)." +msgstr "" + +#: script/data/commands/utils.js:452 +#, kde-format +msgid "" +"Select text backward from current cursor position to the last occurrence of " +"the given argument before it (or the beginning of the current line by " +"default)." +msgstr "" + +#: script/data/indentation/ada.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Ada" +msgctxt "Autoindent mode" +msgid "ada" +msgstr "Ada" + +#: script/data/indentation/cmake.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "CMake" +msgctxt "Autoindent mode" +msgid "CMake" +msgstr "CMake" + +#: script/data/indentation/cppstyle.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "C++/boost Style" +msgstr "" + +#: script/data/indentation/cstyle.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "C Style" +msgstr "C stil" + +#: script/data/indentation/haskell.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Haskell" +msgstr "Haskell" + +#: script/data/indentation/julia.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Julia" +msgctxt "Autoindent mode" +msgid "Julia" +msgstr "Julia" + +#: script/data/indentation/latex.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Latex" +msgstr "Latex" + +#: script/data/indentation/lilypond.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "LilyPond" +msgstr "LilyPond" + +#: script/data/indentation/lisp.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "LISP" +msgstr "LISP" + +#: script/data/indentation/pascal.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Pascal" +msgstr "Pascal" + +#: script/data/indentation/python.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Python" +msgstr "Python" + +#: script/data/indentation/r.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "R" +msgstr "" + +#: script/data/indentation/replicode.js:2 +#, fuzzy, kde-format +#| msgid "&Replace" +msgctxt "Autoindent mode" +msgid "Replicode" +msgstr "&Zamijeni" + +#: script/data/indentation/ruby.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Ruby" +msgstr "Ruby" + +#: script/data/indentation/xml.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "XML Style" +msgstr "XML stil" + +#: script/katecommandlinescript.cpp:37 +#, kde-format +msgid "Function '%1' not found in script: %2" +msgstr "Funkcije %1 nema u skripti %2" + +#: script/katecommandlinescript.cpp:51 +#, kde-format +msgid "Error calling %1" +msgstr "Greška pri pozivu %1" + +#: script/katecommandlinescript.cpp:68 +#, kde-format +msgid "Bad quoting in call: %1. Please escape single quotes with a backslash." +msgstr "" +"Loše navođenje u pozivu: %1. Izbjegnite jednostruke navodnike kontrakrozom." + +#: script/katecommandlinescript.cpp:76 utils/katecmds.cpp:217 +#: vimode/cmds.cpp:37 +#, kde-format +msgid "Could not access view" +msgstr "Ne mogu da pristupim prikazu" + +#: script/katecommandlinescript.cpp:118 +#, kde-format +msgid "Error calling 'help %1'" +msgstr "Greška pri pozivu help %1" + +#: script/katecommandlinescript.cpp:123 +#, kde-format +msgid "No help specified for command '%1' in script %2" +msgstr "" +"Pomoć nije definisana za naredbu %1 u skripti %2" + +#: script/katescript.cpp:282 +#, fuzzy, kde-format +#| msgid "Error loading script %1" +msgid "Error loading script %1: %2" +msgstr "Greška pri učitavanju skripte %1" + +# >> @info +#: script/katescriptmanager.cpp:319 +#, kde-format +msgid "Reload all JavaScript files (indenters, command line scripts, etc)." +msgstr "" +"Ponovo učitava sve JavaScript datoteke (uvlakače, skripte komandne linije, " +"itd.)" + +#: script/katescriptview.cpp:214 +#, kde-format +msgid "Command not found: %1" +msgstr "Naredba nije nađena: %1" + +#: search/katesearchbar.cpp:73 +#, kde-format +msgid "Add..." +msgstr "Dodaj..." + +#: search/katesearchbar.cpp:298 +#, kde-format +msgctxt "short translation" +msgid "1 replacement made" +msgid_plural "%1 replacements made" +msgstr[0] "izvršena %1 zamjena" +msgstr[1] "izvršena %1 zamjena" +msgstr[2] "izvršena %1 zamjena" + +#: search/katesearchbar.cpp:300 +#, kde-format +msgctxt "short translation" +msgid "1 match found" +msgid_plural "%1 matches found" +msgstr[0] "nađeno %1 poklapanje" +msgstr[1] "nađena %1 poklapanja" +msgstr[2] "nađeno %1 poklapanja" + +#: search/katesearchbar.cpp:374 +#, kde-format +msgid "Reached top, continued from bottom" +msgstr "Dosegnut vrh, nastavljam s dna." + +#: search/katesearchbar.cpp:376 +#, kde-format +msgid "Reached bottom, continued from top" +msgstr "Dosegnuto dno, nastavljam s vrha." + +#: search/katesearchbar.cpp:381 +#, kde-format +msgid "Not found" +msgstr "Nije nađeno" + +#: search/katesearchbar.cpp:615 +#, kde-format +msgid "Bottom of file reached. Continue from top?" +msgstr "Kraj datoteke dostignut. Nastaviti od početka?" + +#: search/katesearchbar.cpp:615 +#, kde-format +msgid "Top of file reached. Continue from bottom?" +msgstr "Dosegnut vrh datoteke, nastaviti s dna?" + +#: search/katesearchbar.cpp:618 +#, kde-format +msgid "Continue search?" +msgstr "Nastaviti pretragu?" + +#: search/katesearchbar.cpp:920 +#, fuzzy, kde-format +#| msgid "Search Highlight" +msgid "SearchHighLight" +msgstr "Pretraži istaknute" + +#: search/katesearchbar.cpp:1136 search/katesearchbar.cpp:1755 +#, fuzzy, kde-format +#| msgid "Clear Dictionary Ranges" +msgid "Clear history" +msgstr "Očisti rječničke opsege" + +#: search/katesearchbar.cpp:1166 +#, kde-format +msgid "Beginning of line" +msgstr "početak reda" + +#: search/katesearchbar.cpp:1167 +#, kde-format +msgid "End of line" +msgstr "kraj reda" + +#: search/katesearchbar.cpp:1169 +#, fuzzy, kde-format +#| msgid "Any single character (excluding line breaks)" +msgid "Match any character excluding new line (by default)" +msgstr "bilo koji znak (osim prijeloma reda)" + +#: search/katesearchbar.cpp:1170 +#, kde-format +msgid "One or more occurrences" +msgstr "jedno ili više javljanja" + +#: search/katesearchbar.cpp:1171 +#, kde-format +msgid "Zero or more occurrences" +msgstr "nula ili više javljanja" + +#: search/katesearchbar.cpp:1172 +#, kde-format +msgid "Zero or one occurrences" +msgstr "nula ili jedno javljanje" + +#: search/katesearchbar.cpp:1175 +#, kde-format +msgid " through occurrences" +msgstr "od a do b javljanja" + +#: search/katesearchbar.cpp:1181 +#, kde-format +msgid "Group, capturing" +msgstr "grupa, zahvatna" + +#: search/katesearchbar.cpp:1182 +#, kde-format +msgid "Or" +msgstr "ili" + +#: search/katesearchbar.cpp:1183 +#, kde-format +msgid "Set of characters" +msgstr "skup znakova" + +#: search/katesearchbar.cpp:1184 +#, kde-format +msgid "Negative set of characters" +msgstr "negativan skup znakova" + +#: search/katesearchbar.cpp:1188 +#, kde-format +msgid "Whole match reference" +msgstr "upućivač cijelog poklapanja" + +#: search/katesearchbar.cpp:1199 +#, kde-format +msgid "Reference" +msgstr "upućivač" + +#: search/katesearchbar.cpp:1206 +#, kde-format +msgid "Line break" +msgstr "prelom reda" + +#: search/katesearchbar.cpp:1207 +#, kde-format +msgid "Tab" +msgstr "tabulator" + +#: search/katesearchbar.cpp:1210 +#, kde-format +msgid "Word boundary" +msgstr "granica riječi" + +#: search/katesearchbar.cpp:1211 +#, kde-format +msgid "Not word boundary" +msgstr "nije granica riječi" + +#: search/katesearchbar.cpp:1212 +#, kde-format +msgid "Digit" +msgstr "cifra" + +#: search/katesearchbar.cpp:1213 +#, kde-format +msgid "Non-digit" +msgstr "nije cifra" + +#: search/katesearchbar.cpp:1214 +#, kde-format +msgid "Whitespace (excluding line breaks)" +msgstr "praznina (osim prijeloma reda)" + +#: search/katesearchbar.cpp:1215 +#, fuzzy, kde-format +#| msgid "&Spaces" +msgid "Non-whitespace" +msgstr "&Razmaka" + +#: search/katesearchbar.cpp:1216 +#, kde-format +msgid "Word character (alphanumerics plus '_')" +msgstr "znak riječi (alfanumerički i podvlaka)" + +#: search/katesearchbar.cpp:1217 +#, kde-format +msgid "Non-word character" +msgstr "nije znak riječi" + +#: search/katesearchbar.cpp:1220 +#, kde-format +msgid "Octal character 000 to 377 (2^8-1)" +msgstr "oktalni znak 000 do 377 (2^8-1)" + +#: search/katesearchbar.cpp:1221 +#, kde-format +msgid "Hex character 0000 to FFFF (2^16-1)" +msgstr "heksadekadni znak 0000 do FFFF (2^16-1)" + +#: search/katesearchbar.cpp:1222 +#, kde-format +msgid "Backslash" +msgstr "kontrakroz" + +#: search/katesearchbar.cpp:1226 +#, kde-format +msgid "Group, non-capturing" +msgstr "grupa, nezahvatna" + +#: search/katesearchbar.cpp:1227 +#, fuzzy, kde-format +#| msgid "Negative lookahead" +msgid "Positive Lookahead" +msgstr "negativni preduvid" + +#: search/katesearchbar.cpp:1228 +#, kde-format +msgid "Negative lookahead" +msgstr "negativni preduvid" + +#: search/katesearchbar.cpp:1232 +#, kde-format +msgid "Fixed-length positive lookbehind" +msgstr "" + +#: search/katesearchbar.cpp:1233 +#, kde-format +msgid "Fixed-length negative lookbehind" +msgstr "" + +#: search/katesearchbar.cpp:1238 +#, kde-format +msgid "Begin lowercase conversion" +msgstr "početak pretvaranja u mala" + +#: search/katesearchbar.cpp:1239 +#, kde-format +msgid "Begin uppercase conversion" +msgstr "početak pretvaranja u velika" + +#: search/katesearchbar.cpp:1240 +#, kde-format +msgid "End case conversion" +msgstr "kraj pretvaranja slova" + +#: search/katesearchbar.cpp:1241 +#, kde-format +msgid "Lowercase first character conversion" +msgstr "pretvaranje prvog slova u malo" + +#: search/katesearchbar.cpp:1242 +#, kde-format +msgid "Uppercase first character conversion" +msgstr "pretvaranje prvog slova u veliko" + +#: search/katesearchbar.cpp:1243 +#, kde-format +msgid "Replacement counter (for Replace All)" +msgstr "brojač zamjena (pri zamjeni svega)" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: search/searchbarincremental.ui:50 +#, kde-format +msgid "F&ind:" +msgstr "&Nađi:" + +#. i18n: ectx: property (toolTip), widget (QComboBox, pattern) +#: search/searchbarincremental.ui:78 search/searchbarpower.ui:295 +#, kde-format +msgid "Text to search for" +msgstr "Tekst koji treba potražiti" + +#. i18n: ectx: property (toolTip), widget (QToolButton, findNext) +#. i18n: ectx: property (toolTip), widget (QToolButton, next) +#: search/searchbarincremental.ui:91 search/searchbarpower.ui:175 +#, kde-format +msgid "Jump to next match" +msgstr "Skoči na sljedeće poklapanje" + +#. i18n: ectx: property (toolTip), widget (QToolButton, findPrev) +#. i18n: ectx: property (toolTip), widget (QToolButton, prev) +#: search/searchbarincremental.ui:101 search/searchbarpower.ui:185 +#, kde-format +msgid "Jump to previous match" +msgstr "Skoči na prethodno poklapanje" + +#. i18n: ectx: property (toolTip), widget (QToolButton, matchCase) +#: search/searchbarincremental.ui:111 search/searchbarpower.ui:136 +#, fuzzy, kde-format +#| msgid "Case sensitive" +msgid "Match case sensitive" +msgstr "Razlikuj veličinu slova" + +#. i18n: ectx: property (toolTip), widget (QToolButton, mutate) +#: search/searchbarincremental.ui:146 +#, kde-format +msgid "Switch to power search and replace bar" +msgstr "Prebaci na traku moćne pretrage i zamjene" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: search/searchbarpower.ui:50 +#, kde-format +msgid "Fin&d:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: search/searchbarpower.ui:63 +#, kde-format +msgid "Rep&lace:" +msgstr "&Zamijeni:" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: search/searchbarpower.ui:76 +#, fuzzy, kde-format +#| msgid "&Mode" +msgid "&Mode:" +msgstr "&Režim" + +#. i18n: ectx: property (toolTip), widget (QComboBox, searchMode) +#: search/searchbarpower.ui:103 +#, kde-format +msgid "Search mode" +msgstr "Režim traženja" + +# >> @item:inlistbox Search mode +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:113 +#, kde-format +msgid "Plain text" +msgstr "običan tekst" + +# >> @item:inlistbox Search mode +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:118 +#, kde-format +msgid "Whole words" +msgstr "cijele riječi" + +# >> @item:inlistbox Search mode +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:123 +#, kde-format +msgid "Escape sequences" +msgstr "izbjegavački nizovi" + +# >> @item:inlistbox Search mode +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:128 +#, kde-format +msgid "Regular expression" +msgstr "regularni izraz" + +#. i18n: ectx: property (toolTip), widget (QToolButton, selectionOnly) +#: search/searchbarpower.ui:149 +#, fuzzy, kde-format +#| msgctxt "short translation please" +#| msgid "Set the text selection color." +msgid "Search in the selection only" +msgstr "Postavi boju izbora teksta." + +#. i18n: ectx: property (toolTip), widget (QPushButton, replaceNext) +#: search/searchbarpower.ui:195 +#, kde-format +msgid "Replace next match" +msgstr "Zamijeni sljedeće poklapanje" + +#. i18n: ectx: property (text), widget (QPushButton, replaceNext) +#. i18n: ectx: property (text), widget (QPushButton, m_replaceBtn) +#: search/searchbarpower.ui:198 spellcheck/spellcheckbar.ui:130 +#, kde-format +msgid "&Replace" +msgstr "&Zamijeni" + +#. i18n: ectx: property (toolTip), widget (QPushButton, replaceAll) +#: search/searchbarpower.ui:224 +#, kde-format +msgid "Replace all matches" +msgstr "Zamijeni sva poklapanja" + +#. i18n: ectx: property (text), widget (QPushButton, replaceAll) +#: search/searchbarpower.ui:227 +#, kde-format +msgid "Replace &All" +msgstr "Zamijeni &sve" + +#. i18n: ectx: property (text), widget (QPushButton, findAll) +#: search/searchbarpower.ui:234 +#, kde-format +msgid "&Find All" +msgstr "Nađi &sve" + +#. i18n: ectx: property (text), widget (QPushButton, cancel) +#: search/searchbarpower.ui:257 +#, kde-format +msgid "Cancel" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QToolButton, mutate) +#: search/searchbarpower.ui:268 +#, kde-format +msgid "Switch to incremental search bar" +msgstr "Prebaci na postepeno pretraživanje" + +#. i18n: ectx: property (toolTip), widget (QComboBox, replacement) +#: search/searchbarpower.ui:314 +#, kde-format +msgid "Text to replace with" +msgstr "Tekst kojim se zamjenjuje" + +#: spellcheck/spellcheckbar.cpp:148 +#, fuzzy, kde-format +#| msgid "Spellcheck Selection..." +msgid "Spell check canceled." +msgstr "Provjeri pravopis izbora..." + +#: spellcheck/spellcheckbar.cpp:245 +#, fuzzy, kde-format +#| msgid "Spellcheck Selection..." +msgctxt "@info:progress" +msgid "Spell checking in progress…" +msgstr "Provjeri pravopis izbora..." + +# >> @title:mijenu +#: spellcheck/spellcheckbar.cpp:246 spellcheck/spellcheckbar.cpp:435 +#, fuzzy, kde-format +#| msgid "Spelling" +msgctxt "@title:window" +msgid "Check Spelling" +msgstr "Pravopis" + +#: spellcheck/spellcheckbar.cpp:432 spellcheck/spellcheckbar.cpp:435 +#, fuzzy, kde-format +#| msgid "Spellcheck Selection..." +msgid "Spell check complete." +msgstr "Provjeri pravopis izbora..." + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel2) +#. i18n: ectx: property (whatsThis), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:30 spellcheck/spellcheckbar.ui:46 +#, kde-format +msgid "" +"

This word was considered to be an \"unknown word\" because it does " +"not match any entry in the dictionary currently in use. It may also be a " +"word in a foreign language.

\n" +"

If the word is not misspelled, you may add it to the dictionary by " +"clicking Add to Dictionary. If you do not want to add the unknown " +"word to the dictionary, but you want to leave it unchanged, click Ignore or Ignore All.

\n" +"

However, if the word is misspelled, you can try to find the correct " +"replacement in the list below. If you cannot find a replacement there, you " +"may type it in the text box below, and click Replace or Replace " +"All.

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, textLabel2) +#: spellcheck/spellcheckbar.ui:33 +#, fuzzy, kde-format +#| msgid "Unknown Property" +msgid "Unknown word:" +msgstr "Nepoznato svojstvo" + +#. i18n: ectx: property (toolTip), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:40 +#, fuzzy, kde-format +#| msgid "Unknown Property" +msgid "Unknown word" +msgstr "Nepoznato svojstvo" + +#. i18n: ectx: property (text), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:49 +#, kde-format +msgid "misspelled" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_addBtn) +#: spellcheck/spellcheckbar.ui:72 +#, kde-format +msgid "" +"\n" +"

The unknown word was detected and considered unknown because it is not " +"included in the dictionary.
\n" +"Click here if you consider the unknown word not to be misspelled, and you " +"want to avoid wrongly detecting it again in the future. If you want to let " +"it remain as is, but not add it to the dictionary, then click Ignore " +"or Ignore All instead.

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, m_addBtn) +#: spellcheck/spellcheckbar.ui:75 +#, fuzzy, kde-format +#| msgid "Add to Dictionary" +msgid "<< Add to Dictionary" +msgstr "Dodaj u rječnik" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel4) +#: spellcheck/spellcheckbar.ui:89 +#, kde-format +msgid "" +"\n" +"

If the unknown word is misspelled, you should type the correction for " +"your misspelled word here or select it from the list below.

\n" +"

You can then click Replace if you want to correct only this " +"occurrence of the word or Replace All if you want to correct all " +"occurrences.

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, textLabel4) +#: spellcheck/spellcheckbar.ui:92 +#, fuzzy, kde-format +#| msgid "replace with %1?" +msgid "Replace with:" +msgstr "zamijeniti s %1?" + +#. i18n: ectx: property (text), widget (QPushButton, m_suggestBtn) +#: spellcheck/spellcheckbar.ui:118 +#, kde-format +msgid "S&uggest" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_replaceBtn) +#: spellcheck/spellcheckbar.ui:127 +#, kde-format +msgid "" +"\n" +"

Click here to replace this occurrence of the unknown text with the text " +"in the edit box above (to the left).

\n" +"
" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_skipBtn) +#: spellcheck/spellcheckbar.ui:140 +#, kde-format +msgid "" +"\n" +"

Click here to let this occurrence of the unknown word remain as is.

\n" +"

This action is useful when the word is a name, an acronym, a foreign word " +"or any other unknown word that you want to use but not add to the dictionary." +"

\n" +"
" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel5) +#. i18n: ectx: property (whatsThis), widget (Sonnet::DictionaryComboBox, m_language) +#: spellcheck/spellcheckbar.ui:156 spellcheck/spellcheckbar.ui:174 +#, kde-format +msgid "" +"\n" +"

Select the language of the document you are proofing here.

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, textLabel5) +#: spellcheck/spellcheckbar.ui:159 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "E Language" +msgid "&Language:" +msgstr "E" + +#. i18n: ectx: property (toolTip), widget (Sonnet::DictionaryComboBox, m_language) +#: spellcheck/spellcheckbar.ui:169 +#, kde-format +msgid "Language Selection" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_autoCorrect) +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_skipAllBtn) +#: spellcheck/spellcheckbar.ui:197 spellcheck/spellcheckbar.ui:222 +#, kde-format +msgid "" +"\n" +"

Click here to let all occurrences of the unknown word remain as they are." +"

\n" +"

This action is useful when the word is a name, an acronym, a foreign word " +"or any other unknown word that you want to use but not add to the dictionary." +"

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, m_autoCorrect) +#: spellcheck/spellcheckbar.ui:200 +#, kde-format +msgid "Autocorrect" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_replaceAllBtn) +#: spellcheck/spellcheckbar.ui:209 +#, kde-format +msgid "" +"\n" +"

Click here to replace all occurrences of the unknown text with the text " +"in the edit box above (to the left).

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, m_replaceAllBtn) +#: spellcheck/spellcheckbar.ui:212 +#, fuzzy, kde-format +#| msgid "Replace &All" +msgid "R&eplace All" +msgstr "Zamijeni &sve" + +#. i18n: ectx: property (text), widget (QPushButton, m_skipAllBtn) +#: spellcheck/spellcheckbar.ui:225 +#, fuzzy, kde-format +#| msgid "Ignore Word" +msgid "I&gnore All" +msgstr "Ignoriši riječ" + +#: spellcheck/spellcheckdialog.cpp:51 +#, fuzzy, kde-format +#| msgid "Spelling (from cursor)..." +msgctxt "@action" +msgid "Spelling (from Cursor)…" +msgstr "Pravopis (od kursora)..." + +#: spellcheck/spellcheckdialog.cpp:54 +#, kde-format +msgid "Check the document's spelling from the cursor and forward" +msgstr "Provjeri pravopis dokumenta od kursora unaprijed" + +#: spellcheck/spellingmenu.cpp:76 +#, kde-format +msgid "Ignore Word" +msgstr "Ignoriši riječ" + +#: spellcheck/spellingmenu.cpp:79 +#, kde-format +msgid "Add to Dictionary" +msgstr "Dodaj u rječnik" + +# >> @title:mijenu +#: spellcheck/spellingmenu.cpp:172 +#, fuzzy, kde-format +#| msgid "Spelling" +msgid "Spelling '%1'" +msgstr "Pravopis" + +#: swapfile/kateswapdiffcreator.cpp:87 +#, fuzzy, kde-format +#| msgid "" +#| "The diff command failed. Please make sure that diff(1) is installed and " +#| "in your PATH." +msgid "" +"The diff command could not be found. Please make sure that diff(1) is " +"installed and in your PATH." +msgstr "" +"Naredba diff nije uspjela. Uvjerite se da je diff instalirana i da se nalazi u putanji." + +#: swapfile/kateswapdiffcreator.cpp:98 +#, kde-format +msgid "The diff command '%1' could not be started." +msgstr "" + +#: swapfile/kateswapfile.cpp:642 +#, kde-format +msgid "The file was not closed properly." +msgstr "Datoteka nije uspješno zatvorena." + +#: swapfile/kateswapfile.cpp:645 +#, kde-format +msgid "View Changes" +msgstr "Vidi promjene" + +#: swapfile/kateswapfile.cpp:646 +#, kde-format +msgid "Recover Data" +msgstr "Obnovi podatke" + +#: swapfile/kateswapfile.cpp:647 +#, kde-format +msgid "Discard" +msgstr "Odbaci" + +#: syntax/katecolortreewidget.cpp:34 syntax/katecolortreewidget.cpp:61 +#, fuzzy, kde-format +#| msgid "Use default color from the KDE color scheme" +msgid "Use default color from the color theme" +msgstr "Koristi zadane boje iz KDE šeme boja" + +#: syntax/katehighlightmenu.cpp:39 +#, fuzzy, kde-format +#| msgctxt "Autoindent mode" +#| msgid "None" +msgid "None" +msgstr "nikakvo" + +#: syntax/katestyletreewidget.cpp:135 +#, kde-format +msgctxt "@title:column Meaning of text in editor" +msgid "Context" +msgstr "kontekst" + +#: syntax/katestyletreewidget.cpp:136 +#, kde-format +msgctxt "@title:column Text style" +msgid "Normal" +msgstr "običan" + +#: syntax/katestyletreewidget.cpp:136 +#, kde-format +msgctxt "@title:column Text style" +msgid "Selected" +msgstr "izabran" + +#: syntax/katestyletreewidget.cpp:136 +#, kde-format +msgctxt "@title:column Text style" +msgid "Background" +msgstr "pozadina" + +#: syntax/katestyletreewidget.cpp:137 +#, kde-format +msgctxt "@title:column Text style" +msgid "Background Selected" +msgstr "pozadina izabranog" + +#: syntax/katestyletreewidget.cpp:139 +#, kde-format +msgid "Use Default Style" +msgstr "Koristi podrazumijevani stil" + +#: syntax/katestyletreewidget.cpp:238 +#, kde-format +msgid "&Bold" +msgstr "Pode&bljan" + +#: syntax/katestyletreewidget.cpp:243 +#, kde-format +msgid "&Italic" +msgstr "Kurz&ivan" + +#: syntax/katestyletreewidget.cpp:248 +#, kde-format +msgid "&Underline" +msgstr "Podv&učen" + +#: syntax/katestyletreewidget.cpp:253 +#, kde-format +msgid "S&trikeout" +msgstr "Pre&crtan" + +#: syntax/katestyletreewidget.cpp:260 +#, fuzzy, kde-format +#| msgid "Normal &Color..." +msgctxt "@action:inmenu" +msgid "Normal &Color…" +msgstr "Boja &običnog..." + +#: syntax/katestyletreewidget.cpp:263 +#, fuzzy, kde-format +#| msgid "&Selected Color..." +msgctxt "@action:inmenu" +msgid "&Selected Color…" +msgstr "Boja &izabranog..." + +#: syntax/katestyletreewidget.cpp:266 +#, fuzzy, kde-format +#| msgid "&Background Color..." +msgctxt "@action:inmenu" +msgid "&Background Color…" +msgstr "Boja &pozadine..." + +#: syntax/katestyletreewidget.cpp:269 +#, fuzzy, kde-format +#| msgid "S&elected Background Color..." +msgctxt "@action:inmenu" +msgid "S&elected Background Color…" +msgstr "Boja po&zadine izabranog..." + +#: syntax/katestyletreewidget.cpp:275 +#, fuzzy, kde-format +msgid "Unset Normal Color" +msgstr "Boja &običnog..." + +#: syntax/katestyletreewidget.cpp:278 +#, fuzzy, kde-format +msgid "Unset Selected Color" +msgstr "Poništi boju pozadine izabranog" + +#: syntax/katestyletreewidget.cpp:284 +#, kde-format +msgid "Unset Background Color" +msgstr "Poništi boju pozadine" + +#: syntax/katestyletreewidget.cpp:289 +#, kde-format +msgid "Unset Selected Background Color" +msgstr "Poništi boju pozadine izabranog" + +#: syntax/katestyletreewidget.cpp:295 +#, kde-format +msgid "Use &Default Style" +msgstr "&Podrazumijevani stil" + +#: syntax/katestyletreewidget.cpp:408 +#, kde-format +msgctxt "No text or background color set" +msgid "None set" +msgstr "Nije zadata" + +#: syntax/katestyletreewidget.cpp:642 +#, kde-format +msgid "" +"\"Use Default Style\" will be automatically unset when you change any style " +"properties." +msgstr "" +"Podrazumijevani stil će biti automatski isključen kad promijenite bilo koje " +"svojstvo." + +#: syntax/katestyletreewidget.cpp:643 +#, kde-format +msgid "Kate Styles" +msgstr "Kateini stilovi" + +#: syntax/katethemeconfig.cpp:47 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Normal" +msgstr "običan" + +#: syntax/katethemeconfig.cpp:49 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Keyword" +msgstr "ključna riječ" + +#: syntax/katethemeconfig.cpp:51 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Function" +msgstr "funkcija" + +#: syntax/katethemeconfig.cpp:53 +#, fuzzy, kde-format +#| msgid "Variable" +msgctxt "@item:intable Text context" +msgid "Variable" +msgstr "Promjenljiva" + +#: syntax/katethemeconfig.cpp:55 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Control Flow" +msgstr "" + +#: syntax/katethemeconfig.cpp:57 +#, fuzzy, kde-format +#| msgid "Separator" +msgctxt "@item:intable Text context" +msgid "Operator" +msgstr "Separator" + +#: syntax/katethemeconfig.cpp:59 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Built-in" +msgstr "" + +#: syntax/katethemeconfig.cpp:61 +#, fuzzy, kde-format +#| msgid "File e&xtensions:" +msgctxt "@item:intable Text context" +msgid "Extension" +msgstr "&Nastavci datoteka:" + +#: syntax/katethemeconfig.cpp:63 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Preprocessor" +msgstr "" + +#: syntax/katethemeconfig.cpp:65 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Attribute" +msgstr "" + +#: syntax/katethemeconfig.cpp:68 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Character" +msgstr "znak" + +#: syntax/katethemeconfig.cpp:70 +#, fuzzy, kde-format +#| msgctxt "@item:intable Text context" +#| msgid "Character" +msgctxt "@item:intable Text context" +msgid "Special Character" +msgstr "znak" + +#: syntax/katethemeconfig.cpp:72 +#, kde-format +msgctxt "@item:intable Text context" +msgid "String" +msgstr "niska" + +#: syntax/katethemeconfig.cpp:74 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Verbatim String" +msgstr "" + +#: syntax/katethemeconfig.cpp:76 +#, fuzzy, kde-format +#| msgid "Filtering" +msgctxt "@item:intable Text context" +msgid "Special String" +msgstr "Filtriranje" + +#: syntax/katethemeconfig.cpp:78 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Imports, Modules, Includes" +msgstr "" + +#: syntax/katethemeconfig.cpp:81 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Data Type" +msgstr "tip podatka" + +#: syntax/katethemeconfig.cpp:83 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Decimal/Value" +msgstr "dekadno/vrijednost" + +#: syntax/katethemeconfig.cpp:85 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Base-N Integer" +msgstr "cjelobrojni osn. n" + +#: syntax/katethemeconfig.cpp:87 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Floating Point" +msgstr "realni" + +#: syntax/katethemeconfig.cpp:89 +#, fuzzy, kde-format +#| msgid "Constant" +msgctxt "@item:intable Text context" +msgid "Constant" +msgstr "Konstantno" + +#: syntax/katethemeconfig.cpp:92 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Comment" +msgstr "komentar" + +#: syntax/katethemeconfig.cpp:94 +#, fuzzy, kde-format +#| msgid "Indentation" +msgctxt "@item:intable Text context" +msgid "Documentation" +msgstr "Uvlačenje" + +#: syntax/katethemeconfig.cpp:96 +#, fuzzy, kde-format +#| msgid "Indentation" +msgctxt "@item:intable Text context" +msgid "Annotation" +msgstr "Uvlačenje" + +#: syntax/katethemeconfig.cpp:98 +#, fuzzy, kde-format +#| msgid "Variable" +msgctxt "@item:intable Text context" +msgid "Comment Variable" +msgstr "Promjenljiva" + +#: syntax/katethemeconfig.cpp:101 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Region Marker" +msgstr "marker oblasti" + +#: syntax/katethemeconfig.cpp:103 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Inform" +msgctxt "@item:intable Text context" +msgid "Information" +msgstr "Inform" + +# >> @item:inlistbox +#: syntax/katethemeconfig.cpp:105 +#, fuzzy, kde-format +#| msgid "Warning" +msgctxt "@item:intable Text context" +msgid "Warning" +msgstr "upozorenje" + +#: syntax/katethemeconfig.cpp:107 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Alert" +msgstr "upozorenje" + +#: syntax/katethemeconfig.cpp:110 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Others" +msgstr "drugi" + +#: syntax/katethemeconfig.cpp:113 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Error" +msgstr "greška" + +# >> @item:inlistbox Identation mode +#: syntax/katethemeconfig.cpp:162 +#, fuzzy, kde-format +#| msgid "Use Default" +msgid "Use Default Colors" +msgstr "podrazumijevani" + +#: syntax/katethemeconfig.cpp:182 +#, kde-format +msgid "Editor Background Colors" +msgstr "Urednik boja pozadine" + +#: syntax/katethemeconfig.cpp:184 +#, kde-format +msgid "Text Area" +msgstr "Područje teksta" + +#: syntax/katethemeconfig.cpp:186 +#, kde-format +msgid "

Sets the background color of the editing area.

" +msgstr "

Postavlja boju pozadine područja za uređivanje.

" + +#: syntax/katethemeconfig.cpp:191 +#, kde-format +msgid "Selected Text" +msgstr "Odabrani tekst" + +#: syntax/katethemeconfig.cpp:194 +#, kde-format +msgid "" +"

Sets the background color of the selection.

To set the text color " +"for selected text, use the "Configure Highlighting" dialog." +"

" +msgstr "" +"

Postavlja boju pozadine odabranog.

Da postavite boju teksta za " +"odabrani tekst,koristite "Podesite naglašavajući" dijalog." + +#: syntax/katethemeconfig.cpp:200 +#, kde-format +msgid "Current Line" +msgstr "Trenutni red" + +#: syntax/katethemeconfig.cpp:202 +#, kde-format +msgid "" +"

Sets the background color of the currently active line, which means the " +"line where your cursor is positioned.

" +msgstr "" +"

Postavlja boju pozadine trenutno aktivnog reda, tj. onog u kojem se " +"nalazi kursor.

" + +#: syntax/katethemeconfig.cpp:207 +#, kde-format +msgid "Search Highlight" +msgstr "Pretraži istaknute" + +#: syntax/katethemeconfig.cpp:209 +#, kde-format +msgid "

Sets the background color of search results.

" +msgstr "

Postavljanje boje pozadine za rezultate pretraživanja.

" + +#: syntax/katethemeconfig.cpp:214 +#, kde-format +msgid "Replace Highlight" +msgstr "Zamijeni istaknute" + +#: syntax/katethemeconfig.cpp:216 +#, kde-format +msgid "

Sets the background color of replaced text.

" +msgstr "

Postavljanje boje pozadine zamijenjenog teksta.

" + +#: syntax/katethemeconfig.cpp:223 +#, kde-format +msgid "Icon Border" +msgstr "Granica Ikone" + +#: syntax/katethemeconfig.cpp:226 +#, kde-format +msgid "Background Area" +msgstr "Područje Pozadine" + +#: syntax/katethemeconfig.cpp:228 +#, kde-format +msgid "

Sets the background color of the icon border.

" +msgstr "

Postavljanje boje pozadine za granicu ikone.

" + +#: syntax/katethemeconfig.cpp:233 view/screenshotdialog.cpp:265 +#, kde-format +msgid "Line Numbers" +msgstr "Brojevi redova" + +#: syntax/katethemeconfig.cpp:235 +#, kde-format +msgid "

This color will be used to draw the line numbers (if enabled).

" +msgstr "" +"

Ova boja se koristi za prikaz brojeva redova (ako su uključeni) .

" + +#: syntax/katethemeconfig.cpp:240 +#, fuzzy, kde-format +#| msgid "Current Line" +msgid "Current Line Number" +msgstr "Trenutni red" + +#: syntax/katethemeconfig.cpp:242 +#, fuzzy, kde-format +#| msgid "" +#| "

This color will be used to draw the line numbers (if enabled).

" +msgid "" +"

This color will be used to draw the number of the current line (if " +"enabled).

" +msgstr "" +"

Ova boja se koristi za prikaz brojeva redova (ako su uključeni) .

" + +#: syntax/katethemeconfig.cpp:247 +#, kde-format +msgid "Separator" +msgstr "Separator" + +#: syntax/katethemeconfig.cpp:249 +#, kde-format +msgid "" +"

This color will be used to draw the line between line numbers and the " +"icon borders, if both are enabled.

" +msgstr "" +"

Ova boja se koristi za crtanje linija između redova i ivica ikona ako su " +"oba omogućena.

" + +#: syntax/katethemeconfig.cpp:254 +#, kde-format +msgid "Word Wrap Marker" +msgstr "Marker prelamanja riječi" + +#: syntax/katethemeconfig.cpp:257 +#, kde-format +msgid "" +"

Sets the color of Word Wrap-related markers:

Static Word Wrap
A vertical line which shows the column where text is going to be " +"wrapped
Dynamic Word Wrap
An arrow shown to the left of " +"visually-wrapped lines
" +msgstr "" +"

Postavlja boju graničnika pri prelamanju teksta.

Statičko " +"prelamanje
Uspravna linija koja prikazuje kolonu gdje će tekst biti " +"prelaman
Dinamičko prelamanje
Simbol prikazan lijevo od " +"prividno prelomljenih redova
" + +#: syntax/katethemeconfig.cpp:264 +#, kde-format +msgid "Code Folding" +msgstr "Sakrivanje koda" + +#: syntax/katethemeconfig.cpp:266 +#, kde-format +msgid "

Sets the color of the code folding bar.

" +msgstr "

Postavljanje boje za koda za sklopivu traku.

" + +#: syntax/katethemeconfig.cpp:271 +#, kde-format +msgid "Modified Lines" +msgstr "Promijenjeni redovi" + +#: syntax/katethemeconfig.cpp:273 +#, kde-format +msgid "" +"

Sets the color of the line modification marker for modified lines.

" +msgstr "" +"

Postavljanje boje oznake izmijenjenog reda za izmijenjene redove.

" + +#: syntax/katethemeconfig.cpp:278 +#, kde-format +msgid "Saved Lines" +msgstr "Sačuvani redovi" + +#: syntax/katethemeconfig.cpp:280 +#, kde-format +msgid "

Sets the color of the line modification marker for saved lines.

" +msgstr "

Postavljanje boje oznake izmijenjenog reda za sačuvane redove.

" + +#: syntax/katethemeconfig.cpp:287 +#, kde-format +msgid "Text Decorations" +msgstr "Dekoracije Teksta" + +#: syntax/katethemeconfig.cpp:290 +#, kde-format +msgid "Spelling Mistake Line" +msgstr "Red za pravopisne greške" + +#: syntax/katethemeconfig.cpp:292 +#, kde-format +msgid "" +"

Sets the color of the line that is used to indicate spelling mistakes.

" +msgstr "

Postavlja boju reda za ukazivanje na pravopisne greške.

" + +#: syntax/katethemeconfig.cpp:297 +#, kde-format +msgid "Tab and Space Markers" +msgstr "Oznake kartice i prostora" + +#: syntax/katethemeconfig.cpp:299 +#, kde-format +msgid "

Sets the color of the tabulator marks.

" +msgstr "

Postavlja boju za tragove tabulatora.

" + +#: syntax/katethemeconfig.cpp:304 +#, kde-format +msgid "Indentation Line" +msgstr "Uvlačenje reda" + +#: syntax/katethemeconfig.cpp:306 +#, kde-format +msgid "

Sets the color of the vertical indentation lines.

" +msgstr "

Postavljanje boje vertikalnog uvlačenja redova

" + +#: syntax/katethemeconfig.cpp:311 +#, kde-format +msgid "Bracket Highlight" +msgstr "Držač istaknutih" + +#: syntax/katethemeconfig.cpp:314 +#, kde-format +msgid "" +"

Sets the bracket matching color. This means, if you place the cursor e.g. " +"at a (, the matching ) will be highlighted with this color.

" +msgstr "" +"

Postavlja boju za uparivanje zagrada: kada postavite kursor npr. na (, odgovarajuća ) će biti istaknuta ovom bojom.

" + +#: syntax/katethemeconfig.cpp:322 +#, kde-format +msgid "Marker Colors" +msgstr "Oznake boja" + +# >> @item:inlistbox +#: syntax/katethemeconfig.cpp:324 view/kateviewhelpers.cpp:1536 +#, kde-format +msgid "Bookmark" +msgstr "obilježivač" + +# >> @item:inlistbox +#: syntax/katethemeconfig.cpp:325 +#, kde-format +msgid "Active Breakpoint" +msgstr "aktivna prijelomna tačka" + +# >> @item:inlistbox +#: syntax/katethemeconfig.cpp:326 +#, kde-format +msgid "Reached Breakpoint" +msgstr "dosegnuta prijelomna tačka" + +# >> @item:inlistbox +#: syntax/katethemeconfig.cpp:327 +#, kde-format +msgid "Disabled Breakpoint" +msgstr "isključena prijelomna tačka" + +# >> @item:inlistbox +#: syntax/katethemeconfig.cpp:328 +#, kde-format +msgid "Execution" +msgstr "izvršavanje" + +# >> @item:inlistbox +#: syntax/katethemeconfig.cpp:329 +#, kde-format +msgid "Warning" +msgstr "upozorenje" + +# >> @item:inlistbox +#: syntax/katethemeconfig.cpp:330 +#, kde-format +msgid "Error" +msgstr "greška" + +#: syntax/katethemeconfig.cpp:332 +#, kde-format +msgid "" +"

Sets the background color of mark type.

Note: The marker " +"color is displayed lightly because of transparency.

" +msgstr "" +"

Postavljanje boje pozadine tipa oznake.

Napomena:Boja oznake " +"je prikazana svijetla zbog providnosti.

" + +#: syntax/katethemeconfig.cpp:344 +#, kde-format +msgid "Text Templates & Snippets" +msgstr "Tekstualni predlošci i isječci" + +#: syntax/katethemeconfig.cpp:349 +#, kde-format +msgid "Background" +msgstr "pozadina" + +#: syntax/katethemeconfig.cpp:355 +#, kde-format +msgid "Editable Placeholder" +msgstr "Rezervisano mjesto koje se može uređivati" + +#: syntax/katethemeconfig.cpp:361 +#, kde-format +msgid "Focused Editable Placeholder" +msgstr "Usredotočen na rezervisana mjesta koja se mogu uređivati" + +#: syntax/katethemeconfig.cpp:367 +#, kde-format +msgid "Not Editable Placeholder" +msgstr "Rezervisano mjesto koje se ne može uređivati" + +#: syntax/katethemeconfig.cpp:501 +#, fuzzy, kde-format +#| msgid "" +#| "

This list displays the default styles for the current schema and " +#| "offers the means to edit them. The style name reflects the current style " +#| "settings.

To edit the colors, click the colored squares, or select " +#| "the color to edit from the popup menu.

You can unset the Background " +#| "and Selected Background colors from the popup menu when appropriate.

" +msgid "" +"

This list displays the default styles for the current color theme and " +"offers the means to edit them. The style name reflects the current style " +"settings.

To edit the colors, click the colored squares, or select the " +"color to edit from the popup menu.

You can unset the Background and " +"Selected Background colors from the popup menu when appropriate.

" +msgstr "" +"

Ovo je spisak podrazumijevanih stilova za tekuću šemu, i pruža načine za " +"njihovo uređivanje. Ime stila odražava trenutne postavke stila.

Za " +"uređivanje boje, kliknite na obojeni pravougaonik, ili izaberite neku boju " +"iz iskačućeg menija.

Boje pozadine i pozadine izabranog možete " +"poništiti u iskačućem meniju kada je to potrebno.

" + +#: syntax/katethemeconfig.cpp:568 +#, fuzzy, kde-format +#| msgid "Normal Text" +msgctxt "@item:intable" +msgid "Normal Text & Source Code" +msgstr "Običan tekst" + +#: syntax/katethemeconfig.cpp:575 +#, kde-format +msgctxt "@item:intable" +msgid "Numbers, Types & Constants" +msgstr "" + +#: syntax/katethemeconfig.cpp:582 +#, fuzzy, kde-format +#| msgid "Set of characters" +msgctxt "@item:intable" +msgid "Strings & Characters" +msgstr "skup znakova" + +# >> @title:window +#: syntax/katethemeconfig.cpp:589 +#, fuzzy, kde-format +#| msgid "Close Document" +msgctxt "@item:intable" +msgid "Comments & Documentation" +msgstr "Zatvaranje dokumenta" + +#: syntax/katethemeconfig.cpp:596 +#, kde-format +msgctxt "@item:intable" +msgid "Miscellaneous" +msgstr "" + +#: syntax/katethemeconfig.cpp:704 +#, kde-format +msgid "H&ighlight:" +msgstr "&Isticanje:" + +#: syntax/katethemeconfig.cpp:746 +#, kde-format +msgid "" +"

This list displays the contexts of the current syntax highlight mode and " +"offers the means to edit them. The context name reflects the current style " +"settings.

To edit using the keyboard, press <SPACE> and choose a property from the popup menu.

To edit the colors, " +"click the colored squares, or select the color to edit from the popup menu.

You can unset the Background and Selected Background colors from the " +"context menu when appropriate.

" +msgstr "" +"

Ovo je spisak kontekstâ trenutnog isticanja sintakse, i pruža " +"načine za njihovo uređivanje. Ime konteksta odražava trenutne postavke stila." +"

Za uređivanje tastaturom, pritisnite Space i " +"izaberite svojstvo iz iskačućeg menija.

Za uređivanje boje, kliknite " +"na obojeni pravougaonik, ili izaberite neku boju iz iskačućeg menija.

Boje pozadine i pozadine izabranog možete poništiti u iskačućem meniju " +"kada je to potrebno.

" + +#: syntax/katethemeconfig.cpp:1027 +#, fuzzy, kde-format +#| msgid "Default Text Styles" +msgid "Default Theme" +msgstr "Zadani stilovi teksta" + +#: syntax/katethemeconfig.cpp:1028 +#, kde-format +msgid "Theme Editor" +msgstr "" + +#: syntax/katethemeconfig.cpp:1046 +#, fuzzy, kde-format +#| msgctxt "@title:column Text style" +#| msgid "Selected" +msgid "Select theme:" +msgstr "izabran" + +#: syntax/katethemeconfig.cpp:1119 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Scheme" +msgid "&Theme:" +msgstr "Scheme" + +#: syntax/katethemeconfig.cpp:1128 +#, fuzzy, kde-format +#| msgid "Save &Copy As..." +msgctxt "@action:button" +msgid "&Copy…" +msgstr "Snimi &kopiju kao..." + +#: syntax/katethemeconfig.cpp:1136 +#, fuzzy, kde-format +#| msgid "Export..." +msgctxt "@action:button" +msgid "Export…" +msgstr "Izvezi..." + +#: syntax/katethemeconfig.cpp:1140 +#, fuzzy, kde-format +#| msgid "Import..." +msgctxt "@action:button" +msgid "Import…" +msgstr "Uvezi..." + +#: syntax/katethemeconfig.cpp:1147 +#, kde-format +msgid "Bundled read-only theme. To modify the theme, please copy it." +msgstr "" + +#: syntax/katethemeconfig.cpp:1160 +#, kde-format +msgid "Colors" +msgstr "Boje" + +#: syntax/katethemeconfig.cpp:1164 +#, kde-format +msgid "Default Text Styles" +msgstr "Zadani stilovi teksta" + +#: syntax/katethemeconfig.cpp:1168 +#, kde-format +msgid "Highlighting Text Styles" +msgstr "Stilovi isticanja teksta" + +#: syntax/katethemeconfig.cpp:1180 +#, fuzzy, kde-format +#| msgid "Exporting color schema: %1" +msgid "Exporting color theme: %1" +msgstr "Izlistavanje šeme boja: %1" + +#: syntax/katethemeconfig.cpp:1182 syntax/katethemeconfig.cpp:1203 +#, fuzzy, kde-format +#| msgid "Use KDE Color Scheme" +msgid "Color theme" +msgstr "Koristi KDE šemu boja" + +#: syntax/katethemeconfig.cpp:1203 +#, fuzzy, kde-format +#| msgid "Importing Color Schema" +msgid "Importing Color Theme" +msgstr "Učitavanje šeme boja" + +#: syntax/katethemeconfig.cpp:1217 +#, kde-format +msgid "" +"Importing will overwrite the existing theme file \"%1\". This can not be " +"undone." +msgstr "" + +#: syntax/katethemeconfig.cpp:1219 +#, fuzzy, kde-format +#| msgid "Close Nevertheless" +msgid "Import Nevertheless" +msgstr "Ipak zatvori" + +#: syntax/katethemeconfig.cpp:1308 +#, fuzzy, kde-format +#| msgid "Font & Color Schemas" +msgid "Follow System Color Scheme" +msgstr "Fontovi i šeme boja" + +#: syntax/katethemeconfig.cpp:1375 +#, kde-format +msgid "Do you really want to delete the theme \"%1\"? This can not be undone." +msgstr "" + +#: syntax/katethemeconfig.cpp:1377 +#, fuzzy, kde-format +#| msgid "Close Nevertheless" +msgid "Delete Nevertheless" +msgstr "Ipak zatvori" + +#: syntax/katethemeconfig.cpp:1419 +#, fuzzy, kde-format +#| msgid "Use KDE Color Scheme" +msgid "Copy theme" +msgstr "Koristi KDE šemu boja" + +#: syntax/katethemeconfig.cpp:1420 +#, kde-format +msgid "Name for copy of color theme \"%1\":" +msgstr "" + +#: syntax/katethemeconfig.cpp:1432 +#, fuzzy, kde-format +#| msgid "" +#| "

The schema %1 already exists.

Please choose a different schema " +#| "name.

" +msgid "" +"

The theme \"%1\" already exists.

Please choose a different theme " +"name.

" +msgstr "" +"

Šema %1 već postoji, ili je upravo izbrisana.

Molimo da izaberete " +"drugo ime šeme.

" + +#: syntax/katethemeconfig.cpp:1433 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "Copy Theme" +msgstr "Boje" + +#: syntax/katethemeconfig.cpp:1486 syntax/katethemeconfig.cpp:1491 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "Color Themes" +msgstr "Boje" + +#: utils/kateautoindent.cpp:88 +#, kde-format +msgctxt "Autoindent mode" +msgid "None" +msgstr "nikakvo" + +#: utils/kateautoindent.cpp:92 +#, kde-format +msgctxt "Autoindent mode" +msgid "Normal" +msgstr "obično" + +#: utils/katebookmarks.cpp:49 +#, fuzzy, kde-format +#| msgid "Set &Bookmark" +msgid "Toggle &Bookmark" +msgstr "Postavi &obilježivač" + +#: utils/katebookmarks.cpp:53 +#, kde-format +msgid "If a line has no bookmark then add one, otherwise remove it." +msgstr "Ako red nema obilježivač onda dodajte jedan, inače ga uklonite." + +#: utils/katebookmarks.cpp:56 +#, kde-format +msgid "Clear &All Bookmarks" +msgstr "Ukloni &sve obilježivače" + +#: utils/katebookmarks.cpp:59 +#, kde-format +msgid "Remove all bookmarks of the current document." +msgstr "Ukloni sve obilježivače iz tekućeg dokumenta." + +#: utils/katebookmarks.cpp:62 utils/katebookmarks.cpp:219 +#, kde-format +msgid "Next Bookmark" +msgstr "Sljedeći obilježivač" + +#: utils/katebookmarks.cpp:66 +#, kde-format +msgid "Go to the next bookmark." +msgstr "Idi na sljedeći obilježivač." + +#: utils/katebookmarks.cpp:69 utils/katebookmarks.cpp:220 +#, kde-format +msgid "Previous Bookmark" +msgstr "Prethodni obilježivač" + +#: utils/katebookmarks.cpp:73 +#, kde-format +msgid "Go to the previous bookmark." +msgstr "Idi na prethodni obilježivač." + +#: utils/katebookmarks.cpp:76 +#, kde-format +msgid "&Bookmarks" +msgstr "&Obilježivači" + +#: utils/katebookmarks.cpp:192 +#, kde-format +msgid "&Next: %1 - \"%2\"" +msgstr "&Sljedeći: %1 — „%2“" + +#: utils/katebookmarks.cpp:198 +#, kde-format +msgid "&Previous: %1 - \"%2\"" +msgstr "&Prethodni: %1 - „%2“" + +#: utils/katecmds.cpp:53 +#, kde-format +msgid "

indent

Indents the selected lines or the current line

" +msgstr "

indent

Uvlači odabrane linije ili trenutnu liniju

" + +#: utils/katecmds.cpp:58 +#, kde-format +msgid "

unindent

Unindents the selected lines or current line.

" +msgstr "

unindent

Pomijera lijevo odabrane ili trenutnu liniju.

" + +#: utils/katecmds.cpp:63 +#, kde-format +msgid "" +"

cleanindent

Cleans up the indentation of the selected lines or " +"current line according to the indentation settings in the document.

" +msgstr "" +"

cleanindent

Čisti uvlačenje izabranih linija ili trenutne linije " +"po postavkama uvlačenja u dokumentu.

" + +#: utils/katecmds.cpp:68 +#, kde-format +msgid "" +"

comment

Inserts comment markers to make the selection or selected " +"lines or current line a comment according to the text format as defined by " +"the syntax highlight definition for the document.

" +msgstr "" +"

comment

Ubacuje oznake komentara da napravi izbor ili izabrane " +"linije ili trenutnu liniju komentarom prema tekst formatu kako je definisano " +"definicijom sintaksnog označavanja za dokument.

" + +#: utils/katecmds.cpp:74 +#, kde-format +msgid "" +"

uncomment

Removes comment markers from the selection or selected " +"lines or current line according to the text format as defined by the syntax " +"highlight definition for the document.

" +msgstr "" +"

uncomment

Uklanja oznake komentara iz izbora ili izabrane linije " +"ili trenutne linije prema tekst formatu kako je definisano definicijom " +"sintaksnog označavanja za dokument.

" + +#: utils/katecmds.cpp:80 +#, kde-format +msgid "" +"

goto line number

This command navigates to the specified " +"line number.

" +msgstr "" +"

goto broj linije

Ova komanda pomijera na navedeni broj " +"linije.

" + +#: utils/katecmds.cpp:85 +#, kde-format +msgid "" +"

set-indent-pasted-text enable

If enabled, indentation of " +"text pasted from the clipboard is adjusted using the current indenter.

Possible true values: 1 on true
possible false values: 0 off false" +msgstr "" +"

set-indent-pasted-text omogućenje

Ako je omogućeno, " +"uvlačenje umetnutog teksta se prilagođava trenutnom uvlačenju.

Moguće " +"vrijednosti za omogućenje: 1 on true
moguće vrijednosti za onemogućenje: " +"0 off false

" + +#: utils/katecmds.cpp:91 +#, kde-format +msgid "Deletes the current line." +msgstr "Briše tekuću liniju." + +#: utils/katecmds.cpp:95 +#, kde-format +msgid "" +"

set-tab-width width

Sets the tab width to the number " +"width

" +msgstr "" +"

set-tab-width širina

Postavlja širinu tabulatora na " +"širina

" + +#: utils/katecmds.cpp:100 +#, kde-format +msgid "" +"

set-replace-tab enable

If enabled, tabs are replaced with " +"spaces as you type.

Possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" +"

set-replace-tab omogućenje

Ako je omogućeno, tabulatori se " +"zamjenjuju razmacima dok kucate.

Moguće vrijednosti za omogućeno: 1 on " +"true
moguće vrijednosti za onemogućeno: 0 off false

" + +#: utils/katecmds.cpp:107 +#, kde-format +msgid "" +"

set-show-tabs enable

If enabled, TAB characters and trailing " +"whitespace will be visualized by a small dot.

Possible true values: 1 " +"on true
possible false values: 0 off false

" +msgstr "" +"

set-show-tabs omogućenje

Ako je omogućeno, TAB znakovi i " +"prateći razmaci će biti prikazani malom tačkom.

Moguće vrijednosti za " +"omogućenje: 1 on true
moguće vrijednosti za onemogućenje: 0 off false

" + +#: utils/katecmds.cpp:114 +#, kde-format +msgid "" +"

set-remove-trailing-spaces mode

Removes the trailing spaces " +"in the document depending on the mode.

Possible values:" +"

  • none: never remove trailing spaces.
  • modified: " +"remove trailing spaces only of modified lines.
  • all: remove " +"trailing spaces in the entire document.

" +msgstr "" +"

set-remove-trailing-spaces režim

Uklanja prateće razmake u " +"dokumentu zavisno od toga koji je režim.

Moguće vrijednosti:" +"

  • none: nikad ne uklanjaj prateće razmake.
  • modified: ukloni prateće razmake samo za izmijenjene linije.
  • all: " +"ukloni prateće razmake u cijelom dokumentu.

" + +#: utils/katecmds.cpp:125 +#, kde-format +msgid "" +"

set-indent-width width

Sets the indentation width to the " +"number width. Used only if you are indenting with spaces.

" +msgstr "" +"

set-indent-width širina

Postavlja širinu uvlačenja na broj " +"kojim je predstavljena širina. Samo kod uvlačenja razmacima.

" + +#: utils/katecmds.cpp:130 +#, kde-format +msgid "" +"

set-indent-mode mode

The mode parameter is a value as seen " +"in the Tools - Indentation menu

" +msgstr "" +"

set-indent-mode režim

Parametar režim je vrijednost navedena " +"u meniju Alati -> Uvlačenje

" + +#: utils/katecmds.cpp:135 +#, kde-format +msgid "" +"

set-auto-indent enable

Enable or disable autoindentation.

possible true values: 1 on true
possible false values: 0 off false" +msgstr "" +"

set-auto-indent omogućenje

Omogući ili onemogući uvlačenje.

Moguće vrijednosti za omogućenje: 1 on true
moguće vrijednosti za " +"onemogućenje: 0 off false

" + +#: utils/katecmds.cpp:142 +#, kde-format +msgid "" +"

set-line-numbers enable

Sets the visibility of the line " +"numbers pane.

possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" +"

set-line-numbers omogućenje

Postavlja vidljivost ploče s " +"brojevima.

Moguće vrijednosti za omogućenje: 1 on true
moguće " +"vrijednosti za onemogućenje: 0 off false

" + +#: utils/katecmds.cpp:149 +#, kde-format +msgid "" +"

set-folding-markers enable

Sets the visibility of the " +"folding markers pane.

possible true values: 1 on true
possible " +"false values: 0 off false

" +msgstr "" +"

set-folding-markers omogućenje

Postavlja vidljivost ploče s " +"markerima za razmotavanje.

Moguće vrijednosti za omogućenje: 1 on " +"true
moguće vrijednosti za onemogućenje: 0 off false

" + +#: utils/katecmds.cpp:156 +#, kde-format +msgid "" +"

set-icon-border enable

Sets the visibility of the icon " +"border.

possible true values: 1 on true
possible false values: 0 " +"off false

" +msgstr "" +"

set-icon-border omogućenje

Postavlja vidljivost ivice ikona." +"

Moguće vrijednosti za omogućenje: 1 on true
moguće vrijednosti za " +"onemogućenje: 0 off false

" + +#: utils/katecmds.cpp:163 +#, kde-format +msgid "" +"

set-word-wrap enable

Enables dynamic word wrap according to " +"enable

possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" +"

set-word-wrap omogućenje

Omogući ili onemogući dinamičko " +"prelamanje riječi.

Moguće vrijednosti za omogućenje: 1 on true
moguće vrijednosti za onemogućenje: 0 off false

" + +#: utils/katecmds.cpp:170 +#, kde-format +msgid "" +"

set-word-wrap-column width

Sets the line width for hard " +"wrapping to width. This is used if you are having your text wrapped " +"automatically.

" +msgstr "" +"

set-word-wrap-column širina

Postavlja širinu linije za " +"prelamanje na širina. To se koristi ako želite da se tekst prelama " +"automatski.

" + +#: utils/katecmds.cpp:175 +#, kde-format +msgid "" +"

set-replace-tabs-save enable

When enabled, tabs will be " +"replaced with whitespace whenever the document is saved.

possible " +"true values: 1 on true
possible false values: 0 off false

" +msgstr "" +"

set-replace-tabs-save omogućenje

Kada je omogućeno, " +"tabulatori će biti zamijenjeni razmacima kada god je to moguće.

Moguće vrijednosti za omogućenje: 1 on true
moguće vrijednosti za " +"onemogućenje: 0 off false

" + +#: utils/katecmds.cpp:182 +#, kde-format +msgid "" +"

set-highlight highlight

Sets the syntax highlighting system " +"for the document. The argument must be a valid highlight name, as seen in " +"the Tools → Highlighting menu. This command provides an autocompletion list " +"for its argument.

" +msgstr "" +"

set-highlight označavanje

Postavlja sistem označavanja " +"sintakse za dokument. Argument mora biti važeće ime označavanja, kao u " +"meniju Alati -> Označavanje. Ova komanda pruža listu autokompletiranja za " +"svoj argument.

" + +#: utils/katecmds.cpp:188 +#, kde-format +msgid "

set-mode mode

Sets the mode as seen in Tools - Mode

" +msgstr "

set-mode režim

Postavlja režim kao u Alati - Režim

" + +#: utils/katecmds.cpp:193 +#, kde-format +msgid "" +"

set-show-indent enable

If enabled, indentation will be " +"visualized by a vertical dotted line.

possible true values: 1 on " +"true
possible false values: 0 off false

" +msgstr "" +"

set-show-indent omogućenje

Ako je omogućeno, uvlačenje " +"ćebiti predstavljeno vertikalnom tačkastom linijom.

Moguće vrijednosti " +"za omogućenje: 1 on true
moguće vrijednosti za onemogućenje: 0 off " +"false

" + +#: utils/katecmds.cpp:199 +#, kde-format +msgid "

Open the Print dialog to print the current document.

" +msgstr "

Otvori dijalog štampe za prikaz trenutnog dokumenta.

" + +#: utils/katecmds.cpp:314 utils/katecmds.cpp:341 +#, kde-format +msgid "Missing argument. Usage: %1 " +msgstr "Nedostaje argument. Upotreba: %1 <vrednost>" + +#: utils/katecmds.cpp:327 +#, kde-format +msgid "No such highlighting '%1'" +msgstr "Isticanje „%1“ ne postoji" + +#: utils/katecmds.cpp:333 +#, kde-format +msgid "No such mode '%1'" +msgstr "Režim „%1“ ne postoji" + +#: utils/katecmds.cpp:346 +#, kde-format +msgid "Failed to convert argument '%1' to integer." +msgstr "Ne mogu da pretvorim argument %1 u cjelobrojni." + +#: utils/katecmds.cpp:350 utils/katecmds.cpp:355 +#, kde-format +msgid "Width must be at least 1." +msgstr "Širina mora biti bar 1." + +#: utils/katecmds.cpp:360 +#, kde-format +msgid "Column must be at least 1." +msgstr "Kolona mora biti bar 1." + +#: utils/katecmds.cpp:390 +#, kde-format +msgid "Usage: %1 on|off|1|0|true|false" +msgstr "Upotreba: %1 on|off|1|0|true|false" + +#: utils/katecmds.cpp:417 +#, kde-format +msgid "Bad argument '%1'. Usage: %2 on|off|1|0|true|false" +msgstr "Loš argument „%1“. Upotreba: %2 on|off|1|0|true|false" + +#: utils/katecmds.cpp:421 +#, kde-format +msgid "" +"Usage: set-remove-trailing-spaces 0|-|none or 1|+|mod|modified or 2|*|all" +msgstr "" +"Upotreba: set-remove-trailing-spaces 0|-|none or 1|+|mod|modified or 2|*|all" + +#: utils/katecmds.cpp:435 vimode/cmds.cpp:168 +#, kde-format +msgid "Unknown command '%1'" +msgstr "Nepoznata naredba „%1“" + +#: utils/katecmds.cpp:493 +#, kde-format +msgid "" +"

char identifier

This command allows you to insert literal " +"characters by their numerical identifier, in decimal, octal or hexadecimal " +"form.

Examples:

  • char 234
  • char 0x1234

" +msgstr "" +"

char identifikator

Ova komanda vam omogućuje da unesete " +"literal znakove njihovim numeričkim identifikatorom u decimalnoj, oktalnoj " +"ili heksadekadnoj formi.

Primjeri:

  • char 234
  • char " +"0x1234

" + +#: utils/katecmds.cpp:560 +#, kde-format +msgid "" +"

date or date format

Inserts a date/time string as defined by " +"the specified format, or the format yyyy-MM-dd hh:mm:ss if none is specified." +"

Possible format specifiers are:
dThe day as " +"number without a leading zero (1-31).
ddThe day as " +"number with a leading zero (01-31).
dddThe " +"abbreviated localized day name (e.g. 'Mon'..'Sun').
ddddThe long localized day name (e.g. 'Monday'..'Sunday').
MThe month as number without a leading zero (1-12).
MMThe month as number with a leading zero (01-12).
MMMThe abbreviated localized month name (e.g. " +"'Jan'..'Dec').
yyThe year as two digit number " +"(00-99).
yyyyThe year as four digit number " +"(1752-8000).
hThe hour without a leading zero " +"(0..23 or 1..12 if AM/PM display).
hhThe hour with " +"a leading zero (00..23 or 01..12 if AM/PM display).
mThe minute without a leading zero (0..59).
mmThe minute with a leading zero (00..59).
sThe second without a leading zero (0..59).
ssThe second with a leading zero (00..59).
zThe milliseconds without leading zeroes (0..999).
zzzThe milliseconds with leading zeroes (000..999).
APUse AM/PM display. AP will be replaced by either " +"\"AM\" or \"PM\".
apUse am/pm display. ap will be " +"replaced by either \"am\" or \"pm\".

" +msgstr "" +"

date ili date format

Unosi datumski/vremenski niz definisano " +"navedenim formatom, ili formatom yyyy-MM-dd hh:mm:ss ako ništa nije navedeno." +"

Mogući specifikatori formata su:
dDan kao broj " +"bez vodeće nule (1-31).
ddDan kao broj sa vodećom " +"nulom (01-31).
dddSkraćeno lokalizovano ime dana " +"(npr. 'Pon'..'Ned').
ddddDugo lokalizovano ime " +"dana (npr. 'Ponedjeljak'..'Nedjelja').
MMjesec kao " +"broj bez vodeće nule (1-12).
MMMjesec kao broj sa " +"vodećom nulom (01-12).
MMMSkraćeno lokalizovano " +"ime mjeseca (npr. 'Jan'..'Dec').
yyGodina kao " +"dvocifreni broj (00-99).
yyyyGodina kao " +"četvorocifreni broj (1752-8000).
hSat bez vodeće " +"nule (0..23 ili 1..12 ako se AM/PM prikazuje).
hhSat sa vodećom nulom (00..23 ili 01..12 ako se AM/PM prikazuje).
mMinuta bez vodeće nule (0..59).
mmMinuta sa vodećom nulom (00..59).
sSekunda bez vodeće nule (0..59).
ssSekunda " +"sa vodećom nulom (00..59).
zMilisekunde bez " +"vodećih nula (0..999).
zzzMilisekunde sa vodećim " +"nulama (000..999).
APKoristi AM/PM prikaz. AP se " +"može zamijeniti sa \"AM\" ili \"PM\".
apKoristi am/" +"pm prikaz. ap se može zamijeniti sa \"am\" ili \"pm\".

" + +#: utils/katecmds.cpp:621 +#, fuzzy, kde-format +#| msgid "Duplicate Selected Lines Up" +msgid "Remove Duplicate Lines" +msgstr "Udvostruči izabrane redove gore" + +#: utils/katecmds.cpp:622 +#, fuzzy, kde-format +#| msgid "Remove duplicate lines from the selected text or whole document." +msgid "Remove Duplicates and Sort Text Alphabetically" +msgstr "Uklanja duplirane redove iz izabranog teksta ili cijelog dokumenta." + +#: utils/katecmds.cpp:623 +#, fuzzy, kde-format +#| msgid "Sort Selected Text" +msgid "Sort Text Naturally" +msgstr "Sortiraj izabrani tekst" + +#: utils/katecmds.cpp:624 +#, fuzzy, kde-format +#| msgid "Sort Selected Text" +msgid "Sort Selected Text Alphabetically" +msgstr "Sortiraj izabrani tekst" + +#: utils/katecmds.cpp:699 +#, fuzzy, kde-format +#| msgid "Sort the selected text or whole document." +msgid "" +"

sort

Sort the selected text or whole document if there is no " +"selection

" +msgstr "Sortira izabrani tekst ili cijeli dokument." + +#: utils/katecmds.cpp:703 +#, fuzzy, kde-format +#| msgid "Remove duplicate lines from the selected text or whole document." +msgid "" +"

uniq

Remove duplicate lines from the selected text or whole " +"document if there is no selection.

" +msgstr "Uklanja duplirane redove iz izabranog teksta ili cijelog dokumenta." + +#: utils/katecmds.cpp:707 +#, kde-format +msgid "" +"

sortuniq

Sort the selected text or whole document and then remove " +"all duplicate lines.

" +msgstr "" + +#: utils/katecmds.cpp:711 +#, fuzzy, kde-format +#| msgid "" +#| "Sort the selected text or whole document in natural order.
Here is an " +#| "example to show the difference to the normal sort method:
sort(a10, " +#| "a1, a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" +msgid "" +"

natsort

Sort the selected text or whole document in natural order." +"
Here is an example to show the difference to the normal sort method:" +"
sort(a10, a1, a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" +msgstr "" +"Ređa izabrani tekst ili cijeli dokument prirodnim redoslijedom.
Evo " +"primjera koji pokazuje razliku u odnosu na uobičajeni metod:
sort(a10, a1, a2) → a1, a10, a2
natsort(a10, a1, " +"a2) → a1, a2, a10" + +#: utils/kateglobal.cpp:60 +#, kde-format +msgid "Kate Part" +msgstr "Kate dio" + +#: utils/kateglobal.cpp:62 +#, kde-format +msgid "Embeddable editor component" +msgstr "Ugnjezdiva uređivačka komponenta" + +#: utils/kateglobal.cpp:64 +#, fuzzy, kde-format +#| msgid "(c) 2000-2014 The Kate Authors" +msgid "(c) 2000-2025 The Kate Authors" +msgstr "© 2000-2014, autori Kate" + +#: utils/kateglobal.cpp:84 +#, kde-format +msgid "Christoph Cullmann" +msgstr "Kristof Kulman" + +#: utils/kateglobal.cpp:84 +#, kde-format +msgid "Maintainer" +msgstr "održavalac" + +#: utils/kateglobal.cpp:85 +#, kde-format +msgid "Dominik Haumann" +msgstr "Dominik Hauman" + +#: utils/kateglobal.cpp:85 utils/kateglobal.cpp:86 utils/kateglobal.cpp:87 +#: utils/kateglobal.cpp:90 utils/kateglobal.cpp:93 utils/kateglobal.cpp:98 +#, kde-format +msgid "Core Developer" +msgstr "programer jezgra" + +#: utils/kateglobal.cpp:86 +#, kde-format +msgid "Milian Wolff" +msgstr "Milian Wolff" + +#: utils/kateglobal.cpp:87 +#, kde-format +msgid "Joseph Wenninger" +msgstr "Jozef Veninger" + +#: utils/kateglobal.cpp:88 +#, kde-format +msgid "Erlend Hamberg" +msgstr "Erlend Hamberg" + +#: utils/kateglobal.cpp:89 +#, kde-format +msgid "Bernhard Beschow" +msgstr "Bernhard Bešov" + +#: utils/kateglobal.cpp:89 utils/kateglobal.cpp:105 +#, kde-format +msgid "Developer" +msgstr "programer" + +#: utils/kateglobal.cpp:90 +#, kde-format +msgid "Anders Lund" +msgstr "Anders Lund" + +#: utils/kateglobal.cpp:91 +#, kde-format +msgid "Michel Ludwig" +msgstr "Mihel Ludvig" + +#: utils/kateglobal.cpp:91 +#, kde-format +msgid "On-the-fly spell checking" +msgstr "provjera pravopisa u letu" + +#: utils/kateglobal.cpp:92 +#, kde-format +msgid "Pascal Létourneau" +msgstr "Pascal Létourneau" + +#: utils/kateglobal.cpp:92 +#, kde-format +msgid "Large scale bug fixing" +msgstr "Masivno otklanjanje grešaka" + +#: utils/kateglobal.cpp:93 +#, kde-format +msgid "Hamish Rodda" +msgstr "Hamiš Roda" + +#: utils/kateglobal.cpp:94 +#, kde-format +msgid "Waldo Bastian" +msgstr "Valdo Bastijan" + +#: utils/kateglobal.cpp:94 +#, kde-format +msgid "The cool buffersystem" +msgstr "žešći baferski sistem" + +#: utils/kateglobal.cpp:95 +#, kde-format +msgid "Charles Samuels" +msgstr "Čarls Semjuels" + +#: utils/kateglobal.cpp:95 +#, kde-format +msgid "The Editing Commands" +msgstr "uređivačke naredbe" + +#: utils/kateglobal.cpp:96 +#, kde-format +msgid "Matt Newell" +msgstr "Mit Njuel" + +#: utils/kateglobal.cpp:96 +#, kde-format +msgid "Testing, ..." +msgstr "Isprobavanje..." + +#: utils/kateglobal.cpp:97 +#, kde-format +msgid "Michael Bartl" +msgstr "Mihael Bartl" + +#: utils/kateglobal.cpp:97 +#, kde-format +msgid "Former Core Developer" +msgstr "Bivši glavni programer" + +#: utils/kateglobal.cpp:98 +#, kde-format +msgid "Michael McCallum" +msgstr "Michael McCallum" + +#: utils/kateglobal.cpp:99 +#, kde-format +msgid "Michael Koch" +msgstr "Michael Koch" + +#: utils/kateglobal.cpp:99 +#, kde-format +msgid "KWrite port to KParts" +msgstr "Prebacivanje KWrite na KParts" + +#: utils/kateglobal.cpp:100 +#, kde-format +msgid "Christian Gebauer" +msgstr "Christian Gebauer" + +#: utils/kateglobal.cpp:101 +#, kde-format +msgid "Simon Hausmann" +msgstr "Simon Hausmann" + +#: utils/kateglobal.cpp:102 +#, kde-format +msgid "Glen Parker" +msgstr "Glen Parker" + +#: utils/kateglobal.cpp:102 +#, kde-format +msgid "KWrite Undo History, Kspell integration" +msgstr "Istorijat promjena za KWrite, integracija KSpell" + +#: utils/kateglobal.cpp:103 +#, kde-format +msgid "Scott Manson" +msgstr "Scott Manson" + +#: utils/kateglobal.cpp:103 +#, kde-format +msgid "KWrite XML Syntax highlighting support" +msgstr "Isticanje sintakse XML‑a za KWrite" + +#: utils/kateglobal.cpp:104 +#, kde-format +msgid "John Firebaugh" +msgstr "John Firebaugh" + +#: utils/kateglobal.cpp:104 +#, kde-format +msgid "Patches and more" +msgstr "Zakrpe i ostalo" + +#: utils/kateglobal.cpp:105 +#, kde-format +msgid "Andreas Kling" +msgstr "Andreas Kling" + +#: utils/kateglobal.cpp:106 +#, kde-format +msgid "Mirko Stocker" +msgstr "Mirko Stocker" + +#: utils/kateglobal.cpp:106 +#, kde-format +msgid "Various bugfixes" +msgstr "Razne ispravke" + +#: utils/kateglobal.cpp:107 +#, kde-format +msgid "Matthew Woehlke" +msgstr "Matthew Woehlke" + +#: utils/kateglobal.cpp:107 +#, kde-format +msgid "Selection, KColorScheme integration" +msgstr "Selekcija, integracija sa KColorScheme" + +#: utils/kateglobal.cpp:108 +#, kde-format +msgid "Sebastian Pipping" +msgstr "Sebastian Pipping" + +#: utils/kateglobal.cpp:109 +#, kde-format +msgid "Search bar back- and front-end" +msgstr "Traka za pretragu backenda i frontenda" + +#: utils/kateglobal.cpp:112 +#, kde-format +msgid "Jochen Wilhelmy" +msgstr "Jochen Wilhelmy" + +#: utils/kateglobal.cpp:112 +#, kde-format +msgid "Original KWrite Author" +msgstr "Originalni KWrite Autor" + +#: utils/kateglobal.cpp:113 +#, kde-format +msgid "Gerald Senarclens de Grancy" +msgstr "Gerald Senarclens de Grancy" + +#: utils/kateglobal.cpp:113 +#, kde-format +msgid "QA and Scripting" +msgstr "Kontrola kvaliteta i skripte" + +#: utils/kateglobal.cpp:115 +#, kde-format +msgid "Matteo Merli" +msgstr "Matteo Merli" + +#: utils/kateglobal.cpp:115 +#, kde-format +msgid "Highlighting for RPM Spec-Files, Perl, Diff and more" +msgstr "Isticanje za RPM , Perl, Diff i dr." + +#: utils/kateglobal.cpp:116 +#, kde-format +msgid "Rocky Scaletta" +msgstr "Rocky Scaletta" + +#: utils/kateglobal.cpp:116 +#, kde-format +msgid "Highlighting for VHDL" +msgstr "Isticanje VHDL‑a" + +#: utils/kateglobal.cpp:117 +#, kde-format +msgid "Yury Lebedev" +msgstr "Jurij Lebedev" + +#: utils/kateglobal.cpp:117 +#, kde-format +msgid "Highlighting for SQL" +msgstr "Isticanje SQL‑a" + +#: utils/kateglobal.cpp:118 +#, kde-format +msgid "Chris Ross" +msgstr "Chris Ross" + +#: utils/kateglobal.cpp:118 +#, kde-format +msgid "Highlighting for Ferite" +msgstr "Isticanje za Ferite" + +#: utils/kateglobal.cpp:119 +#, kde-format +msgid "Nick Roux" +msgstr "Nick Roux" + +#: utils/kateglobal.cpp:119 +#, kde-format +msgid "Highlighting for ILERPG" +msgstr "Isticanje za ILERPG" + +#: utils/kateglobal.cpp:120 +#, kde-format +msgid "Carsten Niehaus" +msgstr "Carsten Niehaus" + +#: utils/kateglobal.cpp:120 +#, kde-format +msgid "Highlighting for LaTeX" +msgstr "Isticanje za LaTeX" + +#: utils/kateglobal.cpp:121 +#, kde-format +msgid "Per Wigren" +msgstr "Per Wigren" + +#: utils/kateglobal.cpp:121 +#, kde-format +msgid "Highlighting for Makefiles, Python" +msgstr "Isticanje Makefiles, Python" + +#: utils/kateglobal.cpp:122 +#, kde-format +msgid "Jan Fritz" +msgstr "Jan Fritz" + +#: utils/kateglobal.cpp:122 +#, kde-format +msgid "Highlighting for Python" +msgstr "Isticanje za Python" + +#: utils/kateglobal.cpp:123 +#, kde-format +msgid "Daniel Naber" +msgstr "Daniel Naber" + +#: utils/kateglobal.cpp:124 +#, kde-format +msgid "Roland Pabel" +msgstr "Roland Pabel" + +#: utils/kateglobal.cpp:124 +#, kde-format +msgid "Highlighting for Scheme" +msgstr "Isticanje za Scheme" + +#: utils/kateglobal.cpp:125 +#, kde-format +msgid "Cristi Dumitrescu" +msgstr "Kristi Dumitresku" + +#: utils/kateglobal.cpp:125 +#, kde-format +msgid "PHP Keyword/Datatype list" +msgstr "spisak ključnih riječi i tipova za PHP" + +#: utils/kateglobal.cpp:126 +#, kde-format +msgid "Carsten Pfeiffer" +msgstr "Karsten Pfajfer" + +#: utils/kateglobal.cpp:126 +#, kde-format +msgid "Very nice help" +msgstr "simpatična pomoć" + +#: utils/kateglobal.cpp:127 +#, kde-format +msgid "Bruno Massa" +msgstr "Bruno Masa" + +#: utils/kateglobal.cpp:127 +#, kde-format +msgid "Highlighting for Lua" +msgstr "isticanje Lue" + +#: utils/kateglobal.cpp:129 +#, kde-format +msgid "All people who have contributed and I have forgotten to mention" +msgstr "svi koji su doprinijeli, a ja zaboravih da ih spomenem" + +#: utils/kateglobal.cpp:131 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Chusslove Illich,Samir Ribić,Arnis Mustafić" + +#: utils/kateglobal.cpp:131 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "caslav.ilic@gmx.net,samir.ribic@etf.unsa.ba,amustafic2@etf.unsa.ba" + +#: utils/kateglobal.cpp:255 +#, kde-format +msgid "Configure" +msgstr "Podesi" + +#: utils/katesedcmd.cpp:268 +#, kde-format +msgid "replace with %1?" +msgstr "zamijeniti s %1?" + +#: utils/katesedcmd.cpp:274 +#, kde-format +msgctxt "%2 is the translation of the next message" +msgid "1 replacement done on %2" +msgid_plural "%1 replacements done on %2" +msgstr[0] "izvršena %1 zamjena u %2" +msgstr[1] "izvršene %1 zamjene u %2" +msgstr[2] "izvršeno %1 zamijena u %2" + +#: utils/katesedcmd.cpp:277 +#, kde-format +msgctxt "substituted into the previous message" +msgid "1 line" +msgid_plural "%1 lines" +msgstr[0] "u %1 redu" +msgstr[1] "u %1 reda" +msgstr[2] "u %1 redova" + +#: utils/katevariableexpansionhelpers.cpp:77 +#, kde-format +msgid "" +msgstr "" + +#: utils/katevariableexpansionhelpers.cpp:161 +#, fuzzy, kde-format +#| msgid "Insert Tab" +msgid "Insert variable" +msgstr "Umetni tabulator" + +#: utils/katevariableexpansionhelpers.cpp:165 +#, kde-format +msgid "Variables" +msgstr "Promjenljive" + +#: utils/katevariableexpansionhelpers.cpp:169 +#, fuzzy, kde-format +#| msgid "Filtering" +msgid "Filter" +msgstr "Filtriranje" + +#: utils/katevariableexpansionhelpers.cpp:188 +#: utils/katevariableexpansionhelpers.cpp:217 +#, kde-format +msgid "Please select a variable." +msgstr "" + +#: utils/katevariableexpansionhelpers.cpp:206 +#, fuzzy, kde-format +#| msgid "Missing argument. Usage: %1 " +msgid "Current value: %1" +msgstr "Nedostaje argument. Upotreba: %1 <vrednost>" + +#: utils/katevariableexpansionhelpers.cpp:214 +#, fuzzy, kde-format +#| msgid "Current Time" +msgid "Current value: %1" +msgstr "Trenutno vrijeme" + +#: utils/katevariableexpansionmanager.cpp:86 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "File base name without path and suffix of the current document." +msgstr "Izaberi cjelokupan tekst u dokumentu." + +#: utils/katevariableexpansionmanager.cpp:94 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "File extension of the current document." +msgstr "Izaberi cjelokupan tekst u dokumentu." + +#: utils/katevariableexpansionmanager.cpp:102 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "File name without path of the current document." +msgstr "Izaberi cjelokupan tekst u dokumentu." + +#: utils/katevariableexpansionmanager.cpp:110 +#, fuzzy, kde-format +msgid "Full path of the current document including the file name." +msgstr "Učitaj ponovo dokumenta sa diska." + +#: utils/katevariableexpansionmanager.cpp:118 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Contents of the current document." +msgstr "Štampaj tekući dokument." + +#: utils/katevariableexpansionmanager.cpp:125 +#, fuzzy, kde-format +msgid "Full path of the current document excluding the file name." +msgstr "Učitaj ponovo dokumenta sa diska." + +#: utils/katevariableexpansionmanager.cpp:133 +#, kde-format +msgid "" +"Full document path including file name, with native path separator " +"(backslash on Windows)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:141 +#, kde-format +msgid "" +"Full document path excluding file name, with native path separator " +"(backslash on Windows)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:149 +#, kde-format +msgid "" +"Line number of the text cursor position in current document (starts with 0)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:156 +#, kde-format +msgid "" +"Column number of the text cursor position in current document (starts with " +"0)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:163 +#, kde-format +msgid "X component in global screen coordinates of the cursor position." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:170 +#, kde-format +msgid "Y component in global screen coordinates of the cursor position." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:177 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "Text selection of the current document." +msgstr "Izaberi cjelokupan tekst u dokumentu." + +#: utils/katevariableexpansionmanager.cpp:184 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "Start line of selected text of the current document." +msgstr "Izaberi cjelokupan tekst u dokumentu." + +#: utils/katevariableexpansionmanager.cpp:191 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "Start column of selected text of the current document." +msgstr "Izaberi cjelokupan tekst u dokumentu." + +#: utils/katevariableexpansionmanager.cpp:198 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "End line of selected text of the current document." +msgstr "Izaberi cjelokupan tekst u dokumentu." + +#: utils/katevariableexpansionmanager.cpp:205 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "End column of selected text of the current document." +msgstr "Izaberi cjelokupan tekst u dokumentu." + +#: utils/katevariableexpansionmanager.cpp:212 +#, fuzzy, kde-format +#| msgid "Remove all bookmarks of the current document." +msgid "Number of rows of the current document." +msgstr "Ukloni sve obilježivače iz tekućeg dokumenta." + +#: utils/katevariableexpansionmanager.cpp:219 +#, fuzzy, kde-format +#| msgid "Variable" +msgid "Read a document variable." +msgstr "Promjenljiva" + +#: utils/katevariableexpansionmanager.cpp:227 +#, kde-format +msgid "The current date in current locale format." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:234 +#, kde-format +msgid "The current date (ISO)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:241 +#, fuzzy, kde-format +#| msgid "Current Date (short format)" +msgid "The current date (QDate formatstring)." +msgstr "Trenutni datum (kratki format)" + +#: utils/katevariableexpansionmanager.cpp:249 +#, kde-format +msgid "The current time in current locale format." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:256 +#, kde-format +msgid "The current time (ISO)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:263 +#, kde-format +msgid "The current time (QTime formatstring)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:271 +#, kde-format +msgid "Access to environment variables." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:279 +#, fuzzy, kde-format +#| msgid "Evaluate a simple math expression" +msgid "Evaluate simple JavaScript statements." +msgstr "Izračunaj prosti matematički izraz" + +#: utils/katevariableexpansionmanager.cpp:289 +#, kde-format +msgid "Encode text to make it URL compatible." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:297 +#, kde-format +msgid "Generate a new UUID." +msgstr "" + +#: variableeditor/variableeditor.cpp:40 +#, kde-format +msgid "Kate Handbook." +msgstr "Kate priručnik." + +#: variableeditor/variableeditor.cpp:213 +#, kde-format +msgid "true" +msgstr "tačno" + +#: variableeditor/variableeditor.cpp:214 +#, kde-format +msgid "false" +msgstr "netačno" + +#: variableeditor/variableeditor.cpp:350 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "none" +msgstr "nikakvo" + +#: variableeditor/variableeditor.cpp:351 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "modified" +msgstr "promijenjeno" + +#: variableeditor/variableeditor.cpp:352 +#, fuzzy, kde-format +#| msgctxt "value for variale remove-trailing-spaces" +#| msgid "all" +msgctxt "value for variable remove-trailing-spaces" +msgid "all" +msgstr "sve" + +#: variableeditor/variablelineedit.cpp:42 +#, kde-format +msgid "Show list of valid variables." +msgstr "Prikaži listu važećih varijabli." + +#: variableeditor/variablelineedit.cpp:115 +#, fuzzy, kde-format +msgctxt "short translation please" +msgid "Enable automatic insertion of brackets." +msgstr "Izaberi do parnjačke zagrade" + +#: variableeditor/variablelineedit.cpp:121 +#, kde-format +msgctxt "short translation please" +msgid "Set the number of autocenter lines." +msgstr "Postavi broj autocentrirajućih linija" + +#: variableeditor/variablelineedit.cpp:126 +#, kde-format +msgctxt "short translation please" +msgid "Set the document background color." +msgstr "Postavi boju pozadine dokumenta." + +#: variableeditor/variablelineedit.cpp:131 +#, kde-format +msgctxt "short translation please" +msgid "Pressing backspace in leading whitespace unindents." +msgstr "Pritisak na bakspace u vodećem razmaku uvlači." + +#: variableeditor/variablelineedit.cpp:139 +#, kde-format +msgctxt "short translation please" +msgid "Enable block selection mode." +msgstr "Omogući režim izbora bloka." + +#: variableeditor/variablelineedit.cpp:144 +#, fuzzy, kde-format +#| msgctxt "short translation please" +#| msgid "Enable the byte order marker when saving unicode files." +msgctxt "short translation please" +msgid "Enable the byte order mark (BOM) when saving Unicode files." +msgstr "Omogući marker redoslijeda bajtova pri snimanju unicode datoteka." + +#: variableeditor/variablelineedit.cpp:149 +#, kde-format +msgctxt "short translation please" +msgid "Set the color for the bracket highlight." +msgstr "Postavi boju osvjetljenja u zagradi" + +#: variableeditor/variablelineedit.cpp:154 +#, kde-format +msgctxt "short translation please" +msgid "Set the background color for the current line." +msgstr "Postavi pozadinsku boju trenutne linije." + +#: variableeditor/variablelineedit.cpp:160 +#, kde-format +msgctxt "short translation please" +msgid "Set the default dictionary used for spell checking." +msgstr "Postavi podrazumijevani rječnik za provjeru pravopisa." + +#: variableeditor/variablelineedit.cpp:165 +#, kde-format +msgctxt "short translation please" +msgid "Enable dynamic word wrap of long lines." +msgstr "Omogući dinamički prijelom riječi dugih linija." + +#: variableeditor/variablelineedit.cpp:172 +#, kde-format +msgctxt "short translation please" +msgid "Sets the end of line mode." +msgstr "Postavlja režim kraja linije." + +#: variableeditor/variablelineedit.cpp:177 +#, kde-format +msgctxt "short translation please" +msgid "" +"Enable whether pressing enter will insert selected auto completion item." +msgstr "" + +#: variableeditor/variablelineedit.cpp:182 +#, kde-format +msgctxt "short translation please" +msgid "Enable folding markers in the editor border." +msgstr "Omogući umotavajuće markere na ivici editora." + +#: variableeditor/variablelineedit.cpp:187 +#, fuzzy, kde-format +#| msgctxt "short translation please" +#| msgid "Enable folding markers in the editor border." +msgctxt "short translation please" +msgid "Enable folding preview in the editor border." +msgstr "Omogući umotavajuće markere na ivici editora." + +#: variableeditor/variablelineedit.cpp:193 +#, kde-format +msgctxt "short translation please" +msgid "Set the point size of the document font." +msgstr "Postavi veličinu tačaka fonta dokumenta." + +#: variableeditor/variablelineedit.cpp:198 +#, kde-format +msgctxt "short translation please" +msgid "Set the font of the document." +msgstr "Postavi font dokumenta." + +#: variableeditor/variablelineedit.cpp:214 +#, kde-format +msgctxt "short translation please" +msgid "Set the syntax highlighting." +msgstr "Postavi označavanje sintakse." + +#: variableeditor/variablelineedit.cpp:219 +#, kde-format +msgctxt "short translation please" +msgid "Set the icon bar color." +msgstr "Postavi boju traka ikone." + +#: variableeditor/variablelineedit.cpp:224 +#, kde-format +msgctxt "short translation please" +msgid "Enable the icon border in the editor view." +msgstr "Omogući ivicu ikona u editorskom pogledu." + +#: variableeditor/variablelineedit.cpp:229 +#, kde-format +msgctxt "short translation please" +msgid "Set the auto indentation style." +msgstr "Postavi stil automatskog nazubljivanja." + +#: variableeditor/variablelineedit.cpp:234 +#, kde-format +msgctxt "short translation please" +msgid "Adjust indentation of text pasted from the clipboard." +msgstr "Prilagodi nazubljivanje koda umetnutog iz međuspremnika" + +#: variableeditor/variablelineedit.cpp:240 +#, kde-format +msgctxt "short translation please" +msgid "Set the indentation depth for each indent level." +msgstr "Postavi dubinu nazubljivanja za svaki nivo." + +#: variableeditor/variablelineedit.cpp:245 +#, kde-format +msgctxt "short translation please" +msgid "Allow odd indentation level (no multiple of indent width)." +msgstr "Dopusti neparan nivo nazubljivanja (nije umnožak širine)." + +#: variableeditor/variablelineedit.cpp:250 +#, kde-format +msgctxt "short translation please" +msgid "Show line numbers." +msgstr "Prikaži brojeve linija." + +#: variableeditor/variablelineedit.cpp:255 +#, kde-format +msgctxt "short translation please" +msgid "Insert newline at end of file on save." +msgstr "Umetni novi red na kraju datoteke za spremanje." + +#: variableeditor/variablelineedit.cpp:260 +#, kde-format +msgctxt "short translation please" +msgid "Enable overwrite mode in the document." +msgstr "Omogući režim preko-pisanja u dokumentu." + +#: variableeditor/variablelineedit.cpp:265 +#, kde-format +msgctxt "short translation please" +msgid "Enable persistent text selection." +msgstr "Omogući očuvani izbor teksta." + +#: variableeditor/variablelineedit.cpp:270 +#, kde-format +msgctxt "short translation please" +msgid "Replace tabs with spaces when saving the document." +msgstr "Zamijeni tabulatore razmacima pri snimanju dokumenta." + +#: variableeditor/variablelineedit.cpp:275 +#, kde-format +msgctxt "short translation please" +msgid "Replace tabs with spaces." +msgstr "Zamijeni tabulatore razmacima." + +#: variableeditor/variablelineedit.cpp:280 +#, kde-format +msgctxt "short translation please" +msgid "Remove trailing spaces when saving the document." +msgstr "Ukloni prateće razmake pri snimanju dokumenta." + +#: variableeditor/variablelineedit.cpp:285 +#, fuzzy, kde-format +#| msgid "Show scrollbar mini-map" +msgctxt "short translation please" +msgid "Show scrollbar minimap." +msgstr "Prikaži mini mapu klizne trake" + +#: variableeditor/variablelineedit.cpp:290 +#, fuzzy, kde-format +#| msgid "Show &scrollbar marks" +msgctxt "short translation please" +msgid "Show scrollbar preview." +msgstr "&Zarezi u klizačkoj traci" + +#: variableeditor/variablelineedit.cpp:301 +#, kde-format +msgctxt "short translation please" +msgid "Set the color scheme." +msgstr "Postavi šemu boja." + +#: variableeditor/variablelineedit.cpp:306 +#, kde-format +msgctxt "short translation please" +msgid "Set the text selection color." +msgstr "Postavi boju izbora teksta." + +#: variableeditor/variablelineedit.cpp:311 +#, kde-format +msgctxt "short translation please" +msgid "Visualize tabs and trailing spaces." +msgstr "Prikaži tabulatore i prateće razmake." + +#: variableeditor/variablelineedit.cpp:316 +#, kde-format +msgctxt "short translation please" +msgid "Enable smart home navigation." +msgstr "Omogući pametnu kućnu navigaciju." + +#: variableeditor/variablelineedit.cpp:321 +#, kde-format +msgctxt "short translation please" +msgid "Pressing TAB key indents." +msgstr "Pritisak na TAB uvlači." + +#: variableeditor/variablelineedit.cpp:327 +#, kde-format +msgctxt "short translation please" +msgid "Set the tab display width." +msgstr "Postavi prikaznu širinu tabulatora." + +#: variableeditor/variablelineedit.cpp:333 +#, kde-format +msgctxt "short translation please" +msgid "Set the number of undo steps to remember (0 equals infinity)." +msgstr "Postavi broj zapamćenih koraka za vraćanje (0 znači beskonačno)." + +#: variableeditor/variablelineedit.cpp:339 +#, kde-format +msgctxt "short translation please" +msgid "Set the word wrap column." +msgstr "Postavi kolonu za prelom riječi." + +#: variableeditor/variablelineedit.cpp:344 +#, kde-format +msgctxt "short translation please" +msgid "Set the word wrap marker color." +msgstr "Postavi boju markera za prelom riječi." + +#: variableeditor/variablelineedit.cpp:349 +#, kde-format +msgctxt "short translation please" +msgid "Enable word wrap while typing text." +msgstr "Omogući prelom riječi pri kucanju teksta." + +#: view/katestatusbar.cpp:114 +#, kde-format +msgid "Current cursor position. Click to go to a specific line." +msgstr "" + +#: view/katestatusbar.cpp:127 +#, kde-format +msgid "Insert mode and VI input mode indicator. Click to change the mode." +msgstr "" + +#: view/katestatusbar.cpp:135 +#, fuzzy, kde-format +#| msgid "Change Dictionary..." +msgid "Change dictionary" +msgstr "Promijeni rječnik..." + +#: view/katestatusbar.cpp:161 view/katestatusbar.cpp:488 +#, fuzzy, kde-format +#| msgid "Tab width" +msgid "Tab Width" +msgstr "Širina kartice:" + +#: view/katestatusbar.cpp:169 view/katestatusbar.cpp:503 +#, kde-format +msgid "Indentation Width" +msgstr "Širina nazubljivanja:" + +#: view/katestatusbar.cpp:177 +#, fuzzy, kde-format +#| msgid "&Indentation Mode:" +msgid "Indentation Mode" +msgstr "Režim &uvlačenja:" + +#: view/katestatusbar.cpp:179 +#, fuzzy, kde-format +#| msgid "Tabulators &and Spaces" +msgid "Tabulators && Spaces" +msgstr "T&abulatori i razmaci" + +#: view/katestatusbar.cpp:182 +#, fuzzy, kde-format +#| msgid "&Tabulators" +msgid "Tabulators" +msgstr "&Tabulatora" + +#: view/katestatusbar.cpp:185 +#, fuzzy, kde-format +#| msgid "&Spaces" +msgid "Spaces" +msgstr "&Razmaka" + +#: view/katestatusbar.cpp:197 +#, kde-format +msgid "Encoding" +msgstr "Kodiranje" + +#: view/katestatusbar.cpp:200 view/katestatusbar.cpp:201 +#, fuzzy, kde-format +#| msgid "End of line" +msgid "End of line type" +msgstr "kraj reda" + +#: view/katestatusbar.cpp:207 +#, fuzzy, kde-format +#| msgid "&Mode" +msgid "Mode" +msgstr "&Režim" + +#: view/katestatusbar.cpp:209 view/kateview.cpp:703 +#, kde-format +msgid "" +"Here you can choose which mode should be used for the current document. This " +"will influence the highlighting and folding being used, for example." +msgstr "" +"Ovdje možete izabrati režim koji treba koristiti za tekući dokument, što će " +"se odraziti, na primjer, na isticanje i prelom teksta." + +#: view/katestatusbar.cpp:216 +#, kde-format +msgid "Syntax highlighting" +msgstr "Označavanje sintakse." + +#: view/katestatusbar.cpp:261 +#, kde-format +msgid "Line/Column compact mode" +msgstr "" + +#: view/katestatusbar.cpp:307 +#, kde-format +msgid "[BLOCK] %1" +msgstr "" + +#: view/katestatusbar.cpp:323 +#, kde-format +msgid "%1/%2:%3" +msgstr "" + +#: view/katestatusbar.cpp:325 +#, kde-format +msgid "%1:%2" +msgstr "" + +#: view/katestatusbar.cpp:329 +#, kde-format +msgid "Line %1 of %2, Column %3" +msgstr "" + +#: view/katestatusbar.cpp:331 +#, kde-format +msgid "Line %1, Column %2" +msgstr "" + +#: view/katestatusbar.cpp:405 +#, kde-format +msgid "Soft Tabs: %1" +msgstr "" + +#: view/katestatusbar.cpp:406 +#, kde-format +msgid "Soft Tabs: %1 (%2)" +msgstr "" + +#: view/katestatusbar.cpp:407 +#, kde-format +msgid "Tab Size: %1" +msgstr "Veličina kartice: %1" + +#: view/katestatusbar.cpp:408 +#, kde-format +msgid "Indent/Tab: %1/%2" +msgstr "" + +#: view/katestatusbar.cpp:448 view/katestatusbar.cpp:474 +#, fuzzy, kde-format +#| msgctxt "Language Section" +#| msgid "Other" +msgctxt "@item:inmenu" +msgid "Other…" +msgstr "drugi" + +#: view/katestatusbar.cpp:476 +#, fuzzy, kde-format +msgid "Other (%1)" +msgid_plural "Other (%1)" +msgstr[0] "drugi" +msgstr[1] "drugi" +msgstr[2] "drugi" + +#: view/katestatusbar.cpp:488 +#, kde-format +msgid "Please specify the wanted tab width:" +msgstr "" + +#: view/katestatusbar.cpp:504 +#, kde-format +msgid "Please specify the wanted indentation width:" +msgstr "" + +#: view/katestatusbar.cpp:567 +#, kde-format +msgctxt "" +"%1 and %3 are the selected words/chars count, %2 and %4 are the total words/" +"chars count." +msgid "Words %1/%2, Chars %3/%4" +msgstr "" + +#: view/katestatusbar.cpp:573 +#, kde-format +msgctxt "%1 and %2 are the total words/chars count." +msgid "Words %1, Chars %2" +msgstr "" + +#: view/katestatusbar.cpp:588 +#, kde-format +msgid "Zoom: %1%" +msgstr "" + +#: view/kateview.cpp:440 +#, kde-format +msgid "Cut the selected text and move it to the clipboard" +msgstr "Isijeci izabrani tekst i smjesti ga u klipbord" + +#: view/kateview.cpp:445 +#, kde-format +msgid "Paste previously copied or cut clipboard contents" +msgstr "Umetni prethodno kopirani ili isječeni sadržaj klipborda" + +#: view/kateview.cpp:448 +#, kde-format +msgid "" +"Use this command to copy the currently selected text to the system clipboard." +msgstr "Kopirajte trenutno izabrani tekst u sistemski klipbord." + +#: view/kateview.cpp:454 +#, fuzzy, kde-format +#| msgid "Clipboard &History" +msgid "Clipboard &History Paste" +msgstr "&Historijat međuspremnika" + +#: view/kateview.cpp:459 +#, fuzzy, kde-format +#| msgid "Automatic Spell Checking" +msgid "Paste Selection" +msgstr "Automatska provjera pravopisa" + +#: view/kateview.cpp:461 +#, fuzzy, kde-format +#| msgid "Paste previously copied or cut clipboard contents" +msgid "Paste previously mouse selection contents" +msgstr "Umetni prethodno kopirani ili isječeni sadržaj klipborda" + +#: view/kateview.cpp:465 +#, kde-format +msgid "Paste From File" +msgstr "" + +#: view/kateview.cpp:469 +#, kde-format +msgid "Copy File Location" +msgstr "" + +#: view/kateview.cpp:470 +#, kde-format +msgid "Copy the current file name and line number" +msgstr "" + +#: view/kateview.cpp:473 +#, fuzzy, kde-format +#| msgid "Paste previously copied or cut clipboard contents" +msgid "Swap with Clipboard Contents" +msgstr "Umetni prethodno kopirani ili isječeni sadržaj klipborda" + +#: view/kateview.cpp:474 +#, fuzzy, kde-format +#| msgid "Cut the selected text and move it to the clipboard" +msgid "Swap the selected text with the clipboard contents" +msgstr "Isijeci izabrani tekst i smjesti ga u klipbord" + +#: view/kateview.cpp:477 +#, fuzzy, kde-format +#| msgid "Automatic Spell Checking" +msgid "Take Screenshot of Selection" +msgstr "Automatska provjera pravopisa" + +#: view/kateview.cpp:481 +#, kde-format +msgid "Save the current document" +msgstr "Snimi trenutni dokument" + +#: view/kateview.cpp:484 +#, kde-format +msgid "Revert the most recent editing actions" +msgstr "Opozovi skorašnje uređivačke radnje" + +#: view/kateview.cpp:487 +#, kde-format +msgid "Revert the most recent undo operation" +msgstr "Opozovi skorašnja poništavanja" + +#: view/kateview.cpp:491 +#, kde-format +msgid "&Scripts" +msgstr "&Skripte" + +#: view/kateview.cpp:495 +#, kde-format +msgid "Apply &Word Wrap" +msgstr "&Prelomi redove" + +#: view/kateview.cpp:497 +#, kde-format +msgid "" +"Use this to wrap the current line, or to reformat the selected lines as " +"paragraph, to fit the 'Wrap words at' setting in the configuration dialog." +"

This is a static word wrap, meaning the document is changed." +msgstr "" + +#: view/kateview.cpp:503 +#, kde-format +msgid "&Clean Indentation" +msgstr "&Očisti uvlačanje" + +#: view/kateview.cpp:505 +#, kde-format +msgid "" +"Use this to clean the indentation of a selected block of text (only tabs/" +"only spaces).

You can configure whether tabs should be honored " +"and used or replaced with spaces, in the configuration dialog." +msgstr "" +"Očistite uvlačenje izabranog bloka teksta (samo tabulatori ili samo " +"razmaci).

U dijalogu za podešavanje možete odrediti da li treba " +"poštovati i koristiti tabulatore, ili ih smjenjivati razmacima." + +#: view/kateview.cpp:510 +#, fuzzy, kde-format +#| msgid "Indentation Properties" +msgid "Convert Indentation to Spaces" +msgstr "Svojstva uvlačenja" + +#: view/kateview.cpp:517 +#, fuzzy, kde-format +#| msgid "&Indentation" +msgid "Convert Indentation to Tabs" +msgstr "&Uvlačenje" + +#: view/kateview.cpp:532 +#, fuzzy, kde-format +#| msgid "&Indentation" +msgid "&Format Indentation" +msgstr "&Uvlačenje" + +#: view/kateview.cpp:533 +#, fuzzy, kde-format +#| msgid "" +#| "Use this to align the current line or block of text to its proper indent " +#| "level." +msgid "" +"Use this to auto indent the current line or block of text to its proper " +"indent level." +msgstr "Poravnajte tekući red ili blok teksta na odgovarajući nivo uvlačenja." + +#: view/kateview.cpp:537 +#, fuzzy, kde-format +#| msgid "&Align" +msgctxt "@action" +msgid "&Align On…" +msgstr "&Poravnaj" + +#: view/kateview.cpp:539 +#, kde-format +msgid "" +"This command aligns lines in the selected block or whole document on the " +"column given by a regular expression that you will be prompted for.

If you give an empty pattern it will align on the first non-blank " +"character by default.
If the pattern has a capture it will indent on " +"the captured match.

Examples:
With '-' it will insert " +"spaces before the first '-' of each lines to align them all on the same " +"column.
With ':\\s+(.)' it will insert spaces before the first non-" +"blank character that occurs after a colon to align them all on the same " +"column." +msgstr "" + +#: view/kateview.cpp:550 +#, kde-format +msgid "C&omment" +msgstr "Za&komentariši" + +#: view/kateview.cpp:553 +#, kde-format +msgid "" +"This command comments out the current line or a selected block of text.

The characters for single/multiple line comments are defined within " +"the language's highlighting." +msgstr "" +"Ova naredba će zakomentarisati tekući red ili izabrani blok teksta." +"

Znakovi za komentarisanje jednog ili više redova definisani su u " +"pravilima za isticanje jezika." + +#: view/kateview.cpp:558 +#, fuzzy, kde-format +#| msgid "Go to previous edit point" +msgid "Go to Previous Editing Location" +msgstr "Pomjeri na prethodnu uređivačku tačku" + +#: view/kateview.cpp:564 +#, fuzzy, kde-format +#| msgid "Go to next edit point" +msgid "Go to Next Editing Location" +msgstr "Idi na sljedeću uređivačku tačku" + +#: view/kateview.cpp:570 +#, kde-format +msgid "Unco&mment" +msgstr "&Otkomentariši" + +#: view/kateview.cpp:573 +#, kde-format +msgid "" +"This command removes comments from the current line or a selected block of " +"text.

The characters for single/multiple line comments are " +"defined within the language's highlighting." +msgstr "" +"Ova naredba će otkomentarisati tekući red ili izabrani blok teksta." +"

Znakovi za komentarisanje jednog ili više redova definisani su u " +"pravilima za isticanje jezika." + +#: view/kateview.cpp:578 +#, kde-format +msgid "Toggle Comment" +msgstr "Zakomentariši/otkomentariši" + +#: view/kateview.cpp:582 +#, kde-format +msgid "&Read Only Mode" +msgstr "&Samo za čitanje" + +#: view/kateview.cpp:583 +#, kde-format +msgid "Lock/unlock the document for writing" +msgstr "Zaključaj/otključaj upisivanje u dokument" + +#: view/kateview.cpp:588 +#, kde-format +msgid "&Force RTL Direction" +msgstr "" + +#: view/kateview.cpp:589 +#, fuzzy, kde-format +#| msgid "Text Decorations" +msgid "Force RTL Text Direction" +msgstr "Dekoracije Teksta" + +#: view/kateview.cpp:599 +#, kde-format +msgid "Uppercase" +msgstr "U velika slova" + +#: view/kateview.cpp:602 +#, kde-format +msgid "" +"Convert the selection to uppercase, or the character to the right of the " +"cursor if no text is selected." +msgstr "" +"Pretvori izabrani tekst u sva velika slova, ili slovo desno od kursora ako " +"ništa nije izabrano." + +#: view/kateview.cpp:608 +#, kde-format +msgid "Lowercase" +msgstr "U mala slova" + +#: view/kateview.cpp:611 +#, kde-format +msgid "" +"Convert the selection to lowercase, or the character to the right of the " +"cursor if no text is selected." +msgstr "" +"Pretvori izabrani tekst u sva mala slova, ili slovo desno od kursora ako " +"ništa nije izabrano." + +#: view/kateview.cpp:617 +#, kde-format +msgid "Capitalize" +msgstr "Veliko prvo slovo" + +#: view/kateview.cpp:620 +#, kde-format +msgid "" +"Capitalize the selection, or the word under the cursor if no text is " +"selected." +msgstr "" +"Uvećava se početno slovo riječima u izabranom tekstu, ili riječi pod " +"kursorom ako ništa nije izabrano." + +#: view/kateview.cpp:625 +#, kde-format +msgid "Join Lines" +msgstr "Spoji redove" + +#: view/kateview.cpp:630 +#, kde-format +msgid "Invoke Code Completion" +msgstr "Pozovi dopunu kôda" + +#: view/kateview.cpp:631 +#, kde-format +msgid "" +"Manually invoke command completion, usually by using a shortcut bound to " +"this action." +msgstr "" +"Ručno pozovite dopunjavanje naredbi, obično putem prečice vezane uz ovu " +"radnju." + +#: view/kateview.cpp:636 +#, fuzzy, kde-format +#| msgid "Re&move trailing spaces:" +msgid "Remove Trailing Spaces" +msgstr "Ukloni &prateće razmake" + +#: view/kateview.cpp:654 +#, kde-format +msgid "Print the current document." +msgstr "Štampaj tekući dokument." + +#: view/kateview.cpp:657 +#, fuzzy, kde-format +msgid "Show print preview of current document" +msgstr "Štampaj tekući dokument." + +#: view/kateview.cpp:661 +#, kde-format +msgid "Reloa&d" +msgstr "&Učitaj ponovo" + +#: view/kateview.cpp:663 +#, kde-format +msgid "Reload the current document from disk." +msgstr "Učitaj ponovo dokumenta sa diska." + +#: view/kateview.cpp:667 +#, kde-format +msgid "Save the current document to disk, with a name of your choice." +msgstr "Snimi trenutni dokument na disk, koristeći ime koje odaberete." + +#: view/kateview.cpp:669 +#, kde-format +msgctxt "@action" +msgid "Save As with Encodin&g…" +msgstr "" + +#: view/kateview.cpp:675 +#, fuzzy, kde-format +#| msgid "Save &Copy As..." +msgctxt "@action" +msgid "Save Cop&y As…" +msgstr "Snimi &kopiju kao..." + +#: view/kateview.cpp:676 +#, fuzzy, kde-format +msgid "Save a copy of the current document to disk." +msgstr "Učitaj ponovo dokumenta sa diska." + +#: view/kateview.cpp:680 +#, kde-format +msgid "" +"This command opens a dialog and lets you choose a line that you want the " +"cursor to move to." +msgstr "" +"Otvara dijalog u kome možete izabrati red u koji želite da kursor prijeđe." + +#: view/kateview.cpp:684 +#, fuzzy, kde-format +#| msgid "Move to Previous Line" +msgid "Go to Previous Modified Line" +msgstr "Pomjeri na prethodni red" + +#: view/kateview.cpp:685 +#, fuzzy, kde-format +#| msgid "Move cursor to previous matching indent" +msgid "Move upwards to the previous modified line." +msgstr "Pomjeri kursor na prethodnu parnjačku zagradu" + +#: view/kateview.cpp:690 +#, fuzzy, kde-format +#| msgid "Move to Next Line" +msgid "Go to Next Modified Line" +msgstr "Pomjeri na sljedeći red" + +#: view/kateview.cpp:691 +#, kde-format +msgid "Move downwards to the next modified line." +msgstr "" + +#: view/kateview.cpp:695 +#, fuzzy, kde-format +#| msgid "&Configure Editor..." +msgctxt "@action" +msgid "&Configure Editor…" +msgstr "Podesi &uređivač..." + +#: view/kateview.cpp:697 +#, kde-format +msgid "Configure various aspects of this editor." +msgstr "Podesite razne aspekte ovog uređivača." + +#: view/kateview.cpp:700 +#, kde-format +msgid "&Mode" +msgstr "&Režim" + +#: view/kateview.cpp:706 +#, kde-format +msgid "&Highlighting" +msgstr "&Isticanje" + +#: view/kateview.cpp:708 +#, kde-format +msgid "Here you can choose how the current document should be highlighted." +msgstr "Ovdje možete izabrati kako će isticati tekst u tekućem dokumentu." + +#: view/kateview.cpp:711 +#, fuzzy, kde-format +#| msgid "Use KDE Color Scheme" +msgid "&Editor Color Theme" +msgstr "Koristi KDE šemu boja" + +#: view/kateview.cpp:717 +#, kde-format +msgid "&Indentation" +msgstr "&Uvlačenje" + +#: view/kateview.cpp:726 +#, kde-format +msgid "Select the entire text of the current document." +msgstr "Izaberi cjelokupan tekst u dokumentu." + +#: view/kateview.cpp:729 +#, kde-format +msgid "" +"If you have selected something within the current document, this will no " +"longer be selected." +msgstr "" +"Ako ste izabrali nešto u okviru dokumenta, ovim ćete poništiti taj izbor." + +#: view/kateview.cpp:733 +#, kde-format +msgid "Enlarge Font" +msgstr "Povećaj font" + +#: view/kateview.cpp:735 +#, kde-format +msgid "This increases the display font size." +msgstr "Ovo povećava veličinu fonta na ekranu." + +#: view/kateview.cpp:742 +#, kde-format +msgid "Shrink Font" +msgstr "Smanji font" + +#: view/kateview.cpp:744 +#, kde-format +msgid "This decreases the display font size." +msgstr "Ovo smanjuje veličinu fonta na ekranu." + +#: view/kateview.cpp:751 +#, kde-format +msgid "Reset Font Size" +msgstr "" + +#: view/kateview.cpp:753 +#, fuzzy, kde-format +#| msgid "This increases the display font size." +msgid "This resets the display font size." +msgstr "Ovo povećava veličinu fonta na ekranu." + +#: view/kateview.cpp:756 +#, kde-format +msgid "Bl&ock Selection Mode" +msgstr "&Blokovski izbor" + +#: view/kateview.cpp:759 +#, kde-format +msgid "" +"This command allows switching between the normal (line based) selection mode " +"and the block selection mode." +msgstr "" +"Prebacujte između normalnog (na osnovu redova) i blokovskog izbora teksta." + +#: view/kateview.cpp:763 +#, fuzzy, kde-format +#| msgid "Vi Input Mode" +msgid "Switch to Next Input Mode" +msgstr "Režim unosa poput editora 'vi'" + +#: view/kateview.cpp:765 +#, fuzzy, kde-format +#| msgctxt "short translation please" +#| msgid "Sets the end of line mode." +msgid "Switch to the next input mode." +msgstr "Postavlja režim kraja linije." + +#: view/kateview.cpp:768 +#, kde-format +msgid "Overwr&ite Mode" +msgstr "&Prebrisavanje" + +#: view/kateview.cpp:771 +#, kde-format +msgid "" +"Choose whether you want the text you type to be inserted or to overwrite " +"existing text." +msgstr "" +"Izaberite da li tekst koji unosite treba da se umeće u postojeći tekst ili " +"ga prebrisuje." + +#: view/kateview.cpp:775 +#, fuzzy, kde-format +#| msgid "&Spaces" +msgid "Show Whitespace" +msgstr "&Razmaka" + +#: view/kateview.cpp:778 +#, fuzzy, kde-format +#| msgid "" +#| "If this option is checked, the text lines will be wrapped at the view " +#| "border on the screen." +msgid "" +"If this option is checked, whitespaces in this document will be visible.

This is only a view option, meaning the document will not be changed." +msgstr "" +"Ako je ova opcija uključena, redovi teksta će biti prelamani na ivici " +"prikaza na ekranu." + +#: view/kateview.cpp:782 +#, kde-format +msgid "&Dynamic Word Wrap" +msgstr "&Dinamički prelom" + +#: view/kateview.cpp:786 +#, fuzzy, kde-format +#| msgid "" +#| "If this option is checked, the text lines will be wrapped at the view " +#| "border on the screen." +msgid "" +"If this option is checked, the text lines will be wrapped at the view border " +"on the screen.

This is only a view option, meaning the document " +"will not be changed." +msgstr "" +"Ako je ova opcija uključena, redovi teksta će biti prelamani na ivici " +"prikaza na ekranu." + +#: view/kateview.cpp:790 +#, kde-format +msgid "Dynamic Word Wrap Indicators" +msgstr "Pokazatelji dinamičkog prijeloma" + +#: view/kateview.cpp:792 +#, kde-format +msgid "Choose when the Dynamic Word Wrap Indicators should be displayed" +msgstr "Treba li prikazivati pokazatelje dinamičkog prijeloma teksta" + +#: view/kateview.cpp:794 +#, kde-format +msgid "&Off" +msgstr "&isključeni" + +#: view/kateview.cpp:794 +#, kde-format +msgid "Follow &Line Numbers" +msgstr "Prati &brojeve linija" + +#: view/kateview.cpp:794 +#, kde-format +msgid "&Always On" +msgstr "&uvijek uključeni" + +#: view/kateview.cpp:798 +#, kde-format +msgid "Static Word Wrap" +msgstr "Statičko prelamanje teksta" + +#: view/kateview.cpp:800 +#, fuzzy, kde-format +#| msgid "" +#| "If this option is checked, the text lines will be wrapped at the view " +#| "border on the screen." +msgid "" +"If this option is checked, the text lines will be wrapped at the column " +"defined in the editing properties." +msgstr "" +"Ako je ova opcija uključena, redovi teksta će biti prelamani na ivici " +"prikaza na ekranu." + +# >> @action:inmenu +#: view/kateview.cpp:807 +#, kde-format +msgid "Show Static &Word Wrap Marker" +msgstr "&Graničnik statičkog prijeloma" + +# skip-rule: linije +#: view/kateview.cpp:810 +#, kde-format +msgid "" +"Show/hide the Word Wrap Marker, a vertical line drawn at the word wrap " +"column as defined in the editing properties" +msgstr "" +"Da li prikazati graničnik statičkog prijeloma, uspravnu liniju koja se " +"iscrtava u koloni prijeloma zadatoj u podešavanjima." + +# >> @action:inmenu +#: view/kateview.cpp:814 +#, kde-format +msgid "Show Folding &Markers" +msgstr "&Ručke za sažimanje" + +#: view/kateview.cpp:816 +#, kde-format +msgid "" +"You can choose if the codefolding marks should be shown, if codefolding is " +"possible." +msgstr "" +"Izaberite da li prikazivati ručke za sažimanje kôda, ako je ono moguće." + +# >> @action:inmenu +#: view/kateview.cpp:819 +#, kde-format +msgid "Show &Icon Border" +msgstr "&Pojas ikona" + +#: view/kateview.cpp:821 +#, kde-format +msgid "" +"Show/hide the icon border.

The icon border shows bookmark " +"symbols, for instance." +msgstr "" +"Prikaži/sakrij pojas ikona.

Ovaj pojas prikazuje, na " +"primjer, simbole obilježivača." + +# >> @action:inmenu +#: view/kateview.cpp:824 +#, kde-format +msgid "Show &Line Numbers" +msgstr "&Brojevi redova" + +#: view/kateview.cpp:826 +#, kde-format +msgid "Show/hide the line numbers on the left hand side of the view." +msgstr "Prikaži/sakrij brojeve redova na lijevoj strani prikaza." + +# >> @action:inmenu +#: view/kateview.cpp:829 +#, kde-format +msgid "Show Scroll&bar Marks" +msgstr "&Zarezi u klizačkoj traci" + +#: view/kateview.cpp:831 +#, kde-format +msgid "" +"Show/hide the marks on the vertical scrollbar.

The marks show " +"bookmarks, for instance." +msgstr "" +"Prikaži/sakrij markere u uspravnoj klizačkoj traci.

Markerima se, " +"na primjer, označavaju obilježivači." + +# >> @action:inmenu +#: view/kateview.cpp:834 +#, kde-format +msgid "Show Scrollbar Mini-Map" +msgstr "Prikaži mini mapu klizne trake" + +#: view/kateview.cpp:836 +#, kde-format +msgid "" +"Show/hide the mini-map on the vertical scrollbar.

The mini-map " +"shows an overview of the whole document." +msgstr "" +"Prikaži/sakrij mini mape u uspravnoj klizačkoj traci.

Mini mape " +"prikazuju pregled cijelog dokumenta." + +#. i18n("Show the whole document in the Mini-Map"), this); +#. ac->addAction(QLatin1String("view_scrollbar_minimap_all"), a); +#. a->setWhatsThis(i18n("Display the whole document in the mini-map.

With this option set the whole document will be visible in the +#. mini-map.")); connect(a, SIGNAL(triggered(bool)), SlOT(toggleScrollBarMiniMapAll())); connect(m_toggleScrollBarMiniMap, SIGNAL(triggered(bool)), +#. m_toggleScrollBarMiniMapAll, SLOT(setEnabled(bool))); +#: view/kateview.cpp:848 +#, kde-format +msgid "Show Non-Printable Spaces" +msgstr "" + +#: view/kateview.cpp:850 +#, kde-format +msgid "Show/hide bounding box around non-printable spaces" +msgstr "" + +# >> @action:inmenu +#: view/kateview.cpp:854 +#, kde-format +msgid "Switch to Command Line" +msgstr "Na komandnu liniju" + +#: view/kateview.cpp:856 +#, kde-format +msgid "Show/hide the command line on the bottom of the view." +msgstr "Da li prikazati komandnu liniju u dnu prikaza." + +#: view/kateview.cpp:859 +#, fuzzy, kde-format +#| msgid "Vi Input Mode" +msgid "Input Modes" +msgstr "Režim unosa poput editora 'vi'" + +#: view/kateview.cpp:868 +#, fuzzy, kde-format +#| msgid "Activate/deactivate VI input mode" +msgid "Activate/deactivate %1" +msgstr "Aktivira i deaktivira Vi režim unosa" + +#: view/kateview.cpp:878 +#, kde-format +msgid "&End of Line" +msgstr "&Kraj reda" + +#: view/kateview.cpp:880 +#, kde-format +msgid "Choose which line endings should be used, when you save the document" +msgstr "Izaberite kakvi se krajevi redova koriste pri upisivanju dokumenta" + +#: view/kateview.cpp:881 +#, kde-format +msgctxt "@item:inmenu End of Line" +msgid "&UNIX" +msgstr "&UNIX" + +#: view/kateview.cpp:882 +#, kde-format +msgctxt "@item:inmenu End of Line" +msgid "&Windows/DOS" +msgstr "&Windows/DOS" + +#: view/kateview.cpp:883 +#, kde-format +msgctxt "@item:inmenu End of Line" +msgid "&Macintosh" +msgstr "&Macintosh" + +#: view/kateview.cpp:888 +#, kde-format +msgid "Add &Byte Order Mark (BOM)" +msgstr "Dodaj marker &redoslijeda bajtova (BOM)" + +#: view/kateview.cpp:891 +#, fuzzy, kde-format +#| msgid "" +#| "Enable/disable adding of byte order markers for UTF-8/UTF-16 encoded " +#| "files while saving" +msgid "" +"Enable/disable adding of byte order marks for UTF-8/UTF-16 encoded files " +"while saving" +msgstr "" +"Da li dodavati markere redoslijeda bajtova u UTF‑8/UTF‑16 kodirane datoteke " +"pri upisivanju." + +#: view/kateview.cpp:895 +#, kde-format +msgid "E&ncoding" +msgstr "&Kodiranje" + +#: view/kateview.cpp:899 +#, kde-format +msgid "Look up the first occurrence of a piece of text or regular expression." +msgstr "Traži prvu pojavu dijela teksta ili regularnog izraza." + +#: view/kateview.cpp:903 +#, kde-format +msgid "Find Selected" +msgstr "Nađi izabrano" + +#: view/kateview.cpp:905 +#, kde-format +msgid "Finds next occurrence of selected text." +msgstr "Nalazi sljedeću pojavu izabranog teksta." + +#: view/kateview.cpp:909 +#, kde-format +msgid "Find Selected Backwards" +msgstr "Nađi izabrano unazad" + +#: view/kateview.cpp:911 +#, kde-format +msgid "Finds previous occurrence of selected text." +msgstr "Nalazi prethodnu pojavu izabranog teksta." + +#: view/kateview.cpp:915 +#, kde-format +msgid "Find and Select Next Occurrence" +msgstr "" + +#: view/kateview.cpp:917 +#, fuzzy, kde-format +#| msgid "Finds next occurrence of selected text." +msgid "Finds next occurrence of the word under cursor and add it to selection." +msgstr "Nalazi sljedeću pojavu izabranog teksta." + +#: view/kateview.cpp:921 +#, kde-format +msgid "Mark Currently Selected Occurrence as Skipped" +msgstr "" + +#: view/kateview.cpp:923 +#, kde-format +msgid "Marks the currently selected word as skipped." +msgstr "" + +#: view/kateview.cpp:927 +#, kde-format +msgid "Find and Select All Occurrences" +msgstr "" + +#: view/kateview.cpp:929 +#, fuzzy, kde-format +#| msgid "Finds next occurrence of selected text." +msgid "Finds all occurrences of the word under cursor and selects them." +msgstr "Nalazi sljedeću pojavu izabranog teksta." + +#: view/kateview.cpp:933 +#, kde-format +msgid "Look up the next occurrence of the search phrase." +msgstr "Potraži sljedeću pojavu izraza." + +#: view/kateview.cpp:937 +#, kde-format +msgid "Look up the previous occurrence of the search phrase." +msgstr "Potraži prethodnu pojavu izraza." + +#: view/kateview.cpp:941 +#, kde-format +msgid "" +"Look up a piece of text or regular expression and replace the result with " +"some given text." +msgstr "" +"Potraži dio teksta ili regularni izraza i zamijeni rezultat drugim datim " +"tekstom." + +#: view/kateview.cpp:944 +#, kde-format +msgid "Add Cursors to Line Ends" +msgstr "" + +#: view/kateview.cpp:946 +#, kde-format +msgid "Creates a cursor at the end of every line in selection." +msgstr "" + +#: view/kateview.cpp:950 +#, kde-format +msgid "Add Caret below Cursor" +msgstr "" + +#: view/kateview.cpp:952 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "Adds a caret in the line below the current caret." +msgstr "Izaberi cjelokupan tekst u dokumentu." + +#: view/kateview.cpp:956 +#, kde-format +msgid "Add Caret above Cursor" +msgstr "" + +#: view/kateview.cpp:958 +#, kde-format +msgid "Adds a caret in the line above the current caret." +msgstr "" + +#: view/kateview.cpp:962 +#, fuzzy, kde-format +#| msgid "Text Cursor Movement" +msgid "Toggle Camel Case Cursor Movement" +msgstr "Pomijeranje kursora" + +#: view/kateview.cpp:963 +#, kde-format +msgid "Toggle between normal word movement and camel case cursor movement." +msgstr "" + +#: view/kateview.cpp:967 +#, fuzzy, kde-format +#| msgid "Move cursor to next matching indent" +msgid "Remove Cursors from Empty Lines" +msgstr "Pomjeri kursor na narednu parnjačku zagradu" + +#: view/kateview.cpp:968 +#, fuzzy, kde-format +#| msgid "Move cursor to next matching indent" +msgid "Remove cursors from empty lines" +msgstr "Pomjeri kursor na narednu parnjačku zagradu" + +#: view/kateview.cpp:972 +#, kde-format +msgid "Automatic Spell Checking" +msgstr "Automatska provjera pravopisa" + +# >> @info:whatsthis +#: view/kateview.cpp:973 +#, kde-format +msgid "Enable/disable automatic spell checking" +msgstr "Da li automatski provjeravati pravopis." + +#: view/kateview.cpp:979 +#, fuzzy, kde-format +#| msgid "Change Dictionary..." +msgctxt "@action" +msgid "Change Dictionary…" +msgstr "Promijeni rječnik..." + +#: view/kateview.cpp:980 +#, kde-format +msgid "Change the dictionary that is used for spell checking." +msgstr "Promijenite rječnik za provjeru pravopisa." + +#: view/kateview.cpp:984 +#, kde-format +msgid "Clear Dictionary Ranges" +msgstr "Očisti rječničke opsege" + +#: view/kateview.cpp:986 +#, kde-format +msgid "" +"Remove all the separate dictionary ranges that were set for spell checking." +msgstr "" +"Očistite sve zasebne rječničke opsege koji su postavljeni za provjeru " +"pravopisa." + +#: view/kateview.cpp:992 +#, kde-format +msgid "Copy as &HTML" +msgstr "" + +#: view/kateview.cpp:993 +#, kde-format +msgid "" +"Copy the selection as HTML, formatted using the current syntax highlighting " +"and color scheme settings." +msgstr "" + +#: view/kateview.cpp:997 +#, fuzzy, kde-format +msgctxt "@action" +msgid "E&xport as HTML…" +msgstr "Izvezi..." + +#: view/kateview.cpp:999 +#, kde-format +msgid "" +"This command allows you to export the current document with all highlighting " +"information into a HTML document." +msgstr "" + +#: view/kateview.cpp:1038 +#, kde-format +msgid "Move Word Left" +msgstr "Pomjeri riječ lijevo" + +#: view/kateview.cpp:1044 +#, kde-format +msgid "Select Character Left" +msgstr "Izaberi znak lijevo" + +#: view/kateview.cpp:1050 +#, kde-format +msgid "Select Word Left" +msgstr "Izaberi riječ lijevo" + +#: view/kateview.cpp:1060 +#, kde-format +msgid "Move Word Right" +msgstr "Pomjeri riječ desno" + +#: view/kateview.cpp:1066 +#, kde-format +msgid "Select Character Right" +msgstr "Izaberi znak desno" + +#: view/kateview.cpp:1072 +#, kde-format +msgid "Select Word Right" +msgstr "Izaberi riječ desno" + +#: view/kateview.cpp:1082 +#, fuzzy, kde-format +#| msgid "Automatic Spell Checking" +msgid "Start the Marked Selection" +msgstr "Automatska provjera pravopisa" + +#: view/kateview.cpp:1083 +#, kde-format +msgid "" +"Emulate the Emacs-like selection mode, where the beginning is marked and " +"then the selection is continuously updated." +msgstr "" + +#: view/kateview.cpp:1088 +#, kde-format +msgid "Move to Beginning of Line" +msgstr "Idi na početak reda" + +#: view/kateview.cpp:1094 +#, kde-format +msgid "Move to Beginning of Document" +msgstr "Idi na početak dokumenta" + +#: view/kateview.cpp:1100 +#, kde-format +msgid "Select to Beginning of Line" +msgstr "Izaberi do početka reda" + +#: view/kateview.cpp:1110 +#, kde-format +msgid "Select to Beginning of Document" +msgstr "Izaberi do početka dokumenta" + +#: view/kateview.cpp:1120 +#, kde-format +msgid "Move to End of Line" +msgstr "Idi na kraj reda" + +#: view/kateview.cpp:1126 +#, kde-format +msgid "Move to End of Document" +msgstr "Idi na kraj dokumenta" + +#: view/kateview.cpp:1132 +#, kde-format +msgid "Select to End of Line" +msgstr "Izaberi do kraja reda" + +#: view/kateview.cpp:1142 +#, kde-format +msgid "Select to End of Document" +msgstr "Izaberi do kraja dokumenta" + +#: view/kateview.cpp:1152 +#, kde-format +msgid "Select to Previous Line" +msgstr "Izaberi do prethodnog reda" + +#: view/kateview.cpp:1158 +#, kde-format +msgid "Scroll Line Up" +msgstr "Sklizni red nagore" + +#: view/kateview.cpp:1167 +#, kde-format +msgid "Move to Next Line" +msgstr "Pomjeri na sljedeći red" + +#: view/kateview.cpp:1173 +#, kde-format +msgid "Move to Previous Line" +msgstr "Pomjeri na prethodni red" + +#: view/kateview.cpp:1179 +#, kde-format +msgid "Move Cursor Right" +msgstr "Pomjeri kursor desno" + +#: view/kateview.cpp:1185 +#, kde-format +msgid "Move Cursor Left" +msgstr "Pomjeri kursor lijevo" + +#: view/kateview.cpp:1191 +#, kde-format +msgid "Select to Next Line" +msgstr "Izaberi do sljedećeg reda" + +#: view/kateview.cpp:1197 +#, kde-format +msgid "Scroll Line Down" +msgstr "Sklizni red nadolje" + +#: view/kateview.cpp:1206 +#, kde-format +msgid "Scroll Page Up" +msgstr "Sklizni stranicu nagore" + +#: view/kateview.cpp:1212 +#, kde-format +msgid "Select Page Up" +msgstr "Izaberi stranicu nagore" + +#: view/kateview.cpp:1218 +#, kde-format +msgid "Move to Top of View" +msgstr "Idi na vrh prikaza" + +#: view/kateview.cpp:1224 +#, kde-format +msgid "Select to Top of View" +msgstr "Izaberi do vrha prikaza" + +#: view/kateview.cpp:1230 +#, kde-format +msgid "Scroll Page Down" +msgstr "Sklizni stranicu nadolje" + +#: view/kateview.cpp:1236 +#, kde-format +msgid "Select Page Down" +msgstr "Izaberi stranicu nadolje" + +#: view/kateview.cpp:1242 +#, kde-format +msgid "Move to Bottom of View" +msgstr "Idi na dno prikaza" + +#: view/kateview.cpp:1248 +#, kde-format +msgid "Select to Bottom of View" +msgstr "Izaberi do dna prikaza" + +#: view/kateview.cpp:1254 +#, fuzzy, kde-format +#| msgid "Move to Matching Bracket" +msgid "Go to Matching Bracket" +msgstr "Idi na parnjačku zagradu" + +#: view/kateview.cpp:1260 +#, kde-format +msgid "Select to Matching Bracket" +msgstr "Izaberi do parnjačke zagrade" + +#: view/kateview.cpp:1267 +#, fuzzy, kde-format +#| msgid "Move Word Right" +msgid "Move Sub-Word Right" +msgstr "Pomjeri riječ desno" + +#: view/kateview.cpp:1274 +#, fuzzy, kde-format +#| msgid "Select Word Right" +msgid "Select Sub-Word Right" +msgstr "Izaberi riječ desno" + +#: view/kateview.cpp:1281 +#, fuzzy, kde-format +#| msgid "Move Word Left" +msgid "Move Sub-Word Left" +msgstr "Pomjeri riječ lijevo" + +#: view/kateview.cpp:1288 +#, fuzzy, kde-format +#| msgid "Select Word Left" +msgid "Select Sub-Word Left" +msgstr "Izaberi riječ lijevo" + +#: view/kateview.cpp:1298 +#, kde-format +msgid "Transpose Characters" +msgstr "Premetni znakove" + +#: view/kateview.cpp:1303 +#, fuzzy, kde-format +#| msgid "Transpose Characters" +msgid "Transpose Words" +msgstr "Premetni znakove" + +#: view/kateview.cpp:1308 +#, kde-format +msgid "Delete Line" +msgstr "Obriši red" + +#: view/kateview.cpp:1314 +#, kde-format +msgid "Delete Word Left" +msgstr "Obriši riječ lijevo" + +#: view/kateview.cpp:1320 +#, kde-format +msgid "Delete Word Right" +msgstr "Obriši riječ desno" + +#: view/kateview.cpp:1326 +#, kde-format +msgid "Delete Next Character" +msgstr "Obriši sljedeći znak" + +#: view/kateview.cpp:1332 +#, kde-format +msgid "Backspace" +msgstr "Nazad" + +#: view/kateview.cpp:1340 +#, fuzzy, kde-format +#| msgid "Insert Tab" +msgid "Insert Tab Character" +msgstr "Umetni tabulator" + +#: view/kateview.cpp:1345 +#, kde-format +msgid "Insert Smart Newline" +msgstr "Umetni pametno novi red" + +#: view/kateview.cpp:1346 +#, kde-format +msgid "" +"Insert newline including leading characters of the current line which are " +"not letters or numbers." +msgstr "" +"Umetnite novi red uključujući i vodeće znakove tekućeg koji nisu ni slova ni " +"brojevi." + +#: view/kateview.cpp:1354 +#, fuzzy, kde-format +#| msgid "Insert Smart Newline" +msgid "Insert a Non-Indented Newline" +msgstr "Umetni pametno novi red" + +#: view/kateview.cpp:1355 +#, kde-format +msgid "" +"Insert a new line without indentation, regardless of indentation settings." +msgstr "" + +#: view/kateview.cpp:1363 +#, kde-format +msgid "Insert a Newline Above Current Line" +msgstr "" + +#: view/kateview.cpp:1364 +#, kde-format +msgid "" +"Insert a new line above current line without modifying the current line." +msgstr "" + +#: view/kateview.cpp:1372 +#, kde-format +msgid "Insert a Newline Below Current Line" +msgstr "" + +#: view/kateview.cpp:1373 +#, kde-format +msgid "" +"Insert a new line below current line without modifying the current line." +msgstr "" + +#: view/kateview.cpp:1382 +#, kde-format +msgid "&Indent" +msgstr "&Uvuci" + +#: view/kateview.cpp:1384 +#, kde-format +msgid "" +"Use this to indent a selected block of text.

You can configure " +"whether tabs should be honored and used or replaced with spaces, in the " +"configuration dialog." +msgstr "" +"Uvucite izabrani blok teksta.

U dijalogu za podešavanje " +"možete odrediti da li treba poštovati i koristiti tabulatore, ili ih " +"smjenjivati razmacima." + +#: view/kateview.cpp:1391 +#, kde-format +msgid "&Unindent" +msgstr "&Izvuci" + +#: view/kateview.cpp:1392 +#, kde-format +msgid "Use this to unindent a selected block of text." +msgstr "Izvucite izabrani blok teksta." + +#: view/kateview.cpp:1398 +#, fuzzy, kde-format +#| msgid "Delete Word Left" +msgid "Delete Sub-Word Left" +msgstr "Obriši riječ lijevo" + +#: view/kateview.cpp:1405 +#, fuzzy, kde-format +#| msgid "Delete Word Right" +msgid "Delete Sub-Word Right" +msgstr "Obriši riječ desno" + +#: view/kateview.cpp:1426 +#, kde-format +msgid "Fold Toplevel Nodes" +msgstr "Umotaj čvorove na najvišem nivou" + +#: view/kateview.cpp:1430 +#, fuzzy, kde-format +#| msgid "Fold Toplevel Nodes" +msgid "Unfold Toplevel Nodes" +msgstr "Umotaj čvorove na najvišem nivou" + +#: view/kateview.cpp:1434 +#, fuzzy, kde-format +#| msgid "Fold Current Node" +msgid "Toggle Current Node" +msgstr "Zamotaj trenutni čvor" + +#: view/kateview.cpp:1438 +#, fuzzy, kde-format +#| msgid "Toggle Comment" +msgid "Toggle Contained Nodes" +msgstr "Zakomentariši/otkomentariši" + +#: view/kateview.cpp:1447 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "Say current selection or document" +msgstr "Izaberi cjelokupan tekst u dokumentu." + +#: view/kateview.cpp:1457 +#, fuzzy, kde-format +#| msgid "Save the current document" +msgid "Stop current output" +msgstr "Snimi trenutni dokument" + +#: view/kateview.cpp:1463 +#, fuzzy, kde-format +#| msgid "Save the current document" +msgid "Pause current output" +msgstr "Snimi trenutni dokument" + +#: view/kateview.cpp:1469 +#, fuzzy, kde-format +#| msgid "Save the current document" +msgid "Resume current output" +msgstr "Snimi trenutni dokument" + +#: view/kateview.cpp:1640 +#, kde-format +msgid "(R/O) %1" +msgstr "(R/O) %1" + +#: view/kateview.cpp:1828 +#, kde-format +msgid "Camel case movement disabled" +msgstr "" + +#: view/kateview.cpp:1830 +#, kde-format +msgid "Camel case movement enabled" +msgstr "" + +#: view/kateview.cpp:2349 +#, fuzzy, kde-format +#| msgid "Search mode" +msgid "Search wrapped" +msgstr "Režim traženja" + +#: view/kateview.cpp:3043 +#, fuzzy, kde-format +#| msgid "Save File" +msgid "Open File" +msgstr "Snimi datoteku" + +#: view/kateview.cpp:3984 +#, fuzzy, kde-format +#| msgid "&Align" +msgid "Align On" +msgstr "&Poravnaj" + +#: view/kateview.cpp:3984 +#, kde-format +msgid "Alignment pattern:" +msgstr "" + +#: view/kateview.cpp:5068 +#, kde-format +msgid "Export File as HTML" +msgstr "" + +#: view/kateviewhelpers.cpp:302 view/kateviewhelpers.cpp:351 +#: view/kateviewhelpers.cpp:1012 +#, kde-format +msgctxt "from line - to line" +msgid "

%1

%2
" +msgstr "
%1

%2
" + +#: view/kateviewhelpers.cpp:1212 +#, kde-format +msgid "Available Commands" +msgstr "Naredbe na raspolaganju" + +#: view/kateviewhelpers.cpp:1213 +#, kde-format +msgid "" +"

For help on individual commands, do 'help <command>'" +msgstr "" +"

Za pomoć za pojedinačnu naredbu, kucajte help <naredba>

" + +#: view/kateviewhelpers.cpp:1220 +#, kde-format +msgid "No help for '%1'" +msgstr "Nema pomoći za %1" + +#: view/kateviewhelpers.cpp:1223 +#, kde-format +msgid "No such command %1" +msgstr "Naredba %1 ne postoji" + +#: view/kateviewhelpers.cpp:1229 +#, kde-format +msgid "" +"

This is the Katepart command line.
Syntax: command " +"[ arguments ]
For a list of available commands, enter " +"help list
For help for individual commands, enter " +"help <command>

" +msgstr "" +"

Ovo je komandna linija dijela uređivača teksta.
Sintaksa: " +"naredba [ argumenti ]
Za spisak dostupnih naredbi, " +"unesite help list
Za pomoć za pojedinačne naredbe, " +"unesite help <naredba>

" + +#: view/kateviewhelpers.cpp:1317 vimode/emulatedcommandbar/commandmode.cpp:211 +#, kde-format +msgid "No such command: \"%1\"" +msgstr "Naredba %1 ne postoji." + +#: view/kateviewhelpers.cpp:1320 vimode/emulatedcommandbar/commandmode.cpp:193 +#, kde-format +msgid "Error: No range allowed for command \"%1\"." +msgstr "Greška: Opseg nije dozvoljen za naredbu „%1“." + +#: view/kateviewhelpers.cpp:1330 vimode/emulatedcommandbar/commandmode.cpp:197 +#, kde-format +msgid "Success: " +msgstr "Uspjeh: " + +#: view/kateviewhelpers.cpp:1344 vimode/emulatedcommandbar/commandmode.cpp:206 +#, kde-format +msgid "Command \"%1\" failed." +msgstr "Naredba %1 nije uspjela." + +#: view/kateviewhelpers.cpp:2632 view/kateviewhelpers.cpp:2633 +#, kde-format +msgid "Mark Type %1" +msgstr "Obilježje tipa %1" + +#: view/kateviewhelpers.cpp:2656 +#, kde-format +msgid "Set Default Mark Type" +msgstr "Postavi podrazumijevani tip obilježja" + +#: view/kateviewhelpers.cpp:2801 +#, kde-format +msgid "Disable Annotation Bar" +msgstr "Isključi traku tumačenja" + +#: view/screenshotdialog.cpp:175 +#, fuzzy, kde-format +#| msgid "Open/Save" +msgid "Save" +msgstr "Radnje s datotekom" + +#: view/screenshotdialog.cpp:176 +#, fuzzy, kde-format +#| msgid "Save &Copy As..." +msgid "Copy" +msgstr "Snimi &kopiju kao..." + +#: view/screenshotdialog.cpp:177 +#, fuzzy, kde-format +#| msgid "&Background Color..." +msgctxt "@action:button" +msgid "Background Color…" +msgstr "Boja &pozadine..." + +#: view/screenshotdialog.cpp:179 +#, fuzzy, kde-format +#| msgid "Text Decorations" +msgid "Show Extra Decorations" +msgstr "Dekoracije Teksta" + +# skip-rule: linije +#: view/screenshotdialog.cpp:180 +#, fuzzy, kde-format +#| msgid "Show i&ndentation lines" +msgid "Show Window Decorations" +msgstr "Prikaži linije &uvlačenja" + +#: view/screenshotdialog.cpp:185 +#, fuzzy, kde-format +#| msgid "Automatic Spell Checking" +msgctxt "@title:window" +msgid "Take Screenshot of Selection" +msgstr "Automatska provjera pravopisa" + +# >> @action:inmenu +#: view/screenshotdialog.cpp:257 +#, fuzzy, kde-format +#| msgid "Show &Line Numbers" +msgid "Don't Show Line Numbers" +msgstr "&Brojevi redova" + +# >> @action:inmenu +#: view/screenshotdialog.cpp:258 +#, fuzzy, kde-format +#| msgid "Show &Line Numbers" +msgid "Show Line Numbers From 1" +msgstr "&Brojevi redova" + +# >> @action:inmenu +#: view/screenshotdialog.cpp:259 +#, fuzzy, kde-format +#| msgid "Show &Line Numbers" +msgid "Show Actual Line Numbers" +msgstr "&Brojevi redova" + +#: view/screenshotdialog.cpp:422 +#, kde-format +msgctxt "@title:window" +msgid "Screenshot saving failed" +msgstr "" + +#: view/screenshotdialog.cpp:422 +#, kde-format +msgid "Screenshot saving failed: %1" +msgstr "" + +#: vimode/appcommands.cpp:67 +#, fuzzy, kde-format +#| msgid "Document written to disk" +msgid "All documents written to disk" +msgstr "Dokument upisan na disk" + +#: vimode/appcommands.cpp:70 +#, kde-format +msgid "Document written to disk" +msgstr "Dokument upisan na disk" + +#: vimode/appcommands.cpp:202 +#, fuzzy, kde-format +#| msgid "" +#| "

w/wa — write document(s) to disk

Usage: " +#| "w[a]

Writes the current document(s) to disk. It can " +#| "be called in two ways:
w — writes the current " +#| "document to disk
wa — writes all document to disk.

If no file name is associated with the document, a file dialog will " +#| "be shown.

" +msgid "" +"

w/wa — write document(s) to disk

Usage: w[a]

Writes the current document(s) to disk. It can be called in " +"two ways:
w — writes the current document to disk
" +"wa — writes all documents to disk.

If no file name is " +"associated with the document, a file dialog will be shown.

" +msgstr "" +"

w/wa — piši dokument(e) disk

Upotreba: w[a]

Piše trenutne dokument(e) na disk. Može se pozvati na dva " +"načina:
w — piše trenutni dokument na disk
" +"wa — piše sve dokumente na disk.

Ako nijedno ime " +"datoteke nije vezano s dokumentom, prikazaće se datotečni dijalog.

" + +#: vimode/appcommands.cpp:213 +#, fuzzy, kde-format +#| msgid "" +#| "

w/wa — write document(s) to disk

Usage: " +#| "w[a]

Writes the current document(s) to disk. It can " +#| "be called in two ways:
w — writes the current " +#| "document to disk
wa — writes all document to disk.

If no file name is associated with the document, a file dialog will " +#| "be shown.

" +msgid "" +"

q/qa/wq/wqa — [write and] quit

Usage: [w]q[a]

Quits the application. If w is prepended, it also " +"writes the document(s) to disk. This command can be called in several ways:" +"
q — closes the current view.
qa — " +"closes all views, effectively quitting the application.
wq " +"— writes the current document to disk and closes its view.
" +"wqa — writes all documents to disk and quits.

In all " +"cases, if the view being closed is the last view, the application quits. If " +"no file name is associated with the document and it should be written to " +"disk, a file dialog will be shown.

" +msgstr "" +"

w/wa — piši dokument(e) disk

Upotreba: w[a]

Piše trenutne dokument(e) na disk. Može se pozvati na dva " +"načina:
w — piše trenutni dokument na disk
" +"wa — piše sve dokumente na disk.

Ako nijedno ime " +"datoteke nije vezano s dokumentom, prikazaće se datotečni dijalog.

" + +#: vimode/appcommands.cpp:228 +#, fuzzy, kde-format +#| msgid "" +#| "

w/wa — write document(s) to disk

Usage: " +#| "w[a]

Writes the current document(s) to disk. It can " +#| "be called in two ways:
w — writes the current " +#| "document to disk
wa — writes all document to disk.

If no file name is associated with the document, a file dialog will " +#| "be shown.

" +msgid "" +"

x/xa — write and quit

Usage: x[a]

Saves document(s) and quits (exits). This command can be called " +"in two ways:
x — closes the current view.
xa — closes all views, effectively quitting the application.

In " +"all cases, if the view being closed is the last view, the application quits. " +"If no file name is associated with the document and it should be written to " +"disk, a file dialog will be shown.

Unlike the 'w' commands, this " +"command only writes the document if it is modified.

" +msgstr "" +"

w/wa — piši dokument(e) disk

Upotreba: w[a]

Piše trenutne dokument(e) na disk. Može se pozvati na dva " +"načina:
w — piše trenutni dokument na disk
" +"wa — piše sve dokumente na disk.

Ako nijedno ime " +"datoteke nije vezano s dokumentom, prikazaće se datotečni dijalog.

" + +#: vimode/appcommands.cpp:242 +#, kde-format +msgid "" +"

sp,split— Split horizontally the current view into two

Usage: sp[lit]

The result is two views on the " +"same document.

" +msgstr "" + +#: vimode/appcommands.cpp:248 +#, kde-format +msgid "" +"

vs,vsplit— Split vertically the current view into two

Usage: vs[plit]

The result is two views on the " +"same document.

" +msgstr "" + +#: vimode/appcommands.cpp:254 +#, kde-format +msgid "" +"

clo[se]— Close the current view

Usage: clo[se]

After executing it, the current view will be closed.

" +msgstr "" + +#: vimode/appcommands.cpp:260 +#, fuzzy, kde-format +#| msgid "" +#| "

w/wa — write document(s) to disk

Usage: " +#| "w[a]

Writes the current document(s) to disk. It can " +#| "be called in two ways:
w — writes the current " +#| "document to disk
wa — writes all document to disk.

If no file name is associated with the document, a file dialog will " +#| "be shown.

" +msgid "" +"

[v]new — split view and create new document

Usage: " +"[v]new

Splits the current view and opens a new " +"document in the new view. This command can be called in two ways:
" +"new — splits the view horizontally and opens a new document." +"
vnew — splits the view vertically and opens a new " +"document.

" +msgstr "" +"

w/wa — piši dokument(e) disk

Upotreba: w[a]

Piše trenutne dokument(e) na disk. Može se pozvati na dva " +"načina:
w — piše trenutni dokument na disk
" +"wa — piše sve dokumente na disk.

Ako nijedno ime " +"datoteke nije vezano s dokumentom, prikazaće se datotečni dijalog.

" + +#: vimode/appcommands.cpp:270 +#, kde-format +msgid "" +"

e[dit] — reload current document

Usage: e[dit]

Starts editing the current document again. This is " +"useful to re-edit the current file, when it was modified on disk.

" +msgstr "" + +#: vimode/appcommands.cpp:518 +#, kde-format +msgid "" +"

b,buffer — Edit document N from the document list

Usage: b[uffer] [N]

" +msgstr "" + +#: vimode/appcommands.cpp:523 +#, kde-format +msgid "" +"

bp,bprev — previous buffer

Usage: bp[revious] " +"[N]

Goes to [N]th previous document (\"buffer" +"\") in document list.

[N] defaults to one.

Wraps " +"around the start of the document list.

" +msgstr "" + +#: vimode/appcommands.cpp:531 +#, kde-format +msgid "" +"

bn,bnext — switch to next document

Usage: " +"bn[ext] [N]

Goes to [N]th next document " +"(\"buffer\") in document list.[N] defaults to one.

Wraps around the end of the document list.

" +msgstr "" + +#: vimode/appcommands.cpp:539 +#, kde-format +msgid "" +"

bf,bfirst — first document

Usage: bf[irst]

Goes to the first document (\"buffer\") in document " +"list.

" +msgstr "" + +#: vimode/appcommands.cpp:545 +#, kde-format +msgid "" +"

bl,blast — last document

Usage: bl[ast]

Goes to the last document (\"buffer\") in document " +"list.

" +msgstr "" + +#: vimode/appcommands.cpp:551 +#, kde-format +msgid "

ls

list current buffers

" +msgstr "" + +#: vimode/cmds.cpp:52 +#, kde-format +msgid "Missing argument. Usage: %1 " +msgstr "Nedostaje argumente. Upotreba: %1 " + +#: vimode/cmds.cpp:68 +#, kde-format +msgid "No mapping found for \"%1\"" +msgstr "Nema mapiranja za „%1“" + +#: vimode/cmds.cpp:71 +#, kde-format +msgid "\"%1\" is mapped to \"%2\"" +msgstr "„%1“ je mapirano na „%2“" + +#: vimode/cmds.cpp:77 +#, kde-format +msgid "Missing argument(s). Usage: %1 []" +msgstr "Nedostaju argumenti. Upotreba: %1 <od> [<do>]" + +#: vimode/cmds.cpp:145 vimode/cmds.cpp:161 +#, kde-format +msgid "Wrong arguments" +msgstr "Pogrešni argumenti" + +#: vimode/config/configtab.cpp:205 +#, kde-format +msgid "Unable to open the config file for reading." +msgstr "Ne mogu otvoriti konfiguracijsku datoteku za čitanje." + +#: vimode/config/configtab.cpp:205 +#, kde-format +msgid "Unable to open file" +msgstr "Ne mogu da otvorim datoteku" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkViCommandsOverride) +#: vimode/config/configwidget.ui:35 +#, kde-format +msgid "" +"When selected, vi commands will override Kate's built-in commands. For " +"example: Ctrl+R will redo, and override the standard action (showing the " +"search and replace dialog)." +msgstr "" +"Kada je izabrano, naredbe editora VI zamjenjuju naredbe editora Kate. Na " +"primjer, Ctrl+R će opozivati, umjesto da priziva dijalog za pretragu i " +"zamjenu." + +#. i18n: ectx: property (text), widget (QCheckBox, chkViCommandsOverride) +#: vimode/config/configwidget.ui:38 +#, kde-format +msgid "Let Vi commands override Kate shortcuts" +msgstr "Neka Vi naredbe zamijene Kate prečice" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkViRelLineNumbers) +#: vimode/config/configwidget.ui:45 +#, fuzzy, kde-format +#| msgid "Show/hide the line numbers on the left hand side of the view." +msgid "" +"Show the line number relative to the line with the cursor in front of each " +"line." +msgstr "Prikaži/sakrij brojeve redova na lijevoj strani prikaza." + +#. i18n: ectx: property (text), widget (QCheckBox, chkViRelLineNumbers) +#: vimode/config/configwidget.ui:48 +#, fuzzy, kde-format +#| msgid "Print line &numbers" +msgid "Display relative line numbers" +msgstr "Štampaj brojeve &redova" + +#. i18n: ectx: property (whatsThis), widget (QGroupBox, groupBox) +#: vimode/config/configwidget.ui:63 +#, kde-format +msgid "" +"Key mapping is used to change the meaning of typed keys. This allows you to " +"move commands to other keys or make special keypresses for doing a series of " +"commands.\n" +"\n" +"Example:\n" +"\"\" → \"I-- \"\n" +"\n" +"This will prepend \"-- \" to a line when pressing F2." +msgstr "" +"

Mapiranje tastera se koristi za izmjenu značenja pritisnutih " +"tastera. Ovim možete premjestiti naredbe na druge tastere ili sastaviti " +"posebne kombinacije za izvođenje više naredbi.

Na primjer, „<" +"F2;>“ → „I-- <esc>“ dodaje „-- “ na početak reda kad se " +"pritisne F2.

" + +#. i18n: ectx: property (title), widget (QGroupBox, groupBox) +#: vimode/config/configwidget.ui:66 +#, kde-format +msgid "Key Mapping" +msgstr "Mapiranje tastera" + +#. i18n: ectx: attribute (title), widget (QWidget, normalTab) +#: vimode/config/configwidget.ui:76 +#, kde-format +msgid "Normal mode" +msgstr "Običan režim" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:95 vimode/config/configwidget.ui:133 +#: vimode/config/configwidget.ui:171 +#, kde-format +msgid "Command" +msgstr "naredba" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:100 vimode/config/configwidget.ui:138 +#: vimode/config/configwidget.ui:176 +#, kde-format +msgid "Replacement" +msgstr "zamjena" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:105 vimode/config/configwidget.ui:143 +#: vimode/config/configwidget.ui:181 +#, kde-format +msgid "Recursive?" +msgstr "Rekurzivno?" + +#. i18n: ectx: attribute (title), widget (QWidget, insertTab) +#: vimode/config/configwidget.ui:114 +#, fuzzy, kde-format +#| msgid "Insert Tab" +msgid "Insert mode" +msgstr "Umetni tabulator" + +#. i18n: ectx: attribute (title), widget (QWidget, visualTab) +#: vimode/config/configwidget.ui:152 +#, fuzzy, kde-format +#| msgid "Normal mode" +msgid "Visual mode" +msgstr "Običan režim" + +#. i18n: ectx: property (text), widget (QPushButton, btnRemoveSelectedRows) +#: vimode/config/configwidget.ui:195 +#, kde-format +msgid "Remove selected" +msgstr "Ukloni izabrano" + +#. i18n: ectx: property (text), widget (QPushButton, btnAddNewRow) +#: vimode/config/configwidget.ui:202 +#, kde-format +msgid "Add new mapping" +msgstr "Dodaj novo mapiranje" + +#. i18n: ectx: property (toolTip), widget (QPushButton, btnImportNormal) +#: vimode/config/configwidget.ui:209 +#, kde-format +msgid "" +"Read a vimrc file and attempt to import mappings specified with the " +"\"[n]noremap\" command." +msgstr "" +"čITA vimrc datoteku i pokušava da uveze mapiranja navedena sa \"[n]noremap\" " +"komandom." + +#. i18n: ectx: property (text), widget (QPushButton, btnImportNormal) +#: vimode/config/configwidget.ui:212 +#, kde-format +msgid "Import from vimrc file" +msgstr "Uvoz iz vimrc datoteke" + +#: vimode/marks.cpp:117 +#, kde-format +msgid "Mark set: %1" +msgstr "Obilježje postavljeno: %1" + +#: vimode/marks.cpp:163 +#, kde-format +msgid "There are no more chars for the next bookmark." +msgstr "Nema više znakova na sljedeći obilježivaču." + +#: vimode/modes/insertvimode.cpp:261 vimode/modes/modebase.cpp:794 +#: vimode/modes/normalvimode.cpp:3567 +#, kde-format +msgid "Nothing in register %1" +msgstr "Ničijeg u registru %1" + +# well-spelled: heks, okt +#: vimode/modes/normalvimode.cpp:1691 +#, kde-format +msgid "'%1' %2, Hex %3, Octal %4" +msgstr "'%1' %2, heks %3, okt %4" + +#: vimode/modes/normalvimode.cpp:2534 +#, kde-format +msgid "Mark not set: %1" +msgstr "Obilježje nije postavljeno: %1" + +#, fuzzy +#~| msgid "The file '%1' was created by another program." +#~ msgid "The file '%1' was created on disk." +#~ msgstr "Neki drugi program je napravio datoteku %1." + +#, fuzzy +#~ msgid "" +#~ "Use this command to copy the currently selected text as HTML to the " +#~ "system clipboard." +#~ msgstr "Kopirajte trenutno izabrani tekst u sistemski klipbord." + +#, fuzzy +#~ msgctxt "Wrap words at (value is at 20 or larger)" +#~ msgid " character" +#~ msgid_plural " characters" +#~ msgstr[0] " znak" +#~ msgstr[1] " znak" +#~ msgstr[2] " znak" + +#, fuzzy +#~| msgid "&Save File As..." +#~ msgid "Save..." +#~ msgstr "&Snimi datoteku kao..." + +#, fuzzy +#~| msgid "Save &Copy As..." +#~ msgid "&Copy..." +#~ msgstr "Snimi &kopiju kao..." + +#, fuzzy +#~ msgid "Other..." +#~ msgstr "drugi" + +#, fuzzy +#~| msgid "&Align" +#~ msgid "&Align On..." +#~ msgstr "&Poravnaj" + +#~ msgid "Change Dictionary..." +#~ msgstr "Promijeni rječnik..." + +#~ msgid "The file %1 does not exist." +#~ msgstr "Datoteka %1 ne postoji." + +#~ msgid "" +#~ "The file %1 could not be loaded, as it was not possible to read from it.\n" +#~ "\n" +#~ "Check if you have read access to this file." +#~ msgstr "" +#~ "Datoteka %1 nije mogla biti učitana, pošto se ne " +#~ "može čitati.\n" +#~ "\n" +#~ "Provjerite da li imate dozvolu čitanja za ovu datoteku." + +#, fuzzy +#~| msgid "" +#~| "The file %1 was opened with %2 encoding but contained invalid " +#~| "characters. It is set to read-only mode, as saving might destroy its " +#~| "content. Either reopen the file with the correct encoding chosen or " +#~| "enable the read-write mode again in the menu to be able to edit it." +#~ msgid "" +#~ "The file %1 was opened with %2 encoding but contained invalid characters. " +#~ "It is set to read-only mode, as saving might destroy its content. Either " +#~ "reopen the file with the correct encoding chosen or enable the read-write " +#~ "mode again in the tools menu to be able to edit it." +#~ msgstr "" +#~ "Datoteka %1 otvorena je sa kodiranjem %2, ali sadrži " +#~ "neispravne znake. Postavljen je režim samo‑za‑čitanje, jer bi sadržaj " +#~ "mogao biti oštećen upisivanjem. Ili ponovo otvorite datoteku sa tačnim " +#~ "kodiranjem, ili ručno uključite režim čitanja-pisanja ako ipak želite da " +#~ "ga uređujete." + +#, fuzzy +#~ msgid "" +#~ "The file %1 was opened and contained lines longer than the configured " +#~ "Line Length Limit (%2 characters).
The longest of those lines was %3 " +#~ "characters long
Those lines were wrapped and the document is set to " +#~ "read-only mode, as saving will modify its content." +#~ msgstr "" +#~ "Datoteka %1 je otvorena i sadržava linije duže od konfigurisanog limita " +#~ "dužine reda(%2 znaka).
Ti redovi su prelomljeni i dokument je " +#~ "postavljen u režim za čitanje, kao ušteda će se izmijeniti njegov sadržaj." + +#~ msgid "Error loading script %1\n" +#~ msgstr "Greška pri učitavanju skripte %1\n" + +#~ msgid "Namespaces" +#~ msgstr "Imenski prostori" + +#~ msgid "Classes" +#~ msgstr "Klase" + +#~ msgid "Structs" +#~ msgstr "Strukture" + +#~ msgid "Unions" +#~ msgstr "Unije" + +#~ msgid "Functions" +#~ msgstr "Funkcije" + +#~ msgid "Enumerations" +#~ msgstr "Nabrajači" + +#, fuzzy +#~| msgid "Expand abbreviation" +#~ msgctxt "Script command name" +#~ msgid "Expand abbreviation" +#~ msgstr "Raširi skraćenicu" + +#, fuzzy +#~| msgid "Toggle comment" +#~ msgctxt "Script command name" +#~ msgid "Toggle comment" +#~ msgstr "Zakomentariši/otkomentariši" + +#~ msgid "Choo&se Font..." +#~ msgstr "&Izaberite font..." + +#, fuzzy +#~| msgid "Quick Coding" +#~ msgctxt "Script command category" +#~ msgid "Quick Coding" +#~ msgstr "Brzo kodiranje" + +#~ msgid "Expand Quick Coding Abbreviation" +#~ msgstr "Raširi skraćenicu brzog kodiranja" + +# >> %1 is an application nami +#, fuzzy +#~| msgid "&Default schema for %1:" +#~ msgid "&Default theme for %1:" +#~ msgstr "&Podrazumijevana šema za %1:" + +#, fuzzy +#~| msgid "Automatic Spell Checking" +#~ msgid "Automatic Selection" +#~ msgstr "Automatska provjera pravopisa" + +#, fuzzy +#~| msgid "" +#~| "Meaning of current icon: Document was modified or deleted by another " +#~| "program" +#~ msgid "Meaning of current icon: Document was modified or deleted on disk" +#~ msgstr "" +#~ "Značenje trenutne ikone: Neki drugi program je izmijenio ili modifikovao " +#~ "dokument." + +#, fuzzy +#~| msgid "" +#~| "Meaning of current icon: Document was modified or deleted by another " +#~| "program" +#~ msgid "Meaning of current icon: Document is in read-only mode" +#~ msgstr "" +#~ "Značenje trenutne ikone: Neki drugi program je izmijenio ili modifikovao " +#~ "dokument." + +#~ msgctxt "Autoindent mode" +#~ msgid "Lua" +#~ msgstr "Lua" + +# >> @action:inmenu +#~ msgid "Show &folding markers" +#~ msgstr "&Ručke za sažimanje" + +#~ msgid "Show &icon border" +#~ msgstr "Pojas &ikona" + +#~ msgid "Show line modification markers" +#~ msgstr "Prikaži oznake izmijenjene linije" + +#~ msgid "" +#~ "Choose how the bookmarks should be ordered in the Bookmarks menu." +#~ msgstr "Izaberite kako će obilježivači biti riđani u meniju." + +#, fuzzy +#~| msgid "By c&reation" +#~ msgid "B&y creation" +#~ msgstr "po &nastanku" + +#, fuzzy +#~| msgid "By &position" +#~ msgid "By posi&tion" +#~ msgstr "po &položaju" + +#~ msgid "" +#~ "

Backing up on save will cause Kate to copy the disk file to '<" +#~ "prefix><filename><suffix>' before saving changes.

The " +#~ "suffix defaults to ~ and prefix is empty by default." +#~ msgstr "" +#~ "

Kada zadate da se datoteka sačuva, Kate će prvo njegov prethodni " +#~ "sadržaj kopirati u rezervnu datoteku po imenu <prefiks>" +#~ "<ime><sufiks>, pa ga tek onda prebrisati novim " +#~ "sadržajem.

Podrazumijevano je prefiks prazan, a sufiks je " +#~ "~.

" + +#~ msgid "Backup on Save" +#~ msgstr "Napravi rezervnu kopiju pri snimanju" + +#~ msgid "&Prefix:" +#~ msgstr "&Prefiks:" + +#~ msgid "&Suffix:" +#~ msgstr "&Sufiks:" + +#, fuzzy +#~ msgid "Disable" +#~ msgstr "isključeno" + +#, fuzzy +#~| msgid "Folder Config File" +#~ msgid "Directory for swp files" +#~ msgstr "Konfiguraciona datoteka direktorija" + +#, fuzzy +#~ msgid "" +#~ "Be aware, that disabling the swap file synchronization may lead to data " +#~ "loss in case of a system crash." +#~ msgstr "" +#~ "Ako je ovo uključeno, zamjenska datoteka se neće namjerno pisati svakih " +#~ "15 sekundi. Pazite jer isključenje sinhronizacije s zamjenskom datotekom " +#~ "vodi gubitku podatakau slučaju sistemskog kraha." + +#~ msgid "Enable static &word wrap" +#~ msgstr "Uključi &statičko prelamanje teksta" + +# >> @action:inmenu +#, fuzzy +#~| msgid "Show Static &Word Wrap Marker" +#~ msgid "Show static word wra&p marker" +#~ msgstr "&Graničnik statičkog prijeloma" + +#, fuzzy +#~| msgid "Vi Input Mode" +#~ msgid "Input Mode" +#~ msgstr "Režim unosa poput editora 'vi'" + +#, fuzzy +#~ msgid "Enable automatic brackets" +#~ msgstr "Izaberi do parnjačke zagrade" + +#, fuzzy +#~| msgid "Align dynamically wrapped lines to indentation depth:" +#~ msgid "&Align dynamically wrapped lines to indentation depth:" +#~ msgstr "Poravnaj dinamički prelomljene redove na dubinu uvlačenja:" + +#~ msgid "" +#~ "If this option is checked, the text lines will be wrapped at the view " +#~ "border on the screen." +#~ msgstr "" +#~ "Ako je ova opcija uključena, redovi teksta će biti prelamani na ivici " +#~ "prikaza na ekranu." + +#, fuzzy +#~| msgid "Dynamic &word wrap indicators (if applicable):" +#~ msgid "D&ynamic word wrap indicators (if applicable):" +#~ msgstr "&Pokazatelji dinamičkog prelamanja (kada ima smisla):" + +#, fuzzy +#~| msgctxt "value for variale remove-trailing-spaces" +#~| msgid "all" +#~ msgid "All" +#~ msgstr "sve" + +#, fuzzy +#~| msgid "Highlighting for Ferite" +#~ msgid "Highlight marker size:" +#~ msgstr "Isticanje za Ferite" + +#, fuzzy +#~| msgid "&Highlight tabulators" +#~ msgid "Highlight tabulators" +#~ msgstr "&Istakni tabulatore" + +#~ msgid "Prefix" +#~ msgstr "Prefiks" + +#~ msgid "Icon" +#~ msgstr "Ikona" + +#~ msgid "Scope" +#~ msgstr "Doseg" + +#~ msgid "Name" +#~ msgstr "ime" + +#~ msgid "Arguments" +#~ msgstr "Argumenti" + +#~ msgid "Postfix" +#~ msgstr "Postfiks" + +#~ msgid "Public" +#~ msgstr "Javno" + +#~ msgid "Protected" +#~ msgstr "Zaštićeno" + +#~ msgid "Private" +#~ msgstr "Privatno" + +#~ msgid "Static" +#~ msgstr "Statičko" + +#~ msgid "Constant" +#~ msgstr "Konstantno" + +#~ msgid "Namespace" +#~ msgstr "Imenski prostor" + +#~ msgid "Class" +#~ msgstr "Klasa" + +#~ msgid "Struct" +#~ msgstr "Struktura" + +#~ msgid "Union" +#~ msgstr "Unija" + +#~ msgid "Function" +#~ msgstr "Funkcija" + +#~ msgid "Variable" +#~ msgstr "Promjenljiva" + +#~ msgid "Enumeration" +#~ msgstr "Nabrajač" + +#~ msgid "Template" +#~ msgstr "Šablon" + +#~ msgid "Virtual" +#~ msgstr "Virtuelno" + +#~ msgid "Override" +#~ msgstr "Potiskivanje" + +#~ msgid "Inline" +#~ msgstr "Utkano" + +#~ msgid "Friend" +#~ msgstr "Prijatelj" + +#~ msgid "Signal" +#~ msgstr "Signal" + +#~ msgid "Slot" +#~ msgstr "Slot" + +#~ msgid "Local Scope" +#~ msgstr "Lokalni doseg" + +#~ msgid "Namespace Scope" +#~ msgstr "Imenskoprostorni doseg" + +#~ msgid "Global Scope" +#~ msgstr "Globalni doseg" + +#~ msgid "Unknown Property" +#~ msgstr "Nepoznato svojstvo" + +#~ msgid "Code Completion Configuration" +#~ msgstr "Postava za dopunu koda" + +#~ msgid "Description" +#~ msgstr "opis" + +#~ msgid "Edit Entry..." +#~ msgstr "&Izmijeni unos..." + +#~ msgid "Remove Entry" +#~ msgstr "Ukloni stavku" + +#~ msgid "Add Entry..." +#~ msgstr "Dodaj stavku..." + +#~ msgid "Further Notes" +#~ msgstr "Još napomena" + +#~ msgid "" +#~ "

The entries are accessible through the submenu Commands in the " +#~ "Tools menu. For faster access it is possible to assign " +#~ "shortcuts in the shortcut configuration page after applying the " +#~ "changes.

" +#~ msgstr "" +#~ "

Stavke su dostupne kroz podmeni Naredbe " +#~ "menija Alatke. Pošto se izmjene primijene, moguće " +#~ "je dodijeliti prečice za brži pristup, na stranici postave prečica.

" + +#~ msgid "Edit Command" +#~ msgstr "Izmijeni naredbu" + +#~ msgid "&Associated command:" +#~ msgstr "&Pridružena naredba:" + +#~ msgid "Choose an icon." +#~ msgstr "Izaberite ikonu." + +#~ msgid "

This icon will be displayed in the menu and toolbar.

" +#~ msgstr "

Ova će ikona biti prikazana u meniju i traci alatki.

" + +#~ msgid "&Description:" +#~ msgstr "&Opis:" + +#~ msgid "&Category:" +#~ msgstr "&Kategorija:" + +#~ msgid "Sorting" +#~ msgstr "Ređanje" + +#~ msgid "Alphabetical" +#~ msgstr "Po alfabetu" + +#~ msgid "Reverse" +#~ msgstr "Obrnuto" + +#~ msgid "Case sensitive" +#~ msgstr "Razlikuj veličinu slova" + +#~ msgid "Inheritance depth" +#~ msgstr "Dubina nasljeđivanja" + +#~ msgid "Order of Groupings (select a grouping method to configure):" +#~ msgstr "Redoslijed grupisanja (izaberite metod grupisanja da ga podesite):" + +#~ msgid "^" +#~ msgstr "^" + +#~ msgid "\\/" +#~ msgstr "\\/" + +#~ msgid "Filtering" +#~ msgstr "Filtriranje" + +#~ msgid "Suitable context matches only" +#~ msgstr "Samo pogodna kontekstna poklapanja" + +#~ msgid "Hide completions with the following attributes:" +#~ msgstr "Sakrij dopune sa sljedećim atributima:" + +#~ msgid "Maximum inheritance depth:" +#~ msgstr "Najveća dubina nasljeđivanja:" + +#~ msgid "Infinity" +#~ msgstr "beskonačno" + +#~ msgid "Grouping" +#~ msgstr "Grupisanje" + +#~ msgid "Grouping Method" +#~ msgstr "Metod grupisanja" + +#~ msgid "Scope type (local, namespace, global)" +#~ msgstr "Tip dosega (lokalni, imenski prostor, globalni)" + +#~ msgid "Scope (eg. per class)" +#~ msgstr "Doseg (npr. po klasi)" + +#~ msgid "Access type (public etc.)" +#~ msgstr "Tip pristupa (javni, itd.)" + +#~ msgid "Item type (function etc.)" +#~ msgstr "Tip stavke (funkcija, itd.)" + +#~ msgid "Access Grouping Properties" +#~ msgstr "Svojstva grupisanja pristupa" + +#~ msgid "Include const in grouping" +#~ msgstr "Uključi konst. u grupisanje" + +#~ msgid "Include static in grouping" +#~ msgstr "Uključi statičke u grupisanje" + +#~ msgid "Include signals and slots in grouping" +#~ msgstr "Uključi signale i slotove u grupisanje" + +#~ msgid "Item Grouping properties" +#~ msgstr "Svojstva grupisanja stavki" + +#~ msgid "Include templates in grouping" +#~ msgstr "Uključi šablone u grupisanje" + +#~ msgid "Column Merging" +#~ msgstr "Stapanje kolona" + +#~ msgid "Columns" +#~ msgstr "Kolone" + +#~ msgid "Merged" +#~ msgstr "stopljene" + +#~ msgid "Shown" +#~ msgstr "prikazane" + +#~ msgid "How do you want to import the schema?" +#~ msgstr "Kako želite da uvezete šemu?" + +#~ msgid "Replace current schema?" +#~ msgstr "Zamijeni trenutnu šemu?" + +#~ msgid "Replace existing schema %1" +#~ msgstr "Zamijeni postojeću šemu %1" + +#~ msgid "Import as new schema:" +#~ msgstr "Uvezi kao novu šemu" + +#~ msgid "Loading all highlightings for schema" +#~ msgstr "Učitavam sva isticanja za šemu" + +#~ msgid "Importing colors for single highlighting" +#~ msgstr "Uvozim boje za prosto isticanje" + +#~ msgid "Kate color schema" +#~ msgstr "Kate šema boja" + +#~ msgid "File is not a single highlighting color file" +#~ msgstr "Datoteka nije datoteka za pojedinačno isticanje" + +#~ msgid "Fileformat error" +#~ msgstr "Greška formata datoteke" + +#~ msgid "The selected file contains colors for a non existing highlighting:%1" +#~ msgstr "Izabrana datoteka sadrži boje za nepostojeće isticanje:%1" + +#~ msgid "Import failure" +#~ msgstr "Greška u uvozu" + +#~ msgid "Colors have been imported for highlighting: %1" +#~ msgstr "Boje su uvezene za isticanje: %1" + +#~ msgid "Import has finished" +#~ msgstr "Uvoz je završen" + +#~ msgid "Exporting colors for single highlighting: %1" +#~ msgstr "Izvozim boje za pojedinačno isticanje:%1" + +#~ msgid "&New..." +#~ msgstr "&Nova..." + +#~ msgid "Exporting schema" +#~ msgstr "Izvozim šemu" + +#, fuzzy +#~| msgid "Replace existing schema %1" +#~ msgid "Replace existing theme %1" +#~ msgstr "Zamijeni postojeću šemu %1" + +#~ msgid "The file does not contain a full color schema." +#~ msgstr "Datoteka ne sadrži kompletnu šemu boja." + +#~ msgid "Name unspecified" +#~ msgstr "Ime nenavedeno" + +#~ msgid "Importing schema" +#~ msgstr "Uvozim šemu" + +#~ msgid "Name for New Schema" +#~ msgstr "Ime za novu šemu" + +#~ msgid "Name:" +#~ msgstr "Ime:" + +#~ msgid "New Schema" +#~ msgstr "Nova šema" + +#~ msgid "&Schema:" +#~ msgstr "&Šema:" + +#~ msgid "Fonts & Colors" +#~ msgstr "Fontovi i boje" + +#~ msgid "&Schema" +#~ msgstr "&Šema" + +#~ msgid "Non-whitespace (excluding line breaks)" +#~ msgstr "nije praznina (osim prijeloma reda)" + +#~ msgid "Lookahead" +#~ msgstr "preduvid" + +#~ msgid "" +#~ "A file named \"%1\" already exists. Are you sure you want to overwrite it?" +#~ msgstr "" +#~ "Datoteka po imenu %1 već postoji. Želite li zaista " +#~ "da je prebrišete?" + +#~ msgid "Overwrite File?" +#~ msgstr "Prebrisati datoteku?" + +#~ msgid "Show static word wra&p marker (if applicable)" +#~ msgstr "&Graničnik statičkog prelamanja (ako je primjenljivo)" + +#~ msgid "Unfold Current Node" +#~ msgstr "Odmotaj trenutni čvor" + +#~ msgid "" +#~ "Use this command to wrap all lines of the current document which are " +#~ "longer than the width of the current view, to fit into this view.

This is a static word wrap, meaning it is not updated when the " +#~ "view is resized." +#~ msgstr "" +#~ "Prelomite sve redove tekućeg dokumenta duže od širine tekućeg " +#~ "prikaza, tako da stanu u njega.

Ovakvo prelamanje je statičko, " +#~ "što znači da se ne ažurira sa promjenom širine prikaza." + +#~ msgid "Highlight trailing &spaces" +#~ msgstr "Istakni prateće raz&make" + +#~ msgid "Spellcheck Selection..." +#~ msgstr "Provjeri pravopis izbora..." + +#~ msgid "Check spelling of the selected text" +#~ msgstr "Provjeri pravopis u izabranom tekstu" + +#~ msgid "&Go to line:" +#~ msgstr "&Idi na red:" + +#~ msgid "What do you want to do?" +#~ msgstr "Šta želite da uradite?" + +#~ msgid "File Was Changed on Disk" +#~ msgstr "Datoteka je izmijenjena na disku" + +#~ msgid "&Reload File" +#~ msgstr "&Učitaj ponovo" + +#~ msgid "&Ignore Changes" +#~ msgstr "&Ignoriši izmjene" + +#~ msgid "Download Highlighting Files..." +#~ msgstr "Preuzmi datoteke za isticanje..." + +#~ msgid "Highlight Download" +#~ msgstr "Preuzimanje isticanja" + +#~ msgid "Select the syntax highlighting files you want to update:" +#~ msgstr "Izaberite datoteke isticanja sintakse koje želite da ažurirate:" + +#~ msgid "Installed" +#~ msgstr "instaliran" + +#~ msgid "Latest" +#~ msgstr "najnovije" + +#~ msgid "Note: New versions are selected automatically." +#~ msgstr "Napomena: Nove verzije se automatski biraju." + +#~ msgid "&Install" +#~ msgstr "&Instaliraj" + +#~ msgid "" +#~ "The list of highlightings could not be found on / retrieved from the " +#~ "server" +#~ msgstr "Spisak isticanja ne može da se nađe ili dobavi sa servera." + +#~ msgctxt "Syntax highlighting" +#~ msgid "None" +#~ msgstr "nikakvo" + +#~ msgid "Normal Text" +#~ msgstr "Običan tekst" + +#~ msgid "" +#~ "%1: Deprecated syntax. Attribute (%2) not addressed by symbolic " +#~ "name
" +#~ msgstr "" +#~ "%1: Prevaziđena sintaksa. Atribut (%2) nije adresiran " +#~ "simboličkim imenom
" + +#~ msgid "%1: Deprecated syntax. Context %2 has no symbolic name
" +#~ msgstr "" +#~ "%1: Prevaziđena sintaksa. Kontekst %2 nema simboličko ime
" + +#~ msgid "" +#~ "%1:Deprecated syntax. Context %2 not addressed by a symbolic name" +#~ msgstr "" +#~ "%1: Prevaziđena sintaksa. Kontekst %2 nije adresiran " +#~ "simboličkim imenom" + +#~ msgid "" +#~ "There were warning(s) and/or error(s) while parsing the syntax " +#~ "highlighting configuration." +#~ msgstr "" +#~ "Došlo je do nekih upozorenja ili grešaka pri raščlanjivanju postave " +#~ "isticanja sintakse." + +#~ msgid "Kate Syntax Highlighting Parser" +#~ msgstr "Katein raščlanjivač za isticanje sintakse" + +#~ msgid "" +#~ "Since there has been an error parsing the highlighting description, this " +#~ "highlighting will be disabled" +#~ msgstr "" +#~ "Pošto je došlo do grešaka tokom raščlanjivanja opisa isticanja, ovo " +#~ "isticanje će biti isključeno" + +#~ msgid "" +#~ "%1: Specified multiline comment region (%2) could not be " +#~ "resolved
" +#~ msgstr "" +#~ "%1: Navedeni višelinijski komentar (%2) ne može biti " +#~ "razrešen
" + +#~ msgid "Unable to open %1" +#~ msgstr "Ne mogu da otvorim %1" + +#~ msgid "" +#~ "The error %4
has been detected in the file %1 at %2/%3" +#~ msgstr "" +#~ "Otkrivena je greška %4
u datoteci %1 " +#~ "kod %2:%3
" + +#~ msgid "Continuing search from top" +#~ msgstr "Nastaviti pretragu s vrh" + +#~ msgid "Continuing search from bottom" +#~ msgstr "Nastaviti pretragu sa dna" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "MS-DOS Batch" +#~ msgctxt "Language" +#~ msgid "4DOS BatchToMemory" +#~ msgstr "MS-DOS Batch" + +#~ msgctxt "Language Section" +#~ msgid "Scripts" +#~ msgstr "skriptni" + +#~ msgctxt "Language" +#~ msgid "ABAP" +#~ msgstr "ABAP" + +#~ msgctxt "Language Section" +#~ msgid "Sources" +#~ msgstr "izvorni" + +#~ msgctxt "Language" +#~ msgid "ABC" +#~ msgstr "ABC" + +#~ msgctxt "Language" +#~ msgid "ActionScript 2.0" +#~ msgstr "ActionScript 2.0" + +#~ msgctxt "Language" +#~ msgid "Ada" +#~ msgstr "Ada" + +#~ msgctxt "Language" +#~ msgid "AHDL" +#~ msgstr "AHDL" + +#~ msgctxt "Language Section" +#~ msgid "Hardware" +#~ msgstr "hardverski" + +#~ msgctxt "Language" +#~ msgid "AutoHotKey" +#~ msgstr "AutoHotKey" + +#~ msgctxt "Language" +#~ msgid "Alerts" +#~ msgstr "pozori" + +#~ msgctxt "Language" +#~ msgid "Alerts_indent" +#~ msgstr "pozori (uvlačenje)" + +#~ msgctxt "Language" +#~ msgid "AMPLE" +#~ msgstr "AMPLE" + +#~ msgctxt "Language" +#~ msgid "ANS-Forth94" +#~ msgstr "ANS-Forth94" + +#~ msgctxt "Language" +#~ msgid "ANSI C89" +#~ msgstr "ANSI C89" + +#~ msgctxt "Language" +#~ msgid "Ansys" +#~ msgstr "Ansys" + +#~ msgctxt "Language Section" +#~ msgid "Scientific" +#~ msgstr "naučni" + +#~ msgctxt "Language" +#~ msgid "Apache Configuration" +#~ msgstr "Apache-postava" + +#~ msgctxt "Language Section" +#~ msgid "Configuration" +#~ msgstr "postava" + +#~ msgctxt "Language Section" +#~ msgid "Assembler" +#~ msgstr "asembleri" + +#~ msgctxt "Language" +#~ msgid "AVR Assembler" +#~ msgstr "AVR asembler" + +#~ msgctxt "Language" +#~ msgid "Motorola DSP56k" +#~ msgstr "Motorolin DSP‑56k" + +#~ msgctxt "Language" +#~ msgid "Motorola 68k (VASM/Devpac)" +#~ msgstr "Motorolin 68k (VASM/Devpac)" + +#~ msgctxt "Language" +#~ msgid "Asm6502" +#~ msgstr "Asm6502" + +#~ msgctxt "Language" +#~ msgid "ASN.1" +#~ msgstr "ASN.1" + +#~ msgctxt "Language Section" +#~ msgid "Markup" +#~ msgstr "obilježivački" + +#~ msgctxt "Language" +#~ msgid "ASP" +#~ msgstr "ASP" + +#~ msgctxt "Language" +#~ msgid "Asterisk" +#~ msgstr "Asterisk" + +#~ msgctxt "Language" +#~ msgid "AWK" +#~ msgstr "awk" + +#~ msgctxt "Language" +#~ msgid "Bash" +#~ msgstr "Bash" + +#~ msgctxt "Language" +#~ msgid "BibTeX" +#~ msgstr "BibTeX" + +#~ msgctxt "Language" +#~ msgid "B-Method" +#~ msgstr "B‑Method" + +#~ msgctxt "Language" +#~ msgid "Boo" +#~ msgstr "Boo" + +#~ msgctxt "Language" +#~ msgid "C" +#~ msgstr "C" + +#~ msgctxt "Language" +#~ msgid "CleanCSS" +#~ msgstr "CleanCSS" + +#~ msgctxt "Language" +#~ msgid "Cg" +#~ msgstr "Cg" + +#~ msgctxt "Language" +#~ msgid "CGiS" +#~ msgstr "CGiS" + +#~ msgctxt "Language" +#~ msgid "ChangeLog" +#~ msgstr "dnevnik izmjena" + +#~ msgctxt "Language" +#~ msgid "Cisco" +#~ msgstr "Cisco" + +#~ msgctxt "Language" +#~ msgid "Clipper" +#~ msgstr "Clipper" + +#~ msgctxt "Language" +#~ msgid "Clojure" +#~ msgstr "Clojure" + +#~ msgctxt "Language" +#~ msgid "CoffeeScript" +#~ msgstr "CoffeeScript" + +#~ msgctxt "Language" +#~ msgid "ColdFusion" +#~ msgstr "ColdFusion" + +#~ msgctxt "Language" +#~ msgid "Common Lisp" +#~ msgstr "Common Lisp" + +#~ msgctxt "Language" +#~ msgid "Component-Pascal" +#~ msgstr "Component-Pascal" + +#~ msgctxt "Language" +#~ msgid "ConTeXt" +#~ msgstr "ConTeXt" + +#~ msgctxt "Language" +#~ msgid "Crack" +#~ msgstr "Crack" + +#~ msgctxt "Language" +#~ msgid "C#" +#~ msgstr "C#" + +#~ msgctxt "Language" +#~ msgid "CSS" +#~ msgstr "CSS" + +#~ msgctxt "Language" +#~ msgid "CubeScript" +#~ msgstr "CubeScript" + +#~ msgctxt "Language" +#~ msgid "CUE Sheet" +#~ msgstr "CUE Sheet" + +#~ msgctxt "Language" +#~ msgid "Curry" +#~ msgstr "Curry" + +#~ msgctxt "Language" +#~ msgid "D" +#~ msgstr "D" + +#~ msgctxt "Language" +#~ msgid "Debian Changelog" +#~ msgstr "Debianov dnevnik izmjena" + +#~ msgctxt "Language" +#~ msgid "Debian Control" +#~ msgstr "Debianova kontrola" + +#~ msgctxt "Language" +#~ msgid ".desktop" +#~ msgstr ".desktop" + +#~ msgctxt "Language" +#~ msgid "Diff" +#~ msgstr "diff" + +#~ msgctxt "Language" +#~ msgid "Django HTML Template" +#~ msgstr "Djangov HTML šablon" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Makefile" +#~ msgctxt "Language" +#~ msgid "Dockerfile" +#~ msgstr "Makefile" + +#~ msgctxt "Language" +#~ msgid "MS-DOS Batch" +#~ msgstr "MS-DOS Batch" + +#~ msgctxt "Language" +#~ msgid "dot" +#~ msgstr "tačka" + +#~ msgctxt "Language" +#~ msgid "Doxygen" +#~ msgstr "Doxygen" + +#~ msgctxt "Language" +#~ msgid "DoxygenLua" +#~ msgstr "Doxygen‑Lua" + +#~ msgctxt "Language" +#~ msgid "DTD" +#~ msgstr "DTD" + +#~ msgctxt "Language" +#~ msgid "E Language" +#~ msgstr "E" + +#~ msgctxt "Language" +#~ msgid "Eiffel" +#~ msgstr "Eiffel" + +#~ msgctxt "Language" +#~ msgid "Email" +#~ msgstr "e‑pošta" + +#~ msgctxt "Language" +#~ msgid "Erlang" +#~ msgstr "Erlang" + +#~ msgctxt "Language" +#~ msgid "Euphoria" +#~ msgstr "Euphoria" + +#~ msgctxt "Language" +#~ msgid "Intel x86 (FASM)" +#~ msgstr "Intel x86 (FASM)" + +#~ msgctxt "Language" +#~ msgid "ferite" +#~ msgstr "Ferite" + +#~ msgctxt "Language" +#~ msgid "4GL" +#~ msgstr "4GL" + +#~ msgctxt "Language Section" +#~ msgid "Database" +#~ msgstr "baze" + +#~ msgctxt "Language" +#~ msgid "4GL-PER" +#~ msgstr "4GL‑PER" + +#~ msgctxt "Language" +#~ msgid "Fortran" +#~ msgstr "Fortran" + +#~ msgctxt "Language" +#~ msgid "FreeBASIC" +#~ msgstr "FreeBASIC" + +#~ msgctxt "Language" +#~ msgid "FSharp" +#~ msgstr "FSharp" + +#~ msgctxt "Language" +#~ msgid "fstab" +#~ msgstr "fstab" + +#~ msgctxt "Language" +#~ msgid "GAP" +#~ msgstr "GAP" + +#~ msgctxt "Language" +#~ msgid "GDB Backtrace" +#~ msgstr "GDB‑ov kontratrag" + +#~ msgctxt "Language" +#~ msgid "GDL" +#~ msgstr "GDL" + +#~ msgctxt "Language" +#~ msgid "GNU Gettext" +#~ msgstr "GNU Gettext" + +#, fuzzy +#~| msgid "Ignore Word" +#~ msgctxt "Language" +#~ msgid "Git Ignore" +#~ msgstr "Ignoriši riječ" + +#~ msgctxt "Language" +#~ msgid "Git Rebase" +#~ msgstr "Git rebaziranje" + +#~ msgctxt "Language" +#~ msgid "GlossTex" +#~ msgstr "GlossTex" + +#~ msgctxt "Language" +#~ msgid "GLSL" +#~ msgstr "GLSL" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "D" +#~ msgctxt "Language Section" +#~ msgid "3D" +#~ msgstr "D" + +#~ msgctxt "Language" +#~ msgid "GNU Assembler" +#~ msgstr "GNU asembler" + +#~ msgctxt "Language" +#~ msgid "Gnuplot" +#~ msgstr "Gnuplot" + +#~ msgctxt "Language" +#~ msgid "Go" +#~ msgstr "Kreni" + +#~ msgctxt "Language" +#~ msgid "KDev-PG[-Qt] Grammar" +#~ msgstr "gramatika KDev‑PG‑a[Qt]" + +#~ msgctxt "Language" +#~ msgid "Haml" +#~ msgstr "Haml" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Haml" +#~ msgctxt "Language" +#~ msgid "Hamlet" +#~ msgstr "Haml" + +#~ msgctxt "Language" +#~ msgid "Haskell" +#~ msgstr "Haskell" + +#~ msgctxt "Language" +#~ msgid "Haxe" +#~ msgstr "Haxe" + +#~ msgctxt "Language" +#~ msgid "HTML" +#~ msgstr "HTML" + +#~ msgctxt "Language" +#~ msgid "Quake Script" +#~ msgstr "Quake Script" + +#~ msgctxt "Language" +#~ msgid "IDL" +#~ msgstr "IDL" + +#~ msgctxt "Language" +#~ msgid "ILERPG" +#~ msgstr "ILERPG" + +#~ msgctxt "Language" +#~ msgid "Inform" +#~ msgstr "Inform" + +#~ msgctxt "Language" +#~ msgid "INI Files" +#~ msgstr "INI postavke" + +#~ msgctxt "Language" +#~ msgid "Jam" +#~ msgstr "Jam" + +#~ msgctxt "Language" +#~ msgid "Java" +#~ msgstr "Java" + +#~ msgctxt "Language" +#~ msgid "Javadoc" +#~ msgstr "Javadoc" + +#~ msgctxt "Language" +#~ msgid "JavaScript" +#~ msgstr "JavaScript" + +#~ msgctxt "Language" +#~ msgid "Jira" +#~ msgstr "Jira" + +#~ msgctxt "Language" +#~ msgid "JSON" +#~ msgstr "JSON" + +#~ msgctxt "Language" +#~ msgid "JSP" +#~ msgstr "JSP" + +#~ msgctxt "Language" +#~ msgid "k" +#~ msgstr "k" + +#~ msgctxt "Language" +#~ msgid "KBasic" +#~ msgstr "KBasic" + +#, fuzzy +#~| msgid "Configure" +#~ msgctxt "Language" +#~ msgid "Kconfig" +#~ msgstr "Podesi" + +#~ msgctxt "Language" +#~ msgid "LaTeX" +#~ msgstr "LaTeX" + +#~ msgctxt "Language" +#~ msgid "GNU Linker Script" +#~ msgstr "GNU Linker Script" + +#~ msgctxt "Language" +#~ msgid "LDIF" +#~ msgstr "LDIF" + +#~ msgctxt "Language" +#~ msgid "LESSCSS" +#~ msgstr "LESSCSS" + +#~ msgctxt "Language" +#~ msgid "Lex/Flex" +#~ msgstr "Lex/Flex" + +#~ msgctxt "Language" +#~ msgid "LilyPond" +#~ msgstr "LilyPond" + +#~ msgctxt "Language" +#~ msgid "Literate Curry" +#~ msgstr "Literate Curry" + +#~ msgctxt "Language" +#~ msgid "Literate Haskell" +#~ msgstr "Literate Haskell" + +#~ msgctxt "Language" +#~ msgid "Logtalk" +#~ msgstr "Logtalk" + +#~ msgctxt "Language" +#~ msgid "LPC" +#~ msgstr "LPC" + +#~ msgctxt "Language" +#~ msgid "LSL" +#~ msgstr "LSL" + +#~ msgctxt "Language" +#~ msgid "Lua" +#~ msgstr "Lua" + +#~ msgctxt "Language" +#~ msgid "M3U" +#~ msgstr "M3U" + +#~ msgctxt "Language" +#~ msgid "GNU M4" +#~ msgstr "GNU M4" + +#~ msgctxt "Language" +#~ msgid "MAB-DB" +#~ msgstr "MAB‑DB" + +#~ msgctxt "Language" +#~ msgid "Makefile" +#~ msgstr "Makefile" + +#~ msgctxt "Language" +#~ msgid "Mako" +#~ msgstr "Mako" + +#~ msgctxt "Language" +#~ msgid "Troff Mandoc" +#~ msgstr "Troff uputna strana" + +#~ msgctxt "Language" +#~ msgid "Markdown" +#~ msgstr "Markdown" + +#~ msgctxt "Language" +#~ msgid "Mason" +#~ msgstr "Mason" + +#~ msgctxt "Language" +#~ msgid "Matlab" +#~ msgstr "matlabski" + +#~ msgctxt "Language" +#~ msgid "Maxima" +#~ msgstr "maximski" + +#~ msgctxt "Language" +#~ msgid "MediaWiki" +#~ msgstr "MediaWiki" + +#~ msgctxt "Language" +#~ msgid "MEL" +#~ msgstr "MEL" + +#~ msgctxt "Language" +#~ msgid "mergetag text" +#~ msgstr "mergetag text" + +#~ msgctxt "Language" +#~ msgid "Metapost/Metafont" +#~ msgstr "Metapost/Metafont" + +#~ msgctxt "Language" +#~ msgid "MIPS Assembler" +#~ msgstr "MIPS asembler" + +#~ msgctxt "Language" +#~ msgid "Modelica" +#~ msgstr "Modelica" + +#~ msgctxt "Language" +#~ msgid "Modelines" +#~ msgstr "Linije režima" + +#~ msgctxt "Language" +#~ msgid "Modula-2" +#~ msgstr "Modula‑2" + +#~ msgctxt "Language" +#~ msgid "MonoBasic" +#~ msgstr "MonoBasic" + +#~ msgctxt "Language" +#~ msgid "Music Publisher" +#~ msgstr "izdavač muzike" + +#~ msgctxt "Language" +#~ msgid "Nagios" +#~ msgstr "Nagios" + +#~ msgctxt "Language" +#~ msgid "Intel x86 (NASM)" +#~ msgstr "Intel x86 (NASM)" + +#~ msgctxt "Language" +#~ msgid "Nemerle" +#~ msgstr "Nemerle" + +#~ msgctxt "Language" +#~ msgid "nesC" +#~ msgstr "nesC" + +#~ msgctxt "Language" +#~ msgid "noweb" +#~ msgstr "noweb" + +#~ msgctxt "Language" +#~ msgid "Objective-C" +#~ msgstr "Objective‑C" + +#~ msgctxt "Language" +#~ msgid "Objective-C++" +#~ msgstr "Objective‑C++" + +#~ msgctxt "Language" +#~ msgid "Objective Caml" +#~ msgstr "Objective‑Caml" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Objective Caml" +#~ msgctxt "Language" +#~ msgid "Objective Caml Ocamllex" +#~ msgstr "Objective‑Caml" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Objective Caml" +#~ msgctxt "Language" +#~ msgid "Objective Caml Ocamlyacc" +#~ msgstr "Objective‑Caml" + +#~ msgctxt "Language" +#~ msgid "Octave" +#~ msgstr "octavski" + +#~ msgctxt "Language" +#~ msgid "OORS" +#~ msgstr "OORS" + +#~ msgctxt "Language" +#~ msgid "OPAL" +#~ msgstr "OPAL" + +#~ msgctxt "Language" +#~ msgid "OpenCL" +#~ msgstr "OpenCL" + +#~ msgctxt "Language" +#~ msgid "Pango" +#~ msgstr "Pango" + +#~ msgctxt "Language" +#~ msgid "Pascal" +#~ msgstr "Pascal" + +#~ msgctxt "Language" +#~ msgid "Perl" +#~ msgstr "Perl" + +#~ msgctxt "Language" +#~ msgid "PHP/PHP" +#~ msgstr "PHP" + +#~ msgctxt "Language" +#~ msgid "PicAsm" +#~ msgstr "PicAsm" + +#~ msgctxt "Language" +#~ msgid "Pig" +#~ msgstr "Svinja" + +#~ msgctxt "Language" +#~ msgid "Pike" +#~ msgstr "Pike" + +#~ msgctxt "Language" +#~ msgid "PostScript" +#~ msgstr "PostScript" + +#~ msgctxt "Language" +#~ msgid "POV-Ray" +#~ msgstr "POV‑Ray" + +#~ msgctxt "Language" +#~ msgid "progress" +#~ msgstr "progress" + +#~ msgctxt "Language" +#~ msgid "Protobuf" +#~ msgstr "Protobuf" + +#~ msgctxt "Language" +#~ msgid "PureBasic" +#~ msgstr "PureBasic" + +#~ msgctxt "Language" +#~ msgid "Python" +#~ msgstr "Python" + +#~ msgctxt "Language" +#~ msgid "q" +#~ msgstr "q" + +#~ msgctxt "Language" +#~ msgid "QMake" +#~ msgstr "QMake" + +#~ msgctxt "Language" +#~ msgid "QML" +#~ msgstr "QML" + +#~ msgctxt "Language" +#~ msgid "R Script" +#~ msgstr "R Script" + +#~ msgctxt "Language" +#~ msgid "RapidQ" +#~ msgstr "RapidQ" + +#~ msgctxt "Language" +#~ msgid "RelaxNG-Compact" +#~ msgstr "RelaxNG-Compact" + +#, fuzzy +#~| msgid "&Replace" +#~ msgctxt "Language" +#~ msgid "Replicode" +#~ msgstr "&Zamijeni" + +#~ msgctxt "Language" +#~ msgid "reStructuredText" +#~ msgstr "reStructuredText" + +#~ msgctxt "Language" +#~ msgid "REXX" +#~ msgstr "REXX" + +#~ msgctxt "Language" +#~ msgid "Ruby/Rails/RHTML" +#~ msgstr "Ruby/Rails/RHTML" + +#~ msgctxt "Language" +#~ msgid "RenderMan RIB" +#~ msgstr "RenderMan‑RIB" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Markdown" +#~ msgctxt "Language" +#~ msgid "R Markdown" +#~ msgstr "Markdown" + +#~ msgctxt "Language" +#~ msgid "Roff" +#~ msgstr "Roff" + +#~ msgctxt "Language" +#~ msgid "RPM Spec" +#~ msgstr "RPM navod" + +#~ msgctxt "Language" +#~ msgid "RSI IDL" +#~ msgstr "RSI IDL" + +#, fuzzy +#~| msgid "File Format" +#~ msgctxt "Language" +#~ msgid "Rich Text Format" +#~ msgstr "Format datoteke" + +#~ msgctxt "Language" +#~ msgid "Ruby" +#~ msgstr "Ruby" + +#~ msgctxt "Language" +#~ msgid "Sather" +#~ msgstr "Sather" + +#~ msgctxt "Language" +#~ msgid "Scala" +#~ msgstr "Scala" + +#~ msgctxt "Language" +#~ msgid "scilab" +#~ msgstr "scilabski" + +#~ msgctxt "Language" +#~ msgid "SCSS" +#~ msgstr "SCSS" + +#~ msgctxt "Language" +#~ msgid "sed" +#~ msgstr "sed" + +#~ msgctxt "Language" +#~ msgid "SGML" +#~ msgstr "SGML" + +#~ msgctxt "Language" +#~ msgid "Sieve" +#~ msgstr "sito" + +#~ msgctxt "Language" +#~ msgid "SiSU" +#~ msgstr "SiSU" + +#~ msgctxt "Language" +#~ msgid "SML" +#~ msgstr "SML" + +#~ msgctxt "Language" +#~ msgid "Spice" +#~ msgstr "Spice" + +#~ msgctxt "Language" +#~ msgid "SQL (MySQL)" +#~ msgstr "SQL (MySQL)" + +#~ msgctxt "Language" +#~ msgid "SQL (PostgreSQL)" +#~ msgstr "SQL (PostgreSQ)" + +#~ msgctxt "Language" +#~ msgid "SQL" +#~ msgstr "SQL" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "LSL" +#~ msgctxt "Language" +#~ msgid "STL" +#~ msgstr "LSL" + +#~ msgctxt "Language" +#~ msgid "SystemC" +#~ msgstr "SystemC" + +#~ msgctxt "Language" +#~ msgid "SystemVerilog" +#~ msgstr "SystemVerilog" + +#~ msgctxt "Language" +#~ msgid "TADS 3" +#~ msgstr "TADS 3" + +#~ msgctxt "Language" +#~ msgid "Tcl/Tk" +#~ msgstr "Tcl/Tk" + +#~ msgctxt "Language" +#~ msgid "Tcsh" +#~ msgstr "Tcsh" + +#~ msgctxt "Language" +#~ msgid "Texinfo" +#~ msgstr "TeXinfo" + +#~ msgctxt "Language" +#~ msgid "Textile" +#~ msgstr "Textile" + +#~ msgctxt "Language" +#~ msgid "TI Basic" +#~ msgstr "TI Basic" + +#~ msgctxt "Language" +#~ msgid "txt2tags" +#~ msgstr "txt2tags" + +#~ msgctxt "Language" +#~ msgid "UnrealScript" +#~ msgstr "UnrealScript" + +#~ msgctxt "Language" +#~ msgid "Vala" +#~ msgstr "Vala" + +#~ msgctxt "Language" +#~ msgid "Valgrind Suppression" +#~ msgstr "Valgrind Suppression" + +#~ msgctxt "Language" +#~ msgid "Varnish Configuration Language" +#~ msgstr "Varnish konfiguracijski jezik" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Varnish Configuration Language" +#~ msgctxt "Language" +#~ msgid "Varnish 4 Configuration Language" +#~ msgstr "Varnish konfiguracijski jezik" + +#~ msgctxt "Language" +#~ msgid "Varnish Test Case language" +#~ msgstr "Varnish testni jezik" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "Varnish Test Case language" +#~ msgctxt "Language" +#~ msgid "Varnish 4 Test Case language" +#~ msgstr "Varnish testni jezik" + +#~ msgctxt "Language" +#~ msgid "vCard, vCalendar, iCalendar" +#~ msgstr "vCard, vCalendar, iCalendar" + +#~ msgctxt "Language" +#~ msgid "Velocity" +#~ msgstr "Velocity" + +#~ msgctxt "Language" +#~ msgid "Vera" +#~ msgstr "Vera" + +#~ msgctxt "Language" +#~ msgid "Verilog" +#~ msgstr "Verilog" + +#~ msgctxt "Language" +#~ msgid "VHDL" +#~ msgstr "VHDL" + +#~ msgctxt "Language" +#~ msgid "VRML" +#~ msgstr "VRML" + +#~ msgctxt "Language" +#~ msgid "WINE Config" +#~ msgstr "WINE‑postava" + +#~ msgctxt "Language" +#~ msgid "Wesnoth Markup Language" +#~ msgstr "Vesnotov obeleživački jezik" + +#~ msgctxt "Language" +#~ msgid "xHarbour" +#~ msgstr "xHarbour" + +#~ msgctxt "Language" +#~ msgid "XML" +#~ msgstr "XML" + +#~ msgctxt "Language" +#~ msgid "XML (Debug)" +#~ msgstr "XML (ispravljanje)" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "PostScript" +#~ msgctxt "Language" +#~ msgid "Xonotic Script" +#~ msgstr "PostScript" + +#~ msgctxt "Language" +#~ msgid "x.org Configuration" +#~ msgstr "x.org‑postava" + +#~ msgctxt "Language" +#~ msgid "xslt" +#~ msgstr "XSLT" + +#~ msgctxt "Language" +#~ msgid "XUL" +#~ msgstr "XUL" + +#~ msgctxt "Language" +#~ msgid "yacas" +#~ msgstr "yacas" + +#~ msgctxt "Language" +#~ msgid "Yacc/Bison" +#~ msgstr "Yacc/Bison" + +#~ msgctxt "Language" +#~ msgid "YAML" +#~ msgstr "YAML" + +#~ msgctxt "Language" +#~ msgid "Zonnon" +#~ msgstr "Zonnon" + +#~ msgctxt "Language" +#~ msgid "Zsh" +#~ msgstr "Zsh" + +#~ msgctxt "short translation please" +#~ msgid "Auto insert asterisk in doxygen comments." +#~ msgstr "Automatski ubaci zvjezdicu u doxygen komentarima." + +#~ msgid "File Was Deleted on Disk" +#~ msgstr "Datoteka obrisana na disku" + +#~ msgid "File Changed on Disk" +#~ msgstr "Datoteka izmijenjena na disku" + +#~ msgid "" +#~ "Do nothing. Next time you focus the file, or try to save it or close it, " +#~ "you will be prompted again." +#~ msgstr "" +#~ "Ne čini ništa. Sljedeći put kada datoteku fokusirate ili pokušate da je " +#~ "sačuvate ili zatvorite, bićete ponovo upitani." + +#~ msgid "Overwrite the disk file with the editor content." +#~ msgstr "Prebriši datoteku na disku sadržajem iz uređivača." + +# >> @title:window +#, fuzzy +#~| msgid "Close Document" +#~ msgid "Close the document." +#~ msgstr "Zatvaranje dokumenta" + +#, fuzzy +#~ msgid "Ignoring amount of white space changed, the files are identical." +#~ msgstr "Ne računajući promjene u razmacima, datoteke su istovjetne." + +#~ msgid "" +#~ "Ignoring means that you will not be warned again (unless the disk file " +#~ "changes once more): if you save the document, you will overwrite the file " +#~ "on disk; if you do not save then the disk file (if present) is what you " +#~ "have." +#~ msgstr "" +#~ "Ignorisanje znači da nećete biti ponovo upozoreni (osim ako se datoteka " +#~ "na disku ponovo ne promijeni): ako sačuvate dokument prebrisaćete " +#~ "datoteku na disku, a ako ga ne sačuvate onda je datoteka na disku (ako " +#~ "postoji) ono što će vam ostati." + +#~ msgid "You Are on Your Own" +#~ msgstr "Prepušteni ste sami sebi" + +#~ msgid "" +#~ "Calculates the difference between the editor contents and the disk file " +#~ "using diff(1)." +#~ msgstr "" +#~ "Računa razliku između sadržaja uređivača i datoteke na disku naredbom " +#~ "diff." + +#~ msgid "KDE Default" +#~ msgstr "KDE‑ovo podrazumijevano" + +#, fuzzy +#~| msgid "Vi Input Mode" +#~ msgid "InputMode" +#~ msgstr "Režim unosa poput editora 'vi'" + +#~ msgid "&Next" +#~ msgstr "&Sljedeće" + +#~ msgid "&Previous" +#~ msgstr "&Prethodno" + +#~ msgid "&Match case" +#~ msgstr "Poklopi &veličinu" + +#~ msgid "Case-sensitive searching" +#~ msgstr "Traženje sa razlikovanjem velikih i malih slova" + +#~ msgid "Selection &only" +#~ msgstr "Samo &izabrano" + +#~ msgid "Mo&de:" +#~ msgstr "&Režim:" + +#~ msgctxt "Language" +#~ msgid "PostScript Printer Description" +#~ msgstr "Opis PostScript printera" + +#, fuzzy +#~ msgctxt "suffix for spinbox >1 wrap words at (value is at 20 or larger)" +#~ msgid " characters" +#~ msgstr " znak" + +#~ msgid "Search &depth for config file:" +#~ msgstr "&Dubina traženja postavne datoteke:" + +#~ msgid "Indentation width" +#~ msgstr "Širina nazubljivanja" + +#~ msgid "Function 'action' not found in script: %1" +#~ msgstr "Funkcije action nema u skripti: %1" + +#~ msgid "Error calling action(%1)" +#~ msgstr "Greška pri pozivu action(%1)" + +#~ msgid "Errors!" +#~ msgstr "Greške!" + +#~ msgid "Error: %1" +#~ msgstr "Greška: %1" + +#~ msgctxt "Language" +#~ msgid "Restructured Text" +#~ msgstr "Restructured Text" + +#~ msgid "" +#~ "

w/wa — write document(s) to disk

Usage: " +#~ "w[a]

Writes the current document(s) to disk. It can " +#~ "be called in two ways:
w — writes the current " +#~ "document to disk
wa — writes all document to disk.

If no file name is associated with the document, a file dialog will " +#~ "be shown.

" +#~ msgstr "" +#~ "

w/wa — piši dokument(e) disk

Upotreba: w[a]

Piše trenutne dokument(e) na disk. Može se pozvati na dva " +#~ "načina:
w — piše trenutni dokument na disk
" +#~ "wa — piše sve dokumente na disk.

Ako nijedno ime " +#~ "datoteke nije vezano s dokumentom, prikazaće se datotečni dijalog.

" + +#~ msgid "Unable to find '%1'" +#~ msgstr "Ne mogu da nađem %1" + +#, fuzzy +#~| msgid "Auto Word Completion" +#~ msgid "A&uto Word Completion HI" +#~ msgstr "Samodopuna riječi" + +#~ msgid "&VI Input Mode" +#~ msgstr "&Vi editor režim unosa" + +#~ msgid "" +#~ "When selected, the vi input mode will be enabled when opening a new view. " +#~ "You can still toggle the vi input mode on/off for a particular view in " +#~ "the Edit menu." +#~ msgstr "" +#~ "Kada je izabrano, pri otvaranju novog prikaza aktivira se režim unosa s " +#~ "VI editorom. Uvijek ga možete ručno uključiti i isključiti za dati " +#~ "prikaz, preko menija Izmijeni." diff --git a/local/recipes/kde/kf6-ktexteditor/source/po/ca/ktexteditor6.po b/local/recipes/kde/kf6-ktexteditor/source/po/ca/ktexteditor6.po new file mode 100644 index 0000000000..dbcb0492f3 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/po/ca/ktexteditor6.po @@ -0,0 +1,8588 @@ +# Translation of ktexteditor6.po to Catalan +# Copyright (C) 1999-2026 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. +# +# SPDX-FileCopyrightText: 1999, 2000, 2001, 2004, 2005, 2006, 2007 Sebastià Pla i Sanz +# SPDX-FileCopyrightText: 2002, 2003, 2004, 2012, 2013, 2014, 2015, 2016, 2018, 2019, 2020, 2021, 2022 Antoni Bella Pérez +# SPDX-FileCopyrightText: 2004, 2005 Albert Astals Cid +# SPDX-FileCopyrightText: 2009 Robert Millan +# SPDX-FileCopyrightText: 2019 Empar Montoro Martín +# SPDX-FileCopyrightText: 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026 Josep M. Ferrer +msgid "" +msgstr "" +"Project-Id-Version: ktexteditor\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2026-06-23 00:41+0000\n" +"PO-Revision-Date: 2026-06-16 09:00+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 25.04.0\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Accelerator-Marker: &\n" + +#: completion/katecompletionmodel.cpp:147 +#, kde-format +msgid "Argument-hints" +msgstr "Consells dels arguments" + +#: completion/katecompletionmodel.cpp:148 +#, kde-format +msgid "Best matches" +msgstr "Coincidències millors" + +#: completion/katekeywordcompletion.cpp:143 +#, kde-format +msgid "Language keywords" +msgstr "Paraules clau del llenguatge" + +#: completion/katewordcompletion.cpp:74 +#, kde-format +msgid "Auto Word Completion" +msgstr "Compleció automàtica de les paraules" + +#: completion/katewordcompletion.cpp:301 +#, kde-format +msgid "Shell Completion" +msgstr "Compleció de codi" + +#: completion/katewordcompletion.cpp:306 +#, kde-format +msgid "Reuse Word Above" +msgstr "Reutilitza la paraula de més amunt" + +#: completion/katewordcompletion.cpp:312 +#, kde-format +msgid "Reuse Word Below" +msgstr "Reutilitza la paraula de més avall" + +#. i18n: ectx: Menu (file) +#: data/katepart5ui.rc:4 +#, kde-format +msgid "&File" +msgstr "&Fitxer" + +#. i18n: ectx: Menu (file_export) +#: data/katepart5ui.rc:10 +#, kde-format +msgid "&Print/Export" +msgstr "Im&pressió/Exportació" + +#. i18n: ectx: Menu (edit) +#: data/katepart5ui.rc:17 +#, kde-format +msgid "&Edit" +msgstr "&Edita" + +#. i18n: ectx: Menu (edit_find_menu) +#: data/katepart5ui.rc:36 +#, kde-format +msgid "Find Variants" +msgstr "Cerca les variants" + +#. i18n: ectx: Menu (selection) +#: data/katepart5ui.rc:46 +#, kde-format +msgid "Selection" +msgstr "Selecció" + +#. i18n: ectx: Menu (capitalization) +#: data/katepart5ui.rc:53 +#, kde-format +msgid "Capitalization" +msgstr "Escriu en majúscula la primera lletra" + +#. i18n: ectx: Menu (view) +#: data/katepart5ui.rc:73 +#, kde-format +msgid "&View" +msgstr "&Visualitza" + +#. i18n: ectx: Menu (view_menu_word_wrap) +#: data/katepart5ui.rc:78 +#, kde-format +msgid "Word Wrap" +msgstr "Ajust de les paraules" + +#. i18n: ectx: Menu (view_menu_borders) +#: data/katepart5ui.rc:84 dialogs/katedialogs.cpp:747 +#, kde-format +msgid "Borders" +msgstr "Vores" + +#. i18n: ectx: Menu (codefolding) +#: data/katepart5ui.rc:92 +#, kde-format +msgid "&Code Folding" +msgstr "Plega el &codi" + +#. i18n: ectx: Menu (go) +#: data/katepart5ui.rc:109 +#, kde-format +msgid "&Go" +msgstr "&Ves" + +#. i18n: ectx: Menu (tools) +#: data/katepart5ui.rc:124 +#, kde-format +msgid "&Tools" +msgstr "&Eines" + +#. i18n: ectx: Menu (wordcompletion) +#: data/katepart5ui.rc:138 +#, kde-format +msgid "Word Completion" +msgstr "Compleció de paraules" + +#. i18n: ectx: Menu (spelling) +#: data/katepart5ui.rc:144 spellcheck/spellingmenu.cpp:71 +#: spellcheck/spellingmenu.cpp:195 +#, kde-format +msgid "Spelling" +msgstr "Ortografia" + +#. i18n: ectx: Menu (speech) +#: data/katepart5ui.rc:153 data/katepart5ui.rc:184 +#, kde-format +msgid "Text to Speech" +msgstr "Text a veu" + +#. i18n: ectx: Menu (settings) +#: data/katepart5ui.rc:161 +#, kde-format +msgid "&Settings" +msgstr "A&rranjament" + +#. i18n: ectx: ToolBar (mainToolBar) +#: data/katepart5ui.rc:192 +#, kde-format +msgid "Main Toolbar" +msgstr "Barra d'eines principal" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/bordersappearanceconfigwidget.ui:25 +#, kde-format +msgid "Code block folding:" +msgstr "Plegat de bloc de codi:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowFoldingMarkers) +#: dialogs/bordersappearanceconfigwidget.ui:32 +#, kde-format +msgid "" +"If this option is checked, every new view will display marks for folding." +msgstr "" +"Si aquesta opció està activada, cada vista nova mostrarà les marques de " +"plegat de codi." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowFoldingMarkers) +#: dialogs/bordersappearanceconfigwidget.ui:35 +#, kde-format +msgid "Show arrows to collapse code blocks" +msgstr "Mostra les fletxes per a reduir els blocs de codi" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowFoldingPreview) +#: dialogs/bordersappearanceconfigwidget.ui:42 +#, kde-format +msgid "" +"If checked, hovering over a folded region shows a preview of the folded text " +"in a popup." +msgstr "" +"Si aquesta opció està activada, en passar per sobre d'una regió plegada es " +"mostrarà una vista prèvia del text plegat en una finestra emergent." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowFoldingPreview) +#: dialogs/bordersappearanceconfigwidget.ui:45 +#, kde-format +msgid "Show preview of folded blocks on hover" +msgstr "Mostra una vista prèvia dels blocs plegats en passar per sobre" + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/bordersappearanceconfigwidget.ui:52 +#, kde-format +msgid "Folding arrows visibility:" +msgstr "Visibilitat de les fletxes de plegat:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbFoldingArrowVisiblity) +#: dialogs/bordersappearanceconfigwidget.ui:63 +#, kde-format +msgid "Show on Hover" +msgstr "Mostra en passar-hi per sobre" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbFoldingArrowVisiblity) +#: dialogs/bordersappearanceconfigwidget.ui:68 +#, kde-format +msgid "Show Always" +msgstr "Mostra sempre" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/bordersappearanceconfigwidget.ui:92 +#, kde-format +msgid "Left side:" +msgstr "Costat esquerre:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkIconBorder) +#: dialogs/bordersappearanceconfigwidget.ui:99 +#, kde-format +msgid "" +"

If this option is checked, every new view will display an icon border on " +"the left hand side.

The icon border shows bookmark signs, for instance." +"

" +msgstr "" +"

Si aquesta opció està activada, cada vista nova mostrarà una vora per a " +"les icones al costat esquerre.

Per exemple, la vora per a les icones " +"mostra els punts.

" + +#. i18n: ectx: property (text), widget (QCheckBox, chkIconBorder) +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMarks) +#: dialogs/bordersappearanceconfigwidget.ui:102 +#: dialogs/bordersappearanceconfigwidget.ui:155 +#, kde-format +msgid "Show marks" +msgstr "Mostra les marques" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkLineNumbers) +#: dialogs/bordersappearanceconfigwidget.ui:109 +#, kde-format +msgid "" +"If this option is checked, every new view will display line numbers on the " +"left hand side." +msgstr "" +"Si aquesta opció està activada, cada vista nova mostrarà els números de les " +"línies al costat esquerre." + +#. i18n: ectx: property (text), widget (QCheckBox, chkLineNumbers) +#: dialogs/bordersappearanceconfigwidget.ui:112 +#, kde-format +msgid "Show &line numbers" +msgstr "Mostra els números de les &línies" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowLineModification) +#: dialogs/bordersappearanceconfigwidget.ui:119 +#, kde-format +msgid "" +"If this option is checked, a small indicator for modified and saved lines is " +"shown on the left hand side." +msgstr "" +"Si aquesta opció està activada, es mostrarà un indicador petit per a les " +"línies modificades i les línies desades al costat esquerre." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowLineModification) +#: dialogs/bordersappearanceconfigwidget.ui:122 +#, kde-format +msgid "Highlight changed and unsaved lines" +msgstr "Ressalta les línies canviades i sense desar" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/bordersappearanceconfigwidget.ui:145 +#, kde-format +msgid "Scrollbars:" +msgstr "Barres de desplaçament:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMarks) +#: dialogs/bordersappearanceconfigwidget.ui:152 +#, kde-format +msgid "" +"

If this option is checked, every new view will show marks on the vertical " +"scrollbar.

These marks will show bookmarks, for instance.

" +msgstr "" +"

Si aquesta opció està activada, cada vista nova mostrarà marques a la " +"barra de desplaçament vertical.

Per exemple, aquestes marques mostren " +"els punts.

" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarPreview) +#: dialogs/bordersappearanceconfigwidget.ui:162 +#, kde-format +msgid "" +"

If this option is checked, hovering over the vertical scrollbar will show " +"a preview of the text.

" +msgstr "" +"

Si aquesta opció està activada, en passar per sobre la barra de " +"desplaçament es mostrarà una vista prèvia del text.

" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarPreview) +#: dialogs/bordersappearanceconfigwidget.ui:165 +#, kde-format +msgid "Show preview when hovering over scrollbar" +msgstr "" +"Mostra una vista prèvia en passar per sobre de la barra de desplaçament" + +#. i18n: ectx: property (text), widget (QLabel, lblShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:172 +#, kde-format +msgid "Scro&llbars visibility:" +msgstr "Visibilitat de les barres de desp&laçament:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:183 dialogs/katedialogs.cpp:755 +#, kde-format +msgid "Always On" +msgstr "Sempre actives" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:188 +#, kde-format +msgid "Show When Needed" +msgstr "Mostra-les quan calgui" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:193 +#, kde-format +msgid "Always Off" +msgstr "Sempre desactivades" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/bordersappearanceconfigwidget.ui:217 +#, kde-format +msgid "Minimap:" +msgstr "Mapa en miniatura:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMiniMap) +#: dialogs/bordersappearanceconfigwidget.ui:224 +#, kde-format +msgid "" +"If this option is checked, every new view will show a mini map on the " +"vertical scrollbar." +msgstr "" +"Si aquesta opció està activada, cada vista nova mostrarà un mapa en " +"miniatura a la barra de desplaçament vertical." + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMiniMap) +#: dialogs/bordersappearanceconfigwidget.ui:227 +#, kde-format +msgid "Show minimap" +msgstr "Mostra un mapa en miniatura" + +#. i18n: ectx: property (text), widget (QLabel, labelMiniMapWidth) +#: dialogs/bordersappearanceconfigwidget.ui:250 +#, kde-format +msgid "Minim&ap width:" +msgstr "&Amplada del mapa en miniatura:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMiniMapAll) +#: dialogs/bordersappearanceconfigwidget.ui:263 +#, kde-format +msgid "" +"If this option is checked, every new view will show a mini map of the whole " +"document on the vertical scrollbar." +msgstr "" +"Si aquesta opció està activada, cada vista nova mostrarà un mapa en " +"miniatura de tot el document a la barra de desplaçament vertical." + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMiniMapAll) +#: dialogs/bordersappearanceconfigwidget.ui:266 +#, kde-format +msgid "Map the whole document" +msgstr "Mapa de tot el document" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbSortBookmarksByCreation) +#: dialogs/bordersappearanceconfigwidget.ui:276 +#, kde-format +msgid "" +"Each new bookmark will be added to the bottom, independently from where it " +"is placed in the document." +msgstr "" +"Cada punt nou s'afegirà a baix, independentment d'on estigui situat en el " +"document." + +#. i18n: ectx: property (text), widget (QRadioButton, rbSortBookmarksByCreation) +#: dialogs/bordersappearanceconfigwidget.ui:279 +#, kde-format +msgid "By date created" +msgstr "Per data de creació" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbSortBookmarksByPosition) +#: dialogs/bordersappearanceconfigwidget.ui:286 +#, kde-format +msgid "The bookmarks will be ordered by the line numbers they are placed at." +msgstr "Els punts s'ordenaran pel número de línia en la qual estan situats." + +#. i18n: ectx: property (text), widget (QRadioButton, rbSortBookmarksByPosition) +#: dialogs/bordersappearanceconfigwidget.ui:289 +#, kde-format +msgid "By line number" +msgstr "Per número de línia" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/bordersappearanceconfigwidget.ui:296 +#, kde-format +msgid "Sort bookmarks menu:" +msgstr "Ordena el menú dels punts:" + +#: dialogs/clipboardhistorydialog.cpp:264 +#, kde-format +msgid "Select text to paste." +msgstr "Selecciona el text a enganxar." + +#: dialogs/clipboardhistorydialog.cpp:296 +#, kde-format +msgid "No entries in clipboard history" +msgstr "No hi ha cap entrada a l'historial del porta-retalls" + +#. i18n: ectx: property (title), widget (QGroupBox, gbGeneral) +#. i18n: ectx: property (title), widget (QGroupBox, gbViInputMode) +#: dialogs/completionconfigtab.ui:29 dialogs/katedialogs.cpp:609 +#: dialogs/katedialogs.cpp:743 dialogs/katedialogs.cpp:1026 +#: vimode/config/configwidget.ui:29 +#, kde-format +msgid "General" +msgstr "General" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoCompletionEnabled) +#: dialogs/completionconfigtab.ui:35 +#, kde-format +msgid "Enable &auto completion" +msgstr "Activa la compleció &automàtica" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoSelectFirstEntry) +#: dialogs/completionconfigtab.ui:42 +#, kde-format +msgid "Auto select &first completion entry" +msgstr "Selecciona automàticament la &primera entrada de compleció" + +# skip-rule: kct-tab +#. i18n: ectx: property (text), widget (QCheckBox, chkTabCompletion) +#: dialogs/completionconfigtab.ui:49 +#, kde-format +msgid "Cycle through the list of completions using Tab / Shift+Tab" +msgstr "Circula entre la llista de complecions usant Tab / Maj+Tab" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkEnterCompletion) +#: dialogs/completionconfigtab.ui:56 +#, kde-format +msgid "" +"Pressing enter will insert the text of selected completion item into the " +"editor. If disabled, Tab key or double-click can still be used to trigger " +"completion." +msgstr "" +"En prémer Retorn s'inserirà el text de l'element de compleció seleccionat a " +"l'editor. Si està desactivat, encara es poden utilitzar la tecla de " +"tabulació o el doble clic per a activar la compleció." + +#. i18n: ectx: property (text), widget (QCheckBox, chkEnterCompletion) +#: dialogs/completionconfigtab.ui:59 +#, kde-format +msgid "Use Enter key to insert selected completion" +msgstr "Empreu la tecla Retorn per a inserir la compleció seleccionada" + +#. i18n: ectx: property (title), widget (QGroupBox, gbWordCompletion) +#: dialogs/completionconfigtab.ui:69 +#, kde-format +msgid "A&uto word completion" +msgstr "Compleció a&utomàtica de paraules" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/completionconfigtab.ui:83 +#, kde-format +msgid "Minimal word length to complete:" +msgstr "Longitud mínima de la paraula a completar:" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, removeTail) +#: dialogs/completionconfigtab.ui:111 +#, kde-format +msgid "Remove tail of a previous word when completion item chosen from a list" +msgstr "" +"Elimina el final de la paraula anterior quan es tria l'element de compleció " +"des d'una llista" + +#. i18n: ectx: property (text), widget (QCheckBox, removeTail) +#: dialogs/completionconfigtab.ui:114 +#, kde-format +msgid "Remove tail on complete" +msgstr "Elimina el final en la compleció" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/completionconfigtab.ui:121 +#, kde-format +msgid "" +"Word completion provides suggestions based on the words found in the document" +msgstr "" +"La compleció de paraules proporciona suggeriments basats en les paraules " +"trobades en el document" + +#. i18n: ectx: property (title), widget (QGroupBox, gbKeywordCompletion) +#: dialogs/completionconfigtab.ui:134 +#, kde-format +msgid "&Keyword completion" +msgstr "Compleció de paraules &clau" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/completionconfigtab.ui:143 +#, kde-format +msgid "" +"Keyword completion provides suggestions based on the keywords which exist in " +"the document's language." +msgstr "" +"La compleció de paraules clau proporciona suggeriments basats en les " +"paraules clau que existeixen en el llenguatge del document." + +#. i18n: ectx: property (title), widget (QGroupBox, gbShowDoc) +#: dialogs/completionconfigtab.ui:156 +#, kde-format +msgid "Documentation with completion" +msgstr "Documentació amb la compleció" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/completionconfigtab.ui:165 +#, kde-format +msgid "" +"Show documentation beside completion box. If disabled, documentation can be " +"shown by pressing Alt key." +msgstr "" +"Mostra la documentació al costat del quadre de compleció. Si està " +"desactivat, la documentació es pot mostrar prement la tecla Alt." + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/editconfigwidget.ui:22 +#, kde-format +msgid "Word wrap:" +msgstr "Ajust de les paraules:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkStaticWordWrap) +#: dialogs/editconfigwidget.ui:29 +#, kde-format +msgid "" +"

Automatically start a new line of text when the current line exceeds the " +"length specified by the Wrap words at: option.

This option does " +"not wrap existing lines of text - use the Apply Static Word Wrap " +"option in the Tools menu for that purpose.

If you want lines to " +"be visually wrapped instead, according to the width of the view, " +"enable Dynamic Word Wrap in the Appearance config page.

" +msgstr "" +"

Inicia automàticament una línia nova de text quan la línia actual " +"excedeixi la longitud indicada per l'opció Ajusta les paraules a:.

Aquesta opció no ajusta les línies de text existents. Useu l'opció " +"Aplica l'ajust estàtic de les paraules del menú Eines per a " +"aquesta finalitat.

Si, en el seu lloc, voleu que les línies siguin " +"ajustades visualment, d'acord amb l'amplada de la vista, activeu " +"l'Ajust dinàmic de les paraules a la pàgina de configuració " +"Aparença.

" + +#. i18n: ectx: property (text), widget (QCheckBox, chkStaticWordWrap) +#: dialogs/editconfigwidget.ui:32 +#, kde-format +msgid "Wrap &words at a fixed column" +msgstr "A&justa les paraules a una columna fixada" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowStaticWordWrapMarker) +#: dialogs/editconfigwidget.ui:39 +#, kde-format +msgid "" +"

If this option is checked, a vertical line will be drawn at the word wrap " +"column as defined in the Editing properties.

" +msgstr "" +"

Si aquesta opció està activada, es dibuixarà una línia vertical a la " +"columna d'ajust de les paraules, com s'ha definit a les propietats " +"d'Edició.

" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowStaticWordWrapMarker) +#: dialogs/editconfigwidget.ui:42 +#, kde-format +msgid "&Draw vertical line at the word wrap column" +msgstr "&Dibuixa una línia vertical a la columna d'ajust de les paraules" + +#. i18n: ectx: property (text), widget (QLabel, lblWordWrap) +#: dialogs/editconfigwidget.ui:49 +#, kde-format +msgid "Wra&p words at:" +msgstr "A&justa les paraules a:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbWordWrap) +#: dialogs/editconfigwidget.ui:59 +#, kde-format +msgid "" +"If the Word Wrap option is selected this entry determines the length (in " +"characters) at which the editor will automatically start a new line." +msgstr "" +"Si s'ha seleccionat l'opció d'ajust de les paraules, aquesta entrada " +"determinarà la longitud (en caràcters) en la que l'editor iniciarà " +"automàticament una línia nova." + +#. i18n: ectx: property (text), widget (QLabel, lblInputMode) +#: dialogs/editconfigwidget.ui:91 +#, kde-format +msgid "Default input mode:" +msgstr "Mode d'entrada predeterminat:" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/editconfigwidget.ui:120 +#, kde-format +msgid "Brackets:" +msgstr "Claus:" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoBrackets) +#: dialogs/editconfigwidget.ui:127 +#, kde-format +msgid "Automatically close brackets when opening bracket is typed" +msgstr "Tanca automàticament les claus quan es teclegi una clau d'obertura" + +#. i18n: ectx: property (whatsThis), widget (QLabel, lbEncloseSelection) +#: dialogs/editconfigwidget.ui:140 +#, kde-format +msgid "" +"When some text is selected these chars will be added on both its sides in a " +"way \"Auto Bracket\" do" +msgstr "" +"Quan hi ha text seleccionat, s'afegiran aquests caràcters a ambdós extrems " +"de manera semblant a com ho fa «Parèntesis automàtics»" + +#. i18n: ectx: property (text), widget (QLabel, lbEncloseSelection) +#: dialogs/editconfigwidget.ui:143 +#, kde-format +msgid "Enclosing characters:" +msgstr "Caràcters de tancament:" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/editconfigwidget.ui:166 +#, kde-format +msgid "Copy and paste:" +msgstr "Copiar i enganxar:" + +#. i18n: ectx: property (text), widget (QCheckBox, chkTextDragAndDrop) +#: dialogs/editconfigwidget.ui:173 +#, kde-format +msgid "Move selected text when dragged" +msgstr "Mou el text seleccionat en arrossegar" + +#. i18n: ectx: property (text), widget (QCheckBox, chkSmartCopyCut) +#: dialogs/editconfigwidget.ui:180 +#, kde-format +msgid "Copy/cut the current line if invoked without any text selected" +msgstr "Copia/retalla la línia actual si s'invoca sense cap text seleccionat" + +#. i18n: ectx: property (text), widget (QCheckBox, chkMousePasteAtCursorPosition) +#: dialogs/editconfigwidget.ui:187 +#, kde-format +msgid "Don't move the text cursor when pasting by mouse" +msgstr "No moure el cursor de text en enganxar amb el ratolí" + +#. i18n: ectx: property (text), widget (QLabel, lblClipboardHistoryEntries) +#: dialogs/editconfigwidget.ui:194 +#, kde-format +msgid "Max Clipboard History Entries:" +msgstr "Màx. d'entrades de l'historial del porta-retalls:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbClipboardHistoryEntries) +#: dialogs/editconfigwidget.ui:204 +#, kde-format +msgid "This determines the number of entries to keep in the clipboard history" +msgstr "" +"Això determina el nombre d'entrades a mantenir en l'historial del porta-" +"retalls" + +#. i18n: ectx: property (text), widget (QLabel, lblBracketHelp) +#: dialogs/editconfigwidget.ui:226 +#, kde-format +msgid "" +"When you type these characters while text is selected, they will surround " +"the selected text instead of replacing it." +msgstr "" +"Quan es teclegin aquests caràcters mentre hi hagi text seleccionat, " +"envoltaran el text seleccionat en lloc de reemplaçar-lo." + +#. i18n: ectx: property (text), widget (QCheckBox, chkAccessibility) +#: dialogs/editconfigwidget.ui:252 +#, kde-format +msgid "Enable accessibility notifications" +msgstr "Activa les notificacions d'accessibilitat" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/editconfigwidget.ui:259 +#, kde-format +msgid "Accessibility:" +msgstr "Accessibilitat:" + +#. i18n: ectx: property (text), widget (QLabel, lblFiletype) +#: dialogs/filetypeconfigwidget.ui:14 +#, kde-format +msgid "&Filetype:" +msgstr "Tipus de &fitxer:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbFiletypes) +#: dialogs/filetypeconfigwidget.ui:24 +#, kde-format +msgid "Select the filetype you want to change." +msgstr "Seleccioneu el tipus de fitxer que voleu canviar." + +#. i18n: ectx: property (whatsThis), widget (QPushButton, btnNew) +#: dialogs/filetypeconfigwidget.ui:31 +#, kde-format +msgid "Create a new file type." +msgstr "Crea un tipus de fitxer nou." + +#. i18n: ectx: property (text), widget (QPushButton, btnNew) +#: dialogs/filetypeconfigwidget.ui:34 +#, kde-format +msgid "&New" +msgstr "&Nou" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, btnDelete) +#: dialogs/filetypeconfigwidget.ui:41 +#, kde-format +msgid "Delete the current file type." +msgstr "Suprimeix el tipus de fitxer actual." + +#. i18n: ectx: property (text), widget (QPushButton, btnDelete) +#: dialogs/filetypeconfigwidget.ui:44 syntax/katethemeconfig.cpp:1132 +#, kde-format +msgid "&Delete" +msgstr "Su&primeix" + +#. i18n: ectx: property (title), widget (QGroupBox, gbProperties) +#: dialogs/filetypeconfigwidget.ui:66 mode/katemodeconfigpage.cpp:272 +#, kde-format +msgid "Properties" +msgstr "Propietats" + +#. i18n: ectx: property (text), widget (QLabel, lblName) +#: dialogs/filetypeconfigwidget.ui:72 +#, kde-format +msgid "&Name:" +msgstr "&Nom:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtName) +#: dialogs/filetypeconfigwidget.ui:82 +#, kde-format +msgid "" +"The name of the filetype will be the text of the corresponding menu item." +msgstr "" +"El nom del tipus de fitxer serà el text de l'element corresponent del menú." + +#. i18n: ectx: property (text), widget (QLabel, lblSection) +#: dialogs/filetypeconfigwidget.ui:89 +#, kde-format +msgid "&Section:" +msgstr "&Secció:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtSection) +#: dialogs/filetypeconfigwidget.ui:99 +#, kde-format +msgid "The section name is used to organize the file types in menus." +msgstr "" +"El nom de la secció s'usa per a organitzar els tipus de fitxer en els menús." + +#. i18n: ectx: property (text), widget (QLabel, lblVariables) +#: dialogs/filetypeconfigwidget.ui:106 +#, kde-format +msgid "&Variables:" +msgstr "&Variables:" + +#. i18n: ectx: property (whatsThis), widget (VariableLineEdit, edtVariables) +#: dialogs/filetypeconfigwidget.ui:116 +#, kde-format +msgid "" +"

This string allows to configure Kate's settings for the files selected by " +"this mimetype using Kate variables. Almost any configuration option can be " +"set, such as highlight, indent-mode, encoding, etc.

For a full list of " +"known variables, see the manual.

" +msgstr "" +"

Aquesta cadena permet configurar els paràmetres del Kate per als fitxers " +"seleccionats per aquest tipus MIME usant les variables del Kate. Gairebé es " +"pot definir qualsevol opció de configuració, com el ressaltat, el mode de " +"sagnat, la codificació, etc.

Per a una llista completa de les " +"variables conegudes, vegeu el manual.

" + +#. i18n: ectx: property (text), widget (QLabel, lblHl) +#: dialogs/filetypeconfigwidget.ui:123 +#, kde-format +msgid "&Highlighting:" +msgstr "&Ressaltat:" + +#. i18n: ectx: property (text), widget (QLabel, lblIndenter) +#: dialogs/filetypeconfigwidget.ui:136 +#, kde-format +msgid "&Indentation mode:" +msgstr "Mode de &sagnat:" + +#. i18n: ectx: property (text), widget (QLabel, lblExtensions) +#: dialogs/filetypeconfigwidget.ui:149 +#, kde-format +msgid "File e&xtensions:" +msgstr "E&xtensions de fitxer:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtFileExtensions) +#: dialogs/filetypeconfigwidget.ui:159 +#, kde-format +msgid "" +"The wildcards mask allows to select files by filename. A typical mask uses " +"an asterisk and the file extension, for example *.txt; *.text. " +"The string is a semicolon-separated list of masks." +msgstr "" +"Les màscares amb comodins permeten seleccionar fitxers per un nom de fitxer. " +"Una màscara típica usa un asterisc i l'extensió del fitxer, per exemple " +"*.txt; *.text. La cadena és una llista de màscares separades " +"per un punt i coma." + +#. i18n: ectx: property (text), widget (QLabel, lblMimeTypes) +#: dialogs/filetypeconfigwidget.ui:166 +#, kde-format +msgid "MIME &types:" +msgstr "&Tipus MIME:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtMimeTypes) +#: dialogs/filetypeconfigwidget.ui:181 +#, kde-format +msgid "" +"The mime type mask allows to select files by mimetype. The string is a " +"semicolon-separated list of mimetypes, for example text/plain; text/" +"english." +msgstr "" +"Les màscares de tipus MIME permeten seleccionar fitxers pel tipus MIME. La " +"cadena és una llista de tipus MIME separats per un punt i coma, per exemple " +"text/plain; text/english." + +#. i18n: ectx: property (whatsThis), widget (QToolButton, btnMimeTypes) +#: dialogs/filetypeconfigwidget.ui:188 +#, kde-format +msgid "Displays a wizard that helps you easily select mimetypes." +msgstr "" +"Mostra un auxiliar que us ajuda a seleccionar els tipus MIME amb facilitat." + +#. i18n: ectx: property (text), widget (QLabel, lblPriority) +#: dialogs/filetypeconfigwidget.ui:197 +#, kde-format +msgid "P&riority:" +msgstr "P&rioritat:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbPriority) +#: dialogs/filetypeconfigwidget.ui:207 +#, kde-format +msgid "" +"Sets priority for this file type. If more than one file type selects the " +"same file, the one with the highest priority will be used." +msgstr "" +"Defineix la prioritat per a aquest tipus de fitxer. Si un fitxer quadra amb " +"més d'un tipus de fitxer, s'usarà el de prioritat més alta." + +#. i18n: ectx: property (text), widget (QLabel, lblMode) +#: dialogs/indentationconfigwidget.ui:43 +#, kde-format +msgid "Default indentation mode:" +msgstr "Mode de sagnat predeterminat:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbMode) +#: dialogs/indentationconfigwidget.ui:53 +#, kde-format +msgid "" +"This is a list of available indentation modes. The specified indentation " +"mode will be used for all new documents. Be aware that it is also possible " +"to set the indentation mode with document variables, modes or a .kateconfig " +"file." +msgstr "" +"Aquesta és una llista dels modes de sagnat disponibles. El mode de sagnat " +"especificat s'usarà per a tots els documents nous. Cal tenir present que es " +"pot definir el mode de sagnat amb les variables dels documents, amb els " +"modes o amb un fitxer «.kateconfig»." + +#. i18n: ectx: property (title), widget (QGroupBox, gbIndentationMode) +#: dialogs/indentationconfigwidget.ui:75 +#, kde-format +msgid "Indent using" +msgstr "Sagna usant" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbIndentWidth) +#: dialogs/indentationconfigwidget.ui:81 +#, kde-format +msgid "" +"The indentation width is the number of spaces which is used to indent a " +"line. If the option Insert spaces instead of tabulators in the " +"section Editing is disabled, a Tab character is inserted if " +"the indentation is divisible by the tab width." +msgstr "" +"L'amplada del sagnat és el nombre d'espais que s'usen per a sagnar una " +"línia. Si l'opció Insereix espais en lloc de tabuladors en la secció " +"Edició està desactivada, s'inserirà un caràcter de tabulació " +"si el sagnat és divisible per l'amplada de la tabulació." + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentWithSpaces) +#: dialogs/indentationconfigwidget.ui:97 +#, kde-format +msgid "&Spaces" +msgstr "&Espais" + +#. i18n: ectx: property (text), widget (QLabel, lblIndentWidth) +#: dialogs/indentationconfigwidget.ui:104 +#, kde-format +msgid "&Indentation width:" +msgstr "Amplada del sa&gnat:" + +#. i18n: ectx: property (text), widget (QLabel, lblTabWidth) +#: dialogs/indentationconfigwidget.ui:114 +#, kde-format +msgid "Tab wi&dth:" +msgstr "Ampla&da de la tabulació:" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentWithTabs) +#: dialogs/indentationconfigwidget.ui:153 +#, kde-format +msgid "&Tabulators" +msgstr "&Tabulacions" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentMixed) +#: dialogs/indentationconfigwidget.ui:160 +#, kde-format +msgid "Tabulators &and Spaces" +msgstr "Tabuladors &i espais" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoDetectIndent) +#: dialogs/indentationconfigwidget.ui:167 +#, kde-format +msgid "Automatically detect file indentation" +msgstr "Detecta automàticament el sagnat del fitxer" + +#. i18n: ectx: property (title), widget (QGroupBox, gbProperties) +#: dialogs/indentationconfigwidget.ui:177 +#, kde-format +msgid "Indentation Properties" +msgstr "Propietats del sagnat" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkKeepExtraSpaces) +#: dialogs/indentationconfigwidget.ui:183 +#, kde-format +msgid "" +"If this option is disabled, changing the indentation level aligns a line to " +"a multiple of the width specified in Indentation width." +msgstr "" +"Si aquesta opció està desactivada, en canviar el nivell de sagnat, les " +"línies s'alinearan a un múltiple de l'amplada especificada a Amplada del " +"sagnat." + +#. i18n: ectx: property (text), widget (QCheckBox, chkKeepExtraSpaces) +#: dialogs/indentationconfigwidget.ui:186 +#, kde-format +msgid "&Keep extra spaces" +msgstr "&Conserva els espais extres" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkIndentPaste) +#: dialogs/indentationconfigwidget.ui:193 +#, kde-format +msgid "" +"If this option is selected, pasted code from the clipboard is indented. " +"Triggering the undo-action removes the indentation." +msgstr "" +"Si aquesta opció està seleccionada, se sagnarà el codi enganxat des del " +"porta-retalls. En activar l'acció de desfer s'eliminarà el sagnat." + +#. i18n: ectx: property (text), widget (QCheckBox, chkIndentPaste) +#: dialogs/indentationconfigwidget.ui:196 +#, kde-format +msgid "Adjust indentation of code &pasted from the clipboard" +msgstr "Ajusta el sagnat del codi engan&xat des del porta-retalls" + +#. i18n: ectx: property (title), widget (QGroupBox, gbKeys) +#: dialogs/indentationconfigwidget.ui:206 +#, kde-format +msgid "Indentation Actions" +msgstr "Accions del sagnat" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackspaceUnindents) +#: dialogs/indentationconfigwidget.ui:212 +#, kde-format +msgid "" +"If this option is selected, the Backspace key decreases the " +"indentation level if the cursor is located in the leading blank space of a " +"line." +msgstr "" +"Si aquesta opció està seleccionada, la tecla de Retrocés disminuirà " +"el nivell de sagnat si el cursor està posicionat a l'espai en blanc inicial " +"d'una línia." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackspaceUnindents) +#: dialogs/indentationconfigwidget.ui:215 +#, kde-format +msgid "&Backspace key in leading blank space unindents" +msgstr "La tecla de &retrocés en un espai en blanc inicial desfà el sagnat" + +# skip-rule: t-pu_sp +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/indentationconfigwidget.ui:225 +#, kde-format +msgid "" +"\n" +"
" +msgstr "" +"\n" +"

Acció de la tecla de tabulació (si no existeix cap selecció) tabulador alineï la línia actual al bloc de codi actual " +"com en l'Emacs, convertiu el tabulador en una drecera a l'acció " +"Format del sagnat.\">Més...

" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabAdvances) +#: dialogs/indentationconfigwidget.ui:276 +#, kde-format +msgid "" +"If this option is selected, the Tab key always inserts white space so " +"that the next tab position is reached. If the option Insert spaces " +"instead of tabulators in the section Editing is enabled, spaces " +"are inserted; otherwise, a single tabulator is inserted." +msgstr "" +"Si aquesta opció està seleccionada, la tecla de tabulació sempre " +"inserirà espais en blanc fins a la següent posició de tabulació. Si l'opció " +"Insereix espais en lloc de tabuladors de la secció Edició està " +"activada, s'inseriran espais, altrament s'inserirà una única tabulació." + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabAdvances) +#: dialogs/indentationconfigwidget.ui:279 +#, kde-format +msgid "Always advance to the &next tab position" +msgstr "Avança sempre fins a la posició de la tabulació següe&nt" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabIndents) +#: dialogs/indentationconfigwidget.ui:286 +#, kde-format +msgid "" +"If this option is selected, the Tab key always indents the current " +"line by the number of character positions specified in Indentation width." +msgstr "" +"Si aquesta opció està seleccionada, la tecla de tabulació sempre " +"sagnarà la línia actual amb el nombre de posicions indicades a Amplada " +"del sagnat." + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabIndents) +#: dialogs/indentationconfigwidget.ui:289 +#, kde-format +msgid "Always increase indentation &level" +msgstr "Augmenta sempre el nive&ll de sagnat" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabSmart) +#: dialogs/indentationconfigwidget.ui:296 +#, kde-format +msgid "" +"If this option is selected, the Tab key either indents the current " +"line or advances to the next tab position.

If the insertion point is at " +"or before the first non-space character in the line, or if there is a " +"selection, the current line is indented by the number of character positions " +"specified in Indentation width.

If the insertion point is located " +"after the first non-space character in the line and there is no selection, " +"white space is inserted so that the next tab position is reached: if the " +"option Insert spaces instead of tabulators in the section Editing is enabled, spaces are inserted; otherwise, a single tabulator is " +"inserted." +msgstr "" +"Si aquesta opció està seleccionada, la tecla de tabulació sagnarà la " +"línia actual o avançarà fins a la posició de tabulació següent.

Si el " +"punt d'inserció està en el primer caràcter no en blanc o abans de la línia, " +"o hi ha una selecció, la línia actual se sagnarà en el nombre de posicions " +"indicades a Amplada del sagnat.

Si el punt d'inserció està després " +"del primer caràcter no en blanc de la línia i no hi ha cap selecció, " +"s'inserirà un espai en blanc de manera que s'arribi a la posició de la " +"tabulació següent: si l'opció Insereix espais en lloc de tabuladors " +"de la secció Edició està activada, s'inseriran espais. Altrament, " +"s'inserirà una única tabulació." + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabSmart) +#: dialogs/indentationconfigwidget.ui:299 +#, kde-format +msgid "Increase indentation level if in l&eading blank space" +msgstr "Augmenta el nivell de sagnat en un &espai en blanc inicial" + +#: dialogs/katedialogs.cpp:185 dialogs/katedialogs.cpp:187 +#, kde-format +msgid "%v character" +msgid_plural "%v characters" +msgstr[0] "%v caràcter" +msgstr[1] "%v caràcters" + +#: dialogs/katedialogs.cpp:211 +#, kde-format +msgid "Indentation" +msgstr "Sagnat" + +#: dialogs/katedialogs.cpp:295 +#, kde-format +msgid "Auto Completion" +msgstr "Compleció automàtica" + +#: dialogs/katedialogs.cpp:362 +#, kde-format +msgid "Spellcheck" +msgstr "Verificació ortogràfica" + +#: dialogs/katedialogs.cpp:410 dialogs/katedialogs.cpp:417 +#, kde-format +msgid "Alt" +msgstr "Alt" + +#: dialogs/katedialogs.cpp:411 dialogs/katedialogs.cpp:419 +#, kde-format +msgid "Ctrl" +msgstr "Ctrl" + +#: dialogs/katedialogs.cpp:412 +#, kde-format +msgid "Meta" +msgstr "Meta" + +#: dialogs/katedialogs.cpp:413 dialogs/katedialogs.cpp:421 +#, kde-format +msgid "Ctrl + Alt" +msgstr "Ctrl + Alt" + +#: dialogs/katedialogs.cpp:414 +#, kde-format +msgid "Meta + Alt" +msgstr "Meta + Alt" + +#: dialogs/katedialogs.cpp:415 +#, kde-format +msgid "Ctrl + Meta" +msgstr "Ctrl + Meta" + +#: dialogs/katedialogs.cpp:418 +#, kde-format +msgid "Cmd" +msgstr "Cmd" + +#: dialogs/katedialogs.cpp:420 +#, kde-format +msgid "Cmd + Alt" +msgstr "Cmd + Alt" + +#: dialogs/katedialogs.cpp:422 +#, kde-format +msgid "Cmd + Ctrl" +msgstr "Cmd + Ctrl" + +#: dialogs/katedialogs.cpp:480 +#, kde-format +msgid "Text Navigation" +msgstr "Navegació pel text" + +#: dialogs/katedialogs.cpp:582 +#, kde-format +msgctxt "Wrap words at (value is at 20 or larger)" +msgid "%v character" +msgid_plural "%v characters" +msgstr[0] "%v caràcter" +msgstr[1] "%v caràcters" + +#: dialogs/katedialogs.cpp:587 +#, kde-format +msgid "Feature is not active" +msgstr "La característica no és activa" + +#: dialogs/katedialogs.cpp:589 +#, kde-format +msgid "Disable Feature" +msgstr "Desactiva la funcionalitat" + +#: dialogs/katedialogs.cpp:591 +#, kde-format +msgid "May be handy with Markdown" +msgstr "Pot ser útil amb el Markdown" + +#: dialogs/katedialogs.cpp:593 +#, kde-format +msgid "Mirror characters, similar but not exactly like auto brackets" +msgstr "" +"Caràcters en mirall, semblant però no igual que els Parèntesis automàtics" + +#: dialogs/katedialogs.cpp:595 +#, kde-format +msgid "Non letter character" +msgstr "Caràcter de no lletra" + +#: dialogs/katedialogs.cpp:712 +#, kde-format +msgid "Editing" +msgstr "Edició" + +#: dialogs/katedialogs.cpp:717 +#, kde-format +msgid "Editing Options" +msgstr "Opcions de l'edició" + +#: dialogs/katedialogs.cpp:751 +#, kde-format +msgid "Statusbar" +msgstr "Barra d'estat" + +#: dialogs/katedialogs.cpp:753 +#, kde-format +msgid "Off" +msgstr "Inactiu" + +#: dialogs/katedialogs.cpp:754 +#, kde-format +msgid "Follow Line Numbers" +msgstr "Segueix els números de línia" + +#: dialogs/katedialogs.cpp:945 dialogs/katedialogs.cpp:950 +#, kde-format +msgid "Appearance" +msgstr "Aparença" + +#: dialogs/katedialogs.cpp:986 +#, kde-format +msgid "" +"%1 backs up unsaved files to \"swap files.\" Swap files allow %1 to recover " +"your work in the case of a system crash. Disabling swap files may cause data " +"loss in case of a system crash." +msgstr "" +"El %1 farà còpies de seguretat dels fitxers sense desar a «swap " +"files» (fitxer d'intercanvi). Els fitxers d'intercanvi permeten que el %1 " +"recuperi el treball en cas d'una fallada del sistema. La desactivació dels " +"fitxers d'intercanvi pot provocar la pèrdua de dades en cas d'una fallada " +"del sistema." + +#: dialogs/katedialogs.cpp:1027 +#, kde-format +msgid "Advanced" +msgstr "Avançat" + +#: dialogs/katedialogs.cpp:1092 +#, kde-format +msgid "" +"You did not provide a backup suffix or prefix. Using default suffix: '~'" +msgstr "" +"No heu proporcionat cap sufix o prefix de les còpies de seguretat. Per " +"omissió s'usarà: «~»" + +#: dialogs/katedialogs.cpp:1092 +#, kde-format +msgid "No Backup Suffix or Prefix" +msgstr "Sense sufix o prefix de la còpia de seguretat" + +#: dialogs/katedialogs.cpp:1227 +#, kde-format +msgid "Open/Save" +msgstr "Obre i desa" + +#: dialogs/katedialogs.cpp:1232 +#, kde-format +msgid "File Opening & Saving" +msgstr "Obrir i desar fitxers" + +#: dialogs/katedialogs.cpp:1255 +#, kde-format +msgid "&Line:" +msgstr "&Línia:" + +#: dialogs/katedialogs.cpp:1256 +#, kde-format +msgid "Go to line number from clipboard" +msgstr "Va al número de línia del porta-retalls" + +#: dialogs/katedialogs.cpp:1267 +#, kde-format +msgid "Go to" +msgstr "Ves a" + +#: dialogs/katedialogs.cpp:1347 +#, kde-format +msgid "No valid line number found in clipboard" +msgstr "No s'ha trobat cap número vàlid de línia al porta-retalls" + +#: dialogs/katedialogs.cpp:1411 +#, kde-format +msgid "Dictionary:" +msgstr "Diccionari:" + +#: dialogs/katedialogs.cpp:1463 +#, kde-format +msgid "Enable Auto Reload" +msgstr "Activa la recàrrega automàtica" + +#: dialogs/katedialogs.cpp:1466 +#, kde-format +msgid "" +"Reloads and will automatically reload without warning about disk changes " +"from now until you close either the tab or window." +msgstr "" +"Torna a carregar i es tornarà a carregar automàticament sense previ avís " +"sobre els canvis del disc des d'ara fins que tanqueu la pestanya o la " +"finestra." + +#: dialogs/katedialogs.cpp:1471 +#, kde-format +msgid "View &Difference" +msgstr "Visualitza la &diferència" + +#: dialogs/katedialogs.cpp:1473 +#, kde-format +msgid "Shows a diff of the changes." +msgstr "Mostra un «diff» dels canvis." + +#: dialogs/katedialogs.cpp:1478 +#, kde-format +msgid "&Reload" +msgstr "&Recarrega" + +#: dialogs/katedialogs.cpp:1480 +#, kde-format +msgid "Reloads the file from disk. Unsaved changes will be lost." +msgstr "Recarrega el fitxer des del disc. Els canvis no desats es perdran." + +#: dialogs/katedialogs.cpp:1484 +#, kde-format +msgctxt "@action:button closes the opened file" +msgid "&Close File" +msgstr "Tan&ca el fitxer" + +#: dialogs/katedialogs.cpp:1486 +#, kde-format +msgid "Closes the file, discarding its content." +msgstr "Tanca el fitxer i descarta el seu contingut." + +#: dialogs/katedialogs.cpp:1490 +#, kde-format +msgctxt "@action" +msgid "&Save As…" +msgstr "De&sa com a…" + +#: dialogs/katedialogs.cpp:1492 +#, kde-format +msgid "Lets you select a location and save the file again." +msgstr "Us permet seleccionar una localització i tornar a desar el fitxer." + +#. i18n: ectx: property (text), widget (QPushButton, m_skipBtn) +#: dialogs/katedialogs.cpp:1497 spellcheck/spellcheckbar.ui:143 +#, kde-format +msgid "&Ignore" +msgstr "&Ignora" + +#: dialogs/katedialogs.cpp:1498 +#, kde-format +msgid "Ignores the changes on disk without any action." +msgstr "Ignora els canvis en el disc sense cap acció." + +#: dialogs/katedialogs.cpp:1567 swapfile/kateswapdiffcreator.cpp:131 +#, kde-format +msgid "" +"The diff command failed. Please make sure that diff(1) is installed and in " +"your PATH." +msgstr "" +"Ha fallat l'ordre «diff». Assegureu-vos que el diff(1) està instal·lat i a " +"la PATH." + +#: dialogs/katedialogs.cpp:1569 swapfile/kateswapdiffcreator.cpp:89 +#: swapfile/kateswapdiffcreator.cpp:99 swapfile/kateswapdiffcreator.cpp:133 +#, kde-format +msgid "Error Creating Diff" +msgstr "Hi ha hagut un error en crear el «diff»" + +#: dialogs/katedialogs.cpp:1576 swapfile/kateswapdiffcreator.cpp:140 +#, kde-format +msgid "The files are identical." +msgstr "Els fitxers són idèntics." + +#: dialogs/katedialogs.cpp:1576 swapfile/kateswapdiffcreator.cpp:140 +#, kde-format +msgid "Diff Output" +msgstr "Sortida del «diff»" + +#. i18n: ectx: property (title), widget (QGroupBox, gbCursorMovement) +#: dialogs/navigationconfigwidget.ui:29 +#, kde-format +msgid "Text Cursor Movement" +msgstr "Moviment del cursor en el text" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkSmartHome) +#: dialogs/navigationconfigwidget.ui:35 +#, kde-format +msgid "" +"When selected, pressing the home key will cause the cursor to skip " +"whitespace and go to the start of a line's text. The same applies for the " +"end key." +msgstr "" +"Quan està seleccionat, en prémer la tecla d'inici el cursor ignorarà els " +"espais en blanc i anirà al començament d'una línia de text. El mateix " +"s'aplica a la tecla de final." + +#. i18n: ectx: property (text), widget (QCheckBox, chkSmartHome) +#: dialogs/navigationconfigwidget.ui:38 +#, kde-format +msgid "Smart ho&me and smart end" +msgstr "I&nici i final intel·ligents" + +# skip-rule: k-PageDown-1 +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkPagingMovesCursor) +#: dialogs/navigationconfigwidget.ui:45 +#, kde-format +msgid "" +"Selects whether the PageUp and PageDown keys should alter the vertical " +"position of the cursor relative to the top of the view." +msgstr "" +"Selecciona quan les tecles d'avançar o retrocedir pàgina haurien d'alterar " +"la posició vertical del cursor en relació amb la part superior de la vista." + +#. i18n: ectx: property (text), widget (QCheckBox, chkPagingMovesCursor) +#: dialogs/navigationconfigwidget.ui:48 +#, kde-format +msgid "&PageUp/PageDown moves cursor" +msgstr "&Av Pàg/Re Pàg mouen el cursor" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkCamelCursor) +#: dialogs/navigationconfigwidget.ui:55 +#, kde-format +msgid "" +"Selects whether cursor stops at camel case humps and underscores within a " +"word." +msgstr "" +"Selecciona si el cursor s'atura a les gepes de les majúscules per parts i " +"guions baixos en una paraula." + +#. i18n: ectx: property (text), widget (QCheckBox, chkCamelCursor) +#: dialogs/navigationconfigwidget.ui:58 +#, kde-format +msgid "" +"Stop at 'camelCase' and 'snake_case' subwords when moving the cursor by word" +msgstr "" +"S'atura a les subparaules de les gepes de les majúscules per parts " +"(«camelCase») i els guions baixos («snake_case») en moure el cursor per " +"paraules" + +#. i18n: ectx: property (text), widget (QLabel, lblAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:79 +#, kde-format +msgid "&Autocenter cursor:" +msgstr "Centra &automàticament el cursor:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:89 +#, kde-format +msgid "" +"Sets the number of lines to maintain visible above and below the cursor when " +"possible." +msgstr "" +"Defineix el nombre de línies a mantenir visibles per sobre i per sota del " +"cursor, sempre que sigui possible." + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, spbSwapFileSync) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:92 dialogs/opensaveconfigadvwidget.ui:120 +#: dialogs/opensaveconfigadvwidget.ui:168 +#, kde-format +msgid "Disabled" +msgstr "Desactivat" + +#. i18n: ectx: property (suffix), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:95 +#, kde-format +msgid " lines" +msgstr " línies" + +#. i18n: ectx: property (title), widget (QGroupBox, cbNavigationMisc) +#: dialogs/navigationconfigwidget.ui:120 +#, kde-format +msgid "Misc" +msgstr "Varis" + +#. i18n: ectx: property (text), widget (QLabel, lblTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:128 +#, kde-format +msgid "Text selection mode:" +msgstr "Mode de selecció del text:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:139 inputmode/katenormalinputmode.cpp:64 +#: mode/katemodemanager.cpp:162 +#, kde-format +msgid "Normal" +msgstr "Normal" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:144 +#, kde-format +msgid "Persistent" +msgstr "Persistent" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollPastEnd) +#: dialogs/navigationconfigwidget.ui:167 +#, kde-format +msgid "Allow scrolling past the end of the document" +msgstr "Permet el desplaçament més enllà del final del document" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackspaceRemoveComposed) +#: dialogs/navigationconfigwidget.ui:174 +#, kde-format +msgid "" +"When selected, composed characters are removed with their diacritics instead " +"of only removing the base character. This is useful for Indic locales." +msgstr "" +"Quan estan seleccionats, els caràcters compostos s'eliminen amb els seus " +"diacrítics en lloc d'eliminar només el caràcter base. Això és útil per a les " +"configuracions regionals de l'Índic." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackspaceRemoveComposed) +#: dialogs/navigationconfigwidget.ui:177 +#, kde-format +msgid "Backspace key removes character’s base with its diacritics" +msgstr "" +"La tecla Retrocés elimina la base dels caràcters amb els seus diacrítics" + +#. i18n: ectx: property (text), widget (QCheckBox, cbCycleBookmarks) +#: dialogs/navigationconfigwidget.ui:184 +#, kde-format +msgid "Allow to cycle through bookmarks" +msgstr "Permet circular entre els punts" + +#. i18n: ectx: property (title), widget (QGroupBox, gbMulticursor) +#: dialogs/navigationconfigwidget.ui:194 +#, kde-format +msgid "Multicursor" +msgstr "Multicursor" + +#. i18n: ectx: property (text), widget (QLabel, lblMulticursormodifiers) +#: dialogs/navigationconfigwidget.ui:200 +#, kde-format +msgid "Multiple Cursor Modifiers" +msgstr "Modificadors de cursor múltiples" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoReloadVersionControl) +#: dialogs/opensaveconfigadvwidget.ui:34 +#, kde-format +msgid "Auto reload files in version control" +msgstr "Recarrega automàticament els fitxers en el control de versions" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoReloadOnExternalChanges) +#: dialogs/opensaveconfigadvwidget.ui:41 +#, kde-format +msgid "Auto reload files on external changes" +msgstr "Recarrega automàticament els fitxers quan hi ha canvis externs" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/opensaveconfigadvwidget.ui:48 +#, kde-format +msgid "Write a backup file on save for:" +msgstr "Introduïu un fitxer a on desar les còpies de seguretat:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackupLocalFiles) +#: dialogs/opensaveconfigadvwidget.ui:55 +#, kde-format +msgid "" +"If this option is enabled, backups for local files will be created when " +"saving." +msgstr "" +"Si aquesta opció està activada, en desar es crearan còpies de seguretat dels " +"fitxers locals." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackupLocalFiles) +#: dialogs/opensaveconfigadvwidget.ui:58 +#, kde-format +msgid "&Local files" +msgstr "Fitxers &locals" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackupRemoteFiles) +#: dialogs/opensaveconfigadvwidget.ui:65 +#, kde-format +msgid "" +"If this option is enabled, backups for remote files will be created when " +"saving." +msgstr "" +"Si aquesta opció està activada, en desar es crearan còpies de seguretat dels " +"fitxers remots." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackupRemoteFiles) +#: dialogs/opensaveconfigadvwidget.ui:68 +#, kde-format +msgid "&Remote files" +msgstr "Fitxers &remots" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/opensaveconfigadvwidget.ui:75 +#, kde-format +msgid "Prefix for backup files:" +msgstr "Prefix dels fitxers de còpia de seguretat:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtBackupPrefix) +#: dialogs/opensaveconfigadvwidget.ui:85 +#, kde-format +msgid "Enter the prefix to prepend to the backup file names." +msgstr "" +"Introduïu el prefix que precedirà al nom dels fitxers de còpia de seguretat." + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/opensaveconfigadvwidget.ui:92 +#, kde-format +msgid "Suffix for backup files:" +msgstr "Sufix dels fitxers de còpia de seguretat:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtBackupSuffix) +#: dialogs/opensaveconfigadvwidget.ui:102 +#, kde-format +msgid "Enter the suffix to append to the backup file names." +msgstr "" +"Introduïu el sufix que s'afegirà al nom dels fitxers de còpia de seguretat." + +#. i18n: ectx: property (text), widget (QLabel, lblSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:109 +#, kde-format +msgid "Swap file mode:" +msgstr "Mode del fitxer d'intercanvi:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:125 +#, kde-format +msgid "Enabled, Store In Default Directory" +msgstr "Activat, emmagatzematge en el directori predeterminat" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:130 +#, kde-format +msgid "Enabled, Store In Custom Directory" +msgstr "Activat, emmagatzematge en un directori personalitzat" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapDirectory) +#: dialogs/opensaveconfigadvwidget.ui:138 +#, kde-format +msgid "Store swap files in:" +msgstr "Emmagatzema els fitxers d'intercanvi a:" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapFileSync) +#: dialogs/opensaveconfigadvwidget.ui:158 +#, kde-format +msgid "Save swap files every:" +msgstr "Desa els fitxers d'intercanvi cada:" + +#. i18n: ectx: property (suffix), widget (QSpinBox, spbSwapFileSync) +#: dialogs/opensaveconfigadvwidget.ui:171 +#, kde-format +msgid "s" +msgstr "s" + +#. i18n: ectx: property (text), widget (QLabel, lblExplanatory) +#: dialogs/opensaveconfigadvwidget.ui:196 +#, kde-format +msgid "" +"This string is located in katedialogs.cpp in KateSaveConfigTab's constructor." +msgstr "" +"Aquesta cadena està localitzada a «katedialogs.cpp» en el constructor de " +"KateSaveConfigTab." + +#. i18n: ectx: property (text), widget (QCheckBox, chkEditorConfig) +#: dialogs/opensaveconfigadvwidget.ui:209 +#, kde-format +msgid "Honor settings in .editorconfig file" +msgstr "Respecta els paràmetres del fitxer «.editorconfig»" + +#. i18n: ectx: property (text), widget (QCheckBox, chkUseFirstLineAsDocName) +#: dialogs/opensaveconfigadvwidget.ui:229 +#, kde-format +msgid "Use first line of untitled documents for document name" +msgstr "Usa la primera línia dels documents sense títol com a nom del document" + +#. i18n: ectx: property (title), widget (QGroupBox, gbFileFormat) +#: dialogs/opensaveconfigwidget.ui:29 +#, kde-format +msgid "File Format" +msgstr "Format del fitxer" + +#. i18n: ectx: property (text), widget (QLabel, lblEncoding) +#: dialogs/opensaveconfigwidget.ui:40 +#, kde-format +msgid "&Encoding:" +msgstr "&Codificació:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncoding) +#: dialogs/opensaveconfigwidget.ui:50 +#, kde-format +msgid "" +"This defines the standard encoding to use to open/save files, if not changed " +"in the open/save dialog or by using a command line option." +msgstr "" +"Defineix la codificació estàndard a usar per a obrir/desar fitxers, si no " +"s'ha canviat al diàleg d'obrir/desar o usant una opció de la línia d'ordres." + +#. i18n: ectx: property (text), widget (QLabel, lblEncodingDetection) +#: dialogs/opensaveconfigwidget.ui:57 +#, kde-format +msgid "&Encoding detection:" +msgstr "D&etecció de la codificació:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncodingDetection) +#: dialogs/opensaveconfigwidget.ui:67 +#, kde-format +msgid "" +"if neither the encoding chosen as standard above, nor the encoding specified " +"in the open/save dialog, nor the encoding specified on command line match " +"the content of the file, this detection will be run." +msgstr "" +"Si cap de les codificacions estàndard seleccionades més amunt, ni cap " +"codificació del diàleg d'obrir/desar, ni cap codificació de la línia " +"d'ordres coincideix amb el contingut del fitxer, s'executarà aquesta " +"detecció." + +#. i18n: ectx: property (text), widget (QLabel, lblEncodingDetection2) +#: dialogs/opensaveconfigwidget.ui:74 +#, kde-format +msgid "&Fallback encoding:" +msgstr "Codi&ficació de reserva:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncodingFallback) +#: dialogs/opensaveconfigwidget.ui:84 +#, kde-format +msgid "" +"This defines the fallback encoding to try for opening files if neither the " +"encoding chosen as standard above, nor the encoding specified in the open/" +"save dialog, nor the encoding specified on command line match the content of " +"the file. Before this is used, an attempt will be made to determine the " +"encoding to use by looking for a byte order mark at start of file: if one is " +"found, the right Unicode encoding will be chosen; otherwise encoding " +"detection will run, if both fail the fallback encoding will be tried." +msgstr "" +"Defineix la codificació de reserva per a intentar obrir els fitxers si cap " +"de les codificacions estàndard seleccionades més amunt, ni cap codificació " +"del diàleg d'obrir/desar, ni cap codificació de la línia d'ordres coincideix " +"amb el contingut del fitxer. Abans del seu ús, es farà una temptativa per a " +"determinar la codificació a usar cercant una marca d'ordre de bytes al " +"començament del fitxer: si es troba, se seleccionarà la codificació Unicode " +"correcta, altrament s'executarà la detecció de la codificació, i si les dues " +"fallen, s'intentarà amb la codificació de reserva." + +#. i18n: ectx: property (text), widget (QLabel, lblEOL) +#: dialogs/opensaveconfigwidget.ui:91 +#, kde-format +msgid "E&nd of line:" +msgstr "&Final de línia:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:102 +#, kde-format +msgid "UNIX" +msgstr "UNIX" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:107 +#, kde-format +msgid "DOS/Windows" +msgstr "DOS/Windows" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:112 +#, kde-format +msgid "Macintosh" +msgstr "Macintosh" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkDetectEOL) +#: dialogs/opensaveconfigwidget.ui:122 +#, kde-format +msgid "" +"If this option is enabled the editor will autodetect the end of line type. " +"The first found end of line type will be used for the whole file." +msgstr "" +"Si aquesta opció està activada, l'editor detectarà automàticament el tipus " +"del final de línia. El primer tipus per al final de línia que es trobi " +"s'usarà en tot el fitxer." + +#. i18n: ectx: property (text), widget (QCheckBox, chkDetectEOL) +#: dialogs/opensaveconfigwidget.ui:125 +#, kde-format +msgid "A&utomatic end of line detection" +msgstr "Detecció a&utomàtica del final de línia" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkEnableBOM) +#: dialogs/opensaveconfigwidget.ui:132 +#, kde-format +msgid "" +"The byte order mark is a special sequence at the beginning of Unicode " +"encoded documents. It helps editors to open text documents with the correct " +"Unicode encoding. The byte order mark is not visible in the displayed " +"document." +msgstr "" +"La marca d'ordre de bytes és una seqüència especial al començament dels " +"documents codificats amb Unicode. Ajuda els editors a obrir els documents de " +"text amb la codificació Unicode correcta. La marca d'ordre de bytes no serà " +"visible en els documents visualitzats." + +#. i18n: ectx: property (text), widget (QCheckBox, chkEnableBOM) +#: dialogs/opensaveconfigwidget.ui:135 +#, kde-format +msgid "Enable byte order mark (BOM)" +msgstr "Activa la marca d'ordre de bytes" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/opensaveconfigwidget.ui:142 +#, kde-format +msgid "Line length limit:" +msgstr "Límit de longitud de la línia:" + +#. i18n: ectx: property (specialValueText), widget (QSpinBox, lineLengthLimit) +#: dialogs/opensaveconfigwidget.ui:152 +#, kde-format +msgid "Unlimited" +msgstr "Sense límit" + +#. i18n: ectx: property (title), widget (QGroupBox, gbCleanups) +#: dialogs/opensaveconfigwidget.ui:168 +#, kde-format +msgid "Automatic Cleanups on Save" +msgstr "Neteja automàtica en desar" + +#. i18n: ectx: property (whatsThis), widget (QLabel, lblRemoveTrailingSpaces) +#. i18n: ectx: property (whatsThis), widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:176 dialogs/opensaveconfigwidget.ui:189 +#, kde-format +msgid "" +"Depending on the choice, trailing spaces are removed when saving a document, " +"either in the entire document or only of modified lines." +msgstr "" +"En funció de les preferències, s'eliminaran els espais finals en desar el " +"document, en tot el document o només en les línies modificades." + +#. i18n: ectx: property (text), widget (QLabel, lblRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:179 +#, kde-format +msgid "Re&move trailing spaces:" +msgstr "Eli&mina els espais finals:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, spbAutoSaveInterval) +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/opensaveconfigwidget.ui:193 dialogs/opensaveconfigwidget.ui:270 +#: dialogs/textareaappearanceconfigwidget.ui:104 +#, kde-format +msgid "Never" +msgstr "Mai" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:198 +#, kde-format +msgid "On Modified Lines" +msgstr "En les línies modificades" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:203 +#, kde-format +msgid "In Entire Document" +msgstr "En tot el document" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkNewLineAtEof) +#: dialogs/opensaveconfigwidget.ui:226 +#, kde-format +msgid "" +"On save, a line break is appended to the document if not already present. " +"The line break is visible after reloading the file." +msgstr "" +"En desar, s'afegirà un salt de línia en el document si no hi és. El salt de " +"línia es veurà després de tornar a carregar el fitxer." + +#. i18n: ectx: property (text), widget (QCheckBox, chkNewLineAtEof) +#: dialogs/opensaveconfigwidget.ui:229 +#, kde-format +msgid "Append newline at end of file on save" +msgstr "Afegeix una línia nova al final del fitxer en desar" + +#. i18n: ectx: property (title), widget (QGroupBox, gbAutoSave) +#: dialogs/opensaveconfigwidget.ui:239 +#, kde-format +msgid "Enable Auto Save (local files only)" +msgstr "Activa el desament automàtic (només fitxers locals)" + +#. i18n: ectx: property (text), widget (QCheckBox, cbAutoSaveOnFocus) +#: dialogs/opensaveconfigwidget.ui:254 +#, kde-format +msgid "Auto save document when the active document is losing focus" +msgstr "Desa automàticament el document quan el document actiu perd el focus" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/opensaveconfigwidget.ui:263 +#, kde-format +msgid "Auto save interval:" +msgstr "Interval del desament automàtic:" + +#. i18n: ectx: property (suffix), widget (QSpinBox, spbAutoSaveInterval) +#: dialogs/opensaveconfigwidget.ui:273 +#, kde-format +msgid " seconds" +msgstr " segons" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowHighlightingMode) +#: dialogs/statusbarconfigwidget.ui:19 +#, kde-format +msgid "Show highlighting mode" +msgstr "Mostra el mode de ressaltat" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowInputMode) +#: dialogs/statusbarconfigwidget.ui:26 +#, kde-format +msgid "Show input mode" +msgstr "Mostra el mode d'entrada" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowActiveDictionary) +#: dialogs/statusbarconfigwidget.ui:33 +#, kde-format +msgid "Show active dictionary" +msgstr "Mostra el diccionari actiu" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowTabSetting) +#: dialogs/statusbarconfigwidget.ui:40 +#, kde-format +msgid "Show tab setting" +msgstr "Mostra la configuració dels tabuladors" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowLineColumn) +#: dialogs/statusbarconfigwidget.ui:47 +#, kde-format +msgid "Show line column" +msgstr "Mostra la columna de les línies" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowEncoding) +#: dialogs/statusbarconfigwidget.ui:54 +#, kde-format +msgid "Show File Encoding" +msgstr "Mostra la codificació del fitxer" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowEOL) +#: dialogs/statusbarconfigwidget.ui:61 +#, kde-format +msgid "Show Line Ending Type" +msgstr "Mostra el tipus de final de línia" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/textareaappearanceconfigwidget.ui:28 +#, kde-format +msgid "Editor font:" +msgstr "Lletra de l'editor:" + +#. i18n: ectx: property (text), widget (QLabel, lblLineHeight) +#: dialogs/textareaappearanceconfigwidget.ui:48 +#, kde-format +msgid "&Line Height Multiplier:" +msgstr "Multiplicador de l'alçada de les &línies:" + +#. i18n: ectx: property (toolTip), widget (QDoubleSpinBox, spbLineHeightMultiplier) +#: dialogs/textareaappearanceconfigwidget.ui:58 +#, kde-format +msgid "" +"This value will be multiplied with the font's default line height. A value " +"of 1.0 means that the default height will be used." +msgstr "" +"Aquest valor es multiplicarà per l'alçada predeterminada de les línies de la " +"lletra. Un valor d'1,0 vol dir que s'emprarà l'alçada predeterminada." + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/textareaappearanceconfigwidget.ui:93 +#, kde-format +msgid "Show whitespace indicators:" +msgstr "Mostra els indicadors dels espais en blanc:" + +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/textareaappearanceconfigwidget.ui:109 +#, kde-format +msgid "At the end of a line" +msgstr "Al final de línia" + +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/textareaappearanceconfigwidget.ui:114 +#, kde-format +msgid "Always" +msgstr "Sempre" + +#. i18n: ectx: property (text), widget (QLabel, lbMarkerDescription) +#: dialogs/textareaappearanceconfigwidget.ui:122 +#, kde-format +msgid "Whitespace indicator si&ze:" +msgstr "&Mida de l'indicador dels espais en blanc:" + +#. i18n: ectx: property (whatsThis), widget (QSlider, sliSetMarkerSize) +#: dialogs/textareaappearanceconfigwidget.ui:138 +#, kde-format +msgid "Size of the visible highlight marker." +msgstr "Mida del marcador de ressaltat visible." + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/textareaappearanceconfigwidget.ui:166 +#, kde-format +msgid "Show &tab indicators:" +msgstr "Mostra els indicadors dels &tabuladors:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowTabs) +#: dialogs/textareaappearanceconfigwidget.ui:176 +#, kde-format +msgid "" +"The editor will display a symbol to indicate the presence of a tab in the " +"text." +msgstr "" +"L'editor mostrarà un símbol per a indicar la presència d'un tabulador en el " +"text." + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/textareaappearanceconfigwidget.ui:202 +#, kde-format +msgid "Bracket matching:" +msgstr "Concordança de parèntesis:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowWholeBracketExpression) +#: dialogs/textareaappearanceconfigwidget.ui:209 +#, kde-format +msgid "" +"If this is enabled, the range between the selected matching brackets will be " +"highlighted." +msgstr "" +"Si està activat, es ressaltarà l'interval entre els parèntesis concordants " +"seleccionats." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowWholeBracketExpression) +#: dialogs/textareaappearanceconfigwidget.ui:212 +#, kde-format +msgid "Highlight range between selected brackets" +msgstr "Ressalta l'interval entre els parèntesis seleccionats" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:219 +#, kde-format +msgid "Show the matching open bracket and lines adjacent to it for context" +msgstr "" +"Mostra el parèntesi obert concordant i les seves línies adjacents per al " +"context" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:222 +#, kde-format +msgid "" +"If this is enabled, a preview of the lines near a matching open bracket is " +"shown. This can help in quickly determining the context of a closing " +"bracket, especially in long function/class declarations and deeply nested if " +"blocks" +msgstr "" +"Si està habilitat, es mostra una vista prèvia de les línies a prop d'un " +"parèntesi obert concordant. Això pot ajudar a determinar ràpidament el " +"context d'un parèntesi de tancament, especialment en declaracions de funció/" +"classe llargues i blocs «if» profundament imbricats" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:225 +#, kde-format +msgid "Show preview of matching open bracket" +msgstr "Mostra una vista prèvia del parèntesi obert concordant" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:232 +#, kde-format +msgid "Flash matching brackets" +msgstr "Flaix dels parèntesis concordants" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:235 +#, kde-format +msgid "" +"If this is enabled, matching brackets are animated for better visibility." +msgstr "" +"Si està activada, els parèntesis concordants s'animaran per a una millor " +"visibilitat." + +#. i18n: ectx: property (text), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:238 +#, kde-format +msgid "Flash matching bracket when cursor moves to other bracket in pair" +msgstr "" +"Flaix del parèntesi concordant quan el cursor es mou al parèntesi aparellat" + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/textareaappearanceconfigwidget.ui:261 +#, kde-format +msgid "Counts:" +msgstr "Nombre:" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowWordCount) +#: dialogs/textareaappearanceconfigwidget.ui:268 +#, kde-format +msgid "Show/hide word count in status bar" +msgstr "Mostra/oculta el comptador de paraules a la barra d'estat" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowWordCount) +#: dialogs/textareaappearanceconfigwidget.ui:271 view/katestatusbar.cpp:258 +#, kde-format +msgid "Show word count" +msgstr "Mostra el comptador de paraules" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowLineCount) +#: dialogs/textareaappearanceconfigwidget.ui:278 +#, kde-format +msgid "Show/hide line count in status bar" +msgstr "Mostra/oculta el comptador de línies a la barra d'estat" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowLineCount) +#: dialogs/textareaappearanceconfigwidget.ui:281 view/katestatusbar.cpp:255 +#, kde-format +msgid "Show line count" +msgstr "Mostra el comptador de línies" + +#. i18n: ectx: property (text), widget (QLabel, label_25) +#: dialogs/textareaappearanceconfigwidget.ui:304 +#, kde-format +msgid "Fold first line:" +msgstr "Plega la primera línia:" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkFoldFirstLine) +#: dialogs/textareaappearanceconfigwidget.ui:317 +#, kde-format +msgid "" +"When this setting is enabled, the editor view automatically folds\n" +"comment blocks that start on the first line of the document. This is\n" +"helpful to hide license headers which are commonly placed at the\n" +"beginning of a file." +msgstr "" +"Quan aquesta opció està activada, la vista de l'editor plegarà\n" +"automàticament els blocs de comentaris que comencen a la primera\n" +"línia del document. Això és útil per a ocultar les capçaleres de la\n" +"llicència que normalment es col·loquen al començament d'un fitxer." + +#. i18n: ectx: property (text), widget (QCheckBox, cbxWordWrap) +#: dialogs/textareaappearanceconfigwidget.ui:337 +#, kde-format +msgid "Dynamic Word Wrap:" +msgstr "Ajust dinàmic de paraules:" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDynWrapAtStaticMarker) +#: dialogs/textareaappearanceconfigwidget.ui:344 +#, kde-format +msgid "Wrap dynamically at static word wrap marker" +msgstr "Ajusta dinàmicament al marcador d'ajust estàtic de les paraules" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDynWrapAnywhere) +#: dialogs/textareaappearanceconfigwidget.ui:351 +#, kde-format +msgid "Disregard word boundaries for dynamic wrapping" +msgstr "Ignora els límits de paraula per a l'ajust dinàmic" + +#. i18n: ectx: property (text), widget (QLabel, lblDynamicWordWrapIndicators) +#: dialogs/textareaappearanceconfigwidget.ui:358 +#, kde-format +msgid "D&ynamic word wrap indicators:" +msgstr "Indicadors de l'ajust d&inàmic de paraules:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbDynamicWordWrapIndicator) +#: dialogs/textareaappearanceconfigwidget.ui:368 +#, kde-format +msgid "Choose when the Dynamic Word Wrap Indicators should be displayed." +msgstr "" +"Escolliu quan s'han de mostrar els indicadors d'ajust dinàmic de les " +"paraules." + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/textareaappearanceconfigwidget.ui:391 +#, kde-format +msgid "I&ndent wrapped lines:" +msgstr "Sag&na les línies ajustades:" + +#. i18n: ectx: property (text), widget (QLabel, lblDynamicWordWrapIndicators_2) +#: dialogs/textareaappearanceconfigwidget.ui:408 +#, kde-format +msgid "&Don't indent lines wider than:" +msgstr "&No sagnis les línies més amples a:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbDynamicWordWrapDepth) +#: dialogs/textareaappearanceconfigwidget.ui:424 +#, no-c-format, kde-format +msgid "" +"

Enables the start of dynamically wrapped lines to be aligned vertically " +"to the indentation level of the first line. This can help to make code and " +"markup more readable.

Additionally, this allows you to set a maximum " +"width of the screen, as a percentage, after which dynamically wrapped lines " +"will no longer be vertically aligned. For example, at 50%, lines whose " +"indentation levels are deeper than 50% of the width of the screen will not " +"have vertical alignment applied to subsequent wrapped lines.

" +msgstr "" +"

Activa l'inici de l'ajust dinàmic de les línies per a alinear-les " +"verticalment al nivell de sagnat de la primera línia. Això pot ajudar a fer " +"més llegible el codi i els marcadors.

Addicionalment, això us permet " +"indicar una amplada màxima de la pantalla, en percentatge, després del qual " +"les línies ajustades dinàmicament no s'alinearan verticalment. Per exemple, " +"al 50%, les línies que tinguin un nivell de sagnat superior al 50% de " +"l'amplada de la pantalla no se'ls aplicarà l'ajust vertical a les línies " +"ajustades subsegüents.

" + +#. i18n: ectx: property (suffix), widget (QSpinBox, sbDynamicWordWrapDepth) +#: dialogs/textareaappearanceconfigwidget.ui:427 +#, no-c-format, kde-format +msgid "% of View Width" +msgstr "% de l'amplada de la vista" + +#. i18n: ectx: property (text), widget (QLabel, label_24) +#: dialogs/textareaappearanceconfigwidget.ui:443 +#, kde-format +msgid "Show i&ndentation lines:" +msgstr "Mostra les línies de &sagnat:" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowIndentationLines) +#: dialogs/textareaappearanceconfigwidget.ui:453 +#, kde-format +msgid "" +"If this is enabled, the editor will display vertical lines to help identify " +"indent lines." +msgstr "" +"Si està activada, l'editor mostrarà línies verticals per a ajudar a " +"identificar el sagnat de les línies." + +#: document/katebuffer.cpp:135 +#, kde-format +msgctxt "short translation, user created new file" +msgid "New file" +msgstr "Fitxer nou" + +#: document/katedocument.cpp:223 +#, kde-format +msgid "Auto Reload Document" +msgstr "Recàrrega automàtica del document" + +#: document/katedocument.cpp:225 +#, kde-format +msgid "Automatic reload the document when it was changed on disk" +msgstr "Recàrrega automàtica del document quan es canviï en el disc" + +#: document/katedocument.cpp:2307 +#, kde-format +msgid "" +"The file %1 could not be loaded, as it was not possible to read from it.
Check if you have read access to this file." +msgstr "" +"No s'ha pogut carregar el fitxer %1, perquè no s'ha pogut llegir.
Comproveu si teniu accés de lectura a aquest fitxer." + +#: document/katedocument.cpp:2312 +#, kde-format +msgctxt "translators: you can also translate 'Try Again' with 'Reload'" +msgid "Try Again" +msgstr "Torneu-ho a provar" + +#: document/katedocument.cpp:2316 document/katedocument.cpp:6534 +#, kde-format +msgid "&Close" +msgstr "Tan&ca" + +#: document/katedocument.cpp:2317 document/katedocument.cpp:6535 +#, kde-format +msgctxt "Close the message being displayed" +msgid "Close message" +msgstr "Tanca el missatge" + +#: document/katedocument.cpp:2449 +#, kde-format +msgid "" +"The file %1 was opened with %2 encoding but contained invalid characters." +"
It is set to read-only mode, as saving might destroy its content.
Either reopen the file with the correct encoding chosen or enable the read-" +"write mode again in the tools menu to be able to edit it." +msgstr "" +"El fitxer %1 s'ha obert amb la codificació %2, però conté caràcters no " +"vàlids.
S'ha determinat el mode de només lectura, ja que en desar es " +"podria destruir el seu contingut.
Per a poder-lo editar, podeu tornar-" +"lo a obrir amb la codificació correcta o podeu tornar a activar el mode de " +"lectura i escriptura en el menú Eines." + +#: document/katedocument.cpp:2468 +#, kde-format +msgid "" +"The file %1 was opened and contained lines longer than the configured Line " +"Length Limit (%2 characters).
The longest of those lines was %3 " +"characters long
Those lines were wrapped and the document is set to read-" +"only mode, as saving will modify its content." +msgstr "" +"El fitxer %1 s'ha obert, però conté línies més llargues que el límit per a " +"la longitud de la línia (%2 caràcters).
La més llarga d'aquestes línies " +"té %3 caràcters.
Aquestes línies s'ajustaran i el document s'establirà " +"al mode de només lectura, ja que en desar-lo es modificaria el seu contingut." + +#: document/katedocument.cpp:2475 +#, kde-format +msgid "Temporarily raise limit and reload file" +msgstr "Eleva el límit temporalment i torna a carregar el fitxer" + +#: document/katedocument.cpp:2478 +#, kde-format +msgid "Close" +msgstr "Tanca" + +#: document/katedocument.cpp:2505 +#, kde-format +msgid "" +"Do you really want to save this unmodified file? You could overwrite changed " +"data in the file on disk." +msgstr "" +"Realment voleu desar aquest fitxer sense modificar? Podríeu estar " +"sobreescrivint les dades canviades en el fitxer que resideix en el disc." + +#: document/katedocument.cpp:2506 +#, kde-format +msgid "Trying to Save Unmodified File" +msgstr "Intenta desar un fitxer sense modificar" + +#: document/katedocument.cpp:2507 document/katedocument.cpp:2518 +#: document/katedocument.cpp:2534 +#, kde-format +msgid "Save Nevertheless" +msgstr "Desa tanmateix" + +#: document/katedocument.cpp:2516 +#, kde-format +msgid "" +"Do you really want to save this file? Both your open file and the file on " +"disk were changed. There could be some data lost." +msgstr "" +"Realment voleu desar aquest fitxer? Tant el fitxer obert com el que està en " +"el disc han rebut canvis. Amb això es podrien perdre algunes dades." + +#: document/katedocument.cpp:2517 document/katedocument.cpp:2533 +#: document/katedocument.cpp:2853 syntax/katethemeconfig.cpp:1218 +#: syntax/katethemeconfig.cpp:1376 +#, kde-format +msgid "Possible Data Loss" +msgstr "Possible pèrdua de dades" + +#: document/katedocument.cpp:2531 +#, kde-format +msgid "" +"The selected encoding cannot encode every Unicode character in this " +"document. Do you really want to save it? There could be some data lost." +msgstr "" +"La codificació seleccionada no pot codificar cadascun dels caràcters Unicode " +"d'aquest document. De veres voleu desar-lo? Podrien perdre's algunes dades." + +#: document/katedocument.cpp:2601 +#, kde-format +msgid "" +"The document could not be saved, as it was not possible to write to %1.\n" +"Check that you have write access to this file or that enough disk space is " +"available.\n" +"The original file may be lost or damaged. Don't quit the application until " +"the file is successfully written." +msgstr "" +"El document no s'ha pogut desar, perquè no s'ha pogut escriure a %1.\n" +"Comproveu que teniu accés d'escriptura a aquest fitxer o que hi ha prou " +"espai disponible al disc.\n" +"El fitxer original es pot perdre o malmetre. No sortiu de l'aplicació fins " +"que el fitxer s'hagi escrit amb èxit." + +#: document/katedocument.cpp:2722 +#, kde-format +msgid "" +"For file %1 no backup copy could be created before saving. If an error " +"occurs while saving, you might lose the data of this file. A reason could be " +"that the media you write to is full or the directory of the file is read-" +"only for you." +msgstr "" +"No s'ha pogut crear la còpia de seguretat per al fitxer %1 abans de desar-" +"lo. Si esdevé un error mentre es desa podríeu perdre les dades d'aquest " +"fitxer. Una raó pot ser que el suport d'escriptura sigui ple o el directori " +"del fitxer sigui de només lectura." + +#: document/katedocument.cpp:2726 +#, kde-format +msgid "Failed to create backup copy." +msgstr "Ha fallat en crear la còpia de seguretat." + +#: document/katedocument.cpp:2727 +#, kde-format +msgid "Try to Save Nevertheless" +msgstr "Desa tanmateix" + +#: document/katedocument.cpp:2852 +#, kde-format +msgid "Do you really want to continue to close this file? Data loss may occur." +msgstr "" +"Desitgeu realment continuar i tancar aquest fitxer? Es podrien perdre les " +"dades." + +#: document/katedocument.cpp:2854 +#, kde-format +msgid "Close Nevertheless" +msgstr "Tanca tanmateix" + +#: document/katedocument.cpp:4641 +#, kde-format +msgid "Untitled (%1)" +msgstr "Sense títol (%1)" + +#: document/katedocument.cpp:4643 +#, kde-format +msgid "Untitled" +msgstr "Sense títol" + +#: document/katedocument.cpp:4820 document/katedocument.cpp:5051 +#: document/katedocument.cpp:5061 document/katedocument.cpp:5862 +#: document/katedocument.cpp:6049 +#, kde-format +msgid "Save File" +msgstr "Desa el fitxer" + +#: document/katedocument.cpp:4823 +#, kde-format +msgid "Save failed" +msgstr "Ha fallat el desament" + +#: document/katedocument.cpp:5072 +#, kde-format +msgid "Save Copy of File" +msgstr "Desa una còpia del fitxer" + +#: document/katedocument.cpp:5084 +#, kde-format +msgid "" +"The document could not be saved, as it was not possible to write to %1.\n" +"\n" +"Check that you have write access to this file or that enough disk space is " +"available." +msgstr "" +"El document no es pot desar, perquè no s'ha pogut escriure a %1.\n" +"\n" +"Comproveu que teniu accés d'escriptura a aquest fitxer o que hi ha prou " +"espai disponible." + +#: document/katedocument.cpp:5376 +#, kde-format +msgid "" +"Using deprecated modeline 'remove-trailing-space'. Please replace with " +"'remove-trailing-spaces modified;', see https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" +msgstr "" +"S'està usant un mode de línia obsolet «remove-trailing-space». Cal " +"substituir-lo per «remove-trailing-spaces modified;», vegeu https://docs.kde." +"org/?application=katepart&language=ca&branch=stable5&path=config-variables." +"html#variable-remove-trailing-spaces" + +#: document/katedocument.cpp:5382 +#, kde-format +msgid "" +"Using deprecated modeline 'replace-trailing-space-save'. Please replace with " +"'remove-trailing-spaces all;', see https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" +msgstr "" +"S'està usant un mode de línia obsolet «replace-trailing-space-save». Cal " +"substituir-lo per «remove-trailing-spaces all;», vegeu https://docs.kde.org/?" +"application=katepart&language=ca&branch=stable5&path=config-variables." +"html#variable-remove-trailing-spaces" + +#: document/katedocument.cpp:5696 +#, kde-format +msgid "The file '%1' was modified on disk." +msgstr "El fitxer «%1» s'ha modificat en el disc." + +#: document/katedocument.cpp:5698 +#, kde-format +msgid "The file '%1' was deleted or moved on disk." +msgstr "El fitxer «%1» s'ha suprimit o mogut en el disc." + +#: document/katedocument.cpp:6034 +#, kde-format +msgid "" +"The document \"%1\" has been modified.\n" +"Do you want to save your changes or discard them?" +msgstr "" +"El document «%1» ha estat modificat.\n" +"Voleu desar els canvis o descartar-los?" + +#: document/katedocument.cpp:6037 +#, kde-format +msgid "Close Document" +msgstr "Tanca el document" + +#: document/katedocument.cpp:6148 +#, kde-format +msgid "The file %2 is still loading." +msgstr "El fitxer %2 encara s'està carregant." + +#: document/katedocument.cpp:6153 +#, kde-format +msgid "&Abort Loading" +msgstr "In&terromp la càrrega" + +#: inputmode/katenormalinputmode.cpp:74 +#, kde-format +msgid "OVERWRITE" +msgstr "Sobreescriu" + +#: inputmode/katenormalinputmode.cpp:74 +#, kde-format +msgid "INSERT" +msgstr "Insereix" + +#: inputmode/katenormalinputmodefactory.cpp:29 +#, kde-format +msgid "Normal Mode" +msgstr "Mode normal" + +#: inputmode/kateviinputmode.cpp:31 +#, kde-format +msgctxt "The INSERT mode of VI" +msgid "VI: INSERT" +msgstr "VI: INSERCIÓ" + +#: inputmode/kateviinputmode.cpp:34 +#, kde-format +msgctxt "The NORMAL mode of VI" +msgid "VI: NORMAL" +msgstr "VI: NORMAL" + +#: inputmode/kateviinputmode.cpp:37 +#, kde-format +msgid "VI: VISUAL" +msgstr "VI: VISUAL" + +#: inputmode/kateviinputmode.cpp:40 +#, kde-format +msgid "VI: VISUAL BLOCK" +msgstr "VI: BLOC VISUAL" + +#: inputmode/kateviinputmode.cpp:43 +#, kde-format +msgid "VI: VISUAL LINE" +msgstr "VI: LÍNIA VISUAL" + +#: inputmode/kateviinputmode.cpp:46 +#, kde-format +msgid "VI: REPLACE" +msgstr "VI: SUBSTITUCIÓ" + +#: inputmode/kateviinputmode.cpp:146 +#, kde-format +msgid "vi-mode" +msgstr "Mode del Vi" + +#: inputmode/kateviinputmode.cpp:159 +#, kde-format +msgid "recording" +msgstr "enregistrament" + +#: inputmode/kateviinputmodefactory.cpp:38 utils/kateglobal.cpp:88 +#: vimode/config/configtab.cpp:237 +#, kde-format +msgid "Vi Input Mode" +msgstr "Mode d'entrada del Vi" + +#: mode/katemodeconfigpage.cpp:46 +#, kde-format +msgid "" +msgstr "" + +#: mode/katemodeconfigpage.cpp:58 +#, kde-format +msgid "Use Default" +msgstr "Usa el predeterminat" + +#: mode/katemodeconfigpage.cpp:99 mode/katemodeconfigpage.cpp:241 +#, kde-format +msgid "Properties of %1" +msgstr "Propietats de %1" + +#: mode/katemodeconfigpage.cpp:178 +#, kde-format +msgid "New Filetype" +msgstr "Tipus de fitxer nou" + +#: mode/katemodeconfigpage.cpp:293 +#, kde-format +msgid "" +"Select the MimeTypes you want for this file type.\n" +"Please note that this will automatically edit the associated file extensions " +"as well." +msgstr "" +"Seleccioneu els tipus MIME que voleu per a aquest tipus de fitxer.\n" +"Si us plau, cal tenir en compte que també s'editaran automàticament les " +"extensions dels fitxers associats." + +#: mode/katemodeconfigpage.cpp:295 +#, kde-format +msgid "Select Mime Types" +msgstr "Selecció del tipus MIME" + +#: mode/katemodeconfigpage.cpp:312 +#, kde-format +msgid "Modes && Filetypes" +msgstr "Modes i tipus de fitxer" + +#: mode/katemodemenulist.cpp:138 +#, kde-format +msgctxt "@info:placeholder" +msgid "Search…" +msgstr "Cerca…" + +#: mode/katemodemenulist.cpp:140 +#, kde-format +msgctxt "ToolTip of the search bar of modes of syntax highlighting" +msgid "" +"Search for syntax highlighting modes by language name or file extension (for " +"example, C++ or .cpp)" +msgstr "" +"Cerca els modes de ressaltat de sintaxi pel nom del llenguatge o per " +"l'extensió del fitxer (per exemple, C++ o .cpp)" + +#: mode/katemodemenulist.cpp:560 +#, kde-format +msgctxt "A search yielded no results" +msgid "No items matching your search" +msgstr "No hi ha cap element que coincideixi amb la cerca" + +#: mode/katemodemenulist.cpp:1087 +#, kde-format +msgctxt "" +"Title (in singular) of the best result in an item search. Please, that the " +"translation doesn't have more than 34 characters, since the menu where it's " +"displayed is small and fixed." +msgid "Best Search Match" +msgstr "Millor cerca coincident" + +#: mode/katemodemenulist.cpp:1092 +#, kde-format +msgctxt "" +"Title (in plural) of the best results in an item search. Please, that the " +"translation doesn't have more than 34 characters, since the menu where it's " +"displayed is small and fixed." +msgid "Best Search Matches" +msgstr "Millors cerques coincidents" + +#: printing/printconfigwidgets.cpp:36 +#, kde-format +msgid "Te&xt Settings" +msgstr "Paràmetres del te&xt" + +#: printing/printconfigwidgets.cpp:40 +#, kde-format +msgid "Print line &numbers" +msgstr "Imprimeix els &números de línia" + +#: printing/printconfigwidgets.cpp:43 +#, kde-format +msgid "Print &legend" +msgstr "Imprimeix la &llegenda" + +#: printing/printconfigwidgets.cpp:46 +#, kde-format +msgid "Don't print folded code" +msgstr "No imprimeixis el codi plegat" + +#: printing/printconfigwidgets.cpp:54 +#, kde-format +msgid "" +"

If enabled, line numbers will be printed on the left side of the page(s)." +"

" +msgstr "" +"

Si està activada, els números de línia s'imprimiran sobre el costat " +"esquerre de la/es pàgina/es.

" + +#: printing/printconfigwidgets.cpp:56 +#, kde-format +msgid "" +"

Print a box displaying typographical conventions for the document type, " +"as defined by the syntax highlighting being used.

" +msgstr "" +"

Imprimeix un quadre mostrant les convencions tipogràfiques per al tipus " +"de document, tal com estigui definit pel ressaltat sintàctic emprat.

" + +#: printing/printconfigwidgets.cpp:116 +#, kde-format +msgid "Hea&der && Footer" +msgstr "Ca&pçalera i peu" + +#: printing/printconfigwidgets.cpp:123 +#, kde-format +msgid "Pr&int header" +msgstr "Impr&imeix la capçalera" + +#: printing/printconfigwidgets.cpp:125 +#, kde-format +msgid "Pri&nt footer" +msgstr "Im&primeix el peu" + +#: printing/printconfigwidgets.cpp:131 +#, kde-format +msgid "Header/footer font:" +msgstr "Lletra de la capçalera/peu:" + +#: printing/printconfigwidgets.cpp:137 +#, kde-format +msgid "Header Properties" +msgstr "Propietats de la capçalera" + +#: printing/printconfigwidgets.cpp:141 +#, kde-format +msgid "&Format:" +msgstr "&Format:" + +#: printing/printconfigwidgets.cpp:163 printing/printconfigwidgets.cpp:209 +#, kde-format +msgid "Colors:" +msgstr "Colors:" + +#: printing/printconfigwidgets.cpp:170 printing/printconfigwidgets.cpp:216 +#, kde-format +msgid "Foreground:" +msgstr "Primer pla:" + +#: printing/printconfigwidgets.cpp:175 +#, kde-format +msgid "Bac&kground" +msgstr "Fo&ns" + +#: printing/printconfigwidgets.cpp:181 +#, kde-format +msgid "Footer Properties" +msgstr "Propietats del peu" + +#: printing/printconfigwidgets.cpp:186 +#, kde-format +msgid "For&mat:" +msgstr "Fo&rmat:" + +#: printing/printconfigwidgets.cpp:221 +#, kde-format +msgid "&Background" +msgstr "&Fons" + +#: printing/printconfigwidgets.cpp:250 +#, kde-format +msgid "

Format of the page header. The following tags are supported:

" +msgstr "" +"

Format de la capçalera de la pàgina. S'accepten les etiquetes següents:" + +#: printing/printconfigwidgets.cpp:252 +#, kde-format +msgid "" +"

  • %u: current user name
  • %d: complete date/" +"time in short format
  • %D: complete date/time in long format
  • %h: current time
  • %y: current date in short " +"format
  • %Y: current date in long format
  • %f: " +"file name
  • %U: full URL of the document
  • %p: " +"page number
  • %P: total amount of pages

" +msgstr "" +"
  • %u: el nom de l'actual usuari
  • %d: la data " +"i hora en format curt
  • %D: la data i hora en format llarg
  • %h: l'hora actual
  • %y: la data actual en " +"format curt
  • %Y: la data actual en format llarg
  • " +"%f: el nom del fitxer
  • %U: l'URL complet cap al " +"document
  • %p: el número de la pàgina
  • %P: el " +"nombre total de pàgines

" + +#: printing/printconfigwidgets.cpp:266 +#, kde-format +msgid "

Format of the page footer. The following tags are supported:

" +msgstr "

Format del peu de la pàgina. S'accepten les etiquetes següents:

" + +#: printing/printconfigwidgets.cpp:352 +#, kde-format +msgid "Add Placeholder..." +msgstr "Afegeix un text variable..." + +#: printing/printconfigwidgets.cpp:354 +#, kde-format +msgid "Current User Name" +msgstr "Nom de l'usuari actual" + +#: printing/printconfigwidgets.cpp:356 +#, kde-format +msgid "Complete Date/Time (short format)" +msgstr "Data/hora completa (format curt)" + +#: printing/printconfigwidgets.cpp:358 +#, kde-format +msgid "Complete Date/Time (long format)" +msgstr "Data/hora completa (format llarg)" + +#: printing/printconfigwidgets.cpp:360 +#, kde-format +msgid "Current Time" +msgstr "Hora actual" + +#: printing/printconfigwidgets.cpp:362 +#, kde-format +msgid "Current Date (short format)" +msgstr "Hora actual (format curt)" + +#: printing/printconfigwidgets.cpp:364 +#, kde-format +msgid "Current Date (long format)" +msgstr "Hora actual (format llarg)" + +#: printing/printconfigwidgets.cpp:366 +#, kde-format +msgid "File Name" +msgstr "Nom de fitxer" + +#: printing/printconfigwidgets.cpp:368 +#, kde-format +msgid "Full document URL" +msgstr "URL complet del document" + +#: printing/printconfigwidgets.cpp:370 +#, kde-format +msgid "Page Number" +msgstr "Número de pàgina" + +#: printing/printconfigwidgets.cpp:372 +#, kde-format +msgid "Total Amount of Pages" +msgstr "Nombre total de pàgines" + +#: printing/printconfigwidgets.cpp:478 +#, kde-format +msgid "L&ayout" +msgstr "D&isposició" + +#: printing/printconfigwidgets.cpp:484 +#, kde-format +msgid "&Color theme:" +msgstr "Tema de &color:" + +#: printing/printconfigwidgets.cpp:494 +#, kde-format +msgid "Font:" +msgstr "Lletra:" + +#: printing/printconfigwidgets.cpp:498 +#, kde-format +msgid "Draw bac&kground color" +msgstr "Dibuixa el color de &fons" + +#: printing/printconfigwidgets.cpp:501 +#, kde-format +msgid "Draw &boxes" +msgstr "Dibuixa els &quadres" + +#: printing/printconfigwidgets.cpp:505 +#, kde-format +msgid "Box Properties" +msgstr "Propietats del quadre" + +#: printing/printconfigwidgets.cpp:509 +#, kde-format +msgid "W&idth:" +msgstr "A&mplada:" + +#: printing/printconfigwidgets.cpp:517 +#, kde-format +msgid "&Margin:" +msgstr "&Marge:" + +#: printing/printconfigwidgets.cpp:525 +#, kde-format +msgid "Co&lor:" +msgstr "Co&lor:" + +#: printing/printconfigwidgets.cpp:547 +#, kde-format +msgid "Select the color theme to use for the print." +msgstr "Seleccioneu el tema de color que s'usarà en imprimir." + +#: printing/printconfigwidgets.cpp:549 +#, kde-format +msgid "" +"

If enabled, the background color of the editor will be used.

This " +"may be useful if your color theme is designed for a dark background.

" +msgstr "" +"

Si està activada, s'emprarà el color de fons de l'editor.

Això pot " +"ser-vos útil si el tema de color està dissenyat per a un fons fosc.

" + +#: printing/printconfigwidgets.cpp:552 +#, kde-format +msgid "" +"

If enabled, a box as defined in the properties below will be drawn around " +"the contents of each page. The Header and Footer will be separated from the " +"contents with a line as well.

" +msgstr "" +"

Si està activada, es dibuixarà un quadre al voltant del contingut de cada " +"pàgina amb les propietats de sota. La capçalera i el peu seran separats del " +"contingut amb una línia.

" + +#: printing/printconfigwidgets.cpp:555 +#, kde-format +msgid "The width of the box outline" +msgstr "L'amplada del contorn del quadre" + +#: printing/printconfigwidgets.cpp:556 +#, kde-format +msgid "The margin inside boxes, in pixels" +msgstr "El marge dins dels quadres, en píxels" + +#: printing/printconfigwidgets.cpp:557 +#, kde-format +msgid "The line color to use for boxes" +msgstr "El color de la línia que s'emprarà en els quadres" + +#: printing/printpainter.cpp:269 +#, kde-format +msgid "(Selection of) " +msgstr "(Selecció de) " + +#: printing/printpainter.cpp:522 +#, kde-format +msgid "Typographical Conventions for %1" +msgstr "Convencions tipogràfiques per a %1" + +#: printing/printpainter.cpp:555 +#, kde-format +msgid "text" +msgstr "text" + +#: script/data/commands/emmet.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Expand Abbreviation" +msgstr "Expandeix les abreviatures" + +#: script/data/commands/emmet.js:10 script/data/commands/emmet.js:14 +#: script/data/commands/emmet.js:19 script/data/commands/emmet.js:23 +#: script/data/commands/emmet.js:27 script/data/commands/emmet.js:31 +#: script/data/commands/emmet.js:35 script/data/commands/emmet.js:39 +#: script/data/commands/emmet.js:43 script/data/commands/emmet.js:47 +#: script/data/commands/emmet.js:51 script/data/commands/emmet.js:55 +#: script/data/commands/emmet.js:59 script/data/commands/emmet.js:63 +#: script/data/commands/emmet.js:67 script/data/commands/emmet.js:71 +#: script/data/commands/emmet.js:75 script/data/commands/emmet.js:79 +#: script/data/commands/emmet.js:83 +#, kde-format +msgctxt "Script command category" +msgid "Emmet" +msgstr "Emmet" + +#: script/data/commands/emmet.js:13 +#, kde-format +msgctxt "Script command name" +msgid "Wrap with Tag" +msgstr "Embolcalla amb etiquetes" + +#: script/data/commands/emmet.js:18 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Matching Tag" +msgstr "Mou el cursor fins a l'etiqueta que concordi" + +#: script/data/commands/emmet.js:22 +#, kde-format +msgctxt "Script command name" +msgid "Select HTML/XML Tag Contents Inwards" +msgstr "Selecciona el contingut intern de l'etiqueta HTML/XML" + +#: script/data/commands/emmet.js:26 +#, kde-format +msgctxt "Script command name" +msgid "Select HTML/XML Tag Contents Outwards" +msgstr "Selecciona el contingut extern de l'etiqueta HTML/XML" + +#: script/data/commands/emmet.js:30 +#, kde-format +msgctxt "Script command name" +msgid "Toggle Comment" +msgstr "Commuta els comentaris" + +#: script/data/commands/emmet.js:34 +#, kde-format +msgctxt "Script command name" +msgid "Go to Next Edit Point" +msgstr "Ves al punt d'edició següent" + +#: script/data/commands/emmet.js:38 +#, kde-format +msgctxt "Script command name" +msgid "Go to Previous Edit Point" +msgstr "Ves al punt d'edició anterior" + +#: script/data/commands/emmet.js:42 +#, kde-format +msgctxt "Script command name" +msgid "Select Next Edit Point" +msgstr "Selecciona el punt d'edició següent" + +#: script/data/commands/emmet.js:46 +#, kde-format +msgctxt "Script command name" +msgid "Select Previous Edit Point" +msgstr "Selecciona el punt d'edició anterior" + +#: script/data/commands/emmet.js:50 +#, kde-format +msgctxt "Script command name" +msgid "Delete Tag Under Cursor" +msgstr "Suprimeix l'etiqueta sota el cursor" + +#: script/data/commands/emmet.js:54 +#, kde-format +msgctxt "Script command name" +msgid "Split or Join a Tag" +msgstr "Divideix o uneix una etiqueta" + +#: script/data/commands/emmet.js:58 +#, kde-format +msgctxt "Script command name" +msgid "Evaluate a Simple Math Expression" +msgstr "Avalua una expressió matemàtica senzilla" + +#: script/data/commands/emmet.js:62 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 1" +msgstr "Redueix el nombre en 1" + +#: script/data/commands/emmet.js:66 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 10" +msgstr "Redueix el nombre en 10" + +#: script/data/commands/emmet.js:70 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 0.1" +msgstr "Redueix el nombre en 0,1" + +#: script/data/commands/emmet.js:74 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 1" +msgstr "Incrementa el nombre en 1" + +#: script/data/commands/emmet.js:78 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 10" +msgstr "Incrementa el nombre en 10" + +#: script/data/commands/emmet.js:82 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 0.1" +msgstr "Incrementa el nombre en 0,1" + +#: script/data/commands/emmet.js:96 +#, kde-format +msgid "" +"Expands the abbreviation using Emmet expressions; see http://code.google.com/" +"p/zen-coding/wiki/ZenHTMLSelectorsEn" +msgstr "" +"Expandeix les abreviatures usant expressions Emmet; vegeu http://code.google." +"com/p/zen-coding/wiki/ZenHTMLSelectorsEn" + +#: script/data/commands/emmet.js:97 +#, kde-format +msgid "" +"Wraps the selected text in XML tags constructed from the provided Emmet " +"expression (defaults to div)." +msgstr "" +"Embolcalla el text seleccionat amb etiquetes XML construïdes des " +"d'expressions Emmet proporcionades («div» per defecte)." + +#: script/data/commands/emmet.js:98 +#, kde-format +msgid "Moves the caret to the current tag's pair" +msgstr "Mou el cursor al parell actual d'etiquetes" + +#: script/data/commands/emmet.js:99 +#, kde-format +msgid "" +"Select contents of HTML/XML tag, moving inward on continuous invocations" +msgstr "" +"Selecciona el contingut de l'etiqueta HTML/XML, movent-se cap dins en les " +"invocacions contínues" + +#: script/data/commands/emmet.js:100 +#, kde-format +msgid "" +"Select contents of HTML/XML tag, moving outwards on continuous invocations" +msgstr "" +"Selecciona el contingut de l'etiqueta HTML/XML, movent-se cap enfora en les " +"invocacions contínues" + +#: script/data/commands/emmet.js:101 +#, kde-format +msgid "Move to the next edit point (tag or empty attribute)." +msgstr "Va al punt d'edició següent (etiqueta o atribut buit)." + +#: script/data/commands/emmet.js:102 +#, kde-format +msgid "Move to the previous edit point (tag or empty attribute)." +msgstr "Va al punt d'edició anterior (etiqueta o atribut buit)." + +#: script/data/commands/emmet.js:103 +#, kde-format +msgid "Select next edit point (tag or empty attribute)." +msgstr "Selecciona el punt d'edició següent (etiqueta o atribut buit)." + +#: script/data/commands/emmet.js:104 +#, kde-format +msgid "Select previous edit point (tag or empty attribute)." +msgstr "Selecciona el punt d'edició anterior (etiqueta o atribut buit)." + +#: script/data/commands/emmet.js:105 +#, kde-format +msgid "Toggle comment of current tag or CSS selector" +msgstr "Commuta el comentari de l'etiqueta actual o del selector CSS" + +#: script/data/commands/emmet.js:106 +#, kde-format +msgid "Deletes tag under cursor" +msgstr "Suprimeix l'etiqueta sota el cursor" + +#: script/data/commands/emmet.js:107 +#, kde-format +msgid "Splits or joins a tag" +msgstr "Divideix o junta una etiqueta" + +#: script/data/commands/emmet.js:108 +#, kde-format +msgid "Evaluates a simple math expression" +msgstr "Avalua una expressió matemàtica senzilla" + +#: script/data/commands/emmet.js:109 +#, kde-format +msgid "Decrement number under cursor by 1" +msgstr "Redueix el nombre sota el cursor en 1" + +#: script/data/commands/emmet.js:110 +#, kde-format +msgid "Decrement number under cursor by 10" +msgstr "Redueix el nombre sota el cursor en 10" + +#: script/data/commands/emmet.js:111 +#, kde-format +msgid "Decrement number under cursor by 0.1" +msgstr "Redueix el nombre sota el cursor en 0,1" + +#: script/data/commands/emmet.js:112 +#, kde-format +msgid "Increment number under cursor by 1" +msgstr "Augmenta el nombre sota el cursor en 1" + +#: script/data/commands/emmet.js:113 +#, kde-format +msgid "Increment number under cursor by 10" +msgstr "Augmenta el nombre sota el cursor en 10" + +#: script/data/commands/emmet.js:114 +#, kde-format +msgid "Increment number under cursor by 0.1" +msgstr "Augmenta el nombre sota el cursor en 0,1" + +#: script/data/commands/jumpMatchingIndent.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Previous Matching Indent" +msgstr "Mou el cursor fins al sagnat anterior que concordi" + +#: script/data/commands/jumpMatchingIndent.js:11 +#: script/data/commands/jumpMatchingIndent.js:16 +#: script/data/commands/jumpMatchingIndent.js:21 +#: script/data/commands/jumpMatchingIndent.js:26 +#: script/data/commands/navigation.js:10 script/data/commands/navigation.js:14 +#, kde-format +msgctxt "Script command category" +msgid "Navigation" +msgstr "Navegació" + +#: script/data/commands/jumpMatchingIndent.js:14 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Next Matching Indent" +msgstr "Mou el cursor fins al sagnat següent que concordi" + +#: script/data/commands/jumpMatchingIndent.js:19 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Next Blank Line" +msgstr "Mou el cursor fins a la línia següent en blanc" + +#: script/data/commands/jumpMatchingIndent.js:24 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Previous Blank Line" +msgstr "Mou el cursor fins a la línia anterior en blanc" + +#: script/data/commands/jumpMatchingIndent.js:80 +#, kde-format +msgid "Move cursor to previous matching indent" +msgstr "Mou el cursor fins al sagnat anterior que concordi" + +#: script/data/commands/jumpMatchingIndent.js:83 +#, kde-format +msgid "Move cursor to next matching indent" +msgstr "Mou el cursor fins al sagnat següent que concordi" + +#: script/data/commands/jumpMatchingIndent.js:85 +#, kde-format +msgid "Move cursor to next blank line" +msgstr "Mou el cursor fins a la línia següent en blanc" + +#: script/data/commands/jumpMatchingIndent.js:87 +#, kde-format +msgid "Move cursor to previous blank line" +msgstr "Mou el cursor fins a la línia anterior en blanc" + +#: script/data/commands/navigation.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Go to Next Paragraph" +msgstr "Va al paràgraf següent" + +#: script/data/commands/navigation.js:13 +#, kde-format +msgctxt "Script command name" +msgid "Go to Previous Paragraph" +msgstr "Va al paràgraf anterior" + +#: script/data/commands/utils.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Remove Trailing Spaces" +msgstr "Elimina els espais finals" + +#: script/data/commands/utils.js:10 script/data/commands/utils.js:14 +#: script/data/commands/utils.js:18 script/data/commands/utils.js:22 +#: script/data/commands/utils.js:27 script/data/commands/utils.js:32 +#: script/data/commands/utils.js:36 script/data/commands/utils.js:40 +#: script/data/commands/utils.js:44 script/data/commands/utils.js:48 +#: script/data/commands/utils.js:52 script/data/commands/utils.js:56 +#, kde-format +msgctxt "Script command category" +msgid "Editing" +msgstr "Edició" + +#: script/data/commands/utils.js:13 +#, kde-format +msgctxt "Script command name" +msgid "Remove Leading Spaces" +msgstr "Elimina els espais inicials" + +#: script/data/commands/utils.js:17 +#, kde-format +msgctxt "Script command name" +msgid "Remove Trailing and Leading Spaces" +msgstr "Elimina els espais inicials i finals" + +#: script/data/commands/utils.js:21 +#, kde-format +msgctxt "Script command name" +msgid "Join Lines" +msgstr "Uneix les línies" + +#: script/data/commands/utils.js:25 +#, kde-format +msgctxt "Script command name" +msgid "Move Lines Down" +msgstr "Desplaça les línies avall" + +#: script/data/commands/utils.js:30 +#, kde-format +msgctxt "Script command name" +msgid "Move Lines Up" +msgstr "Desplaça les línies amunt" + +#: script/data/commands/utils.js:35 +#, kde-format +msgctxt "Script command name" +msgid "Duplicate Selected Lines Down" +msgstr "Duplica les línies seleccionades cap avall" + +#: script/data/commands/utils.js:39 +#, kde-format +msgctxt "Script command name" +msgid "Duplicate Selected Lines Up" +msgstr "Duplica les línies seleccionades cap amunt" + +#: script/data/commands/utils.js:43 +#, kde-format +msgctxt "Script command name" +msgid "Duplicate selected text" +msgstr "Duplica el text seleccionat" + +#: script/data/commands/utils.js:47 +#, kde-format +msgctxt "Script command name" +msgid "URI-encode Selected Text" +msgstr "Codifica en un URI el text seleccionat" + +#: script/data/commands/utils.js:51 +#, kde-format +msgctxt "Script command name" +msgid "URI-decode Selected Text" +msgstr "Descodifica en un URI el text seleccionat" + +#: script/data/commands/utils.js:55 +#, kde-format +msgctxt "Script command name" +msgid "Remove Empty Lines" +msgstr "Elimina les línies buides" + +#: script/data/commands/utils.js:410 +#, kde-format +msgid "Sort the selected text or whole document." +msgstr "Ordena el text seleccionat o tot el document." + +#: script/data/commands/utils.js:412 +#, kde-format +msgid "Move selected lines down." +msgstr "Mou cap avall les línies seleccionades." + +#: script/data/commands/utils.js:414 +#, kde-format +msgid "Move selected lines up." +msgstr "Mou cap amunt les línies seleccionades." + +#: script/data/commands/utils.js:416 +#, kde-format +msgid "Remove duplicate lines from the selected text or whole document." +msgstr "" +"Elimina les línies duplicades del text seleccionat o de tot el document." + +#: script/data/commands/utils.js:418 +#, kde-format +msgid "" +"Sort the selected text or whole document in natural order.
Here is an " +"example to show the difference to the normal sort method:
sort(a10, a1, " +"a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" +msgstr "" +"Ordena el text seleccionat o tot el document en l'ordre natural.
Aquí hi " +"ha un exemple per a veure la diferència amb el mètode d'ordenació normal: " +"
sort(a10, a1, a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" + +#: script/data/commands/utils.js:420 +#, kde-format +msgid "Trims trailing whitespace from selection or whole document." +msgstr "Retira els espais en blanc finals de la selecció o de tot el document." + +#: script/data/commands/utils.js:422 +#, kde-format +msgid "Trims leading whitespace from selection or whole document." +msgstr "" +"Retira els espais en blanc inicials de la selecció o de tot el document." + +#: script/data/commands/utils.js:424 +#, kde-format +msgid "Trims leading and trailing whitespace from selection or whole document." +msgstr "" +"Retira els espais en blanc inicials i finals de la selecció o de tot el " +"document." + +#: script/data/commands/utils.js:426 +#, kde-format +msgid "" +"Joins selected lines or whole document. Optionally pass a separator to put " +"between each line:
join ', ' will e.g. join lines and " +"separate them by a comma." +msgstr "" +"Uneix les línies seleccionades o tot el document. De forma opcional, es pot " +"passar un separador per a situar-lo entre les línies:
join ', ' p. ex. unirà les línies separant-les amb una coma." + +#: script/data/commands/utils.js:428 +#, kde-format +msgid "Removes empty lines from selection or whole document." +msgstr "Elimina les línies buides de la selecció o de tot el document." + +#: script/data/commands/utils.js:430 +#, kde-format +msgid "" +"This command aligns lines in the selected block or whole document on the " +"column given by a regular expression given as an argument.

If you " +"give an empty pattern it will align on the first non-blank character by " +"default.
If the pattern has a capture it will indent on the captured " +"match.

Examples:
'alignon -' will insert " +"spaces before the first '-' of each lines to align them all on the same " +"column.
'alignon :\\s+(.)' will insert spaces before the " +"first non-blank character that occurs after a colon to align them all on the " +"same column." +msgstr "" +"Aquesta ordre alinea les línies del bloc seleccionat o de tot el document a " +"la columna indicada per una expressió regular proporcionada com a argument." +"

Si proporcioneu un patró buit, s'alinearà al primer caràcter no " +"blanc de manera predeterminada.
Si el patró té una captura, se sagnarà en " +"la coincidència capturada.

Exemples:
«alignon -» inserirà espais abans del primer «-» de cada línia per a alinear-les " +"totes a la mateixa columna.
«alignon :\\s+(.)» inserirà " +"espais abans del primer caràcter no blanc que hi hagi després de dos punts " +"(:) per a alinear-les totes a la mateixa columna." + +#: script/data/commands/utils.js:434 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and replace them with the return value of that callback." +"
Example (join selected lines):
each 'function(lines){return " +"lines.join(\", \");}'
To save you some typing, you can also do " +"this to achieve the same:
each 'lines.join(\", \")'" +msgstr "" +"Donada una funció JavaScript com a argument, la invoca per a llistar les " +"línies (seleccionades) i substituir-les amb el valor retornat de la crida. " +"
Exemple (unió de línies seleccionades):
each 'function(lines)" +"{return lines.join(\", \");}'
Per a estalviar-vos algun tecleig, " +"també podeu fer el següent per a aconseguir el mateix:
each 'lines." +"join(\", \")'" + +# skip-rule: t-l_gem +#: script/data/commands/utils.js:436 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and remove those where the callback returns false." +"
Example (see also rmblank):
filter 'function(l)" +"{return l.length > 0;}'
To save you some typing, you can also do " +"this to achieve the same:
filter 'line.length > 0'" +msgstr "" +"Donada una funció JavaScript com a argument, la invoca per a llistar les " +"línies (seleccionades) i eliminar aquelles que la crida retorna fals." +"
Exemple (vegeu també rmblank):
filter 'function(l)" +"{return l.length > 0;}'

Per a estalviar-vos algun tecleig, " +"també podeu fer el següent per a aconseguir el mateix:
filter 'line." +"length > 0'" + +#: script/data/commands/utils.js:438 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and replace the line with the return value of the callback." +"
Example (see also ltrim):
map 'function(line)" +"{return line.replace(/^\\s+/, \"\");}'
To save you some typing, " +"you can also do this to achieve the same:
map 'line.replace(/^\\s" +"+/, \"\")'" +msgstr "" +"Donada una funció JavaScript com a argument, la invoca per a llistar les " +"línies (seleccionades) i substituir la línia amb el valor retornat de la " +"crida.
Exemple (vegeu també ltrim):
map " +"'function(line){return line.replace(/^\\s+/, \"\");}'

Per a " +"estalviar-vos algun tecleig, també podeu fer el següent per a aconseguir el " +"mateix:
map 'line.replace(/^\\s+/, \"\")'" + +#: script/data/commands/utils.js:440 +#, kde-format +msgid "Duplicates the selected lines up." +msgstr "Duplica les línies seleccionades cap amunt." + +#: script/data/commands/utils.js:442 +#, kde-format +msgid "Duplicates the selected lines down." +msgstr "Duplica les línies seleccionades cap avall." + +#: script/data/commands/utils.js:446 +#, kde-format +msgid "" +"Encode special chars in a single line selection, so the result text can be " +"used as URI." +msgstr "" +"Codifica els caràcters especials en una selecció de línia única, de manera " +"que el text resultant es pugui usar com un URI." + +#: script/data/commands/utils.js:448 +#, kde-format +msgid "Reverse action of URI encode." +msgstr "Inverteix l'acció de codificació de l'URI." + +#: script/data/commands/utils.js:450 +#, kde-format +msgid "" +"Select text forward from current cursor position to the first occurrence of " +"the given argument after it (or the end of the current line by default)." +msgstr "" +"Selecciona el text endavant des de la posició actual del cursor fins a la " +"primera ocurrència de l'argument donat després d'ell (o al final de la línia " +"actual de manera predeterminada)." + +#: script/data/commands/utils.js:452 +#, kde-format +msgid "" +"Select text backward from current cursor position to the last occurrence of " +"the given argument before it (or the beginning of the current line by " +"default)." +msgstr "" +"Selecciona el text enrere des de la posició actual del cursor fins a " +"l'última ocurrència de l'argument donat abans d'ell (o al principi de la " +"línia actual de manera predeterminada)." + +#: script/data/indentation/ada.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "ada" +msgstr "Ada" + +#: script/data/indentation/cmake.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "CMake" +msgstr "CMake" + +#: script/data/indentation/cppstyle.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "C++/boost Style" +msgstr "Estil C++/boost" + +#: script/data/indentation/cstyle.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "C Style" +msgstr "Estil C" + +#: script/data/indentation/haskell.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Haskell" +msgstr "Haskell" + +#: script/data/indentation/julia.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Julia" +msgstr "Julia" + +#: script/data/indentation/latex.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Latex" +msgstr "Latex" + +#: script/data/indentation/lilypond.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "LilyPond" +msgstr "LilyPond" + +#: script/data/indentation/lisp.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "LISP" +msgstr "LISP" + +#: script/data/indentation/pascal.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Pascal" +msgstr "Pascal" + +#: script/data/indentation/python.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Python" +msgstr "Python" + +#: script/data/indentation/r.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "R" +msgstr "R" + +#: script/data/indentation/replicode.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Replicode" +msgstr "Replicode" + +#: script/data/indentation/ruby.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Ruby" +msgstr "Ruby" + +#: script/data/indentation/xml.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "XML Style" +msgstr "Estil XML" + +#: script/katecommandlinescript.cpp:37 +#, kde-format +msgid "Function '%1' not found in script: %2" +msgstr "No s'ha trobat la funció «%1» en l'script: %2" + +#: script/katecommandlinescript.cpp:51 +#, kde-format +msgid "Error calling %1" +msgstr "Error en invocar %1" + +#: script/katecommandlinescript.cpp:68 +#, kde-format +msgid "Bad quoting in call: %1. Please escape single quotes with a backslash." +msgstr "" +"Citació incorrecta en la crida: %1. Escapeu les cometes simples amb una " +"barra inversa." + +#: script/katecommandlinescript.cpp:76 utils/katecmds.cpp:217 +#: vimode/cmds.cpp:37 +#, kde-format +msgid "Could not access view" +msgstr "No s'ha pogut accedir a la vista" + +#: script/katecommandlinescript.cpp:118 +#, kde-format +msgid "Error calling 'help %1'" +msgstr "Error en invocar «help %1»" + +#: script/katecommandlinescript.cpp:123 +#, kde-format +msgid "No help specified for command '%1' in script %2" +msgstr "No s'ha definit cap ajuda per a l'ordre «%1» en l'script %2" + +#: script/katescript.cpp:282 +#, kde-format +msgid "Error loading script %1: %2" +msgstr "Error en carregar l'script %1: %2" + +#: script/katescriptmanager.cpp:319 +#, kde-format +msgid "Reload all JavaScript files (indenters, command line scripts, etc)." +msgstr "" +"Torna a carregar tots els fitxers JavaScript (sagnadors, scripts de línia " +"d'ordres, etc.)." + +#: script/katescriptview.cpp:214 +#, kde-format +msgid "Command not found: %1" +msgstr "No s'ha trobat l'ordre: %1" + +#: search/katesearchbar.cpp:73 +#, kde-format +msgid "Add..." +msgstr "Afegeix..." + +#: search/katesearchbar.cpp:298 +#, kde-format +msgctxt "short translation" +msgid "1 replacement made" +msgid_plural "%1 replacements made" +msgstr[0] "S'ha fet 1 substitució" +msgstr[1] "S'han fet %1 substitucions" + +#: search/katesearchbar.cpp:300 +#, kde-format +msgctxt "short translation" +msgid "1 match found" +msgid_plural "%1 matches found" +msgstr[0] "S'ha trobat 1 coincidència" +msgstr[1] "S'han trobat %1 coincidències" + +#: search/katesearchbar.cpp:374 +#, kde-format +msgid "Reached top, continued from bottom" +msgstr "S'ha arribat al començament, es continua des del final" + +#: search/katesearchbar.cpp:376 +#, kde-format +msgid "Reached bottom, continued from top" +msgstr "S'ha arribat al final, es continua des del començament" + +#: search/katesearchbar.cpp:381 +#, kde-format +msgid "Not found" +msgstr "No s'ha trobat" + +#: search/katesearchbar.cpp:615 +#, kde-format +msgid "Bottom of file reached. Continue from top?" +msgstr "S'ha arribat al final del fitxer. Continuo des del començament?" + +#: search/katesearchbar.cpp:615 +#, kde-format +msgid "Top of file reached. Continue from bottom?" +msgstr "S'ha arribat al començament del fitxer. Continuo des del final?" + +#: search/katesearchbar.cpp:618 +#, kde-format +msgid "Continue search?" +msgstr "Continuo la cerca?" + +#: search/katesearchbar.cpp:920 +#, kde-format +msgid "SearchHighLight" +msgstr "RessaltatDeCerca" + +#: search/katesearchbar.cpp:1136 search/katesearchbar.cpp:1755 +#, kde-format +msgid "Clear history" +msgstr "Neteja l'historial" + +#: search/katesearchbar.cpp:1166 +#, kde-format +msgid "Beginning of line" +msgstr "Començament de la línia" + +#: search/katesearchbar.cpp:1167 +#, kde-format +msgid "End of line" +msgstr "Final de línia" + +#: search/katesearchbar.cpp:1169 +#, kde-format +msgid "Match any character excluding new line (by default)" +msgstr "" +"Coincideix amb qualsevol caràcter excloent la línia nova (predeterminat)" + +#: search/katesearchbar.cpp:1170 +#, kde-format +msgid "One or more occurrences" +msgstr "Una o més ocurrències" + +#: search/katesearchbar.cpp:1171 +#, kde-format +msgid "Zero or more occurrences" +msgstr "Zero o més ocurrències" + +#: search/katesearchbar.cpp:1172 +#, kde-format +msgid "Zero or one occurrences" +msgstr "Zero o una ocurrència" + +#: search/katesearchbar.cpp:1175 +#, kde-format +msgid " through occurrences" +msgstr " exactament les ocurrències" + +#: search/katesearchbar.cpp:1181 +#, kde-format +msgid "Group, capturing" +msgstr "Grup, amb captura" + +#: search/katesearchbar.cpp:1182 +#, kde-format +msgid "Or" +msgstr "O" + +#: search/katesearchbar.cpp:1183 +#, kde-format +msgid "Set of characters" +msgstr "Joc de caràcters" + +#: search/katesearchbar.cpp:1184 +#, kde-format +msgid "Negative set of characters" +msgstr "Joc de caràcters negatiu" + +#: search/katesearchbar.cpp:1188 +#, kde-format +msgid "Whole match reference" +msgstr "Referència de coincidència completa" + +#: search/katesearchbar.cpp:1199 +#, kde-format +msgid "Reference" +msgstr "Referència" + +#: search/katesearchbar.cpp:1206 +#, kde-format +msgid "Line break" +msgstr "Salt de línia" + +#: search/katesearchbar.cpp:1207 +#, kde-format +msgid "Tab" +msgstr "Tabulació" + +#: search/katesearchbar.cpp:1210 +#, kde-format +msgid "Word boundary" +msgstr "Límit de paraula" + +#: search/katesearchbar.cpp:1211 +#, kde-format +msgid "Not word boundary" +msgstr "Sense límit de paraula" + +#: search/katesearchbar.cpp:1212 +#, kde-format +msgid "Digit" +msgstr "Dígit" + +#: search/katesearchbar.cpp:1213 +#, kde-format +msgid "Non-digit" +msgstr "No-dígit" + +#: search/katesearchbar.cpp:1214 +#, kde-format +msgid "Whitespace (excluding line breaks)" +msgstr "Espai en blanc (excloent els salts de línia)" + +#: search/katesearchbar.cpp:1215 +#, kde-format +msgid "Non-whitespace" +msgstr "No espai en blanc" + +#: search/katesearchbar.cpp:1216 +#, kde-format +msgid "Word character (alphanumerics plus '_')" +msgstr "Caràcter de paraula (alfanumèrics més «_»)" + +#: search/katesearchbar.cpp:1217 +#, kde-format +msgid "Non-word character" +msgstr "Caràcter de no-paraula" + +#: search/katesearchbar.cpp:1220 +#, kde-format +msgid "Octal character 000 to 377 (2^8-1)" +msgstr "Caràcter octal 000 a 377 (2^8-1)" + +#: search/katesearchbar.cpp:1221 +#, kde-format +msgid "Hex character 0000 to FFFF (2^16-1)" +msgstr "Caràcter hexadecimal 0000 a FFFF (2^16-1)" + +#: search/katesearchbar.cpp:1222 +#, kde-format +msgid "Backslash" +msgstr "Barra inversa" + +#: search/katesearchbar.cpp:1226 +#, kde-format +msgid "Group, non-capturing" +msgstr "Grup, sense captura" + +#: search/katesearchbar.cpp:1227 +#, kde-format +msgid "Positive Lookahead" +msgstr "Cerca endavant positiva" + +#: search/katesearchbar.cpp:1228 +#, kde-format +msgid "Negative lookahead" +msgstr "Cerca endavant negativa" + +#: search/katesearchbar.cpp:1232 +#, kde-format +msgid "Fixed-length positive lookbehind" +msgstr "Cerca enrere positiva de longitud fixa" + +#: search/katesearchbar.cpp:1233 +#, kde-format +msgid "Fixed-length negative lookbehind" +msgstr "Cerca enrere negativa de longitud fixa" + +#: search/katesearchbar.cpp:1238 +#, kde-format +msgid "Begin lowercase conversion" +msgstr "Comença la conversió a minúscules" + +#: search/katesearchbar.cpp:1239 +#, kde-format +msgid "Begin uppercase conversion" +msgstr "Comença la conversió a majúscules" + +#: search/katesearchbar.cpp:1240 +#, kde-format +msgid "End case conversion" +msgstr "Finalitza la conversió entre majúscules i minúscules" + +#: search/katesearchbar.cpp:1241 +#, kde-format +msgid "Lowercase first character conversion" +msgstr "Converteix el primer caràcter a minúscules" + +#: search/katesearchbar.cpp:1242 +#, kde-format +msgid "Uppercase first character conversion" +msgstr "Converteix el primer caràcter a majúscules" + +#: search/katesearchbar.cpp:1243 +#, kde-format +msgid "Replacement counter (for Replace All)" +msgstr "Comptador de les substitucions (per a Substitueix-ho tot)" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: search/searchbarincremental.ui:50 +#, kde-format +msgid "F&ind:" +msgstr "&Cerca:" + +#. i18n: ectx: property (toolTip), widget (QComboBox, pattern) +#: search/searchbarincremental.ui:78 search/searchbarpower.ui:295 +#, kde-format +msgid "Text to search for" +msgstr "Text a cercar" + +#. i18n: ectx: property (toolTip), widget (QToolButton, findNext) +#. i18n: ectx: property (toolTip), widget (QToolButton, next) +#: search/searchbarincremental.ui:91 search/searchbarpower.ui:175 +#, kde-format +msgid "Jump to next match" +msgstr "Salta a la coincidència següent" + +#. i18n: ectx: property (toolTip), widget (QToolButton, findPrev) +#. i18n: ectx: property (toolTip), widget (QToolButton, prev) +#: search/searchbarincremental.ui:101 search/searchbarpower.ui:185 +#, kde-format +msgid "Jump to previous match" +msgstr "Salta a la coincidència anterior" + +#. i18n: ectx: property (toolTip), widget (QToolButton, matchCase) +#: search/searchbarincremental.ui:111 search/searchbarpower.ui:136 +#, kde-format +msgid "Match case sensitive" +msgstr "Distingeix entre majúscules i minúscules" + +#. i18n: ectx: property (toolTip), widget (QToolButton, mutate) +#: search/searchbarincremental.ui:146 +#, kde-format +msgid "Switch to power search and replace bar" +msgstr "Commuta a la barra potent de cerca i de substitució" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: search/searchbarpower.ui:50 +#, kde-format +msgid "Fin&d:" +msgstr "&Cerca:" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: search/searchbarpower.ui:63 +#, kde-format +msgid "Rep&lace:" +msgstr "&Substitueix:" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: search/searchbarpower.ui:76 +#, kde-format +msgid "&Mode:" +msgstr "&Mode:" + +#. i18n: ectx: property (toolTip), widget (QComboBox, searchMode) +#: search/searchbarpower.ui:103 +#, kde-format +msgid "Search mode" +msgstr "Mode de cerca" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:113 +#, kde-format +msgid "Plain text" +msgstr "Text net" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:118 +#, kde-format +msgid "Whole words" +msgstr "Paraules completes" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:123 +#, kde-format +msgid "Escape sequences" +msgstr "Seqüències d'escapada" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:128 +#, kde-format +msgid "Regular expression" +msgstr "Expressió regular" + +#. i18n: ectx: property (toolTip), widget (QToolButton, selectionOnly) +#: search/searchbarpower.ui:149 +#, kde-format +msgid "Search in the selection only" +msgstr "Cerca només en la selecció" + +#. i18n: ectx: property (toolTip), widget (QPushButton, replaceNext) +#: search/searchbarpower.ui:195 +#, kde-format +msgid "Replace next match" +msgstr "Substitueix la coincidència següent" + +#. i18n: ectx: property (text), widget (QPushButton, replaceNext) +#. i18n: ectx: property (text), widget (QPushButton, m_replaceBtn) +#: search/searchbarpower.ui:198 spellcheck/spellcheckbar.ui:130 +#, kde-format +msgid "&Replace" +msgstr "&Substitueix" + +#. i18n: ectx: property (toolTip), widget (QPushButton, replaceAll) +#: search/searchbarpower.ui:224 +#, kde-format +msgid "Replace all matches" +msgstr "Substitueix totes les coincidències" + +#. i18n: ectx: property (text), widget (QPushButton, replaceAll) +#: search/searchbarpower.ui:227 +#, kde-format +msgid "Replace &All" +msgstr "Substitueix-ho &tot" + +#. i18n: ectx: property (text), widget (QPushButton, findAll) +#: search/searchbarpower.ui:234 +#, kde-format +msgid "&Find All" +msgstr "&Cerca-ho tot" + +#. i18n: ectx: property (text), widget (QPushButton, cancel) +#: search/searchbarpower.ui:257 +#, kde-format +msgid "Cancel" +msgstr "Cancel·la" + +#. i18n: ectx: property (toolTip), widget (QToolButton, mutate) +#: search/searchbarpower.ui:268 +#, kde-format +msgid "Switch to incremental search bar" +msgstr "Commuta a la barra de cerca incremental" + +#. i18n: ectx: property (toolTip), widget (QComboBox, replacement) +#: search/searchbarpower.ui:314 +#, kde-format +msgid "Text to replace with" +msgstr "Substitueix el text amb" + +#: spellcheck/spellcheckbar.cpp:148 +#, kde-format +msgid "Spell check canceled." +msgstr "S'ha cancel·lat la verificació ortogràfica." + +#: spellcheck/spellcheckbar.cpp:245 +#, kde-format +msgctxt "@info:progress" +msgid "Spell checking in progress…" +msgstr "Verificació ortogràfica en curs…" + +#: spellcheck/spellcheckbar.cpp:246 spellcheck/spellcheckbar.cpp:435 +#, kde-format +msgctxt "@title:window" +msgid "Check Spelling" +msgstr "Comprovació d'ortografia" + +#: spellcheck/spellcheckbar.cpp:432 spellcheck/spellcheckbar.cpp:435 +#, kde-format +msgid "Spell check complete." +msgstr "La verificació ortogràfica ha finalitzat." + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel2) +#. i18n: ectx: property (whatsThis), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:30 spellcheck/spellcheckbar.ui:46 +#, kde-format +msgid "" +"

This word was considered to be an \"unknown word\" because it does " +"not match any entry in the dictionary currently in use. It may also be a " +"word in a foreign language.

\n" +"

If the word is not misspelled, you may add it to the dictionary by " +"clicking Add to Dictionary. If you do not want to add the unknown " +"word to the dictionary, but you want to leave it unchanged, click Ignore or Ignore All.

\n" +"

However, if the word is misspelled, you can try to find the correct " +"replacement in the list below. If you cannot find a replacement there, you " +"may type it in the text box below, and click Replace or Replace " +"All.

\n" +"
" +msgstr "" +"

Aquesta paraula s'ha considerat una «paraula desconeguda» perquè no " +"coincideix amb cap entrada del diccionari actualment en ús. També podria ser " +"una paraula d'un idioma estranger.

\n" +"

Si la paraula no està mal escrita, podeu afegir-la al diccionari clicant " +"a Afegeix al diccionari. Si no la voleu afegir al diccionari, però " +"voleu deixar-la sense canviar, cliqueu Ignora o Ignora-ho tot." +"

\n" +"

En canvi, si la paraula està mal escrita, podeu provar de trobar la " +"substitució correcta a la llista de sota. Si no hi trobeu una substitució, " +"podeu escriure al quadre de text de sota i clicar Substitueix o " +"Substitueix-ho tot.

\n" +"
" + +#. i18n: ectx: property (text), widget (QLabel, textLabel2) +#: spellcheck/spellcheckbar.ui:33 +#, kde-format +msgid "Unknown word:" +msgstr "Paraula desconeguda:" + +#. i18n: ectx: property (toolTip), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:40 +#, kde-format +msgid "Unknown word" +msgstr "Paraula desconeguda" + +#. i18n: ectx: property (text), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:49 +#, kde-format +msgid "misspelled" +msgstr "error ortogràfic" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_addBtn) +#: spellcheck/spellcheckbar.ui:72 +#, kde-format +msgid "" +"\n" +"

The unknown word was detected and considered unknown because it is not " +"included in the dictionary.
\n" +"Click here if you consider the unknown word not to be misspelled, and you " +"want to avoid wrongly detecting it again in the future. If you want to let " +"it remain as is, but not add it to the dictionary, then click Ignore " +"or Ignore All instead.

\n" +"
" +msgstr "" +"\n" +"

La paraula desconeguda s'ha detectat i s'ha considerat desconeguda perquè " +"no està inclosa al diccionari.
\n" +"Cliqueu aquí si considereu que la paraula desconeguda no està mal escrita i " +"voleu evitar detectar-la incorrectament en el futur. Si voleu deixar-la tal " +"com està, però no voleu afegir-la al diccionari, llavors cliqueu Ignora o Ignora-ho tot.

\n" +"
" + +#. i18n: ectx: property (text), widget (QPushButton, m_addBtn) +#: spellcheck/spellcheckbar.ui:75 +#, kde-format +msgid "<< Add to Dictionary" +msgstr "<< Afegeix al diccionari" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel4) +#: spellcheck/spellcheckbar.ui:89 +#, kde-format +msgid "" +"\n" +"

If the unknown word is misspelled, you should type the correction for " +"your misspelled word here or select it from the list below.

\n" +"

You can then click Replace if you want to correct only this " +"occurrence of the word or Replace All if you want to correct all " +"occurrences.

\n" +"
" +msgstr "" +"\n" +"

Si la paraula desconeguda està mal escrita, heu de teclejar la correcció " +"de l'error ortogràfic aquí o seleccionar-la des de la llista de sota.

\n" +"

Llavors podeu clicar Substitueix si voleu corregir només aquesta " +"ocurrència de la paraula o Substitueix-ho tot si voleu corregir totes " +"les ocurrències.

\n" +"
" + +#. i18n: ectx: property (text), widget (QLabel, textLabel4) +#: spellcheck/spellcheckbar.ui:92 +#, kde-format +msgid "Replace with:" +msgstr "Substitueix per:" + +#. i18n: ectx: property (text), widget (QPushButton, m_suggestBtn) +#: spellcheck/spellcheckbar.ui:118 +#, kde-format +msgid "S&uggest" +msgstr "S&uggereix" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_replaceBtn) +#: spellcheck/spellcheckbar.ui:127 +#, kde-format +msgid "" +"\n" +"

Click here to replace this occurrence of the unknown text with the text " +"in the edit box above (to the left).

\n" +"
" +msgstr "" +"\n" +"

Cliqueu aquí per a substituir aquesta ocurrència del text desconegut amb " +"el text del quadre d'edició de sobre (a l'esquerra).

\n" +"
" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_skipBtn) +#: spellcheck/spellcheckbar.ui:140 +#, kde-format +msgid "" +"\n" +"

Click here to let this occurrence of the unknown word remain as is.

\n" +"

This action is useful when the word is a name, an acronym, a foreign word " +"or any other unknown word that you want to use but not add to the dictionary." +"

\n" +"
" +msgstr "" +"\n" +"

Cliqueu aquí per a deixar aquesta ocurrència de la paraula desconeguda " +"tal com està.

\n" +"

Aquesta acció és útil quan una paraula és un nom, un acrònim, una paraula " +"estrangera o qualsevol altra paraula desconeguda que voleu usar, però no " +"voleu afegir al diccionari.

\n" +"
" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel5) +#. i18n: ectx: property (whatsThis), widget (Sonnet::DictionaryComboBox, m_language) +#: spellcheck/spellcheckbar.ui:156 spellcheck/spellcheckbar.ui:174 +#, kde-format +msgid "" +"\n" +"

Select the language of the document you are proofing here.

\n" +"
" +msgstr "" +"\n" +"

Seleccioneu l'idioma del document que esteu comprovant aquí.

\n" +"
" + +#. i18n: ectx: property (text), widget (QLabel, textLabel5) +#: spellcheck/spellcheckbar.ui:159 +#, kde-format +msgid "&Language:" +msgstr "&Idioma:" + +#. i18n: ectx: property (toolTip), widget (Sonnet::DictionaryComboBox, m_language) +#: spellcheck/spellcheckbar.ui:169 +#, kde-format +msgid "Language Selection" +msgstr "Selecció de l'idioma" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_autoCorrect) +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_skipAllBtn) +#: spellcheck/spellcheckbar.ui:197 spellcheck/spellcheckbar.ui:222 +#, kde-format +msgid "" +"\n" +"

Click here to let all occurrences of the unknown word remain as they are." +"

\n" +"

This action is useful when the word is a name, an acronym, a foreign word " +"or any other unknown word that you want to use but not add to the dictionary." +"

\n" +"
" +msgstr "" +"\n" +"

Cliqueu aquí per a deixar totes les ocurrències de la paraula desconeguda " +"tal com estan.

\n" +"

Aquesta acció és útil quan una paraula és un nom, un acrònim, una paraula " +"estrangera o qualsevol altra paraula desconeguda que voleu usar, però no " +"voleu afegir al diccionari.

\n" +"
" + +#. i18n: ectx: property (text), widget (QPushButton, m_autoCorrect) +#: spellcheck/spellcheckbar.ui:200 +#, kde-format +msgid "Autocorrect" +msgstr "Correcció automàtica" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_replaceAllBtn) +#: spellcheck/spellcheckbar.ui:209 +#, kde-format +msgid "" +"\n" +"

Click here to replace all occurrences of the unknown text with the text " +"in the edit box above (to the left).

\n" +"
" +msgstr "" +"\n" +"

Cliqueu aquí per a substituir totes les ocurrències del text desconegut " +"amb el text del quadre d'edició de sobre (a l'esquerra).

\n" +"
" + +#. i18n: ectx: property (text), widget (QPushButton, m_replaceAllBtn) +#: spellcheck/spellcheckbar.ui:212 +#, kde-format +msgid "R&eplace All" +msgstr "Su&bstitueix-ho tot" + +#. i18n: ectx: property (text), widget (QPushButton, m_skipAllBtn) +#: spellcheck/spellcheckbar.ui:225 +#, kde-format +msgid "I&gnore All" +msgstr "I&gnora-ho tot" + +#: spellcheck/spellcheckdialog.cpp:51 +#, kde-format +msgctxt "@action" +msgid "Spelling (from Cursor)…" +msgstr "Ortografia (des del cursor)…" + +#: spellcheck/spellcheckdialog.cpp:54 +#, kde-format +msgid "Check the document's spelling from the cursor and forward" +msgstr "Verifica l'ortografia dels documents des del cursor cap endavant" + +#: spellcheck/spellingmenu.cpp:76 +#, kde-format +msgid "Ignore Word" +msgstr "Ignora la paraula" + +#: spellcheck/spellingmenu.cpp:79 +#, kde-format +msgid "Add to Dictionary" +msgstr "Afegeix al diccionari" + +#: spellcheck/spellingmenu.cpp:172 +#, kde-format +msgid "Spelling '%1'" +msgstr "Ortografia de «%1»" + +#: swapfile/kateswapdiffcreator.cpp:87 +#, kde-format +msgid "" +"The diff command could not be found. Please make sure that diff(1) is " +"installed and in your PATH." +msgstr "" +"No s'ha pogut trobar l'ordre «diff». Assegureu-vos que el diff(1) està " +"instal·lat i en el vostre PATH." + +#: swapfile/kateswapdiffcreator.cpp:98 +#, kde-format +msgid "The diff command '%1' could not be started." +msgstr "No s'ha pogut iniciar l'ordre «%1» del «diff»." + +#: swapfile/kateswapfile.cpp:642 +#, kde-format +msgid "The file was not closed properly." +msgstr "El fitxer no s'ha tancat adequadament." + +#: swapfile/kateswapfile.cpp:645 +#, kde-format +msgid "View Changes" +msgstr "Mostra els canvis" + +#: swapfile/kateswapfile.cpp:646 +#, kde-format +msgid "Recover Data" +msgstr "Recupera les dades" + +#: swapfile/kateswapfile.cpp:647 +#, kde-format +msgid "Discard" +msgstr "Descarta" + +#: syntax/katecolortreewidget.cpp:34 syntax/katecolortreewidget.cpp:61 +#, kde-format +msgid "Use default color from the color theme" +msgstr "Usa el color predeterminat des del tema de color" + +#: syntax/katehighlightmenu.cpp:39 +#, kde-format +msgid "None" +msgstr "Cap" + +#: syntax/katestyletreewidget.cpp:135 +#, kde-format +msgctxt "@title:column Meaning of text in editor" +msgid "Context" +msgstr "Context" + +#: syntax/katestyletreewidget.cpp:136 +#, kde-format +msgctxt "@title:column Text style" +msgid "Normal" +msgstr "Normal" + +#: syntax/katestyletreewidget.cpp:136 +#, kde-format +msgctxt "@title:column Text style" +msgid "Selected" +msgstr "Seleccionat" + +#: syntax/katestyletreewidget.cpp:136 +#, kde-format +msgctxt "@title:column Text style" +msgid "Background" +msgstr "Fons" + +#: syntax/katestyletreewidget.cpp:137 +#, kde-format +msgctxt "@title:column Text style" +msgid "Background Selected" +msgstr "Fons seleccionat" + +#: syntax/katestyletreewidget.cpp:139 +#, kde-format +msgid "Use Default Style" +msgstr "Empra l'estil predeterminat" + +#: syntax/katestyletreewidget.cpp:238 +#, kde-format +msgid "&Bold" +msgstr "&Negreta" + +#: syntax/katestyletreewidget.cpp:243 +#, kde-format +msgid "&Italic" +msgstr "&Cursiva" + +#: syntax/katestyletreewidget.cpp:248 +#, kde-format +msgid "&Underline" +msgstr "&Subratllat" + +#: syntax/katestyletreewidget.cpp:253 +#, kde-format +msgid "S&trikeout" +msgstr "Ra&tllat" + +#: syntax/katestyletreewidget.cpp:260 +#, kde-format +msgctxt "@action:inmenu" +msgid "Normal &Color…" +msgstr "Color &normal…" + +#: syntax/katestyletreewidget.cpp:263 +#, kde-format +msgctxt "@action:inmenu" +msgid "&Selected Color…" +msgstr "Color &seleccionat…" + +#: syntax/katestyletreewidget.cpp:266 +#, kde-format +msgctxt "@action:inmenu" +msgid "&Background Color…" +msgstr "&Color de fons…" + +#: syntax/katestyletreewidget.cpp:269 +#, kde-format +msgctxt "@action:inmenu" +msgid "S&elected Background Color…" +msgstr "Color de fons s&eleccionat…" + +#: syntax/katestyletreewidget.cpp:275 +#, kde-format +msgid "Unset Normal Color" +msgstr "Desassigna el color normal" + +#: syntax/katestyletreewidget.cpp:278 +#, kde-format +msgid "Unset Selected Color" +msgstr "Desassigna el color seleccionat" + +#: syntax/katestyletreewidget.cpp:284 +#, kde-format +msgid "Unset Background Color" +msgstr "Desassigna el color de fons" + +#: syntax/katestyletreewidget.cpp:289 +#, kde-format +msgid "Unset Selected Background Color" +msgstr "Desassigna el color de fons seleccionat" + +#: syntax/katestyletreewidget.cpp:295 +#, kde-format +msgid "Use &Default Style" +msgstr "Empra l'estil pre&determinat" + +#: syntax/katestyletreewidget.cpp:408 +#, kde-format +msgctxt "No text or background color set" +msgid "None set" +msgstr "No establert" + +#: syntax/katestyletreewidget.cpp:642 +#, kde-format +msgid "" +"\"Use Default Style\" will be automatically unset when you change any style " +"properties." +msgstr "" +"«Empra l'estil predeterminat» serà automàticament desseleccionat quan " +"canvieu qualsevol propietat d'un estil." + +#: syntax/katestyletreewidget.cpp:643 +#, kde-format +msgid "Kate Styles" +msgstr "Estils del Kate" + +#: syntax/katethemeconfig.cpp:47 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Normal" +msgstr "Normal" + +#: syntax/katethemeconfig.cpp:49 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Keyword" +msgstr "Paraula clau" + +#: syntax/katethemeconfig.cpp:51 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Function" +msgstr "Funció" + +#: syntax/katethemeconfig.cpp:53 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Variable" +msgstr "Variable" + +#: syntax/katethemeconfig.cpp:55 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Control Flow" +msgstr "Flux de control" + +#: syntax/katethemeconfig.cpp:57 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Operator" +msgstr "Operador" + +#: syntax/katethemeconfig.cpp:59 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Built-in" +msgstr "Integrat" + +#: syntax/katethemeconfig.cpp:61 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Extension" +msgstr "Extensió" + +#: syntax/katethemeconfig.cpp:63 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Preprocessor" +msgstr "Prepocessador" + +#: syntax/katethemeconfig.cpp:65 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Attribute" +msgstr "Atribut" + +#: syntax/katethemeconfig.cpp:68 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Character" +msgstr "Caràcter" + +#: syntax/katethemeconfig.cpp:70 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Special Character" +msgstr "Caràcter especial" + +#: syntax/katethemeconfig.cpp:72 +#, kde-format +msgctxt "@item:intable Text context" +msgid "String" +msgstr "Cadena" + +#: syntax/katethemeconfig.cpp:74 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Verbatim String" +msgstr "Cadena literal" + +#: syntax/katethemeconfig.cpp:76 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Special String" +msgstr "Cadena especial" + +#: syntax/katethemeconfig.cpp:78 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Imports, Modules, Includes" +msgstr "Importacions, mòduls i inclusions" + +#: syntax/katethemeconfig.cpp:81 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Data Type" +msgstr "Tipus de dada" + +#: syntax/katethemeconfig.cpp:83 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Decimal/Value" +msgstr "Decimal/valor" + +#: syntax/katethemeconfig.cpp:85 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Base-N Integer" +msgstr "Enter base-N" + +#: syntax/katethemeconfig.cpp:87 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Floating Point" +msgstr "Coma flotant" + +#: syntax/katethemeconfig.cpp:89 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Constant" +msgstr "Constant" + +#: syntax/katethemeconfig.cpp:92 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Comment" +msgstr "Comentari" + +#: syntax/katethemeconfig.cpp:94 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Documentation" +msgstr "Documentació" + +#: syntax/katethemeconfig.cpp:96 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Annotation" +msgstr "Anotació" + +#: syntax/katethemeconfig.cpp:98 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Comment Variable" +msgstr "Variable de comentari" + +#: syntax/katethemeconfig.cpp:101 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Region Marker" +msgstr "Marcador de regió" + +#: syntax/katethemeconfig.cpp:103 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Information" +msgstr "Informació" + +#: syntax/katethemeconfig.cpp:105 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Warning" +msgstr "Avís" + +#: syntax/katethemeconfig.cpp:107 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Alert" +msgstr "Alerta" + +#: syntax/katethemeconfig.cpp:110 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Others" +msgstr "Altres" + +#: syntax/katethemeconfig.cpp:113 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Error" +msgstr "Error" + +#: syntax/katethemeconfig.cpp:162 +#, kde-format +msgid "Use Default Colors" +msgstr "Usa els colors predeterminats" + +#: syntax/katethemeconfig.cpp:182 +#, kde-format +msgid "Editor Background Colors" +msgstr "Editor dels colors de fons" + +#: syntax/katethemeconfig.cpp:184 +#, kde-format +msgid "Text Area" +msgstr "Àrea de text" + +#: syntax/katethemeconfig.cpp:186 +#, kde-format +msgid "

Sets the background color of the editing area.

" +msgstr "

Defineix el color de fons de l'àrea d'edició.

" + +#: syntax/katethemeconfig.cpp:191 +#, kde-format +msgid "Selected Text" +msgstr "Text seleccionat" + +#: syntax/katethemeconfig.cpp:194 +#, kde-format +msgid "" +"

Sets the background color of the selection.

To set the text color " +"for selected text, use the "Configure Highlighting" dialog." +"

" +msgstr "" +"

Defineix el color de fons per a la selecció.

Per a definir el color " +"del text per al text seleccionat, useu el diàleg "Configura el " +"ressaltat".

" + +#: syntax/katethemeconfig.cpp:200 +#, kde-format +msgid "Current Line" +msgstr "Línia actual" + +#: syntax/katethemeconfig.cpp:202 +#, kde-format +msgid "" +"

Sets the background color of the currently active line, which means the " +"line where your cursor is positioned.

" +msgstr "" +"

Defineix el color de fons de la línia actualment activa, és a dir, la " +"línia a on està situat el cursor.

" + +#: syntax/katethemeconfig.cpp:207 +#, kde-format +msgid "Search Highlight" +msgstr "Ressaltat de la cerca" + +#: syntax/katethemeconfig.cpp:209 +#, kde-format +msgid "

Sets the background color of search results.

" +msgstr "

Defineix el color de fons del resultat de la cerca.

" + +#: syntax/katethemeconfig.cpp:214 +#, kde-format +msgid "Replace Highlight" +msgstr "Ressaltat de la substitució" + +#: syntax/katethemeconfig.cpp:216 +#, kde-format +msgid "

Sets the background color of replaced text.

" +msgstr "

Defineix el color de fons del text substituït.

" + +#: syntax/katethemeconfig.cpp:223 +#, kde-format +msgid "Icon Border" +msgstr "Vora de la icona" + +#: syntax/katethemeconfig.cpp:226 +#, kde-format +msgid "Background Area" +msgstr "Àrea de fons" + +#: syntax/katethemeconfig.cpp:228 +#, kde-format +msgid "

Sets the background color of the icon border.

" +msgstr "

Defineix el color de fons de la vora de les icones.

" + +#: syntax/katethemeconfig.cpp:233 view/screenshotdialog.cpp:265 +#, kde-format +msgid "Line Numbers" +msgstr "Números de les línies" + +#: syntax/katethemeconfig.cpp:235 +#, kde-format +msgid "

This color will be used to draw the line numbers (if enabled).

" +msgstr "" +"

Aquest color s'usarà per a dibuixar els números de les línies (si està " +"activada).

" + +#: syntax/katethemeconfig.cpp:240 +#, kde-format +msgid "Current Line Number" +msgstr "Número de la línia actual" + +#: syntax/katethemeconfig.cpp:242 +#, kde-format +msgid "" +"

This color will be used to draw the number of the current line (if " +"enabled).

" +msgstr "" +"

Aquest color s'usarà per a dibuixar el número de la línia actual (si està " +"activada).

" + +#: syntax/katethemeconfig.cpp:247 +#, kde-format +msgid "Separator" +msgstr "Separador" + +#: syntax/katethemeconfig.cpp:249 +#, kde-format +msgid "" +"

This color will be used to draw the line between line numbers and the " +"icon borders, if both are enabled.

" +msgstr "" +"

Aquest color s'usarà per a dibuixar la línia entre els números de línia i " +"les vores de la icona, si ambdues estan activades.

" + +#: syntax/katethemeconfig.cpp:254 +#, kde-format +msgid "Word Wrap Marker" +msgstr "Marcadors d'ajust de les paraules" + +#: syntax/katethemeconfig.cpp:257 +#, kde-format +msgid "" +"

Sets the color of Word Wrap-related markers:

Static Word Wrap
A vertical line which shows the column where text is going to be " +"wrapped
Dynamic Word Wrap
An arrow shown to the left of " +"visually-wrapped lines
" +msgstr "" +"

Defineix el color dels marcadors relacionats amb l'ajust de les paraules:" +"

Ajust estàtic de les paraules
Una línia vertical " +"indicant la columna on s'ajustarà el text
Ajust dinàmic de les " +"paraules
Una fletxa indicant la part esquerra de les línies " +"ajustades visualment
" + +#: syntax/katethemeconfig.cpp:264 +#, kde-format +msgid "Code Folding" +msgstr "Plegat de codi" + +#: syntax/katethemeconfig.cpp:266 +#, kde-format +msgid "

Sets the color of the code folding bar.

" +msgstr "

Defineix el color de la barra del plegat de codi.

" + +#: syntax/katethemeconfig.cpp:271 +#, kde-format +msgid "Modified Lines" +msgstr "Línies modificades" + +#: syntax/katethemeconfig.cpp:273 +#, kde-format +msgid "" +"

Sets the color of the line modification marker for modified lines.

" +msgstr "" +"

Defineix el color del marcador de modificació de línia per a les línies " +"modificades.

" + +#: syntax/katethemeconfig.cpp:278 +#, kde-format +msgid "Saved Lines" +msgstr "Línies desades" + +#: syntax/katethemeconfig.cpp:280 +#, kde-format +msgid "

Sets the color of the line modification marker for saved lines.

" +msgstr "" +"

Defineix el color de la marca de línia modificada per a les línies " +"desades.

" + +#: syntax/katethemeconfig.cpp:287 +#, kde-format +msgid "Text Decorations" +msgstr "Decoracions de text" + +#: syntax/katethemeconfig.cpp:290 +#, kde-format +msgid "Spelling Mistake Line" +msgstr "Línia amb error ortogràfic" + +#: syntax/katethemeconfig.cpp:292 +#, kde-format +msgid "" +"

Sets the color of the line that is used to indicate spelling mistakes.

" +msgstr "" +"

Defineix el color de la línia que s'usa per a indicar els errors " +"ortogràfics.

" + +#: syntax/katethemeconfig.cpp:297 +#, kde-format +msgid "Tab and Space Markers" +msgstr "Marcadors de tabulació i espai" + +#: syntax/katethemeconfig.cpp:299 +#, kde-format +msgid "

Sets the color of the tabulator marks.

" +msgstr "

Defineix el color de les marques de tabulació.

" + +#: syntax/katethemeconfig.cpp:304 +#, kde-format +msgid "Indentation Line" +msgstr "Sagnat" + +#: syntax/katethemeconfig.cpp:306 +#, kde-format +msgid "

Sets the color of the vertical indentation lines.

" +msgstr "

Defineix el color de les línies de sagnat verticals.

" + +#: syntax/katethemeconfig.cpp:311 +#, kde-format +msgid "Bracket Highlight" +msgstr "Ressaltat de parèntesis" + +#: syntax/katethemeconfig.cpp:314 +#, kde-format +msgid "" +"

Sets the bracket matching color. This means, if you place the cursor e.g. " +"at a (, the matching ) will be highlighted with this color.

" +msgstr "" +"

Defineix el color dels parèntesis concordants. Això vol dir que si poseu " +"el cursor, p. ex. a un (, el corresponent ) es ressaltarà amb " +"aquest color.

" + +#: syntax/katethemeconfig.cpp:322 +#, kde-format +msgid "Marker Colors" +msgstr "Colors dels marcadors" + +#: syntax/katethemeconfig.cpp:324 view/kateviewhelpers.cpp:1536 +#, kde-format +msgid "Bookmark" +msgstr "Punt" + +#: syntax/katethemeconfig.cpp:325 +#, kde-format +msgid "Active Breakpoint" +msgstr "Punt d'interrupció actiu" + +#: syntax/katethemeconfig.cpp:326 +#, kde-format +msgid "Reached Breakpoint" +msgstr "S'ha arribat a un punt d'interrupció" + +#: syntax/katethemeconfig.cpp:327 +#, kde-format +msgid "Disabled Breakpoint" +msgstr "Punt d'interrupció desactivat" + +#: syntax/katethemeconfig.cpp:328 +#, kde-format +msgid "Execution" +msgstr "Execució" + +#: syntax/katethemeconfig.cpp:329 +#, kde-format +msgid "Warning" +msgstr "Avís" + +#: syntax/katethemeconfig.cpp:330 +#, kde-format +msgid "Error" +msgstr "Error" + +#: syntax/katethemeconfig.cpp:332 +#, kde-format +msgid "" +"

Sets the background color of mark type.

Note: The marker " +"color is displayed lightly because of transparency.

" +msgstr "" +"

Defineix el color de fons del tipus de marcador.

Nota: El " +"color del marcador apareixerà més clar a causa de la transparència.

" + +#: syntax/katethemeconfig.cpp:344 +#, kde-format +msgid "Text Templates & Snippets" +msgstr "Plantilles i retalls de text" + +#: syntax/katethemeconfig.cpp:349 +#, kde-format +msgid "Background" +msgstr "Fons" + +#: syntax/katethemeconfig.cpp:355 +#, kde-format +msgid "Editable Placeholder" +msgstr "Text variable editable" + +#: syntax/katethemeconfig.cpp:361 +#, kde-format +msgid "Focused Editable Placeholder" +msgstr "Text variable editable amb el focus" + +#: syntax/katethemeconfig.cpp:367 +#, kde-format +msgid "Not Editable Placeholder" +msgstr "Text variable no editable" + +#: syntax/katethemeconfig.cpp:501 +#, kde-format +msgid "" +"

This list displays the default styles for the current color theme and " +"offers the means to edit them. The style name reflects the current style " +"settings.

To edit the colors, click the colored squares, or select the " +"color to edit from the popup menu.

You can unset the Background and " +"Selected Background colors from the popup menu when appropriate.

" +msgstr "" +"

Aquesta llista mostra els estils predeterminats per al tema actual i " +"ofereix els mitjans per a editar-los. El nom de l'estil indica l'arranjament " +"de l'estil actual.

Per a editar els colors, cliqueu als quadres de " +"color o trieu el color a editar des del menú emergent.

Quan sigui " +"apropiat, podreu desassignar els colors per al fons i el fons seleccionat " +"des del menú emergent.

" + +#: syntax/katethemeconfig.cpp:568 +#, kde-format +msgctxt "@item:intable" +msgid "Normal Text & Source Code" +msgstr "Text normal i codi font" + +#: syntax/katethemeconfig.cpp:575 +#, kde-format +msgctxt "@item:intable" +msgid "Numbers, Types & Constants" +msgstr "Nombres, tipus i constants" + +#: syntax/katethemeconfig.cpp:582 +#, kde-format +msgctxt "@item:intable" +msgid "Strings & Characters" +msgstr "Cadenes i caràcters" + +#: syntax/katethemeconfig.cpp:589 +#, kde-format +msgctxt "@item:intable" +msgid "Comments & Documentation" +msgstr "Comentaris i documentació" + +#: syntax/katethemeconfig.cpp:596 +#, kde-format +msgctxt "@item:intable" +msgid "Miscellaneous" +msgstr "Miscel·lània" + +#: syntax/katethemeconfig.cpp:704 +#, kde-format +msgid "H&ighlight:" +msgstr "&Ressaltat:" + +#: syntax/katethemeconfig.cpp:746 +#, kde-format +msgid "" +"

This list displays the contexts of the current syntax highlight mode and " +"offers the means to edit them. The context name reflects the current style " +"settings.

To edit using the keyboard, press <SPACE> and choose a property from the popup menu.

To edit the colors, " +"click the colored squares, or select the color to edit from the popup menu.

You can unset the Background and Selected Background colors from the " +"context menu when appropriate.

" +msgstr "" +"

Aquesta llista mostra els contexts del mode actual de ressaltat sintàctic " +"i ofereix els mitjans per a editar-los. El nom del context indica la " +"configuració de l'estil actual.

Per a editar-lo emprant el teclat, " +"premeu <ESPAI> i escolliu una propietat des del menú " +"emergent.

Per a editar els colors, cliqueu en els quadres de color o " +"trieu el color a editar des del menú emergent.

Quan sigui apropiat, " +"podreu desassignar els colors per al fons i el fons seleccionat des del menú " +"contextual.

" + +#: syntax/katethemeconfig.cpp:1027 +#, kde-format +msgid "Default Theme" +msgstr "Tema predeterminat" + +#: syntax/katethemeconfig.cpp:1028 +#, kde-format +msgid "Theme Editor" +msgstr "Editor de temes" + +#: syntax/katethemeconfig.cpp:1046 +#, kde-format +msgid "Select theme:" +msgstr "Selecció del tema:" + +#: syntax/katethemeconfig.cpp:1119 +#, kde-format +msgid "&Theme:" +msgstr "&Tema:" + +#: syntax/katethemeconfig.cpp:1128 +#, kde-format +msgctxt "@action:button" +msgid "&Copy…" +msgstr "&Copia…" + +#: syntax/katethemeconfig.cpp:1136 +#, kde-format +msgctxt "@action:button" +msgid "Export…" +msgstr "Exporta…" + +#: syntax/katethemeconfig.cpp:1140 +#, kde-format +msgctxt "@action:button" +msgid "Import…" +msgstr "Importa…" + +#: syntax/katethemeconfig.cpp:1147 +#, kde-format +msgid "Bundled read-only theme. To modify the theme, please copy it." +msgstr "Tema empaquetat de només lectura. Per a modificar el tema, copieu-lo." + +#: syntax/katethemeconfig.cpp:1160 +#, kde-format +msgid "Colors" +msgstr "Colors" + +#: syntax/katethemeconfig.cpp:1164 +#, kde-format +msgid "Default Text Styles" +msgstr "Estils de text per defecte" + +#: syntax/katethemeconfig.cpp:1168 +#, kde-format +msgid "Highlighting Text Styles" +msgstr "Estils de text ressaltat" + +#: syntax/katethemeconfig.cpp:1180 +#, kde-format +msgid "Exporting color theme: %1" +msgstr "S'està exportant el tema de color: %1" + +#: syntax/katethemeconfig.cpp:1182 syntax/katethemeconfig.cpp:1203 +#, kde-format +msgid "Color theme" +msgstr "Tema de color" + +#: syntax/katethemeconfig.cpp:1203 +#, kde-format +msgid "Importing Color Theme" +msgstr "S'està important el tema de color" + +#: syntax/katethemeconfig.cpp:1217 +#, kde-format +msgid "" +"Importing will overwrite the existing theme file \"%1\". This can not be " +"undone." +msgstr "" +"La importació sobreescriurà el fitxer existent de tema «%1». Això no es pot " +"desfer." + +#: syntax/katethemeconfig.cpp:1219 +#, kde-format +msgid "Import Nevertheless" +msgstr "Importa malgrat tot" + +#: syntax/katethemeconfig.cpp:1308 +#, kde-format +msgid "Follow System Color Scheme" +msgstr "Segueix l'esquema de color del sistema" + +#: syntax/katethemeconfig.cpp:1375 +#, kde-format +msgid "Do you really want to delete the theme \"%1\"? This can not be undone." +msgstr "Esteu segur que voleu suprimir el tema «%1»? Això no es pot desfer." + +#: syntax/katethemeconfig.cpp:1377 +#, kde-format +msgid "Delete Nevertheless" +msgstr "Suprimeix malgrat tot" + +#: syntax/katethemeconfig.cpp:1419 +#, kde-format +msgid "Copy theme" +msgstr "Copia el tema" + +#: syntax/katethemeconfig.cpp:1420 +#, kde-format +msgid "Name for copy of color theme \"%1\":" +msgstr "Nom per a la còpia del tema de color «%1»:" + +#: syntax/katethemeconfig.cpp:1432 +#, kde-format +msgid "" +"

The theme \"%1\" already exists.

Please choose a different theme " +"name.

" +msgstr "

El tema %1 ja existeix.

Trieu un nom de tema diferent.

" + +#: syntax/katethemeconfig.cpp:1433 +#, kde-format +msgid "Copy Theme" +msgstr "Copia el tema" + +#: syntax/katethemeconfig.cpp:1486 syntax/katethemeconfig.cpp:1491 +#, kde-format +msgid "Color Themes" +msgstr "Temes de color" + +#: utils/kateautoindent.cpp:88 +#, kde-format +msgctxt "Autoindent mode" +msgid "None" +msgstr "Cap" + +#: utils/kateautoindent.cpp:92 +#, kde-format +msgctxt "Autoindent mode" +msgid "Normal" +msgstr "Normal" + +#: utils/katebookmarks.cpp:49 +#, kde-format +msgid "Toggle &Bookmark" +msgstr "Canvia el &punt" + +#: utils/katebookmarks.cpp:53 +#, kde-format +msgid "If a line has no bookmark then add one, otherwise remove it." +msgstr "" +"Si una línia no disposa de punt, llavors n'hi afegirà un, d'altra manera " +"l'eliminarà." + +#: utils/katebookmarks.cpp:56 +#, kde-format +msgid "Clear &All Bookmarks" +msgstr "Neteja tots els &punts" + +#: utils/katebookmarks.cpp:59 +#, kde-format +msgid "Remove all bookmarks of the current document." +msgstr "Elimina tots els punts del document actual." + +#: utils/katebookmarks.cpp:62 utils/katebookmarks.cpp:219 +#, kde-format +msgid "Next Bookmark" +msgstr "Punt següent" + +#: utils/katebookmarks.cpp:66 +#, kde-format +msgid "Go to the next bookmark." +msgstr "Va cap al punt següent." + +#: utils/katebookmarks.cpp:69 utils/katebookmarks.cpp:220 +#, kde-format +msgid "Previous Bookmark" +msgstr "Punt anterior" + +#: utils/katebookmarks.cpp:73 +#, kde-format +msgid "Go to the previous bookmark." +msgstr "Va cap al punt anterior." + +#: utils/katebookmarks.cpp:76 +#, kde-format +msgid "&Bookmarks" +msgstr "&Punts" + +#: utils/katebookmarks.cpp:192 +#, kde-format +msgid "&Next: %1 - \"%2\"" +msgstr "&Següent: %1 - «%2»" + +#: utils/katebookmarks.cpp:198 +#, kde-format +msgid "&Previous: %1 - \"%2\"" +msgstr "&Anterior: %1 - «%2»" + +#: utils/katecmds.cpp:53 +#, kde-format +msgid "

indent

Indents the selected lines or the current line

" +msgstr "

indent

Sagna les línies seleccionades o la línia actual.

" + +#: utils/katecmds.cpp:58 +#, kde-format +msgid "

unindent

Unindents the selected lines or current line.

" +msgstr "" +"

unindent

Treu el sagnat de les línies seleccionades o la línia " +"actual.

" + +#: utils/katecmds.cpp:63 +#, kde-format +msgid "" +"

cleanindent

Cleans up the indentation of the selected lines or " +"current line according to the indentation settings in the document.

" +msgstr "" +"

cleanindent

Treu el sagnat de les línies seleccionades o la línia " +"actual d'acord amb les opcions de sagnat que teniu establertes al document." + +#: utils/katecmds.cpp:68 +#, kde-format +msgid "" +"

comment

Inserts comment markers to make the selection or selected " +"lines or current line a comment according to the text format as defined by " +"the syntax highlight definition for the document.

" +msgstr "" +"

comment

Insereix marques de comentari fent que la selecció, les " +"línies seleccionades o la línia actual siguin un comentari d'acord amb el " +"format de text que s'hagi definit a la sintaxi de ressaltat per al document." +"

" + +#: utils/katecmds.cpp:74 +#, kde-format +msgid "" +"

uncomment

Removes comment markers from the selection or selected " +"lines or current line according to the text format as defined by the syntax " +"highlight definition for the document.

" +msgstr "" +"

uncomment

Elimina les marques de comentari de la selecció, de les " +"línies seleccionades o la línia actual, d'acord amb el format del text tal " +"com està definit per la definició de ressaltat de la sintaxi per al document." +"

" + +#: utils/katecmds.cpp:80 +#, kde-format +msgid "" +"

goto line number

This command navigates to the specified " +"line number.

" +msgstr "" +"

goto número de línia

Aquesta ordre va al número de línia " +"especificada.

" + +#: utils/katecmds.cpp:85 +#, kde-format +msgid "" +"

set-indent-pasted-text enable

If enabled, indentation of " +"text pasted from the clipboard is adjusted using the current indenter.

Possible true values: 1 on true
possible false values: 0 off false" +msgstr "" +"

set-indent-pasted-text enable

Si està activada, el sagnat " +"del text enganxat del porta-retalls s'ajustarà utilitzant l'indentador " +"actual.

Els valors possibles de cert: 1, on, true
Valors possibles " +"de fals: 0, off, false

" + +#: utils/katecmds.cpp:91 +#, kde-format +msgid "Deletes the current line." +msgstr "Suprimeix la línia actual." + +#: utils/katecmds.cpp:95 +#, kde-format +msgid "" +"

set-tab-width width

Sets the tab width to the number " +"width

" +msgstr "" +"

set-tab-width amplada

Estableix l'amplada de la tabulació al " +"nombre amplada.

" + +#: utils/katecmds.cpp:100 +#, kde-format +msgid "" +"

set-replace-tab enable

If enabled, tabs are replaced with " +"spaces as you type.

Possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" +"

set-replace-tab enable

Si està activada, les tabulacions se " +"substitueixen per espais com si fossin teclejats.

Els valors possibles " +"de cert: 1 on true
Valors possibles de fals: 0 off false

" + +# skip-rule: kct-tab +#: utils/katecmds.cpp:107 +#, kde-format +msgid "" +"

set-show-tabs enable

If enabled, TAB characters and trailing " +"whitespace will be visualized by a small dot.

Possible true values: 1 " +"on true
possible false values: 0 off false

" +msgstr "" +"

set-show-tabs enable

Si està activada, els caràcters TAB i " +"els espais en blanc del final es visualitzaran com un punt petit.

Els " +"valors possibles de cert: 1 on true
Valors possibles de fals: 0 off " +"false

" + +#: utils/katecmds.cpp:114 +#, kde-format +msgid "" +"

set-remove-trailing-spaces mode

Removes the trailing spaces " +"in the document depending on the mode.

Possible values:" +"

  • none: never remove trailing spaces.
  • modified: " +"remove trailing spaces only of modified lines.
  • all: remove " +"trailing spaces in the entire document.

" +msgstr "" +"

set-remove-trailing-spaces mode

Elimina els espais del final " +"del document depenent del mode.

Valors possibles:" +"

  • none: mai eliminis els espais del final.
  • modified: elimina els espais del final només de les línies modificades.
  • " +"
  • all: elimina els espais del final de tot el document.
" + +#: utils/katecmds.cpp:125 +#, kde-format +msgid "" +"

set-indent-width width

Sets the indentation width to the " +"number width. Used only if you are indenting with spaces.

" +msgstr "" +"

set-indent-width amplada

Estableix l'amplada del sagnat al " +"nombre amplada. Només s'usa si se sagna amb espais.

" + +#: utils/katecmds.cpp:130 +#, kde-format +msgid "" +"

set-indent-mode mode

The mode parameter is a value as seen " +"in the Tools - Indentation menu

" +msgstr "" +"

set-indent-mode mode

El paràmetre mode és un valor com es " +"veu en el menú «Eines → Sagnat».

" + +#: utils/katecmds.cpp:135 +#, kde-format +msgid "" +"

set-auto-indent enable

Enable or disable autoindentation.

possible true values: 1 on true
possible false values: 0 off false" +msgstr "" +"

set-auto-indent enable

Activa o desactiva el sagnat " +"automàtic.

Els valors possibles de cert: 1 on true
Valors " +"possibles de fals: 0 off false

" + +#: utils/katecmds.cpp:142 +#, kde-format +msgid "" +"

set-line-numbers enable

Sets the visibility of the line " +"numbers pane.

possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" +"

set-line-numbers enable

Estableix la visibilitat de la " +"subfinestra dels números de línia.

Els valors possibles de cert: 1 on " +"true
Valors possibles de fals: 0 off false

" + +#: utils/katecmds.cpp:149 +#, kde-format +msgid "" +"

set-folding-markers enable

Sets the visibility of the " +"folding markers pane.

possible true values: 1 on true
possible " +"false values: 0 off false

" +msgstr "" +"

set-folding-markers enable

Estableix la visibilitat de la " +"subfinestra de marques de plegat.

Els valors possibles de cert: 1 on " +"true
Valors possibles de fals: 0 off false

" + +#: utils/katecmds.cpp:156 +#, kde-format +msgid "" +"

set-icon-border enable

Sets the visibility of the icon " +"border.

possible true values: 1 on true
possible false values: 0 " +"off false

" +msgstr "" +"

set-icon-border enable

Estableix la visibilitat de la vora " +"d'icones.

Els valors possibles de cert: 1 on true
Valors possibles " +"de fals: 0 off false

" + +#: utils/katecmds.cpp:163 +#, kde-format +msgid "" +"

set-word-wrap enable

Enables dynamic word wrap according to " +"enable

possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" +"

set-word-wrap enable

Activa l'ajust dinàmic de les paraules " +"d'acord amb enable

Els valors possibles de cert: 1 on true
Valors possibles de fals: 0 off false

" + +#: utils/katecmds.cpp:170 +#, kde-format +msgid "" +"

set-word-wrap-column width

Sets the line width for hard " +"wrapping to width. This is used if you are having your text wrapped " +"automatically.

" +msgstr "" +"

set-word-wrap-column amplada

Estableix l'amplada per " +"a l'ajust de la línia. Això s'usa si teniu l'ajust de línia automàtic del " +"text.

" + +#: utils/katecmds.cpp:175 +#, kde-format +msgid "" +"

set-replace-tabs-save enable

When enabled, tabs will be " +"replaced with whitespace whenever the document is saved.

possible " +"true values: 1 on true
possible false values: 0 off false

" +msgstr "" +"

set-replace-tabs-save enable

Quan està activada, els " +"tabuladors se substituiran per espais en blanc sempre que el document es " +"desi.

Els valors possibles de cert: 1 on true
Valors possibles de " +"fals: 0 off false

" + +#: utils/katecmds.cpp:182 +#, kde-format +msgid "" +"

set-highlight highlight

Sets the syntax highlighting system " +"for the document. The argument must be a valid highlight name, as seen in " +"the Tools → Highlighting menu. This command provides an autocompletion list " +"for its argument.

" +msgstr "" +"

set-highlight ressaltat

Estableix el sistema de ressaltat de " +"sintaxi per al document. L'argument ha de ser un nom de ressaltat vàlid, com " +"es veu en el menú «Eines → Ressaltat». Aquesta ordre proporciona una llista " +"de compleció automàtica per al seu argument.

" + +#: utils/katecmds.cpp:188 +#, kde-format +msgid "

set-mode mode

Sets the mode as seen in Tools - Mode

" +msgstr "" +"

set-mode mode

Estableix el mode com es veu a «Eines → Mode»" + +#: utils/katecmds.cpp:193 +#, kde-format +msgid "" +"

set-show-indent enable

If enabled, indentation will be " +"visualized by a vertical dotted line.

possible true values: 1 on " +"true
possible false values: 0 off false

" +msgstr "" +"

set-show-indent enable

Si està activada, el sagnat es veurà " +"com una línia puntejada vertical.

Els valors possibles de cert: 1 on " +"true
Valors possibles de fals: 0 off false

" + +#: utils/katecmds.cpp:199 +#, kde-format +msgid "

Open the Print dialog to print the current document.

" +msgstr "

Obre el diàleg d'impressió per a imprimir el document actual.

" + +#: utils/katecmds.cpp:314 utils/katecmds.cpp:341 +#, kde-format +msgid "Missing argument. Usage: %1 " +msgstr "Falta un argument. Useu: %1 " + +#: utils/katecmds.cpp:327 +#, kde-format +msgid "No such highlighting '%1'" +msgstr "No es troba el ressaltat «%1»" + +#: utils/katecmds.cpp:333 +#, kde-format +msgid "No such mode '%1'" +msgstr "No es troba el mode «%1»" + +#: utils/katecmds.cpp:346 +#, kde-format +msgid "Failed to convert argument '%1' to integer." +msgstr "Ha fallat en convertir l'argument «%1» a un nombre enter." + +#: utils/katecmds.cpp:350 utils/katecmds.cpp:355 +#, kde-format +msgid "Width must be at least 1." +msgstr "L'amplada almenys hauria de ser 1." + +#: utils/katecmds.cpp:360 +#, kde-format +msgid "Column must be at least 1." +msgstr "La columna almenys hauria de ser 1." + +#: utils/katecmds.cpp:390 +#, kde-format +msgid "Usage: %1 on|off|1|0|true|false" +msgstr "Useu: %1 on|off|1|0|true|false" + +#: utils/katecmds.cpp:417 +#, kde-format +msgid "Bad argument '%1'. Usage: %2 on|off|1|0|true|false" +msgstr "Argument erroni «%1». Useu: %2 on|off|1|0|true|false" + +#: utils/katecmds.cpp:421 +#, kde-format +msgid "" +"Usage: set-remove-trailing-spaces 0|-|none or 1|+|mod|modified or 2|*|all" +msgstr "" +"Sintaxi: set-remove-trailing-spaces 0|-|none or 1|+|mod|modified or 2|*|all" + +#: utils/katecmds.cpp:435 vimode/cmds.cpp:168 +#, kde-format +msgid "Unknown command '%1'" +msgstr "Ordre desconeguda «%1»" + +#: utils/katecmds.cpp:493 +#, kde-format +msgid "" +"

char identifier

This command allows you to insert literal " +"characters by their numerical identifier, in decimal, octal or hexadecimal " +"form.

Examples:

  • char 234
  • char 0x1234

" +msgstr "" +"

char identificador

Aquesta ordre permet inserir caràcters " +"literals pel seu identificador numèric, en format decimal, octal o " +"hexadecimal.

Exemples:

  • char 234
  • char 0x1234

" + +#: utils/katecmds.cpp:560 +#, kde-format +msgid "" +"

date or date format

Inserts a date/time string as defined by " +"the specified format, or the format yyyy-MM-dd hh:mm:ss if none is specified." +"

Possible format specifiers are:
dThe day as " +"number without a leading zero (1-31).
ddThe day as " +"number with a leading zero (01-31).
dddThe " +"abbreviated localized day name (e.g. 'Mon'..'Sun').
ddddThe long localized day name (e.g. 'Monday'..'Sunday').
MThe month as number without a leading zero (1-12).
MMThe month as number with a leading zero (01-12).
MMMThe abbreviated localized month name (e.g. " +"'Jan'..'Dec').
yyThe year as two digit number " +"(00-99).
yyyyThe year as four digit number " +"(1752-8000).
hThe hour without a leading zero " +"(0..23 or 1..12 if AM/PM display).
hhThe hour with " +"a leading zero (00..23 or 01..12 if AM/PM display).
mThe minute without a leading zero (0..59).
mmThe minute with a leading zero (00..59).
sThe second without a leading zero (0..59).
ssThe second with a leading zero (00..59).
zThe milliseconds without leading zeroes (0..999).
zzzThe milliseconds with leading zeroes (000..999).
APUse AM/PM display. AP will be replaced by either " +"\"AM\" or \"PM\".
apUse am/pm display. ap will be " +"replaced by either \"am\" or \"pm\".

" +msgstr "" +"

data o data format

Insereix una cadena de data/hora amb el " +"format definit pel format introduït, o el format yyyy-MM-dd hh:mm:ss si no " +"se n'introdueix cap.

Les especificacions de format possibles són:" +"
dEl dia com a nombre sense cap zero inicial (1-31).
ddEl dia com a nombre amb un zero inicial (01-31).
dddEl nom abreviat de dia traduït (p. ex. " +"«Dl»..«Dm»).
ddddEl nom llarg de dia traduït (p. " +"ex. «Dilluns»..«Diumenge»).
MEl mes com a nombre " +"sense cap zero inicial (1-12).
MMEl mes com a " +"nombre amb un zero inicial (01-12).
MMMEl nom " +"abreviat de mes traduït (p. ex. «Gen»..«Des»).
yyL'any com a nombre de dos dígits (00-99).
yyyyL'any com a nombre de quatre dígits (1752-8000).
hL'hora sense cap zero inicial (0..23 o 1..12 si es mostra AM/PM).
hhL'hora amb un zero inicial (00..23 o 01..12 si es " +"mostra AM/PM).
mEl minut sense cap zero inicial " +"(0..59).
mmEl minut amb un zero inicial (00..59).
sEl segon sense cap zero inicial (0..59).
ssEl segon amb un zero inicial (00..59).
zEls mil·lisegons sense cap zero inicial (0..999).
zzzEls mil·lisegons amb zeros inicials (000..999).
APUsa la visualització AM/PM. AP se substituirà per «AM» " +"o «PM».
apUsa la visualització am/pm. ap se " +"substituirà per «am» o «pm».

" + +#: utils/katecmds.cpp:621 +#, kde-format +msgid "Remove Duplicate Lines" +msgstr "Elimina les línies duplicades" + +#: utils/katecmds.cpp:622 +#, kde-format +msgid "Remove Duplicates and Sort Text Alphabetically" +msgstr "Elimina els duplicats i ordena alfabèticament el text" + +#: utils/katecmds.cpp:623 +#, kde-format +msgid "Sort Text Naturally" +msgstr "Ordena naturalment el text" + +#: utils/katecmds.cpp:624 +#, kde-format +msgid "Sort Selected Text Alphabetically" +msgstr "Ordena alfabèticament el text seleccionat" + +#: utils/katecmds.cpp:699 +#, kde-format +msgid "" +"

sort

Sort the selected text or whole document if there is no " +"selection

" +msgstr "" +"

sort

Ordena el text seleccionat o tot el document si no s'ha " +"seleccionat res

" + +#: utils/katecmds.cpp:703 +#, kde-format +msgid "" +"

uniq

Remove duplicate lines from the selected text or whole " +"document if there is no selection.

" +msgstr "" +"

uniq

Elimina les línies duplicades del text seleccionat o de tot el " +"document si no s'ha seleccionat res

" + +#: utils/katecmds.cpp:707 +#, kde-format +msgid "" +"

sortuniq

Sort the selected text or whole document and then remove " +"all duplicate lines.

" +msgstr "" +"

sortuniq

Ordena el text seleccionat o tot el document i després " +"elimina totes les línies duplicades

" + +#: utils/katecmds.cpp:711 +#, kde-format +msgid "" +"

natsort

Sort the selected text or whole document in natural order." +"
Here is an example to show the difference to the normal sort method:" +"
sort(a10, a1, a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" +msgstr "" +"

natsort

Ordena el text seleccionat o tot el document en l'ordre " +"natural.
Aquí hi ha un exemple per a veure la diferència amb el mètode " +"d'ordenació normal:
sort(a10, a1, a2) => a1, a10, a2
natsort(a10, a1, " +"a2) => a1, a2, a10

" + +#: utils/kateglobal.cpp:60 +#, kde-format +msgid "Kate Part" +msgstr "Part del Kate" + +#: utils/kateglobal.cpp:62 +#, kde-format +msgid "Embeddable editor component" +msgstr "Component d'edició incrustable" + +#: utils/kateglobal.cpp:64 +#, kde-format +msgid "(c) 2000-2025 The Kate Authors" +msgstr "(c) 2000-2025 The Kate Authors" + +#: utils/kateglobal.cpp:84 +#, kde-format +msgid "Christoph Cullmann" +msgstr "Christoph Cullmann" + +#: utils/kateglobal.cpp:84 +#, kde-format +msgid "Maintainer" +msgstr "Mantenidor" + +#: utils/kateglobal.cpp:85 +#, kde-format +msgid "Dominik Haumann" +msgstr "Dominik Haumann" + +#: utils/kateglobal.cpp:85 utils/kateglobal.cpp:86 utils/kateglobal.cpp:87 +#: utils/kateglobal.cpp:90 utils/kateglobal.cpp:93 utils/kateglobal.cpp:98 +#, kde-format +msgid "Core Developer" +msgstr "Desenvolupador principal" + +#: utils/kateglobal.cpp:86 +#, kde-format +msgid "Milian Wolff" +msgstr "Milian Wolff" + +#: utils/kateglobal.cpp:87 +#, kde-format +msgid "Joseph Wenninger" +msgstr "Joseph Wenninger" + +#: utils/kateglobal.cpp:88 +#, kde-format +msgid "Erlend Hamberg" +msgstr "Erlend Hamberg" + +#: utils/kateglobal.cpp:89 +#, kde-format +msgid "Bernhard Beschow" +msgstr "Bernhard Beschow" + +#: utils/kateglobal.cpp:89 utils/kateglobal.cpp:105 +#, kde-format +msgid "Developer" +msgstr "Desenvolupador" + +#: utils/kateglobal.cpp:90 +#, kde-format +msgid "Anders Lund" +msgstr "Anders Lund" + +#: utils/kateglobal.cpp:91 +#, kde-format +msgid "Michel Ludwig" +msgstr "Michel Ludwig" + +#: utils/kateglobal.cpp:91 +#, kde-format +msgid "On-the-fly spell checking" +msgstr "Verificació ortogràfica al vol" + +#: utils/kateglobal.cpp:92 +#, kde-format +msgid "Pascal Létourneau" +msgstr "Pascal Létourneau" + +#: utils/kateglobal.cpp:92 +#, kde-format +msgid "Large scale bug fixing" +msgstr "Correcció dels errors a gran escala" + +#: utils/kateglobal.cpp:93 +#, kde-format +msgid "Hamish Rodda" +msgstr "Hamish Rodda" + +#: utils/kateglobal.cpp:94 +#, kde-format +msgid "Waldo Bastian" +msgstr "Waldo Bastian" + +#: utils/kateglobal.cpp:94 +#, kde-format +msgid "The cool buffersystem" +msgstr "El fantàstic sistema de memòria intermèdia" + +#: utils/kateglobal.cpp:95 +#, kde-format +msgid "Charles Samuels" +msgstr "Charles Samuels" + +#: utils/kateglobal.cpp:95 +#, kde-format +msgid "The Editing Commands" +msgstr "Les ordres d'edició" + +#: utils/kateglobal.cpp:96 +#, kde-format +msgid "Matt Newell" +msgstr "Matt Newell" + +#: utils/kateglobal.cpp:96 +#, kde-format +msgid "Testing, ..." +msgstr "Proves..." + +#: utils/kateglobal.cpp:97 +#, kde-format +msgid "Michael Bartl" +msgstr "Michael Bartl" + +#: utils/kateglobal.cpp:97 +#, kde-format +msgid "Former Core Developer" +msgstr "Antic desenvolupador principal" + +#: utils/kateglobal.cpp:98 +#, kde-format +msgid "Michael McCallum" +msgstr "Michael McCallum" + +#: utils/kateglobal.cpp:99 +#, kde-format +msgid "Michael Koch" +msgstr "Michael Koch" + +#: utils/kateglobal.cpp:99 +#, kde-format +msgid "KWrite port to KParts" +msgstr "Port del KWrite a KParts" + +#: utils/kateglobal.cpp:100 +#, kde-format +msgid "Christian Gebauer" +msgstr "Christian Gebauer" + +#: utils/kateglobal.cpp:101 +#, kde-format +msgid "Simon Hausmann" +msgstr "Simon Hausmann" + +#: utils/kateglobal.cpp:102 +#, kde-format +msgid "Glen Parker" +msgstr "Glen Parker" + +#: utils/kateglobal.cpp:102 +#, kde-format +msgid "KWrite Undo History, Kspell integration" +msgstr "Historial desfés del KWrite, integració amb el Kspell" + +#: utils/kateglobal.cpp:103 +#, kde-format +msgid "Scott Manson" +msgstr "Scott Manson" + +#: utils/kateglobal.cpp:103 +#, kde-format +msgid "KWrite XML Syntax highlighting support" +msgstr "Implementació del ressaltat de la sintaxi XML al KWrite" + +#: utils/kateglobal.cpp:104 +#, kde-format +msgid "John Firebaugh" +msgstr "John Firebaugh" + +#: utils/kateglobal.cpp:104 +#, kde-format +msgid "Patches and more" +msgstr "Pedaços i més" + +#: utils/kateglobal.cpp:105 +#, kde-format +msgid "Andreas Kling" +msgstr "Andreas Kling" + +#: utils/kateglobal.cpp:106 +#, kde-format +msgid "Mirko Stocker" +msgstr "Mirko Stocker" + +#: utils/kateglobal.cpp:106 +#, kde-format +msgid "Various bugfixes" +msgstr "Diverses correccions d'errors" + +#: utils/kateglobal.cpp:107 +#, kde-format +msgid "Matthew Woehlke" +msgstr "Matthew Woehlke" + +#: utils/kateglobal.cpp:107 +#, kde-format +msgid "Selection, KColorScheme integration" +msgstr "Selecció i integració del KColorScheme" + +#: utils/kateglobal.cpp:108 +#, kde-format +msgid "Sebastian Pipping" +msgstr "Sebastian Pipping" + +#: utils/kateglobal.cpp:109 +#, kde-format +msgid "Search bar back- and front-end" +msgstr "Dorsal i frontal de la barra de cerca" + +#: utils/kateglobal.cpp:112 +#, kde-format +msgid "Jochen Wilhelmy" +msgstr "Jochen Wilhelmy" + +#: utils/kateglobal.cpp:112 +#, kde-format +msgid "Original KWrite Author" +msgstr "Autor original del KWrite" + +#: utils/kateglobal.cpp:113 +#, kde-format +msgid "Gerald Senarclens de Grancy" +msgstr "Gerald Senarclens de Grancy" + +#: utils/kateglobal.cpp:113 +#, kde-format +msgid "QA and Scripting" +msgstr "Control de qualitat i creació de scripts" + +#: utils/kateglobal.cpp:115 +#, kde-format +msgid "Matteo Merli" +msgstr "Matteo Merli" + +#: utils/kateglobal.cpp:115 +#, kde-format +msgid "Highlighting for RPM Spec-Files, Perl, Diff and more" +msgstr "Ressaltat per als fitxers «spec» dels RPM, Perl, diff i més" + +#: utils/kateglobal.cpp:116 +#, kde-format +msgid "Rocky Scaletta" +msgstr "Rocky Scaletta" + +#: utils/kateglobal.cpp:116 +#, kde-format +msgid "Highlighting for VHDL" +msgstr "Ressaltat per a VHDL" + +#: utils/kateglobal.cpp:117 +#, kde-format +msgid "Yury Lebedev" +msgstr "Yury Lebedev" + +#: utils/kateglobal.cpp:117 +#, kde-format +msgid "Highlighting for SQL" +msgstr "Ressaltat per a SQL" + +#: utils/kateglobal.cpp:118 +#, kde-format +msgid "Chris Ross" +msgstr "Chris Ross" + +#: utils/kateglobal.cpp:118 +#, kde-format +msgid "Highlighting for Ferite" +msgstr "Ressaltat per a Ferite" + +#: utils/kateglobal.cpp:119 +#, kde-format +msgid "Nick Roux" +msgstr "Nick Roux" + +#: utils/kateglobal.cpp:119 +#, kde-format +msgid "Highlighting for ILERPG" +msgstr "Ressaltat per a ILERPG" + +#: utils/kateglobal.cpp:120 +#, kde-format +msgid "Carsten Niehaus" +msgstr "Carsten Niehaus" + +#: utils/kateglobal.cpp:120 +#, kde-format +msgid "Highlighting for LaTeX" +msgstr "Ressaltat per a LaTeX" + +#: utils/kateglobal.cpp:121 +#, kde-format +msgid "Per Wigren" +msgstr "Per Wigren" + +#: utils/kateglobal.cpp:121 +#, kde-format +msgid "Highlighting for Makefiles, Python" +msgstr "Ressaltat per als fitxers en Make, Python" + +#: utils/kateglobal.cpp:122 +#, kde-format +msgid "Jan Fritz" +msgstr "Jan Fritz" + +#: utils/kateglobal.cpp:122 +#, kde-format +msgid "Highlighting for Python" +msgstr "Ressaltat per a Python" + +#: utils/kateglobal.cpp:123 +#, kde-format +msgid "Daniel Naber" +msgstr "Daniel Naber" + +#: utils/kateglobal.cpp:124 +#, kde-format +msgid "Roland Pabel" +msgstr "Roland Pabel" + +#: utils/kateglobal.cpp:124 +#, kde-format +msgid "Highlighting for Scheme" +msgstr "Ressaltat per a Scheme" + +#: utils/kateglobal.cpp:125 +#, kde-format +msgid "Cristi Dumitrescu" +msgstr "Cristi Dumitrescu" + +#: utils/kateglobal.cpp:125 +#, kde-format +msgid "PHP Keyword/Datatype list" +msgstr "Llista de les paraules clau/tipus de dades del PHP" + +#: utils/kateglobal.cpp:126 +#, kde-format +msgid "Carsten Pfeiffer" +msgstr "Carsten Pfeiffer" + +#: utils/kateglobal.cpp:126 +#, kde-format +msgid "Very nice help" +msgstr "Ajuda molt valuosa" + +#: utils/kateglobal.cpp:127 +#, kde-format +msgid "Bruno Massa" +msgstr "Bruno Massa" + +#: utils/kateglobal.cpp:127 +#, kde-format +msgid "Highlighting for Lua" +msgstr "Ressaltat per a Lua" + +#: utils/kateglobal.cpp:129 +#, kde-format +msgid "All people who have contributed and I have forgotten to mention" +msgstr "Tothom que ha col·laborat i als que he oblidat de mencionar" + +#: utils/kateglobal.cpp:131 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Sebastià Pla i Sanz,Antoni Bella" + +#: utils/kateglobal.cpp:131 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "sps@sastia.com,antonibella5@yahoo.com" + +#: utils/kateglobal.cpp:255 +#, kde-format +msgid "Configure" +msgstr "Configura" + +#: utils/katesedcmd.cpp:268 +#, kde-format +msgid "replace with %1?" +msgstr "Substitueixo per %1?" + +#: utils/katesedcmd.cpp:274 +#, kde-format +msgctxt "%2 is the translation of the next message" +msgid "1 replacement done on %2" +msgid_plural "%1 replacements done on %2" +msgstr[0] "S'ha fet 1 substitució a %2" +msgstr[1] "S'han fet %1 substitucions a %2" + +#: utils/katesedcmd.cpp:277 +#, kde-format +msgctxt "substituted into the previous message" +msgid "1 line" +msgid_plural "%1 lines" +msgstr[0] "1 línia" +msgstr[1] "%1 línies" + +#: utils/katevariableexpansionhelpers.cpp:77 +#, kde-format +msgid "" +msgstr "" + +#: utils/katevariableexpansionhelpers.cpp:161 +#, kde-format +msgid "Insert variable" +msgstr "Insereix una variable" + +#: utils/katevariableexpansionhelpers.cpp:165 +#, kde-format +msgid "Variables" +msgstr "Variables" + +#: utils/katevariableexpansionhelpers.cpp:169 +#, kde-format +msgid "Filter" +msgstr "Filtre" + +#: utils/katevariableexpansionhelpers.cpp:188 +#: utils/katevariableexpansionhelpers.cpp:217 +#, kde-format +msgid "Please select a variable." +msgstr "Seleccioneu una variable." + +#: utils/katevariableexpansionhelpers.cpp:206 +#, kde-format +msgid "Current value: %1" +msgstr "Valor actual: %1" + +#: utils/katevariableexpansionhelpers.cpp:214 +#, kde-format +msgid "Current value: %1" +msgstr "Valor actual: %1" + +#: utils/katevariableexpansionmanager.cpp:86 +#, kde-format +msgid "File base name without path and suffix of the current document." +msgstr "Nom base del fitxer sense el camí ni el sufix del document actual." + +#: utils/katevariableexpansionmanager.cpp:94 +#, kde-format +msgid "File extension of the current document." +msgstr "Extensió de fitxer del document actual." + +#: utils/katevariableexpansionmanager.cpp:102 +#, kde-format +msgid "File name without path of the current document." +msgstr "Nom del fitxer sense el camí del document actual." + +#: utils/katevariableexpansionmanager.cpp:110 +#, kde-format +msgid "Full path of the current document including the file name." +msgstr "Camí complet del document actual incloent el nom de fitxer." + +#: utils/katevariableexpansionmanager.cpp:118 +#, kde-format +msgid "Contents of the current document." +msgstr "Contingut del document actual." + +#: utils/katevariableexpansionmanager.cpp:125 +#, kde-format +msgid "Full path of the current document excluding the file name." +msgstr "Camí complet del document actual excloent el nom de fitxer." + +#: utils/katevariableexpansionmanager.cpp:133 +#, kde-format +msgid "" +"Full document path including file name, with native path separator " +"(backslash on Windows)." +msgstr "" +"Camí complet del document incloent el nom de fitxer, amb el separador de " +"camí natiu (barra inversa al Windows)." + +#: utils/katevariableexpansionmanager.cpp:141 +#, kde-format +msgid "" +"Full document path excluding file name, with native path separator " +"(backslash on Windows)." +msgstr "" +"Camí complet del document excloent el nom de fitxer, amb el separador de " +"camí natiu (barra inversa al Windows)." + +#: utils/katevariableexpansionmanager.cpp:149 +#, kde-format +msgid "" +"Line number of the text cursor position in current document (starts with 0)." +msgstr "" +"Número de línia de la posició del cursor de text al document actual (comença " +"per 0)." + +#: utils/katevariableexpansionmanager.cpp:156 +#, kde-format +msgid "" +"Column number of the text cursor position in current document (starts with " +"0)." +msgstr "" +"Número de columna de la posició del cursor de text al document actual " +"(comença per 0)." + +#: utils/katevariableexpansionmanager.cpp:163 +#, kde-format +msgid "X component in global screen coordinates of the cursor position." +msgstr "" +"Component X de les coordenades de la pantalla global de la posició del " +"cursor." + +#: utils/katevariableexpansionmanager.cpp:170 +#, kde-format +msgid "Y component in global screen coordinates of the cursor position." +msgstr "" +"Component Y de les coordenades de la pantalla global de la posició del " +"cursor." + +#: utils/katevariableexpansionmanager.cpp:177 +#, kde-format +msgid "Text selection of the current document." +msgstr "Selecció de text del document actual." + +#: utils/katevariableexpansionmanager.cpp:184 +#, kde-format +msgid "Start line of selected text of the current document." +msgstr "Línia d'inici del text seleccionat del document actual." + +#: utils/katevariableexpansionmanager.cpp:191 +#, kde-format +msgid "Start column of selected text of the current document." +msgstr "Columna inicial del text seleccionat del document actual." + +#: utils/katevariableexpansionmanager.cpp:198 +#, kde-format +msgid "End line of selected text of the current document." +msgstr "Línia final del text seleccionat del document actual." + +#: utils/katevariableexpansionmanager.cpp:205 +#, kde-format +msgid "End column of selected text of the current document." +msgstr "Columna final del text seleccionat del document actual." + +#: utils/katevariableexpansionmanager.cpp:212 +#, kde-format +msgid "Number of rows of the current document." +msgstr "Nombre de files del document actual." + +#: utils/katevariableexpansionmanager.cpp:219 +#, kde-format +msgid "Read a document variable." +msgstr "Llegeix una variable de document." + +#: utils/katevariableexpansionmanager.cpp:227 +#, kde-format +msgid "The current date in current locale format." +msgstr "La data actual en la configuració regional actual." + +#: utils/katevariableexpansionmanager.cpp:234 +#, kde-format +msgid "The current date (ISO)." +msgstr "La data actual (ISO)." + +#: utils/katevariableexpansionmanager.cpp:241 +#, kde-format +msgid "The current date (QDate formatstring)." +msgstr "La data actual (format de cadena QDate)." + +#: utils/katevariableexpansionmanager.cpp:249 +#, kde-format +msgid "The current time in current locale format." +msgstr "L'hora actual en la configuració regional actual." + +#: utils/katevariableexpansionmanager.cpp:256 +#, kde-format +msgid "The current time (ISO)." +msgstr "L'hora actual (ISO)." + +#: utils/katevariableexpansionmanager.cpp:263 +#, kde-format +msgid "The current time (QTime formatstring)." +msgstr "L'hora actual (format de cadena QTime)." + +#: utils/katevariableexpansionmanager.cpp:271 +#, kde-format +msgid "Access to environment variables." +msgstr "Accés a les variables d'entorn." + +#: utils/katevariableexpansionmanager.cpp:279 +#, kde-format +msgid "Evaluate simple JavaScript statements." +msgstr "Avalua una sentència JavaScript senzilla." + +#: utils/katevariableexpansionmanager.cpp:289 +#, kde-format +msgid "Encode text to make it URL compatible." +msgstr "Codifica el text per a fer-lo compatible amb un URL." + +#: utils/katevariableexpansionmanager.cpp:297 +#, kde-format +msgid "Generate a new UUID." +msgstr "Genera un UUID nou." + +#: variableeditor/variableeditor.cpp:40 +#, kde-format +msgid "Kate Handbook." +msgstr "Manual del Kate." + +#: variableeditor/variableeditor.cpp:213 +#, kde-format +msgid "true" +msgstr "cert" + +#: variableeditor/variableeditor.cpp:214 +#, kde-format +msgid "false" +msgstr "fals" + +#: variableeditor/variableeditor.cpp:350 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "none" +msgstr "sense" + +#: variableeditor/variableeditor.cpp:351 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "modified" +msgstr "modificat" + +#: variableeditor/variableeditor.cpp:352 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "all" +msgstr "tot" + +#: variableeditor/variablelineedit.cpp:42 +#, kde-format +msgid "Show list of valid variables." +msgstr "Mostra la llista de variables vàlides." + +#: variableeditor/variablelineedit.cpp:115 +#, kde-format +msgctxt "short translation please" +msgid "Enable automatic insertion of brackets." +msgstr "Activa la inserció automàtica de parèntesis." + +#: variableeditor/variablelineedit.cpp:121 +#, kde-format +msgctxt "short translation please" +msgid "Set the number of autocenter lines." +msgstr "Defineix el nombre de línies d'autocentrat." + +#: variableeditor/variablelineedit.cpp:126 +#, kde-format +msgctxt "short translation please" +msgid "Set the document background color." +msgstr "Defineix el color de fons del document." + +#: variableeditor/variablelineedit.cpp:131 +#, kde-format +msgctxt "short translation please" +msgid "Pressing backspace in leading whitespace unindents." +msgstr "" +"Prement la tecla de retrocés en un espai en blanc inicial es desfà el sagnat." + +#: variableeditor/variablelineedit.cpp:139 +#, kde-format +msgctxt "short translation please" +msgid "Enable block selection mode." +msgstr "Activa el mode de selecció per blocs." + +#: variableeditor/variablelineedit.cpp:144 +#, kde-format +msgctxt "short translation please" +msgid "Enable the byte order mark (BOM) when saving Unicode files." +msgstr "Activa la marca d'ordre de bytes en desar fitxers Unicode." + +#: variableeditor/variablelineedit.cpp:149 +#, kde-format +msgctxt "short translation please" +msgid "Set the color for the bracket highlight." +msgstr "Defineix el color per al ressaltat de parèntesis." + +#: variableeditor/variablelineedit.cpp:154 +#, kde-format +msgctxt "short translation please" +msgid "Set the background color for the current line." +msgstr "Defineix el color de fons per a la línia actual." + +#: variableeditor/variablelineedit.cpp:160 +#, kde-format +msgctxt "short translation please" +msgid "Set the default dictionary used for spell checking." +msgstr "" +"Defineix el diccionari predeterminat emprat per a la verificació ortogràfica." + +#: variableeditor/variablelineedit.cpp:165 +#, kde-format +msgctxt "short translation please" +msgid "Enable dynamic word wrap of long lines." +msgstr "Activa l'ajust dinàmic de les paraules de les línies llargues." + +#: variableeditor/variablelineedit.cpp:172 +#, kde-format +msgctxt "short translation please" +msgid "Sets the end of line mode." +msgstr "Defineix el mode del final de línia." + +#: variableeditor/variablelineedit.cpp:177 +#, kde-format +msgctxt "short translation please" +msgid "" +"Enable whether pressing enter will insert selected auto completion item." +msgstr "" +"Activeu si en prémer Retorn s'inserirà l'element seleccionat de compleció " +"automàtica." + +#: variableeditor/variablelineedit.cpp:182 +#, kde-format +msgctxt "short translation please" +msgid "Enable folding markers in the editor border." +msgstr "Activa les marques de plegat en la vora de l'editor." + +#: variableeditor/variablelineedit.cpp:187 +#, kde-format +msgctxt "short translation please" +msgid "Enable folding preview in the editor border." +msgstr "Activa la vista prèvia del text plegat a la vora de l'editor." + +#: variableeditor/variablelineedit.cpp:193 +#, kde-format +msgctxt "short translation please" +msgid "Set the point size of the document font." +msgstr "Defineix la mida del punt de la lletra del document." + +#: variableeditor/variablelineedit.cpp:198 +#, kde-format +msgctxt "short translation please" +msgid "Set the font of the document." +msgstr "Defineix la lletra del document." + +#: variableeditor/variablelineedit.cpp:214 +#, kde-format +msgctxt "short translation please" +msgid "Set the syntax highlighting." +msgstr "Defineix el ressaltat de la sintaxi." + +#: variableeditor/variablelineedit.cpp:219 +#, kde-format +msgctxt "short translation please" +msgid "Set the icon bar color." +msgstr "Defineix el color de la barra d'icones." + +#: variableeditor/variablelineedit.cpp:224 +#, kde-format +msgctxt "short translation please" +msgid "Enable the icon border in the editor view." +msgstr "Activa la vora de les icones en la vista de l'editor." + +#: variableeditor/variablelineedit.cpp:229 +#, kde-format +msgctxt "short translation please" +msgid "Set the auto indentation style." +msgstr "Defineix l'estil per al sagnat automàtic." + +#: variableeditor/variablelineedit.cpp:234 +#, kde-format +msgctxt "short translation please" +msgid "Adjust indentation of text pasted from the clipboard." +msgstr "Ajusta el sagnat del text enganxat des del porta-retalls." + +#: variableeditor/variablelineedit.cpp:240 +#, kde-format +msgctxt "short translation please" +msgid "Set the indentation depth for each indent level." +msgstr "Defineix la profunditat del sagnat per a cada nivell de sagnat." + +#: variableeditor/variablelineedit.cpp:245 +#, kde-format +msgctxt "short translation please" +msgid "Allow odd indentation level (no multiple of indent width)." +msgstr "" +"Permet un nivell de sagnat senar (no múltiple de l'amplada del sagnat)." + +#: variableeditor/variablelineedit.cpp:250 +#, kde-format +msgctxt "short translation please" +msgid "Show line numbers." +msgstr "Mostra els números de les línies." + +#: variableeditor/variablelineedit.cpp:255 +#, kde-format +msgctxt "short translation please" +msgid "Insert newline at end of file on save." +msgstr "Insereix una línia nova al final del fitxer en desar." + +#: variableeditor/variablelineedit.cpp:260 +#, kde-format +msgctxt "short translation please" +msgid "Enable overwrite mode in the document." +msgstr "Activa el mode de sobreescriptura en el document." + +#: variableeditor/variablelineedit.cpp:265 +#, kde-format +msgctxt "short translation please" +msgid "Enable persistent text selection." +msgstr "Activa la selecció persistent del text." + +#: variableeditor/variablelineedit.cpp:270 +#, kde-format +msgctxt "short translation please" +msgid "Replace tabs with spaces when saving the document." +msgstr "Substitueix les tabulacions per espais en desar el document." + +#: variableeditor/variablelineedit.cpp:275 +#, kde-format +msgctxt "short translation please" +msgid "Replace tabs with spaces." +msgstr "Substitueix les tabulacions per espais." + +#: variableeditor/variablelineedit.cpp:280 +#, kde-format +msgctxt "short translation please" +msgid "Remove trailing spaces when saving the document." +msgstr "Elimina els espais finals en desar el document." + +#: variableeditor/variablelineedit.cpp:285 +#, kde-format +msgctxt "short translation please" +msgid "Show scrollbar minimap." +msgstr "Mostra un mapa en miniatura a la barra de desplaçament." + +#: variableeditor/variablelineedit.cpp:290 +#, kde-format +msgctxt "short translation please" +msgid "Show scrollbar preview." +msgstr "Mostra una vista prèvia a la barra de desplaçament." + +#: variableeditor/variablelineedit.cpp:301 +#, kde-format +msgctxt "short translation please" +msgid "Set the color scheme." +msgstr "Defineix l'esquema de color." + +#: variableeditor/variablelineedit.cpp:306 +#, kde-format +msgctxt "short translation please" +msgid "Set the text selection color." +msgstr "Defineix el color de la selecció de text." + +#: variableeditor/variablelineedit.cpp:311 +#, kde-format +msgctxt "short translation please" +msgid "Visualize tabs and trailing spaces." +msgstr "Visualitza les tabulacions i els espais finals." + +#: variableeditor/variablelineedit.cpp:316 +#, kde-format +msgctxt "short translation please" +msgid "Enable smart home navigation." +msgstr "Activa l'ús de la navegació intel·ligent." + +# skip-rule: kct-tab +#: variableeditor/variablelineedit.cpp:321 +#, kde-format +msgctxt "short translation please" +msgid "Pressing TAB key indents." +msgstr "Prement la tecla Tab, se sagna." + +#: variableeditor/variablelineedit.cpp:327 +#, kde-format +msgctxt "short translation please" +msgid "Set the tab display width." +msgstr "Defineix l'amplada de la tabulació." + +#: variableeditor/variablelineedit.cpp:333 +#, kde-format +msgctxt "short translation please" +msgid "Set the number of undo steps to remember (0 equals infinity)." +msgstr "" +"Defineix el nombre de passos a desfer que es poden recordar (0 equival a " +"infinit)." + +#: variableeditor/variablelineedit.cpp:339 +#, kde-format +msgctxt "short translation please" +msgid "Set the word wrap column." +msgstr "Defineix la columna d'ajust de les paraules." + +#: variableeditor/variablelineedit.cpp:344 +#, kde-format +msgctxt "short translation please" +msgid "Set the word wrap marker color." +msgstr "Defineix el color del marcador d'ajust de les paraules." + +#: variableeditor/variablelineedit.cpp:349 +#, kde-format +msgctxt "short translation please" +msgid "Enable word wrap while typing text." +msgstr "Activa l'ajust de les paraules en teclejar text." + +#: view/katestatusbar.cpp:114 +#, kde-format +msgid "Current cursor position. Click to go to a specific line." +msgstr "" +"Posició actual del cursor. Feu un clic per a anar a una línia específica." + +#: view/katestatusbar.cpp:127 +#, kde-format +msgid "Insert mode and VI input mode indicator. Click to change the mode." +msgstr "" +"Indicador del mode d'inserció i del mode d'entrada del VI. Feu clic per a " +"canviar el mode." + +#: view/katestatusbar.cpp:135 +#, kde-format +msgid "Change dictionary" +msgstr "Canvia el diccionari" + +#: view/katestatusbar.cpp:161 view/katestatusbar.cpp:488 +#, kde-format +msgid "Tab Width" +msgstr "Amplada de la tabulació" + +#: view/katestatusbar.cpp:169 view/katestatusbar.cpp:503 +#, kde-format +msgid "Indentation Width" +msgstr "Amplada del sagnat" + +#: view/katestatusbar.cpp:177 +#, kde-format +msgid "Indentation Mode" +msgstr "Mode de sagnat" + +#: view/katestatusbar.cpp:179 +#, kde-format +msgid "Tabulators && Spaces" +msgstr "Tabuladors &i espais" + +#: view/katestatusbar.cpp:182 +#, kde-format +msgid "Tabulators" +msgstr "Tabulacions" + +#: view/katestatusbar.cpp:185 +#, kde-format +msgid "Spaces" +msgstr "Espais" + +#: view/katestatusbar.cpp:197 +#, kde-format +msgid "Encoding" +msgstr "Codificació" + +#: view/katestatusbar.cpp:200 view/katestatusbar.cpp:201 +#, kde-format +msgid "End of line type" +msgstr "Tipus de final de línia" + +#: view/katestatusbar.cpp:207 +#, kde-format +msgid "Mode" +msgstr "Mode" + +#: view/katestatusbar.cpp:209 view/kateview.cpp:703 +#, kde-format +msgid "" +"Here you can choose which mode should be used for the current document. This " +"will influence the highlighting and folding being used, for example." +msgstr "" +"Aquí podeu seleccionar el mode que s'hauria d'usar en el document actual. " +"Influirà en el ressaltat emprat i en el plegat, per exemple." + +#: view/katestatusbar.cpp:216 +#, kde-format +msgid "Syntax highlighting" +msgstr "Ressaltat de la sintaxi" + +#: view/katestatusbar.cpp:261 +#, kde-format +msgid "Line/Column compact mode" +msgstr "Mode compacte de línia/columna" + +#: view/katestatusbar.cpp:307 +#, kde-format +msgid "[BLOCK] %1" +msgstr "[BLOCK] %1" + +#: view/katestatusbar.cpp:323 +#, kde-format +msgid "%1/%2:%3" +msgstr "%1/%2:%3" + +#: view/katestatusbar.cpp:325 +#, kde-format +msgid "%1:%2" +msgstr "%1:%2" + +#: view/katestatusbar.cpp:329 +#, kde-format +msgid "Line %1 of %2, Column %3" +msgstr "Línia %1 de %2, columna %3" + +#: view/katestatusbar.cpp:331 +#, kde-format +msgid "Line %1, Column %2" +msgstr "Línia: %1, columna: %2" + +#: view/katestatusbar.cpp:405 +#, kde-format +msgid "Soft Tabs: %1" +msgstr "Tabulacions suaus: %1" + +#: view/katestatusbar.cpp:406 +#, kde-format +msgid "Soft Tabs: %1 (%2)" +msgstr "Tabulacions suaus: %1 (%2)" + +#: view/katestatusbar.cpp:407 +#, kde-format +msgid "Tab Size: %1" +msgstr "Mida de la tabulació: %1" + +#: view/katestatusbar.cpp:408 +#, kde-format +msgid "Indent/Tab: %1/%2" +msgstr "Sagnat/Tabulació: %1/%2" + +#: view/katestatusbar.cpp:448 view/katestatusbar.cpp:474 +#, kde-format +msgctxt "@item:inmenu" +msgid "Other…" +msgstr "Altres…" + +#: view/katestatusbar.cpp:476 +#, kde-format +msgid "Other (%1)" +msgid_plural "Other (%1)" +msgstr[0] "Altre (%1)" +msgstr[1] "Altres (%1)" + +#: view/katestatusbar.cpp:488 +#, kde-format +msgid "Please specify the wanted tab width:" +msgstr "Especifiqueu l'amplada desitjada de la tabulació:" + +#: view/katestatusbar.cpp:504 +#, kde-format +msgid "Please specify the wanted indentation width:" +msgstr "Especifiqueu l'amplada desitjada del sagnat:" + +#: view/katestatusbar.cpp:567 +#, kde-format +msgctxt "" +"%1 and %3 are the selected words/chars count, %2 and %4 are the total words/" +"chars count." +msgid "Words %1/%2, Chars %3/%4" +msgstr "Paraules %1/%2, caràcters %3/%4" + +#: view/katestatusbar.cpp:573 +#, kde-format +msgctxt "%1 and %2 are the total words/chars count." +msgid "Words %1, Chars %2" +msgstr "Paraules %1, caràcters %2" + +#: view/katestatusbar.cpp:588 +#, kde-format +msgid "Zoom: %1%" +msgstr "Zoom: %1%" + +#: view/kateview.cpp:440 +#, kde-format +msgid "Cut the selected text and move it to the clipboard" +msgstr "Talla el text seleccionat i mou-lo al porta-retalls" + +#: view/kateview.cpp:445 +#, kde-format +msgid "Paste previously copied or cut clipboard contents" +msgstr "Enganxa el contingut del porta-retalls prèviament copiat o tallat" + +#: view/kateview.cpp:448 +#, kde-format +msgid "" +"Use this command to copy the currently selected text to the system clipboard." +msgstr "" +"Empreu aquesta ordre per a copiar el text actualment seleccionat al porta-" +"retalls del sistema." + +#: view/kateview.cpp:454 +#, kde-format +msgid "Clipboard &History Paste" +msgstr "Enganxa l'&historial del porta-retalls" + +#: view/kateview.cpp:459 +#, kde-format +msgid "Paste Selection" +msgstr "Enganxa la selecció" + +#: view/kateview.cpp:461 +#, kde-format +msgid "Paste previously mouse selection contents" +msgstr "Enganxa el contingut de la selecció prèvia del ratolí" + +#: view/kateview.cpp:465 +#, kde-format +msgid "Paste From File" +msgstr "Enganxar des d'un fitxer" + +#: view/kateview.cpp:469 +#, kde-format +msgid "Copy File Location" +msgstr "Copia la ubicació del fitxer" + +#: view/kateview.cpp:470 +#, kde-format +msgid "Copy the current file name and line number" +msgstr "Copia el nom del fitxer actual i el número de la línia" + +#: view/kateview.cpp:473 +#, kde-format +msgid "Swap with Clipboard Contents" +msgstr "Commuta amb el contingut del porta-retalls" + +#: view/kateview.cpp:474 +#, kde-format +msgid "Swap the selected text with the clipboard contents" +msgstr "Commuta el text seleccionat amb el contingut del porta-retalls" + +#: view/kateview.cpp:477 +#, kde-format +msgid "Take Screenshot of Selection" +msgstr "Pren una captura de pantalla de la selecció" + +#: view/kateview.cpp:481 +#, kde-format +msgid "Save the current document" +msgstr "Desa el document actual" + +#: view/kateview.cpp:484 +#, kde-format +msgid "Revert the most recent editing actions" +msgstr "Desfés els canvis d'edició més recents" + +#: view/kateview.cpp:487 +#, kde-format +msgid "Revert the most recent undo operation" +msgstr "Desfés les operacions de desfer més recents" + +#: view/kateview.cpp:491 +#, kde-format +msgid "&Scripts" +msgstr "&Scripts" + +#: view/kateview.cpp:495 +#, kde-format +msgid "Apply &Word Wrap" +msgstr "Aplica l'ajust de les ¶ules" + +#: view/kateview.cpp:497 +#, kde-format +msgid "" +"Use this to wrap the current line, or to reformat the selected lines as " +"paragraph, to fit the 'Wrap words at' setting in the configuration dialog." +"

This is a static word wrap, meaning the document is changed." +msgstr "" +"Useu-ho per a ajustar la línia actual, o per a tornar a donar format a les " +"línies seleccionades com a paràgraf, segons l'opció «Ajusta les paraules a» " +"del diàleg de configuració.

Això és un ajust estàtic de " +"paraules, i vol dir que el document canviarà." + +#: view/kateview.cpp:503 +#, kde-format +msgid "&Clean Indentation" +msgstr "&Neteja el sagnat" + +#: view/kateview.cpp:505 +#, kde-format +msgid "" +"Use this to clean the indentation of a selected block of text (only tabs/" +"only spaces).

You can configure whether tabs should be honored " +"and used or replaced with spaces, in the configuration dialog." +msgstr "" +"Empreu-ho per a eliminar el sagnat d'un bloc de text seleccionat (només les " +"tabulacions/només els espais).

En el diàleg de configuració " +"podreu establir si els tabuladors haurien de ser reconeguts i emprats, o " +"substituïts per espais." + +#: view/kateview.cpp:510 +#, kde-format +msgid "Convert Indentation to Spaces" +msgstr "Converteix el sagnat a espais" + +#: view/kateview.cpp:517 +#, kde-format +msgid "Convert Indentation to Tabs" +msgstr "Converteix el sagnat a tabulacions" + +#: view/kateview.cpp:532 +#, kde-format +msgid "&Format Indentation" +msgstr "&Format del sagnat" + +#: view/kateview.cpp:533 +#, kde-format +msgid "" +"Use this to auto indent the current line or block of text to its proper " +"indent level." +msgstr "" +"Useu-ho per a sagnar automàticament la línia actual o el bloc de text al " +"nivell de sagnat adequat." + +#: view/kateview.cpp:537 +#, kde-format +msgctxt "@action" +msgid "&Align On…" +msgstr "&Alinea a…" + +# skip-rule: t-2p_sp,t-pu_desp +#: view/kateview.cpp:539 +#, kde-format +msgid "" +"This command aligns lines in the selected block or whole document on the " +"column given by a regular expression that you will be prompted for.

If you give an empty pattern it will align on the first non-blank " +"character by default.
If the pattern has a capture it will indent on " +"the captured match.

Examples:
With '-' it will insert " +"spaces before the first '-' of each lines to align them all on the same " +"column.
With ':\\s+(.)' it will insert spaces before the first non-" +"blank character that occurs after a colon to align them all on the same " +"column." +msgstr "" +"Aquesta ordre alinea les línies del bloc seleccionat o de tot el document a " +"la columna indicada per una expressió regular que se us demanarà.

Si proporcioneu un patró buit, s'alinearà al primer caràcter no blanc de " +"manera predeterminada.
Si el patró té una captura, se sagnarà en la " +"coincidència capturada.

Exemples:
Amb «-» s'inseriran " +"espais abans del primer «-» de cada línia per a alinear-les totes a la " +"mateixa columna.
Amb «:\\s+(.)» s'inseriran espais abans del primer " +"caràcter no blanc que hi hagi després de dos punts (:) per a alinear-les " +"totes a la mateixa columna." + +#: view/kateview.cpp:550 +#, kde-format +msgid "C&omment" +msgstr "C&omenta" + +#: view/kateview.cpp:553 +#, kde-format +msgid "" +"This command comments out the current line or a selected block of text.

The characters for single/multiple line comments are defined within " +"the language's highlighting." +msgstr "" +"Aquesta ordre comenta la línia actual o un bloc de text seleccionat.

Els caràcters per als comentaris d'una sola línia o múltiple estan " +"definits dins del ressaltat del llenguatge." + +#: view/kateview.cpp:558 +#, kde-format +msgid "Go to Previous Editing Location" +msgstr "Ves a la ubicació d'edició anterior" + +#: view/kateview.cpp:564 +#, kde-format +msgid "Go to Next Editing Location" +msgstr "Ves a la ubicació d'edició següent" + +#: view/kateview.cpp:570 +#, kde-format +msgid "Unco&mment" +msgstr "Desco&menta" + +#: view/kateview.cpp:573 +#, kde-format +msgid "" +"This command removes comments from the current line or a selected block of " +"text.

The characters for single/multiple line comments are " +"defined within the language's highlighting." +msgstr "" +"Aquesta ordre elimina els comentaris de l'actual línia o d'un bloc de text " +"seleccionat.

Els caràcters per als comentaris d'una sola línia o " +"múltiple estan definits dins del ressaltat del llenguatge." + +#: view/kateview.cpp:578 +#, kde-format +msgid "Toggle Comment" +msgstr "Commuta els comentaris" + +#: view/kateview.cpp:582 +#, kde-format +msgid "&Read Only Mode" +msgstr "Mode de només &lectura" + +#: view/kateview.cpp:583 +#, kde-format +msgid "Lock/unlock the document for writing" +msgstr "Bloqueja/desbloqueja el document per a escriptura" + +#: view/kateview.cpp:588 +#, kde-format +msgid "&Force RTL Direction" +msgstr "&Força la direcció RTL" + +#: view/kateview.cpp:589 +#, kde-format +msgid "Force RTL Text Direction" +msgstr "Força la direcció de text RTL (dreta a esquerra)" + +#: view/kateview.cpp:599 +#, kde-format +msgid "Uppercase" +msgstr "Majúscules" + +#: view/kateview.cpp:602 +#, kde-format +msgid "" +"Convert the selection to uppercase, or the character to the right of the " +"cursor if no text is selected." +msgstr "" +"Converteix la selecció a majúscules, o el caràcter a la dreta del cursor si " +"no hi ha text seleccionat." + +#: view/kateview.cpp:608 +#, kde-format +msgid "Lowercase" +msgstr "Minúscules" + +#: view/kateview.cpp:611 +#, kde-format +msgid "" +"Convert the selection to lowercase, or the character to the right of the " +"cursor if no text is selected." +msgstr "" +"Converteix la selecció a minúscules, o el caràcter a la dreta del cursor si " +"no hi ha text seleccionat." + +#: view/kateview.cpp:617 +#, kde-format +msgid "Capitalize" +msgstr "Escriu en majúscula la primera lletra" + +#: view/kateview.cpp:620 +#, kde-format +msgid "" +"Capitalize the selection, or the word under the cursor if no text is " +"selected." +msgstr "" +"Escriu en majúscula la primera lletra de la selecció o a la paraula a la " +"dreta del cursor si no hi ha text seleccionat." + +#: view/kateview.cpp:625 +#, kde-format +msgid "Join Lines" +msgstr "Uneix les línies" + +#: view/kateview.cpp:630 +#, kde-format +msgid "Invoke Code Completion" +msgstr "Invoca la compleció del codi" + +#: view/kateview.cpp:631 +#, kde-format +msgid "" +"Manually invoke command completion, usually by using a shortcut bound to " +"this action." +msgstr "" +"Invoca manualment la compleció d'ordres, usant normalment una drecera " +"vinculada amb aquesta acció." + +#: view/kateview.cpp:636 +#, kde-format +msgid "Remove Trailing Spaces" +msgstr "Elimina els espais finals" + +#: view/kateview.cpp:654 +#, kde-format +msgid "Print the current document." +msgstr "Imprimeix el document actual." + +#: view/kateview.cpp:657 +#, kde-format +msgid "Show print preview of current document" +msgstr "Mostra una vista prèvia d'impressió del document actual" + +#: view/kateview.cpp:661 +#, kde-format +msgid "Reloa&d" +msgstr "Reca&rrega" + +#: view/kateview.cpp:663 +#, kde-format +msgid "Reload the current document from disk." +msgstr "Recarrega el document actual des del disc." + +#: view/kateview.cpp:667 +#, kde-format +msgid "Save the current document to disk, with a name of your choice." +msgstr "Desa el document actual al disc, amb un nom de la vostra elecció." + +#: view/kateview.cpp:669 +#, kde-format +msgctxt "@action" +msgid "Save As with Encodin&g…" +msgstr "Desa com amb la codi&ficació…" + +#: view/kateview.cpp:675 +#, kde-format +msgctxt "@action" +msgid "Save Cop&y As…" +msgstr "Desa una còp&ia com a…" + +#: view/kateview.cpp:676 +#, kde-format +msgid "Save a copy of the current document to disk." +msgstr "Desa una còpia del document actual al disc." + +#: view/kateview.cpp:680 +#, kde-format +msgid "" +"This command opens a dialog and lets you choose a line that you want the " +"cursor to move to." +msgstr "" +"Aquesta ordre obre un diàleg que us permetrà escollir una línia a la qual " +"desitgeu moure el cursor." + +#: view/kateview.cpp:684 +#, kde-format +msgid "Go to Previous Modified Line" +msgstr "Ves a la línia modificada anterior" + +#: view/kateview.cpp:685 +#, kde-format +msgid "Move upwards to the previous modified line." +msgstr "Mou cap amunt fins a la línia modificada anterior." + +#: view/kateview.cpp:690 +#, kde-format +msgid "Go to Next Modified Line" +msgstr "Ves a la línia modificada següent" + +#: view/kateview.cpp:691 +#, kde-format +msgid "Move downwards to the next modified line." +msgstr "Mou cap avall fins a la línia modificada següent." + +#: view/kateview.cpp:695 +#, kde-format +msgctxt "@action" +msgid "&Configure Editor…" +msgstr "&Configura l'editor…" + +#: view/kateview.cpp:697 +#, kde-format +msgid "Configure various aspects of this editor." +msgstr "Configura diversos aspectes d'aquest editor." + +#: view/kateview.cpp:700 +#, kde-format +msgid "&Mode" +msgstr "&Mode" + +#: view/kateview.cpp:706 +#, kde-format +msgid "&Highlighting" +msgstr "&Ressaltat" + +#: view/kateview.cpp:708 +#, kde-format +msgid "Here you can choose how the current document should be highlighted." +msgstr "Aquí podeu seleccionar com s'hauria de ressaltar el document actual." + +#: view/kateview.cpp:711 +#, kde-format +msgid "&Editor Color Theme" +msgstr "Tema de color de l'&editor" + +#: view/kateview.cpp:717 +#, kde-format +msgid "&Indentation" +msgstr "&Sagnat" + +#: view/kateview.cpp:726 +#, kde-format +msgid "Select the entire text of the current document." +msgstr "Selecciona tot el text del document actual." + +#: view/kateview.cpp:729 +#, kde-format +msgid "" +"If you have selected something within the current document, this will no " +"longer be selected." +msgstr "" +"Si heu seleccionat alguna cosa dins del document actual, ja no se " +"seleccionarà novament." + +#: view/kateview.cpp:733 +#, kde-format +msgid "Enlarge Font" +msgstr "Augmenta la lletra" + +#: view/kateview.cpp:735 +#, kde-format +msgid "This increases the display font size." +msgstr "Augmenta la mida de la lletra de visualització." + +#: view/kateview.cpp:742 +#, kde-format +msgid "Shrink Font" +msgstr "Minva la lletra" + +#: view/kateview.cpp:744 +#, kde-format +msgid "This decreases the display font size." +msgstr "Minva la mida de la lletra de visualització." + +#: view/kateview.cpp:751 +#, kde-format +msgid "Reset Font Size" +msgstr "Reinicia la mida de la lletra" + +#: view/kateview.cpp:753 +#, kde-format +msgid "This resets the display font size." +msgstr "Reinicia la mida de la lletra de visualització." + +#: view/kateview.cpp:756 +#, kde-format +msgid "Bl&ock Selection Mode" +msgstr "Mode de selecció per b&locs" + +#: view/kateview.cpp:759 +#, kde-format +msgid "" +"This command allows switching between the normal (line based) selection mode " +"and the block selection mode." +msgstr "" +"Aquesta ordre permet canviar entre el mode normal de selecció (basat en " +"línies) i el mode de selecció per blocs." + +#: view/kateview.cpp:763 +#, kde-format +msgid "Switch to Next Input Mode" +msgstr "Canvia al mode d'entrada següent" + +#: view/kateview.cpp:765 +#, kde-format +msgid "Switch to the next input mode." +msgstr "Canvia al mode d'entrada següent." + +#: view/kateview.cpp:768 +#, kde-format +msgid "Overwr&ite Mode" +msgstr "Mode so&breescriure" + +#: view/kateview.cpp:771 +#, kde-format +msgid "" +"Choose whether you want the text you type to be inserted or to overwrite " +"existing text." +msgstr "" +"Escolliu si desitgeu que el text introduït sigui inserit o que sobreescrigui " +"el text existent." + +#: view/kateview.cpp:775 +#, kde-format +msgid "Show Whitespace" +msgstr "Mostra els espais en blanc" + +#: view/kateview.cpp:778 +#, kde-format +msgid "" +"If this option is checked, whitespaces in this document will be visible.

This is only a view option, meaning the document will not be changed." +msgstr "" +"Si aquesta opció està activada, els espais en blanc en aquest document seran " +"visibles.

Això només és una opció de visualització, i vol dir que " +"el document no es canviarà." + +#: view/kateview.cpp:782 +#, kde-format +msgid "&Dynamic Word Wrap" +msgstr "Ajust &dinàmic de les paraules" + +#: view/kateview.cpp:786 +#, kde-format +msgid "" +"If this option is checked, the text lines will be wrapped at the view border " +"on the screen.

This is only a view option, meaning the document " +"will not be changed." +msgstr "" +"Si aquesta opció està activada, les línies de text s'ajustaran a la vora de " +"la vista en la pantalla.

Això només és una opció de " +"visualització, i vol dir que el document no es canviarà." + +#: view/kateview.cpp:790 +#, kde-format +msgid "Dynamic Word Wrap Indicators" +msgstr "Indicadors de l'ajust dinàmic de les paraules" + +#: view/kateview.cpp:792 +#, kde-format +msgid "Choose when the Dynamic Word Wrap Indicators should be displayed" +msgstr "" +"Escolliu quan s'han de mostrar els indicadors d'ajust dinàmic de les paraules" + +#: view/kateview.cpp:794 +#, kde-format +msgid "&Off" +msgstr "&Apagat" + +#: view/kateview.cpp:794 +#, kde-format +msgid "Follow &Line Numbers" +msgstr "Segueix els números de &línia" + +#: view/kateview.cpp:794 +#, kde-format +msgid "&Always On" +msgstr "Sempre &actiu" + +#: view/kateview.cpp:798 +#, kde-format +msgid "Static Word Wrap" +msgstr "Ajust estàtic de les paraules" + +#: view/kateview.cpp:800 +#, kde-format +msgid "" +"If this option is checked, the text lines will be wrapped at the column " +"defined in the editing properties." +msgstr "" +"Si aquesta opció està activada, les línies de text s'ajustaran a la columna " +"definida en les propietats d'edició." + +#: view/kateview.cpp:807 +#, kde-format +msgid "Show Static &Word Wrap Marker" +msgstr "Mostra els marcadors d'ajust estàtic de les ¶ules" + +#: view/kateview.cpp:810 +#, kde-format +msgid "" +"Show/hide the Word Wrap Marker, a vertical line drawn at the word wrap " +"column as defined in the editing properties" +msgstr "" +"Mostra/oculta el marcador per a l'ajust de les paraules, dibuixa una línia " +"vertical a la columna d'ajust de les paraules tal com estigui definit en les " +"propietats de l'edició" + +#: view/kateview.cpp:814 +#, kde-format +msgid "Show Folding &Markers" +msgstr "Mostra els marcadors &plegables" + +#: view/kateview.cpp:816 +#, kde-format +msgid "" +"You can choose if the codefolding marks should be shown, if codefolding is " +"possible." +msgstr "" +"Podeu escollir si s'haurien de mostrar les marques del plegat de codi, si és " +"que això és possible." + +#: view/kateview.cpp:819 +#, kde-format +msgid "Show &Icon Border" +msgstr "Mostra la vora de les &icones" + +#: view/kateview.cpp:821 +#, kde-format +msgid "" +"Show/hide the icon border.

The icon border shows bookmark " +"symbols, for instance." +msgstr "" +"Mostra/oculta la vora de les icones.

Per exemple, la vora de les " +"icones mostrarà símbols per als punts." + +#: view/kateview.cpp:824 +#, kde-format +msgid "Show &Line Numbers" +msgstr "Mostra els números de les &línies" + +#: view/kateview.cpp:826 +#, kde-format +msgid "Show/hide the line numbers on the left hand side of the view." +msgstr "Mostra/oculta els números de les línies a l'esquerra de la vista." + +#: view/kateview.cpp:829 +#, kde-format +msgid "Show Scroll&bar Marks" +msgstr "Mostra les marques de la &barra de desplaçament" + +#: view/kateview.cpp:831 +#, kde-format +msgid "" +"Show/hide the marks on the vertical scrollbar.

The marks show " +"bookmarks, for instance." +msgstr "" +"Mostra/oculta les marques a la barra de desplaçament vertical.

Per exemple, les marques mostren els punts." + +#: view/kateview.cpp:834 +#, kde-format +msgid "Show Scrollbar Mini-Map" +msgstr "Mostra un mapa en miniatura a la barra de desplaçament" + +#: view/kateview.cpp:836 +#, kde-format +msgid "" +"Show/hide the mini-map on the vertical scrollbar.

The mini-map " +"shows an overview of the whole document." +msgstr "" +"Mostra/oculta el mapa en miniatura a la barra de desplaçament vertical.

El mapa en miniatura mostra un resum de tot el document." + +#. i18n("Show the whole document in the Mini-Map"), this); +#. ac->addAction(QLatin1String("view_scrollbar_minimap_all"), a); +#. a->setWhatsThis(i18n("Display the whole document in the mini-map.

With this option set the whole document will be visible in the +#. mini-map.")); connect(a, SIGNAL(triggered(bool)), SlOT(toggleScrollBarMiniMapAll())); connect(m_toggleScrollBarMiniMap, SIGNAL(triggered(bool)), +#. m_toggleScrollBarMiniMapAll, SLOT(setEnabled(bool))); +#: view/kateview.cpp:848 +#, kde-format +msgid "Show Non-Printable Spaces" +msgstr "Mostra els espais no imprimibles" + +#: view/kateview.cpp:850 +#, kde-format +msgid "Show/hide bounding box around non-printable spaces" +msgstr "Mostra/oculta el contenidor al voltant dels espais no imprimibles" + +#: view/kateview.cpp:854 +#, kde-format +msgid "Switch to Command Line" +msgstr "Canvia a la línia d'ordres" + +#: view/kateview.cpp:856 +#, kde-format +msgid "Show/hide the command line on the bottom of the view." +msgstr "Mostra/oculta la línia d'ordres a la part inferior de la vista." + +#: view/kateview.cpp:859 +#, kde-format +msgid "Input Modes" +msgstr "Modes d'entrada" + +#: view/kateview.cpp:868 +#, kde-format +msgid "Activate/deactivate %1" +msgstr "Activa/desactiva %1" + +#: view/kateview.cpp:878 +#, kde-format +msgid "&End of Line" +msgstr "&Final de línia" + +#: view/kateview.cpp:880 +#, kde-format +msgid "Choose which line endings should be used, when you save the document" +msgstr "Escolliu quin final de línia s'haurà d'emprar en desar el document" + +#: view/kateview.cpp:881 +#, kde-format +msgctxt "@item:inmenu End of Line" +msgid "&UNIX" +msgstr "&UNIX" + +#: view/kateview.cpp:882 +#, kde-format +msgctxt "@item:inmenu End of Line" +msgid "&Windows/DOS" +msgstr "&Windows/DOS" + +#: view/kateview.cpp:883 +#, kde-format +msgctxt "@item:inmenu End of Line" +msgid "&Macintosh" +msgstr "&Macintosh" + +#: view/kateview.cpp:888 +#, kde-format +msgid "Add &Byte Order Mark (BOM)" +msgstr "Afegeix una marca d'ordre de &byte (BOM)" + +#: view/kateview.cpp:891 +#, kde-format +msgid "" +"Enable/disable adding of byte order marks for UTF-8/UTF-16 encoded files " +"while saving" +msgstr "" +"Activa/desactiva l'addició de marques d'ordre de bytes en desar fitxers " +"codificats amb UTF-8/UTF-16" + +#: view/kateview.cpp:895 +#, kde-format +msgid "E&ncoding" +msgstr "&Codificació" + +#: view/kateview.cpp:899 +#, kde-format +msgid "Look up the first occurrence of a piece of text or regular expression." +msgstr "Cerca la primera ocurrència d'un tros de text o expressió regular." + +#: view/kateview.cpp:903 +#, kde-format +msgid "Find Selected" +msgstr "Cerca la selecció" + +#: view/kateview.cpp:905 +#, kde-format +msgid "Finds next occurrence of selected text." +msgstr "Cerca l'ocurrència següent del text seleccionat." + +#: view/kateview.cpp:909 +#, kde-format +msgid "Find Selected Backwards" +msgstr "Cerca la selecció cap enrere" + +#: view/kateview.cpp:911 +#, kde-format +msgid "Finds previous occurrence of selected text." +msgstr "Cerca l'ocurrència anterior del text seleccionat." + +#: view/kateview.cpp:915 +#, kde-format +msgid "Find and Select Next Occurrence" +msgstr "Cerca i selecciona l'ocurrència següent" + +#: view/kateview.cpp:917 +#, kde-format +msgid "Finds next occurrence of the word under cursor and add it to selection." +msgstr "" +"Cerca l'ocurrència següent de la paraula sota el cursor i l'afegeix a la " +"selecció." + +#: view/kateview.cpp:921 +#, kde-format +msgid "Mark Currently Selected Occurrence as Skipped" +msgstr "Marca l'ocurrència actualment seleccionada com a omesa" + +#: view/kateview.cpp:923 +#, kde-format +msgid "Marks the currently selected word as skipped." +msgstr "Marca la paraula actualment seleccionada com a omesa." + +#: view/kateview.cpp:927 +#, kde-format +msgid "Find and Select All Occurrences" +msgstr "Cerca i selecciona totes les ocurrències" + +#: view/kateview.cpp:929 +#, kde-format +msgid "Finds all occurrences of the word under cursor and selects them." +msgstr "" +"Cerca totes les ocurrències de la paraula sota el cursor i les selecciona." + +#: view/kateview.cpp:933 +#, kde-format +msgid "Look up the next occurrence of the search phrase." +msgstr "Cerca l'ocurrència següent de la frase de cerca." + +#: view/kateview.cpp:937 +#, kde-format +msgid "Look up the previous occurrence of the search phrase." +msgstr "Cerca l'ocurrència anterior de la frase de cerca." + +#: view/kateview.cpp:941 +#, kde-format +msgid "" +"Look up a piece of text or regular expression and replace the result with " +"some given text." +msgstr "" +"Cerca una part del text o expressió regular i substitueix el resultat amb el " +"text aportat." + +#: view/kateview.cpp:944 +#, kde-format +msgid "Add Cursors to Line Ends" +msgstr "Afegeix cursors als finals de línia" + +#: view/kateview.cpp:946 +#, kde-format +msgid "Creates a cursor at the end of every line in selection." +msgstr "Crea un cursor al final de cada línia de la selecció." + +#: view/kateview.cpp:950 +#, kde-format +msgid "Add Caret below Cursor" +msgstr "Afegeix un cursor (accent circumflex) sota el cursor" + +#: view/kateview.cpp:952 +#, kde-format +msgid "Adds a caret in the line below the current caret." +msgstr "" +"Afegeix un cursor (accent circumflex) a la línia sota el cursor (accent " +"circumflex) actual." + +#: view/kateview.cpp:956 +#, kde-format +msgid "Add Caret above Cursor" +msgstr "Afegeix un cursor (accent circumflex) sobre el cursor" + +#: view/kateview.cpp:958 +#, kde-format +msgid "Adds a caret in the line above the current caret." +msgstr "" +"Afegeix un cursor (accent circumflex) a la línia sobre el cursor (accent " +"circumflex) actual." + +#: view/kateview.cpp:962 +#, kde-format +msgid "Toggle Camel Case Cursor Movement" +msgstr "Commuta el moviment del cursor a les majúscules per parts" + +#: view/kateview.cpp:963 +#, kde-format +msgid "Toggle between normal word movement and camel case cursor movement." +msgstr "" +"Commuta entre el moviment del cursor normal i el moviment a les majúscules " +"per parts." + +#: view/kateview.cpp:967 +#, kde-format +msgid "Remove Cursors from Empty Lines" +msgstr "Elimina els cursors de les línies buides" + +#: view/kateview.cpp:968 +#, kde-format +msgid "Remove cursors from empty lines" +msgstr "Elimina els cursors de les línies buides" + +#: view/kateview.cpp:972 +#, kde-format +msgid "Automatic Spell Checking" +msgstr "Verificació automàtica de l'ortografia" + +#: view/kateview.cpp:973 +#, kde-format +msgid "Enable/disable automatic spell checking" +msgstr "Activa/desactiva la verificació automàtica de l'ortografia" + +#: view/kateview.cpp:979 +#, kde-format +msgctxt "@action" +msgid "Change Dictionary…" +msgstr "Canvia el diccionari…" + +#: view/kateview.cpp:980 +#, kde-format +msgid "Change the dictionary that is used for spell checking." +msgstr "Canvia el diccionari emprat per a la verificació ortogràfica." + +#: view/kateview.cpp:984 +#, kde-format +msgid "Clear Dictionary Ranges" +msgstr "Neteja l'abast dels diccionaris" + +#: view/kateview.cpp:986 +#, kde-format +msgid "" +"Remove all the separate dictionary ranges that were set for spell checking." +msgstr "" +"Elimina tots els diferents abasts dels diccionaris que es van definir per a " +"la verificació ortogràfica." + +#: view/kateview.cpp:992 +#, kde-format +msgid "Copy as &HTML" +msgstr "Copia com a &HTML" + +#: view/kateview.cpp:993 +#, kde-format +msgid "" +"Copy the selection as HTML, formatted using the current syntax highlighting " +"and color scheme settings." +msgstr "" +"Copia la selecció com a HTML, amb format utilitzant la configuració actual " +"per al ressaltat de la sintaxi i l'esquema de color." + +#: view/kateview.cpp:997 +#, kde-format +msgctxt "@action" +msgid "E&xport as HTML…" +msgstr "E&xporta com a HTML…" + +#: view/kateview.cpp:999 +#, kde-format +msgid "" +"This command allows you to export the current document with all highlighting " +"information into a HTML document." +msgstr "" +"Aquesta ordre us permet exportar el document actual amb tota la informació " +"del ressaltat en un document HTML." + +#: view/kateview.cpp:1038 +#, kde-format +msgid "Move Word Left" +msgstr "Mou una paraula a l'esquerra" + +#: view/kateview.cpp:1044 +#, kde-format +msgid "Select Character Left" +msgstr "Selecciona un caràcter a l'esquerra" + +#: view/kateview.cpp:1050 +#, kde-format +msgid "Select Word Left" +msgstr "Selecciona una paraula a l'esquerra" + +#: view/kateview.cpp:1060 +#, kde-format +msgid "Move Word Right" +msgstr "Mou una paraula a la dreta" + +#: view/kateview.cpp:1066 +#, kde-format +msgid "Select Character Right" +msgstr "Selecciona un caràcter a la dreta" + +#: view/kateview.cpp:1072 +#, kde-format +msgid "Select Word Right" +msgstr "Selecciona una paraula a la dreta" + +#: view/kateview.cpp:1082 +#, kde-format +msgid "Start the Marked Selection" +msgstr "Inicia la selecció marcada" + +#: view/kateview.cpp:1083 +#, kde-format +msgid "" +"Emulate the Emacs-like selection mode, where the beginning is marked and " +"then the selection is continuously updated." +msgstr "" +"Emula el mode de selecció similar a l'Emacs, on es marca l'inici i després " +"la selecció s'actualitza contínuament." + +#: view/kateview.cpp:1088 +#, kde-format +msgid "Move to Beginning of Line" +msgstr "Mou al començament de la línia" + +#: view/kateview.cpp:1094 +#, kde-format +msgid "Move to Beginning of Document" +msgstr "Mou al començament del document" + +#: view/kateview.cpp:1100 +#, kde-format +msgid "Select to Beginning of Line" +msgstr "Selecciona des del començament de la línia" + +#: view/kateview.cpp:1110 +#, kde-format +msgid "Select to Beginning of Document" +msgstr "Selecciona des del començament del document" + +#: view/kateview.cpp:1120 +#, kde-format +msgid "Move to End of Line" +msgstr "Mou al final de la línia" + +#: view/kateview.cpp:1126 +#, kde-format +msgid "Move to End of Document" +msgstr "Mou al final del document" + +#: view/kateview.cpp:1132 +#, kde-format +msgid "Select to End of Line" +msgstr "Selecciona fins al final de la línia" + +#: view/kateview.cpp:1142 +#, kde-format +msgid "Select to End of Document" +msgstr "Selecciona fins al final del document" + +#: view/kateview.cpp:1152 +#, kde-format +msgid "Select to Previous Line" +msgstr "Selecciona des de la línia prèvia" + +#: view/kateview.cpp:1158 +#, kde-format +msgid "Scroll Line Up" +msgstr "Desplaça una línia amunt" + +#: view/kateview.cpp:1167 +#, kde-format +msgid "Move to Next Line" +msgstr "Mou a la línia següent" + +#: view/kateview.cpp:1173 +#, kde-format +msgid "Move to Previous Line" +msgstr "Mou a la línia prèvia" + +#: view/kateview.cpp:1179 +#, kde-format +msgid "Move Cursor Right" +msgstr "Mou el cursor cap a la dreta" + +#: view/kateview.cpp:1185 +#, kde-format +msgid "Move Cursor Left" +msgstr "Mou el cursor cap a l'esquerra" + +#: view/kateview.cpp:1191 +#, kde-format +msgid "Select to Next Line" +msgstr "Selecciona fins a la línia següent" + +#: view/kateview.cpp:1197 +#, kde-format +msgid "Scroll Line Down" +msgstr "Desplaça una línia avall" + +# skip-rule: k-PageUp-1 +#: view/kateview.cpp:1206 +#, kde-format +msgid "Scroll Page Up" +msgstr "Desplaça una pàgina amunt" + +# skip-rule: k-PageUp-1 +#: view/kateview.cpp:1212 +#, kde-format +msgid "Select Page Up" +msgstr "Selecciona una pàgina amunt" + +#: view/kateview.cpp:1218 +#, kde-format +msgid "Move to Top of View" +msgstr "Mou al començament de la vista" + +#: view/kateview.cpp:1224 +#, kde-format +msgid "Select to Top of View" +msgstr "Selecciona des del començament de la vista" + +# skip-rule: k-PageDown-1 +#: view/kateview.cpp:1230 +#, kde-format +msgid "Scroll Page Down" +msgstr "Desplaça una pàgina avall" + +# skip-rule: k-PageDown-1 +#: view/kateview.cpp:1236 +#, kde-format +msgid "Select Page Down" +msgstr "Selecciona una pàgina avall" + +#: view/kateview.cpp:1242 +#, kde-format +msgid "Move to Bottom of View" +msgstr "Mou a baix de la vista" + +#: view/kateview.cpp:1248 +#, kde-format +msgid "Select to Bottom of View" +msgstr "Selecciona fins a baix de la vista" + +#: view/kateview.cpp:1254 +#, kde-format +msgid "Go to Matching Bracket" +msgstr "Ves al parèntesi concordant" + +#: view/kateview.cpp:1260 +#, kde-format +msgid "Select to Matching Bracket" +msgstr "Selecciona fins al parèntesi que concordi" + +#: view/kateview.cpp:1267 +#, kde-format +msgid "Move Sub-Word Right" +msgstr "Mou una subparaula a la dreta" + +#: view/kateview.cpp:1274 +#, kde-format +msgid "Select Sub-Word Right" +msgstr "Selecciona una subparaula a la dreta" + +#: view/kateview.cpp:1281 +#, kde-format +msgid "Move Sub-Word Left" +msgstr "Mou una subparaula a l'esquerra" + +#: view/kateview.cpp:1288 +#, kde-format +msgid "Select Sub-Word Left" +msgstr "Selecciona una subparaula a l'esquerra" + +#: view/kateview.cpp:1298 +#, kde-format +msgid "Transpose Characters" +msgstr "Transposa els caràcters" + +#: view/kateview.cpp:1303 +#, kde-format +msgid "Transpose Words" +msgstr "Transposa les paraules" + +#: view/kateview.cpp:1308 +#, kde-format +msgid "Delete Line" +msgstr "Suprimeix la línia" + +#: view/kateview.cpp:1314 +#, kde-format +msgid "Delete Word Left" +msgstr "Suprimeix una paraula a l'esquerra" + +#: view/kateview.cpp:1320 +#, kde-format +msgid "Delete Word Right" +msgstr "Suprimeix una paraula a la dreta" + +#: view/kateview.cpp:1326 +#, kde-format +msgid "Delete Next Character" +msgstr "Suprimeix el caràcter següent" + +#: view/kateview.cpp:1332 +#, kde-format +msgid "Backspace" +msgstr "Retrocés" + +#: view/kateview.cpp:1340 +#, kde-format +msgid "Insert Tab Character" +msgstr "Insereix un caràcter de tabulació" + +#: view/kateview.cpp:1345 +#, kde-format +msgid "Insert Smart Newline" +msgstr "Insereix una línia nova intel·ligent" + +#: view/kateview.cpp:1346 +#, kde-format +msgid "" +"Insert newline including leading characters of the current line which are " +"not letters or numbers." +msgstr "" +"Insereix una línia nova incloent els caràcters inicials de la línia actual " +"que no són lletres ni números." + +#: view/kateview.cpp:1354 +#, kde-format +msgid "Insert a Non-Indented Newline" +msgstr "Insereix una línia nova no sagnada" + +#: view/kateview.cpp:1355 +#, kde-format +msgid "" +"Insert a new line without indentation, regardless of indentation settings." +msgstr "" +"Insereix una línia nova sense sagnat, independentment de la configuració del " +"sagnat." + +#: view/kateview.cpp:1363 +#, kde-format +msgid "Insert a Newline Above Current Line" +msgstr "Insereix una línia nova sobre la línia actual" + +#: view/kateview.cpp:1364 +#, kde-format +msgid "" +"Insert a new line above current line without modifying the current line." +msgstr "" +"Insereix una línia nova sobre la línia actual sense modificar la línia " +"actual." + +#: view/kateview.cpp:1372 +#, kde-format +msgid "Insert a Newline Below Current Line" +msgstr "Insereix una línia nova sota la línia actual" + +#: view/kateview.cpp:1373 +#, kde-format +msgid "" +"Insert a new line below current line without modifying the current line." +msgstr "" +"Insereix una línia nova sota la línia actual sense modificar la línia actual." + +#: view/kateview.cpp:1382 +#, kde-format +msgid "&Indent" +msgstr "&Sagna" + +#: view/kateview.cpp:1384 +#, kde-format +msgid "" +"Use this to indent a selected block of text.

You can configure " +"whether tabs should be honored and used or replaced with spaces, in the " +"configuration dialog." +msgstr "" +"Useu-ho per a sagnar un bloc de text seleccionat.

En el diàleg de " +"configuració podreu establir si els tabuladors haurien de ser reconeguts i " +"emprats o substituïts per espais." + +#: view/kateview.cpp:1391 +#, kde-format +msgid "&Unindent" +msgstr "Sense &sagnar" + +#: view/kateview.cpp:1392 +#, kde-format +msgid "Use this to unindent a selected block of text." +msgstr "Empreu-ho per a treure el sagnat a un bloc de text seleccionat." + +#: view/kateview.cpp:1398 +#, kde-format +msgid "Delete Sub-Word Left" +msgstr "Suprimeix una subparaula a l'esquerra" + +#: view/kateview.cpp:1405 +#, kde-format +msgid "Delete Sub-Word Right" +msgstr "Suprimeix una subparaula a la dreta" + +#: view/kateview.cpp:1426 +#, kde-format +msgid "Fold Toplevel Nodes" +msgstr "Contrau els nodes de nivell superior" + +#: view/kateview.cpp:1430 +#, kde-format +msgid "Unfold Toplevel Nodes" +msgstr "Expandeix els nodes de nivell superior" + +#: view/kateview.cpp:1434 +#, kde-format +msgid "Toggle Current Node" +msgstr "Canvia el node actual" + +#: view/kateview.cpp:1438 +#, kde-format +msgid "Toggle Contained Nodes" +msgstr "Canvia els nodes continguts" + +#: view/kateview.cpp:1447 +#, kde-format +msgid "Say current selection or document" +msgstr "Pronuncia la selecció o el document actual" + +#: view/kateview.cpp:1457 +#, kde-format +msgid "Stop current output" +msgstr "Atura la sortida actual" + +#: view/kateview.cpp:1463 +#, kde-format +msgid "Pause current output" +msgstr "Posa en pausa la sortida actual" + +#: view/kateview.cpp:1469 +#, kde-format +msgid "Resume current output" +msgstr "Reprèn la sortida actual" + +#: view/kateview.cpp:1640 +#, kde-format +msgid "(R/O) %1" +msgstr "%1 (R/O)" + +#: view/kateview.cpp:1828 +#, kde-format +msgid "Camel case movement disabled" +msgstr "Moviment desactivat del cursor a les majúscules per parts" + +#: view/kateview.cpp:1830 +#, kde-format +msgid "Camel case movement enabled" +msgstr "Moviment activat del cursor a les majúscules per parts" + +#: view/kateview.cpp:2349 +#, kde-format +msgid "Search wrapped" +msgstr "La cerca continua des del començament" + +#: view/kateview.cpp:3043 +#, kde-format +msgid "Open File" +msgstr "Obre un fitxer" + +#: view/kateview.cpp:3984 +#, kde-format +msgid "Align On" +msgstr "Alinea a" + +#: view/kateview.cpp:3984 +#, kde-format +msgid "Alignment pattern:" +msgstr "Patró d'alineació:" + +#: view/kateview.cpp:5068 +#, kde-format +msgid "Export File as HTML" +msgstr "Exporta el fitxer com a HTML" + +#: view/kateviewhelpers.cpp:302 view/kateviewhelpers.cpp:351 +#: view/kateviewhelpers.cpp:1012 +#, kde-format +msgctxt "from line - to line" +msgid "
%1

%2
" +msgstr "
%1

%2
" + +#: view/kateviewhelpers.cpp:1212 +#, kde-format +msgid "Available Commands" +msgstr "Ordres disponibles" + +#: view/kateviewhelpers.cpp:1213 +#, kde-format +msgid "" +"

For help on individual commands, do 'help <command>'" +msgstr "" +"

Per a obtenir ajuda quant a les ordres individuals, feu «help <" +"ordre>»

" + +#: view/kateviewhelpers.cpp:1220 +#, kde-format +msgid "No help for '%1'" +msgstr "No hi ha ajuda per a «%1»" + +#: view/kateviewhelpers.cpp:1223 +#, kde-format +msgid "No such command %1" +msgstr "No es troba l'ordre: %1" + +#: view/kateviewhelpers.cpp:1229 +#, kde-format +msgid "" +"

This is the Katepart command line.
Syntax: command " +"[ arguments ]
For a list of available commands, enter " +"help list
For help for individual commands, enter " +"help <command>

" +msgstr "" +"

Aquesta és la línia d'ordres del Katepart.
Sintaxi: " +"ordre [arguments]
Per a obtenir una llista de les " +"ordres disponibles, introduïu help list
Per a " +"obtenir ajuda sobre les ordres individuals, introduïu help <" +"ordre>

" + +#: view/kateviewhelpers.cpp:1317 vimode/emulatedcommandbar/commandmode.cpp:211 +#, kde-format +msgid "No such command: \"%1\"" +msgstr "No es troba l'ordre: «%1»" + +#: view/kateviewhelpers.cpp:1320 vimode/emulatedcommandbar/commandmode.cpp:193 +#, kde-format +msgid "Error: No range allowed for command \"%1\"." +msgstr "Error: no es permet l'abast per a l'ordre «%1»." + +#: view/kateviewhelpers.cpp:1330 vimode/emulatedcommandbar/commandmode.cpp:197 +#, kde-format +msgid "Success: " +msgstr "Encert: " + +#: view/kateviewhelpers.cpp:1344 vimode/emulatedcommandbar/commandmode.cpp:206 +#, kde-format +msgid "Command \"%1\" failed." +msgstr "L'ordre «%1» ha fallat." + +#: view/kateviewhelpers.cpp:2632 view/kateviewhelpers.cpp:2633 +#, kde-format +msgid "Mark Type %1" +msgstr "Tipus de marca %1" + +#: view/kateviewhelpers.cpp:2656 +#, kde-format +msgid "Set Default Mark Type" +msgstr "Defineix el tipus de marca per omissió" + +#: view/kateviewhelpers.cpp:2801 +#, kde-format +msgid "Disable Annotation Bar" +msgstr "Desactiva la barra d'anotacions" + +#: view/screenshotdialog.cpp:175 +#, kde-format +msgid "Save" +msgstr "Desa" + +#: view/screenshotdialog.cpp:176 +#, kde-format +msgid "Copy" +msgstr "Copia" + +#: view/screenshotdialog.cpp:177 +#, kde-format +msgctxt "@action:button" +msgid "Background Color…" +msgstr "Color de fons…" + +#: view/screenshotdialog.cpp:179 +#, kde-format +msgid "Show Extra Decorations" +msgstr "Mostra les decoracions extres" + +#: view/screenshotdialog.cpp:180 +#, kde-format +msgid "Show Window Decorations" +msgstr "Mostra la decoració de les finestres" + +#: view/screenshotdialog.cpp:185 +#, kde-format +msgctxt "@title:window" +msgid "Take Screenshot of Selection" +msgstr "Pren una captura de pantalla de la selecció" + +#: view/screenshotdialog.cpp:257 +#, kde-format +msgid "Don't Show Line Numbers" +msgstr "No mostris els números de les línies" + +#: view/screenshotdialog.cpp:258 +#, kde-format +msgid "Show Line Numbers From 1" +msgstr "Mostra els números de les línies a partir de l'1" + +#: view/screenshotdialog.cpp:259 +#, kde-format +msgid "Show Actual Line Numbers" +msgstr "Mostra els números reals de les línies" + +#: view/screenshotdialog.cpp:422 +#, kde-format +msgctxt "@title:window" +msgid "Screenshot saving failed" +msgstr "Ha fallat en desar la captura de pantalla" + +#: view/screenshotdialog.cpp:422 +#, kde-format +msgid "Screenshot saving failed: %1" +msgstr "Ha fallat en desar la captura de pantalla: %1" + +#: vimode/appcommands.cpp:67 +#, kde-format +msgid "All documents written to disk" +msgstr "Tots els documents escrits en el disc" + +#: vimode/appcommands.cpp:70 +#, kde-format +msgid "Document written to disk" +msgstr "Document escrit en el disc" + +#: vimode/appcommands.cpp:202 +#, kde-format +msgid "" +"

w/wa — write document(s) to disk

Usage: w[a]

Writes the current document(s) to disk. It can be called in " +"two ways:
w — writes the current document to disk
" +"wa — writes all documents to disk.

If no file name is " +"associated with the document, a file dialog will be shown.

" +msgstr "" +"

w/wa — escriu document/s al disc

Sintaxi: w[a]

Escriu el/s document/s actual/s al disc. Es pot cridar de dues " +"maneres:
w — escriu el document actual al disc
" +"wa — escriu tots els documents al disc.

Si no hi ha cap " +"nom de fitxer associat al document, es mostrarà un diàleg de fitxer.

" + +#: vimode/appcommands.cpp:213 +#, kde-format +msgid "" +"

q/qa/wq/wqa — [write and] quit

Usage: [w]q[a]

Quits the application. If w is prepended, it also " +"writes the document(s) to disk. This command can be called in several ways:" +"
q — closes the current view.
qa — " +"closes all views, effectively quitting the application.
wq " +"— writes the current document to disk and closes its view.
" +"wqa — writes all documents to disk and quits.

In all " +"cases, if the view being closed is the last view, the application quits. If " +"no file name is associated with the document and it should be written to " +"disk, a file dialog will be shown.

" +msgstr "" +"

q/qa/wq/wqa — [escriu y] surt

Sintaxi: [w]q[a]

Surt de l'aplicació. Si s'anteposa w, també escriu el/" +"s document/s al disc. Aquesta ordre es pot cridar de diverses maneres:
q — tanca la vista actual.
qa — tanca " +"totes les vistes i surt efectivament de l'aplicació.
wq " +"— escriu el document actual al disc i tanca la seva vista.
" +"wqa — escriu tots els documents al disc i surt.

En tots " +"els casos, si la vista que s'està tancant és l'última, se sortirà de " +"l'aplicació. Si no hi ha cap nom de fitxer associat amb el document i s'ha " +"d'escriure al disc, es mostrarà un diàleg de fitxer.

" + +# skip-rule: t-e_sola +#: vimode/appcommands.cpp:228 +#, kde-format +msgid "" +"

x/xa — write and quit

Usage: x[a]

Saves document(s) and quits (exits). This command can be called " +"in two ways:
x — closes the current view.
xa — closes all views, effectively quitting the application.

In " +"all cases, if the view being closed is the last view, the application quits. " +"If no file name is associated with the document and it should be written to " +"disk, a file dialog will be shown.

Unlike the 'w' commands, this " +"command only writes the document if it is modified.

" +msgstr "" +"

x/xa — escriu i surt

Sintaxi: x[a]

Desa el/s document/s i surt («exits»). Aquesta ordre es pot " +"cridar de dues maneres::
x — tanca la vista actual.
xa — tanca totes les vistes, efectivament i surt de " +"l'aplicació.

En tots els casos, si la vista que s'està tancant és " +"l'última, se surt de l'aplicació. Si no hi ha cap nom de fitxer associat amb " +"el document i s'ha d'escriure al disc, es mostrarà un diàleg de fitxer.

A diferència de les ordres «w», aquesta ordre només escriurà el " +"document si ha estat modificat.

" + +#: vimode/appcommands.cpp:242 +#, kde-format +msgid "" +"

sp,split— Split horizontally the current view into two

Usage: sp[lit]

The result is two views on the " +"same document.

" +msgstr "" +"

sp,split— Divideix horitzontalment la vista actual en dues

Ús: sp[lit]

El resultat són dues vistes en el " +"mateix document.

" + +#: vimode/appcommands.cpp:248 +#, kde-format +msgid "" +"

vs,vsplit— Split vertically the current view into two

Usage: vs[plit]

The result is two views on the " +"same document.

" +msgstr "" +"

vs,vsplit— Divideix verticalment la vista actual en dues

Ús: vs[plit]

El resultat són dues vistes en el " +"mateix document.

" + +#: vimode/appcommands.cpp:254 +#, kde-format +msgid "" +"

clo[se]— Close the current view

Usage: clo[se]

After executing it, the current view will be closed.

" +msgstr "" +"

clo[se]— Tanca la vista actual

Ús: clo[se]

Després d'executar-lo es tancarà la vista actual.

" + +#: vimode/appcommands.cpp:260 +#, kde-format +msgid "" +"

[v]new — split view and create new document

Usage: " +"[v]new

Splits the current view and opens a new " +"document in the new view. This command can be called in two ways:
" +"new — splits the view horizontally and opens a new document." +"
vnew — splits the view vertically and opens a new " +"document.

" +msgstr "" +"

[v]new — divideix la vista i crea un document nou

Ús: " +"[v]new

Divideix la vista actual i obre un document nou " +"a la vista nova. Aquesta ordre es pot cridar de dues maneres:
new — divideix la vista horitzontalment i obre un document nou.
" +"vnew — divideix la vista verticalment i obre un document nou." +"

" + +#: vimode/appcommands.cpp:270 +#, kde-format +msgid "" +"

e[dit] — reload current document

Usage: e[dit]

Starts editing the current document again. This is " +"useful to re-edit the current file, when it was modified on disk.

" +msgstr "" +"

e[dit] — recarrega el document actual

Sintaxi: " +"e[dit]

Inicia l'edició del document actual de " +"nou. Això és útil per a tornar a editar el fitxer actual, quan ha estat " +"modificat en el disc.

" + +#: vimode/appcommands.cpp:518 +#, kde-format +msgid "" +"

b,buffer — Edit document N from the document list

Usage: b[uffer] [N]

" +msgstr "" +"

b,buffer — Edita el document N de la llista de documents

Ús: b[uffer] [N]

" + +#: vimode/appcommands.cpp:523 +#, kde-format +msgid "" +"

bp,bprev — previous buffer

Usage: bp[revious] " +"[N]

Goes to [N]th previous document (\"buffer" +"\") in document list.

[N] defaults to one.

Wraps " +"around the start of the document list.

" +msgstr "" +"

bp,bprev — document anterior

Ús: bp[revious] " +"[N]

Va a l'anterior [N] document («buffer») en " +"la llista de documents.

[N] està predeterminat a u.

" +"

Dona la volta a l'inici de la llista de documents.

" + +#: vimode/appcommands.cpp:531 +#, kde-format +msgid "" +"

bn,bnext — switch to next document

Usage: " +"bn[ext] [N]

Goes to [N]th next document " +"(\"buffer\") in document list.[N] defaults to one.

Wraps around the end of the document list.

" +msgstr "" +"

bn,bnext — commuta al document següent

Ús: " +"bn[ext] [N]

Va al següent [N] document («buffer») en la llista de documents.[N] està predeterminat a u.

Dona la volta al final de la llista de documents.

" + +#: vimode/appcommands.cpp:539 +#, kde-format +msgid "" +"

bf,bfirst — first document

Usage: bf[irst]

Goes to the first document (\"buffer\") in document " +"list.

" +msgstr "" +"

bf,bfirst — primer document

Ús: bf[irst]

Va al «first» (primer) document («buffer») en la " +"llista de documents.

" + +#: vimode/appcommands.cpp:545 +#, kde-format +msgid "" +"

bl,blast — last document

Usage: bl[ast]

Goes to the last document (\"buffer\") in document " +"list.

" +msgstr "" +"

bl,blast — darrer document

Ús: bl[ast]

Va al «last» (darrer) document («buffer») en la " +"llista de documents.

" + +#: vimode/appcommands.cpp:551 +#, kde-format +msgid "

ls

list current buffers

" +msgstr "

ls

llista els buffers actuals

" + +#: vimode/cmds.cpp:52 +#, kde-format +msgid "Missing argument. Usage: %1 " +msgstr "Falta un argument. Useu: %1 " + +#: vimode/cmds.cpp:68 +#, kde-format +msgid "No mapping found for \"%1\"" +msgstr "No s'ha trobat cap correspondència per a «%1»" + +#: vimode/cmds.cpp:71 +#, kde-format +msgid "\"%1\" is mapped to \"%2\"" +msgstr "«%1» es correspon a «%2»" + +#: vimode/cmds.cpp:77 +#, kde-format +msgid "Missing argument(s). Usage: %1 []" +msgstr "Falta/en un/s argument/s. Useu: %1 []" + +#: vimode/cmds.cpp:145 vimode/cmds.cpp:161 +#, kde-format +msgid "Wrong arguments" +msgstr "Arguments erronis" + +#: vimode/config/configtab.cpp:205 +#, kde-format +msgid "Unable to open the config file for reading." +msgstr "No s'ha pogut obrir el fitxer de configuració per a lectura." + +#: vimode/config/configtab.cpp:205 +#, kde-format +msgid "Unable to open file" +msgstr "No s'ha pogut obrir el fitxer" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkViCommandsOverride) +#: vimode/config/configwidget.ui:35 +#, kde-format +msgid "" +"When selected, vi commands will override Kate's built-in commands. For " +"example: Ctrl+R will redo, and override the standard action (showing the " +"search and replace dialog)." +msgstr "" +"Quan està seleccionat, les ordres del vi substitueixen les ordres integrades " +"del Kate. Per exemple: Ctrl+R refarà i substituirà l'acció estàndard (mostra " +"el diàleg de cerca i substitució)." + +#. i18n: ectx: property (text), widget (QCheckBox, chkViCommandsOverride) +#: vimode/config/configwidget.ui:38 +#, kde-format +msgid "Let Vi commands override Kate shortcuts" +msgstr "Permet que les ordres del Vi substitueixin les dreceres del Kate" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkViRelLineNumbers) +#: vimode/config/configwidget.ui:45 +#, kde-format +msgid "" +"Show the line number relative to the line with the cursor in front of each " +"line." +msgstr "" +"Mostra el número de línia relatiu a la línia amb el cursor davant de cada " +"línia." + +#. i18n: ectx: property (text), widget (QCheckBox, chkViRelLineNumbers) +#: vimode/config/configwidget.ui:48 +#, kde-format +msgid "Display relative line numbers" +msgstr "Mostra el número relatiu a la línia" + +#. i18n: ectx: property (whatsThis), widget (QGroupBox, groupBox) +#: vimode/config/configwidget.ui:63 +#, kde-format +msgid "" +"Key mapping is used to change the meaning of typed keys. This allows you to " +"move commands to other keys or make special keypresses for doing a series of " +"commands.\n" +"\n" +"Example:\n" +"\"\" → \"I-- \"\n" +"\n" +"This will prepend \"-- \" to a line when pressing F2." +msgstr "" +"El mapatge de tecles s'usa per a canviar el significat de les tecles " +"premudes. Això us permet moure les ordres a altres tecles o crear pulsacions " +"especials de tecles per a fer sèries d'ordres.\n" +"\n" +"Exemple:\n" +"«» → «I-- »\n" +"\n" +"Això afegirà «-- » al començament d'una línia en prémer F2." + +#. i18n: ectx: property (title), widget (QGroupBox, groupBox) +#: vimode/config/configwidget.ui:66 +#, kde-format +msgid "Key Mapping" +msgstr "Mapatge de tecles" + +#. i18n: ectx: attribute (title), widget (QWidget, normalTab) +#: vimode/config/configwidget.ui:76 +#, kde-format +msgid "Normal mode" +msgstr "Mode normal" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:95 vimode/config/configwidget.ui:133 +#: vimode/config/configwidget.ui:171 +#, kde-format +msgid "Command" +msgstr "Ordre" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:100 vimode/config/configwidget.ui:138 +#: vimode/config/configwidget.ui:176 +#, kde-format +msgid "Replacement" +msgstr "Substitució" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:105 vimode/config/configwidget.ui:143 +#: vimode/config/configwidget.ui:181 +#, kde-format +msgid "Recursive?" +msgstr "Recursiu?" + +#. i18n: ectx: attribute (title), widget (QWidget, insertTab) +#: vimode/config/configwidget.ui:114 +#, kde-format +msgid "Insert mode" +msgstr "Mode d'inserció" + +#. i18n: ectx: attribute (title), widget (QWidget, visualTab) +#: vimode/config/configwidget.ui:152 +#, kde-format +msgid "Visual mode" +msgstr "Mode visual" + +#. i18n: ectx: property (text), widget (QPushButton, btnRemoveSelectedRows) +#: vimode/config/configwidget.ui:195 +#, kde-format +msgid "Remove selected" +msgstr "Elimina la selecció" + +#. i18n: ectx: property (text), widget (QPushButton, btnAddNewRow) +#: vimode/config/configwidget.ui:202 +#, kde-format +msgid "Add new mapping" +msgstr "Afegeix un mapatge nou" + +#. i18n: ectx: property (toolTip), widget (QPushButton, btnImportNormal) +#: vimode/config/configwidget.ui:209 +#, kde-format +msgid "" +"Read a vimrc file and attempt to import mappings specified with the " +"\"[n]noremap\" command." +msgstr "" +"Llegeix un fitxer «vimrc» per a intentar importar els mapatges especificats " +"amb l'ordre «[n]noremap»." + +#. i18n: ectx: property (text), widget (QPushButton, btnImportNormal) +#: vimode/config/configwidget.ui:212 +#, kde-format +msgid "Import from vimrc file" +msgstr "Importa des d'un fitxer «vimrc»" + +#: vimode/marks.cpp:117 +#, kde-format +msgid "Mark set: %1" +msgstr "Marca definida: %1" + +#: vimode/marks.cpp:163 +#, kde-format +msgid "There are no more chars for the next bookmark." +msgstr "No hi ha més caràcters per al punt següent." + +#: vimode/modes/insertvimode.cpp:261 vimode/modes/modebase.cpp:794 +#: vimode/modes/normalvimode.cpp:3567 +#, kde-format +msgid "Nothing in register %1" +msgstr "No hi ha res al registre %1" + +#: vimode/modes/normalvimode.cpp:1691 +#, kde-format +msgid "'%1' %2, Hex %3, Octal %4" +msgstr "«%1» %2, Hex %3, Octal %4" + +#: vimode/modes/normalvimode.cpp:2534 +#, kde-format +msgid "Mark not set: %1" +msgstr "Marca no definida: %1" + +#~ msgid "Enable camel case cursor movement" +#~ msgstr "Activa el moviment del cursor a les majúscules per parts" diff --git a/local/recipes/kde/kf6-ktexteditor/source/po/ca@valencia/ktexteditor6.po b/local/recipes/kde/kf6-ktexteditor/source/po/ca@valencia/ktexteditor6.po new file mode 100644 index 0000000000..799c937448 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/po/ca@valencia/ktexteditor6.po @@ -0,0 +1,8585 @@ +# Translation of ktexteditor6.po to Catalan (Valencian) +# Copyright (C) 1999-2026 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. +# +# SPDX-FileCopyrightText: 1999, 2000, 2001, 2004, 2005, 2006, 2007 Sebastià Pla i Sanz +# SPDX-FileCopyrightText: 2002, 2003, 2004, 2012, 2013, 2014, 2015, 2016, 2018, 2019, 2020, 2021, 2022 Antoni Bella Pérez +# SPDX-FileCopyrightText: 2004, 2005 Albert Astals Cid +# SPDX-FileCopyrightText: 2009 Robert Millan +# SPDX-FileCopyrightText: 2019 Empar Montoro Martín +# SPDX-FileCopyrightText: 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026 Josep M. Ferrer +msgid "" +msgstr "" +"Project-Id-Version: ktexteditor\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2026-06-23 00:41+0000\n" +"PO-Revision-Date: 2026-06-16 09:00+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 25.04.0\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Accelerator-Marker: &\n" + +#: completion/katecompletionmodel.cpp:147 +#, kde-format +msgid "Argument-hints" +msgstr "Consells dels arguments" + +#: completion/katecompletionmodel.cpp:148 +#, kde-format +msgid "Best matches" +msgstr "Coincidències millors" + +#: completion/katekeywordcompletion.cpp:143 +#, kde-format +msgid "Language keywords" +msgstr "Paraules clau del llenguatge" + +#: completion/katewordcompletion.cpp:74 +#, kde-format +msgid "Auto Word Completion" +msgstr "Compleció automàtica de les paraules" + +#: completion/katewordcompletion.cpp:301 +#, kde-format +msgid "Shell Completion" +msgstr "Compleció de codi" + +#: completion/katewordcompletion.cpp:306 +#, kde-format +msgid "Reuse Word Above" +msgstr "Reutilitza la paraula de més amunt" + +#: completion/katewordcompletion.cpp:312 +#, kde-format +msgid "Reuse Word Below" +msgstr "Reutilitza la paraula de més avall" + +#. i18n: ectx: Menu (file) +#: data/katepart5ui.rc:4 +#, kde-format +msgid "&File" +msgstr "Fi&txer" + +#. i18n: ectx: Menu (file_export) +#: data/katepart5ui.rc:10 +#, kde-format +msgid "&Print/Export" +msgstr "Im&pressió/Exportació" + +#. i18n: ectx: Menu (edit) +#: data/katepart5ui.rc:17 +#, kde-format +msgid "&Edit" +msgstr "&Edita" + +#. i18n: ectx: Menu (edit_find_menu) +#: data/katepart5ui.rc:36 +#, kde-format +msgid "Find Variants" +msgstr "Busca les variants" + +#. i18n: ectx: Menu (selection) +#: data/katepart5ui.rc:46 +#, kde-format +msgid "Selection" +msgstr "Selecció" + +#. i18n: ectx: Menu (capitalization) +#: data/katepart5ui.rc:53 +#, kde-format +msgid "Capitalization" +msgstr "Escriu en majúscula la primera lletra" + +#. i18n: ectx: Menu (view) +#: data/katepart5ui.rc:73 +#, kde-format +msgid "&View" +msgstr "Vi&sualitza" + +#. i18n: ectx: Menu (view_menu_word_wrap) +#: data/katepart5ui.rc:78 +#, kde-format +msgid "Word Wrap" +msgstr "Ajust de les paraules" + +#. i18n: ectx: Menu (view_menu_borders) +#: data/katepart5ui.rc:84 dialogs/katedialogs.cpp:747 +#, kde-format +msgid "Borders" +msgstr "Vores" + +#. i18n: ectx: Menu (codefolding) +#: data/katepart5ui.rc:92 +#, kde-format +msgid "&Code Folding" +msgstr "Plega el &codi" + +#. i18n: ectx: Menu (go) +#: data/katepart5ui.rc:109 +#, kde-format +msgid "&Go" +msgstr "&Ves" + +#. i18n: ectx: Menu (tools) +#: data/katepart5ui.rc:124 +#, kde-format +msgid "&Tools" +msgstr "&Eines" + +#. i18n: ectx: Menu (wordcompletion) +#: data/katepart5ui.rc:138 +#, kde-format +msgid "Word Completion" +msgstr "Compleció de paraules" + +#. i18n: ectx: Menu (spelling) +#: data/katepart5ui.rc:144 spellcheck/spellingmenu.cpp:71 +#: spellcheck/spellingmenu.cpp:195 +#, kde-format +msgid "Spelling" +msgstr "Ortografia" + +#. i18n: ectx: Menu (speech) +#: data/katepart5ui.rc:153 data/katepart5ui.rc:184 +#, kde-format +msgid "Text to Speech" +msgstr "Text a veu" + +#. i18n: ectx: Menu (settings) +#: data/katepart5ui.rc:161 +#, kde-format +msgid "&Settings" +msgstr "Con&figuració" + +#. i18n: ectx: ToolBar (mainToolBar) +#: data/katepart5ui.rc:192 +#, kde-format +msgid "Main Toolbar" +msgstr "Barra d'eines principal" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/bordersappearanceconfigwidget.ui:25 +#, kde-format +msgid "Code block folding:" +msgstr "Plegat de bloc de codi:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowFoldingMarkers) +#: dialogs/bordersappearanceconfigwidget.ui:32 +#, kde-format +msgid "" +"If this option is checked, every new view will display marks for folding." +msgstr "" +"Si està marcada, cada vista nova mostrarà les marques de plegat de codi." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowFoldingMarkers) +#: dialogs/bordersappearanceconfigwidget.ui:35 +#, kde-format +msgid "Show arrows to collapse code blocks" +msgstr "Mostra les fletxes per a reduir els blocs de codi" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowFoldingPreview) +#: dialogs/bordersappearanceconfigwidget.ui:42 +#, kde-format +msgid "" +"If checked, hovering over a folded region shows a preview of the folded text " +"in a popup." +msgstr "" +"Si està marcada, en passar per damunt d'una regió plegada es mostrarà una " +"vista prèvia del text plegat en una finestra emergent." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowFoldingPreview) +#: dialogs/bordersappearanceconfigwidget.ui:45 +#, kde-format +msgid "Show preview of folded blocks on hover" +msgstr "Mostra una vista prèvia dels blocs plegats en passar per damunt" + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/bordersappearanceconfigwidget.ui:52 +#, kde-format +msgid "Folding arrows visibility:" +msgstr "Visibilitat de les fletxes de plegat:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbFoldingArrowVisiblity) +#: dialogs/bordersappearanceconfigwidget.ui:63 +#, kde-format +msgid "Show on Hover" +msgstr "Mostra en passar-hi per damunt" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbFoldingArrowVisiblity) +#: dialogs/bordersappearanceconfigwidget.ui:68 +#, kde-format +msgid "Show Always" +msgstr "Mostra sempre" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/bordersappearanceconfigwidget.ui:92 +#, kde-format +msgid "Left side:" +msgstr "Costat esquerre:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkIconBorder) +#: dialogs/bordersappearanceconfigwidget.ui:99 +#, kde-format +msgid "" +"

If this option is checked, every new view will display an icon border on " +"the left hand side.

The icon border shows bookmark signs, for instance." +"

" +msgstr "" +"

Si està marcada, cada vista nova mostrarà una vora per a les icones en el " +"costat esquerre.

Per exemple, la vora per a les icones mostra els " +"punts.

" + +#. i18n: ectx: property (text), widget (QCheckBox, chkIconBorder) +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMarks) +#: dialogs/bordersappearanceconfigwidget.ui:102 +#: dialogs/bordersappearanceconfigwidget.ui:155 +#, kde-format +msgid "Show marks" +msgstr "Mostra les marques" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkLineNumbers) +#: dialogs/bordersappearanceconfigwidget.ui:109 +#, kde-format +msgid "" +"If this option is checked, every new view will display line numbers on the " +"left hand side." +msgstr "" +"Si està marcada, cada vista nova mostrarà els números de les línies en el " +"costat esquerre." + +#. i18n: ectx: property (text), widget (QCheckBox, chkLineNumbers) +#: dialogs/bordersappearanceconfigwidget.ui:112 +#, kde-format +msgid "Show &line numbers" +msgstr "Mostra els números de les &línies" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowLineModification) +#: dialogs/bordersappearanceconfigwidget.ui:119 +#, kde-format +msgid "" +"If this option is checked, a small indicator for modified and saved lines is " +"shown on the left hand side." +msgstr "" +"Si està marcada, es mostrarà un indicador xicotet per a les línies " +"modificades i les línies guardades en el costat esquerre." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowLineModification) +#: dialogs/bordersappearanceconfigwidget.ui:122 +#, kde-format +msgid "Highlight changed and unsaved lines" +msgstr "Ressalta les línies canviades i sense guardar" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/bordersappearanceconfigwidget.ui:145 +#, kde-format +msgid "Scrollbars:" +msgstr "Barres de desplaçament:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMarks) +#: dialogs/bordersappearanceconfigwidget.ui:152 +#, kde-format +msgid "" +"

If this option is checked, every new view will show marks on the vertical " +"scrollbar.

These marks will show bookmarks, for instance.

" +msgstr "" +"

Si està marcada, cada vista nova mostrarà marques en la barra de " +"desplaçament vertical.

Per exemple, estes marques mostren els punts." + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarPreview) +#: dialogs/bordersappearanceconfigwidget.ui:162 +#, kde-format +msgid "" +"

If this option is checked, hovering over the vertical scrollbar will show " +"a preview of the text.

" +msgstr "" +"

Si està marcada, en passar per damunt la barra de desplaçament es " +"mostrarà una vista prèvia del text.

" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarPreview) +#: dialogs/bordersappearanceconfigwidget.ui:165 +#, kde-format +msgid "Show preview when hovering over scrollbar" +msgstr "" +"Mostra una vista prèvia en passar per damunt de la barra de desplaçament" + +#. i18n: ectx: property (text), widget (QLabel, lblShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:172 +#, kde-format +msgid "Scro&llbars visibility:" +msgstr "Visibilitat de les barres de desp&laçament:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:183 dialogs/katedialogs.cpp:755 +#, kde-format +msgid "Always On" +msgstr "Sempre actives" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:188 +#, kde-format +msgid "Show When Needed" +msgstr "Mostra-les quan calga" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:193 +#, kde-format +msgid "Always Off" +msgstr "Sempre desactivades" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/bordersappearanceconfigwidget.ui:217 +#, kde-format +msgid "Minimap:" +msgstr "Mapa en miniatura:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMiniMap) +#: dialogs/bordersappearanceconfigwidget.ui:224 +#, kde-format +msgid "" +"If this option is checked, every new view will show a mini map on the " +"vertical scrollbar." +msgstr "" +"Si està marcada, cada vista nova mostrarà un mapa en miniatura en la barra " +"de desplaçament vertical." + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMiniMap) +#: dialogs/bordersappearanceconfigwidget.ui:227 +#, kde-format +msgid "Show minimap" +msgstr "Mostra un mapa en miniatura" + +#. i18n: ectx: property (text), widget (QLabel, labelMiniMapWidth) +#: dialogs/bordersappearanceconfigwidget.ui:250 +#, kde-format +msgid "Minim&ap width:" +msgstr "A&mplària del mapa en miniatura:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMiniMapAll) +#: dialogs/bordersappearanceconfigwidget.ui:263 +#, kde-format +msgid "" +"If this option is checked, every new view will show a mini map of the whole " +"document on the vertical scrollbar." +msgstr "" +"Si està marcada, cada vista nova mostrarà un mapa en miniatura de tot el " +"document en la barra de desplaçament vertical." + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMiniMapAll) +#: dialogs/bordersappearanceconfigwidget.ui:266 +#, kde-format +msgid "Map the whole document" +msgstr "Mapa de tot el document" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbSortBookmarksByCreation) +#: dialogs/bordersappearanceconfigwidget.ui:276 +#, kde-format +msgid "" +"Each new bookmark will be added to the bottom, independently from where it " +"is placed in the document." +msgstr "" +"Cada punt nou s'afegirà a baix, independentment d'on estiga situat en el " +"document." + +#. i18n: ectx: property (text), widget (QRadioButton, rbSortBookmarksByCreation) +#: dialogs/bordersappearanceconfigwidget.ui:279 +#, kde-format +msgid "By date created" +msgstr "Per data de creació" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbSortBookmarksByPosition) +#: dialogs/bordersappearanceconfigwidget.ui:286 +#, kde-format +msgid "The bookmarks will be ordered by the line numbers they are placed at." +msgstr "Els punts s'ordenaran pel número de línia en la qual estan situats." + +#. i18n: ectx: property (text), widget (QRadioButton, rbSortBookmarksByPosition) +#: dialogs/bordersappearanceconfigwidget.ui:289 +#, kde-format +msgid "By line number" +msgstr "Per número de línia" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/bordersappearanceconfigwidget.ui:296 +#, kde-format +msgid "Sort bookmarks menu:" +msgstr "Ordena el menú dels punts:" + +#: dialogs/clipboardhistorydialog.cpp:264 +#, kde-format +msgid "Select text to paste." +msgstr "Selecciona el text a apegar." + +#: dialogs/clipboardhistorydialog.cpp:296 +#, kde-format +msgid "No entries in clipboard history" +msgstr "No hi ha cap entrada en l'historial del porta-retalls" + +#. i18n: ectx: property (title), widget (QGroupBox, gbGeneral) +#. i18n: ectx: property (title), widget (QGroupBox, gbViInputMode) +#: dialogs/completionconfigtab.ui:29 dialogs/katedialogs.cpp:609 +#: dialogs/katedialogs.cpp:743 dialogs/katedialogs.cpp:1026 +#: vimode/config/configwidget.ui:29 +#, kde-format +msgid "General" +msgstr "General" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoCompletionEnabled) +#: dialogs/completionconfigtab.ui:35 +#, kde-format +msgid "Enable &auto completion" +msgstr "Activa la compleció &automàtica" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoSelectFirstEntry) +#: dialogs/completionconfigtab.ui:42 +#, kde-format +msgid "Auto select &first completion entry" +msgstr "Selecciona automàticament la &primera entrada de compleció" + +# skip-rule: kct-tab +#. i18n: ectx: property (text), widget (QCheckBox, chkTabCompletion) +#: dialogs/completionconfigtab.ui:49 +#, kde-format +msgid "Cycle through the list of completions using Tab / Shift+Tab" +msgstr "Circula entre la llista de complecions utilitzant «Tab» / «Majús+Tab»" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkEnterCompletion) +#: dialogs/completionconfigtab.ui:56 +#, kde-format +msgid "" +"Pressing enter will insert the text of selected completion item into the " +"editor. If disabled, Tab key or double-click can still be used to trigger " +"completion." +msgstr "" +"En prémer «Retorn» s'inserirà el text de l'element de compleció seleccionat " +"en l'editor. Si està marcada, encara es poden utilitzar la tecla de " +"tabulació o el doble clic per a activar la compleció." + +#. i18n: ectx: property (text), widget (QCheckBox, chkEnterCompletion) +#: dialogs/completionconfigtab.ui:59 +#, kde-format +msgid "Use Enter key to insert selected completion" +msgstr "Utilitzeu la tecla «Retorn» per a inserir la compleció seleccionada" + +#. i18n: ectx: property (title), widget (QGroupBox, gbWordCompletion) +#: dialogs/completionconfigtab.ui:69 +#, kde-format +msgid "A&uto word completion" +msgstr "Compleció a&utomàtica de paraules" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/completionconfigtab.ui:83 +#, kde-format +msgid "Minimal word length to complete:" +msgstr "Llargària mínima de la paraula que s'ha de completar:" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, removeTail) +#: dialogs/completionconfigtab.ui:111 +#, kde-format +msgid "Remove tail of a previous word when completion item chosen from a list" +msgstr "" +"Elimina el final de la paraula anterior quan es tria l'element de compleció " +"des d'una llista" + +#. i18n: ectx: property (text), widget (QCheckBox, removeTail) +#: dialogs/completionconfigtab.ui:114 +#, kde-format +msgid "Remove tail on complete" +msgstr "Elimina el final en la compleció" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/completionconfigtab.ui:121 +#, kde-format +msgid "" +"Word completion provides suggestions based on the words found in the document" +msgstr "" +"La compleció de paraules proporciona suggeriments basats en les paraules " +"trobades en el document" + +#. i18n: ectx: property (title), widget (QGroupBox, gbKeywordCompletion) +#: dialogs/completionconfigtab.ui:134 +#, kde-format +msgid "&Keyword completion" +msgstr "Compleció de paraules &clau" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/completionconfigtab.ui:143 +#, kde-format +msgid "" +"Keyword completion provides suggestions based on the keywords which exist in " +"the document's language." +msgstr "" +"La compleció de paraules clau proporciona suggeriments basats en les " +"paraules clau que existixen en el llenguatge del document." + +#. i18n: ectx: property (title), widget (QGroupBox, gbShowDoc) +#: dialogs/completionconfigtab.ui:156 +#, kde-format +msgid "Documentation with completion" +msgstr "Documentació amb la compleció" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/completionconfigtab.ui:165 +#, kde-format +msgid "" +"Show documentation beside completion box. If disabled, documentation can be " +"shown by pressing Alt key." +msgstr "" +"Mostra la documentació al costat del quadro de compleció. Si està marcada, " +"la documentació es pot mostrar prement la tecla «Alt»." + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/editconfigwidget.ui:22 +#, kde-format +msgid "Word wrap:" +msgstr "Ajust de les paraules:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkStaticWordWrap) +#: dialogs/editconfigwidget.ui:29 +#, kde-format +msgid "" +"

Automatically start a new line of text when the current line exceeds the " +"length specified by the Wrap words at: option.

This option does " +"not wrap existing lines of text - use the Apply Static Word Wrap " +"option in the Tools menu for that purpose.

If you want lines to " +"be visually wrapped instead, according to the width of the view, " +"enable Dynamic Word Wrap in the Appearance config page.

" +msgstr "" +"

Inicia automàticament una línia nova de text quan la línia actual " +"excedisca la llargària indicada per l'opció Ajusta les paraules a:.

Esta opció no ajusta les línies de text existents. Utilitzeu l'opció " +"Aplica l'ajust estàtic de les paraules del menú Eines per a " +"esta finalitat.

Si, en el seu lloc, voleu que les línies siguen " +"ajustades visualment, d'acord amb l'amplària de la vista, activeu " +"l'Ajust dinàmic de les paraules a la pàgina de configuració " +"Aparença.

" + +#. i18n: ectx: property (text), widget (QCheckBox, chkStaticWordWrap) +#: dialogs/editconfigwidget.ui:32 +#, kde-format +msgid "Wrap &words at a fixed column" +msgstr "A&justa les paraules a una columna fixada" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowStaticWordWrapMarker) +#: dialogs/editconfigwidget.ui:39 +#, kde-format +msgid "" +"

If this option is checked, a vertical line will be drawn at the word wrap " +"column as defined in the Editing properties.

" +msgstr "" +"

Si està marcada, es dibuixarà una línia vertical a la columna d'ajust de " +"les paraules, com s'ha definit a les propietats d'Edició." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowStaticWordWrapMarker) +#: dialogs/editconfigwidget.ui:42 +#, kde-format +msgid "&Draw vertical line at the word wrap column" +msgstr "&Dibuixa una línia vertical a la columna d'ajust de les paraules" + +#. i18n: ectx: property (text), widget (QLabel, lblWordWrap) +#: dialogs/editconfigwidget.ui:49 +#, kde-format +msgid "Wra&p words at:" +msgstr "A&justa les paraules a:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbWordWrap) +#: dialogs/editconfigwidget.ui:59 +#, kde-format +msgid "" +"If the Word Wrap option is selected this entry determines the length (in " +"characters) at which the editor will automatically start a new line." +msgstr "" +"Si s'ha seleccionat l'opció d'ajust de les paraules, esta entrada " +"determinarà la llargària (en caràcters) en què l'editor iniciarà " +"automàticament una línia nova." + +#. i18n: ectx: property (text), widget (QLabel, lblInputMode) +#: dialogs/editconfigwidget.ui:91 +#, kde-format +msgid "Default input mode:" +msgstr "Mode d'entrada predeterminat:" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/editconfigwidget.ui:120 +#, kde-format +msgid "Brackets:" +msgstr "Claus:" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoBrackets) +#: dialogs/editconfigwidget.ui:127 +#, kde-format +msgid "Automatically close brackets when opening bracket is typed" +msgstr "Tanca automàticament les claus quan es teclege una clau d'obertura" + +#. i18n: ectx: property (whatsThis), widget (QLabel, lbEncloseSelection) +#: dialogs/editconfigwidget.ui:140 +#, kde-format +msgid "" +"When some text is selected these chars will be added on both its sides in a " +"way \"Auto Bracket\" do" +msgstr "" +"Quan hi ha text seleccionat, s'afegiran estos caràcters en ambdós extrems de " +"manera pareixent a com ho fa «Parèntesis automàtics»" + +#. i18n: ectx: property (text), widget (QLabel, lbEncloseSelection) +#: dialogs/editconfigwidget.ui:143 +#, kde-format +msgid "Enclosing characters:" +msgstr "Caràcters de tancament:" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/editconfigwidget.ui:166 +#, kde-format +msgid "Copy and paste:" +msgstr "Copia i apega:" + +#. i18n: ectx: property (text), widget (QCheckBox, chkTextDragAndDrop) +#: dialogs/editconfigwidget.ui:173 +#, kde-format +msgid "Move selected text when dragged" +msgstr "Mou el text seleccionat en arrossegar" + +#. i18n: ectx: property (text), widget (QCheckBox, chkSmartCopyCut) +#: dialogs/editconfigwidget.ui:180 +#, kde-format +msgid "Copy/cut the current line if invoked without any text selected" +msgstr "Copia/retalla la línia actual si s'invoca sense cap text seleccionat" + +#. i18n: ectx: property (text), widget (QCheckBox, chkMousePasteAtCursorPosition) +#: dialogs/editconfigwidget.ui:187 +#, kde-format +msgid "Don't move the text cursor when pasting by mouse" +msgstr "No moure el cursor de text en apegar amb el ratolí" + +#. i18n: ectx: property (text), widget (QLabel, lblClipboardHistoryEntries) +#: dialogs/editconfigwidget.ui:194 +#, kde-format +msgid "Max Clipboard History Entries:" +msgstr "Màx. d'entrades de l'historial del porta-retalls:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbClipboardHistoryEntries) +#: dialogs/editconfigwidget.ui:204 +#, kde-format +msgid "This determines the number of entries to keep in the clipboard history" +msgstr "" +"Determina el nombre d'entrades que s'han de mantindre en l'historial del " +"porta-retalls" + +#. i18n: ectx: property (text), widget (QLabel, lblBracketHelp) +#: dialogs/editconfigwidget.ui:226 +#, kde-format +msgid "" +"When you type these characters while text is selected, they will surround " +"the selected text instead of replacing it." +msgstr "" +"Quan es teclegen estos caràcters mentre hi haja text seleccionat, envoltaran " +"el text seleccionat en lloc de reemplaçar-lo." + +#. i18n: ectx: property (text), widget (QCheckBox, chkAccessibility) +#: dialogs/editconfigwidget.ui:252 +#, kde-format +msgid "Enable accessibility notifications" +msgstr "Activa les notificacions d'accessibilitat" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/editconfigwidget.ui:259 +#, kde-format +msgid "Accessibility:" +msgstr "Accessibilitat:" + +#. i18n: ectx: property (text), widget (QLabel, lblFiletype) +#: dialogs/filetypeconfigwidget.ui:14 +#, kde-format +msgid "&Filetype:" +msgstr "Tipus de fi&txer:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbFiletypes) +#: dialogs/filetypeconfigwidget.ui:24 +#, kde-format +msgid "Select the filetype you want to change." +msgstr "Trieu el tipus de fitxer que voleu canviar." + +#. i18n: ectx: property (whatsThis), widget (QPushButton, btnNew) +#: dialogs/filetypeconfigwidget.ui:31 +#, kde-format +msgid "Create a new file type." +msgstr "Crea un tipus de fitxer nou." + +#. i18n: ectx: property (text), widget (QPushButton, btnNew) +#: dialogs/filetypeconfigwidget.ui:34 +#, kde-format +msgid "&New" +msgstr "&Nou" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, btnDelete) +#: dialogs/filetypeconfigwidget.ui:41 +#, kde-format +msgid "Delete the current file type." +msgstr "Suprimix el tipus de fitxer actual." + +#. i18n: ectx: property (text), widget (QPushButton, btnDelete) +#: dialogs/filetypeconfigwidget.ui:44 syntax/katethemeconfig.cpp:1132 +#, kde-format +msgid "&Delete" +msgstr "Sup&rimix" + +#. i18n: ectx: property (title), widget (QGroupBox, gbProperties) +#: dialogs/filetypeconfigwidget.ui:66 mode/katemodeconfigpage.cpp:272 +#, kde-format +msgid "Properties" +msgstr "Propietats" + +#. i18n: ectx: property (text), widget (QLabel, lblName) +#: dialogs/filetypeconfigwidget.ui:72 +#, kde-format +msgid "&Name:" +msgstr "&Nom:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtName) +#: dialogs/filetypeconfigwidget.ui:82 +#, kde-format +msgid "" +"The name of the filetype will be the text of the corresponding menu item." +msgstr "" +"El nom del tipus de fitxer serà el text de l'element corresponent del menú." + +#. i18n: ectx: property (text), widget (QLabel, lblSection) +#: dialogs/filetypeconfigwidget.ui:89 +#, kde-format +msgid "&Section:" +msgstr "&Secció:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtSection) +#: dialogs/filetypeconfigwidget.ui:99 +#, kde-format +msgid "The section name is used to organize the file types in menus." +msgstr "" +"El nom de la secció s'utilitza per a organitzar els tipus de fitxer en els " +"menús." + +#. i18n: ectx: property (text), widget (QLabel, lblVariables) +#: dialogs/filetypeconfigwidget.ui:106 +#, kde-format +msgid "&Variables:" +msgstr "&Variables:" + +#. i18n: ectx: property (whatsThis), widget (VariableLineEdit, edtVariables) +#: dialogs/filetypeconfigwidget.ui:116 +#, kde-format +msgid "" +"

This string allows to configure Kate's settings for the files selected by " +"this mimetype using Kate variables. Almost any configuration option can be " +"set, such as highlight, indent-mode, encoding, etc.

For a full list of " +"known variables, see the manual.

" +msgstr "" +"

Esta cadena permet configurar els paràmetres de Kate per als fitxers " +"seleccionats per este tipus MIME utilitzant les variables de Kate. Quasi es " +"pot establir qualsevol opció de configuració, com el ressaltat, el mode de " +"sagnat, la codificació, etc.

Per a una llista completa de les " +"variables conegudes, vegeu el manual.

" + +#. i18n: ectx: property (text), widget (QLabel, lblHl) +#: dialogs/filetypeconfigwidget.ui:123 +#, kde-format +msgid "&Highlighting:" +msgstr "&Ressaltat:" + +#. i18n: ectx: property (text), widget (QLabel, lblIndenter) +#: dialogs/filetypeconfigwidget.ui:136 +#, kde-format +msgid "&Indentation mode:" +msgstr "Mode de &sagnat:" + +#. i18n: ectx: property (text), widget (QLabel, lblExtensions) +#: dialogs/filetypeconfigwidget.ui:149 +#, kde-format +msgid "File e&xtensions:" +msgstr "E&xtensions de fitxer:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtFileExtensions) +#: dialogs/filetypeconfigwidget.ui:159 +#, kde-format +msgid "" +"The wildcards mask allows to select files by filename. A typical mask uses " +"an asterisk and the file extension, for example *.txt; *.text. " +"The string is a semicolon-separated list of masks." +msgstr "" +"Les màscares amb comodins permeten seleccionar fitxers per un nom de fitxer. " +"Una màscara típica utilitza un asterisc i l'extensió del fitxer, per exemple " +"*.txt; *.text. La cadena és una llista de màscares separades " +"per un punt i coma." + +#. i18n: ectx: property (text), widget (QLabel, lblMimeTypes) +#: dialogs/filetypeconfigwidget.ui:166 +#, kde-format +msgid "MIME &types:" +msgstr "&Tipus MIME:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtMimeTypes) +#: dialogs/filetypeconfigwidget.ui:181 +#, kde-format +msgid "" +"The mime type mask allows to select files by mimetype. The string is a " +"semicolon-separated list of mimetypes, for example text/plain; text/" +"english." +msgstr "" +"Les màscares de tipus MIME permeten seleccionar fitxers pel tipus MIME. La " +"cadena és una llista de tipus MIME separats per un punt i coma, per exemple " +"text/plain; text/english." + +#. i18n: ectx: property (whatsThis), widget (QToolButton, btnMimeTypes) +#: dialogs/filetypeconfigwidget.ui:188 +#, kde-format +msgid "Displays a wizard that helps you easily select mimetypes." +msgstr "" +"Mostra un auxiliar que us ajuda a seleccionar els tipus MIME amb facilitat." + +#. i18n: ectx: property (text), widget (QLabel, lblPriority) +#: dialogs/filetypeconfigwidget.ui:197 +#, kde-format +msgid "P&riority:" +msgstr "P&rioritat:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbPriority) +#: dialogs/filetypeconfigwidget.ui:207 +#, kde-format +msgid "" +"Sets priority for this file type. If more than one file type selects the " +"same file, the one with the highest priority will be used." +msgstr "" +"Establix la prioritat per a este tipus de fitxer. Si un fitxer quadra amb " +"més d'un tipus de fitxer, s'utilitzarà el de prioritat més alta." + +#. i18n: ectx: property (text), widget (QLabel, lblMode) +#: dialogs/indentationconfigwidget.ui:43 +#, kde-format +msgid "Default indentation mode:" +msgstr "Mode de sagnat predeterminat:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbMode) +#: dialogs/indentationconfigwidget.ui:53 +#, kde-format +msgid "" +"This is a list of available indentation modes. The specified indentation " +"mode will be used for all new documents. Be aware that it is also possible " +"to set the indentation mode with document variables, modes or a .kateconfig " +"file." +msgstr "" +"Esta és una llista dels modes de sagnat disponibles. El mode de sagnat " +"especificat s'utilitzarà per a tots els documents nous. Cal tindre present " +"que es pot establir el mode de sagnat amb les variables dels documents, amb " +"els modes o amb un fitxer «.kateconfig»." + +#. i18n: ectx: property (title), widget (QGroupBox, gbIndentationMode) +#: dialogs/indentationconfigwidget.ui:75 +#, kde-format +msgid "Indent using" +msgstr "Ús del sagnat" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbIndentWidth) +#: dialogs/indentationconfigwidget.ui:81 +#, kde-format +msgid "" +"The indentation width is the number of spaces which is used to indent a " +"line. If the option Insert spaces instead of tabulators in the " +"section Editing is disabled, a Tab character is inserted if " +"the indentation is divisible by the tab width." +msgstr "" +"L'amplària del sagnat és el nombre d'espais que s'utilitzen per a sagnar una " +"línia. Si l'opció Inserix espais en lloc de tabuladors en la secció " +"Edició està desactivada, s'inserirà un caràcter de tabulació " +"si el sagnat és divisible per l'amplària de la tabulació." + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentWithSpaces) +#: dialogs/indentationconfigwidget.ui:97 +#, kde-format +msgid "&Spaces" +msgstr "&Espais" + +#. i18n: ectx: property (text), widget (QLabel, lblIndentWidth) +#: dialogs/indentationconfigwidget.ui:104 +#, kde-format +msgid "&Indentation width:" +msgstr "Amplària del sa&gnat:" + +#. i18n: ectx: property (text), widget (QLabel, lblTabWidth) +#: dialogs/indentationconfigwidget.ui:114 +#, kde-format +msgid "Tab wi&dth:" +msgstr "A&mplària de la tabulació:" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentWithTabs) +#: dialogs/indentationconfigwidget.ui:153 +#, kde-format +msgid "&Tabulators" +msgstr "&Tabulacions" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentMixed) +#: dialogs/indentationconfigwidget.ui:160 +#, kde-format +msgid "Tabulators &and Spaces" +msgstr "Tabuladors &i espais" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoDetectIndent) +#: dialogs/indentationconfigwidget.ui:167 +#, kde-format +msgid "Automatically detect file indentation" +msgstr "Detecta automàticament el sagnat del fitxer" + +#. i18n: ectx: property (title), widget (QGroupBox, gbProperties) +#: dialogs/indentationconfigwidget.ui:177 +#, kde-format +msgid "Indentation Properties" +msgstr "Propietats del sagnat" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkKeepExtraSpaces) +#: dialogs/indentationconfigwidget.ui:183 +#, kde-format +msgid "" +"If this option is disabled, changing the indentation level aligns a line to " +"a multiple of the width specified in Indentation width." +msgstr "" +"Si es desmarca esta opció, en canviar el nivell de sagnat, les línies " +"s'alinearan a un múltiple de l'amplària especificada a Amplària del " +"sagnat." + +#. i18n: ectx: property (text), widget (QCheckBox, chkKeepExtraSpaces) +#: dialogs/indentationconfigwidget.ui:186 +#, kde-format +msgid "&Keep extra spaces" +msgstr "&Conserva els espais extres" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkIndentPaste) +#: dialogs/indentationconfigwidget.ui:193 +#, kde-format +msgid "" +"If this option is selected, pasted code from the clipboard is indented. " +"Triggering the undo-action removes the indentation." +msgstr "" +"Si es marca esta opció, se sagnarà el codi apegat des del porta-retalls. En " +"activar l'acció de desfer s'eliminarà el sagnat." + +#. i18n: ectx: property (text), widget (QCheckBox, chkIndentPaste) +#: dialogs/indentationconfigwidget.ui:196 +#, kde-format +msgid "Adjust indentation of code &pasted from the clipboard" +msgstr "Ajusta el sagnat del codi a&pegat des del porta-retalls" + +#. i18n: ectx: property (title), widget (QGroupBox, gbKeys) +#: dialogs/indentationconfigwidget.ui:206 +#, kde-format +msgid "Indentation Actions" +msgstr "Accions del sagnat" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackspaceUnindents) +#: dialogs/indentationconfigwidget.ui:212 +#, kde-format +msgid "" +"If this option is selected, the Backspace key decreases the " +"indentation level if the cursor is located in the leading blank space of a " +"line." +msgstr "" +"Si es marca esta opció, la tecla de Retrocés disminuirà el nivell de " +"sagnat si el cursor està ubicat en l'espai en blanc inicial d'una línia." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackspaceUnindents) +#: dialogs/indentationconfigwidget.ui:215 +#, kde-format +msgid "&Backspace key in leading blank space unindents" +msgstr "La tecla de &retrocés en un espai en blanc inicial desfà el sagnat" + +# skip-rule: t-pu_sp +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/indentationconfigwidget.ui:225 +#, kde-format +msgid "" +"\n" +"

Tab key action (if no selection exists) Tab " +"to align the current line in the current code block like in Emacs, make " +"Tab a shortcut to the action Format Indentation." +"\">More ...

Tab key action (if no selection exists) Tab " +"to align the current line in the current code block like in Emacs, make " +"Tab a shortcut to the action Format Indentation." +"\">More ...

" +msgstr "" +"\n" +"

Acció de la tecla de tabulació (si no existix cap selecció) tabulador alinee la línia actual al bloc de codi actual " +"com en Emacs, convertiu el tabulador en una drecera cap a l'acció " +"Format del sagnat.\">Més…

" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabAdvances) +#: dialogs/indentationconfigwidget.ui:276 +#, kde-format +msgid "" +"If this option is selected, the Tab key always inserts white space so " +"that the next tab position is reached. If the option Insert spaces " +"instead of tabulators in the section Editing is enabled, spaces " +"are inserted; otherwise, a single tabulator is inserted." +msgstr "" +"Si es marca esta opció, la tecla de tabulació sempre inserirà espais " +"en blanc fins a la posició següent de tabulació. Si l'opció Inserix " +"espais en lloc de tabuladors de la secció Edició està activada, " +"s'inseriran espais, altrament s'inserirà una única tabulació." + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabAdvances) +#: dialogs/indentationconfigwidget.ui:279 +#, kde-format +msgid "Always advance to the &next tab position" +msgstr "Avança sempre fins a la posició de la tabulació següe&nt" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabIndents) +#: dialogs/indentationconfigwidget.ui:286 +#, kde-format +msgid "" +"If this option is selected, the Tab key always indents the current " +"line by the number of character positions specified in Indentation width." +msgstr "" +"Si es marca esta opció, la tecla de tabulació sempre sagnarà la línia " +"actual amb el nombre de posicions indicades a Amplària del sagnat." + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabIndents) +#: dialogs/indentationconfigwidget.ui:289 +#, kde-format +msgid "Always increase indentation &level" +msgstr "Augmenta sempre el nive&ll de sagnat" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabSmart) +#: dialogs/indentationconfigwidget.ui:296 +#, kde-format +msgid "" +"If this option is selected, the Tab key either indents the current " +"line or advances to the next tab position.

If the insertion point is at " +"or before the first non-space character in the line, or if there is a " +"selection, the current line is indented by the number of character positions " +"specified in Indentation width.

If the insertion point is located " +"after the first non-space character in the line and there is no selection, " +"white space is inserted so that the next tab position is reached: if the " +"option Insert spaces instead of tabulators in the section Editing is enabled, spaces are inserted; otherwise, a single tabulator is " +"inserted." +msgstr "" +"Si es marca esta opció, la tecla de tabulació sagnarà la línia actual " +"o avançarà fins a la posició de tabulació següent.

Si el punt d'inserció " +"està en el primer caràcter no en blanc o abans de la línia, o hi ha una " +"selecció, la línia actual se sagnarà en el nombre de posicions indicades a " +"Amplària del sagnat.

Si el punt d'inserció està després del primer " +"caràcter no en blanc de la línia i no hi ha cap selecció, s'inserirà un " +"espai en blanc de manera que s'arribe a la posició de la tabulació següent: " +"si l'opció Inserix espais en lloc de tabuladors de la secció " +"Edició està activada, s'inseriran espais. Altrament, s'inserirà una " +"única tabulació." + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabSmart) +#: dialogs/indentationconfigwidget.ui:299 +#, kde-format +msgid "Increase indentation level if in l&eading blank space" +msgstr "Augmenta el nivell de sagnat en un &espai en blanc inicial" + +#: dialogs/katedialogs.cpp:185 dialogs/katedialogs.cpp:187 +#, kde-format +msgid "%v character" +msgid_plural "%v characters" +msgstr[0] "%v caràcter" +msgstr[1] "%v caràcters" + +#: dialogs/katedialogs.cpp:211 +#, kde-format +msgid "Indentation" +msgstr "Sagnat" + +#: dialogs/katedialogs.cpp:295 +#, kde-format +msgid "Auto Completion" +msgstr "Compleció automàtica" + +#: dialogs/katedialogs.cpp:362 +#, kde-format +msgid "Spellcheck" +msgstr "Verificació ortogràfica" + +#: dialogs/katedialogs.cpp:410 dialogs/katedialogs.cpp:417 +#, kde-format +msgid "Alt" +msgstr "Alt" + +#: dialogs/katedialogs.cpp:411 dialogs/katedialogs.cpp:419 +#, kde-format +msgid "Ctrl" +msgstr "Ctrl" + +#: dialogs/katedialogs.cpp:412 +#, kde-format +msgid "Meta" +msgstr "Meta" + +#: dialogs/katedialogs.cpp:413 dialogs/katedialogs.cpp:421 +#, kde-format +msgid "Ctrl + Alt" +msgstr "Ctrl+Alt" + +#: dialogs/katedialogs.cpp:414 +#, kde-format +msgid "Meta + Alt" +msgstr "Meta+Alt" + +#: dialogs/katedialogs.cpp:415 +#, kde-format +msgid "Ctrl + Meta" +msgstr "Ctrl+Meta" + +#: dialogs/katedialogs.cpp:418 +#, kde-format +msgid "Cmd" +msgstr "Ordre" + +#: dialogs/katedialogs.cpp:420 +#, kde-format +msgid "Cmd + Alt" +msgstr "Ordre+Alt" + +#: dialogs/katedialogs.cpp:422 +#, kde-format +msgid "Cmd + Ctrl" +msgstr "Ordre+Ctrl" + +#: dialogs/katedialogs.cpp:480 +#, kde-format +msgid "Text Navigation" +msgstr "Navegueu pel text" + +#: dialogs/katedialogs.cpp:582 +#, kde-format +msgctxt "Wrap words at (value is at 20 or larger)" +msgid "%v character" +msgid_plural "%v characters" +msgstr[0] "%v caràcter" +msgstr[1] "%v caràcters" + +#: dialogs/katedialogs.cpp:587 +#, kde-format +msgid "Feature is not active" +msgstr "La característica no està activa" + +#: dialogs/katedialogs.cpp:589 +#, kde-format +msgid "Disable Feature" +msgstr "Desactiva la característica" + +#: dialogs/katedialogs.cpp:591 +#, kde-format +msgid "May be handy with Markdown" +msgstr "Pot ser útil amb Markdown" + +#: dialogs/katedialogs.cpp:593 +#, kde-format +msgid "Mirror characters, similar but not exactly like auto brackets" +msgstr "" +"Caràcters en espill, pareixent però no igual que els Parèntesis automàtics" + +#: dialogs/katedialogs.cpp:595 +#, kde-format +msgid "Non letter character" +msgstr "Caràcter de no lletra" + +#: dialogs/katedialogs.cpp:712 +#, kde-format +msgid "Editing" +msgstr "Edició" + +#: dialogs/katedialogs.cpp:717 +#, kde-format +msgid "Editing Options" +msgstr "Opcions de l'edició" + +#: dialogs/katedialogs.cpp:751 +#, kde-format +msgid "Statusbar" +msgstr "Barra d'estat" + +#: dialogs/katedialogs.cpp:753 +#, kde-format +msgid "Off" +msgstr "Inactiu" + +#: dialogs/katedialogs.cpp:754 +#, kde-format +msgid "Follow Line Numbers" +msgstr "Seguix els números de línia" + +#: dialogs/katedialogs.cpp:945 dialogs/katedialogs.cpp:950 +#, kde-format +msgid "Appearance" +msgstr "Aparença" + +#: dialogs/katedialogs.cpp:986 +#, kde-format +msgid "" +"%1 backs up unsaved files to \"swap files.\" Swap files allow %1 to recover " +"your work in the case of a system crash. Disabling swap files may cause data " +"loss in case of a system crash." +msgstr "" +"%1 farà còpies de seguretat dels fitxers sense guardar a «swap " +"files» (fitxer d'intercanvi). Els fitxers d'intercanvi permeten que %1 " +"recupere el treball en cas d'una fallada del sistema. La desactivació dels " +"fitxers d'intercanvi pot provocar la pèrdua de dades en cas d'una fallada " +"del sistema." + +#: dialogs/katedialogs.cpp:1027 +#, kde-format +msgid "Advanced" +msgstr "Avançat" + +#: dialogs/katedialogs.cpp:1092 +#, kde-format +msgid "" +"You did not provide a backup suffix or prefix. Using default suffix: '~'" +msgstr "" +"No heu proporcionat cap sufix o prefix de les còpies de seguretat. De manera " +"predeterminada, s'utilitzarà: «~»" + +#: dialogs/katedialogs.cpp:1092 +#, kde-format +msgid "No Backup Suffix or Prefix" +msgstr "Sense sufix o prefix de la còpia de seguretat" + +#: dialogs/katedialogs.cpp:1227 +#, kde-format +msgid "Open/Save" +msgstr "Obri i guarda" + +#: dialogs/katedialogs.cpp:1232 +#, kde-format +msgid "File Opening & Saving" +msgstr "Òbriga i guarda fitxers" + +#: dialogs/katedialogs.cpp:1255 +#, kde-format +msgid "&Line:" +msgstr "&Línia:" + +#: dialogs/katedialogs.cpp:1256 +#, kde-format +msgid "Go to line number from clipboard" +msgstr "Va fins al número de línia des del porta-retalls" + +#: dialogs/katedialogs.cpp:1267 +#, kde-format +msgid "Go to" +msgstr "Ves fins a" + +#: dialogs/katedialogs.cpp:1347 +#, kde-format +msgid "No valid line number found in clipboard" +msgstr "No s'ha trobat cap número vàlid de línia a dins del porta-retalls" + +#: dialogs/katedialogs.cpp:1411 +#, kde-format +msgid "Dictionary:" +msgstr "Diccionari:" + +#: dialogs/katedialogs.cpp:1463 +#, kde-format +msgid "Enable Auto Reload" +msgstr "Activa la recàrrega automàtica" + +#: dialogs/katedialogs.cpp:1466 +#, kde-format +msgid "" +"Reloads and will automatically reload without warning about disk changes " +"from now until you close either the tab or window." +msgstr "" +"Torna a carregar i es tornarà a carregar automàticament sense previ avís " +"sobre els canvis del disc des d'ara fins que tanqueu la pestanya o la " +"finestra." + +#: dialogs/katedialogs.cpp:1471 +#, kde-format +msgid "View &Difference" +msgstr "Visualitza la &diferència" + +#: dialogs/katedialogs.cpp:1473 +#, kde-format +msgid "Shows a diff of the changes." +msgstr "Mostra un «diff» dels canvis." + +#: dialogs/katedialogs.cpp:1478 +#, kde-format +msgid "&Reload" +msgstr "Torna a ca&rregar" + +#: dialogs/katedialogs.cpp:1480 +#, kde-format +msgid "Reloads the file from disk. Unsaved changes will be lost." +msgstr "" +"Torna a carregar el fitxer des del disc. Els canvis no guardats es perdran." + +#: dialogs/katedialogs.cpp:1484 +#, kde-format +msgctxt "@action:button closes the opened file" +msgid "&Close File" +msgstr "Tan&ca el fitxer" + +#: dialogs/katedialogs.cpp:1486 +#, kde-format +msgid "Closes the file, discarding its content." +msgstr "Tanca el fitxer i descarta el seu contingut." + +#: dialogs/katedialogs.cpp:1490 +#, kde-format +msgctxt "@action" +msgid "&Save As…" +msgstr "Anomena i gu&arda…" + +#: dialogs/katedialogs.cpp:1492 +#, kde-format +msgid "Lets you select a location and save the file again." +msgstr "Us permet seleccionar una ubicació i tornar a guardar el fitxer." + +#. i18n: ectx: property (text), widget (QPushButton, m_skipBtn) +#: dialogs/katedialogs.cpp:1497 spellcheck/spellcheckbar.ui:143 +#, kde-format +msgid "&Ignore" +msgstr "&Ignora" + +#: dialogs/katedialogs.cpp:1498 +#, kde-format +msgid "Ignores the changes on disk without any action." +msgstr "Ignora els canvis en el disc sense cap acció." + +#: dialogs/katedialogs.cpp:1567 swapfile/kateswapdiffcreator.cpp:131 +#, kde-format +msgid "" +"The diff command failed. Please make sure that diff(1) is installed and in " +"your PATH." +msgstr "" +"No s'ha pogut executar l'ordre «diff». Assegureu-vos que diff(1) està " +"instal·lat i que es troba en la PATH." + +#: dialogs/katedialogs.cpp:1569 swapfile/kateswapdiffcreator.cpp:89 +#: swapfile/kateswapdiffcreator.cpp:99 swapfile/kateswapdiffcreator.cpp:133 +#, kde-format +msgid "Error Creating Diff" +msgstr "S'ha produït un error mentre es creava «diff»" + +#: dialogs/katedialogs.cpp:1576 swapfile/kateswapdiffcreator.cpp:140 +#, kde-format +msgid "The files are identical." +msgstr "Els fitxers són idèntics." + +#: dialogs/katedialogs.cpp:1576 swapfile/kateswapdiffcreator.cpp:140 +#, kde-format +msgid "Diff Output" +msgstr "Eixida de «diff»" + +#. i18n: ectx: property (title), widget (QGroupBox, gbCursorMovement) +#: dialogs/navigationconfigwidget.ui:29 +#, kde-format +msgid "Text Cursor Movement" +msgstr "Moviment del cursor en el text" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkSmartHome) +#: dialogs/navigationconfigwidget.ui:35 +#, kde-format +msgid "" +"When selected, pressing the home key will cause the cursor to skip " +"whitespace and go to the start of a line's text. The same applies for the " +"end key." +msgstr "" +"Quan es marca, en prémer la tecla d'inici el cursor ignorarà els espais en " +"blanc i anirà fins al començament d'una línia de text. El mateix s'aplica a " +"la tecla de final." + +#. i18n: ectx: property (text), widget (QCheckBox, chkSmartHome) +#: dialogs/navigationconfigwidget.ui:38 +#, kde-format +msgid "Smart ho&me and smart end" +msgstr "I&nici i final intel·ligents" + +# skip-rule: k-PageDown-1 +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkPagingMovesCursor) +#: dialogs/navigationconfigwidget.ui:45 +#, kde-format +msgid "" +"Selects whether the PageUp and PageDown keys should alter the vertical " +"position of the cursor relative to the top of the view." +msgstr "" +"Tria quan les tecles d'avançar o retrocedir pàgina haurien d'alterar la " +"posició vertical del cursor en relació amb la part superior de la vista." + +#. i18n: ectx: property (text), widget (QCheckBox, chkPagingMovesCursor) +#: dialogs/navigationconfigwidget.ui:48 +#, kde-format +msgid "&PageUp/PageDown moves cursor" +msgstr "«&Av Pàg»/«Re Pàg» mouen el cursor" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkCamelCursor) +#: dialogs/navigationconfigwidget.ui:55 +#, kde-format +msgid "" +"Selects whether cursor stops at camel case humps and underscores within a " +"word." +msgstr "" +"Tria si el cursor es para a les gepes de les majúscules per parts i guions " +"baixos en una paraula." + +#. i18n: ectx: property (text), widget (QCheckBox, chkCamelCursor) +#: dialogs/navigationconfigwidget.ui:58 +#, kde-format +msgid "" +"Stop at 'camelCase' and 'snake_case' subwords when moving the cursor by word" +msgstr "" +"Es para a les subparaules de les gepes de les majúscules per parts " +"(«camelCase») i els guions baixos («snake_case») en moure el cursor per " +"paraules" + +#. i18n: ectx: property (text), widget (QLabel, lblAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:79 +#, kde-format +msgid "&Autocenter cursor:" +msgstr "Centra &automàticament el cursor:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:89 +#, kde-format +msgid "" +"Sets the number of lines to maintain visible above and below the cursor when " +"possible." +msgstr "" +"Establix el nombre de línies que es mantindran visibles per damunt i per " +"davall del cursor, sempre que siga possible." + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, spbSwapFileSync) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:92 dialogs/opensaveconfigadvwidget.ui:120 +#: dialogs/opensaveconfigadvwidget.ui:168 +#, kde-format +msgid "Disabled" +msgstr "Desactivat" + +#. i18n: ectx: property (suffix), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:95 +#, kde-format +msgid " lines" +msgstr " línies" + +#. i18n: ectx: property (title), widget (QGroupBox, cbNavigationMisc) +#: dialogs/navigationconfigwidget.ui:120 +#, kde-format +msgid "Misc" +msgstr "Miscelània" + +#. i18n: ectx: property (text), widget (QLabel, lblTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:128 +#, kde-format +msgid "Text selection mode:" +msgstr "Mode de selecció del text:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:139 inputmode/katenormalinputmode.cpp:64 +#: mode/katemodemanager.cpp:162 +#, kde-format +msgid "Normal" +msgstr "Normal" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:144 +#, kde-format +msgid "Persistent" +msgstr "Persistent" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollPastEnd) +#: dialogs/navigationconfigwidget.ui:167 +#, kde-format +msgid "Allow scrolling past the end of the document" +msgstr "Permet el desplaçament més enllà del final del document" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackspaceRemoveComposed) +#: dialogs/navigationconfigwidget.ui:174 +#, kde-format +msgid "" +"When selected, composed characters are removed with their diacritics instead " +"of only removing the base character. This is useful for Indic locales." +msgstr "" +"Quan estan seleccionats, els caràcters compostos s'eliminen amb els seus " +"diacrítics en lloc d'eliminar només el caràcter base. Açò és útil per a les " +"configuracions regionals de l'Índic." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackspaceRemoveComposed) +#: dialogs/navigationconfigwidget.ui:177 +#, kde-format +msgid "Backspace key removes character’s base with its diacritics" +msgstr "" +"La tecla «Retrocés» elimina la base dels caràcters amb els seus diacrítics" + +#. i18n: ectx: property (text), widget (QCheckBox, cbCycleBookmarks) +#: dialogs/navigationconfigwidget.ui:184 +#, kde-format +msgid "Allow to cycle through bookmarks" +msgstr "Permet circular entre els punts" + +#. i18n: ectx: property (title), widget (QGroupBox, gbMulticursor) +#: dialogs/navigationconfigwidget.ui:194 +#, kde-format +msgid "Multicursor" +msgstr "Multicursor" + +#. i18n: ectx: property (text), widget (QLabel, lblMulticursormodifiers) +#: dialogs/navigationconfigwidget.ui:200 +#, kde-format +msgid "Multiple Cursor Modifiers" +msgstr "Modificadors de cursor múltiples" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoReloadVersionControl) +#: dialogs/opensaveconfigadvwidget.ui:34 +#, kde-format +msgid "Auto reload files in version control" +msgstr "Torna a carregar automàticament els fitxers en el control de versions" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoReloadOnExternalChanges) +#: dialogs/opensaveconfigadvwidget.ui:41 +#, kde-format +msgid "Auto reload files on external changes" +msgstr "Torna a carregar automàticament els fitxers quan hi ha canvis externs" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/opensaveconfigadvwidget.ui:48 +#, kde-format +msgid "Write a backup file on save for:" +msgstr "Introduïu un fitxer a on s'han de guardar les còpies de seguretat:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackupLocalFiles) +#: dialogs/opensaveconfigadvwidget.ui:55 +#, kde-format +msgid "" +"If this option is enabled, backups for local files will be created when " +"saving." +msgstr "" +"Si està marcada, en guardar es crearan còpies de seguretat dels fitxers " +"locals." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackupLocalFiles) +#: dialogs/opensaveconfigadvwidget.ui:58 +#, kde-format +msgid "&Local files" +msgstr "Fitxers &locals" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackupRemoteFiles) +#: dialogs/opensaveconfigadvwidget.ui:65 +#, kde-format +msgid "" +"If this option is enabled, backups for remote files will be created when " +"saving." +msgstr "" +"Si està marcada, en guardar es crearan còpies de seguretat dels fitxers " +"remots." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackupRemoteFiles) +#: dialogs/opensaveconfigadvwidget.ui:68 +#, kde-format +msgid "&Remote files" +msgstr "Fitxers &remots" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/opensaveconfigadvwidget.ui:75 +#, kde-format +msgid "Prefix for backup files:" +msgstr "Prefix dels fitxers de còpia de seguretat:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtBackupPrefix) +#: dialogs/opensaveconfigadvwidget.ui:85 +#, kde-format +msgid "Enter the prefix to prepend to the backup file names." +msgstr "" +"Introduïu el prefix que precedirà al nom dels fitxers de còpia de seguretat." + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/opensaveconfigadvwidget.ui:92 +#, kde-format +msgid "Suffix for backup files:" +msgstr "Sufix dels fitxers de còpia de seguretat:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtBackupSuffix) +#: dialogs/opensaveconfigadvwidget.ui:102 +#, kde-format +msgid "Enter the suffix to append to the backup file names." +msgstr "" +"Introduïu el sufix que s'afegirà al nom dels fitxers de còpia de seguretat." + +#. i18n: ectx: property (text), widget (QLabel, lblSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:109 +#, kde-format +msgid "Swap file mode:" +msgstr "Mode del fitxer d'intercanvi:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:125 +#, kde-format +msgid "Enabled, Store In Default Directory" +msgstr "Activat, emmagatzematge en el directori predeterminat" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:130 +#, kde-format +msgid "Enabled, Store In Custom Directory" +msgstr "Activat, emmagatzematge en un directori personalitzat" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapDirectory) +#: dialogs/opensaveconfigadvwidget.ui:138 +#, kde-format +msgid "Store swap files in:" +msgstr "Emmagatzema els fitxers d'intercanvi a:" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapFileSync) +#: dialogs/opensaveconfigadvwidget.ui:158 +#, kde-format +msgid "Save swap files every:" +msgstr "Guarda els fitxers d'intercanvi cada:" + +#. i18n: ectx: property (suffix), widget (QSpinBox, spbSwapFileSync) +#: dialogs/opensaveconfigadvwidget.ui:171 +#, kde-format +msgid "s" +msgstr "s" + +#. i18n: ectx: property (text), widget (QLabel, lblExplanatory) +#: dialogs/opensaveconfigadvwidget.ui:196 +#, kde-format +msgid "" +"This string is located in katedialogs.cpp in KateSaveConfigTab's constructor." +msgstr "" +"Esta cadena està localitzada en «katedialogs.cpp» en el constructor de " +"KateSaveConfigTab." + +#. i18n: ectx: property (text), widget (QCheckBox, chkEditorConfig) +#: dialogs/opensaveconfigadvwidget.ui:209 +#, kde-format +msgid "Honor settings in .editorconfig file" +msgstr "Respecta els paràmetres del fitxer «.editorconfig»" + +#. i18n: ectx: property (text), widget (QCheckBox, chkUseFirstLineAsDocName) +#: dialogs/opensaveconfigadvwidget.ui:229 +#, kde-format +msgid "Use first line of untitled documents for document name" +msgstr "" +"Utilitza la primera línia dels documents sense títol com a nom del document" + +#. i18n: ectx: property (title), widget (QGroupBox, gbFileFormat) +#: dialogs/opensaveconfigwidget.ui:29 +#, kde-format +msgid "File Format" +msgstr "Format del fitxer" + +#. i18n: ectx: property (text), widget (QLabel, lblEncoding) +#: dialogs/opensaveconfigwidget.ui:40 +#, kde-format +msgid "&Encoding:" +msgstr "&Codificació:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncoding) +#: dialogs/opensaveconfigwidget.ui:50 +#, kde-format +msgid "" +"This defines the standard encoding to use to open/save files, if not changed " +"in the open/save dialog or by using a command line option." +msgstr "" +"Establix la codificació estàndard que s'utilitzarà per a obrir/guardar " +"fitxers, si no s'ha canviat en el diàleg d'obrir/guardar o utilitzant una " +"opció de la línia d'ordres." + +#. i18n: ectx: property (text), widget (QLabel, lblEncodingDetection) +#: dialogs/opensaveconfigwidget.ui:57 +#, kde-format +msgid "&Encoding detection:" +msgstr "D&etecció de la codificació:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncodingDetection) +#: dialogs/opensaveconfigwidget.ui:67 +#, kde-format +msgid "" +"if neither the encoding chosen as standard above, nor the encoding specified " +"in the open/save dialog, nor the encoding specified on command line match " +"the content of the file, this detection will be run." +msgstr "" +"Si cap de les codificacions estàndard seleccionades més amunt, ni cap " +"codificació del diàleg d'obrir/guardar, ni cap codificació de la línia " +"d'ordres coincidix amb el contingut del fitxer, s'executarà esta detecció." + +#. i18n: ectx: property (text), widget (QLabel, lblEncodingDetection2) +#: dialogs/opensaveconfigwidget.ui:74 +#, kde-format +msgid "&Fallback encoding:" +msgstr "Codi&ficació alternativa:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncodingFallback) +#: dialogs/opensaveconfigwidget.ui:84 +#, kde-format +msgid "" +"This defines the fallback encoding to try for opening files if neither the " +"encoding chosen as standard above, nor the encoding specified in the open/" +"save dialog, nor the encoding specified on command line match the content of " +"the file. Before this is used, an attempt will be made to determine the " +"encoding to use by looking for a byte order mark at start of file: if one is " +"found, the right Unicode encoding will be chosen; otherwise encoding " +"detection will run, if both fail the fallback encoding will be tried." +msgstr "" +"Establix la codificació alternativa per a intentar obrir els fitxers si cap " +"de les codificacions estàndard seleccionades més amunt, ni cap codificació " +"del diàleg d'obrir/guardar, ni cap codificació de la línia d'ordres " +"coincidix amb el contingut del fitxer. Abans del seu ús, es farà una " +"temptativa per a determinar la codificació que s'utilitzarà buscant una " +"marca d'ordre de bytes al començament del fitxer: si es troba, se " +"seleccionarà la codificació Unicode correcta, altrament s'executarà la " +"detecció de la codificació, i si les dues fallen, s'intentarà amb la " +"codificació alternativa." + +#. i18n: ectx: property (text), widget (QLabel, lblEOL) +#: dialogs/opensaveconfigwidget.ui:91 +#, kde-format +msgid "E&nd of line:" +msgstr "&Final de línia:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:102 +#, kde-format +msgid "UNIX" +msgstr "UNIX" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:107 +#, kde-format +msgid "DOS/Windows" +msgstr "DOS/Windows" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:112 +#, kde-format +msgid "Macintosh" +msgstr "Macintosh" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkDetectEOL) +#: dialogs/opensaveconfigwidget.ui:122 +#, kde-format +msgid "" +"If this option is enabled the editor will autodetect the end of line type. " +"The first found end of line type will be used for the whole file." +msgstr "" +"Si està marcada, l'editor detectarà automàticament el tipus del final de " +"línia. El primer tipus per al final de línia que es trobe s'utilitzarà en " +"tot el fitxer." + +#. i18n: ectx: property (text), widget (QCheckBox, chkDetectEOL) +#: dialogs/opensaveconfigwidget.ui:125 +#, kde-format +msgid "A&utomatic end of line detection" +msgstr "Detecció a&utomàtica del final de línia" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkEnableBOM) +#: dialogs/opensaveconfigwidget.ui:132 +#, kde-format +msgid "" +"The byte order mark is a special sequence at the beginning of Unicode " +"encoded documents. It helps editors to open text documents with the correct " +"Unicode encoding. The byte order mark is not visible in the displayed " +"document." +msgstr "" +"La marca d'ordre de bytes és una seqüència especial al començament dels " +"documents codificats amb Unicode. Ajuda els editors a obrir els documents de " +"text amb la codificació Unicode correcta. La marca d'ordre de bytes no serà " +"visible en els documents visualitzats." + +#. i18n: ectx: property (text), widget (QCheckBox, chkEnableBOM) +#: dialogs/opensaveconfigwidget.ui:135 +#, kde-format +msgid "Enable byte order mark (BOM)" +msgstr "Activa la marca d'ordre de bytes" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/opensaveconfigwidget.ui:142 +#, kde-format +msgid "Line length limit:" +msgstr "Límit de llargària de la línia:" + +#. i18n: ectx: property (specialValueText), widget (QSpinBox, lineLengthLimit) +#: dialogs/opensaveconfigwidget.ui:152 +#, kde-format +msgid "Unlimited" +msgstr "Sense límit" + +#. i18n: ectx: property (title), widget (QGroupBox, gbCleanups) +#: dialogs/opensaveconfigwidget.ui:168 +#, kde-format +msgid "Automatic Cleanups on Save" +msgstr "Neteja automàtica en guardar" + +#. i18n: ectx: property (whatsThis), widget (QLabel, lblRemoveTrailingSpaces) +#. i18n: ectx: property (whatsThis), widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:176 dialogs/opensaveconfigwidget.ui:189 +#, kde-format +msgid "" +"Depending on the choice, trailing spaces are removed when saving a document, " +"either in the entire document or only of modified lines." +msgstr "" +"En funció de les preferències, s'eliminaran els espais finals en guardar el " +"document, en tot el document o només en les línies modificades." + +#. i18n: ectx: property (text), widget (QLabel, lblRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:179 +#, kde-format +msgid "Re&move trailing spaces:" +msgstr "Eli&mina els espais finals:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, spbAutoSaveInterval) +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/opensaveconfigwidget.ui:193 dialogs/opensaveconfigwidget.ui:270 +#: dialogs/textareaappearanceconfigwidget.ui:104 +#, kde-format +msgid "Never" +msgstr "Mai" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:198 +#, kde-format +msgid "On Modified Lines" +msgstr "En les línies modificades" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:203 +#, kde-format +msgid "In Entire Document" +msgstr "En tot el document" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkNewLineAtEof) +#: dialogs/opensaveconfigwidget.ui:226 +#, kde-format +msgid "" +"On save, a line break is appended to the document if not already present. " +"The line break is visible after reloading the file." +msgstr "" +"En guardar, s'afegirà un salt de línia en el document si no hi és. El salt " +"de línia es veurà després de tornar a carregar el fitxer." + +#. i18n: ectx: property (text), widget (QCheckBox, chkNewLineAtEof) +#: dialogs/opensaveconfigwidget.ui:229 +#, kde-format +msgid "Append newline at end of file on save" +msgstr "Afig una línia nova al final del fitxer en guardar" + +#. i18n: ectx: property (title), widget (QGroupBox, gbAutoSave) +#: dialogs/opensaveconfigwidget.ui:239 +#, kde-format +msgid "Enable Auto Save (local files only)" +msgstr "Activa la guardada automàtica (només fitxers locals)" + +#. i18n: ectx: property (text), widget (QCheckBox, cbAutoSaveOnFocus) +#: dialogs/opensaveconfigwidget.ui:254 +#, kde-format +msgid "Auto save document when the active document is losing focus" +msgstr "Guarda automàticament el document quan el document actiu perd el focus" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/opensaveconfigwidget.ui:263 +#, kde-format +msgid "Auto save interval:" +msgstr "Interval de la guardada automàtica:" + +#. i18n: ectx: property (suffix), widget (QSpinBox, spbAutoSaveInterval) +#: dialogs/opensaveconfigwidget.ui:273 +#, kde-format +msgid " seconds" +msgstr " segons" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowHighlightingMode) +#: dialogs/statusbarconfigwidget.ui:19 +#, kde-format +msgid "Show highlighting mode" +msgstr "Mostra el mode de ressaltat" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowInputMode) +#: dialogs/statusbarconfigwidget.ui:26 +#, kde-format +msgid "Show input mode" +msgstr "Mostra el mode d'entrada" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowActiveDictionary) +#: dialogs/statusbarconfigwidget.ui:33 +#, kde-format +msgid "Show active dictionary" +msgstr "Mostra el diccionari actiu" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowTabSetting) +#: dialogs/statusbarconfigwidget.ui:40 +#, kde-format +msgid "Show tab setting" +msgstr "Mostra la configuració dels tabuladors" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowLineColumn) +#: dialogs/statusbarconfigwidget.ui:47 +#, kde-format +msgid "Show line column" +msgstr "Mostra la columna de les línies" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowEncoding) +#: dialogs/statusbarconfigwidget.ui:54 +#, kde-format +msgid "Show File Encoding" +msgstr "Mostra la codificació del fitxer" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowEOL) +#: dialogs/statusbarconfigwidget.ui:61 +#, kde-format +msgid "Show Line Ending Type" +msgstr "Mostra el tipus de final de línia" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/textareaappearanceconfigwidget.ui:28 +#, kde-format +msgid "Editor font:" +msgstr "Lletra de l'editor:" + +#. i18n: ectx: property (text), widget (QLabel, lblLineHeight) +#: dialogs/textareaappearanceconfigwidget.ui:48 +#, kde-format +msgid "&Line Height Multiplier:" +msgstr "Multiplicador de l'alçària de les &línies:" + +#. i18n: ectx: property (toolTip), widget (QDoubleSpinBox, spbLineHeightMultiplier) +#: dialogs/textareaappearanceconfigwidget.ui:58 +#, kde-format +msgid "" +"This value will be multiplied with the font's default line height. A value " +"of 1.0 means that the default height will be used." +msgstr "" +"Este valor es multiplicarà per l'alçària predeterminada de les línies de la " +"lletra. Un valor d'1,0 vol dir que s'emprarà l'alçària predeterminada." + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/textareaappearanceconfigwidget.ui:93 +#, kde-format +msgid "Show whitespace indicators:" +msgstr "Mostra els indicadors dels espais en blanc:" + +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/textareaappearanceconfigwidget.ui:109 +#, kde-format +msgid "At the end of a line" +msgstr "Al final de línia" + +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/textareaappearanceconfigwidget.ui:114 +#, kde-format +msgid "Always" +msgstr "Sempre" + +#. i18n: ectx: property (text), widget (QLabel, lbMarkerDescription) +#: dialogs/textareaappearanceconfigwidget.ui:122 +#, kde-format +msgid "Whitespace indicator si&ze:" +msgstr "&Mida de l'indicador dels espais en blanc:" + +#. i18n: ectx: property (whatsThis), widget (QSlider, sliSetMarkerSize) +#: dialogs/textareaappearanceconfigwidget.ui:138 +#, kde-format +msgid "Size of the visible highlight marker." +msgstr "Mida del marcador de ressaltat visible." + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/textareaappearanceconfigwidget.ui:166 +#, kde-format +msgid "Show &tab indicators:" +msgstr "Mostra els indicadors dels &tabuladors:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowTabs) +#: dialogs/textareaappearanceconfigwidget.ui:176 +#, kde-format +msgid "" +"The editor will display a symbol to indicate the presence of a tab in the " +"text." +msgstr "" +"L'editor mostrarà un símbol per a indicar la presència d'un tabulador en el " +"text." + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/textareaappearanceconfigwidget.ui:202 +#, kde-format +msgid "Bracket matching:" +msgstr "Concordança de parèntesis:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowWholeBracketExpression) +#: dialogs/textareaappearanceconfigwidget.ui:209 +#, kde-format +msgid "" +"If this is enabled, the range between the selected matching brackets will be " +"highlighted." +msgstr "" +"Si està marcada, es ressaltarà l'interval entre els parèntesis emparellats " +"seleccionats." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowWholeBracketExpression) +#: dialogs/textareaappearanceconfigwidget.ui:212 +#, kde-format +msgid "Highlight range between selected brackets" +msgstr "Ressalta l'interval entre els parèntesis seleccionats" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:219 +#, kde-format +msgid "Show the matching open bracket and lines adjacent to it for context" +msgstr "" +"Mostra el parèntesi obert concordant i les seues línies adjacents per al " +"context" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:222 +#, kde-format +msgid "" +"If this is enabled, a preview of the lines near a matching open bracket is " +"shown. This can help in quickly determining the context of a closing " +"bracket, especially in long function/class declarations and deeply nested if " +"blocks" +msgstr "" +"Si està habilitada, es mostra una vista prèvia de les línies a prop d'un " +"parèntesi obert concordant. Açò pot ajudar a determinar ràpidament el " +"context d'un parèntesi de tancament, especialment en declaracions de funció/" +"classe llargues i blocs «if» profundament imbricats" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:225 +#, kde-format +msgid "Show preview of matching open bracket" +msgstr "Mostra una vista prèvia del parèntesi obert concordant" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:232 +#, kde-format +msgid "Flash matching brackets" +msgstr "Flaix dels parèntesis emparellats" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:235 +#, kde-format +msgid "" +"If this is enabled, matching brackets are animated for better visibility." +msgstr "" +"Si està marcada, els parèntesis emparellats s'animaran per a una millor " +"visibilitat." + +#. i18n: ectx: property (text), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:238 +#, kde-format +msgid "Flash matching bracket when cursor moves to other bracket in pair" +msgstr "" +"Flaix del parèntesi concordant quan el cursor es mou fins al parèntesi " +"aparellat" + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/textareaappearanceconfigwidget.ui:261 +#, kde-format +msgid "Counts:" +msgstr "Nombre:" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowWordCount) +#: dialogs/textareaappearanceconfigwidget.ui:268 +#, kde-format +msgid "Show/hide word count in status bar" +msgstr "Mostra o oculta el comptador de paraules en la barra d'estat" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowWordCount) +#: dialogs/textareaappearanceconfigwidget.ui:271 view/katestatusbar.cpp:258 +#, kde-format +msgid "Show word count" +msgstr "Mostra el comptador de paraules" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowLineCount) +#: dialogs/textareaappearanceconfigwidget.ui:278 +#, kde-format +msgid "Show/hide line count in status bar" +msgstr "Mostra o oculta el comptador de línies en la barra d'estat" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowLineCount) +#: dialogs/textareaappearanceconfigwidget.ui:281 view/katestatusbar.cpp:255 +#, kde-format +msgid "Show line count" +msgstr "Mostra el comptador de línies" + +#. i18n: ectx: property (text), widget (QLabel, label_25) +#: dialogs/textareaappearanceconfigwidget.ui:304 +#, kde-format +msgid "Fold first line:" +msgstr "Plega la primera línia:" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkFoldFirstLine) +#: dialogs/textareaappearanceconfigwidget.ui:317 +#, kde-format +msgid "" +"When this setting is enabled, the editor view automatically folds\n" +"comment blocks that start on the first line of the document. This is\n" +"helpful to hide license headers which are commonly placed at the\n" +"beginning of a file." +msgstr "" +"Quan es marca esta opció, la vista de l'editor plegarà\n" +"automàticament els blocs de comentaris que comencen a la primera\n" +"línia del document. Açò és útil per a ocultar les capçaleres de la\n" +"llicència que normalment es col·loquen al començament d'un fitxer." + +#. i18n: ectx: property (text), widget (QCheckBox, cbxWordWrap) +#: dialogs/textareaappearanceconfigwidget.ui:337 +#, kde-format +msgid "Dynamic Word Wrap:" +msgstr "Ajust dinàmic de paraules:" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDynWrapAtStaticMarker) +#: dialogs/textareaappearanceconfigwidget.ui:344 +#, kde-format +msgid "Wrap dynamically at static word wrap marker" +msgstr "Ajusta dinàmicament al marcador d'ajust estàtic de les paraules" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDynWrapAnywhere) +#: dialogs/textareaappearanceconfigwidget.ui:351 +#, kde-format +msgid "Disregard word boundaries for dynamic wrapping" +msgstr "Ignora els límits de paraula per a l'ajust dinàmic" + +#. i18n: ectx: property (text), widget (QLabel, lblDynamicWordWrapIndicators) +#: dialogs/textareaappearanceconfigwidget.ui:358 +#, kde-format +msgid "D&ynamic word wrap indicators:" +msgstr "Indicadors de l'ajust d&inàmic de paraules:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbDynamicWordWrapIndicator) +#: dialogs/textareaappearanceconfigwidget.ui:368 +#, kde-format +msgid "Choose when the Dynamic Word Wrap Indicators should be displayed." +msgstr "" +"Trieu quan s'han de mostrar els indicadors d'ajust dinàmic de les paraules." + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/textareaappearanceconfigwidget.ui:391 +#, kde-format +msgid "I&ndent wrapped lines:" +msgstr "Sag&na les línies ajustades:" + +#. i18n: ectx: property (text), widget (QLabel, lblDynamicWordWrapIndicators_2) +#: dialogs/textareaappearanceconfigwidget.ui:408 +#, kde-format +msgid "&Don't indent lines wider than:" +msgstr "&No sagnes les línies més amples a:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbDynamicWordWrapDepth) +#: dialogs/textareaappearanceconfigwidget.ui:424 +#, no-c-format, kde-format +msgid "" +"

Enables the start of dynamically wrapped lines to be aligned vertically " +"to the indentation level of the first line. This can help to make code and " +"markup more readable.

Additionally, this allows you to set a maximum " +"width of the screen, as a percentage, after which dynamically wrapped lines " +"will no longer be vertically aligned. For example, at 50%, lines whose " +"indentation levels are deeper than 50% of the width of the screen will not " +"have vertical alignment applied to subsequent wrapped lines.

" +msgstr "" +"

Activa l'inici de l'ajust dinàmic de les línies per a alinear-les " +"verticalment al nivell de sagnat de la primera línia. Açò pot ajudar a fer " +"més llegible el codi i els marcadors.

De manera addicional, açò us " +"permet indicar una amplària màxima de la pantalla, en percentatge, després " +"del qual les línies ajustades dinàmicament no s'alinearan verticalment. Per " +"exemple, al 50%, les línies que tinguen un nivell de sagnat superior al 50% " +"de l'amplària de la pantalla no se'ls aplicarà l'ajust vertical a les línies " +"ajustades subsegüents.

" + +#. i18n: ectx: property (suffix), widget (QSpinBox, sbDynamicWordWrapDepth) +#: dialogs/textareaappearanceconfigwidget.ui:427 +#, no-c-format, kde-format +msgid "% of View Width" +msgstr "% de l'amplària de la vista" + +#. i18n: ectx: property (text), widget (QLabel, label_24) +#: dialogs/textareaappearanceconfigwidget.ui:443 +#, kde-format +msgid "Show i&ndentation lines:" +msgstr "Mostra les línies de &sagnat:" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowIndentationLines) +#: dialogs/textareaappearanceconfigwidget.ui:453 +#, kde-format +msgid "" +"If this is enabled, the editor will display vertical lines to help identify " +"indent lines." +msgstr "" +"Si està marcada, l'editor mostrarà línies verticals per ajudar a identificar " +"el sagnat de les línies." + +#: document/katebuffer.cpp:135 +#, kde-format +msgctxt "short translation, user created new file" +msgid "New file" +msgstr "Fitxer nou" + +#: document/katedocument.cpp:223 +#, kde-format +msgid "Auto Reload Document" +msgstr "Torna a carregar automàticament el document" + +#: document/katedocument.cpp:225 +#, kde-format +msgid "Automatic reload the document when it was changed on disk" +msgstr "Torna a carregar automàticament el document quan es canvie en el disc" + +#: document/katedocument.cpp:2307 +#, kde-format +msgid "" +"The file %1 could not be loaded, as it was not possible to read from it.
Check if you have read access to this file." +msgstr "" +"No s'ha pogut carregar el fitxer %1, perquè no s'ha pogut llegir.
Comproveu si teniu accés de lectura a este fitxer." + +#: document/katedocument.cpp:2312 +#, kde-format +msgctxt "translators: you can also translate 'Try Again' with 'Reload'" +msgid "Try Again" +msgstr "Torneu-ho a provar" + +#: document/katedocument.cpp:2316 document/katedocument.cpp:6534 +#, kde-format +msgid "&Close" +msgstr "Tan&ca" + +#: document/katedocument.cpp:2317 document/katedocument.cpp:6535 +#, kde-format +msgctxt "Close the message being displayed" +msgid "Close message" +msgstr "Tanca el missatge" + +#: document/katedocument.cpp:2449 +#, kde-format +msgid "" +"The file %1 was opened with %2 encoding but contained invalid characters." +"
It is set to read-only mode, as saving might destroy its content.
Either reopen the file with the correct encoding chosen or enable the read-" +"write mode again in the tools menu to be able to edit it." +msgstr "" +"El fitxer %1 s'ha obert amb la codificació %2, però conté caràcters no " +"vàlids.
S'ha determinat el mode de només lectura, ja que en guardar es " +"podria destruir el seu contingut.
Per a poder-lo editar, podeu tornar-" +"lo a obrir amb la codificació correcta o podeu tornar a activar el mode de " +"lectura i escriptura en el menú Eines." + +#: document/katedocument.cpp:2468 +#, kde-format +msgid "" +"The file %1 was opened and contained lines longer than the configured Line " +"Length Limit (%2 characters).
The longest of those lines was %3 " +"characters long
Those lines were wrapped and the document is set to read-" +"only mode, as saving will modify its content." +msgstr "" +"El fitxer %1 s'ha obert, però conté línies més llargues que el límit per a " +"la llargària de la línia (%2 caràcters).
La més llarga d'estes línies " +"té %3 caràcters.
Estes línies s'ajustaran i el document s'establirà al " +"mode de només lectura, ja que en guardar-lo es modificaria el seu contingut." + +#: document/katedocument.cpp:2475 +#, kde-format +msgid "Temporarily raise limit and reload file" +msgstr "Eleva el límit temporalment i torna a carregar el fitxer" + +#: document/katedocument.cpp:2478 +#, kde-format +msgid "Close" +msgstr "Tanca" + +#: document/katedocument.cpp:2505 +#, kde-format +msgid "" +"Do you really want to save this unmodified file? You could overwrite changed " +"data in the file on disk." +msgstr "" +"Segur que voleu guardar este fitxer sense modificar? Podeu estar " +"sobreescrivint les dades canviades en el fitxer que residix en el disc." + +#: document/katedocument.cpp:2506 +#, kde-format +msgid "Trying to Save Unmodified File" +msgstr "Intenta guardar un fitxer sense modificar" + +#: document/katedocument.cpp:2507 document/katedocument.cpp:2518 +#: document/katedocument.cpp:2534 +#, kde-format +msgid "Save Nevertheless" +msgstr "Guarda de totes maneres" + +#: document/katedocument.cpp:2516 +#, kde-format +msgid "" +"Do you really want to save this file? Both your open file and the file on " +"disk were changed. There could be some data lost." +msgstr "" +"Segur que voleu guardar este fitxer? Tant el fitxer obert com el que està en " +"el disc han rebut canvis. Amb açò es podrien perdre algunes dades." + +#: document/katedocument.cpp:2517 document/katedocument.cpp:2533 +#: document/katedocument.cpp:2853 syntax/katethemeconfig.cpp:1218 +#: syntax/katethemeconfig.cpp:1376 +#, kde-format +msgid "Possible Data Loss" +msgstr "Possible pèrdua de dades" + +#: document/katedocument.cpp:2531 +#, kde-format +msgid "" +"The selected encoding cannot encode every Unicode character in this " +"document. Do you really want to save it? There could be some data lost." +msgstr "" +"La codificació seleccionada no pot codificar cadascun dels caràcters Unicode " +"d'este document. Segur que voleu guardar-lo? Podrien perdre's algunes dades." + +#: document/katedocument.cpp:2601 +#, kde-format +msgid "" +"The document could not be saved, as it was not possible to write to %1.\n" +"Check that you have write access to this file or that enough disk space is " +"available.\n" +"The original file may be lost or damaged. Don't quit the application until " +"the file is successfully written." +msgstr "" +"El document no s'ha pogut guardar, perquè no s'ha pogut escriure a %1.\n" +"Comproveu que teniu accés d'escriptura a este fitxer o que hi ha prou espai " +"disponible al disc.\n" +"El fitxer original es pot perdre o malmetre. No eixiu de l'aplicació fins " +"que el fitxer s'haja escrit amb èxit." + +#: document/katedocument.cpp:2722 +#, kde-format +msgid "" +"For file %1 no backup copy could be created before saving. If an error " +"occurs while saving, you might lose the data of this file. A reason could be " +"that the media you write to is full or the directory of the file is read-" +"only for you." +msgstr "" +"No s'ha pogut crear la còpia de seguretat per al fitxer %1 abans de guardar-" +"lo. Si esdevé un error mentre es guarda podríeu perdre les dades d'este " +"fitxer. Una raó pot ser que el suport d'escriptura siga ple o el directori " +"del fitxer siga de només lectura." + +#: document/katedocument.cpp:2726 +#, kde-format +msgid "Failed to create backup copy." +msgstr "Ha fallat mentre es creava la còpia de seguretat." + +#: document/katedocument.cpp:2727 +#, kde-format +msgid "Try to Save Nevertheless" +msgstr "Guarda de totes maneres" + +#: document/katedocument.cpp:2852 +#, kde-format +msgid "Do you really want to continue to close this file? Data loss may occur." +msgstr "" +"Segur que voleu continuar i tancar este fitxer? Es podrien perdre les dades." + +#: document/katedocument.cpp:2854 +#, kde-format +msgid "Close Nevertheless" +msgstr "Tanca de totes maneres" + +#: document/katedocument.cpp:4641 +#, kde-format +msgid "Untitled (%1)" +msgstr "Sense títol (%1)" + +#: document/katedocument.cpp:4643 +#, kde-format +msgid "Untitled" +msgstr "Sense títol" + +#: document/katedocument.cpp:4820 document/katedocument.cpp:5051 +#: document/katedocument.cpp:5061 document/katedocument.cpp:5862 +#: document/katedocument.cpp:6049 +#, kde-format +msgid "Save File" +msgstr "Guarda el fitxer" + +#: document/katedocument.cpp:4823 +#, kde-format +msgid "Save failed" +msgstr "No s'ha pogut fer la guardada" + +#: document/katedocument.cpp:5072 +#, kde-format +msgid "Save Copy of File" +msgstr "Guarda una còpia del fitxer" + +#: document/katedocument.cpp:5084 +#, kde-format +msgid "" +"The document could not be saved, as it was not possible to write to %1.\n" +"\n" +"Check that you have write access to this file or that enough disk space is " +"available." +msgstr "" +"El document no es pot guardar, perquè no s'ha pogut escriure a %1.\n" +"\n" +"Comproveu que teniu accés d'escriptura a este fitxer o que hi ha prou espai " +"disponible." + +#: document/katedocument.cpp:5376 +#, kde-format +msgid "" +"Using deprecated modeline 'remove-trailing-space'. Please replace with " +"'remove-trailing-spaces modified;', see https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" +msgstr "" +"S'està utilitzant un mode de línia obsolet «remove-trailing-space». Cal " +"substituir-lo per «remove-trailing-spaces modified;», vegeu https://docs.kde." +"org/?application=katepart&language=ca&branch=stable5&path=config-variables." +"html#variable-remove-trailing-spaces" + +#: document/katedocument.cpp:5382 +#, kde-format +msgid "" +"Using deprecated modeline 'replace-trailing-space-save'. Please replace with " +"'remove-trailing-spaces all;', see https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" +msgstr "" +"S'està utilitzant un mode de línia obsolet «replace-trailing-space-save». " +"Cal substituir-lo per «remove-trailing-spaces all;», vegeu https://docs.kde." +"org/?application=katepart&language=ca&branch=stable5&path=config-variables." +"html#variable-remove-trailing-spaces" + +#: document/katedocument.cpp:5696 +#, kde-format +msgid "The file '%1' was modified on disk." +msgstr "El fitxer «%1» s'ha modificat en el disc." + +#: document/katedocument.cpp:5698 +#, kde-format +msgid "The file '%1' was deleted or moved on disk." +msgstr "El fitxer «%1» s'ha suprimit o mogut en el disc." + +#: document/katedocument.cpp:6034 +#, kde-format +msgid "" +"The document \"%1\" has been modified.\n" +"Do you want to save your changes or discard them?" +msgstr "" +"El document «%1» ha sigut modificat.\n" +"Voleu guardar els canvis o descartar-los?" + +#: document/katedocument.cpp:6037 +#, kde-format +msgid "Close Document" +msgstr "Tanca el document" + +#: document/katedocument.cpp:6148 +#, kde-format +msgid "The file %2 is still loading." +msgstr "El fitxer %2 encara s'està carregant." + +#: document/katedocument.cpp:6153 +#, kde-format +msgid "&Abort Loading" +msgstr "In&terromp la càrrega" + +#: inputmode/katenormalinputmode.cpp:74 +#, kde-format +msgid "OVERWRITE" +msgstr "Sobreescriu" + +#: inputmode/katenormalinputmode.cpp:74 +#, kde-format +msgid "INSERT" +msgstr "Inserix" + +#: inputmode/katenormalinputmodefactory.cpp:29 +#, kde-format +msgid "Normal Mode" +msgstr "Mode normal" + +#: inputmode/kateviinputmode.cpp:31 +#, kde-format +msgctxt "The INSERT mode of VI" +msgid "VI: INSERT" +msgstr "VI: INSERCIÓ" + +#: inputmode/kateviinputmode.cpp:34 +#, kde-format +msgctxt "The NORMAL mode of VI" +msgid "VI: NORMAL" +msgstr "VI: NORMAL" + +#: inputmode/kateviinputmode.cpp:37 +#, kde-format +msgid "VI: VISUAL" +msgstr "VI: VISUAL" + +#: inputmode/kateviinputmode.cpp:40 +#, kde-format +msgid "VI: VISUAL BLOCK" +msgstr "VI: BLOC VISUAL" + +#: inputmode/kateviinputmode.cpp:43 +#, kde-format +msgid "VI: VISUAL LINE" +msgstr "VI: LÍNIA VISUAL" + +#: inputmode/kateviinputmode.cpp:46 +#, kde-format +msgid "VI: REPLACE" +msgstr "VI: SUBSTITUCIÓ" + +#: inputmode/kateviinputmode.cpp:146 +#, kde-format +msgid "vi-mode" +msgstr "Mode de Vi" + +#: inputmode/kateviinputmode.cpp:159 +#, kde-format +msgid "recording" +msgstr "gravació" + +#: inputmode/kateviinputmodefactory.cpp:38 utils/kateglobal.cpp:88 +#: vimode/config/configtab.cpp:237 +#, kde-format +msgid "Vi Input Mode" +msgstr "Mode d'entrada de Vi" + +#: mode/katemodeconfigpage.cpp:46 +#, kde-format +msgid "" +msgstr "" + +#: mode/katemodeconfigpage.cpp:58 +#, kde-format +msgid "Use Default" +msgstr "Utilitza el predeterminat" + +#: mode/katemodeconfigpage.cpp:99 mode/katemodeconfigpage.cpp:241 +#, kde-format +msgid "Properties of %1" +msgstr "Propietats de %1" + +#: mode/katemodeconfigpage.cpp:178 +#, kde-format +msgid "New Filetype" +msgstr "Tipus de fitxer nou" + +#: mode/katemodeconfigpage.cpp:293 +#, kde-format +msgid "" +"Select the MimeTypes you want for this file type.\n" +"Please note that this will automatically edit the associated file extensions " +"as well." +msgstr "" +"Trieu els tipus MIME que voleu per a este tipus de fitxer.\n" +"Cal tindre en compte que també s'editaran automàticament les extensions dels " +"fitxers associats." + +#: mode/katemodeconfigpage.cpp:295 +#, kde-format +msgid "Select Mime Types" +msgstr "Trieu el tipus MIME" + +#: mode/katemodeconfigpage.cpp:312 +#, kde-format +msgid "Modes && Filetypes" +msgstr "Modes i tipus de fitxer" + +#: mode/katemodemenulist.cpp:138 +#, kde-format +msgctxt "@info:placeholder" +msgid "Search…" +msgstr "Busca…" + +#: mode/katemodemenulist.cpp:140 +#, kde-format +msgctxt "ToolTip of the search bar of modes of syntax highlighting" +msgid "" +"Search for syntax highlighting modes by language name or file extension (for " +"example, C++ or .cpp)" +msgstr "" +"Busca els modes de ressaltat de sintaxi pel nom del llenguatge o per " +"l'extensió del fitxer (per exemple, C++ o .cpp)" + +#: mode/katemodemenulist.cpp:560 +#, kde-format +msgctxt "A search yielded no results" +msgid "No items matching your search" +msgstr "No hi ha cap element que coincidisca amb la busca" + +#: mode/katemodemenulist.cpp:1087 +#, kde-format +msgctxt "" +"Title (in singular) of the best result in an item search. Please, that the " +"translation doesn't have more than 34 characters, since the menu where it's " +"displayed is small and fixed." +msgid "Best Search Match" +msgstr "Millor busca coincident" + +#: mode/katemodemenulist.cpp:1092 +#, kde-format +msgctxt "" +"Title (in plural) of the best results in an item search. Please, that the " +"translation doesn't have more than 34 characters, since the menu where it's " +"displayed is small and fixed." +msgid "Best Search Matches" +msgstr "Millors busques coincidents" + +#: printing/printconfigwidgets.cpp:36 +#, kde-format +msgid "Te&xt Settings" +msgstr "Paràmetres del te&xt" + +#: printing/printconfigwidgets.cpp:40 +#, kde-format +msgid "Print line &numbers" +msgstr "Imprimix els &números de línia" + +#: printing/printconfigwidgets.cpp:43 +#, kde-format +msgid "Print &legend" +msgstr "Imprimix la &llegenda" + +#: printing/printconfigwidgets.cpp:46 +#, kde-format +msgid "Don't print folded code" +msgstr "No imprimisques el codi plegat" + +#: printing/printconfigwidgets.cpp:54 +#, kde-format +msgid "" +"

If enabled, line numbers will be printed on the left side of the page(s)." +"

" +msgstr "" +"

Si està marcada, els números de línia s'imprimiran sobre el costat " +"esquerre de les pàgines.

" + +#: printing/printconfigwidgets.cpp:56 +#, kde-format +msgid "" +"

Print a box displaying typographical conventions for the document type, " +"as defined by the syntax highlighting being used.

" +msgstr "" +"

Imprimix un quadro mostrant les convencions tipogràfiques per al tipus de " +"document, tal com estiga definit pel ressaltat sintàctic emprat.

" + +#: printing/printconfigwidgets.cpp:116 +#, kde-format +msgid "Hea&der && Footer" +msgstr "Ca&pçalera i peu" + +#: printing/printconfigwidgets.cpp:123 +#, kde-format +msgid "Pr&int header" +msgstr "Impr&imix la capçalera" + +#: printing/printconfigwidgets.cpp:125 +#, kde-format +msgid "Pri&nt footer" +msgstr "Im&primix el peu" + +#: printing/printconfigwidgets.cpp:131 +#, kde-format +msgid "Header/footer font:" +msgstr "Lletra de la capçalera/peu:" + +#: printing/printconfigwidgets.cpp:137 +#, kde-format +msgid "Header Properties" +msgstr "Propietats de la capçalera" + +#: printing/printconfigwidgets.cpp:141 +#, kde-format +msgid "&Format:" +msgstr "&Format:" + +#: printing/printconfigwidgets.cpp:163 printing/printconfigwidgets.cpp:209 +#, kde-format +msgid "Colors:" +msgstr "Colors:" + +#: printing/printconfigwidgets.cpp:170 printing/printconfigwidgets.cpp:216 +#, kde-format +msgid "Foreground:" +msgstr "Primer pla:" + +#: printing/printconfigwidgets.cpp:175 +#, kde-format +msgid "Bac&kground" +msgstr "Fo&ns" + +#: printing/printconfigwidgets.cpp:181 +#, kde-format +msgid "Footer Properties" +msgstr "Propietats del peu" + +#: printing/printconfigwidgets.cpp:186 +#, kde-format +msgid "For&mat:" +msgstr "Fo&rmat:" + +#: printing/printconfigwidgets.cpp:221 +#, kde-format +msgid "&Background" +msgstr "&Fons" + +#: printing/printconfigwidgets.cpp:250 +#, kde-format +msgid "

Format of the page header. The following tags are supported:

" +msgstr "" +"

Format de la capçalera de la pàgina. S'accepten les etiquetes següents:" + +#: printing/printconfigwidgets.cpp:252 +#, kde-format +msgid "" +"

  • %u: current user name
  • %d: complete date/" +"time in short format
  • %D: complete date/time in long format
  • %h: current time
  • %y: current date in short " +"format
  • %Y: current date in long format
  • %f: " +"file name
  • %U: full URL of the document
  • %p: " +"page number
  • %P: total amount of pages

" +msgstr "" +"
  • %u: el nom de l'actual usuari
  • %d: la data " +"i hora en format curt
  • %D: la data i hora en format llarg
  • %h: l'hora actual
  • %y: la data actual en " +"format curt
  • %Y: la data actual en format llarg
  • " +"%f: el nom del fitxer
  • %U: l'URL complet cap al " +"document
  • %p: el número de la pàgina
  • %P: el " +"nombre total de pàgines

" + +#: printing/printconfigwidgets.cpp:266 +#, kde-format +msgid "

Format of the page footer. The following tags are supported:

" +msgstr "

Format del peu de la pàgina. S'accepten les etiquetes següents:

" + +#: printing/printconfigwidgets.cpp:352 +#, kde-format +msgid "Add Placeholder..." +msgstr "Afig un text variable…" + +#: printing/printconfigwidgets.cpp:354 +#, kde-format +msgid "Current User Name" +msgstr "Nom de l'usuari actual" + +#: printing/printconfigwidgets.cpp:356 +#, kde-format +msgid "Complete Date/Time (short format)" +msgstr "Data/hora completa (format curt)" + +#: printing/printconfigwidgets.cpp:358 +#, kde-format +msgid "Complete Date/Time (long format)" +msgstr "Data/hora completa (format llarg)" + +#: printing/printconfigwidgets.cpp:360 +#, kde-format +msgid "Current Time" +msgstr "Hora actual" + +#: printing/printconfigwidgets.cpp:362 +#, kde-format +msgid "Current Date (short format)" +msgstr "Hora actual (format curt)" + +#: printing/printconfigwidgets.cpp:364 +#, kde-format +msgid "Current Date (long format)" +msgstr "Hora actual (format llarg)" + +#: printing/printconfigwidgets.cpp:366 +#, kde-format +msgid "File Name" +msgstr "Nom de fitxer" + +#: printing/printconfigwidgets.cpp:368 +#, kde-format +msgid "Full document URL" +msgstr "URL complet del document" + +#: printing/printconfigwidgets.cpp:370 +#, kde-format +msgid "Page Number" +msgstr "Número de pàgina" + +#: printing/printconfigwidgets.cpp:372 +#, kde-format +msgid "Total Amount of Pages" +msgstr "Nombre total de pàgines" + +#: printing/printconfigwidgets.cpp:478 +#, kde-format +msgid "L&ayout" +msgstr "D&isposició" + +#: printing/printconfigwidgets.cpp:484 +#, kde-format +msgid "&Color theme:" +msgstr "Tema de &color:" + +#: printing/printconfigwidgets.cpp:494 +#, kde-format +msgid "Font:" +msgstr "Lletra:" + +#: printing/printconfigwidgets.cpp:498 +#, kde-format +msgid "Draw bac&kground color" +msgstr "Dibuixa el color de &fons" + +#: printing/printconfigwidgets.cpp:501 +#, kde-format +msgid "Draw &boxes" +msgstr "Dibuixa els &quadros" + +#: printing/printconfigwidgets.cpp:505 +#, kde-format +msgid "Box Properties" +msgstr "Propietats del quadro" + +#: printing/printconfigwidgets.cpp:509 +#, kde-format +msgid "W&idth:" +msgstr "A&mplària:" + +#: printing/printconfigwidgets.cpp:517 +#, kde-format +msgid "&Margin:" +msgstr "&Marge:" + +#: printing/printconfigwidgets.cpp:525 +#, kde-format +msgid "Co&lor:" +msgstr "Co&lor:" + +#: printing/printconfigwidgets.cpp:547 +#, kde-format +msgid "Select the color theme to use for the print." +msgstr "Trieu el tema de color que s'utilitzarà en imprimir." + +#: printing/printconfigwidgets.cpp:549 +#, kde-format +msgid "" +"

If enabled, the background color of the editor will be used.

This " +"may be useful if your color theme is designed for a dark background.

" +msgstr "" +"

Si està marcada, s'emprarà el color de fons de l'editor.

Açò pot " +"ser-vos útil si el tema de color està dissenyat per a un fons fosc.

" + +#: printing/printconfigwidgets.cpp:552 +#, kde-format +msgid "" +"

If enabled, a box as defined in the properties below will be drawn around " +"the contents of each page. The Header and Footer will be separated from the " +"contents with a line as well.

" +msgstr "" +"

Si està marcada, es dibuixarà un quadro al voltant del contingut de cada " +"pàgina amb les propietats a continuació. La capçalera i el peu seran " +"separats del contingut amb una línia.

" + +#: printing/printconfigwidgets.cpp:555 +#, kde-format +msgid "The width of the box outline" +msgstr "L'amplària del contorn del quadro" + +#: printing/printconfigwidgets.cpp:556 +#, kde-format +msgid "The margin inside boxes, in pixels" +msgstr "El marge dins dels quadros, en píxels" + +#: printing/printconfigwidgets.cpp:557 +#, kde-format +msgid "The line color to use for boxes" +msgstr "El color de la línia que s'emprarà en els quadros" + +#: printing/printpainter.cpp:269 +#, kde-format +msgid "(Selection of) " +msgstr "(Trieu el) " + +#: printing/printpainter.cpp:522 +#, kde-format +msgid "Typographical Conventions for %1" +msgstr "Convencions tipogràfiques per a %1" + +#: printing/printpainter.cpp:555 +#, kde-format +msgid "text" +msgstr "text" + +#: script/data/commands/emmet.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Expand Abbreviation" +msgstr "Expandix les abreviatures" + +#: script/data/commands/emmet.js:10 script/data/commands/emmet.js:14 +#: script/data/commands/emmet.js:19 script/data/commands/emmet.js:23 +#: script/data/commands/emmet.js:27 script/data/commands/emmet.js:31 +#: script/data/commands/emmet.js:35 script/data/commands/emmet.js:39 +#: script/data/commands/emmet.js:43 script/data/commands/emmet.js:47 +#: script/data/commands/emmet.js:51 script/data/commands/emmet.js:55 +#: script/data/commands/emmet.js:59 script/data/commands/emmet.js:63 +#: script/data/commands/emmet.js:67 script/data/commands/emmet.js:71 +#: script/data/commands/emmet.js:75 script/data/commands/emmet.js:79 +#: script/data/commands/emmet.js:83 +#, kde-format +msgctxt "Script command category" +msgid "Emmet" +msgstr "Emmet" + +#: script/data/commands/emmet.js:13 +#, kde-format +msgctxt "Script command name" +msgid "Wrap with Tag" +msgstr "Ajusta amb etiquetes" + +#: script/data/commands/emmet.js:18 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Matching Tag" +msgstr "Mou el cursor fins a l'etiqueta que coincidisca" + +#: script/data/commands/emmet.js:22 +#, kde-format +msgctxt "Script command name" +msgid "Select HTML/XML Tag Contents Inwards" +msgstr "Tria el contingut intern de l'etiqueta HTML/XML" + +#: script/data/commands/emmet.js:26 +#, kde-format +msgctxt "Script command name" +msgid "Select HTML/XML Tag Contents Outwards" +msgstr "Tria el contingut extern de l'etiqueta HTML/XML" + +#: script/data/commands/emmet.js:30 +#, kde-format +msgctxt "Script command name" +msgid "Toggle Comment" +msgstr "Canvia els comentaris" + +#: script/data/commands/emmet.js:34 +#, kde-format +msgctxt "Script command name" +msgid "Go to Next Edit Point" +msgstr "Ves fins al punt d'edició següent" + +#: script/data/commands/emmet.js:38 +#, kde-format +msgctxt "Script command name" +msgid "Go to Previous Edit Point" +msgstr "Ves fins al punt d'edició anterior" + +#: script/data/commands/emmet.js:42 +#, kde-format +msgctxt "Script command name" +msgid "Select Next Edit Point" +msgstr "Tria el punt d'edició següent" + +#: script/data/commands/emmet.js:46 +#, kde-format +msgctxt "Script command name" +msgid "Select Previous Edit Point" +msgstr "Tria el punt d'edició anterior" + +#: script/data/commands/emmet.js:50 +#, kde-format +msgctxt "Script command name" +msgid "Delete Tag Under Cursor" +msgstr "Suprimix l'etiqueta baix el cursor" + +#: script/data/commands/emmet.js:54 +#, kde-format +msgctxt "Script command name" +msgid "Split or Join a Tag" +msgstr "Dividix o unix una etiqueta" + +#: script/data/commands/emmet.js:58 +#, kde-format +msgctxt "Script command name" +msgid "Evaluate a Simple Math Expression" +msgstr "Avalua una expressió matemàtica senzilla" + +#: script/data/commands/emmet.js:62 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 1" +msgstr "Reduïx el nombre en 1" + +#: script/data/commands/emmet.js:66 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 10" +msgstr "Reduïx el nombre en 10" + +#: script/data/commands/emmet.js:70 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 0.1" +msgstr "Reduïx el nombre en 0,1" + +#: script/data/commands/emmet.js:74 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 1" +msgstr "Incrementa el nombre en 1" + +#: script/data/commands/emmet.js:78 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 10" +msgstr "Incrementa el nombre en 10" + +#: script/data/commands/emmet.js:82 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 0.1" +msgstr "Incrementa el nombre en 0,1" + +#: script/data/commands/emmet.js:96 +#, kde-format +msgid "" +"Expands the abbreviation using Emmet expressions; see http://code.google.com/" +"p/zen-coding/wiki/ZenHTMLSelectorsEn" +msgstr "" +"Expandix les abreviatures utilitzant expressions Emmet; vegeu http://code." +"google.com/p/zen-coding/wiki/ZenHTMLSelectorsEn" + +#: script/data/commands/emmet.js:97 +#, kde-format +msgid "" +"Wraps the selected text in XML tags constructed from the provided Emmet " +"expression (defaults to div)." +msgstr "" +"Ajusta el text seleccionat amb etiquetes XML construïdes des d'expressions " +"Emmet proporcionades (de manera predeterminada a «div»)." + +#: script/data/commands/emmet.js:98 +#, kde-format +msgid "Moves the caret to the current tag's pair" +msgstr "Mou el cursor fins el parell actual d'etiquetes" + +#: script/data/commands/emmet.js:99 +#, kde-format +msgid "" +"Select contents of HTML/XML tag, moving inward on continuous invocations" +msgstr "" +"Tria el contingut de l'etiqueta HTML/XML, movent-se cap dins en les " +"invocacions contínues" + +#: script/data/commands/emmet.js:100 +#, kde-format +msgid "" +"Select contents of HTML/XML tag, moving outwards on continuous invocations" +msgstr "" +"Tria el contingut de l'etiqueta HTML/XML, movent-se cap enfora en les " +"invocacions contínues" + +#: script/data/commands/emmet.js:101 +#, kde-format +msgid "Move to the next edit point (tag or empty attribute)." +msgstr "Va fins al punt d'edició següent (etiqueta o atribut buit)." + +#: script/data/commands/emmet.js:102 +#, kde-format +msgid "Move to the previous edit point (tag or empty attribute)." +msgstr "Va fins al punt d'edició anterior (etiqueta o atribut buit)." + +#: script/data/commands/emmet.js:103 +#, kde-format +msgid "Select next edit point (tag or empty attribute)." +msgstr "Tria el punt d'edició següent (etiqueta o atribut buit)." + +#: script/data/commands/emmet.js:104 +#, kde-format +msgid "Select previous edit point (tag or empty attribute)." +msgstr "Tria el punt d'edició anterior (etiqueta o atribut buit)." + +#: script/data/commands/emmet.js:105 +#, kde-format +msgid "Toggle comment of current tag or CSS selector" +msgstr "Canvia el comentari de l'etiqueta actual o del selector CSS" + +#: script/data/commands/emmet.js:106 +#, kde-format +msgid "Deletes tag under cursor" +msgstr "Suprimix l'etiqueta baix el cursor" + +#: script/data/commands/emmet.js:107 +#, kde-format +msgid "Splits or joins a tag" +msgstr "Dividix o unix una etiqueta" + +#: script/data/commands/emmet.js:108 +#, kde-format +msgid "Evaluates a simple math expression" +msgstr "Avalua una expressió matemàtica senzilla" + +#: script/data/commands/emmet.js:109 +#, kde-format +msgid "Decrement number under cursor by 1" +msgstr "Reduïx el nombre baix el cursor en 1" + +#: script/data/commands/emmet.js:110 +#, kde-format +msgid "Decrement number under cursor by 10" +msgstr "Reduïx el nombre baix el cursor en 10" + +#: script/data/commands/emmet.js:111 +#, kde-format +msgid "Decrement number under cursor by 0.1" +msgstr "Reduïx el nombre baix el cursor en 0,1" + +#: script/data/commands/emmet.js:112 +#, kde-format +msgid "Increment number under cursor by 1" +msgstr "Augmenta el nombre baix el cursor en 1" + +#: script/data/commands/emmet.js:113 +#, kde-format +msgid "Increment number under cursor by 10" +msgstr "Augmenta el nombre baix el cursor en 10" + +#: script/data/commands/emmet.js:114 +#, kde-format +msgid "Increment number under cursor by 0.1" +msgstr "Augmenta el nombre baix el cursor en 0,1" + +#: script/data/commands/jumpMatchingIndent.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Previous Matching Indent" +msgstr "Mou el cursor fins al sagnat anterior que coincidisca" + +#: script/data/commands/jumpMatchingIndent.js:11 +#: script/data/commands/jumpMatchingIndent.js:16 +#: script/data/commands/jumpMatchingIndent.js:21 +#: script/data/commands/jumpMatchingIndent.js:26 +#: script/data/commands/navigation.js:10 script/data/commands/navigation.js:14 +#, kde-format +msgctxt "Script command category" +msgid "Navigation" +msgstr "Navegueu" + +#: script/data/commands/jumpMatchingIndent.js:14 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Next Matching Indent" +msgstr "Mou el cursor fins al sagnat següent que coincidisca" + +#: script/data/commands/jumpMatchingIndent.js:19 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Next Blank Line" +msgstr "Mou el cursor fins a la línia següent en blanc" + +#: script/data/commands/jumpMatchingIndent.js:24 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Previous Blank Line" +msgstr "Mou el cursor fins a la línia anterior en blanc" + +#: script/data/commands/jumpMatchingIndent.js:80 +#, kde-format +msgid "Move cursor to previous matching indent" +msgstr "Mou el cursor fins al sagnat anterior que coincidisca" + +#: script/data/commands/jumpMatchingIndent.js:83 +#, kde-format +msgid "Move cursor to next matching indent" +msgstr "Mou el cursor fins al sagnat següent que coincidisca" + +#: script/data/commands/jumpMatchingIndent.js:85 +#, kde-format +msgid "Move cursor to next blank line" +msgstr "Mou el cursor fins a la línia següent en blanc" + +#: script/data/commands/jumpMatchingIndent.js:87 +#, kde-format +msgid "Move cursor to previous blank line" +msgstr "Mou el cursor fins a la línia anterior en blanc" + +#: script/data/commands/navigation.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Go to Next Paragraph" +msgstr "Va fins al paràgraf següent" + +#: script/data/commands/navigation.js:13 +#, kde-format +msgctxt "Script command name" +msgid "Go to Previous Paragraph" +msgstr "Va fins al paràgraf anterior" + +#: script/data/commands/utils.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Remove Trailing Spaces" +msgstr "Elimina els espais finals" + +#: script/data/commands/utils.js:10 script/data/commands/utils.js:14 +#: script/data/commands/utils.js:18 script/data/commands/utils.js:22 +#: script/data/commands/utils.js:27 script/data/commands/utils.js:32 +#: script/data/commands/utils.js:36 script/data/commands/utils.js:40 +#: script/data/commands/utils.js:44 script/data/commands/utils.js:48 +#: script/data/commands/utils.js:52 script/data/commands/utils.js:56 +#, kde-format +msgctxt "Script command category" +msgid "Editing" +msgstr "Edició" + +#: script/data/commands/utils.js:13 +#, kde-format +msgctxt "Script command name" +msgid "Remove Leading Spaces" +msgstr "Elimina els espais inicials" + +#: script/data/commands/utils.js:17 +#, kde-format +msgctxt "Script command name" +msgid "Remove Trailing and Leading Spaces" +msgstr "Elimina els espais inicials i finals" + +#: script/data/commands/utils.js:21 +#, kde-format +msgctxt "Script command name" +msgid "Join Lines" +msgstr "Unix les línies" + +#: script/data/commands/utils.js:25 +#, kde-format +msgctxt "Script command name" +msgid "Move Lines Down" +msgstr "Desplaça les línies avall" + +#: script/data/commands/utils.js:30 +#, kde-format +msgctxt "Script command name" +msgid "Move Lines Up" +msgstr "Desplaça les línies amunt" + +#: script/data/commands/utils.js:35 +#, kde-format +msgctxt "Script command name" +msgid "Duplicate Selected Lines Down" +msgstr "Duplica les línies seleccionades cap avall" + +#: script/data/commands/utils.js:39 +#, kde-format +msgctxt "Script command name" +msgid "Duplicate Selected Lines Up" +msgstr "Duplica les línies seleccionades cap amunt" + +#: script/data/commands/utils.js:43 +#, kde-format +msgctxt "Script command name" +msgid "Duplicate selected text" +msgstr "Duplica el text seleccionat" + +#: script/data/commands/utils.js:47 +#, kde-format +msgctxt "Script command name" +msgid "URI-encode Selected Text" +msgstr "Codifica en un URI el text seleccionat" + +#: script/data/commands/utils.js:51 +#, kde-format +msgctxt "Script command name" +msgid "URI-decode Selected Text" +msgstr "Descodifica en un URI el text seleccionat" + +#: script/data/commands/utils.js:55 +#, kde-format +msgctxt "Script command name" +msgid "Remove Empty Lines" +msgstr "Elimina les línies buides" + +#: script/data/commands/utils.js:410 +#, kde-format +msgid "Sort the selected text or whole document." +msgstr "Ordena el text seleccionat o tot el document." + +#: script/data/commands/utils.js:412 +#, kde-format +msgid "Move selected lines down." +msgstr "Mou cap avall les línies seleccionades." + +#: script/data/commands/utils.js:414 +#, kde-format +msgid "Move selected lines up." +msgstr "Mou cap amunt les línies seleccionades." + +#: script/data/commands/utils.js:416 +#, kde-format +msgid "Remove duplicate lines from the selected text or whole document." +msgstr "" +"Elimina les línies duplicades del text seleccionat o de tot el document." + +#: script/data/commands/utils.js:418 +#, kde-format +msgid "" +"Sort the selected text or whole document in natural order.
Here is an " +"example to show the difference to the normal sort method:
sort(a10, a1, " +"a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" +msgstr "" +"Ordena el text seleccionat o tot el document en l'ordre natural.
Ací hi " +"ha un exemple per a veure la diferència amb el mètode d'ordenació normal: " +"
sort(a10, a1, a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" + +#: script/data/commands/utils.js:420 +#, kde-format +msgid "Trims trailing whitespace from selection or whole document." +msgstr "Retira els espais en blanc finals de la selecció o de tot el document." + +#: script/data/commands/utils.js:422 +#, kde-format +msgid "Trims leading whitespace from selection or whole document." +msgstr "" +"Retira els espais en blanc inicials de la selecció o de tot el document." + +#: script/data/commands/utils.js:424 +#, kde-format +msgid "Trims leading and trailing whitespace from selection or whole document." +msgstr "" +"Retira els espais en blanc inicials i finals de la selecció o de tot el " +"document." + +#: script/data/commands/utils.js:426 +#, kde-format +msgid "" +"Joins selected lines or whole document. Optionally pass a separator to put " +"between each line:
join ', ' will e.g. join lines and " +"separate them by a comma." +msgstr "" +"Unix les línies seleccionades o tot el document. De forma opcional, es pot " +"passar un separador per a situar-lo entre les línies:
join ', ' p. ex., unirà les línies separant-les amb una coma." + +#: script/data/commands/utils.js:428 +#, kde-format +msgid "Removes empty lines from selection or whole document." +msgstr "Elimina les línies buides de la selecció o de tot el document." + +#: script/data/commands/utils.js:430 +#, kde-format +msgid "" +"This command aligns lines in the selected block or whole document on the " +"column given by a regular expression given as an argument.

If you " +"give an empty pattern it will align on the first non-blank character by " +"default.
If the pattern has a capture it will indent on the captured " +"match.

Examples:
'alignon -' will insert " +"spaces before the first '-' of each lines to align them all on the same " +"column.
'alignon :\\s+(.)' will insert spaces before the " +"first non-blank character that occurs after a colon to align them all on the " +"same column." +msgstr "" +"Esta ordre alinea les línies del bloc seleccionat o de tot el document en la " +"columna indicada per una expressió regular proporcionada com a argument." +"

Si proporcioneu un patró buit, s'alinearà al primer caràcter no " +"blanc de manera predeterminada.
Si el patró té una captura, se sagnarà en " +"la coincidència capturada.

Exemples:
«alignon -» inserirà espais abans del primer «-» de cada línia per a alinear-les " +"totes a la mateixa columna.
«alignon :\\s+(.)» inserirà " +"espais abans del primer caràcter no blanc que hi haja després de dos punts " +"(:) per a alinear-les totes a la mateixa columna." + +#: script/data/commands/utils.js:434 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and replace them with the return value of that callback." +"
Example (join selected lines):
each 'function(lines){return " +"lines.join(\", \");}'
To save you some typing, you can also do " +"this to achieve the same:
each 'lines.join(\", \")'" +msgstr "" +"Donada una funció JavaScript com a argument, la invoca per a llistar les " +"línies (seleccionades) i substituir-les amb el valor retornat de la crida. " +"
Exemple (unió de línies seleccionades):
each 'function(lines)" +"{return lines.join(\", \");}'
Per a estalviar-vos algun tecleig, " +"també podeu fer el següent per a aconseguir el mateix:
each 'lines." +"join(\", \")'" + +# skip-rule: t-l_gem +#: script/data/commands/utils.js:436 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and remove those where the callback returns false." +"
Example (see also rmblank):
filter 'function(l)" +"{return l.length > 0;}'
To save you some typing, you can also do " +"this to achieve the same:
filter 'line.length > 0'" +msgstr "" +"Donada una funció JavaScript com a argument, la invoca per a llistar les " +"línies (seleccionades) i eliminar aquelles que la crida retorna fals." +"
Exemple (vegeu també rmblank):
filter 'function(l)" +"{return l.length > 0;}'

Per a estalviar-vos algun tecleig, " +"també podeu fer el següent per a aconseguir el mateix:
filter 'line." +"length > 0'" + +#: script/data/commands/utils.js:438 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and replace the line with the return value of the callback." +"
Example (see also ltrim):
map 'function(line)" +"{return line.replace(/^\\s+/, \"\");}'
To save you some typing, " +"you can also do this to achieve the same:
map 'line.replace(/^\\s" +"+/, \"\")'" +msgstr "" +"Donada una funció JavaScript com a argument, la invoca per a llistar les " +"línies (seleccionades) i substituir la línia amb el valor retornat de la " +"crida.
Exemple (vegeu també ltrim):
map " +"'function(line){return line.replace(/^\\s+/, \"\");}'

Per a " +"estalviar-vos algun tecleig, també podeu fer el següent per a aconseguir el " +"mateix:
map 'line.replace(/^\\s+/, \"\")'" + +#: script/data/commands/utils.js:440 +#, kde-format +msgid "Duplicates the selected lines up." +msgstr "Duplica les línies seleccionades cap amunt." + +#: script/data/commands/utils.js:442 +#, kde-format +msgid "Duplicates the selected lines down." +msgstr "Duplica les línies seleccionades cap avall." + +#: script/data/commands/utils.js:446 +#, kde-format +msgid "" +"Encode special chars in a single line selection, so the result text can be " +"used as URI." +msgstr "" +"Codifica els caràcters especials en una selecció de línia única, de manera " +"que el text que en resulte es puga utilitzar com un URI." + +#: script/data/commands/utils.js:448 +#, kde-format +msgid "Reverse action of URI encode." +msgstr "Invertix l'acció de codificació de l'URI." + +#: script/data/commands/utils.js:450 +#, kde-format +msgid "" +"Select text forward from current cursor position to the first occurrence of " +"the given argument after it (or the end of the current line by default)." +msgstr "" +"Selecciona el text avant des de la posició actual del cursor fins a la " +"primera ocurrència de l'argument donat després d'ell (o al final de la línia " +"actual de manera predeterminada)." + +#: script/data/commands/utils.js:452 +#, kde-format +msgid "" +"Select text backward from current cursor position to the last occurrence of " +"the given argument before it (or the beginning of the current line by " +"default)." +msgstr "" +"Selecciona el text arrere des de la posició actual del cursor fins a " +"l'última ocurrència de l'argument donat abans d'ell (o al principi de la " +"línia actual de manera predeterminada)." + +#: script/data/indentation/ada.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "ada" +msgstr "Ada" + +#: script/data/indentation/cmake.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "CMake" +msgstr "CMake" + +#: script/data/indentation/cppstyle.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "C++/boost Style" +msgstr "Estil C++/boost" + +#: script/data/indentation/cstyle.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "C Style" +msgstr "Estil C" + +#: script/data/indentation/haskell.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Haskell" +msgstr "Haskell" + +#: script/data/indentation/julia.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Julia" +msgstr "Julia" + +#: script/data/indentation/latex.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Latex" +msgstr "Latex" + +#: script/data/indentation/lilypond.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "LilyPond" +msgstr "LilyPond" + +#: script/data/indentation/lisp.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "LISP" +msgstr "LISP" + +#: script/data/indentation/pascal.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Pascal" +msgstr "Pascal" + +#: script/data/indentation/python.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Python" +msgstr "Python" + +#: script/data/indentation/r.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "R" +msgstr "R" + +#: script/data/indentation/replicode.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Replicode" +msgstr "Replicode" + +#: script/data/indentation/ruby.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Ruby" +msgstr "Ruby" + +#: script/data/indentation/xml.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "XML Style" +msgstr "Estil XML" + +#: script/katecommandlinescript.cpp:37 +#, kde-format +msgid "Function '%1' not found in script: %2" +msgstr "No s'ha trobat la funció «%1» en l'script: %2" + +#: script/katecommandlinescript.cpp:51 +#, kde-format +msgid "Error calling %1" +msgstr "Error en cridar %1" + +#: script/katecommandlinescript.cpp:68 +#, kde-format +msgid "Bad quoting in call: %1. Please escape single quotes with a backslash." +msgstr "" +"Citació incorrecta en la crida: %1. Escapeu les cometes simples amb una " +"barra inversa." + +#: script/katecommandlinescript.cpp:76 utils/katecmds.cpp:217 +#: vimode/cmds.cpp:37 +#, kde-format +msgid "Could not access view" +msgstr "No s'ha pogut accedir a la vista" + +#: script/katecommandlinescript.cpp:118 +#, kde-format +msgid "Error calling 'help %1'" +msgstr "Error en cridar «help %1»" + +#: script/katecommandlinescript.cpp:123 +#, kde-format +msgid "No help specified for command '%1' in script %2" +msgstr "No s'ha definit cap ajuda per a l'ordre «%1» en l'script %2" + +#: script/katescript.cpp:282 +#, kde-format +msgid "Error loading script %1: %2" +msgstr "S'ha produït un error mentre es carregava l'script %1: %2" + +#: script/katescriptmanager.cpp:319 +#, kde-format +msgid "Reload all JavaScript files (indenters, command line scripts, etc)." +msgstr "" +"Torna a carregar tots els fitxers JavaScript (sagnadors, scripts de línia " +"d'ordres, etc.)." + +#: script/katescriptview.cpp:214 +#, kde-format +msgid "Command not found: %1" +msgstr "No s'ha trobat l'ordre: %1" + +#: search/katesearchbar.cpp:73 +#, kde-format +msgid "Add..." +msgstr "Afig…" + +#: search/katesearchbar.cpp:298 +#, kde-format +msgctxt "short translation" +msgid "1 replacement made" +msgid_plural "%1 replacements made" +msgstr[0] "S'ha fet 1 substitució" +msgstr[1] "S'han fet %1 substitucions" + +#: search/katesearchbar.cpp:300 +#, kde-format +msgctxt "short translation" +msgid "1 match found" +msgid_plural "%1 matches found" +msgstr[0] "S'ha trobat 1 coincidència" +msgstr[1] "S'han trobat %1 coincidències" + +#: search/katesearchbar.cpp:374 +#, kde-format +msgid "Reached top, continued from bottom" +msgstr "S'ha arribat al començament, es continua des del final" + +#: search/katesearchbar.cpp:376 +#, kde-format +msgid "Reached bottom, continued from top" +msgstr "S'ha arribat al final, es continua des del començament" + +#: search/katesearchbar.cpp:381 +#, kde-format +msgid "Not found" +msgstr "No s'ha trobat" + +#: search/katesearchbar.cpp:615 +#, kde-format +msgid "Bottom of file reached. Continue from top?" +msgstr "S'ha arribat al final del fitxer. Voleu continuar des del començament?" + +#: search/katesearchbar.cpp:615 +#, kde-format +msgid "Top of file reached. Continue from bottom?" +msgstr "S'ha arribat al començament del fitxer. Voleu continuar des del final?" + +#: search/katesearchbar.cpp:618 +#, kde-format +msgid "Continue search?" +msgstr "Voleu continuar la busca?" + +#: search/katesearchbar.cpp:920 +#, kde-format +msgid "SearchHighLight" +msgstr "RessaltatDeBusca" + +#: search/katesearchbar.cpp:1136 search/katesearchbar.cpp:1755 +#, kde-format +msgid "Clear history" +msgstr "Neteja l'historial" + +#: search/katesearchbar.cpp:1166 +#, kde-format +msgid "Beginning of line" +msgstr "Començament de la línia" + +#: search/katesearchbar.cpp:1167 +#, kde-format +msgid "End of line" +msgstr "Final de línia" + +#: search/katesearchbar.cpp:1169 +#, kde-format +msgid "Match any character excluding new line (by default)" +msgstr "" +"Coincidix amb qualsevol caràcter excloent la línia nova (predeterminat)" + +#: search/katesearchbar.cpp:1170 +#, kde-format +msgid "One or more occurrences" +msgstr "Una o més ocurrències" + +#: search/katesearchbar.cpp:1171 +#, kde-format +msgid "Zero or more occurrences" +msgstr "Zero o més ocurrències" + +#: search/katesearchbar.cpp:1172 +#, kde-format +msgid "Zero or one occurrences" +msgstr "Zero o una ocurrència" + +#: search/katesearchbar.cpp:1175 +#, kde-format +msgid " through occurrences" +msgstr " exactament les ocurrències" + +#: search/katesearchbar.cpp:1181 +#, kde-format +msgid "Group, capturing" +msgstr "Grup, amb captura" + +#: search/katesearchbar.cpp:1182 +#, kde-format +msgid "Or" +msgstr "O" + +#: search/katesearchbar.cpp:1183 +#, kde-format +msgid "Set of characters" +msgstr "Joc de caràcters" + +#: search/katesearchbar.cpp:1184 +#, kde-format +msgid "Negative set of characters" +msgstr "Joc de caràcters negatiu" + +#: search/katesearchbar.cpp:1188 +#, kde-format +msgid "Whole match reference" +msgstr "Referència de coincidència completa" + +#: search/katesearchbar.cpp:1199 +#, kde-format +msgid "Reference" +msgstr "Referència" + +#: search/katesearchbar.cpp:1206 +#, kde-format +msgid "Line break" +msgstr "Salt de línia" + +#: search/katesearchbar.cpp:1207 +#, kde-format +msgid "Tab" +msgstr "Tabulació" + +#: search/katesearchbar.cpp:1210 +#, kde-format +msgid "Word boundary" +msgstr "Límit de paraula" + +#: search/katesearchbar.cpp:1211 +#, kde-format +msgid "Not word boundary" +msgstr "Sense límit de paraula" + +#: search/katesearchbar.cpp:1212 +#, kde-format +msgid "Digit" +msgstr "Dígit" + +#: search/katesearchbar.cpp:1213 +#, kde-format +msgid "Non-digit" +msgstr "No-dígit" + +#: search/katesearchbar.cpp:1214 +#, kde-format +msgid "Whitespace (excluding line breaks)" +msgstr "Espai en blanc (excloent els salts de línia)" + +#: search/katesearchbar.cpp:1215 +#, kde-format +msgid "Non-whitespace" +msgstr "No espai en blanc" + +#: search/katesearchbar.cpp:1216 +#, kde-format +msgid "Word character (alphanumerics plus '_')" +msgstr "Caràcter de paraula (alfanumèrics més «_»)" + +#: search/katesearchbar.cpp:1217 +#, kde-format +msgid "Non-word character" +msgstr "Caràcter de no-paraula" + +#: search/katesearchbar.cpp:1220 +#, kde-format +msgid "Octal character 000 to 377 (2^8-1)" +msgstr "Caràcter octal 000 a 377 (2^8-1)" + +#: search/katesearchbar.cpp:1221 +#, kde-format +msgid "Hex character 0000 to FFFF (2^16-1)" +msgstr "Caràcter hexadecimal 0000 a FFFF (2^16-1)" + +#: search/katesearchbar.cpp:1222 +#, kde-format +msgid "Backslash" +msgstr "Barra inversa" + +#: search/katesearchbar.cpp:1226 +#, kde-format +msgid "Group, non-capturing" +msgstr "Grup, sense captura" + +#: search/katesearchbar.cpp:1227 +#, kde-format +msgid "Positive Lookahead" +msgstr "Busca avant positiva" + +#: search/katesearchbar.cpp:1228 +#, kde-format +msgid "Negative lookahead" +msgstr "Busca avant negativa" + +#: search/katesearchbar.cpp:1232 +#, kde-format +msgid "Fixed-length positive lookbehind" +msgstr "Busca arrere positiva de llargària fixa" + +#: search/katesearchbar.cpp:1233 +#, kde-format +msgid "Fixed-length negative lookbehind" +msgstr "Busca arrere negativa de llargària fixa" + +#: search/katesearchbar.cpp:1238 +#, kde-format +msgid "Begin lowercase conversion" +msgstr "Comença la conversió a minúscules" + +#: search/katesearchbar.cpp:1239 +#, kde-format +msgid "Begin uppercase conversion" +msgstr "Comença la conversió a majúscules" + +#: search/katesearchbar.cpp:1240 +#, kde-format +msgid "End case conversion" +msgstr "Finalitza la conversió entre majúscules i minúscules" + +#: search/katesearchbar.cpp:1241 +#, kde-format +msgid "Lowercase first character conversion" +msgstr "Convertix el primer caràcter a minúscules" + +#: search/katesearchbar.cpp:1242 +#, kde-format +msgid "Uppercase first character conversion" +msgstr "Convertix el primer caràcter a majúscules" + +#: search/katesearchbar.cpp:1243 +#, kde-format +msgid "Replacement counter (for Replace All)" +msgstr "Comptador de les substitucions (per a Substituïx-ho tot)" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: search/searchbarincremental.ui:50 +#, kde-format +msgid "F&ind:" +msgstr "Bu&sca:" + +#. i18n: ectx: property (toolTip), widget (QComboBox, pattern) +#: search/searchbarincremental.ui:78 search/searchbarpower.ui:295 +#, kde-format +msgid "Text to search for" +msgstr "Text que s'ha de buscar" + +#. i18n: ectx: property (toolTip), widget (QToolButton, findNext) +#. i18n: ectx: property (toolTip), widget (QToolButton, next) +#: search/searchbarincremental.ui:91 search/searchbarpower.ui:175 +#, kde-format +msgid "Jump to next match" +msgstr "Salta fins a la coincidència següent" + +#. i18n: ectx: property (toolTip), widget (QToolButton, findPrev) +#. i18n: ectx: property (toolTip), widget (QToolButton, prev) +#: search/searchbarincremental.ui:101 search/searchbarpower.ui:185 +#, kde-format +msgid "Jump to previous match" +msgstr "Salta fins a la coincidència anterior" + +#. i18n: ectx: property (toolTip), widget (QToolButton, matchCase) +#: search/searchbarincremental.ui:111 search/searchbarpower.ui:136 +#, kde-format +msgid "Match case sensitive" +msgstr "Distingix entre majúscules i minúscules" + +#. i18n: ectx: property (toolTip), widget (QToolButton, mutate) +#: search/searchbarincremental.ui:146 +#, kde-format +msgid "Switch to power search and replace bar" +msgstr "Canvia a la barra potent de busca i de substitució" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: search/searchbarpower.ui:50 +#, kde-format +msgid "Fin&d:" +msgstr "Bu&sca:" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: search/searchbarpower.ui:63 +#, kde-format +msgid "Rep&lace:" +msgstr "Su&bstituïx:" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: search/searchbarpower.ui:76 +#, kde-format +msgid "&Mode:" +msgstr "&Mode:" + +#. i18n: ectx: property (toolTip), widget (QComboBox, searchMode) +#: search/searchbarpower.ui:103 +#, kde-format +msgid "Search mode" +msgstr "Mode de busca" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:113 +#, kde-format +msgid "Plain text" +msgstr "Text net" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:118 +#, kde-format +msgid "Whole words" +msgstr "Paraules completes" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:123 +#, kde-format +msgid "Escape sequences" +msgstr "Seqüències d'escapada" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:128 +#, kde-format +msgid "Regular expression" +msgstr "Expressió regular" + +#. i18n: ectx: property (toolTip), widget (QToolButton, selectionOnly) +#: search/searchbarpower.ui:149 +#, kde-format +msgid "Search in the selection only" +msgstr "Busca només en la selecció" + +#. i18n: ectx: property (toolTip), widget (QPushButton, replaceNext) +#: search/searchbarpower.ui:195 +#, kde-format +msgid "Replace next match" +msgstr "Substituïx la coincidència següent" + +#. i18n: ectx: property (text), widget (QPushButton, replaceNext) +#. i18n: ectx: property (text), widget (QPushButton, m_replaceBtn) +#: search/searchbarpower.ui:198 spellcheck/spellcheckbar.ui:130 +#, kde-format +msgid "&Replace" +msgstr "Su&bstituïx" + +#. i18n: ectx: property (toolTip), widget (QPushButton, replaceAll) +#: search/searchbarpower.ui:224 +#, kde-format +msgid "Replace all matches" +msgstr "Substituïx totes les coincidències" + +#. i18n: ectx: property (text), widget (QPushButton, replaceAll) +#: search/searchbarpower.ui:227 +#, kde-format +msgid "Replace &All" +msgstr "Substituïx-ho &tot" + +#. i18n: ectx: property (text), widget (QPushButton, findAll) +#: search/searchbarpower.ui:234 +#, kde-format +msgid "&Find All" +msgstr "Bu&sca-ho tot" + +#. i18n: ectx: property (text), widget (QPushButton, cancel) +#: search/searchbarpower.ui:257 +#, kde-format +msgid "Cancel" +msgstr "Cancel·la" + +#. i18n: ectx: property (toolTip), widget (QToolButton, mutate) +#: search/searchbarpower.ui:268 +#, kde-format +msgid "Switch to incremental search bar" +msgstr "Canvia a la barra de busca incremental" + +#. i18n: ectx: property (toolTip), widget (QComboBox, replacement) +#: search/searchbarpower.ui:314 +#, kde-format +msgid "Text to replace with" +msgstr "Substituïx el text amb" + +#: spellcheck/spellcheckbar.cpp:148 +#, kde-format +msgid "Spell check canceled." +msgstr "S'ha cancel·lat la verificació ortogràfica." + +#: spellcheck/spellcheckbar.cpp:245 +#, kde-format +msgctxt "@info:progress" +msgid "Spell checking in progress…" +msgstr "Verificació ortogràfica en curs…" + +#: spellcheck/spellcheckbar.cpp:246 spellcheck/spellcheckbar.cpp:435 +#, kde-format +msgctxt "@title:window" +msgid "Check Spelling" +msgstr "Comprovació d'ortografia" + +#: spellcheck/spellcheckbar.cpp:432 spellcheck/spellcheckbar.cpp:435 +#, kde-format +msgid "Spell check complete." +msgstr "La verificació ortogràfica ha finalitzat." + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel2) +#. i18n: ectx: property (whatsThis), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:30 spellcheck/spellcheckbar.ui:46 +#, kde-format +msgid "" +"

This word was considered to be an \"unknown word\" because it does " +"not match any entry in the dictionary currently in use. It may also be a " +"word in a foreign language.

\n" +"

If the word is not misspelled, you may add it to the dictionary by " +"clicking Add to Dictionary. If you do not want to add the unknown " +"word to the dictionary, but you want to leave it unchanged, click Ignore or Ignore All.

\n" +"

However, if the word is misspelled, you can try to find the correct " +"replacement in the list below. If you cannot find a replacement there, you " +"may type it in the text box below, and click Replace or Replace " +"All.

\n" +"
" +msgstr "" +"

Esta paraula s'ha considerat una «paraula desconeguda» perquè no " +"coincidix amb cap entrada del diccionari actualment en ús. També pot ser una " +"paraula d'un idioma estranger.

\n" +"

Si la paraula no està mal escrita, podeu afegir-la al diccionari clicant " +"damunt Afig al diccionari. Si no voleu afegir-la al diccionari, però " +"voleu deixar-la sense canviar, cliqueu damunt Ignora o Ignora-ho " +"tot.

\n" +"

En canvi, si la paraula està mal escrita, podeu intentar de trobar la " +"substitució correcta en la llista a continuació. Si no hi trobeu una " +"substitució, podeu escriure en el quadro de text a continuació i clicar " +"damunt Substituïx o Substituïx-ho tot.

\n" +"
" + +#. i18n: ectx: property (text), widget (QLabel, textLabel2) +#: spellcheck/spellcheckbar.ui:33 +#, kde-format +msgid "Unknown word:" +msgstr "Paraula desconeguda:" + +#. i18n: ectx: property (toolTip), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:40 +#, kde-format +msgid "Unknown word" +msgstr "Paraula desconeguda" + +#. i18n: ectx: property (text), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:49 +#, kde-format +msgid "misspelled" +msgstr "error ortogràfic" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_addBtn) +#: spellcheck/spellcheckbar.ui:72 +#, kde-format +msgid "" +"\n" +"

The unknown word was detected and considered unknown because it is not " +"included in the dictionary.
\n" +"Click here if you consider the unknown word not to be misspelled, and you " +"want to avoid wrongly detecting it again in the future. If you want to let " +"it remain as is, but not add it to the dictionary, then click Ignore " +"or Ignore All instead.

\n" +"
" +msgstr "" +"\n" +"

La paraula desconeguda s'ha detectat i s'ha considerat desconeguda perquè " +"no està inclosa al diccionari.
\n" +"Cliqueu ací si considereu que la paraula desconeguda no està mal escrita i " +"voleu evitar detectar-la incorrectament en el futur. Si voleu deixar-la tal " +"com està, però no voleu afegir-la al diccionari, llavors cliqueu damunt " +"Ignora o Ignora-ho tot.

\n" +"
" + +#. i18n: ectx: property (text), widget (QPushButton, m_addBtn) +#: spellcheck/spellcheckbar.ui:75 +#, kde-format +msgid "<< Add to Dictionary" +msgstr "<< Afig al diccionari" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel4) +#: spellcheck/spellcheckbar.ui:89 +#, kde-format +msgid "" +"\n" +"

If the unknown word is misspelled, you should type the correction for " +"your misspelled word here or select it from the list below.

\n" +"

You can then click Replace if you want to correct only this " +"occurrence of the word or Replace All if you want to correct all " +"occurrences.

\n" +"
" +msgstr "" +"\n" +"

Si la paraula desconeguda està mal escrita, heu de teclejar la correcció " +"de l'error ortogràfic ací o triar-la des de la llista a continuació.

\n" +"

Llavors podeu clicar damunt Substituïx si voleu corregir només " +"este cas de la paraula o Substituïx-ho tot si voleu corregir totes " +"les ocurrències.

\n" +"
" + +#. i18n: ectx: property (text), widget (QLabel, textLabel4) +#: spellcheck/spellcheckbar.ui:92 +#, kde-format +msgid "Replace with:" +msgstr "Substituïx per:" + +#. i18n: ectx: property (text), widget (QPushButton, m_suggestBtn) +#: spellcheck/spellcheckbar.ui:118 +#, kde-format +msgid "S&uggest" +msgstr "S&uggerix" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_replaceBtn) +#: spellcheck/spellcheckbar.ui:127 +#, kde-format +msgid "" +"\n" +"

Click here to replace this occurrence of the unknown text with the text " +"in the edit box above (to the left).

\n" +"
" +msgstr "" +"\n" +"

Cliqueu ací per a substituir este cas del text desconegut amb el text del " +"quadro d'edició de dalt (a l'esquerra).

\n" +"
" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_skipBtn) +#: spellcheck/spellcheckbar.ui:140 +#, kde-format +msgid "" +"\n" +"

Click here to let this occurrence of the unknown word remain as is.

\n" +"

This action is useful when the word is a name, an acronym, a foreign word " +"or any other unknown word that you want to use but not add to the dictionary." +"

\n" +"
" +msgstr "" +"\n" +"

Cliqueu ací per a deixar este cas de la paraula desconeguda tal com està." +"

\n" +"

Esta acció és útil quan una paraula és un nom, un acrònim, una paraula " +"estrangera o qualsevol altra paraula desconeguda que voleu utilitzar, però " +"no voleu afegir al diccionari.

\n" +"
" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel5) +#. i18n: ectx: property (whatsThis), widget (Sonnet::DictionaryComboBox, m_language) +#: spellcheck/spellcheckbar.ui:156 spellcheck/spellcheckbar.ui:174 +#, kde-format +msgid "" +"\n" +"

Select the language of the document you are proofing here.

\n" +"
" +msgstr "" +"\n" +"

Trieu l'idioma del document que esteu comprovant ací.

\n" +"
" + +#. i18n: ectx: property (text), widget (QLabel, textLabel5) +#: spellcheck/spellcheckbar.ui:159 +#, kde-format +msgid "&Language:" +msgstr "&Idioma:" + +#. i18n: ectx: property (toolTip), widget (Sonnet::DictionaryComboBox, m_language) +#: spellcheck/spellcheckbar.ui:169 +#, kde-format +msgid "Language Selection" +msgstr "Trieu l'idioma" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_autoCorrect) +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_skipAllBtn) +#: spellcheck/spellcheckbar.ui:197 spellcheck/spellcheckbar.ui:222 +#, kde-format +msgid "" +"\n" +"

Click here to let all occurrences of the unknown word remain as they are." +"

\n" +"

This action is useful when the word is a name, an acronym, a foreign word " +"or any other unknown word that you want to use but not add to the dictionary." +"

\n" +"
" +msgstr "" +"\n" +"

Cliqueu ací per a deixar totes les ocurrències de la paraula desconeguda " +"tal com estan.

\n" +"

Esta acció és útil quan una paraula és un nom, un acrònim, una paraula " +"estrangera o qualsevol altra paraula desconeguda que voleu utilitzar, però " +"no voleu afegir al diccionari.

\n" +"
" + +#. i18n: ectx: property (text), widget (QPushButton, m_autoCorrect) +#: spellcheck/spellcheckbar.ui:200 +#, kde-format +msgid "Autocorrect" +msgstr "Correcció automàtica" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_replaceAllBtn) +#: spellcheck/spellcheckbar.ui:209 +#, kde-format +msgid "" +"\n" +"

Click here to replace all occurrences of the unknown text with the text " +"in the edit box above (to the left).

\n" +"
" +msgstr "" +"\n" +"

Cliqueu ací per a substituir totes les ocurrències del text desconegut " +"amb el text del quadro d'edició de dalt (a l'esquerra).

\n" +"
" + +#. i18n: ectx: property (text), widget (QPushButton, m_replaceAllBtn) +#: spellcheck/spellcheckbar.ui:212 +#, kde-format +msgid "R&eplace All" +msgstr "Su&bstituïx-ho tot" + +#. i18n: ectx: property (text), widget (QPushButton, m_skipAllBtn) +#: spellcheck/spellcheckbar.ui:225 +#, kde-format +msgid "I&gnore All" +msgstr "I&gnora-ho tot" + +#: spellcheck/spellcheckdialog.cpp:51 +#, kde-format +msgctxt "@action" +msgid "Spelling (from Cursor)…" +msgstr "Ortografia (des del cursor)…" + +#: spellcheck/spellcheckdialog.cpp:54 +#, kde-format +msgid "Check the document's spelling from the cursor and forward" +msgstr "Verifica l'ortografia dels documents des del cursor cap avant" + +#: spellcheck/spellingmenu.cpp:76 +#, kde-format +msgid "Ignore Word" +msgstr "Ignora la paraula" + +#: spellcheck/spellingmenu.cpp:79 +#, kde-format +msgid "Add to Dictionary" +msgstr "Afig al diccionari" + +#: spellcheck/spellingmenu.cpp:172 +#, kde-format +msgid "Spelling '%1'" +msgstr "Ortografia de «%1»" + +#: swapfile/kateswapdiffcreator.cpp:87 +#, kde-format +msgid "" +"The diff command could not be found. Please make sure that diff(1) is " +"installed and in your PATH." +msgstr "" +"No s'ha pogut trobar l'ordre «diff». Assegureu-vos que diff(1) està " +"instal·lat i en el vostre PATH." + +#: swapfile/kateswapdiffcreator.cpp:98 +#, kde-format +msgid "The diff command '%1' could not be started." +msgstr "No s'ha pogut iniciar l'ordre «%1» de «diff»." + +#: swapfile/kateswapfile.cpp:642 +#, kde-format +msgid "The file was not closed properly." +msgstr "El fitxer no s'ha tancat adequadament." + +#: swapfile/kateswapfile.cpp:645 +#, kde-format +msgid "View Changes" +msgstr "Mostra els canvis" + +#: swapfile/kateswapfile.cpp:646 +#, kde-format +msgid "Recover Data" +msgstr "Recupera les dades" + +#: swapfile/kateswapfile.cpp:647 +#, kde-format +msgid "Discard" +msgstr "Descarta" + +#: syntax/katecolortreewidget.cpp:34 syntax/katecolortreewidget.cpp:61 +#, kde-format +msgid "Use default color from the color theme" +msgstr "Utilitza el color predeterminat des del tema de color" + +#: syntax/katehighlightmenu.cpp:39 +#, kde-format +msgid "None" +msgstr "Cap" + +#: syntax/katestyletreewidget.cpp:135 +#, kde-format +msgctxt "@title:column Meaning of text in editor" +msgid "Context" +msgstr "Context" + +#: syntax/katestyletreewidget.cpp:136 +#, kde-format +msgctxt "@title:column Text style" +msgid "Normal" +msgstr "Normal" + +#: syntax/katestyletreewidget.cpp:136 +#, kde-format +msgctxt "@title:column Text style" +msgid "Selected" +msgstr "Triat" + +#: syntax/katestyletreewidget.cpp:136 +#, kde-format +msgctxt "@title:column Text style" +msgid "Background" +msgstr "Fons" + +#: syntax/katestyletreewidget.cpp:137 +#, kde-format +msgctxt "@title:column Text style" +msgid "Background Selected" +msgstr "Fons seleccionat" + +#: syntax/katestyletreewidget.cpp:139 +#, kde-format +msgid "Use Default Style" +msgstr "Utilitza l'estil predeterminat" + +#: syntax/katestyletreewidget.cpp:238 +#, kde-format +msgid "&Bold" +msgstr "&Negreta" + +#: syntax/katestyletreewidget.cpp:243 +#, kde-format +msgid "&Italic" +msgstr "&Cursiva" + +#: syntax/katestyletreewidget.cpp:248 +#, kde-format +msgid "&Underline" +msgstr "&Subratllat" + +#: syntax/katestyletreewidget.cpp:253 +#, kde-format +msgid "S&trikeout" +msgstr "Ra&tllat" + +#: syntax/katestyletreewidget.cpp:260 +#, kde-format +msgctxt "@action:inmenu" +msgid "Normal &Color…" +msgstr "Color &normal…" + +#: syntax/katestyletreewidget.cpp:263 +#, kde-format +msgctxt "@action:inmenu" +msgid "&Selected Color…" +msgstr "Color &seleccionat…" + +#: syntax/katestyletreewidget.cpp:266 +#, kde-format +msgctxt "@action:inmenu" +msgid "&Background Color…" +msgstr "&Color de fons…" + +#: syntax/katestyletreewidget.cpp:269 +#, kde-format +msgctxt "@action:inmenu" +msgid "S&elected Background Color…" +msgstr "Color de fons s&eleccionat…" + +#: syntax/katestyletreewidget.cpp:275 +#, kde-format +msgid "Unset Normal Color" +msgstr "Trau l'assignació del color normal" + +#: syntax/katestyletreewidget.cpp:278 +#, kde-format +msgid "Unset Selected Color" +msgstr "Trau l'assignació del color seleccionat" + +#: syntax/katestyletreewidget.cpp:284 +#, kde-format +msgid "Unset Background Color" +msgstr "Trau l'assignació del color de fons" + +#: syntax/katestyletreewidget.cpp:289 +#, kde-format +msgid "Unset Selected Background Color" +msgstr "Trau l'assignació del color de fons seleccionat" + +#: syntax/katestyletreewidget.cpp:295 +#, kde-format +msgid "Use &Default Style" +msgstr "Utilitza l'estil pre&determinat" + +#: syntax/katestyletreewidget.cpp:408 +#, kde-format +msgctxt "No text or background color set" +msgid "None set" +msgstr "No establit" + +#: syntax/katestyletreewidget.cpp:642 +#, kde-format +msgid "" +"\"Use Default Style\" will be automatically unset when you change any style " +"properties." +msgstr "" +"«Utilitza l'estil predeterminat» serà automàticament desseleccionat quan " +"canvieu qualsevol propietat d'un estil." + +#: syntax/katestyletreewidget.cpp:643 +#, kde-format +msgid "Kate Styles" +msgstr "Estils de Kate" + +#: syntax/katethemeconfig.cpp:47 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Normal" +msgstr "Normal" + +#: syntax/katethemeconfig.cpp:49 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Keyword" +msgstr "Paraula clau" + +#: syntax/katethemeconfig.cpp:51 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Function" +msgstr "Funció" + +#: syntax/katethemeconfig.cpp:53 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Variable" +msgstr "Variable" + +#: syntax/katethemeconfig.cpp:55 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Control Flow" +msgstr "Flux de control" + +#: syntax/katethemeconfig.cpp:57 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Operator" +msgstr "Operador" + +#: syntax/katethemeconfig.cpp:59 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Built-in" +msgstr "Integrat" + +#: syntax/katethemeconfig.cpp:61 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Extension" +msgstr "Extensió" + +#: syntax/katethemeconfig.cpp:63 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Preprocessor" +msgstr "Prepocessador" + +#: syntax/katethemeconfig.cpp:65 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Attribute" +msgstr "Atribut" + +#: syntax/katethemeconfig.cpp:68 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Character" +msgstr "Caràcter" + +#: syntax/katethemeconfig.cpp:70 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Special Character" +msgstr "Caràcter especial" + +#: syntax/katethemeconfig.cpp:72 +#, kde-format +msgctxt "@item:intable Text context" +msgid "String" +msgstr "Cadena" + +#: syntax/katethemeconfig.cpp:74 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Verbatim String" +msgstr "Cadena literal" + +#: syntax/katethemeconfig.cpp:76 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Special String" +msgstr "Cadena especial" + +#: syntax/katethemeconfig.cpp:78 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Imports, Modules, Includes" +msgstr "Importacions, mòduls i inclusions" + +#: syntax/katethemeconfig.cpp:81 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Data Type" +msgstr "Tipus de dada" + +#: syntax/katethemeconfig.cpp:83 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Decimal/Value" +msgstr "Decimal/valor" + +#: syntax/katethemeconfig.cpp:85 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Base-N Integer" +msgstr "Enter base-N" + +#: syntax/katethemeconfig.cpp:87 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Floating Point" +msgstr "Coma flotant" + +#: syntax/katethemeconfig.cpp:89 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Constant" +msgstr "Constant" + +#: syntax/katethemeconfig.cpp:92 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Comment" +msgstr "Comentari" + +#: syntax/katethemeconfig.cpp:94 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Documentation" +msgstr "Documentació" + +#: syntax/katethemeconfig.cpp:96 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Annotation" +msgstr "Anotació" + +#: syntax/katethemeconfig.cpp:98 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Comment Variable" +msgstr "Variable de comentari" + +#: syntax/katethemeconfig.cpp:101 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Region Marker" +msgstr "Marcador de regió" + +#: syntax/katethemeconfig.cpp:103 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Information" +msgstr "Informació" + +#: syntax/katethemeconfig.cpp:105 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Warning" +msgstr "Avís" + +#: syntax/katethemeconfig.cpp:107 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Alert" +msgstr "Alerta" + +#: syntax/katethemeconfig.cpp:110 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Others" +msgstr "Altres" + +#: syntax/katethemeconfig.cpp:113 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Error" +msgstr "S'ha produït un error" + +#: syntax/katethemeconfig.cpp:162 +#, kde-format +msgid "Use Default Colors" +msgstr "Utilitza els colors predeterminats" + +#: syntax/katethemeconfig.cpp:182 +#, kde-format +msgid "Editor Background Colors" +msgstr "Editor dels colors de fons" + +#: syntax/katethemeconfig.cpp:184 +#, kde-format +msgid "Text Area" +msgstr "Àrea de text" + +#: syntax/katethemeconfig.cpp:186 +#, kde-format +msgid "

Sets the background color of the editing area.

" +msgstr "

Establix el color de fons de l'àrea d'edició.

" + +#: syntax/katethemeconfig.cpp:191 +#, kde-format +msgid "Selected Text" +msgstr "Text seleccionat" + +#: syntax/katethemeconfig.cpp:194 +#, kde-format +msgid "" +"

Sets the background color of the selection.

To set the text color " +"for selected text, use the "Configure Highlighting" dialog." +"

" +msgstr "" +"

Establix el color de fons per a la selecció.

Per a establir el " +"color del text per al text seleccionat, utilitzeu el diàleg "" +"Configura el ressaltat".

" + +#: syntax/katethemeconfig.cpp:200 +#, kde-format +msgid "Current Line" +msgstr "Línia actual" + +#: syntax/katethemeconfig.cpp:202 +#, kde-format +msgid "" +"

Sets the background color of the currently active line, which means the " +"line where your cursor is positioned.

" +msgstr "" +"

Establix el color de fons de la línia actualment activa, és a dir, la " +"línia a on està situat el cursor.

" + +#: syntax/katethemeconfig.cpp:207 +#, kde-format +msgid "Search Highlight" +msgstr "Ressaltat de la busca" + +#: syntax/katethemeconfig.cpp:209 +#, kde-format +msgid "

Sets the background color of search results.

" +msgstr "

Establix el color de fons del resultat de la busca.

" + +#: syntax/katethemeconfig.cpp:214 +#, kde-format +msgid "Replace Highlight" +msgstr "Ressaltat de la substitució" + +#: syntax/katethemeconfig.cpp:216 +#, kde-format +msgid "

Sets the background color of replaced text.

" +msgstr "

Establix el color de fons del text substituït.

" + +#: syntax/katethemeconfig.cpp:223 +#, kde-format +msgid "Icon Border" +msgstr "Vora de la icona" + +#: syntax/katethemeconfig.cpp:226 +#, kde-format +msgid "Background Area" +msgstr "Àrea de fons" + +#: syntax/katethemeconfig.cpp:228 +#, kde-format +msgid "

Sets the background color of the icon border.

" +msgstr "

Establix el color de fons de la vora de les icones.

" + +#: syntax/katethemeconfig.cpp:233 view/screenshotdialog.cpp:265 +#, kde-format +msgid "Line Numbers" +msgstr "Números de les línies" + +#: syntax/katethemeconfig.cpp:235 +#, kde-format +msgid "

This color will be used to draw the line numbers (if enabled).

" +msgstr "" +"

Este color s'utilitzarà per a dibuixar els números de les línies (si està " +"activada).

" + +#: syntax/katethemeconfig.cpp:240 +#, kde-format +msgid "Current Line Number" +msgstr "Número de la línia actual" + +#: syntax/katethemeconfig.cpp:242 +#, kde-format +msgid "" +"

This color will be used to draw the number of the current line (if " +"enabled).

" +msgstr "" +"

Este color s'utilitzarà per a dibuixar el número de la línia actual (si " +"està activada).

" + +#: syntax/katethemeconfig.cpp:247 +#, kde-format +msgid "Separator" +msgstr "Separador" + +#: syntax/katethemeconfig.cpp:249 +#, kde-format +msgid "" +"

This color will be used to draw the line between line numbers and the " +"icon borders, if both are enabled.

" +msgstr "" +"

Este color s'utilitzarà per a dibuixar la línia entre els números de " +"línia i les vores de la icona, si ambdues estan activades.

" + +#: syntax/katethemeconfig.cpp:254 +#, kde-format +msgid "Word Wrap Marker" +msgstr "Marcadors d'ajust de les paraules" + +#: syntax/katethemeconfig.cpp:257 +#, kde-format +msgid "" +"

Sets the color of Word Wrap-related markers:

Static Word Wrap
A vertical line which shows the column where text is going to be " +"wrapped
Dynamic Word Wrap
An arrow shown to the left of " +"visually-wrapped lines
" +msgstr "" +"

Establix el color dels marcadors relacionats amb l'ajust de les paraules:" +"

Ajust estàtic de les paraules
Una línia vertical que " +"indica la columna on s'ajustarà el text
Ajust dinàmic de les " +"paraules
Una fletxa que indica la part esquerra de les línies " +"ajustades visualment
" + +#: syntax/katethemeconfig.cpp:264 +#, kde-format +msgid "Code Folding" +msgstr "Plegat de codi" + +#: syntax/katethemeconfig.cpp:266 +#, kde-format +msgid "

Sets the color of the code folding bar.

" +msgstr "

Establix el color de la barra del plegat de codi.

" + +#: syntax/katethemeconfig.cpp:271 +#, kde-format +msgid "Modified Lines" +msgstr "Línies modificades" + +#: syntax/katethemeconfig.cpp:273 +#, kde-format +msgid "" +"

Sets the color of the line modification marker for modified lines.

" +msgstr "" +"

Establix el color del marcador de modificació de línia per a les línies " +"modificades.

" + +#: syntax/katethemeconfig.cpp:278 +#, kde-format +msgid "Saved Lines" +msgstr "Línies guardades" + +#: syntax/katethemeconfig.cpp:280 +#, kde-format +msgid "

Sets the color of the line modification marker for saved lines.

" +msgstr "" +"

Establix el color de la marca de línia modificada per a les línies " +"guardades.

" + +#: syntax/katethemeconfig.cpp:287 +#, kde-format +msgid "Text Decorations" +msgstr "Decoracions de text" + +#: syntax/katethemeconfig.cpp:290 +#, kde-format +msgid "Spelling Mistake Line" +msgstr "Línia amb error ortogràfic" + +#: syntax/katethemeconfig.cpp:292 +#, kde-format +msgid "" +"

Sets the color of the line that is used to indicate spelling mistakes.

" +msgstr "" +"

Establix el color de la línia que s'utilitza per a indicar els errors " +"ortogràfics.

" + +#: syntax/katethemeconfig.cpp:297 +#, kde-format +msgid "Tab and Space Markers" +msgstr "Marcadors de tabulació i espai" + +#: syntax/katethemeconfig.cpp:299 +#, kde-format +msgid "

Sets the color of the tabulator marks.

" +msgstr "

Establix el color de les marques de tabulació.

" + +#: syntax/katethemeconfig.cpp:304 +#, kde-format +msgid "Indentation Line" +msgstr "Sagnat" + +#: syntax/katethemeconfig.cpp:306 +#, kde-format +msgid "

Sets the color of the vertical indentation lines.

" +msgstr "

Establix el color de les línies de sagnat verticals.

" + +#: syntax/katethemeconfig.cpp:311 +#, kde-format +msgid "Bracket Highlight" +msgstr "Ressaltat de parèntesis" + +#: syntax/katethemeconfig.cpp:314 +#, kde-format +msgid "" +"

Sets the bracket matching color. This means, if you place the cursor e.g. " +"at a (, the matching ) will be highlighted with this color.

" +msgstr "" +"

Establix el color dels parèntesis emparellats. Açò vol dir que si poseu " +"el cursor, p. ex., a un (, el corresponent ) es ressaltarà amb " +"este color.

" + +#: syntax/katethemeconfig.cpp:322 +#, kde-format +msgid "Marker Colors" +msgstr "Colors dels marcadors" + +#: syntax/katethemeconfig.cpp:324 view/kateviewhelpers.cpp:1536 +#, kde-format +msgid "Bookmark" +msgstr "Punt" + +#: syntax/katethemeconfig.cpp:325 +#, kde-format +msgid "Active Breakpoint" +msgstr "Punt d'interrupció actiu" + +#: syntax/katethemeconfig.cpp:326 +#, kde-format +msgid "Reached Breakpoint" +msgstr "S'ha arribat a un punt d'interrupció" + +#: syntax/katethemeconfig.cpp:327 +#, kde-format +msgid "Disabled Breakpoint" +msgstr "Punt d'interrupció desactivat" + +#: syntax/katethemeconfig.cpp:328 +#, kde-format +msgid "Execution" +msgstr "Execució" + +#: syntax/katethemeconfig.cpp:329 +#, kde-format +msgid "Warning" +msgstr "Avís" + +#: syntax/katethemeconfig.cpp:330 +#, kde-format +msgid "Error" +msgstr "S'ha produït un error" + +#: syntax/katethemeconfig.cpp:332 +#, kde-format +msgid "" +"

Sets the background color of mark type.

Note: The marker " +"color is displayed lightly because of transparency.

" +msgstr "" +"

Establix el color de fons del tipus de marcador.

Nota: El " +"color del marcador apareixerà més clar a causa de la transparència.

" + +#: syntax/katethemeconfig.cpp:344 +#, kde-format +msgid "Text Templates & Snippets" +msgstr "Plantilles i fragments de text" + +#: syntax/katethemeconfig.cpp:349 +#, kde-format +msgid "Background" +msgstr "Fons" + +#: syntax/katethemeconfig.cpp:355 +#, kde-format +msgid "Editable Placeholder" +msgstr "Text variable editable" + +#: syntax/katethemeconfig.cpp:361 +#, kde-format +msgid "Focused Editable Placeholder" +msgstr "Text variable editable amb el focus" + +#: syntax/katethemeconfig.cpp:367 +#, kde-format +msgid "Not Editable Placeholder" +msgstr "Text variable no editable" + +#: syntax/katethemeconfig.cpp:501 +#, kde-format +msgid "" +"

This list displays the default styles for the current color theme and " +"offers the means to edit them. The style name reflects the current style " +"settings.

To edit the colors, click the colored squares, or select the " +"color to edit from the popup menu.

You can unset the Background and " +"Selected Background colors from the popup menu when appropriate.

" +msgstr "" +"

Esta llista mostra els estils predeterminats per al tema actual i oferix " +"els mitjans per a editar-los. El nom de l'estil indica la configuració de " +"l'estil actual.

Per a editar els colors, cliqueu damunt dels quadros " +"de color o trieu el color a editar des del menú emergent.

Quan siga " +"apropiat, podreu traure l'assignació dels colors per al fons i el fons " +"seleccionat des del menú emergent.

" + +#: syntax/katethemeconfig.cpp:568 +#, kde-format +msgctxt "@item:intable" +msgid "Normal Text & Source Code" +msgstr "Text normal i codi font" + +#: syntax/katethemeconfig.cpp:575 +#, kde-format +msgctxt "@item:intable" +msgid "Numbers, Types & Constants" +msgstr "Nombres, tipus i constants" + +#: syntax/katethemeconfig.cpp:582 +#, kde-format +msgctxt "@item:intable" +msgid "Strings & Characters" +msgstr "Cadenes i caràcters" + +#: syntax/katethemeconfig.cpp:589 +#, kde-format +msgctxt "@item:intable" +msgid "Comments & Documentation" +msgstr "Comentaris i documentació" + +#: syntax/katethemeconfig.cpp:596 +#, kde-format +msgctxt "@item:intable" +msgid "Miscellaneous" +msgstr "Miscel·lània" + +#: syntax/katethemeconfig.cpp:704 +#, kde-format +msgid "H&ighlight:" +msgstr "&Ressaltat:" + +#: syntax/katethemeconfig.cpp:746 +#, kde-format +msgid "" +"

This list displays the contexts of the current syntax highlight mode and " +"offers the means to edit them. The context name reflects the current style " +"settings.

To edit using the keyboard, press <SPACE> and choose a property from the popup menu.

To edit the colors, " +"click the colored squares, or select the color to edit from the popup menu.

You can unset the Background and Selected Background colors from the " +"context menu when appropriate.

" +msgstr "" +"

Esta llista mostra els contexts del mode actual de ressaltat sintàctic i " +"oferix els mitjans per a editar-los. El nom del context indica la " +"configuració de l'estil actual.

Per a editar-lo emprant el teclat, " +"premeu <ESPAI> i trieu una propietat des del menú " +"emergent.

Per a editar els colors, cliqueu damunt dels quadros de " +"color o trieu el color a editar des del menú emergent.

Quan siga " +"apropiat, podreu traure l'assignació dels colors per al fons i el fons " +"seleccionat des del menú contextual.

" + +#: syntax/katethemeconfig.cpp:1027 +#, kde-format +msgid "Default Theme" +msgstr "Tema predeterminat" + +#: syntax/katethemeconfig.cpp:1028 +#, kde-format +msgid "Theme Editor" +msgstr "Editor de temes" + +#: syntax/katethemeconfig.cpp:1046 +#, kde-format +msgid "Select theme:" +msgstr "Trieu el tema:" + +#: syntax/katethemeconfig.cpp:1119 +#, kde-format +msgid "&Theme:" +msgstr "&Tema:" + +#: syntax/katethemeconfig.cpp:1128 +#, kde-format +msgctxt "@action:button" +msgid "&Copy…" +msgstr "&Copia…" + +#: syntax/katethemeconfig.cpp:1136 +#, kde-format +msgctxt "@action:button" +msgid "Export…" +msgstr "Exporta…" + +#: syntax/katethemeconfig.cpp:1140 +#, kde-format +msgctxt "@action:button" +msgid "Import…" +msgstr "Importa…" + +#: syntax/katethemeconfig.cpp:1147 +#, kde-format +msgid "Bundled read-only theme. To modify the theme, please copy it." +msgstr "Tema empaquetat de només lectura. Per a modificar el tema, copieu-lo." + +#: syntax/katethemeconfig.cpp:1160 +#, kde-format +msgid "Colors" +msgstr "Colors" + +#: syntax/katethemeconfig.cpp:1164 +#, kde-format +msgid "Default Text Styles" +msgstr "Estils de text predeterminat" + +#: syntax/katethemeconfig.cpp:1168 +#, kde-format +msgid "Highlighting Text Styles" +msgstr "Estils de text ressaltat" + +#: syntax/katethemeconfig.cpp:1180 +#, kde-format +msgid "Exporting color theme: %1" +msgstr "S'està exportant el tema de color: %1" + +#: syntax/katethemeconfig.cpp:1182 syntax/katethemeconfig.cpp:1203 +#, kde-format +msgid "Color theme" +msgstr "Tema de color" + +#: syntax/katethemeconfig.cpp:1203 +#, kde-format +msgid "Importing Color Theme" +msgstr "S'està important el tema de color" + +#: syntax/katethemeconfig.cpp:1217 +#, kde-format +msgid "" +"Importing will overwrite the existing theme file \"%1\". This can not be " +"undone." +msgstr "" +"La importació sobreescriurà el fitxer existent de tema «%1». Açò no es podrà " +"desfer." + +#: syntax/katethemeconfig.cpp:1219 +#, kde-format +msgid "Import Nevertheless" +msgstr "Importa malgrat tot" + +#: syntax/katethemeconfig.cpp:1308 +#, kde-format +msgid "Follow System Color Scheme" +msgstr "Seguix l'esquema de color del sistema" + +#: syntax/katethemeconfig.cpp:1375 +#, kde-format +msgid "Do you really want to delete the theme \"%1\"? This can not be undone." +msgstr "Segur que voleu suprimir el tema «%1»? Açò no es podrà desfer." + +#: syntax/katethemeconfig.cpp:1377 +#, kde-format +msgid "Delete Nevertheless" +msgstr "Suprimix malgrat tot" + +#: syntax/katethemeconfig.cpp:1419 +#, kde-format +msgid "Copy theme" +msgstr "Copia el tema" + +#: syntax/katethemeconfig.cpp:1420 +#, kde-format +msgid "Name for copy of color theme \"%1\":" +msgstr "Nom per a la còpia del tema de color «%1»:" + +#: syntax/katethemeconfig.cpp:1432 +#, kde-format +msgid "" +"

The theme \"%1\" already exists.

Please choose a different theme " +"name.

" +msgstr "

El tema %1 ja existix.

Trieu un nom de tema diferent.

" + +#: syntax/katethemeconfig.cpp:1433 +#, kde-format +msgid "Copy Theme" +msgstr "Copia el tema" + +#: syntax/katethemeconfig.cpp:1486 syntax/katethemeconfig.cpp:1491 +#, kde-format +msgid "Color Themes" +msgstr "Temes de color" + +#: utils/kateautoindent.cpp:88 +#, kde-format +msgctxt "Autoindent mode" +msgid "None" +msgstr "Cap" + +#: utils/kateautoindent.cpp:92 +#, kde-format +msgctxt "Autoindent mode" +msgid "Normal" +msgstr "Normal" + +#: utils/katebookmarks.cpp:49 +#, kde-format +msgid "Toggle &Bookmark" +msgstr "Canvia el &punt" + +#: utils/katebookmarks.cpp:53 +#, kde-format +msgid "If a line has no bookmark then add one, otherwise remove it." +msgstr "" +"Si una línia no disposa de punt, llavors n'hi afegirà un, d'altra manera " +"l'eliminarà." + +#: utils/katebookmarks.cpp:56 +#, kde-format +msgid "Clear &All Bookmarks" +msgstr "Neteja tots els &punts" + +#: utils/katebookmarks.cpp:59 +#, kde-format +msgid "Remove all bookmarks of the current document." +msgstr "Elimina tots els punts del document actual." + +#: utils/katebookmarks.cpp:62 utils/katebookmarks.cpp:219 +#, kde-format +msgid "Next Bookmark" +msgstr "Punt següent" + +#: utils/katebookmarks.cpp:66 +#, kde-format +msgid "Go to the next bookmark." +msgstr "Va cap al punt següent." + +#: utils/katebookmarks.cpp:69 utils/katebookmarks.cpp:220 +#, kde-format +msgid "Previous Bookmark" +msgstr "Punt anterior" + +#: utils/katebookmarks.cpp:73 +#, kde-format +msgid "Go to the previous bookmark." +msgstr "Va cap al punt anterior." + +#: utils/katebookmarks.cpp:76 +#, kde-format +msgid "&Bookmarks" +msgstr "&Punts" + +#: utils/katebookmarks.cpp:192 +#, kde-format +msgid "&Next: %1 - \"%2\"" +msgstr "&Següent: %1 – «%2»" + +#: utils/katebookmarks.cpp:198 +#, kde-format +msgid "&Previous: %1 - \"%2\"" +msgstr "&Anterior: %1 – «%2»" + +#: utils/katecmds.cpp:53 +#, kde-format +msgid "

indent

Indents the selected lines or the current line

" +msgstr "

indent

Sagna les línies seleccionades o la línia actual.

" + +#: utils/katecmds.cpp:58 +#, kde-format +msgid "

unindent

Unindents the selected lines or current line.

" +msgstr "" +"

unindent

Elimina el sagnat de les línies seleccionades o la línia " +"actual.

" + +#: utils/katecmds.cpp:63 +#, kde-format +msgid "" +"

cleanindent

Cleans up the indentation of the selected lines or " +"current line according to the indentation settings in the document.

" +msgstr "" +"

cleanindent

Elimina el sagnat de les línies seleccionades o la " +"línia actual d'acord amb les opcions de sagnat que teniu establides en el " +"document.

" + +#: utils/katecmds.cpp:68 +#, kde-format +msgid "" +"

comment

Inserts comment markers to make the selection or selected " +"lines or current line a comment according to the text format as defined by " +"the syntax highlight definition for the document.

" +msgstr "" +"

comment

Inserix marques de comentari fent que la selecció, les " +"línies seleccionades o la línia actual siguen un comentari d'acord amb el " +"format de text que s'haja establit en la sintaxi de ressaltat per al " +"document.

" + +#: utils/katecmds.cpp:74 +#, kde-format +msgid "" +"

uncomment

Removes comment markers from the selection or selected " +"lines or current line according to the text format as defined by the syntax " +"highlight definition for the document.

" +msgstr "" +"

uncomment

Elimina les marques de comentari de la selecció, de les " +"línies seleccionades o la línia actual, d'acord amb el format del text tal " +"com està definit per la definició de ressaltat de la sintaxi per al document." +"

" + +#: utils/katecmds.cpp:80 +#, kde-format +msgid "" +"

goto line number

This command navigates to the specified " +"line number.

" +msgstr "" +"

goto número de línia

Esta ordre va fins al número de línia " +"especificada.

" + +#: utils/katecmds.cpp:85 +#, kde-format +msgid "" +"

set-indent-pasted-text enable

If enabled, indentation of " +"text pasted from the clipboard is adjusted using the current indenter.

Possible true values: 1 on true
possible false values: 0 off false" +msgstr "" +"

set-indent-pasted-text enable

Si està marcada, el sagnat del " +"text apegat del porta-retalls s'ajustarà utilitzant el sagnat actual.

Els valors possibles de cert: 1, on, true
Valors possibles de fals: " +"0, off, false

" + +#: utils/katecmds.cpp:91 +#, kde-format +msgid "Deletes the current line." +msgstr "Suprimix la línia actual." + +#: utils/katecmds.cpp:95 +#, kde-format +msgid "" +"

set-tab-width width

Sets the tab width to the number " +"width

" +msgstr "" +"

set-tab-width amplària

Establix l'amplària de la tabulació " +"al nombre amplària.

" + +#: utils/katecmds.cpp:100 +#, kde-format +msgid "" +"

set-replace-tab enable

If enabled, tabs are replaced with " +"spaces as you type.

Possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" +"

set-replace-tab enable

Si està marcada, les tabulacions se " +"substituïxen per espais com si es teclejaren.

Els valors possibles de " +"cert: 1 on true
Valors possibles de fals: 0 off false

" + +# skip-rule: kct-tab +#: utils/katecmds.cpp:107 +#, kde-format +msgid "" +"

set-show-tabs enable

If enabled, TAB characters and trailing " +"whitespace will be visualized by a small dot.

Possible true values: 1 " +"on true
possible false values: 0 off false

" +msgstr "" +"

set-show-tabs enable

Si està marcada, els caràcters TAB i " +"els espais en blanc del final es visualitzaran com un punt xicotet.

Els valors possibles de cert: 1 on true
Valors possibles de fals: 0 " +"off false

" + +#: utils/katecmds.cpp:114 +#, kde-format +msgid "" +"

set-remove-trailing-spaces mode

Removes the trailing spaces " +"in the document depending on the mode.

Possible values:" +"

  • none: never remove trailing spaces.
  • modified: " +"remove trailing spaces only of modified lines.
  • all: remove " +"trailing spaces in the entire document.

" +msgstr "" +"

set-remove-trailing-spaces mode

Elimina els espais del final " +"del document depenent del mode.

Valors possibles:" +"

  • none: mai elimines els espais del final.
  • modified: elimina els espais del final només de les línies modificades.
  • " +"
  • all: elimina els espais del final de tot el document.
" + +#: utils/katecmds.cpp:125 +#, kde-format +msgid "" +"

set-indent-width width

Sets the indentation width to the " +"number width. Used only if you are indenting with spaces.

" +msgstr "" +"

set-indent-width amplària

Establix l'amplària del sagnat al " +"nombre amplària. Només s'utilitza si se sagna amb espais.

" + +#: utils/katecmds.cpp:130 +#, kde-format +msgid "" +"

set-indent-mode mode

The mode parameter is a value as seen " +"in the Tools - Indentation menu

" +msgstr "" +"

set-indent-mode mode

El paràmetre mode és un valor com es " +"veu en el menú «Eines → Sagnat».

" + +#: utils/katecmds.cpp:135 +#, kde-format +msgid "" +"

set-auto-indent enable

Enable or disable autoindentation.

possible true values: 1 on true
possible false values: 0 off false" +msgstr "" +"

set-auto-indent enable

Activa o desactiva el sagnat " +"automàtic.

Els valors possibles de cert: 1 on true
Valors " +"possibles de fals: 0 off false

" + +#: utils/katecmds.cpp:142 +#, kde-format +msgid "" +"

set-line-numbers enable

Sets the visibility of the line " +"numbers pane.

possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" +"

set-line-numbers enable

Establix la visibilitat de la " +"subfinestra dels números de línia.

Els valors possibles de cert: 1 on " +"true
Valors possibles de fals: 0 off false

" + +#: utils/katecmds.cpp:149 +#, kde-format +msgid "" +"

set-folding-markers enable

Sets the visibility of the " +"folding markers pane.

possible true values: 1 on true
possible " +"false values: 0 off false

" +msgstr "" +"

set-folding-markers enable

Establix la visibilitat de la " +"subfinestra de marques de plegat.

Els valors possibles de cert: 1 on " +"true
Valors possibles de fals: 0 off false

" + +#: utils/katecmds.cpp:156 +#, kde-format +msgid "" +"

set-icon-border enable

Sets the visibility of the icon " +"border.

possible true values: 1 on true
possible false values: 0 " +"off false

" +msgstr "" +"

set-icon-border enable

Establix la visibilitat de la vora " +"d'icones.

Els valors possibles de cert: 1 on true
Valors possibles " +"de fals: 0 off false

" + +#: utils/katecmds.cpp:163 +#, kde-format +msgid "" +"

set-word-wrap enable

Enables dynamic word wrap according to " +"enable

possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" +"

set-word-wrap enable

Activa l'ajust dinàmic de les paraules " +"d'acord amb enable

Els valors possibles de cert: 1 on true
Valors possibles de fals: 0 off false

" + +#: utils/katecmds.cpp:170 +#, kde-format +msgid "" +"

set-word-wrap-column width

Sets the line width for hard " +"wrapping to width. This is used if you are having your text wrapped " +"automatically.

" +msgstr "" +"

set-word-wrap-column amplària

Establix l'amplària per " +"a l'ajust de la línia. Açò s'utilitza si teniu l'ajust de línia automàtic " +"del text.

" + +#: utils/katecmds.cpp:175 +#, kde-format +msgid "" +"

set-replace-tabs-save enable

When enabled, tabs will be " +"replaced with whitespace whenever the document is saved.

possible " +"true values: 1 on true
possible false values: 0 off false

" +msgstr "" +"

set-replace-tabs-save enable

Quan es marca, els tabuladors " +"se substituiran per espais en blanc sempre que el document es guarde.

Els valors possibles de cert: 1 on true
Valors possibles de fals: 0 " +"off false

" + +#: utils/katecmds.cpp:182 +#, kde-format +msgid "" +"

set-highlight highlight

Sets the syntax highlighting system " +"for the document. The argument must be a valid highlight name, as seen in " +"the Tools → Highlighting menu. This command provides an autocompletion list " +"for its argument.

" +msgstr "" +"

set-highlight ressaltat

Establix el sistema de ressaltat de " +"sintaxi per al document. L'argument ha de ser un nom de ressaltat vàlid, com " +"es veu en el menú «Eines → Ressaltat». Esta ordre proporciona una llista de " +"compleció automàtica per al seu argument.

" + +#: utils/katecmds.cpp:188 +#, kde-format +msgid "

set-mode mode

Sets the mode as seen in Tools - Mode

" +msgstr "" +"

set-mode mode

Establix el mode com es veu a «Eines → Mode»" + +#: utils/katecmds.cpp:193 +#, kde-format +msgid "" +"

set-show-indent enable

If enabled, indentation will be " +"visualized by a vertical dotted line.

possible true values: 1 on " +"true
possible false values: 0 off false

" +msgstr "" +"

set-show-indent enable

Si està marcada, el sagnat es veurà " +"com una línia puntejada vertical.

Els valors possibles de cert: 1 on " +"true
Valors possibles de fals: 0 off false

" + +#: utils/katecmds.cpp:199 +#, kde-format +msgid "

Open the Print dialog to print the current document.

" +msgstr "

Obri el diàleg d'impressió per a imprimir el document actual.

" + +#: utils/katecmds.cpp:314 utils/katecmds.cpp:341 +#, kde-format +msgid "Missing argument. Usage: %1 " +msgstr "Falta un argument. Utilitzeu: %1 " + +#: utils/katecmds.cpp:327 +#, kde-format +msgid "No such highlighting '%1'" +msgstr "No es troba el ressaltat «%1»" + +#: utils/katecmds.cpp:333 +#, kde-format +msgid "No such mode '%1'" +msgstr "No es troba el mode «%1»" + +#: utils/katecmds.cpp:346 +#, kde-format +msgid "Failed to convert argument '%1' to integer." +msgstr "Ha fallat mentre es convertia l'argument «%1» a un nombre enter." + +#: utils/katecmds.cpp:350 utils/katecmds.cpp:355 +#, kde-format +msgid "Width must be at least 1." +msgstr "L'amplària almenys hauria de ser 1." + +#: utils/katecmds.cpp:360 +#, kde-format +msgid "Column must be at least 1." +msgstr "La columna almenys hauria de ser 1." + +#: utils/katecmds.cpp:390 +#, kde-format +msgid "Usage: %1 on|off|1|0|true|false" +msgstr "Utilitzeu: %1 on|off|1|0|true|false" + +#: utils/katecmds.cpp:417 +#, kde-format +msgid "Bad argument '%1'. Usage: %2 on|off|1|0|true|false" +msgstr "Argument erroni «%1». Utilitzeu: %2 on|off|1|0|true|false" + +#: utils/katecmds.cpp:421 +#, kde-format +msgid "" +"Usage: set-remove-trailing-spaces 0|-|none or 1|+|mod|modified or 2|*|all" +msgstr "" +"Sintaxi: set-remove-trailing-spaces 0|-|none or 1|+|mod|modified or 2|*|all" + +#: utils/katecmds.cpp:435 vimode/cmds.cpp:168 +#, kde-format +msgid "Unknown command '%1'" +msgstr "Ordre desconeguda «%1»" + +#: utils/katecmds.cpp:493 +#, kde-format +msgid "" +"

char identifier

This command allows you to insert literal " +"characters by their numerical identifier, in decimal, octal or hexadecimal " +"form.

Examples:

  • char 234
  • char 0x1234

" +msgstr "" +"

char identificador

Esta ordre permet inserir caràcters " +"literals pel seu identificador numèric, en format decimal, octal o " +"hexadecimal.

Exemples:

  • char 234
  • char 0x1234

" + +#: utils/katecmds.cpp:560 +#, kde-format +msgid "" +"

date or date format

Inserts a date/time string as defined by " +"the specified format, or the format yyyy-MM-dd hh:mm:ss if none is specified." +"

Possible format specifiers are:
dThe day as " +"number without a leading zero (1-31).
ddThe day as " +"number with a leading zero (01-31).
dddThe " +"abbreviated localized day name (e.g. 'Mon'..'Sun').
ddddThe long localized day name (e.g. 'Monday'..'Sunday').
MThe month as number without a leading zero (1-12).
MMThe month as number with a leading zero (01-12).
MMMThe abbreviated localized month name (e.g. " +"'Jan'..'Dec').
yyThe year as two digit number " +"(00-99).
yyyyThe year as four digit number " +"(1752-8000).
hThe hour without a leading zero " +"(0..23 or 1..12 if AM/PM display).
hhThe hour with " +"a leading zero (00..23 or 01..12 if AM/PM display).
mThe minute without a leading zero (0..59).
mmThe minute with a leading zero (00..59).
sThe second without a leading zero (0..59).
ssThe second with a leading zero (00..59).
zThe milliseconds without leading zeroes (0..999).
zzzThe milliseconds with leading zeroes (000..999).
APUse AM/PM display. AP will be replaced by either " +"\"AM\" or \"PM\".
apUse am/pm display. ap will be " +"replaced by either \"am\" or \"pm\".

" +msgstr "" +"

data o data format

Inserix una cadena de data/hora amb el " +"format definit pel format introduït, o el format yyyy-MM-dd hh:mm:ss si no " +"se n'introduïx cap.

Les especificacions de format possibles són:" +"
dEl dia com a nombre sense cap zero inicial (1-31).
ddEl dia com a nombre amb un zero inicial (01-31).
dddEl nom abreviat de dia traduït (p. ex., " +"«Dl»..«Dm»).
ddddEl nom llarg de dia traduït (p. " +"ex., «Dilluns»..«Diumenge»).
MEl mes com a nombre " +"sense cap zero inicial (1-12).
MMEl mes com a " +"nombre amb un zero inicial (01-12).
MMMEl nom " +"abreviat de mes traduït (p. ex., «Gen»..«Des»).
yyL'any com a nombre de dos dígits (00-99).
yyyyL'any com a nombre de quatre dígits (1752-8000).
hL'hora sense cap zero inicial (0..23 o 1..12 si es mostra AM/PM).
hhL'hora amb un zero inicial (00..23 o 01..12 si es " +"mostra AM/PM).
mEl minut sense cap zero inicial " +"(0..59).
mmEl minut amb un zero inicial (00..59).
sEl segon sense cap zero inicial (0..59).
ssEl segon amb un zero inicial (00..59).
zEls mil·lisegons sense cap zero inicial (0..999).
zzzEls mil·lisegons amb zeros inicials (000..999).
APUtilitza la visualització AM/PM. AP se substituirà per " +"«AM» o «PM».
apUtilitza la visualització am/pm. ap " +"se substituirà per «am» o «pm».

" + +#: utils/katecmds.cpp:621 +#, kde-format +msgid "Remove Duplicate Lines" +msgstr "Elimina les línies duplicades" + +#: utils/katecmds.cpp:622 +#, kde-format +msgid "Remove Duplicates and Sort Text Alphabetically" +msgstr "Elimina els duplicats i ordena alfabèticament el text" + +#: utils/katecmds.cpp:623 +#, kde-format +msgid "Sort Text Naturally" +msgstr "Ordena naturalment el text" + +#: utils/katecmds.cpp:624 +#, kde-format +msgid "Sort Selected Text Alphabetically" +msgstr "Ordena alfabèticament el text seleccionat" + +#: utils/katecmds.cpp:699 +#, kde-format +msgid "" +"

sort

Sort the selected text or whole document if there is no " +"selection

" +msgstr "" +"

sort

Ordena el text seleccionat o tot el document si no s'ha " +"seleccionat res

" + +#: utils/katecmds.cpp:703 +#, kde-format +msgid "" +"

uniq

Remove duplicate lines from the selected text or whole " +"document if there is no selection.

" +msgstr "" +"

uniq

Elimina les línies duplicades del text seleccionat o de tot el " +"document si no s'ha seleccionat res

" + +#: utils/katecmds.cpp:707 +#, kde-format +msgid "" +"

sortuniq

Sort the selected text or whole document and then remove " +"all duplicate lines.

" +msgstr "" +"

sortuniq

Ordena el text seleccionat o tot el document i després " +"elimina totes les línies duplicades

" + +#: utils/katecmds.cpp:711 +#, kde-format +msgid "" +"

natsort

Sort the selected text or whole document in natural order." +"
Here is an example to show the difference to the normal sort method:" +"
sort(a10, a1, a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" +msgstr "" +"

natsort

Ordena el text seleccionat o tot el document en l'ordre " +"natural.
Ací hi ha un exemple per a veure la diferència amb el mètode " +"d'ordenació normal:
sort(a10, a1, a2) => a1, a10, a2
natsort(a10, a1, " +"a2) => a1, a2, a10

" + +#: utils/kateglobal.cpp:60 +#, kde-format +msgid "Kate Part" +msgstr "Part de Kate" + +#: utils/kateglobal.cpp:62 +#, kde-format +msgid "Embeddable editor component" +msgstr "Component d'edició incrustable" + +#: utils/kateglobal.cpp:64 +#, kde-format +msgid "(c) 2000-2025 The Kate Authors" +msgstr "(c) 2000-2025 Els autors de Kate" + +#: utils/kateglobal.cpp:84 +#, kde-format +msgid "Christoph Cullmann" +msgstr "Christoph Cullmann" + +#: utils/kateglobal.cpp:84 +#, kde-format +msgid "Maintainer" +msgstr "Mantenidor" + +#: utils/kateglobal.cpp:85 +#, kde-format +msgid "Dominik Haumann" +msgstr "Dominik Haumann" + +#: utils/kateglobal.cpp:85 utils/kateglobal.cpp:86 utils/kateglobal.cpp:87 +#: utils/kateglobal.cpp:90 utils/kateglobal.cpp:93 utils/kateglobal.cpp:98 +#, kde-format +msgid "Core Developer" +msgstr "Desenvolupador principal" + +#: utils/kateglobal.cpp:86 +#, kde-format +msgid "Milian Wolff" +msgstr "Milian Wolff" + +#: utils/kateglobal.cpp:87 +#, kde-format +msgid "Joseph Wenninger" +msgstr "Joseph Wenninger" + +#: utils/kateglobal.cpp:88 +#, kde-format +msgid "Erlend Hamberg" +msgstr "Erlend Hamberg" + +#: utils/kateglobal.cpp:89 +#, kde-format +msgid "Bernhard Beschow" +msgstr "Bernhard Beschow" + +#: utils/kateglobal.cpp:89 utils/kateglobal.cpp:105 +#, kde-format +msgid "Developer" +msgstr "Desenvolupador" + +#: utils/kateglobal.cpp:90 +#, kde-format +msgid "Anders Lund" +msgstr "Anders Lund" + +#: utils/kateglobal.cpp:91 +#, kde-format +msgid "Michel Ludwig" +msgstr "Michel Ludwig" + +#: utils/kateglobal.cpp:91 +#, kde-format +msgid "On-the-fly spell checking" +msgstr "Verificació ortogràfica al vol" + +#: utils/kateglobal.cpp:92 +#, kde-format +msgid "Pascal Létourneau" +msgstr "Pascal Létourneau" + +#: utils/kateglobal.cpp:92 +#, kde-format +msgid "Large scale bug fixing" +msgstr "Correcció dels errors a gran escala" + +#: utils/kateglobal.cpp:93 +#, kde-format +msgid "Hamish Rodda" +msgstr "Hamish Rodda" + +#: utils/kateglobal.cpp:94 +#, kde-format +msgid "Waldo Bastian" +msgstr "Waldo Bastian" + +#: utils/kateglobal.cpp:94 +#, kde-format +msgid "The cool buffersystem" +msgstr "El fantàstic sistema de memòria intermèdia" + +#: utils/kateglobal.cpp:95 +#, kde-format +msgid "Charles Samuels" +msgstr "Charles Samuels" + +#: utils/kateglobal.cpp:95 +#, kde-format +msgid "The Editing Commands" +msgstr "Les ordres d'edició" + +#: utils/kateglobal.cpp:96 +#, kde-format +msgid "Matt Newell" +msgstr "Matt Newell" + +#: utils/kateglobal.cpp:96 +#, kde-format +msgid "Testing, ..." +msgstr "Proves…" + +#: utils/kateglobal.cpp:97 +#, kde-format +msgid "Michael Bartl" +msgstr "Michael Bartl" + +#: utils/kateglobal.cpp:97 +#, kde-format +msgid "Former Core Developer" +msgstr "Antic desenvolupador principal" + +#: utils/kateglobal.cpp:98 +#, kde-format +msgid "Michael McCallum" +msgstr "Michael McCallum" + +#: utils/kateglobal.cpp:99 +#, kde-format +msgid "Michael Koch" +msgstr "Michael Koch" + +#: utils/kateglobal.cpp:99 +#, kde-format +msgid "KWrite port to KParts" +msgstr "Port de KWrite a les KPart" + +#: utils/kateglobal.cpp:100 +#, kde-format +msgid "Christian Gebauer" +msgstr "Christian Gebauer" + +#: utils/kateglobal.cpp:101 +#, kde-format +msgid "Simon Hausmann" +msgstr "Simon Hausmann" + +#: utils/kateglobal.cpp:102 +#, kde-format +msgid "Glen Parker" +msgstr "Glen Parker" + +#: utils/kateglobal.cpp:102 +#, kde-format +msgid "KWrite Undo History, Kspell integration" +msgstr "Historial «Desfés» de KWrite, integració amb Kspell" + +#: utils/kateglobal.cpp:103 +#, kde-format +msgid "Scott Manson" +msgstr "Scott Manson" + +#: utils/kateglobal.cpp:103 +#, kde-format +msgid "KWrite XML Syntax highlighting support" +msgstr "Implementació del ressaltat de la sintaxi XML en KWrite" + +#: utils/kateglobal.cpp:104 +#, kde-format +msgid "John Firebaugh" +msgstr "John Firebaugh" + +#: utils/kateglobal.cpp:104 +#, kde-format +msgid "Patches and more" +msgstr "Pedaços i més" + +#: utils/kateglobal.cpp:105 +#, kde-format +msgid "Andreas Kling" +msgstr "Andreas Kling" + +#: utils/kateglobal.cpp:106 +#, kde-format +msgid "Mirko Stocker" +msgstr "Mirko Stocker" + +#: utils/kateglobal.cpp:106 +#, kde-format +msgid "Various bugfixes" +msgstr "Diverses esmenes d'errors" + +#: utils/kateglobal.cpp:107 +#, kde-format +msgid "Matthew Woehlke" +msgstr "Matthew Woehlke" + +#: utils/kateglobal.cpp:107 +#, kde-format +msgid "Selection, KColorScheme integration" +msgstr "Selecció i integració del KColorScheme" + +#: utils/kateglobal.cpp:108 +#, kde-format +msgid "Sebastian Pipping" +msgstr "Sebastian Pipping" + +#: utils/kateglobal.cpp:109 +#, kde-format +msgid "Search bar back- and front-end" +msgstr "Dorsal i frontal de la barra de busca" + +#: utils/kateglobal.cpp:112 +#, kde-format +msgid "Jochen Wilhelmy" +msgstr "Jochen Wilhelmy" + +#: utils/kateglobal.cpp:112 +#, kde-format +msgid "Original KWrite Author" +msgstr "Autor original de KWrite" + +#: utils/kateglobal.cpp:113 +#, kde-format +msgid "Gerald Senarclens de Grancy" +msgstr "Gerald Senarclens de Grancy" + +#: utils/kateglobal.cpp:113 +#, kde-format +msgid "QA and Scripting" +msgstr "Control de qualitat i creació de scripts" + +#: utils/kateglobal.cpp:115 +#, kde-format +msgid "Matteo Merli" +msgstr "Matteo Merli" + +#: utils/kateglobal.cpp:115 +#, kde-format +msgid "Highlighting for RPM Spec-Files, Perl, Diff and more" +msgstr "Ressaltat per als fitxers «spec» dels RPM, Perl, diff i més" + +#: utils/kateglobal.cpp:116 +#, kde-format +msgid "Rocky Scaletta" +msgstr "Rocky Scaletta" + +#: utils/kateglobal.cpp:116 +#, kde-format +msgid "Highlighting for VHDL" +msgstr "Ressaltat per a VHDL" + +#: utils/kateglobal.cpp:117 +#, kde-format +msgid "Yury Lebedev" +msgstr "Yury Lebedev" + +#: utils/kateglobal.cpp:117 +#, kde-format +msgid "Highlighting for SQL" +msgstr "Ressaltat per a SQL" + +#: utils/kateglobal.cpp:118 +#, kde-format +msgid "Chris Ross" +msgstr "Chris Ross" + +#: utils/kateglobal.cpp:118 +#, kde-format +msgid "Highlighting for Ferite" +msgstr "Ressaltat per a Ferite" + +#: utils/kateglobal.cpp:119 +#, kde-format +msgid "Nick Roux" +msgstr "Nick Roux" + +#: utils/kateglobal.cpp:119 +#, kde-format +msgid "Highlighting for ILERPG" +msgstr "Ressaltat per a ILERPG" + +#: utils/kateglobal.cpp:120 +#, kde-format +msgid "Carsten Niehaus" +msgstr "Carsten Niehaus" + +#: utils/kateglobal.cpp:120 +#, kde-format +msgid "Highlighting for LaTeX" +msgstr "Ressaltat per a LaTeX" + +#: utils/kateglobal.cpp:121 +#, kde-format +msgid "Per Wigren" +msgstr "Per Wigren" + +#: utils/kateglobal.cpp:121 +#, kde-format +msgid "Highlighting for Makefiles, Python" +msgstr "Ressaltat per als fitxers en Make, Python" + +#: utils/kateglobal.cpp:122 +#, kde-format +msgid "Jan Fritz" +msgstr "Jan Fritz" + +#: utils/kateglobal.cpp:122 +#, kde-format +msgid "Highlighting for Python" +msgstr "Ressaltat per a Python" + +#: utils/kateglobal.cpp:123 +#, kde-format +msgid "Daniel Naber" +msgstr "Daniel Naber" + +#: utils/kateglobal.cpp:124 +#, kde-format +msgid "Roland Pabel" +msgstr "Roland Pabel" + +#: utils/kateglobal.cpp:124 +#, kde-format +msgid "Highlighting for Scheme" +msgstr "Ressaltat per a Scheme" + +#: utils/kateglobal.cpp:125 +#, kde-format +msgid "Cristi Dumitrescu" +msgstr "Cristi Dumitrescu" + +#: utils/kateglobal.cpp:125 +#, kde-format +msgid "PHP Keyword/Datatype list" +msgstr "Llista de les paraules clau/tipus de dades de PHP" + +#: utils/kateglobal.cpp:126 +#, kde-format +msgid "Carsten Pfeiffer" +msgstr "Carsten Pfeiffer" + +#: utils/kateglobal.cpp:126 +#, kde-format +msgid "Very nice help" +msgstr "Ajuda molt valuosa" + +#: utils/kateglobal.cpp:127 +#, kde-format +msgid "Bruno Massa" +msgstr "Bruno Massa" + +#: utils/kateglobal.cpp:127 +#, kde-format +msgid "Highlighting for Lua" +msgstr "Ressaltat per a Lua" + +#: utils/kateglobal.cpp:129 +#, kde-format +msgid "All people who have contributed and I have forgotten to mention" +msgstr "Tothom que ha col·laborat i als que he oblidat de mencionar" + +#: utils/kateglobal.cpp:131 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Empar Montoro Martín,Sebastià Pla i Sanz,Antoni Bella" + +#: utils/kateglobal.cpp:131 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "montoro_mde@gva.es,sps@sastia.com,antonibella5@yahoo.com" + +#: utils/kateglobal.cpp:255 +#, kde-format +msgid "Configure" +msgstr "Configura" + +#: utils/katesedcmd.cpp:268 +#, kde-format +msgid "replace with %1?" +msgstr "Voleu substituir per %1?" + +#: utils/katesedcmd.cpp:274 +#, kde-format +msgctxt "%2 is the translation of the next message" +msgid "1 replacement done on %2" +msgid_plural "%1 replacements done on %2" +msgstr[0] "S'ha fet 1 substitució a %2" +msgstr[1] "S'han fet %1 substitucions a %2" + +#: utils/katesedcmd.cpp:277 +#, kde-format +msgctxt "substituted into the previous message" +msgid "1 line" +msgid_plural "%1 lines" +msgstr[0] "1 línia" +msgstr[1] "%1 línies" + +#: utils/katevariableexpansionhelpers.cpp:77 +#, kde-format +msgid "" +msgstr "" + +#: utils/katevariableexpansionhelpers.cpp:161 +#, kde-format +msgid "Insert variable" +msgstr "Inserix una variable" + +#: utils/katevariableexpansionhelpers.cpp:165 +#, kde-format +msgid "Variables" +msgstr "Variables" + +#: utils/katevariableexpansionhelpers.cpp:169 +#, kde-format +msgid "Filter" +msgstr "Filtre" + +#: utils/katevariableexpansionhelpers.cpp:188 +#: utils/katevariableexpansionhelpers.cpp:217 +#, kde-format +msgid "Please select a variable." +msgstr "Trieu una variable." + +#: utils/katevariableexpansionhelpers.cpp:206 +#, kde-format +msgid "Current value: %1" +msgstr "Valor actual: %1" + +#: utils/katevariableexpansionhelpers.cpp:214 +#, kde-format +msgid "Current value: %1" +msgstr "Valor actual: %1" + +#: utils/katevariableexpansionmanager.cpp:86 +#, kde-format +msgid "File base name without path and suffix of the current document." +msgstr "Nom base del fitxer sense el camí ni el sufix del document actual." + +#: utils/katevariableexpansionmanager.cpp:94 +#, kde-format +msgid "File extension of the current document." +msgstr "Extensió de fitxer del document actual." + +#: utils/katevariableexpansionmanager.cpp:102 +#, kde-format +msgid "File name without path of the current document." +msgstr "Nom del fitxer sense el camí del document actual." + +#: utils/katevariableexpansionmanager.cpp:110 +#, kde-format +msgid "Full path of the current document including the file name." +msgstr "Camí complet del document actual incloent el nom de fitxer." + +#: utils/katevariableexpansionmanager.cpp:118 +#, kde-format +msgid "Contents of the current document." +msgstr "Contingut del document actual." + +#: utils/katevariableexpansionmanager.cpp:125 +#, kde-format +msgid "Full path of the current document excluding the file name." +msgstr "Camí complet del document actual excloent el nom de fitxer." + +#: utils/katevariableexpansionmanager.cpp:133 +#, kde-format +msgid "" +"Full document path including file name, with native path separator " +"(backslash on Windows)." +msgstr "" +"Camí complet del document incloent el nom de fitxer, amb el separador de " +"camí natiu (barra inversa a Windows)." + +#: utils/katevariableexpansionmanager.cpp:141 +#, kde-format +msgid "" +"Full document path excluding file name, with native path separator " +"(backslash on Windows)." +msgstr "" +"Camí complet del document excloent el nom de fitxer, amb el separador de " +"camí natiu (barra inversa a Windows)." + +#: utils/katevariableexpansionmanager.cpp:149 +#, kde-format +msgid "" +"Line number of the text cursor position in current document (starts with 0)." +msgstr "" +"Número de línia de la posició del cursor de text en el document actual " +"(comença per 0)." + +#: utils/katevariableexpansionmanager.cpp:156 +#, kde-format +msgid "" +"Column number of the text cursor position in current document (starts with " +"0)." +msgstr "" +"Número de columna de la posició del cursor de text en el document actual " +"(comença per 0)." + +#: utils/katevariableexpansionmanager.cpp:163 +#, kde-format +msgid "X component in global screen coordinates of the cursor position." +msgstr "" +"Component X de les coordenades de la pantalla global de la posició del " +"cursor." + +#: utils/katevariableexpansionmanager.cpp:170 +#, kde-format +msgid "Y component in global screen coordinates of the cursor position." +msgstr "" +"Component Y de les coordenades de la pantalla global de la posició del " +"cursor." + +#: utils/katevariableexpansionmanager.cpp:177 +#, kde-format +msgid "Text selection of the current document." +msgstr "Seleccioneu el text del document actual." + +#: utils/katevariableexpansionmanager.cpp:184 +#, kde-format +msgid "Start line of selected text of the current document." +msgstr "Línia d'inici del text seleccionat del document actual." + +#: utils/katevariableexpansionmanager.cpp:191 +#, kde-format +msgid "Start column of selected text of the current document." +msgstr "Columna inicial del text seleccionat del document actual." + +#: utils/katevariableexpansionmanager.cpp:198 +#, kde-format +msgid "End line of selected text of the current document." +msgstr "Línia final del text seleccionat del document actual." + +#: utils/katevariableexpansionmanager.cpp:205 +#, kde-format +msgid "End column of selected text of the current document." +msgstr "Columna final del text seleccionat del document actual." + +#: utils/katevariableexpansionmanager.cpp:212 +#, kde-format +msgid "Number of rows of the current document." +msgstr "Nombre de files del document actual." + +#: utils/katevariableexpansionmanager.cpp:219 +#, kde-format +msgid "Read a document variable." +msgstr "Llig una variable de document." + +#: utils/katevariableexpansionmanager.cpp:227 +#, kde-format +msgid "The current date in current locale format." +msgstr "La data actual en la configuració regional actual." + +#: utils/katevariableexpansionmanager.cpp:234 +#, kde-format +msgid "The current date (ISO)." +msgstr "La data actual (ISO)." + +#: utils/katevariableexpansionmanager.cpp:241 +#, kde-format +msgid "The current date (QDate formatstring)." +msgstr "La data actual (format de cadena QDate)." + +#: utils/katevariableexpansionmanager.cpp:249 +#, kde-format +msgid "The current time in current locale format." +msgstr "L'hora actual en la configuració regional actual." + +#: utils/katevariableexpansionmanager.cpp:256 +#, kde-format +msgid "The current time (ISO)." +msgstr "L'hora actual (ISO)." + +#: utils/katevariableexpansionmanager.cpp:263 +#, kde-format +msgid "The current time (QTime formatstring)." +msgstr "L'hora actual (format de cadena QTime)." + +#: utils/katevariableexpansionmanager.cpp:271 +#, kde-format +msgid "Access to environment variables." +msgstr "Accés a les variables d'entorn." + +#: utils/katevariableexpansionmanager.cpp:279 +#, kde-format +msgid "Evaluate simple JavaScript statements." +msgstr "Avalua una sentència JavaScript senzilla." + +#: utils/katevariableexpansionmanager.cpp:289 +#, kde-format +msgid "Encode text to make it URL compatible." +msgstr "Codifica el text per a fer-lo compatible amb un URL." + +#: utils/katevariableexpansionmanager.cpp:297 +#, kde-format +msgid "Generate a new UUID." +msgstr "Genera un UUID nou." + +#: variableeditor/variableeditor.cpp:40 +#, kde-format +msgid "Kate Handbook." +msgstr "Manual de Kate." + +#: variableeditor/variableeditor.cpp:213 +#, kde-format +msgid "true" +msgstr "cert" + +#: variableeditor/variableeditor.cpp:214 +#, kde-format +msgid "false" +msgstr "fals" + +#: variableeditor/variableeditor.cpp:350 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "none" +msgstr "sense" + +#: variableeditor/variableeditor.cpp:351 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "modified" +msgstr "modificat" + +#: variableeditor/variableeditor.cpp:352 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "all" +msgstr "tot" + +#: variableeditor/variablelineedit.cpp:42 +#, kde-format +msgid "Show list of valid variables." +msgstr "Mostra la llista de variables vàlides." + +#: variableeditor/variablelineedit.cpp:115 +#, kde-format +msgctxt "short translation please" +msgid "Enable automatic insertion of brackets." +msgstr "Activa la inserció automàtica de parèntesis." + +#: variableeditor/variablelineedit.cpp:121 +#, kde-format +msgctxt "short translation please" +msgid "Set the number of autocenter lines." +msgstr "Establix el nombre de línies de centrat automàtic." + +#: variableeditor/variablelineedit.cpp:126 +#, kde-format +msgctxt "short translation please" +msgid "Set the document background color." +msgstr "Establix el color de fons del document." + +#: variableeditor/variablelineedit.cpp:131 +#, kde-format +msgctxt "short translation please" +msgid "Pressing backspace in leading whitespace unindents." +msgstr "" +"Prement la tecla de retrocés en un espai en blanc inicial es desfà el sagnat." + +#: variableeditor/variablelineedit.cpp:139 +#, kde-format +msgctxt "short translation please" +msgid "Enable block selection mode." +msgstr "Activa el mode de selecció per blocs." + +#: variableeditor/variablelineedit.cpp:144 +#, kde-format +msgctxt "short translation please" +msgid "Enable the byte order mark (BOM) when saving Unicode files." +msgstr "Activa la marca d'ordre de bytes en guardar fitxers Unicode." + +#: variableeditor/variablelineedit.cpp:149 +#, kde-format +msgctxt "short translation please" +msgid "Set the color for the bracket highlight." +msgstr "Establix el color per al ressaltat de parèntesis." + +#: variableeditor/variablelineedit.cpp:154 +#, kde-format +msgctxt "short translation please" +msgid "Set the background color for the current line." +msgstr "Establix el color de fons per a la línia actual." + +#: variableeditor/variablelineedit.cpp:160 +#, kde-format +msgctxt "short translation please" +msgid "Set the default dictionary used for spell checking." +msgstr "" +"Establix el diccionari predeterminat emprat per a la verificació ortogràfica." + +#: variableeditor/variablelineedit.cpp:165 +#, kde-format +msgctxt "short translation please" +msgid "Enable dynamic word wrap of long lines." +msgstr "Activa l'ajust dinàmic de les paraules de les línies llargues." + +#: variableeditor/variablelineedit.cpp:172 +#, kde-format +msgctxt "short translation please" +msgid "Sets the end of line mode." +msgstr "Establix el mode del final de línia." + +#: variableeditor/variablelineedit.cpp:177 +#, kde-format +msgctxt "short translation please" +msgid "" +"Enable whether pressing enter will insert selected auto completion item." +msgstr "" +"Marqueu-la si en prémer «Retorn» s'inserirà l'element seleccionat de " +"compleció automàtica." + +#: variableeditor/variablelineedit.cpp:182 +#, kde-format +msgctxt "short translation please" +msgid "Enable folding markers in the editor border." +msgstr "Activa les marques de plegat en la vora de l'editor." + +#: variableeditor/variablelineedit.cpp:187 +#, kde-format +msgctxt "short translation please" +msgid "Enable folding preview in the editor border." +msgstr "Activa la vista prèvia del text plegat en la vora de l'editor." + +#: variableeditor/variablelineedit.cpp:193 +#, kde-format +msgctxt "short translation please" +msgid "Set the point size of the document font." +msgstr "Establix la mida del punt de la lletra del document." + +#: variableeditor/variablelineedit.cpp:198 +#, kde-format +msgctxt "short translation please" +msgid "Set the font of the document." +msgstr "Establix la lletra del document." + +#: variableeditor/variablelineedit.cpp:214 +#, kde-format +msgctxt "short translation please" +msgid "Set the syntax highlighting." +msgstr "Establix el ressaltat de la sintaxi." + +#: variableeditor/variablelineedit.cpp:219 +#, kde-format +msgctxt "short translation please" +msgid "Set the icon bar color." +msgstr "Establix el color de la barra d'icones." + +#: variableeditor/variablelineedit.cpp:224 +#, kde-format +msgctxt "short translation please" +msgid "Enable the icon border in the editor view." +msgstr "Activa la vora de les icones en la vista de l'editor." + +#: variableeditor/variablelineedit.cpp:229 +#, kde-format +msgctxt "short translation please" +msgid "Set the auto indentation style." +msgstr "Establix l'estil per al sagnat automàtic." + +#: variableeditor/variablelineedit.cpp:234 +#, kde-format +msgctxt "short translation please" +msgid "Adjust indentation of text pasted from the clipboard." +msgstr "Ajusta el sagnat del text apegat des del porta-retalls." + +#: variableeditor/variablelineedit.cpp:240 +#, kde-format +msgctxt "short translation please" +msgid "Set the indentation depth for each indent level." +msgstr "Establix la profunditat del sagnat per a cada nivell de sagnat." + +#: variableeditor/variablelineedit.cpp:245 +#, kde-format +msgctxt "short translation please" +msgid "Allow odd indentation level (no multiple of indent width)." +msgstr "" +"Permet un nivell de sagnat senar (no múltiple de l'amplària del sagnat)." + +#: variableeditor/variablelineedit.cpp:250 +#, kde-format +msgctxt "short translation please" +msgid "Show line numbers." +msgstr "Mostra els números de les línies." + +#: variableeditor/variablelineedit.cpp:255 +#, kde-format +msgctxt "short translation please" +msgid "Insert newline at end of file on save." +msgstr "Inserix una línia nova al final del fitxer en guardar." + +#: variableeditor/variablelineedit.cpp:260 +#, kde-format +msgctxt "short translation please" +msgid "Enable overwrite mode in the document." +msgstr "Activa el mode de sobreescriptura en el document." + +#: variableeditor/variablelineedit.cpp:265 +#, kde-format +msgctxt "short translation please" +msgid "Enable persistent text selection." +msgstr "Activa la selecció persistent del text." + +#: variableeditor/variablelineedit.cpp:270 +#, kde-format +msgctxt "short translation please" +msgid "Replace tabs with spaces when saving the document." +msgstr "Substituïx les tabulacions per espais en guardar el document." + +#: variableeditor/variablelineedit.cpp:275 +#, kde-format +msgctxt "short translation please" +msgid "Replace tabs with spaces." +msgstr "Substituïx les tabulacions per espais." + +#: variableeditor/variablelineedit.cpp:280 +#, kde-format +msgctxt "short translation please" +msgid "Remove trailing spaces when saving the document." +msgstr "Elimina els espais finals en guardar el document." + +#: variableeditor/variablelineedit.cpp:285 +#, kde-format +msgctxt "short translation please" +msgid "Show scrollbar minimap." +msgstr "Mostra un mapa en miniatura en la barra de desplaçament." + +#: variableeditor/variablelineedit.cpp:290 +#, kde-format +msgctxt "short translation please" +msgid "Show scrollbar preview." +msgstr "Mostra una vista prèvia en la barra de desplaçament." + +#: variableeditor/variablelineedit.cpp:301 +#, kde-format +msgctxt "short translation please" +msgid "Set the color scheme." +msgstr "Establix l'esquema de color." + +#: variableeditor/variablelineedit.cpp:306 +#, kde-format +msgctxt "short translation please" +msgid "Set the text selection color." +msgstr "Establix el color de la selecció de text." + +#: variableeditor/variablelineedit.cpp:311 +#, kde-format +msgctxt "short translation please" +msgid "Visualize tabs and trailing spaces." +msgstr "Visualitza les tabulacions i els espais finals." + +#: variableeditor/variablelineedit.cpp:316 +#, kde-format +msgctxt "short translation please" +msgid "Enable smart home navigation." +msgstr "Activa l'ús de la navegació intel·ligent." + +# skip-rule: kct-tab +#: variableeditor/variablelineedit.cpp:321 +#, kde-format +msgctxt "short translation please" +msgid "Pressing TAB key indents." +msgstr "Prement la tecla «Tab», se sagna." + +#: variableeditor/variablelineedit.cpp:327 +#, kde-format +msgctxt "short translation please" +msgid "Set the tab display width." +msgstr "Establix l'amplària de la tabulació." + +#: variableeditor/variablelineedit.cpp:333 +#, kde-format +msgctxt "short translation please" +msgid "Set the number of undo steps to remember (0 equals infinity)." +msgstr "" +"Establix el nombre de passos que es desfaran que es poden recordar (0 " +"equival a infinit)." + +#: variableeditor/variablelineedit.cpp:339 +#, kde-format +msgctxt "short translation please" +msgid "Set the word wrap column." +msgstr "Establix la columna d'ajust de les paraules." + +#: variableeditor/variablelineedit.cpp:344 +#, kde-format +msgctxt "short translation please" +msgid "Set the word wrap marker color." +msgstr "Establix el color del marcador d'ajust de les paraules." + +#: variableeditor/variablelineedit.cpp:349 +#, kde-format +msgctxt "short translation please" +msgid "Enable word wrap while typing text." +msgstr "Activa l'ajust de les paraules en teclejar text." + +#: view/katestatusbar.cpp:114 +#, kde-format +msgid "Current cursor position. Click to go to a specific line." +msgstr "" +"Posició actual del cursor. Cliqueu per a anar fins a una línia específica." + +#: view/katestatusbar.cpp:127 +#, kde-format +msgid "Insert mode and VI input mode indicator. Click to change the mode." +msgstr "" +"Indicador del mode d'inserció i del mode d'entrada del VI. Cliqueu per a " +"canviar el mode." + +#: view/katestatusbar.cpp:135 +#, kde-format +msgid "Change dictionary" +msgstr "Canvia el diccionari" + +#: view/katestatusbar.cpp:161 view/katestatusbar.cpp:488 +#, kde-format +msgid "Tab Width" +msgstr "Amplària de la tabulació" + +#: view/katestatusbar.cpp:169 view/katestatusbar.cpp:503 +#, kde-format +msgid "Indentation Width" +msgstr "Amplària del sagnat" + +#: view/katestatusbar.cpp:177 +#, kde-format +msgid "Indentation Mode" +msgstr "Mode de sagnat" + +#: view/katestatusbar.cpp:179 +#, kde-format +msgid "Tabulators && Spaces" +msgstr "Tabuladors &i espais" + +#: view/katestatusbar.cpp:182 +#, kde-format +msgid "Tabulators" +msgstr "Tabulacions" + +#: view/katestatusbar.cpp:185 +#, kde-format +msgid "Spaces" +msgstr "Espais" + +#: view/katestatusbar.cpp:197 +#, kde-format +msgid "Encoding" +msgstr "Codificació" + +#: view/katestatusbar.cpp:200 view/katestatusbar.cpp:201 +#, kde-format +msgid "End of line type" +msgstr "Tipus de final de línia" + +#: view/katestatusbar.cpp:207 +#, kde-format +msgid "Mode" +msgstr "Mode" + +#: view/katestatusbar.cpp:209 view/kateview.cpp:703 +#, kde-format +msgid "" +"Here you can choose which mode should be used for the current document. This " +"will influence the highlighting and folding being used, for example." +msgstr "" +"Ací podeu seleccionar el mode que s'hauria d'utilitzar en el document " +"actual. Influirà en el ressaltat emprat i en el plegat, per exemple." + +#: view/katestatusbar.cpp:216 +#, kde-format +msgid "Syntax highlighting" +msgstr "Ressaltat de la sintaxi" + +#: view/katestatusbar.cpp:261 +#, kde-format +msgid "Line/Column compact mode" +msgstr "Mode compacte de línia/columna" + +#: view/katestatusbar.cpp:307 +#, kde-format +msgid "[BLOCK] %1" +msgstr "[BLOCK] %1" + +#: view/katestatusbar.cpp:323 +#, kde-format +msgid "%1/%2:%3" +msgstr "%1/%2:%3" + +#: view/katestatusbar.cpp:325 +#, kde-format +msgid "%1:%2" +msgstr "%1:%2" + +#: view/katestatusbar.cpp:329 +#, kde-format +msgid "Line %1 of %2, Column %3" +msgstr "Línia %1 de %2, columna %3" + +#: view/katestatusbar.cpp:331 +#, kde-format +msgid "Line %1, Column %2" +msgstr "Línia: %1, columna: %2" + +#: view/katestatusbar.cpp:405 +#, kde-format +msgid "Soft Tabs: %1" +msgstr "Tabulacions suaus: %1" + +#: view/katestatusbar.cpp:406 +#, kde-format +msgid "Soft Tabs: %1 (%2)" +msgstr "Tabulacions suaus: %1 (%2)" + +#: view/katestatusbar.cpp:407 +#, kde-format +msgid "Tab Size: %1" +msgstr "Mida de la tabulació: %1" + +#: view/katestatusbar.cpp:408 +#, kde-format +msgid "Indent/Tab: %1/%2" +msgstr "Sagnat/Tabulació: %1/%2" + +#: view/katestatusbar.cpp:448 view/katestatusbar.cpp:474 +#, kde-format +msgctxt "@item:inmenu" +msgid "Other…" +msgstr "Altres…" + +#: view/katestatusbar.cpp:476 +#, kde-format +msgid "Other (%1)" +msgid_plural "Other (%1)" +msgstr[0] "Altre (%1)" +msgstr[1] "Altres (%1)" + +#: view/katestatusbar.cpp:488 +#, kde-format +msgid "Please specify the wanted tab width:" +msgstr "Especifiqueu l'amplària desitjada de la tabulació:" + +#: view/katestatusbar.cpp:504 +#, kde-format +msgid "Please specify the wanted indentation width:" +msgstr "Especifiqueu l'amplària desitjada del sagnat:" + +#: view/katestatusbar.cpp:567 +#, kde-format +msgctxt "" +"%1 and %3 are the selected words/chars count, %2 and %4 are the total words/" +"chars count." +msgid "Words %1/%2, Chars %3/%4" +msgstr "Paraules %1/%2, caràcters %3/%4" + +#: view/katestatusbar.cpp:573 +#, kde-format +msgctxt "%1 and %2 are the total words/chars count." +msgid "Words %1, Chars %2" +msgstr "Paraules %1, caràcters %2" + +#: view/katestatusbar.cpp:588 +#, kde-format +msgid "Zoom: %1%" +msgstr "Zoom: %1%" + +#: view/kateview.cpp:440 +#, kde-format +msgid "Cut the selected text and move it to the clipboard" +msgstr "Talla el text seleccionat i mou-lo cap a dins del porta-retalls" + +#: view/kateview.cpp:445 +#, kde-format +msgid "Paste previously copied or cut clipboard contents" +msgstr "Apega el contingut del porta-retalls prèviament copiat o tallat" + +#: view/kateview.cpp:448 +#, kde-format +msgid "" +"Use this command to copy the currently selected text to the system clipboard." +msgstr "" +"Utilitzeu esta ordre per a copiar el text actualment seleccionat a dins del " +"porta-retalls del sistema." + +#: view/kateview.cpp:454 +#, kde-format +msgid "Clipboard &History Paste" +msgstr "Apega l'&historial del porta-retalls" + +#: view/kateview.cpp:459 +#, kde-format +msgid "Paste Selection" +msgstr "Apega la selecció" + +#: view/kateview.cpp:461 +#, kde-format +msgid "Paste previously mouse selection contents" +msgstr "Apega el contingut de la selecció prèvia del ratolí" + +#: view/kateview.cpp:465 +#, kde-format +msgid "Paste From File" +msgstr "Apegar des d'un fitxer" + +#: view/kateview.cpp:469 +#, kde-format +msgid "Copy File Location" +msgstr "Copia la ubicació del fitxer" + +#: view/kateview.cpp:470 +#, kde-format +msgid "Copy the current file name and line number" +msgstr "Copia el nom del fitxer actual i el número de la línia" + +#: view/kateview.cpp:473 +#, kde-format +msgid "Swap with Clipboard Contents" +msgstr "Canvia amb el contingut del porta-retalls" + +#: view/kateview.cpp:474 +#, kde-format +msgid "Swap the selected text with the clipboard contents" +msgstr "Canvia el text seleccionat amb el contingut del porta-retalls" + +#: view/kateview.cpp:477 +#, kde-format +msgid "Take Screenshot of Selection" +msgstr "Pren una captura de pantalla de la selecció" + +#: view/kateview.cpp:481 +#, kde-format +msgid "Save the current document" +msgstr "Guarda el document actual" + +#: view/kateview.cpp:484 +#, kde-format +msgid "Revert the most recent editing actions" +msgstr "Desfés els canvis d'edició més recents" + +#: view/kateview.cpp:487 +#, kde-format +msgid "Revert the most recent undo operation" +msgstr "Desfés les operacions de desfer més recents" + +#: view/kateview.cpp:491 +#, kde-format +msgid "&Scripts" +msgstr "&Scripts" + +#: view/kateview.cpp:495 +#, kde-format +msgid "Apply &Word Wrap" +msgstr "Aplica l'ajust de les ¶ules" + +#: view/kateview.cpp:497 +#, kde-format +msgid "" +"Use this to wrap the current line, or to reformat the selected lines as " +"paragraph, to fit the 'Wrap words at' setting in the configuration dialog." +"

This is a static word wrap, meaning the document is changed." +msgstr "" +"Utilitzeu-ho per a ajustar la línia actual, o per a tornar a donar format a " +"les línies seleccionades com a paràgraf, segons l'opció «Ajusta les paraules " +"a» del diàleg de configuració.

Açò és un ajust estàtic de " +"paraules, i vol dir que el document canviarà." + +#: view/kateview.cpp:503 +#, kde-format +msgid "&Clean Indentation" +msgstr "&Neteja el sagnat" + +#: view/kateview.cpp:505 +#, kde-format +msgid "" +"Use this to clean the indentation of a selected block of text (only tabs/" +"only spaces).

You can configure whether tabs should be honored " +"and used or replaced with spaces, in the configuration dialog." +msgstr "" +"Utilitzeu-la per a eliminar el sagnat d'un bloc de text seleccionat (només " +"les tabulacions/només els espais).

En el diàleg de configuració " +"podreu establir si els tabuladors haurien de ser reconeguts i emprats, o " +"substituïts per espais." + +#: view/kateview.cpp:510 +#, kde-format +msgid "Convert Indentation to Spaces" +msgstr "Convertix el sagnat a espais" + +#: view/kateview.cpp:517 +#, kde-format +msgid "Convert Indentation to Tabs" +msgstr "Convertix el sagnat a tabulacions" + +#: view/kateview.cpp:532 +#, kde-format +msgid "&Format Indentation" +msgstr "&Format del sagnat" + +#: view/kateview.cpp:533 +#, kde-format +msgid "" +"Use this to auto indent the current line or block of text to its proper " +"indent level." +msgstr "" +"Utilitzeu-ho per a sagnar automàticament la línia actual o el bloc de text " +"al nivell de sagnat adequat." + +#: view/kateview.cpp:537 +#, kde-format +msgctxt "@action" +msgid "&Align On…" +msgstr "&Alinea a…" + +# skip-rule: t-2p_sp,t-pu_desp +#: view/kateview.cpp:539 +#, kde-format +msgid "" +"This command aligns lines in the selected block or whole document on the " +"column given by a regular expression that you will be prompted for.

If you give an empty pattern it will align on the first non-blank " +"character by default.
If the pattern has a capture it will indent on " +"the captured match.

Examples:
With '-' it will insert " +"spaces before the first '-' of each lines to align them all on the same " +"column.
With ':\\s+(.)' it will insert spaces before the first non-" +"blank character that occurs after a colon to align them all on the same " +"column." +msgstr "" +"Esta ordre alinea les línies del bloc seleccionat o de tot el document en la " +"columna indicada per una expressió regular que se us demanarà.

Si " +"proporcioneu un patró buit, s'alinearà al primer caràcter no blanc de manera " +"predeterminada.
Si el patró té una captura, se sagnarà en la " +"coincidència capturada.

Exemples:
Amb «-» s'inseriran " +"espais abans del primer «-» de cada línia per a alinear-les totes a la " +"mateixa columna.
Amb «:\\s+(.)» s'inseriran espais abans del primer " +"caràcter no blanc que hi haja després de dos punts (:) per a alinear-les " +"totes a la mateixa columna." + +#: view/kateview.cpp:550 +#, kde-format +msgid "C&omment" +msgstr "C&omenta" + +#: view/kateview.cpp:553 +#, kde-format +msgid "" +"This command comments out the current line or a selected block of text.

The characters for single/multiple line comments are defined within " +"the language's highlighting." +msgstr "" +"Esta ordre comenta la línia actual o un bloc de text seleccionat.

Els caràcters per als comentaris d'una sola línia o múltiple es definixen " +"dins del ressaltat del llenguatge." + +#: view/kateview.cpp:558 +#, kde-format +msgid "Go to Previous Editing Location" +msgstr "Ves fins a la ubicació d'edició anterior" + +#: view/kateview.cpp:564 +#, kde-format +msgid "Go to Next Editing Location" +msgstr "Ves fins a la ubicació d'edició següent" + +#: view/kateview.cpp:570 +#, kde-format +msgid "Unco&mment" +msgstr "Desco&menta" + +#: view/kateview.cpp:573 +#, kde-format +msgid "" +"This command removes comments from the current line or a selected block of " +"text.

The characters for single/multiple line comments are " +"defined within the language's highlighting." +msgstr "" +"Esta ordre elimina els comentaris de l'actual línia o d'un bloc de text " +"seleccionat.

Els caràcters per als comentaris d'una sola línia o " +"múltiple es definixen dins del ressaltat del llenguatge." + +#: view/kateview.cpp:578 +#, kde-format +msgid "Toggle Comment" +msgstr "Canvia els comentaris" + +#: view/kateview.cpp:582 +#, kde-format +msgid "&Read Only Mode" +msgstr "Mode de només &lectura" + +#: view/kateview.cpp:583 +#, kde-format +msgid "Lock/unlock the document for writing" +msgstr "Bloqueja/desbloqueja el document per a escriptura" + +#: view/kateview.cpp:588 +#, kde-format +msgid "&Force RTL Direction" +msgstr "&Força la direcció RTL" + +#: view/kateview.cpp:589 +#, kde-format +msgid "Force RTL Text Direction" +msgstr "Força la direcció de text RTL (dreta a esquerra)" + +#: view/kateview.cpp:599 +#, kde-format +msgid "Uppercase" +msgstr "Majúscules" + +#: view/kateview.cpp:602 +#, kde-format +msgid "" +"Convert the selection to uppercase, or the character to the right of the " +"cursor if no text is selected." +msgstr "" +"Convertix la selecció a majúscules, o el caràcter a la dreta del cursor si " +"no hi ha text seleccionat." + +#: view/kateview.cpp:608 +#, kde-format +msgid "Lowercase" +msgstr "Minúscules" + +#: view/kateview.cpp:611 +#, kde-format +msgid "" +"Convert the selection to lowercase, or the character to the right of the " +"cursor if no text is selected." +msgstr "" +"Convertix la selecció a minúscules, o el caràcter a la dreta del cursor si " +"no hi ha text seleccionat." + +#: view/kateview.cpp:617 +#, kde-format +msgid "Capitalize" +msgstr "Escriu en majúscula la primera lletra" + +#: view/kateview.cpp:620 +#, kde-format +msgid "" +"Capitalize the selection, or the word under the cursor if no text is " +"selected." +msgstr "" +"Escriu en majúscula la primera lletra de la selecció o a la paraula a la " +"dreta del cursor si no hi ha text seleccionat." + +#: view/kateview.cpp:625 +#, kde-format +msgid "Join Lines" +msgstr "Unix les línies" + +#: view/kateview.cpp:630 +#, kde-format +msgid "Invoke Code Completion" +msgstr "Invoca la compleció del codi" + +#: view/kateview.cpp:631 +#, kde-format +msgid "" +"Manually invoke command completion, usually by using a shortcut bound to " +"this action." +msgstr "" +"Invoca manualment la compleció d'ordres, utilitzant normalment una drecera " +"vinculada amb esta acció." + +#: view/kateview.cpp:636 +#, kde-format +msgid "Remove Trailing Spaces" +msgstr "Elimina els espais finals" + +#: view/kateview.cpp:654 +#, kde-format +msgid "Print the current document." +msgstr "Imprimix el document actual." + +#: view/kateview.cpp:657 +#, kde-format +msgid "Show print preview of current document" +msgstr "Mostra una vista prèvia d'impressió del document actual" + +#: view/kateview.cpp:661 +#, kde-format +msgid "Reloa&d" +msgstr "Torna a ca&rregar" + +#: view/kateview.cpp:663 +#, kde-format +msgid "Reload the current document from disk." +msgstr "Torna a carregar el document actual des del disc." + +#: view/kateview.cpp:667 +#, kde-format +msgid "Save the current document to disk, with a name of your choice." +msgstr "Guarda el document actual al disc, amb un nom de la vostra elecció." + +#: view/kateview.cpp:669 +#, kde-format +msgctxt "@action" +msgid "Save As with Encodin&g…" +msgstr "Anomena i guarda amb la codi&ficació…" + +#: view/kateview.cpp:675 +#, kde-format +msgctxt "@action" +msgid "Save Cop&y As…" +msgstr "Anomena i guar&da una còpia…" + +#: view/kateview.cpp:676 +#, kde-format +msgid "Save a copy of the current document to disk." +msgstr "Guarda una còpia del document actual al disc." + +#: view/kateview.cpp:680 +#, kde-format +msgid "" +"This command opens a dialog and lets you choose a line that you want the " +"cursor to move to." +msgstr "" +"Esta ordre obri un diàleg i us permet escollir la línia a la qual voleu " +"moure el cursor." + +#: view/kateview.cpp:684 +#, kde-format +msgid "Go to Previous Modified Line" +msgstr "Ves fins a la línia modificada anterior" + +#: view/kateview.cpp:685 +#, kde-format +msgid "Move upwards to the previous modified line." +msgstr "Mou cap amunt fins a la línia modificada anterior." + +#: view/kateview.cpp:690 +#, kde-format +msgid "Go to Next Modified Line" +msgstr "Ves fins a la línia modificada següent" + +#: view/kateview.cpp:691 +#, kde-format +msgid "Move downwards to the next modified line." +msgstr "Mou cap avall fins a la línia modificada següent." + +#: view/kateview.cpp:695 +#, kde-format +msgctxt "@action" +msgid "&Configure Editor…" +msgstr "&Configura l'editor…" + +#: view/kateview.cpp:697 +#, kde-format +msgid "Configure various aspects of this editor." +msgstr "Configura diversos aspectes d'este editor." + +#: view/kateview.cpp:700 +#, kde-format +msgid "&Mode" +msgstr "&Mode" + +#: view/kateview.cpp:706 +#, kde-format +msgid "&Highlighting" +msgstr "&Ressaltat" + +#: view/kateview.cpp:708 +#, kde-format +msgid "Here you can choose how the current document should be highlighted." +msgstr "Ací podeu seleccionar com s'hauria de ressaltar el document actual." + +#: view/kateview.cpp:711 +#, kde-format +msgid "&Editor Color Theme" +msgstr "Tema de color de l'&editor" + +#: view/kateview.cpp:717 +#, kde-format +msgid "&Indentation" +msgstr "&Sagnat" + +#: view/kateview.cpp:726 +#, kde-format +msgid "Select the entire text of the current document." +msgstr "Selecciona tot el text del document actual." + +#: view/kateview.cpp:729 +#, kde-format +msgid "" +"If you have selected something within the current document, this will no " +"longer be selected." +msgstr "" +"Si heu seleccionat alguna cosa dins del document actual, ja no se " +"seleccionarà novament." + +#: view/kateview.cpp:733 +#, kde-format +msgid "Enlarge Font" +msgstr "Augmenta la lletra" + +#: view/kateview.cpp:735 +#, kde-format +msgid "This increases the display font size." +msgstr "Augmenta la mida de la lletra que es visualitza." + +#: view/kateview.cpp:742 +#, kde-format +msgid "Shrink Font" +msgstr "Minva la lletra" + +#: view/kateview.cpp:744 +#, kde-format +msgid "This decreases the display font size." +msgstr "Minva la mida de la lletra que es visualitza." + +#: view/kateview.cpp:751 +#, kde-format +msgid "Reset Font Size" +msgstr "Reinicia la mida de la lletra" + +#: view/kateview.cpp:753 +#, kde-format +msgid "This resets the display font size." +msgstr "Reinicia la mida de la lletra que es visualitza." + +#: view/kateview.cpp:756 +#, kde-format +msgid "Bl&ock Selection Mode" +msgstr "Mode de selecció per b&locs" + +#: view/kateview.cpp:759 +#, kde-format +msgid "" +"This command allows switching between the normal (line based) selection mode " +"and the block selection mode." +msgstr "" +"Esta ordre permet canviar entre el mode normal de selecció (basat en línies) " +"i el mode de selecció per blocs." + +#: view/kateview.cpp:763 +#, kde-format +msgid "Switch to Next Input Mode" +msgstr "Canvia al mode d'entrada següent" + +#: view/kateview.cpp:765 +#, kde-format +msgid "Switch to the next input mode." +msgstr "Canvia al mode d'entrada següent." + +#: view/kateview.cpp:768 +#, kde-format +msgid "Overwr&ite Mode" +msgstr "Mode so&breescriure" + +#: view/kateview.cpp:771 +#, kde-format +msgid "" +"Choose whether you want the text you type to be inserted or to overwrite " +"existing text." +msgstr "" +"Trieu si voleu que el text introduït s'inserisca o que sobreescriga el text " +"existent." + +#: view/kateview.cpp:775 +#, kde-format +msgid "Show Whitespace" +msgstr "Mostra els espais en blanc" + +#: view/kateview.cpp:778 +#, kde-format +msgid "" +"If this option is checked, whitespaces in this document will be visible.

This is only a view option, meaning the document will not be changed." +msgstr "" +"Si està marcada, els espais en blanc en este document seran visibles.

Açò només és una opció de visualització, i vol dir que el document no " +"es canviarà." + +#: view/kateview.cpp:782 +#, kde-format +msgid "&Dynamic Word Wrap" +msgstr "Ajust &dinàmic de les paraules" + +#: view/kateview.cpp:786 +#, kde-format +msgid "" +"If this option is checked, the text lines will be wrapped at the view border " +"on the screen.

This is only a view option, meaning the document " +"will not be changed." +msgstr "" +"Si està marcada, les línies de text s'ajustaran a la vora de la vista en la " +"pantalla.

Açò només és una opció de visualització, i vol dir que " +"el document no es canviarà." + +#: view/kateview.cpp:790 +#, kde-format +msgid "Dynamic Word Wrap Indicators" +msgstr "Indicadors de l'ajust dinàmic de les paraules" + +#: view/kateview.cpp:792 +#, kde-format +msgid "Choose when the Dynamic Word Wrap Indicators should be displayed" +msgstr "" +"Trieu quan s'han de mostrar els indicadors d'ajust dinàmic de les paraules" + +#: view/kateview.cpp:794 +#, kde-format +msgid "&Off" +msgstr "&Apagat" + +#: view/kateview.cpp:794 +#, kde-format +msgid "Follow &Line Numbers" +msgstr "Seguix els números de &línia" + +#: view/kateview.cpp:794 +#, kde-format +msgid "&Always On" +msgstr "Sempre &actiu" + +#: view/kateview.cpp:798 +#, kde-format +msgid "Static Word Wrap" +msgstr "Ajust estàtic de les paraules" + +#: view/kateview.cpp:800 +#, kde-format +msgid "" +"If this option is checked, the text lines will be wrapped at the column " +"defined in the editing properties." +msgstr "" +"Si està marcada, les línies de text s'ajustaran a la columna definida en les " +"propietats d'edició." + +#: view/kateview.cpp:807 +#, kde-format +msgid "Show Static &Word Wrap Marker" +msgstr "Mostra els marcadors d'ajust estàtic de les ¶ules" + +#: view/kateview.cpp:810 +#, kde-format +msgid "" +"Show/hide the Word Wrap Marker, a vertical line drawn at the word wrap " +"column as defined in the editing properties" +msgstr "" +"Mostra o oculta el marcador per a l'ajust de les paraules, dibuixa una línia " +"vertical a la columna d'ajust de les paraules tal com estiga definit en les " +"propietats de l'edició" + +#: view/kateview.cpp:814 +#, kde-format +msgid "Show Folding &Markers" +msgstr "Mostra els marcadors &plegables" + +#: view/kateview.cpp:816 +#, kde-format +msgid "" +"You can choose if the codefolding marks should be shown, if codefolding is " +"possible." +msgstr "" +"Podeu escollir si s'haurien de mostrar les marques del plegat de codi, si és " +"que açò és possible." + +#: view/kateview.cpp:819 +#, kde-format +msgid "Show &Icon Border" +msgstr "Mostra la vora de les &icones" + +#: view/kateview.cpp:821 +#, kde-format +msgid "" +"Show/hide the icon border.

The icon border shows bookmark " +"symbols, for instance." +msgstr "" +"Mostra o oculta la vora de les icones.

Per exemple, la vora de " +"les icones mostrarà símbols per als punts." + +#: view/kateview.cpp:824 +#, kde-format +msgid "Show &Line Numbers" +msgstr "Mostra els números de les &línies" + +#: view/kateview.cpp:826 +#, kde-format +msgid "Show/hide the line numbers on the left hand side of the view." +msgstr "Mostra o oculta els números de les línies a l'esquerra de la vista." + +#: view/kateview.cpp:829 +#, kde-format +msgid "Show Scroll&bar Marks" +msgstr "Mostra les marques de la &barra de desplaçament" + +#: view/kateview.cpp:831 +#, kde-format +msgid "" +"Show/hide the marks on the vertical scrollbar.

The marks show " +"bookmarks, for instance." +msgstr "" +"Mostra o oculta les marques en la barra de desplaçament vertical.

Per exemple, les marques mostren els punts." + +#: view/kateview.cpp:834 +#, kde-format +msgid "Show Scrollbar Mini-Map" +msgstr "Mostra un mapa en miniatura en la barra de desplaçament" + +#: view/kateview.cpp:836 +#, kde-format +msgid "" +"Show/hide the mini-map on the vertical scrollbar.

The mini-map " +"shows an overview of the whole document." +msgstr "" +"Mostra o oculta el mapa en miniatura en la barra de desplaçament vertical." +"

El mapa en miniatura mostra un resum de tot el document." + +#. i18n("Show the whole document in the Mini-Map"), this); +#. ac->addAction(QLatin1String("view_scrollbar_minimap_all"), a); +#. a->setWhatsThis(i18n("Display the whole document in the mini-map.

With this option set the whole document will be visible in the +#. mini-map.")); connect(a, SIGNAL(triggered(bool)), SlOT(toggleScrollBarMiniMapAll())); connect(m_toggleScrollBarMiniMap, SIGNAL(triggered(bool)), +#. m_toggleScrollBarMiniMapAll, SLOT(setEnabled(bool))); +#: view/kateview.cpp:848 +#, kde-format +msgid "Show Non-Printable Spaces" +msgstr "Mostra els espais no imprimibles" + +#: view/kateview.cpp:850 +#, kde-format +msgid "Show/hide bounding box around non-printable spaces" +msgstr "Mostra o oculta el contenidor al voltant dels espais no imprimibles" + +#: view/kateview.cpp:854 +#, kde-format +msgid "Switch to Command Line" +msgstr "Canvia a la línia d'ordres" + +#: view/kateview.cpp:856 +#, kde-format +msgid "Show/hide the command line on the bottom of the view." +msgstr "Mostra o oculta la línia d'ordres en la part inferior de la vista." + +#: view/kateview.cpp:859 +#, kde-format +msgid "Input Modes" +msgstr "Modes d'entrada" + +#: view/kateview.cpp:868 +#, kde-format +msgid "Activate/deactivate %1" +msgstr "Activa o desactiva %1" + +#: view/kateview.cpp:878 +#, kde-format +msgid "&End of Line" +msgstr "&Final de línia" + +#: view/kateview.cpp:880 +#, kde-format +msgid "Choose which line endings should be used, when you save the document" +msgstr "Trieu quin final de línia s'haurà d'emprar en guardar el document" + +#: view/kateview.cpp:881 +#, kde-format +msgctxt "@item:inmenu End of Line" +msgid "&UNIX" +msgstr "&UNIX" + +#: view/kateview.cpp:882 +#, kde-format +msgctxt "@item:inmenu End of Line" +msgid "&Windows/DOS" +msgstr "&Windows/DOS" + +#: view/kateview.cpp:883 +#, kde-format +msgctxt "@item:inmenu End of Line" +msgid "&Macintosh" +msgstr "&Macintosh" + +#: view/kateview.cpp:888 +#, kde-format +msgid "Add &Byte Order Mark (BOM)" +msgstr "Afig una marca d'ordre de &byte (BOM)" + +#: view/kateview.cpp:891 +#, kde-format +msgid "" +"Enable/disable adding of byte order marks for UTF-8/UTF-16 encoded files " +"while saving" +msgstr "" +"Activa o desactiva l'addició de marques d'ordre de bytes en guardar fitxers " +"codificats amb UTF-8/UTF-16" + +#: view/kateview.cpp:895 +#, kde-format +msgid "E&ncoding" +msgstr "&Codificació" + +#: view/kateview.cpp:899 +#, kde-format +msgid "Look up the first occurrence of a piece of text or regular expression." +msgstr "Busca la primera ocurrència d'un tros de text o expressió regular." + +#: view/kateview.cpp:903 +#, kde-format +msgid "Find Selected" +msgstr "Busca la selecció" + +#: view/kateview.cpp:905 +#, kde-format +msgid "Finds next occurrence of selected text." +msgstr "Busca l'ocurrència següent del text seleccionat." + +#: view/kateview.cpp:909 +#, kde-format +msgid "Find Selected Backwards" +msgstr "Busca la selecció cap arrere" + +#: view/kateview.cpp:911 +#, kde-format +msgid "Finds previous occurrence of selected text." +msgstr "Busca l'ocurrència anterior del text seleccionat." + +#: view/kateview.cpp:915 +#, kde-format +msgid "Find and Select Next Occurrence" +msgstr "Busca i selecciona l'ocurrència següent" + +#: view/kateview.cpp:917 +#, kde-format +msgid "Finds next occurrence of the word under cursor and add it to selection." +msgstr "" +"Busca l'ocurrència següent de la paraula baix el cursor i l'afig a la " +"selecció." + +#: view/kateview.cpp:921 +#, kde-format +msgid "Mark Currently Selected Occurrence as Skipped" +msgstr "Marca l'ocurrència actualment seleccionada com a omesa" + +#: view/kateview.cpp:923 +#, kde-format +msgid "Marks the currently selected word as skipped." +msgstr "Marca la paraula actualment seleccionada com a omesa." + +#: view/kateview.cpp:927 +#, kde-format +msgid "Find and Select All Occurrences" +msgstr "Busca i selecciona totes les ocurrències" + +#: view/kateview.cpp:929 +#, kde-format +msgid "Finds all occurrences of the word under cursor and selects them." +msgstr "" +"Busca totes les ocurrències de la paraula baix el cursor i les selecciona." + +#: view/kateview.cpp:933 +#, kde-format +msgid "Look up the next occurrence of the search phrase." +msgstr "Busca l'ocurrència següent de la frase de busca." + +#: view/kateview.cpp:937 +#, kde-format +msgid "Look up the previous occurrence of the search phrase." +msgstr "Busca l'ocurrència anterior de la frase de busca." + +#: view/kateview.cpp:941 +#, kde-format +msgid "" +"Look up a piece of text or regular expression and replace the result with " +"some given text." +msgstr "" +"Busca una part del text o expressió regular i substituïx el resultat amb el " +"text aportat." + +#: view/kateview.cpp:944 +#, kde-format +msgid "Add Cursors to Line Ends" +msgstr "Afig cursors als finals de línia" + +#: view/kateview.cpp:946 +#, kde-format +msgid "Creates a cursor at the end of every line in selection." +msgstr "Crea un cursor al final de cada línia de la selecció." + +#: view/kateview.cpp:950 +#, kde-format +msgid "Add Caret below Cursor" +msgstr "Afig un cursor (accent circumflex) baix el cursor" + +#: view/kateview.cpp:952 +#, kde-format +msgid "Adds a caret in the line below the current caret." +msgstr "" +"Afig un cursor (accent circumflex) en la línia baix el cursor (accent " +"circumflex) actual." + +#: view/kateview.cpp:956 +#, kde-format +msgid "Add Caret above Cursor" +msgstr "Afig un cursor (accent circumflex) sobre el cursor" + +#: view/kateview.cpp:958 +#, kde-format +msgid "Adds a caret in the line above the current caret." +msgstr "" +"Afig un cursor (accent circumflex) en la línia sobre el cursor (accent " +"circumflex) actual." + +#: view/kateview.cpp:962 +#, kde-format +msgid "Toggle Camel Case Cursor Movement" +msgstr "Canvia el moviment del cursor a les majúscules per parts" + +#: view/kateview.cpp:963 +#, kde-format +msgid "Toggle between normal word movement and camel case cursor movement." +msgstr "" +"Canvia entre el moviment del cursor normal i el moviment a les majúscules " +"per parts." + +#: view/kateview.cpp:967 +#, kde-format +msgid "Remove Cursors from Empty Lines" +msgstr "Elimina els cursors de les línies buides" + +#: view/kateview.cpp:968 +#, kde-format +msgid "Remove cursors from empty lines" +msgstr "Elimina els cursors de les línies buides" + +#: view/kateview.cpp:972 +#, kde-format +msgid "Automatic Spell Checking" +msgstr "Verificació automàtica de l'ortografia" + +#: view/kateview.cpp:973 +#, kde-format +msgid "Enable/disable automatic spell checking" +msgstr "Activa o desactiva la verificació automàtica de l'ortografia" + +#: view/kateview.cpp:979 +#, kde-format +msgctxt "@action" +msgid "Change Dictionary…" +msgstr "Canvia el diccionari…" + +#: view/kateview.cpp:980 +#, kde-format +msgid "Change the dictionary that is used for spell checking." +msgstr "Canvia el diccionari emprat per a la verificació ortogràfica." + +#: view/kateview.cpp:984 +#, kde-format +msgid "Clear Dictionary Ranges" +msgstr "Neteja l'abast dels diccionaris" + +#: view/kateview.cpp:986 +#, kde-format +msgid "" +"Remove all the separate dictionary ranges that were set for spell checking." +msgstr "" +"Elimina tots els diferents abasts dels diccionaris que es van establir per a " +"la verificació ortogràfica." + +#: view/kateview.cpp:992 +#, kde-format +msgid "Copy as &HTML" +msgstr "Copia com a &HTML" + +#: view/kateview.cpp:993 +#, kde-format +msgid "" +"Copy the selection as HTML, formatted using the current syntax highlighting " +"and color scheme settings." +msgstr "" +"Copia la selecció com a HTML, amb format utilitzant la configuració actual " +"per al ressaltat de la sintaxi i l'esquema de color." + +#: view/kateview.cpp:997 +#, kde-format +msgctxt "@action" +msgid "E&xport as HTML…" +msgstr "E&xporta com a HTML…" + +#: view/kateview.cpp:999 +#, kde-format +msgid "" +"This command allows you to export the current document with all highlighting " +"information into a HTML document." +msgstr "" +"Esta ordre us permet exportar el document actual amb tota la informació del " +"ressaltat en un document HTML." + +#: view/kateview.cpp:1038 +#, kde-format +msgid "Move Word Left" +msgstr "Mou una paraula a l'esquerra" + +#: view/kateview.cpp:1044 +#, kde-format +msgid "Select Character Left" +msgstr "Selecciona un caràcter a l'esquerra" + +#: view/kateview.cpp:1050 +#, kde-format +msgid "Select Word Left" +msgstr "Selecciona una paraula a l'esquerra" + +#: view/kateview.cpp:1060 +#, kde-format +msgid "Move Word Right" +msgstr "Mou una paraula a la dreta" + +#: view/kateview.cpp:1066 +#, kde-format +msgid "Select Character Right" +msgstr "Selecciona un caràcter a la dreta" + +#: view/kateview.cpp:1072 +#, kde-format +msgid "Select Word Right" +msgstr "Selecciona una paraula a la dreta" + +#: view/kateview.cpp:1082 +#, kde-format +msgid "Start the Marked Selection" +msgstr "Inicia la selecció marcada" + +#: view/kateview.cpp:1083 +#, kde-format +msgid "" +"Emulate the Emacs-like selection mode, where the beginning is marked and " +"then the selection is continuously updated." +msgstr "" +"Emula el mode de selecció similar a Emacs, on es marca l'inici i després " +"s'actualitza contínuament la selecció." + +#: view/kateview.cpp:1088 +#, kde-format +msgid "Move to Beginning of Line" +msgstr "Mou cap al començament de la línia" + +#: view/kateview.cpp:1094 +#, kde-format +msgid "Move to Beginning of Document" +msgstr "Mou cap al començament del document" + +#: view/kateview.cpp:1100 +#, kde-format +msgid "Select to Beginning of Line" +msgstr "Selecciona des del començament de la línia" + +#: view/kateview.cpp:1110 +#, kde-format +msgid "Select to Beginning of Document" +msgstr "Selecciona des del començament del document" + +#: view/kateview.cpp:1120 +#, kde-format +msgid "Move to End of Line" +msgstr "Mou cap al final de la línia" + +#: view/kateview.cpp:1126 +#, kde-format +msgid "Move to End of Document" +msgstr "Mou cap al final del document" + +#: view/kateview.cpp:1132 +#, kde-format +msgid "Select to End of Line" +msgstr "Selecciona fins al final de la línia" + +#: view/kateview.cpp:1142 +#, kde-format +msgid "Select to End of Document" +msgstr "Selecciona fins al final del document" + +#: view/kateview.cpp:1152 +#, kde-format +msgid "Select to Previous Line" +msgstr "Selecciona des de la línia prèvia" + +#: view/kateview.cpp:1158 +#, kde-format +msgid "Scroll Line Up" +msgstr "Desplaça una línia amunt" + +#: view/kateview.cpp:1167 +#, kde-format +msgid "Move to Next Line" +msgstr "Mou cap a la línia següent" + +#: view/kateview.cpp:1173 +#, kde-format +msgid "Move to Previous Line" +msgstr "Mou cap a la línia prèvia" + +#: view/kateview.cpp:1179 +#, kde-format +msgid "Move Cursor Right" +msgstr "Mou el cursor cap a la dreta" + +#: view/kateview.cpp:1185 +#, kde-format +msgid "Move Cursor Left" +msgstr "Mou el cursor cap a l'esquerra" + +#: view/kateview.cpp:1191 +#, kde-format +msgid "Select to Next Line" +msgstr "Selecciona fins a la línia següent" + +#: view/kateview.cpp:1197 +#, kde-format +msgid "Scroll Line Down" +msgstr "Desplaça una línia avall" + +# skip-rule: k-PageUp-1 +#: view/kateview.cpp:1206 +#, kde-format +msgid "Scroll Page Up" +msgstr "Desplaça una pàgina cap amunt" + +# skip-rule: k-PageUp-1 +#: view/kateview.cpp:1212 +#, kde-format +msgid "Select Page Up" +msgstr "Selecciona una pàgina amunt" + +#: view/kateview.cpp:1218 +#, kde-format +msgid "Move to Top of View" +msgstr "Mou cap al començament de la vista" + +#: view/kateview.cpp:1224 +#, kde-format +msgid "Select to Top of View" +msgstr "Selecciona des del començament de la vista" + +# skip-rule: k-PageDown-1 +#: view/kateview.cpp:1230 +#, kde-format +msgid "Scroll Page Down" +msgstr "Desplaça una pàgina cap avall" + +# skip-rule: k-PageDown-1 +#: view/kateview.cpp:1236 +#, kde-format +msgid "Select Page Down" +msgstr "Selecciona una pàgina avall" + +#: view/kateview.cpp:1242 +#, kde-format +msgid "Move to Bottom of View" +msgstr "Mou cap a baix de la vista" + +#: view/kateview.cpp:1248 +#, kde-format +msgid "Select to Bottom of View" +msgstr "Selecciona fins a baix de la vista" + +#: view/kateview.cpp:1254 +#, kde-format +msgid "Go to Matching Bracket" +msgstr "Ves fins al parèntesi concordant" + +#: view/kateview.cpp:1260 +#, kde-format +msgid "Select to Matching Bracket" +msgstr "Selecciona fins al parèntesi que coincidisca" + +#: view/kateview.cpp:1267 +#, kde-format +msgid "Move Sub-Word Right" +msgstr "Mou una subparaula a la dreta" + +#: view/kateview.cpp:1274 +#, kde-format +msgid "Select Sub-Word Right" +msgstr "Selecciona una subparaula a la dreta" + +#: view/kateview.cpp:1281 +#, kde-format +msgid "Move Sub-Word Left" +msgstr "Mou una subparaula a l'esquerra" + +#: view/kateview.cpp:1288 +#, kde-format +msgid "Select Sub-Word Left" +msgstr "Selecciona una subparaula a l'esquerra" + +#: view/kateview.cpp:1298 +#, kde-format +msgid "Transpose Characters" +msgstr "Invertix els caràcters" + +#: view/kateview.cpp:1303 +#, kde-format +msgid "Transpose Words" +msgstr "Invertix les paraules" + +#: view/kateview.cpp:1308 +#, kde-format +msgid "Delete Line" +msgstr "Suprimix la línia" + +#: view/kateview.cpp:1314 +#, kde-format +msgid "Delete Word Left" +msgstr "Suprimix una paraula a l'esquerra" + +#: view/kateview.cpp:1320 +#, kde-format +msgid "Delete Word Right" +msgstr "Suprimix una paraula a la dreta" + +#: view/kateview.cpp:1326 +#, kde-format +msgid "Delete Next Character" +msgstr "Suprimix el caràcter següent" + +#: view/kateview.cpp:1332 +#, kde-format +msgid "Backspace" +msgstr "Retrocés" + +#: view/kateview.cpp:1340 +#, kde-format +msgid "Insert Tab Character" +msgstr "Inserix un caràcter de tabulació" + +#: view/kateview.cpp:1345 +#, kde-format +msgid "Insert Smart Newline" +msgstr "Inserix una línia nova intel·ligent" + +#: view/kateview.cpp:1346 +#, kde-format +msgid "" +"Insert newline including leading characters of the current line which are " +"not letters or numbers." +msgstr "" +"Inserix una línia nova incloent els caràcters inicials de la línia actual " +"que no són lletres ni números." + +#: view/kateview.cpp:1354 +#, kde-format +msgid "Insert a Non-Indented Newline" +msgstr "Inserix una línia nova no sagnada" + +#: view/kateview.cpp:1355 +#, kde-format +msgid "" +"Insert a new line without indentation, regardless of indentation settings." +msgstr "" +"Inserix una línia nova sense sagnat, independentment de la configuració del " +"sagnat." + +#: view/kateview.cpp:1363 +#, kde-format +msgid "Insert a Newline Above Current Line" +msgstr "Inserix una línia nova sobre la línia actual" + +#: view/kateview.cpp:1364 +#, kde-format +msgid "" +"Insert a new line above current line without modifying the current line." +msgstr "" +"Inserix una línia nova sobre la línia actual sense modificar la línia actual." + +#: view/kateview.cpp:1372 +#, kde-format +msgid "Insert a Newline Below Current Line" +msgstr "Inserix una línia nova davall la línia actual" + +#: view/kateview.cpp:1373 +#, kde-format +msgid "" +"Insert a new line below current line without modifying the current line." +msgstr "" +"Inserix una línia nova davall la línia actual sense modificar la línia " +"actual." + +#: view/kateview.cpp:1382 +#, kde-format +msgid "&Indent" +msgstr "&Sagna" + +#: view/kateview.cpp:1384 +#, kde-format +msgid "" +"Use this to indent a selected block of text.

You can configure " +"whether tabs should be honored and used or replaced with spaces, in the " +"configuration dialog." +msgstr "" +"Utilitzeu-ho per a sagnar un bloc de text seleccionat.

En el " +"diàleg de configuració podreu establir si els tabuladors haurien de ser " +"reconeguts i emprats o substituïts per espais." + +#: view/kateview.cpp:1391 +#, kde-format +msgid "&Unindent" +msgstr "Sense &sagnar" + +#: view/kateview.cpp:1392 +#, kde-format +msgid "Use this to unindent a selected block of text." +msgstr "Utilitzeu-la per a eliminar el sagnat a un bloc de text seleccionat." + +#: view/kateview.cpp:1398 +#, kde-format +msgid "Delete Sub-Word Left" +msgstr "Suprimix una subparaula a l'esquerra" + +#: view/kateview.cpp:1405 +#, kde-format +msgid "Delete Sub-Word Right" +msgstr "Suprimix una subparaula a la dreta" + +#: view/kateview.cpp:1426 +#, kde-format +msgid "Fold Toplevel Nodes" +msgstr "Contrau els nodes de nivell superior" + +#: view/kateview.cpp:1430 +#, kde-format +msgid "Unfold Toplevel Nodes" +msgstr "Expandix els nodes de nivell superior" + +#: view/kateview.cpp:1434 +#, kde-format +msgid "Toggle Current Node" +msgstr "Canvia el node actual" + +#: view/kateview.cpp:1438 +#, kde-format +msgid "Toggle Contained Nodes" +msgstr "Canvia els nodes continguts" + +#: view/kateview.cpp:1447 +#, kde-format +msgid "Say current selection or document" +msgstr "Llig la selecció o el document actual" + +#: view/kateview.cpp:1457 +#, kde-format +msgid "Stop current output" +msgstr "Para l'eixida actual" + +#: view/kateview.cpp:1463 +#, kde-format +msgid "Pause current output" +msgstr "Posa en pausa l'eixida actual" + +#: view/kateview.cpp:1469 +#, kde-format +msgid "Resume current output" +msgstr "Reprén l'eixida actual" + +#: view/kateview.cpp:1640 +#, kde-format +msgid "(R/O) %1" +msgstr "%1 (R/O)" + +#: view/kateview.cpp:1828 +#, kde-format +msgid "Camel case movement disabled" +msgstr "Moviment desactivat del cursor a les majúscules per parts" + +#: view/kateview.cpp:1830 +#, kde-format +msgid "Camel case movement enabled" +msgstr "Moviment activat del cursor a les majúscules per parts" + +#: view/kateview.cpp:2349 +#, kde-format +msgid "Search wrapped" +msgstr "La busca continua des del començament" + +#: view/kateview.cpp:3043 +#, kde-format +msgid "Open File" +msgstr "Obri un fitxer" + +#: view/kateview.cpp:3984 +#, kde-format +msgid "Align On" +msgstr "Alinea a" + +#: view/kateview.cpp:3984 +#, kde-format +msgid "Alignment pattern:" +msgstr "Patró d'alineació:" + +#: view/kateview.cpp:5068 +#, kde-format +msgid "Export File as HTML" +msgstr "Exporta el fitxer com a HTML" + +#: view/kateviewhelpers.cpp:302 view/kateviewhelpers.cpp:351 +#: view/kateviewhelpers.cpp:1012 +#, kde-format +msgctxt "from line - to line" +msgid "
%1

%2
" +msgstr "
%1

%2
" + +#: view/kateviewhelpers.cpp:1212 +#, kde-format +msgid "Available Commands" +msgstr "Ordres disponibles" + +#: view/kateviewhelpers.cpp:1213 +#, kde-format +msgid "" +"

For help on individual commands, do 'help <command>'" +msgstr "" +"

Per a obtindre ajuda quant a les ordres individuals, feu «help <" +"ordre>»

" + +#: view/kateviewhelpers.cpp:1220 +#, kde-format +msgid "No help for '%1'" +msgstr "No hi ha ajuda per a «%1»" + +#: view/kateviewhelpers.cpp:1223 +#, kde-format +msgid "No such command %1" +msgstr "No es troba l'ordre: %1" + +#: view/kateviewhelpers.cpp:1229 +#, kde-format +msgid "" +"

This is the Katepart command line.
Syntax: command " +"[ arguments ]
For a list of available commands, enter " +"help list
For help for individual commands, enter " +"help <command>

" +msgstr "" +"

Esta és la línia d'ordres del Katepart.
Sintaxi: " +"ordre [arguments]
Per a obtindre una llista de les " +"ordres disponibles, introduïu help list
Per a " +"obtindre ajuda sobre les ordres individuals, introduïu help <" +"ordre>

" + +#: view/kateviewhelpers.cpp:1317 vimode/emulatedcommandbar/commandmode.cpp:211 +#, kde-format +msgid "No such command: \"%1\"" +msgstr "No es troba l'ordre: «%1»" + +#: view/kateviewhelpers.cpp:1320 vimode/emulatedcommandbar/commandmode.cpp:193 +#, kde-format +msgid "Error: No range allowed for command \"%1\"." +msgstr "S'ha produït un error: no es permet l'abast per a l'ordre «%1»." + +#: view/kateviewhelpers.cpp:1330 vimode/emulatedcommandbar/commandmode.cpp:197 +#, kde-format +msgid "Success: " +msgstr "Ha tingut èxit: " + +#: view/kateviewhelpers.cpp:1344 vimode/emulatedcommandbar/commandmode.cpp:206 +#, kde-format +msgid "Command \"%1\" failed." +msgstr "L'ordre «%1» ha fallat." + +#: view/kateviewhelpers.cpp:2632 view/kateviewhelpers.cpp:2633 +#, kde-format +msgid "Mark Type %1" +msgstr "Tipus de marca %1" + +#: view/kateviewhelpers.cpp:2656 +#, kde-format +msgid "Set Default Mark Type" +msgstr "Establix el tipus de marca predeterminada" + +#: view/kateviewhelpers.cpp:2801 +#, kde-format +msgid "Disable Annotation Bar" +msgstr "Desactiva la barra d'anotacions" + +#: view/screenshotdialog.cpp:175 +#, kde-format +msgid "Save" +msgstr "Guarda" + +#: view/screenshotdialog.cpp:176 +#, kde-format +msgid "Copy" +msgstr "Copia" + +#: view/screenshotdialog.cpp:177 +#, kde-format +msgctxt "@action:button" +msgid "Background Color…" +msgstr "Color de fons…" + +#: view/screenshotdialog.cpp:179 +#, kde-format +msgid "Show Extra Decorations" +msgstr "Mostra les decoracions extres" + +#: view/screenshotdialog.cpp:180 +#, kde-format +msgid "Show Window Decorations" +msgstr "Mostra la decoració de les finestres" + +#: view/screenshotdialog.cpp:185 +#, kde-format +msgctxt "@title:window" +msgid "Take Screenshot of Selection" +msgstr "Pren una captura de pantalla de la selecció" + +#: view/screenshotdialog.cpp:257 +#, kde-format +msgid "Don't Show Line Numbers" +msgstr "No mostres els números de les línies" + +#: view/screenshotdialog.cpp:258 +#, kde-format +msgid "Show Line Numbers From 1" +msgstr "Mostra els números de les línies a partir de l'1" + +#: view/screenshotdialog.cpp:259 +#, kde-format +msgid "Show Actual Line Numbers" +msgstr "Mostra els números reals de les línies" + +#: view/screenshotdialog.cpp:422 +#, kde-format +msgctxt "@title:window" +msgid "Screenshot saving failed" +msgstr "Ha fallat mentre es guardava la captura de pantalla" + +#: view/screenshotdialog.cpp:422 +#, kde-format +msgid "Screenshot saving failed: %1" +msgstr "Ha fallat mentre es guardava la captura de pantalla: %1" + +#: vimode/appcommands.cpp:67 +#, kde-format +msgid "All documents written to disk" +msgstr "Tots els documents escrits en el disc" + +#: vimode/appcommands.cpp:70 +#, kde-format +msgid "Document written to disk" +msgstr "Document escrit en el disc" + +#: vimode/appcommands.cpp:202 +#, kde-format +msgid "" +"

w/wa — write document(s) to disk

Usage: w[a]

Writes the current document(s) to disk. It can be called in " +"two ways:
w — writes the current document to disk
" +"wa — writes all documents to disk.

If no file name is " +"associated with the document, a file dialog will be shown.

" +msgstr "" +"

w/wa — escriu documents al disc

Sintaxi: w[a]

Escriu els documents actuals al disc. Es pot cridar de dues " +"maneres:
w — escriu el document actual al disc
" +"wa — escriu tots els documents al disc.

Si no hi ha cap " +"nom de fitxer associat al document, es mostrarà un diàleg de fitxer.

" + +#: vimode/appcommands.cpp:213 +#, kde-format +msgid "" +"

q/qa/wq/wqa — [write and] quit

Usage: [w]q[a]

Quits the application. If w is prepended, it also " +"writes the document(s) to disk. This command can be called in several ways:" +"
q — closes the current view.
qa — " +"closes all views, effectively quitting the application.
wq " +"— writes the current document to disk and closes its view.
" +"wqa — writes all documents to disk and quits.

In all " +"cases, if the view being closed is the last view, the application quits. If " +"no file name is associated with the document and it should be written to " +"disk, a file dialog will be shown.

" +msgstr "" +"

q/qa/wq/wqa — [escriu y] ix

Sintaxi: [w]q[a]

Ix de l'aplicació. Si s'anteposa w, també escriu els " +"documents al disc. Esta ordre es pot cridar de diverses maneres:
q — tanca la vista actual.
qa — tanca totes les " +"vistes i ix efectivament de l'aplicació.
wq — escriu el " +"document actual al disc i tanca la seua vista.
wqa — " +"escriu tots els documents al disc i ix.

En tots els casos, si la vista " +"que s'està tancant és l'última, s'eixirà de l'aplicació. Si no hi ha cap nom " +"de fitxer associat amb el document i s'ha d'escriure al disc, es mostrarà un " +"diàleg de fitxer.

" + +# skip-rule: t-e_sola +#: vimode/appcommands.cpp:228 +#, kde-format +msgid "" +"

x/xa — write and quit

Usage: x[a]

Saves document(s) and quits (exits). This command can be called " +"in two ways:
x — closes the current view.
xa — closes all views, effectively quitting the application.

In " +"all cases, if the view being closed is the last view, the application quits. " +"If no file name is associated with the document and it should be written to " +"disk, a file dialog will be shown.

Unlike the 'w' commands, this " +"command only writes the document if it is modified.

" +msgstr "" +"

x/xa — escriu i ix

Sintaxi: x[a]

Guarda els documents i ix («exits»). Esta ordre es pot cridar " +"de dues maneres::
x — tanca la vista actual.
" +"xa — tanca totes les vistes, efectivament i ix de l'aplicació." +"

En tots els casos, si la vista que s'està tancant és l'última, s'ix " +"de l'aplicació. Si no hi ha cap nom de fitxer associat amb el document i " +"s'ha d'escriure al disc, es mostrarà un diàleg de fitxer.

A diferència " +"de les ordres «w», esta ordre només escriurà el document si ha sigut " +"modificat.

" + +#: vimode/appcommands.cpp:242 +#, kde-format +msgid "" +"

sp,split— Split horizontally the current view into two

Usage: sp[lit]

The result is two views on the " +"same document.

" +msgstr "" +"

sp,split— Dividix horitzontalment la vista actual en dues

Ús: sp[lit]

El resultat són dues vistes en el " +"mateix document.

" + +#: vimode/appcommands.cpp:248 +#, kde-format +msgid "" +"

vs,vsplit— Split vertically the current view into two

Usage: vs[plit]

The result is two views on the " +"same document.

" +msgstr "" +"

vs,vsplit— Dividix verticalment la vista actual en dues

Ús: vs[plit]

El resultat són dues vistes en el " +"mateix document.

" + +#: vimode/appcommands.cpp:254 +#, kde-format +msgid "" +"

clo[se]— Close the current view

Usage: clo[se]

After executing it, the current view will be closed.

" +msgstr "" +"

clo[se]— Tanca la vista actual

Ús: clo[se]

Després d'executar-lo es tancarà la vista actual.

" + +#: vimode/appcommands.cpp:260 +#, kde-format +msgid "" +"

[v]new — split view and create new document

Usage: " +"[v]new

Splits the current view and opens a new " +"document in the new view. This command can be called in two ways:
" +"new — splits the view horizontally and opens a new document." +"
vnew — splits the view vertically and opens a new " +"document.

" +msgstr "" +"

[v]new — dividix la vista i crea un document nou

Ús: " +"[v]new

Dividix la vista actual i obri un document nou " +"en la vista nova. Esta ordre es pot cridar de dues maneres:
new — dividix la vista horitzontalment i obri un document nou.
" +"vnew — dividix la vista verticalment i obri un document nou." +"

" + +#: vimode/appcommands.cpp:270 +#, kde-format +msgid "" +"

e[dit] — reload current document

Usage: e[dit]

Starts editing the current document again. This is " +"useful to re-edit the current file, when it was modified on disk.

" +msgstr "" +"

e[dit] — torna a carregar el document actual

Sintaxi: " +"e[dit]

Inicia l'edició del document actual de " +"nou. Açò és útil per a tornar a editar el fitxer actual, quan ha sigut " +"modificat en el disc.

" + +#: vimode/appcommands.cpp:518 +#, kde-format +msgid "" +"

b,buffer — Edit document N from the document list

Usage: b[uffer] [N]

" +msgstr "" +"

b,buffer — Edita el document N de la llista de documents

Ús: b[uffer] [N]

" + +#: vimode/appcommands.cpp:523 +#, kde-format +msgid "" +"

bp,bprev — previous buffer

Usage: bp[revious] " +"[N]

Goes to [N]th previous document (\"buffer" +"\") in document list.

[N] defaults to one.

Wraps " +"around the start of the document list.

" +msgstr "" +"

bp,bprev — document anterior

Ús: bp[revious] " +"[N]

Va fins a l'anterior [N] document («buffer») en la llista de documents.

[N] està predeterminat a " +"u.

Dona la volta a l'inici de la llista de documents.

" + +#: vimode/appcommands.cpp:531 +#, kde-format +msgid "" +"

bn,bnext — switch to next document

Usage: " +"bn[ext] [N]

Goes to [N]th next document " +"(\"buffer\") in document list.[N] defaults to one.

Wraps around the end of the document list.

" +msgstr "" +"

bn,bnext — canvia al document següent

Ús: " +"bn[ext] [N]

Va fins al següent [N] document " +"(«buffer») en la llista de documents.[N] està predeterminat a " +"u.

Dona la volta al final de la llista de documents.

" + +#: vimode/appcommands.cpp:539 +#, kde-format +msgid "" +"

bf,bfirst — first document

Usage: bf[irst]

Goes to the first document (\"buffer\") in document " +"list.

" +msgstr "" +"

bf,bfirst — primer document

Ús: bf[irst]

Va fins al «first» (primer) document («buffer») en " +"la llista de documents.

" + +#: vimode/appcommands.cpp:545 +#, kde-format +msgid "" +"

bl,blast — last document

Usage: bl[ast]

Goes to the last document (\"buffer\") in document " +"list.

" +msgstr "" +"

bl,blast — últim document

Ús: bl[ast]

Va fins al «last» (últim) document («buffer») en la " +"llista de documents.

" + +#: vimode/appcommands.cpp:551 +#, kde-format +msgid "

ls

list current buffers

" +msgstr "

ls

llista els buffers actuals

" + +#: vimode/cmds.cpp:52 +#, kde-format +msgid "Missing argument. Usage: %1 " +msgstr "Falta un argument. Utilitzeu: %1 " + +#: vimode/cmds.cpp:68 +#, kde-format +msgid "No mapping found for \"%1\"" +msgstr "No s'ha trobat cap correspondència per a «%1»" + +#: vimode/cmds.cpp:71 +#, kde-format +msgid "\"%1\" is mapped to \"%2\"" +msgstr "«%1» es correspon a «%2»" + +#: vimode/cmds.cpp:77 +#, kde-format +msgid "Missing argument(s). Usage: %1 []" +msgstr "Falten uns arguments. Utilitzeu: %1 []" + +#: vimode/cmds.cpp:145 vimode/cmds.cpp:161 +#, kde-format +msgid "Wrong arguments" +msgstr "Arguments erronis" + +#: vimode/config/configtab.cpp:205 +#, kde-format +msgid "Unable to open the config file for reading." +msgstr "No s'ha pogut obrir el fitxer de configuració per a lectura." + +#: vimode/config/configtab.cpp:205 +#, kde-format +msgid "Unable to open file" +msgstr "No s'ha pogut obrir el fitxer" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkViCommandsOverride) +#: vimode/config/configwidget.ui:35 +#, kde-format +msgid "" +"When selected, vi commands will override Kate's built-in commands. For " +"example: Ctrl+R will redo, and override the standard action (showing the " +"search and replace dialog)." +msgstr "" +"Quan es marca, les ordres de vi substituïxen les ordres integrades de Kate. " +"Per exemple: «Ctrl+R» refarà i substituirà l'acció estàndard (mostra el " +"diàleg de busca i substitució)." + +#. i18n: ectx: property (text), widget (QCheckBox, chkViCommandsOverride) +#: vimode/config/configwidget.ui:38 +#, kde-format +msgid "Let Vi commands override Kate shortcuts" +msgstr "Permet que les ordres de Vi substituisquen les dreceres de Kate" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkViRelLineNumbers) +#: vimode/config/configwidget.ui:45 +#, kde-format +msgid "" +"Show the line number relative to the line with the cursor in front of each " +"line." +msgstr "" +"Mostra el número de línia relatiu a la línia amb el cursor davant de cada " +"línia." + +#. i18n: ectx: property (text), widget (QCheckBox, chkViRelLineNumbers) +#: vimode/config/configwidget.ui:48 +#, kde-format +msgid "Display relative line numbers" +msgstr "Mostra el número relatiu a la línia" + +#. i18n: ectx: property (whatsThis), widget (QGroupBox, groupBox) +#: vimode/config/configwidget.ui:63 +#, kde-format +msgid "" +"Key mapping is used to change the meaning of typed keys. This allows you to " +"move commands to other keys or make special keypresses for doing a series of " +"commands.\n" +"\n" +"Example:\n" +"\"\" → \"I-- \"\n" +"\n" +"This will prepend \"-- \" to a line when pressing F2." +msgstr "" +"El mapatge de tecles s'utilitza per a canviar el significat de les tecles " +"premudes. Açò us permet moure les ordres cap a altres tecles o crear " +"pulsacions especials de tecles per a fer sèries d'ordres.\n" +"\n" +"Exemple:\n" +"«» → «I-- »\n" +"\n" +"Açò afegirà «-- » al començament d'una línia en prémer «F2»." + +#. i18n: ectx: property (title), widget (QGroupBox, groupBox) +#: vimode/config/configwidget.ui:66 +#, kde-format +msgid "Key Mapping" +msgstr "Mapatge de tecles" + +#. i18n: ectx: attribute (title), widget (QWidget, normalTab) +#: vimode/config/configwidget.ui:76 +#, kde-format +msgid "Normal mode" +msgstr "Mode normal" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:95 vimode/config/configwidget.ui:133 +#: vimode/config/configwidget.ui:171 +#, kde-format +msgid "Command" +msgstr "Ordre" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:100 vimode/config/configwidget.ui:138 +#: vimode/config/configwidget.ui:176 +#, kde-format +msgid "Replacement" +msgstr "Substitució" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:105 vimode/config/configwidget.ui:143 +#: vimode/config/configwidget.ui:181 +#, kde-format +msgid "Recursive?" +msgstr "És recursiu?" + +#. i18n: ectx: attribute (title), widget (QWidget, insertTab) +#: vimode/config/configwidget.ui:114 +#, kde-format +msgid "Insert mode" +msgstr "Mode d'inserció" + +#. i18n: ectx: attribute (title), widget (QWidget, visualTab) +#: vimode/config/configwidget.ui:152 +#, kde-format +msgid "Visual mode" +msgstr "Mode visual" + +#. i18n: ectx: property (text), widget (QPushButton, btnRemoveSelectedRows) +#: vimode/config/configwidget.ui:195 +#, kde-format +msgid "Remove selected" +msgstr "Elimina la selecció" + +#. i18n: ectx: property (text), widget (QPushButton, btnAddNewRow) +#: vimode/config/configwidget.ui:202 +#, kde-format +msgid "Add new mapping" +msgstr "Afig un mapatge nou" + +#. i18n: ectx: property (toolTip), widget (QPushButton, btnImportNormal) +#: vimode/config/configwidget.ui:209 +#, kde-format +msgid "" +"Read a vimrc file and attempt to import mappings specified with the " +"\"[n]noremap\" command." +msgstr "" +"Llig un fitxer «vimrc» per a intentar importar els mapatges especificats amb " +"l'ordre «[n]noremap»." + +#. i18n: ectx: property (text), widget (QPushButton, btnImportNormal) +#: vimode/config/configwidget.ui:212 +#, kde-format +msgid "Import from vimrc file" +msgstr "Importa des d'un fitxer «vimrc»" + +#: vimode/marks.cpp:117 +#, kde-format +msgid "Mark set: %1" +msgstr "Marca establida: %1" + +#: vimode/marks.cpp:163 +#, kde-format +msgid "There are no more chars for the next bookmark." +msgstr "No hi ha més caràcters per al punt següent." + +#: vimode/modes/insertvimode.cpp:261 vimode/modes/modebase.cpp:794 +#: vimode/modes/normalvimode.cpp:3567 +#, kde-format +msgid "Nothing in register %1" +msgstr "No hi ha res al registre %1" + +#: vimode/modes/normalvimode.cpp:1691 +#, kde-format +msgid "'%1' %2, Hex %3, Octal %4" +msgstr "«%1» %2, Hex %3, Octal %4" + +#: vimode/modes/normalvimode.cpp:2534 +#, kde-format +msgid "Mark not set: %1" +msgstr "Marca no establida: %1" diff --git a/local/recipes/kde/kf6-ktexteditor/source/po/cs/ktexteditor6.po b/local/recipes/kde/kf6-ktexteditor/source/po/cs/ktexteditor6.po new file mode 100644 index 0000000000..1112827055 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/po/cs/ktexteditor6.po @@ -0,0 +1,8223 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# SPDX-FileCopyrightText: 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2023, 2024 Vít Pelčák +# Lukáš Tinkl , 2011. +# Tomáš Chvátal , 2012, 2013. +# SPDX-FileCopyrightText: 2021, 2022, 2023, 2024 Vit Pelcak +# +msgid "" +msgstr "" +"Project-Id-Version: katepart4\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2026-06-23 00:41+0000\n" +"PO-Revision-Date: 2024-10-08 14:47+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 24.08.1\n" + +#: completion/katecompletionmodel.cpp:147 +#, kde-format +msgid "Argument-hints" +msgstr "Nápověda parametrů" + +#: completion/katecompletionmodel.cpp:148 +#, kde-format +msgid "Best matches" +msgstr "Nejlepší shody" + +#: completion/katekeywordcompletion.cpp:143 +#, kde-format +msgid "Language keywords" +msgstr "Klíčová slova jazyka" + +#: completion/katewordcompletion.cpp:74 +#, kde-format +msgid "Auto Word Completion" +msgstr "Automatické doplnění slov" + +#: completion/katewordcompletion.cpp:301 +#, kde-format +msgid "Shell Completion" +msgstr "Doplnění na příkazové řádce" + +#: completion/katewordcompletion.cpp:306 +#, kde-format +msgid "Reuse Word Above" +msgstr "Znovu využít slovo nahoře" + +#: completion/katewordcompletion.cpp:312 +#, kde-format +msgid "Reuse Word Below" +msgstr "Znovu využít slovo dole" + +#. i18n: ectx: Menu (file) +#: data/katepart5ui.rc:4 +#, kde-format +msgid "&File" +msgstr "&Soubor" + +#. i18n: ectx: Menu (file_export) +#: data/katepart5ui.rc:10 +#, kde-format +msgid "&Print/Export" +msgstr "&Tisknout/Exportovat" + +#. i18n: ectx: Menu (edit) +#: data/katepart5ui.rc:17 +#, kde-format +msgid "&Edit" +msgstr "Ú&pravy" + +#. i18n: ectx: Menu (edit_find_menu) +#: data/katepart5ui.rc:36 +#, kde-format +msgid "Find Variants" +msgstr "Najít varianty" + +#. i18n: ectx: Menu (selection) +#: data/katepart5ui.rc:46 +#, kde-format +msgid "Selection" +msgstr "Výběr" + +#. i18n: ectx: Menu (capitalization) +#: data/katepart5ui.rc:53 +#, kde-format +msgid "Capitalization" +msgstr "Převod na velká písmena" + +#. i18n: ectx: Menu (view) +#: data/katepart5ui.rc:73 +#, kde-format +msgid "&View" +msgstr "Po&hled" + +#. i18n: ectx: Menu (view_menu_word_wrap) +#: data/katepart5ui.rc:78 +#, kde-format +msgid "Word Wrap" +msgstr "Lámání slov" + +#. i18n: ectx: Menu (view_menu_borders) +#: data/katepart5ui.rc:84 dialogs/katedialogs.cpp:747 +#, kde-format +msgid "Borders" +msgstr "Okraje" + +#. i18n: ectx: Menu (codefolding) +#: data/katepart5ui.rc:92 +#, kde-format +msgid "&Code Folding" +msgstr "S&kládání kódu" + +#. i18n: ectx: Menu (go) +#: data/katepart5ui.rc:109 +#, kde-format +msgid "&Go" +msgstr "Pře&jít" + +#. i18n: ectx: Menu (tools) +#: data/katepart5ui.rc:124 +#, kde-format +msgid "&Tools" +msgstr "&Nástroje" + +#. i18n: ectx: Menu (wordcompletion) +#: data/katepart5ui.rc:138 +#, kde-format +msgid "Word Completion" +msgstr "Doplňování slov" + +#. i18n: ectx: Menu (spelling) +#: data/katepart5ui.rc:144 spellcheck/spellingmenu.cpp:71 +#: spellcheck/spellingmenu.cpp:195 +#, kde-format +msgid "Spelling" +msgstr "Kontrola pravopisu" + +#. i18n: ectx: Menu (speech) +#: data/katepart5ui.rc:153 data/katepart5ui.rc:184 +#, kde-format +msgid "Text to Speech" +msgstr "Hlasová syntéza" + +#. i18n: ectx: Menu (settings) +#: data/katepart5ui.rc:161 +#, kde-format +msgid "&Settings" +msgstr "Nastav&ení" + +#. i18n: ectx: ToolBar (mainToolBar) +#: data/katepart5ui.rc:192 +#, kde-format +msgid "Main Toolbar" +msgstr "Hlavní panel nástrojů" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/bordersappearanceconfigwidget.ui:25 +#, kde-format +msgid "Code block folding:" +msgstr "Skládání bloků kódu" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowFoldingMarkers) +#: dialogs/bordersappearanceconfigwidget.ui:32 +#, kde-format +msgid "" +"If this option is checked, every new view will display marks for folding." +msgstr "" +"Je-li zvolena tato volba, pak v každém novém pohledu budou zobrazovány " +"značky pro skládání." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowFoldingMarkers) +#: dialogs/bordersappearanceconfigwidget.ui:35 +#, kde-format +msgid "Show arrows to collapse code blocks" +msgstr "Zobrazit šipky pro sbalení bloků kódu" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowFoldingPreview) +#: dialogs/bordersappearanceconfigwidget.ui:42 +#, kde-format +msgid "" +"If checked, hovering over a folded region shows a preview of the folded text " +"in a popup." +msgstr "" +"Pokud zaškrtnuto, při přejetí myší nad sbalenou oblastí zobrazí náhled " +"sbaleného textu ve vyskakovacím okně." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowFoldingPreview) +#: dialogs/bordersappearanceconfigwidget.ui:45 +#, kde-format +msgid "Show preview of folded blocks on hover" +msgstr "Zobrazit náhledy složených bloků při přejetí myši" + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/bordersappearanceconfigwidget.ui:52 +#, kde-format +msgid "Folding arrows visibility:" +msgstr "Viditelnost skládacích šipek:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbFoldingArrowVisiblity) +#: dialogs/bordersappearanceconfigwidget.ui:63 +#, kde-format +msgid "Show on Hover" +msgstr "Zobrazit při přejetí myší" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbFoldingArrowVisiblity) +#: dialogs/bordersappearanceconfigwidget.ui:68 +#, kde-format +msgid "Show Always" +msgstr "Vždy zobrazit" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/bordersappearanceconfigwidget.ui:92 +#, kde-format +msgid "Left side:" +msgstr "Levá strana:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkIconBorder) +#: dialogs/bordersappearanceconfigwidget.ui:99 +#, kde-format +msgid "" +"

If this option is checked, every new view will display an icon border on " +"the left hand side.

The icon border shows bookmark signs, for instance." +"

" +msgstr "" +"

Je-li zvolena tato volba, pak v každém novém pohledu bude na levé straně " +"zobrazen proužek s ikonami.

Proužek s ikonami zobrazuje například " +"značku záložky.

" + +#. i18n: ectx: property (text), widget (QCheckBox, chkIconBorder) +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMarks) +#: dialogs/bordersappearanceconfigwidget.ui:102 +#: dialogs/bordersappearanceconfigwidget.ui:155 +#, kde-format +msgid "Show marks" +msgstr "Zobrazit značky" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkLineNumbers) +#: dialogs/bordersappearanceconfigwidget.ui:109 +#, kde-format +msgid "" +"If this option is checked, every new view will display line numbers on the " +"left hand side." +msgstr "" +"Je-li zvolena tato volba, pak v každém novém pohledu budou na levé straně " +"zobrazeny čísla řádků." + +#. i18n: ectx: property (text), widget (QCheckBox, chkLineNumbers) +#: dialogs/bordersappearanceconfigwidget.ui:112 +#, kde-format +msgid "Show &line numbers" +msgstr "Zobrazovat čís&la řádků" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowLineModification) +#: dialogs/bordersappearanceconfigwidget.ui:119 +#, kde-format +msgid "" +"If this option is checked, a small indicator for modified and saved lines is " +"shown on the left hand side." +msgstr "" +"Je-li zvolena tato volba, pak v každém se na levé straně zobrazí ukazatel " +"změněných a uložených řádků." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowLineModification) +#: dialogs/bordersappearanceconfigwidget.ui:122 +#, kde-format +msgid "Highlight changed and unsaved lines" +msgstr "Zvýraznit změněné a neuložené řádky" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/bordersappearanceconfigwidget.ui:145 +#, kde-format +msgid "Scrollbars:" +msgstr "Posuvníky:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMarks) +#: dialogs/bordersappearanceconfigwidget.ui:152 +#, kde-format +msgid "" +"

If this option is checked, every new view will show marks on the vertical " +"scrollbar.

These marks will show bookmarks, for instance.

" +msgstr "" +"

Je-li zvolena tato volba, pak v každém novém pohledu bude svislý posuvník " +"zobrazovat značky.

Tyto značky reprezentují například záložky.

" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarPreview) +#: dialogs/bordersappearanceconfigwidget.ui:162 +#, kde-format +msgid "" +"

If this option is checked, hovering over the vertical scrollbar will show " +"a preview of the text.

" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarPreview) +#: dialogs/bordersappearanceconfigwidget.ui:165 +#, kde-format +msgid "Show preview when hovering over scrollbar" +msgstr "Zobrazit náhled při najetí myší nad posuvník" + +#. i18n: ectx: property (text), widget (QLabel, lblShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:172 +#, kde-format +msgid "Scro&llbars visibility:" +msgstr "Vidite&lnost posuvníku:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:183 dialogs/katedialogs.cpp:755 +#, kde-format +msgid "Always On" +msgstr "Vždy zapnuto" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:188 +#, kde-format +msgid "Show When Needed" +msgstr "Zobrazit je-li třeba" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:193 +#, kde-format +msgid "Always Off" +msgstr "Vždy vypnuto" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/bordersappearanceconfigwidget.ui:217 +#, kde-format +msgid "Minimap:" +msgstr "Minimapa:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMiniMap) +#: dialogs/bordersappearanceconfigwidget.ui:224 +#, kde-format +msgid "" +"If this option is checked, every new view will show a mini map on the " +"vertical scrollbar." +msgstr "" +"Je-li zvolena tato volba, pak v každém novém pohledu bude u svislého " +"posuvníku zobrazena minimapa." + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMiniMap) +#: dialogs/bordersappearanceconfigwidget.ui:227 +#, kde-format +msgid "Show minimap" +msgstr "Ukázat minimapu" + +#. i18n: ectx: property (text), widget (QLabel, labelMiniMapWidth) +#: dialogs/bordersappearanceconfigwidget.ui:250 +#, kde-format +msgid "Minim&ap width:" +msgstr "Šířka minim&apy:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMiniMapAll) +#: dialogs/bordersappearanceconfigwidget.ui:263 +#, kde-format +msgid "" +"If this option is checked, every new view will show a mini map of the whole " +"document on the vertical scrollbar." +msgstr "" +"Je-li zvolena tato volba, pak v každém novém pohledu bude u svislého " +"posuvníku zobrazena minimapa celého dokumentu." + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMiniMapAll) +#: dialogs/bordersappearanceconfigwidget.ui:266 +#, kde-format +msgid "Map the whole document" +msgstr "Mapa celého dokumentu" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbSortBookmarksByCreation) +#: dialogs/bordersappearanceconfigwidget.ui:276 +#, kde-format +msgid "" +"Each new bookmark will be added to the bottom, independently from where it " +"is placed in the document." +msgstr "" +"Každá nová záložka bude přidána na konec nezávisle na jejím umístění " +"dokumentu." + +#. i18n: ectx: property (text), widget (QRadioButton, rbSortBookmarksByCreation) +#: dialogs/bordersappearanceconfigwidget.ui:279 +#, kde-format +msgid "By date created" +msgstr "Podle data vytvoření" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbSortBookmarksByPosition) +#: dialogs/bordersappearanceconfigwidget.ui:286 +#, kde-format +msgid "The bookmarks will be ordered by the line numbers they are placed at." +msgstr "Záložky budou tříděny podle čísla řádky, na kterých jsou umístěny." + +#. i18n: ectx: property (text), widget (QRadioButton, rbSortBookmarksByPosition) +#: dialogs/bordersappearanceconfigwidget.ui:289 +#, kde-format +msgid "By line number" +msgstr "Podle čísla řádku" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/bordersappearanceconfigwidget.ui:296 +#, kde-format +msgid "Sort bookmarks menu:" +msgstr "Řadit nabídku se záložkami:" + +#: dialogs/clipboardhistorydialog.cpp:264 +#, kde-format +msgid "Select text to paste." +msgstr "Vyberte text pro vložení." + +#: dialogs/clipboardhistorydialog.cpp:296 +#, kde-format +msgid "No entries in clipboard history" +msgstr "Žádné záznamy v historii schránky" + +#. i18n: ectx: property (title), widget (QGroupBox, gbGeneral) +#. i18n: ectx: property (title), widget (QGroupBox, gbViInputMode) +#: dialogs/completionconfigtab.ui:29 dialogs/katedialogs.cpp:609 +#: dialogs/katedialogs.cpp:743 dialogs/katedialogs.cpp:1026 +#: vimode/config/configwidget.ui:29 +#, kde-format +msgid "General" +msgstr "Obecné" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoCompletionEnabled) +#: dialogs/completionconfigtab.ui:35 +#, kde-format +msgid "Enable &auto completion" +msgstr "Povolit &automatické doplňování" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoSelectFirstEntry) +#: dialogs/completionconfigtab.ui:42 +#, kde-format +msgid "Auto select &first completion entry" +msgstr "Automaticky vybrat &první položku pro doplnění" + +#. i18n: ectx: property (text), widget (QCheckBox, chkTabCompletion) +#: dialogs/completionconfigtab.ui:49 +#, kde-format +msgid "Cycle through the list of completions using Tab / Shift+Tab" +msgstr "Procházet seznam doplňování pomocí Tab / Shift+Tab" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkEnterCompletion) +#: dialogs/completionconfigtab.ui:56 +#, kde-format +msgid "" +"Pressing enter will insert the text of selected completion item into the " +"editor. If disabled, Tab key or double-click can still be used to trigger " +"completion." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkEnterCompletion) +#: dialogs/completionconfigtab.ui:59 +#, kde-format +msgid "Use Enter key to insert selected completion" +msgstr "Použijte klávesu Enter pro vložení vybraného dokončení" + +#. i18n: ectx: property (title), widget (QGroupBox, gbWordCompletion) +#: dialogs/completionconfigtab.ui:69 +#, kde-format +msgid "A&uto word completion" +msgstr "A&utomatické doplnění slov" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/completionconfigtab.ui:83 +#, kde-format +msgid "Minimal word length to complete:" +msgstr "Minimální délka doplňovaného slova:" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, removeTail) +#: dialogs/completionconfigtab.ui:111 +#, kde-format +msgid "Remove tail of a previous word when completion item chosen from a list" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, removeTail) +#: dialogs/completionconfigtab.ui:114 +#, kde-format +msgid "Remove tail on complete" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/completionconfigtab.ui:121 +#, kde-format +msgid "" +"Word completion provides suggestions based on the words found in the document" +msgstr "" +"Doplňování slov poskytuje návrhy slov podle slov nalezených v dokumentu" + +#. i18n: ectx: property (title), widget (QGroupBox, gbKeywordCompletion) +#: dialogs/completionconfigtab.ui:134 +#, kde-format +msgid "&Keyword completion" +msgstr "Doplňování &klíčových slov" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/completionconfigtab.ui:143 +#, kde-format +msgid "" +"Keyword completion provides suggestions based on the keywords which exist in " +"the document's language." +msgstr "" +"Doplňování klíčových slov poskytuje návrhy klíčových slov která existují v " +"jazyce dokumentu." + +#. i18n: ectx: property (title), widget (QGroupBox, gbShowDoc) +#: dialogs/completionconfigtab.ui:156 +#, kde-format +msgid "Documentation with completion" +msgstr "Dokumentace s doplněním" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/completionconfigtab.ui:165 +#, kde-format +msgid "" +"Show documentation beside completion box. If disabled, documentation can be " +"shown by pressing Alt key." +msgstr "" +"Zobrazit dokumentaci vedle doplňovací nabídky. Pokud vypnuto, dokumentaci " +"lze zobrazit stiskem klávesy Alt." + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/editconfigwidget.ui:22 +#, kde-format +msgid "Word wrap:" +msgstr "Zalamování slov:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkStaticWordWrap) +#: dialogs/editconfigwidget.ui:29 +#, kde-format +msgid "" +"

Automatically start a new line of text when the current line exceeds the " +"length specified by the Wrap words at: option.

This option does " +"not wrap existing lines of text - use the Apply Static Word Wrap " +"option in the Tools menu for that purpose.

If you want lines to " +"be visually wrapped instead, according to the width of the view, " +"enable Dynamic Word Wrap in the Appearance config page.

" +msgstr "" +"

Automaticky začne další řádek textu, překročí-li délka aktuálního řádku " +"délku zadanou volbou Zalomit řádky na sloupci:.

Tato volba " +"nezalamuje již existující řádky textu - k tomu slouží volba Zalomit řádky " +"napevno v nabídce Nástroje.

Pokud si přejete řádky pouze " +"vizuálně zalomit dle současné šíře náhledu, povolte Pohyblivé " +"zalamování řádků na stránce nastavení Vzhled.

" + +#. i18n: ectx: property (text), widget (QCheckBox, chkStaticWordWrap) +#: dialogs/editconfigwidget.ui:32 +#, kde-format +msgid "Wrap &words at a fixed column" +msgstr "Zalamovat slov&a na pevném sloupci" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowStaticWordWrapMarker) +#: dialogs/editconfigwidget.ui:39 +#, kde-format +msgid "" +"

If this option is checked, a vertical line will be drawn at the word wrap " +"column as defined in the Editing properties.

" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowStaticWordWrapMarker) +#: dialogs/editconfigwidget.ui:42 +#, kde-format +msgid "&Draw vertical line at the word wrap column" +msgstr "Na&kreslit svislou čáru v místě slupce pro zalomení slova" + +#. i18n: ectx: property (text), widget (QLabel, lblWordWrap) +#: dialogs/editconfigwidget.ui:49 +#, kde-format +msgid "Wra&p words at:" +msgstr "&Zalamovat slova na:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbWordWrap) +#: dialogs/editconfigwidget.ui:59 +#, kde-format +msgid "" +"If the Word Wrap option is selected this entry determines the length (in " +"characters) at which the editor will automatically start a new line." +msgstr "" +"Je-li zvoleno zalamování řádků, pak toto pole určuje délku řádku (ve " +"znacích), po kdy bude editor automaticky začínat nový řádek." + +#. i18n: ectx: property (text), widget (QLabel, lblInputMode) +#: dialogs/editconfigwidget.ui:91 +#, kde-format +msgid "Default input mode:" +msgstr "Výchozí vstupní režim:" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/editconfigwidget.ui:120 +#, kde-format +msgid "Brackets:" +msgstr "Závorky:" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoBrackets) +#: dialogs/editconfigwidget.ui:127 +#, kde-format +msgid "Automatically close brackets when opening bracket is typed" +msgstr "Automaticky zavírat závorky pokud je napsána otevírací závorka" + +#. i18n: ectx: property (whatsThis), widget (QLabel, lbEncloseSelection) +#: dialogs/editconfigwidget.ui:140 +#, kde-format +msgid "" +"When some text is selected these chars will be added on both its sides in a " +"way \"Auto Bracket\" do" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lbEncloseSelection) +#: dialogs/editconfigwidget.ui:143 +#, kde-format +msgid "Enclosing characters:" +msgstr "Uzavírací znaky:" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/editconfigwidget.ui:166 +#, kde-format +msgid "Copy and paste:" +msgstr "Kopírovat a vložit:" + +#. i18n: ectx: property (text), widget (QCheckBox, chkTextDragAndDrop) +#: dialogs/editconfigwidget.ui:173 +#, kde-format +msgid "Move selected text when dragged" +msgstr "Přesunout vybraný text při přetažení" + +#. i18n: ectx: property (text), widget (QCheckBox, chkSmartCopyCut) +#: dialogs/editconfigwidget.ui:180 +#, kde-format +msgid "Copy/cut the current line if invoked without any text selected" +msgstr "" +"Kopírovat/vyjmout aktuální řádek pokud zavoláno bez toho, že by byl vyznačen " +"nějaký text" + +#. i18n: ectx: property (text), widget (QCheckBox, chkMousePasteAtCursorPosition) +#: dialogs/editconfigwidget.ui:187 +#, kde-format +msgid "Don't move the text cursor when pasting by mouse" +msgstr "Nehýbat kurzorem při vkládání myší" + +#. i18n: ectx: property (text), widget (QLabel, lblClipboardHistoryEntries) +#: dialogs/editconfigwidget.ui:194 +#, kde-format +msgid "Max Clipboard History Entries:" +msgstr "Max záznamů v historii schránky:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbClipboardHistoryEntries) +#: dialogs/editconfigwidget.ui:204 +#, kde-format +msgid "This determines the number of entries to keep in the clipboard history" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblBracketHelp) +#: dialogs/editconfigwidget.ui:226 +#, kde-format +msgid "" +"When you type these characters while text is selected, they will surround " +"the selected text instead of replacing it." +msgstr "" +"Pokud napíšete tyto znaky zatímco je text vybrán, obklopí daný text namísto " +"jeho nahrazení." + +#. i18n: ectx: property (text), widget (QCheckBox, chkAccessibility) +#: dialogs/editconfigwidget.ui:252 +#, kde-format +msgid "Enable accessibility notifications" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/editconfigwidget.ui:259 +#, kde-format +msgid "Accessibility:" +msgstr "Zpřístupnění:" + +#. i18n: ectx: property (text), widget (QLabel, lblFiletype) +#: dialogs/filetypeconfigwidget.ui:14 +#, kde-format +msgid "&Filetype:" +msgstr "Typ sou&boru:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbFiletypes) +#: dialogs/filetypeconfigwidget.ui:24 +#, kde-format +msgid "Select the filetype you want to change." +msgstr "Vyberte typ souboru, který si přejete změnit." + +#. i18n: ectx: property (whatsThis), widget (QPushButton, btnNew) +#: dialogs/filetypeconfigwidget.ui:31 +#, kde-format +msgid "Create a new file type." +msgstr "Vytvořit nový typ souboru." + +#. i18n: ectx: property (text), widget (QPushButton, btnNew) +#: dialogs/filetypeconfigwidget.ui:34 +#, kde-format +msgid "&New" +msgstr "&Nový" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, btnDelete) +#: dialogs/filetypeconfigwidget.ui:41 +#, kde-format +msgid "Delete the current file type." +msgstr "Smazat současný typ souboru." + +#. i18n: ectx: property (text), widget (QPushButton, btnDelete) +#: dialogs/filetypeconfigwidget.ui:44 syntax/katethemeconfig.cpp:1132 +#, kde-format +msgid "&Delete" +msgstr "&Smazat" + +#. i18n: ectx: property (title), widget (QGroupBox, gbProperties) +#: dialogs/filetypeconfigwidget.ui:66 mode/katemodeconfigpage.cpp:272 +#, kde-format +msgid "Properties" +msgstr "Vlastnosti" + +#. i18n: ectx: property (text), widget (QLabel, lblName) +#: dialogs/filetypeconfigwidget.ui:72 +#, kde-format +msgid "&Name:" +msgstr "&Název:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtName) +#: dialogs/filetypeconfigwidget.ui:82 +#, kde-format +msgid "" +"The name of the filetype will be the text of the corresponding menu item." +msgstr "Název typu souboru bude tvořit text odpovídající položky nabídky." + +#. i18n: ectx: property (text), widget (QLabel, lblSection) +#: dialogs/filetypeconfigwidget.ui:89 +#, kde-format +msgid "&Section:" +msgstr "&Sekce:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtSection) +#: dialogs/filetypeconfigwidget.ui:99 +#, kde-format +msgid "The section name is used to organize the file types in menus." +msgstr "Jméno sekce je použito pro organizaci typů souborů v nabídkách." + +#. i18n: ectx: property (text), widget (QLabel, lblVariables) +#: dialogs/filetypeconfigwidget.ui:106 +#, kde-format +msgid "&Variables:" +msgstr "P&roměnné:" + +#. i18n: ectx: property (whatsThis), widget (VariableLineEdit, edtVariables) +#: dialogs/filetypeconfigwidget.ui:116 +#, kde-format +msgid "" +"

This string allows to configure Kate's settings for the files selected by " +"this mimetype using Kate variables. Almost any configuration option can be " +"set, such as highlight, indent-mode, encoding, etc.

For a full list of " +"known variables, see the manual.

" +msgstr "" +"

Tento řetězec umožňuje nadefinovat nastavení Kate pro typ souborů tohoto " +"typu MIME za použití proměnných Kate. Mohou být zadány téměř všechny " +"možnosti konfigurace jako je například zvýraznění, režim odsazení, kódování " +"a jiné.

Podívejte se do příručky na kompletní seznam proměnných.

" + +#. i18n: ectx: property (text), widget (QLabel, lblHl) +#: dialogs/filetypeconfigwidget.ui:123 +#, kde-format +msgid "&Highlighting:" +msgstr "Z&výraznění:" + +#. i18n: ectx: property (text), widget (QLabel, lblIndenter) +#: dialogs/filetypeconfigwidget.ui:136 +#, kde-format +msgid "&Indentation mode:" +msgstr "Rež&im odsazování:" + +#. i18n: ectx: property (text), widget (QLabel, lblExtensions) +#: dialogs/filetypeconfigwidget.ui:149 +#, kde-format +msgid "File e&xtensions:" +msgstr "Přípon&y souboru:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtFileExtensions) +#: dialogs/filetypeconfigwidget.ui:159 +#, kde-format +msgid "" +"The wildcards mask allows to select files by filename. A typical mask uses " +"an asterisk and the file extension, for example *.txt; *.text. " +"The string is a semicolon-separated list of masks." +msgstr "" +"Zástupné znaky umožňují výběr souborů dle jejich názvu. Typická maska " +"obsahuje hvězdičku a příponu souboru, například *.txt; *.text. " +"Řetězec vzoru je seznam masek oddělených středníkem." + +#. i18n: ectx: property (text), widget (QLabel, lblMimeTypes) +#: dialogs/filetypeconfigwidget.ui:166 +#, kde-format +msgid "MIME &types:" +msgstr "&Typy MIME:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtMimeTypes) +#: dialogs/filetypeconfigwidget.ui:181 +#, kde-format +msgid "" +"The mime type mask allows to select files by mimetype. The string is a " +"semicolon-separated list of mimetypes, for example text/plain; text/" +"english." +msgstr "" +"Maska typu MIME umožňuje výběr souboru dle typu MIME. Řetězec vzoru je " +"seznam masek oddělených středníkem, například text/plain; text/" +"english." + +#. i18n: ectx: property (whatsThis), widget (QToolButton, btnMimeTypes) +#: dialogs/filetypeconfigwidget.ui:188 +#, kde-format +msgid "Displays a wizard that helps you easily select mimetypes." +msgstr "Zobrazí průvodce, který vám pomůže vybrat typy MIME." + +#. i18n: ectx: property (text), widget (QLabel, lblPriority) +#: dialogs/filetypeconfigwidget.ui:197 +#, kde-format +msgid "P&riority:" +msgstr "P&riorita:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbPriority) +#: dialogs/filetypeconfigwidget.ui:207 +#, kde-format +msgid "" +"Sets priority for this file type. If more than one file type selects the " +"same file, the one with the highest priority will be used." +msgstr "" +"Nastaví prioritu pro tento typ souboru. Pokud bude tentýž soubor vybrán více " +"typy souborů, bude použit typ s nejvyšší prioritou." + +#. i18n: ectx: property (text), widget (QLabel, lblMode) +#: dialogs/indentationconfigwidget.ui:43 +#, kde-format +msgid "Default indentation mode:" +msgstr "Výchozí režim odsazení:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbMode) +#: dialogs/indentationconfigwidget.ui:53 +#, kde-format +msgid "" +"This is a list of available indentation modes. The specified indentation " +"mode will be used for all new documents. Be aware that it is also possible " +"to set the indentation mode with document variables, modes or a .kateconfig " +"file." +msgstr "" +"Toto je seznam dostupných režimů odsazování. Zadaný režim odsazení bude " +"použit pro všechny nové dokumenty. Všimněte si, že režim odsazení lze taktéž " +"nastavit pomocí proměnných nebo režimů dokumentu, a taktéž pomocí souboru ." +"kateconfig." + +#. i18n: ectx: property (title), widget (QGroupBox, gbIndentationMode) +#: dialogs/indentationconfigwidget.ui:75 +#, kde-format +msgid "Indent using" +msgstr "Odsazovat pomocí" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbIndentWidth) +#: dialogs/indentationconfigwidget.ui:81 +#, kde-format +msgid "" +"The indentation width is the number of spaces which is used to indent a " +"line. If the option Insert spaces instead of tabulators in the " +"section Editing is disabled, a Tab character is inserted if " +"the indentation is divisible by the tab width." +msgstr "" +"Šířka odsazení udává počet mezer použitých pro odsazení řádky. Pokud je v " +"sekci Editace vybrán jako znak odsazování tabulátor, bude k odsazení " +"použit znak Tab pokud je šířka odsazení dělitelná šíří tabulátoru." + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentWithSpaces) +#: dialogs/indentationconfigwidget.ui:97 +#, kde-format +msgid "&Spaces" +msgstr "&Mezer" + +#. i18n: ectx: property (text), widget (QLabel, lblIndentWidth) +#: dialogs/indentationconfigwidget.ui:104 +#, kde-format +msgid "&Indentation width:" +msgstr "&Odsadit pomocí:" + +#. i18n: ectx: property (text), widget (QLabel, lblTabWidth) +#: dialogs/indentationconfigwidget.ui:114 +#, kde-format +msgid "Tab wi&dth:" +msgstr "Šířka ta&bulátoru:" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentWithTabs) +#: dialogs/indentationconfigwidget.ui:153 +#, kde-format +msgid "&Tabulators" +msgstr "&Tabulátorů" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentMixed) +#: dialogs/indentationconfigwidget.ui:160 +#, kde-format +msgid "Tabulators &and Spaces" +msgstr "Tabulátory &a mezery" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoDetectIndent) +#: dialogs/indentationconfigwidget.ui:167 +#, kde-format +msgid "Automatically detect file indentation" +msgstr "Automaticky detekovat odsazení textu" + +#. i18n: ectx: property (title), widget (QGroupBox, gbProperties) +#: dialogs/indentationconfigwidget.ui:177 +#, kde-format +msgid "Indentation Properties" +msgstr "Pravidla odsazování" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkKeepExtraSpaces) +#: dialogs/indentationconfigwidget.ui:183 +#, kde-format +msgid "" +"If this option is disabled, changing the indentation level aligns a line to " +"a multiple of the width specified in Indentation width." +msgstr "" +"Pokud je volba zakázána, změna úrovně odsazení zarovná řádek na násobek " +"šířky zadané v poli Šířka odsazení" + +#. i18n: ectx: property (text), widget (QCheckBox, chkKeepExtraSpaces) +#: dialogs/indentationconfigwidget.ui:186 +#, kde-format +msgid "&Keep extra spaces" +msgstr "&Uchovávat mezery navíc" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkIndentPaste) +#: dialogs/indentationconfigwidget.ui:193 +#, kde-format +msgid "" +"If this option is selected, pasted code from the clipboard is indented. " +"Triggering the undo-action removes the indentation." +msgstr "" +"Pokud je zatrženo, je vložený kód ze schránky odsazen. Vyvolání akce " +"Zpět odsazení odstraní." + +#. i18n: ectx: property (text), widget (QCheckBox, chkIndentPaste) +#: dialogs/indentationconfigwidget.ui:196 +#, kde-format +msgid "Adjust indentation of code &pasted from the clipboard" +msgstr "Upra&vit odsazení kódu vloženého ze schránky" + +#. i18n: ectx: property (title), widget (QGroupBox, gbKeys) +#: dialogs/indentationconfigwidget.ui:206 +#, kde-format +msgid "Indentation Actions" +msgstr "Činnosti odsazování" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackspaceUnindents) +#: dialogs/indentationconfigwidget.ui:212 +#, kde-format +msgid "" +"If this option is selected, the Backspace key decreases the " +"indentation level if the cursor is located in the leading blank space of a " +"line." +msgstr "" +"Pokud je zatrženo, sníží klávesa Backspace úroveň odsazení (pokud je " +"kurzor umístěn v úvodních mezerách)." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackspaceUnindents) +#: dialogs/indentationconfigwidget.ui:215 +#, kde-format +msgid "&Backspace key in leading blank space unindents" +msgstr "Klávesa &Backspace zpětně odsazuje v úvodních mezerách" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/indentationconfigwidget.ui:225 +#, kde-format +msgid "" +"\n" +"

Tab key action (if no selection exists) Tab " +"to align the current line in the current code block like in Emacs, make " +"Tab a shortcut to the action Format Indentation." +"\">More ...

" +msgstr "" +"\n" +"

Činnost klávesy Tab (pokud není nic vybráno) Tab zarovnával současný řádek v současném bloku kódu jako v Emacs, " +"nastavte Tab jako zkratku na činnost Odsazení formátu." +"\">Více ...

" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabAdvances) +#: dialogs/indentationconfigwidget.ui:276 +#, kde-format +msgid "" +"If this option is selected, the Tab key always inserts white space so " +"that the next tab position is reached. If the option Insert spaces " +"instead of tabulators in the section Editing is enabled, spaces " +"are inserted; otherwise, a single tabulator is inserted." +msgstr "" +"Pokud je zatrženo, klávesa Tab vždy vloží bílé mezery až do " +"následující pozice dosažitelné tabulátorem. Pokud jsou v sekci Úpravy " +"vybrány Mezery, budou vloženy mezery; v opačném případě bude vložen " +"znak tabulátoru." + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabAdvances) +#: dialogs/indentationconfigwidget.ui:279 +#, kde-format +msgid "Always advance to the &next tab position" +msgstr "Vždy se posunout na pozici &následujícího tabulátoru" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabIndents) +#: dialogs/indentationconfigwidget.ui:286 +#, kde-format +msgid "" +"If this option is selected, the Tab key always indents the current " +"line by the number of character positions specified in Indentation width." +msgstr "" +"Pokud je zatrženo, klávesa Tab vždy odsadí současný řádek o počet " +"znaků zadaných v poli Šířka odsazení." + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabIndents) +#: dialogs/indentationconfigwidget.ui:289 +#, kde-format +msgid "Always increase indentation &level" +msgstr "Vždy zvýšit ú&roveň odsazení" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabSmart) +#: dialogs/indentationconfigwidget.ui:296 +#, kde-format +msgid "" +"If this option is selected, the Tab key either indents the current " +"line or advances to the next tab position.

If the insertion point is at " +"or before the first non-space character in the line, or if there is a " +"selection, the current line is indented by the number of character positions " +"specified in Indentation width.

If the insertion point is located " +"after the first non-space character in the line and there is no selection, " +"white space is inserted so that the next tab position is reached: if the " +"option Insert spaces instead of tabulators in the section Editing is enabled, spaces are inserted; otherwise, a single tabulator is " +"inserted." +msgstr "" +"Pokud je zatrženo, klávesa Tab odsadí současný řádek nebo posune na " +"následující pozici tabulátoru.

Pokud je kurzor na nebo před prvním ne-" +"mezerovém znaku na řádce, nebo je ve výběru, bude současný řádek odsazen " +"počtem znaků zadaným ve volbě Šířka odsazení.

Pokud je kurzor za " +"prvním ne-mezerovém znaku na řádce a řádek není součástí výběru, je vložen " +"bílý znak a je dosaženo následující pozice tabulátoru: Pokud jsou v sekci " +"Úpravy vybrány Mezery, budou vloženy mezery; v opačném případě " +"bude vložen znak tabulátoru." + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabSmart) +#: dialogs/indentationconfigwidget.ui:299 +#, kde-format +msgid "Increase indentation level if in l&eading blank space" +msgstr "Zvýšit úroveň odsazení v ú&vodních mezerách" + +#: dialogs/katedialogs.cpp:185 dialogs/katedialogs.cpp:187 +#, kde-format +msgid "%v character" +msgid_plural "%v characters" +msgstr[0] "%v znak" +msgstr[1] "%v znaky" +msgstr[2] "%v znaků" + +#: dialogs/katedialogs.cpp:211 +#, kde-format +msgid "Indentation" +msgstr "Odsazování" + +#: dialogs/katedialogs.cpp:295 +#, kde-format +msgid "Auto Completion" +msgstr "Doplňování" + +#: dialogs/katedialogs.cpp:362 +#, kde-format +msgid "Spellcheck" +msgstr "Kontrola pravopisu" + +#: dialogs/katedialogs.cpp:410 dialogs/katedialogs.cpp:417 +#, kde-format +msgid "Alt" +msgstr "Alt" + +#: dialogs/katedialogs.cpp:411 dialogs/katedialogs.cpp:419 +#, kde-format +msgid "Ctrl" +msgstr "Ctrl" + +#: dialogs/katedialogs.cpp:412 +#, kde-format +msgid "Meta" +msgstr "Meta" + +#: dialogs/katedialogs.cpp:413 dialogs/katedialogs.cpp:421 +#, kde-format +msgid "Ctrl + Alt" +msgstr "Ctrl + Alt" + +#: dialogs/katedialogs.cpp:414 +#, kde-format +msgid "Meta + Alt" +msgstr "Meta + Alt" + +#: dialogs/katedialogs.cpp:415 +#, kde-format +msgid "Ctrl + Meta" +msgstr "Ctrl + Meta" + +#: dialogs/katedialogs.cpp:418 +#, kde-format +msgid "Cmd" +msgstr "Cmd" + +#: dialogs/katedialogs.cpp:420 +#, kde-format +msgid "Cmd + Alt" +msgstr "" + +#: dialogs/katedialogs.cpp:422 +#, kde-format +msgid "Cmd + Ctrl" +msgstr "" + +#: dialogs/katedialogs.cpp:480 +#, kde-format +msgid "Text Navigation" +msgstr "Pohyb v textu" + +#: dialogs/katedialogs.cpp:582 +#, kde-format +msgctxt "Wrap words at (value is at 20 or larger)" +msgid "%v character" +msgid_plural "%v characters" +msgstr[0] "%v znak" +msgstr[1] "%v znaky" +msgstr[2] "%v znaků" + +#: dialogs/katedialogs.cpp:587 +#, kde-format +msgid "Feature is not active" +msgstr "Vlastnost není aktivní" + +#: dialogs/katedialogs.cpp:589 +#, kde-format +msgid "Disable Feature" +msgstr "Zakázat vlastnost" + +#: dialogs/katedialogs.cpp:591 +#, kde-format +msgid "May be handy with Markdown" +msgstr "" + +#: dialogs/katedialogs.cpp:593 +#, kde-format +msgid "Mirror characters, similar but not exactly like auto brackets" +msgstr "" + +#: dialogs/katedialogs.cpp:595 +#, kde-format +msgid "Non letter character" +msgstr "" + +#: dialogs/katedialogs.cpp:712 +#, kde-format +msgid "Editing" +msgstr "Úpravy" + +#: dialogs/katedialogs.cpp:717 +#, kde-format +msgid "Editing Options" +msgstr "Možnosti editace" + +#: dialogs/katedialogs.cpp:751 +#, kde-format +msgid "Statusbar" +msgstr "Stavový panel" + +#: dialogs/katedialogs.cpp:753 +#, kde-format +msgid "Off" +msgstr "Vypnout" + +#: dialogs/katedialogs.cpp:754 +#, kde-format +msgid "Follow Line Numbers" +msgstr "Následovat čísla řádků" + +#: dialogs/katedialogs.cpp:945 dialogs/katedialogs.cpp:950 +#, kde-format +msgid "Appearance" +msgstr "Vzhled" + +#: dialogs/katedialogs.cpp:986 +#, kde-format +msgid "" +"%1 backs up unsaved files to \"swap files.\" Swap files allow %1 to recover " +"your work in the case of a system crash. Disabling swap files may cause data " +"loss in case of a system crash." +msgstr "" + +#: dialogs/katedialogs.cpp:1027 +#, kde-format +msgid "Advanced" +msgstr "Pokročilé" + +#: dialogs/katedialogs.cpp:1092 +#, kde-format +msgid "" +"You did not provide a backup suffix or prefix. Using default suffix: '~'" +msgstr "" +"Neposkytli jste příponu ani předponu pro zálohu. Používám výchozí příponu: " +"'~'" + +#: dialogs/katedialogs.cpp:1092 +#, kde-format +msgid "No Backup Suffix or Prefix" +msgstr "Žádná přípona ani předpona zálohy" + +#: dialogs/katedialogs.cpp:1227 +#, kde-format +msgid "Open/Save" +msgstr "Otevřít/Uložit" + +#: dialogs/katedialogs.cpp:1232 +#, kde-format +msgid "File Opening & Saving" +msgstr "Otevírání a ukládání souborů" + +#: dialogs/katedialogs.cpp:1255 +#, kde-format +msgid "&Line:" +msgstr "Čá&ra:" + +#: dialogs/katedialogs.cpp:1256 +#, kde-format +msgid "Go to line number from clipboard" +msgstr "" + +#: dialogs/katedialogs.cpp:1267 +#, kde-format +msgid "Go to" +msgstr "Přejít na" + +#: dialogs/katedialogs.cpp:1347 +#, kde-format +msgid "No valid line number found in clipboard" +msgstr "" + +#: dialogs/katedialogs.cpp:1411 +#, kde-format +msgid "Dictionary:" +msgstr "Slovník:" + +#: dialogs/katedialogs.cpp:1463 +#, kde-format +msgid "Enable Auto Reload" +msgstr "Povolit automatické opětovné načtení" + +#: dialogs/katedialogs.cpp:1466 +#, kde-format +msgid "" +"Reloads and will automatically reload without warning about disk changes " +"from now until you close either the tab or window." +msgstr "" + +#: dialogs/katedialogs.cpp:1471 +#, kde-format +msgid "View &Difference" +msgstr "Zobrazit roz&díl" + +#: dialogs/katedialogs.cpp:1473 +#, kde-format +msgid "Shows a diff of the changes." +msgstr "" + +#: dialogs/katedialogs.cpp:1478 +#, kde-format +msgid "&Reload" +msgstr "Znovu načís&t" + +#: dialogs/katedialogs.cpp:1480 +#, kde-format +msgid "Reloads the file from disk. Unsaved changes will be lost." +msgstr "Znovu načte soubor z disku. Neuložené změny budou ztraceny." + +#: dialogs/katedialogs.cpp:1484 +#, kde-format +msgctxt "@action:button closes the opened file" +msgid "&Close File" +msgstr "&Zavřít soubor" + +#: dialogs/katedialogs.cpp:1486 +#, kde-format +msgid "Closes the file, discarding its content." +msgstr "" + +#: dialogs/katedialogs.cpp:1490 +#, kde-format +msgctxt "@action" +msgid "&Save As…" +msgstr "Uložit &jako…" + +#: dialogs/katedialogs.cpp:1492 +#, kde-format +msgid "Lets you select a location and save the file again." +msgstr "Umožní vám vybrat umístění a uložit soubor znovu." + +#. i18n: ectx: property (text), widget (QPushButton, m_skipBtn) +#: dialogs/katedialogs.cpp:1497 spellcheck/spellcheckbar.ui:143 +#, kde-format +msgid "&Ignore" +msgstr "&Ignorovat" + +#: dialogs/katedialogs.cpp:1498 +#, kde-format +msgid "Ignores the changes on disk without any action." +msgstr "Ignoruje změny na disku bez jakékoliv činnosti." + +#: dialogs/katedialogs.cpp:1567 swapfile/kateswapdiffcreator.cpp:131 +#, kde-format +msgid "" +"The diff command failed. Please make sure that diff(1) is installed and in " +"your PATH." +msgstr "" +"Spuštění příkazu 'diff' selhalo. Ujistěte se, že je nainstalován a v " +"proměnné PATH." + +#: dialogs/katedialogs.cpp:1569 swapfile/kateswapdiffcreator.cpp:89 +#: swapfile/kateswapdiffcreator.cpp:99 swapfile/kateswapdiffcreator.cpp:133 +#, kde-format +msgid "Error Creating Diff" +msgstr "Chyba při vytvoření rozdílu" + +#: dialogs/katedialogs.cpp:1576 swapfile/kateswapdiffcreator.cpp:140 +#, kde-format +msgid "The files are identical." +msgstr "Soubory jsou stejné." + +#: dialogs/katedialogs.cpp:1576 swapfile/kateswapdiffcreator.cpp:140 +#, kde-format +msgid "Diff Output" +msgstr "Výstup z diffu" + +#. i18n: ectx: property (title), widget (QGroupBox, gbCursorMovement) +#: dialogs/navigationconfigwidget.ui:29 +#, kde-format +msgid "Text Cursor Movement" +msgstr "Pohyb kurzoru v textu" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkSmartHome) +#: dialogs/navigationconfigwidget.ui:35 +#, kde-format +msgid "" +"When selected, pressing the home key will cause the cursor to skip " +"whitespace and go to the start of a line's text. The same applies for the " +"end key." +msgstr "" +"Je-li vybráno, bude kurzor po stisknutí klávesy Home přeskakovat bílé znaky " +"a přecházet na začátek textu řádky. Totéž platí pro klávesu End." + +#. i18n: ectx: property (text), widget (QCheckBox, chkSmartHome) +#: dialogs/navigationconfigwidget.ui:38 +#, kde-format +msgid "Smart ho&me and smart end" +msgstr "Chytrá klávesa Ho&me a End" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkPagingMovesCursor) +#: dialogs/navigationconfigwidget.ui:45 +#, kde-format +msgid "" +"Selects whether the PageUp and PageDown keys should alter the vertical " +"position of the cursor relative to the top of the view." +msgstr "" +"Zvolí, jestli klávesy PageUp a PageDown mění svislou pozici kurzoru vzhledem " +"k prvnímu řádku pohledu." + +#. i18n: ectx: property (text), widget (QCheckBox, chkPagingMovesCursor) +#: dialogs/navigationconfigwidget.ui:48 +#, kde-format +msgid "&PageUp/PageDown moves cursor" +msgstr "&PageUp/PageDown přesouvá kurzor" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkCamelCursor) +#: dialogs/navigationconfigwidget.ui:55 +#, kde-format +msgid "" +"Selects whether cursor stops at camel case humps and underscores within a " +"word." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkCamelCursor) +#: dialogs/navigationconfigwidget.ui:58 +#, kde-format +msgid "" +"Stop at 'camelCase' and 'snake_case' subwords when moving the cursor by word" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:79 +#, kde-format +msgid "&Autocenter cursor:" +msgstr "&Automaticky centrovat kurzor:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:89 +#, kde-format +msgid "" +"Sets the number of lines to maintain visible above and below the cursor when " +"possible." +msgstr "" +"Nastaví počet řádků viditelných nad a pod kurzorem, kdykoliv to bude možné." + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, spbSwapFileSync) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:92 dialogs/opensaveconfigadvwidget.ui:120 +#: dialogs/opensaveconfigadvwidget.ui:168 +#, kde-format +msgid "Disabled" +msgstr "Vypnuto" + +#. i18n: ectx: property (suffix), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:95 +#, kde-format +msgid " lines" +msgstr " řádky" + +#. i18n: ectx: property (title), widget (QGroupBox, cbNavigationMisc) +#: dialogs/navigationconfigwidget.ui:120 +#, kde-format +msgid "Misc" +msgstr "Různé" + +#. i18n: ectx: property (text), widget (QLabel, lblTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:128 +#, kde-format +msgid "Text selection mode:" +msgstr "Režim výběru textu:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:139 inputmode/katenormalinputmode.cpp:64 +#: mode/katemodemanager.cpp:162 +#, kde-format +msgid "Normal" +msgstr "Normální" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:144 +#, kde-format +msgid "Persistent" +msgstr "Trvalý" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollPastEnd) +#: dialogs/navigationconfigwidget.ui:167 +#, kde-format +msgid "Allow scrolling past the end of the document" +msgstr "Povolit rolování za konec dokumentu" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackspaceRemoveComposed) +#: dialogs/navigationconfigwidget.ui:174 +#, kde-format +msgid "" +"When selected, composed characters are removed with their diacritics instead " +"of only removing the base character. This is useful for Indic locales." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackspaceRemoveComposed) +#: dialogs/navigationconfigwidget.ui:177 +#, kde-format +msgid "Backspace key removes character’s base with its diacritics" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbCycleBookmarks) +#: dialogs/navigationconfigwidget.ui:184 +#, kde-format +msgid "Allow to cycle through bookmarks" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbMulticursor) +#: dialogs/navigationconfigwidget.ui:194 +#, kde-format +msgid "Multicursor" +msgstr "Mnohonásobné kurzory" + +#. i18n: ectx: property (text), widget (QLabel, lblMulticursormodifiers) +#: dialogs/navigationconfigwidget.ui:200 +#, kde-format +msgid "Multiple Cursor Modifiers" +msgstr "Modifikátory mnohonásobných kurzorů" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoReloadVersionControl) +#: dialogs/opensaveconfigadvwidget.ui:34 +#, kde-format +msgid "Auto reload files in version control" +msgstr "Automaticky opětovně načíst soubory ve správě verzí" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoReloadOnExternalChanges) +#: dialogs/opensaveconfigadvwidget.ui:41 +#, kde-format +msgid "Auto reload files on external changes" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/opensaveconfigadvwidget.ui:48 +#, kde-format +msgid "Write a backup file on save for:" +msgstr "Vytvořit zálohu při uložení pro:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackupLocalFiles) +#: dialogs/opensaveconfigadvwidget.ui:55 +#, kde-format +msgid "" +"If this option is enabled, backups for local files will be created when " +"saving." +msgstr "Zaškrtněte, pokud si přejete zálohovat místní soubory při ukládání." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackupLocalFiles) +#: dialogs/opensaveconfigadvwidget.ui:58 +#, kde-format +msgid "&Local files" +msgstr "&Místní soubory" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackupRemoteFiles) +#: dialogs/opensaveconfigadvwidget.ui:65 +#, kde-format +msgid "" +"If this option is enabled, backups for remote files will be created when " +"saving." +msgstr "Zaškrtněte, pokud si přejete zálohovat vzdálené soubory při ukládání." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackupRemoteFiles) +#: dialogs/opensaveconfigadvwidget.ui:68 +#, kde-format +msgid "&Remote files" +msgstr "Vzdálené soubo&ry" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/opensaveconfigadvwidget.ui:75 +#, kde-format +msgid "Prefix for backup files:" +msgstr "Předpona souborů zálohy:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtBackupPrefix) +#: dialogs/opensaveconfigadvwidget.ui:85 +#, kde-format +msgid "Enter the prefix to prepend to the backup file names." +msgstr "Zadejte předponu, která se přidá před název souboru se zálohou." + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/opensaveconfigadvwidget.ui:92 +#, kde-format +msgid "Suffix for backup files:" +msgstr "Přípona souborů zálohy:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtBackupSuffix) +#: dialogs/opensaveconfigadvwidget.ui:102 +#, kde-format +msgid "Enter the suffix to append to the backup file names." +msgstr "Zadejte příponu, která se přidá za název souboru se zálohou." + +#. i18n: ectx: property (text), widget (QLabel, lblSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:109 +#, kde-format +msgid "Swap file mode:" +msgstr "Režim odkládacího souboru:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:125 +#, kde-format +msgid "Enabled, Store In Default Directory" +msgstr "Povoleno. Ukládat ve výchozím adresáři" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:130 +#, kde-format +msgid "Enabled, Store In Custom Directory" +msgstr "Povoleno. Ukládat ve vlastním adresáři" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapDirectory) +#: dialogs/opensaveconfigadvwidget.ui:138 +#, kde-format +msgid "Store swap files in:" +msgstr "Ukládat odkládací soubory v:" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapFileSync) +#: dialogs/opensaveconfigadvwidget.ui:158 +#, kde-format +msgid "Save swap files every:" +msgstr "Uložit odkládací soubory každých:" + +#. i18n: ectx: property (suffix), widget (QSpinBox, spbSwapFileSync) +#: dialogs/opensaveconfigadvwidget.ui:171 +#, kde-format +msgid "s" +msgstr "s" + +#. i18n: ectx: property (text), widget (QLabel, lblExplanatory) +#: dialogs/opensaveconfigadvwidget.ui:196 +#, kde-format +msgid "" +"This string is located in katedialogs.cpp in KateSaveConfigTab's constructor." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkEditorConfig) +#: dialogs/opensaveconfigadvwidget.ui:209 +#, kde-format +msgid "Honor settings in .editorconfig file" +msgstr "Dodržet nastavení v souboru .editorconfig" + +#. i18n: ectx: property (text), widget (QCheckBox, chkUseFirstLineAsDocName) +#: dialogs/opensaveconfigadvwidget.ui:229 +#, kde-format +msgid "Use first line of untitled documents for document name" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbFileFormat) +#: dialogs/opensaveconfigwidget.ui:29 +#, kde-format +msgid "File Format" +msgstr "Formát souboru" + +#. i18n: ectx: property (text), widget (QLabel, lblEncoding) +#: dialogs/opensaveconfigwidget.ui:40 +#, kde-format +msgid "&Encoding:" +msgstr "&Kódování:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncoding) +#: dialogs/opensaveconfigwidget.ui:50 +#, kde-format +msgid "" +"This defines the standard encoding to use to open/save files, if not changed " +"in the open/save dialog or by using a command line option." +msgstr "" +"Tato volba definuje standardní kódování pro nahrání/uložení souboru, pokud " +"není v dialogu otevření/zavření změněno, nebo není použita volba příkazová " +"řádky." + +#. i18n: ectx: property (text), widget (QLabel, lblEncodingDetection) +#: dialogs/opensaveconfigwidget.ui:57 +#, kde-format +msgid "&Encoding detection:" +msgstr "&Detekce kódování:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncodingDetection) +#: dialogs/opensaveconfigwidget.ui:67 +#, kde-format +msgid "" +"if neither the encoding chosen as standard above, nor the encoding specified " +"in the open/save dialog, nor the encoding specified on command line match " +"the content of the file, this detection will be run." +msgstr "" +"Pokud obsahu souboru neodpovídá kódování zadané jako standardní, ani v " +"dialogu otevřít/uložit soubor nebo zadanému jako parametr příkazové řádky, " +"bude použita tato detekce." + +#. i18n: ectx: property (text), widget (QLabel, lblEncodingDetection2) +#: dialogs/opensaveconfigwidget.ui:74 +#, kde-format +msgid "&Fallback encoding:" +msgstr "&Záložní kódování:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncodingFallback) +#: dialogs/opensaveconfigwidget.ui:84 +#, kde-format +msgid "" +"This defines the fallback encoding to try for opening files if neither the " +"encoding chosen as standard above, nor the encoding specified in the open/" +"save dialog, nor the encoding specified on command line match the content of " +"the file. Before this is used, an attempt will be made to determine the " +"encoding to use by looking for a byte order mark at start of file: if one is " +"found, the right Unicode encoding will be chosen; otherwise encoding " +"detection will run, if both fail the fallback encoding will be tried." +msgstr "" +"Zde je určeno záložní kódování, které se použije, pokud kódování obsahu " +"souboru neodpovídá kódování zadanému jako standardní, ani zadanému v dialogu " +"otevřít/uložit soubor, nebo zadanému jako parametr příkazové řádky a selže-" +"li i automatická detekce. Ta nejprve hledá značku pořadí bajtů (BOM). Pokud " +"ji nalezne, použije se správné kódování Unicode. V případě neúspěchu se " +"spustí detekce kódování. Pokud neuspěje ani ta, použije se záložní kódování." + +#. i18n: ectx: property (text), widget (QLabel, lblEOL) +#: dialogs/opensaveconfigwidget.ui:91 +#, kde-format +msgid "E&nd of line:" +msgstr "Ko&nec řádku:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:102 +#, kde-format +msgid "UNIX" +msgstr "UNIX" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:107 +#, kde-format +msgid "DOS/Windows" +msgstr "DOS/Windows" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:112 +#, kde-format +msgid "Macintosh" +msgstr "Macintosh" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkDetectEOL) +#: dialogs/opensaveconfigwidget.ui:122 +#, kde-format +msgid "" +"If this option is enabled the editor will autodetect the end of line type. " +"The first found end of line type will be used for the whole file." +msgstr "" +"Pokud je zatrženo, editor spustí autodetekci typu konce řádky. První " +"nalezený konec řádky bude použit pro celý dokument." + +#. i18n: ectx: property (text), widget (QCheckBox, chkDetectEOL) +#: dialogs/opensaveconfigwidget.ui:125 +#, kde-format +msgid "A&utomatic end of line detection" +msgstr "A&utomatická detekce konce řádku" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkEnableBOM) +#: dialogs/opensaveconfigwidget.ui:132 +#, kde-format +msgid "" +"The byte order mark is a special sequence at the beginning of Unicode " +"encoded documents. It helps editors to open text documents with the correct " +"Unicode encoding. The byte order mark is not visible in the displayed " +"document." +msgstr "" +"Značka pořadí bajtů (BOM) je speciální posloupnost bajtů Unicode dokumentu. " +"Pomáhá editoru otevřít dokument ve správném Unicode kódování. Značka pořadí " +"bajtů není v otevřeném souboru viditelná." + +#. i18n: ectx: property (text), widget (QCheckBox, chkEnableBOM) +#: dialogs/opensaveconfigwidget.ui:135 +#, kde-format +msgid "Enable byte order mark (BOM)" +msgstr "Povolit značku pořadí bajtů (BOM)" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/opensaveconfigwidget.ui:142 +#, kde-format +msgid "Line length limit:" +msgstr "Limit délky řádku:" + +#. i18n: ectx: property (specialValueText), widget (QSpinBox, lineLengthLimit) +#: dialogs/opensaveconfigwidget.ui:152 +#, kde-format +msgid "Unlimited" +msgstr "Bez omezení" + +#. i18n: ectx: property (title), widget (QGroupBox, gbCleanups) +#: dialogs/opensaveconfigwidget.ui:168 +#, kde-format +msgid "Automatic Cleanups on Save" +msgstr "Automatické vyčištění při uložení" + +#. i18n: ectx: property (whatsThis), widget (QLabel, lblRemoveTrailingSpaces) +#. i18n: ectx: property (whatsThis), widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:176 dialogs/opensaveconfigwidget.ui:189 +#, kde-format +msgid "" +"Depending on the choice, trailing spaces are removed when saving a document, " +"either in the entire document or only of modified lines." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:179 +#, kde-format +msgid "Re&move trailing spaces:" +msgstr "Odstranit &mezery na konci řádku:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, spbAutoSaveInterval) +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/opensaveconfigwidget.ui:193 dialogs/opensaveconfigwidget.ui:270 +#: dialogs/textareaappearanceconfigwidget.ui:104 +#, kde-format +msgid "Never" +msgstr "Nikdy" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:198 +#, kde-format +msgid "On Modified Lines" +msgstr "Na změněných řádcích" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:203 +#, kde-format +msgid "In Entire Document" +msgstr "V celém dokumentu" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkNewLineAtEof) +#: dialogs/opensaveconfigwidget.ui:226 +#, kde-format +msgid "" +"On save, a line break is appended to the document if not already present. " +"The line break is visible after reloading the file." +msgstr "" +"Před uložením je poslední řádek souboru zakončen znakem nového řádku, pokud " +"tam ještě žádný není. Nový řádek je viditelný teprve po dalším načtení " +"souboru." + +#. i18n: ectx: property (text), widget (QCheckBox, chkNewLineAtEof) +#: dialogs/opensaveconfigwidget.ui:229 +#, kde-format +msgid "Append newline at end of file on save" +msgstr "Před uložením ukončit poslední řádek znakem nového řádku" + +#. i18n: ectx: property (title), widget (QGroupBox, gbAutoSave) +#: dialogs/opensaveconfigwidget.ui:239 +#, kde-format +msgid "Enable Auto Save (local files only)" +msgstr "Povolit automatické ukládání (pouze místní soubory)" + +#. i18n: ectx: property (text), widget (QCheckBox, cbAutoSaveOnFocus) +#: dialogs/opensaveconfigwidget.ui:254 +#, kde-format +msgid "Auto save document when the active document is losing focus" +msgstr "Automaticky uložit dokument když uživatel přepne jinam" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/opensaveconfigwidget.ui:263 +#, kde-format +msgid "Auto save interval:" +msgstr "Interval automatického ukládání:" + +#. i18n: ectx: property (suffix), widget (QSpinBox, spbAutoSaveInterval) +#: dialogs/opensaveconfigwidget.ui:273 +#, kde-format +msgid " seconds" +msgstr " sekund" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowHighlightingMode) +#: dialogs/statusbarconfigwidget.ui:19 +#, kde-format +msgid "Show highlighting mode" +msgstr "Zobrazit režim zvýrazňování" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowInputMode) +#: dialogs/statusbarconfigwidget.ui:26 +#, kde-format +msgid "Show input mode" +msgstr "Zobrazit vstupní režim" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowActiveDictionary) +#: dialogs/statusbarconfigwidget.ui:33 +#, kde-format +msgid "Show active dictionary" +msgstr "Zobrazit aktivní slovník" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowTabSetting) +#: dialogs/statusbarconfigwidget.ui:40 +#, kde-format +msgid "Show tab setting" +msgstr "Zobrazit nastavení karet" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowLineColumn) +#: dialogs/statusbarconfigwidget.ui:47 +#, kde-format +msgid "Show line column" +msgstr "Zobrazit sloupec s řádky" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowEncoding) +#: dialogs/statusbarconfigwidget.ui:54 +#, kde-format +msgid "Show File Encoding" +msgstr "Zobrazit kódování souboru" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowEOL) +#: dialogs/statusbarconfigwidget.ui:61 +#, kde-format +msgid "Show Line Ending Type" +msgstr "Zobrazit typ ukončení řádku" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/textareaappearanceconfigwidget.ui:28 +#, kde-format +msgid "Editor font:" +msgstr "Písmo pro editor:" + +#. i18n: ectx: property (text), widget (QLabel, lblLineHeight) +#: dialogs/textareaappearanceconfigwidget.ui:48 +#, kde-format +msgid "&Line Height Multiplier:" +msgstr "Ná&sobič výšky řádků:" + +#. i18n: ectx: property (toolTip), widget (QDoubleSpinBox, spbLineHeightMultiplier) +#: dialogs/textareaappearanceconfigwidget.ui:58 +#, kde-format +msgid "" +"This value will be multiplied with the font's default line height. A value " +"of 1.0 means that the default height will be used." +msgstr "" +"Tato hodnota bude vynásobena výchozí velikostí písma. Hodnota 1.0 znamená, " +"že bude použita výchozí výška." + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/textareaappearanceconfigwidget.ui:93 +#, kde-format +msgid "Show whitespace indicators:" +msgstr "Zobrazit ukazatele mezer" + +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/textareaappearanceconfigwidget.ui:109 +#, kde-format +msgid "At the end of a line" +msgstr "Na konci řádku" + +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/textareaappearanceconfigwidget.ui:114 +#, kde-format +msgid "Always" +msgstr "Vždy" + +#. i18n: ectx: property (text), widget (QLabel, lbMarkerDescription) +#: dialogs/textareaappearanceconfigwidget.ui:122 +#, kde-format +msgid "Whitespace indicator si&ze:" +msgstr "Velikost ukazatele me&zer:" + +#. i18n: ectx: property (whatsThis), widget (QSlider, sliSetMarkerSize) +#: dialogs/textareaappearanceconfigwidget.ui:138 +#, kde-format +msgid "Size of the visible highlight marker." +msgstr "Velikost viditelného značkovače zvýraznění." + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/textareaappearanceconfigwidget.ui:166 +#, kde-format +msgid "Show &tab indicators:" +msgstr "Zobrazit ukazatele &tabulátoru:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowTabs) +#: dialogs/textareaappearanceconfigwidget.ui:176 +#, kde-format +msgid "" +"The editor will display a symbol to indicate the presence of a tab in the " +"text." +msgstr "Editor bude zobrazovat symbol pro zviditelnění tabulátorů v textu." + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/textareaappearanceconfigwidget.ui:202 +#, kde-format +msgid "Bracket matching:" +msgstr "Párování závorek:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowWholeBracketExpression) +#: dialogs/textareaappearanceconfigwidget.ui:209 +#, kde-format +msgid "" +"If this is enabled, the range between the selected matching brackets will be " +"highlighted." +msgstr "Pokud je povoleno, bude obsah mezi odpovídajícími závorkami zvýrazněn." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowWholeBracketExpression) +#: dialogs/textareaappearanceconfigwidget.ui:212 +#, kde-format +msgid "Highlight range between selected brackets" +msgstr "Zvýraznit rozsah mezi zvolenými závorkami" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:219 +#, kde-format +msgid "Show the matching open bracket and lines adjacent to it for context" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:222 +#, kde-format +msgid "" +"If this is enabled, a preview of the lines near a matching open bracket is " +"shown. This can help in quickly determining the context of a closing " +"bracket, especially in long function/class declarations and deeply nested if " +"blocks" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:225 +#, kde-format +msgid "Show preview of matching open bracket" +msgstr "Zobrazit náhled odpovídající otevřené závorky" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:232 +#, kde-format +msgid "Flash matching brackets" +msgstr "Zvýraznit odpovídající závorky" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:235 +#, kde-format +msgid "" +"If this is enabled, matching brackets are animated for better visibility." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:238 +#, kde-format +msgid "Flash matching bracket when cursor moves to other bracket in pair" +msgstr "" +"Zvýraznit odpovídající závorku pokud kurzor přejede k její párové závorce" + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/textareaappearanceconfigwidget.ui:261 +#, kde-format +msgid "Counts:" +msgstr "Počet:" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowWordCount) +#: dialogs/textareaappearanceconfigwidget.ui:268 +#, kde-format +msgid "Show/hide word count in status bar" +msgstr "Zobrazit/skrýt počet slov ve stavové liště" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowWordCount) +#: dialogs/textareaappearanceconfigwidget.ui:271 view/katestatusbar.cpp:258 +#, kde-format +msgid "Show word count" +msgstr "Zobrazit počet slov" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowLineCount) +#: dialogs/textareaappearanceconfigwidget.ui:278 +#, kde-format +msgid "Show/hide line count in status bar" +msgstr "Zobrazit/skrýt počet řádek ve stavové liště" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowLineCount) +#: dialogs/textareaappearanceconfigwidget.ui:281 view/katestatusbar.cpp:255 +#, kde-format +msgid "Show line count" +msgstr "Zobrazit počet řádek" + +#. i18n: ectx: property (text), widget (QLabel, label_25) +#: dialogs/textareaappearanceconfigwidget.ui:304 +#, kde-format +msgid "Fold first line:" +msgstr "Skládat první řádek:" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkFoldFirstLine) +#: dialogs/textareaappearanceconfigwidget.ui:317 +#, kde-format +msgid "" +"When this setting is enabled, the editor view automatically folds\n" +"comment blocks that start on the first line of the document. This is\n" +"helpful to hide license headers which are commonly placed at the\n" +"beginning of a file." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbxWordWrap) +#: dialogs/textareaappearanceconfigwidget.ui:337 +#, kde-format +msgid "Dynamic Word Wrap:" +msgstr "Dynamické zalamování slov:" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDynWrapAtStaticMarker) +#: dialogs/textareaappearanceconfigwidget.ui:344 +#, kde-format +msgid "Wrap dynamically at static word wrap marker" +msgstr "Dynamicky zalamovat na statické značce pro zalomení textu" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDynWrapAnywhere) +#: dialogs/textareaappearanceconfigwidget.ui:351 +#, kde-format +msgid "Disregard word boundaries for dynamic wrapping" +msgstr "Při dynamickém zalamování slov nehledět na okraje slov" + +#. i18n: ectx: property (text), widget (QLabel, lblDynamicWordWrapIndicators) +#: dialogs/textareaappearanceconfigwidget.ui:358 +#, kde-format +msgid "D&ynamic word wrap indicators:" +msgstr "Ukazatele d&ynamického zalamování slov:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbDynamicWordWrapIndicator) +#: dialogs/textareaappearanceconfigwidget.ui:368 +#, kde-format +msgid "Choose when the Dynamic Word Wrap Indicators should be displayed." +msgstr "Vyberte, kdy budou značky pohyblivého zalomení řádků zobrazeny." + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/textareaappearanceconfigwidget.ui:391 +#, kde-format +msgid "I&ndent wrapped lines:" +msgstr "Odsadit zalome&né řádky:" + +#. i18n: ectx: property (text), widget (QLabel, lblDynamicWordWrapIndicators_2) +#: dialogs/textareaappearanceconfigwidget.ui:408 +#, kde-format +msgid "&Don't indent lines wider than:" +msgstr "Neo&dsazovat řádky delší než:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbDynamicWordWrapDepth) +#: dialogs/textareaappearanceconfigwidget.ui:424 +#, no-c-format, kde-format +msgid "" +"

Enables the start of dynamically wrapped lines to be aligned vertically " +"to the indentation level of the first line. This can help to make code and " +"markup more readable.

Additionally, this allows you to set a maximum " +"width of the screen, as a percentage, after which dynamically wrapped lines " +"will no longer be vertically aligned. For example, at 50%, lines whose " +"indentation levels are deeper than 50% of the width of the screen will not " +"have vertical alignment applied to subsequent wrapped lines.

" +msgstr "" +"

Povolí svislé zarovnání začátku pohyblivě zalomeného řádku na úrovni " +"odsazení prvního řádku, což umožňuje lepší čitelnost kódu a značek.

Navíc máte možnost nastavit maximální šíři obrazovky v procentech. Po " +"překročení této hodnoty nebudou již pohyblivě zalomené řádky svisle " +"zarovnány. Například hodnota 50% znamená, že u řádku s úrovní odsazení větší " +"než 50% šíře obrazovky už nebudou pokračující pohyblivě zalomené řádky " +"svisle zarovnány.

" + +#. i18n: ectx: property (suffix), widget (QSpinBox, sbDynamicWordWrapDepth) +#: dialogs/textareaappearanceconfigwidget.ui:427 +#, no-c-format, kde-format +msgid "% of View Width" +msgstr "% šířky pohledu" + +#. i18n: ectx: property (text), widget (QLabel, label_24) +#: dialogs/textareaappearanceconfigwidget.ui:443 +#, kde-format +msgid "Show i&ndentation lines:" +msgstr "Zobrazit čáry odsaze&ní:" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowIndentationLines) +#: dialogs/textareaappearanceconfigwidget.ui:453 +#, kde-format +msgid "" +"If this is enabled, the editor will display vertical lines to help identify " +"indent lines." +msgstr "" +"Pokud je povoleno, editor zobrazí svislé čáry pro snazší rozeznání " +"odsazených řádků." + +#: document/katebuffer.cpp:135 +#, kde-format +msgctxt "short translation, user created new file" +msgid "New file" +msgstr "Nový soubor" + +#: document/katedocument.cpp:223 +#, kde-format +msgid "Auto Reload Document" +msgstr "Automaticky znovu načíst dokument" + +#: document/katedocument.cpp:225 +#, kde-format +msgid "Automatic reload the document when it was changed on disk" +msgstr "" + +#: document/katedocument.cpp:2307 +#, kde-format +msgid "" +"The file %1 could not be loaded, as it was not possible to read from it.
Check if you have read access to this file." +msgstr "" +"Soubor %1 nelze načíst, protože z něj nelze číst.
Zkontrolujte práva ke " +"čtení." + +#: document/katedocument.cpp:2312 +#, kde-format +msgctxt "translators: you can also translate 'Try Again' with 'Reload'" +msgid "Try Again" +msgstr "Zkusit znovu" + +#: document/katedocument.cpp:2316 document/katedocument.cpp:6534 +#, kde-format +msgid "&Close" +msgstr "&Zavřít" + +#: document/katedocument.cpp:2317 document/katedocument.cpp:6535 +#, kde-format +msgctxt "Close the message being displayed" +msgid "Close message" +msgstr "Zavřít zprávu" + +#: document/katedocument.cpp:2449 +#, kde-format +msgid "" +"The file %1 was opened with %2 encoding but contained invalid characters." +"
It is set to read-only mode, as saving might destroy its content.
Either reopen the file with the correct encoding chosen or enable the read-" +"write mode again in the tools menu to be able to edit it." +msgstr "" +"Soubor %1 otevřený v kódování %2 obsahuje neplatné znaky.
Soubor byl " +"přepnut do režimu pouze pro čtení, protože jeho uložení může poškodit jeho " +"obsah.
Buď soubor znovu otevřete se správně zvoleným kódováním, nebo si " +"v nabídce nástrojů přepněte vstupní režim souboru na zápis." + +#: document/katedocument.cpp:2468 +#, kde-format +msgid "" +"The file %1 was opened and contained lines longer than the configured Line " +"Length Limit (%2 characters).
The longest of those lines was %3 " +"characters long
Those lines were wrapped and the document is set to read-" +"only mode, as saving will modify its content." +msgstr "" +"Právě otevřený soubor %1 obsahoval řádky delší než nastavené omezení (%2 " +"znaků).
Nejdelší z těchto řádků byl %3 znaků dlouhý.
Tyto řádky " +"byly zalomeny a dokument byl přepnut do režimu pouze pro čtení, jelikož " +"uložením se pozmění jeho obsah." + +#: document/katedocument.cpp:2475 +#, kde-format +msgid "Temporarily raise limit and reload file" +msgstr "" + +#: document/katedocument.cpp:2478 +#, kde-format +msgid "Close" +msgstr "Zavřít" + +#: document/katedocument.cpp:2505 +#, kde-format +msgid "" +"Do you really want to save this unmodified file? You could overwrite changed " +"data in the file on disk." +msgstr "" +"Opravdu si přejete uložit tento nezměněný soubor? Mohli byste přepsat " +"změněná data souboru na disku." + +#: document/katedocument.cpp:2506 +#, kde-format +msgid "Trying to Save Unmodified File" +msgstr "Pokus se uložení nezměněného souboru" + +#: document/katedocument.cpp:2507 document/katedocument.cpp:2518 +#: document/katedocument.cpp:2534 +#, kde-format +msgid "Save Nevertheless" +msgstr "Přesto uložit" + +#: document/katedocument.cpp:2516 +#, kde-format +msgid "" +"Do you really want to save this file? Both your open file and the file on " +"disk were changed. There could be some data lost." +msgstr "" +"Opravdu si přejete uložit tento soubor? Otevřený soubor i soubor na disku " +"byly změněny. Může dojít ke ztrátě dat." + +#: document/katedocument.cpp:2517 document/katedocument.cpp:2533 +#: document/katedocument.cpp:2853 syntax/katethemeconfig.cpp:1218 +#: syntax/katethemeconfig.cpp:1376 +#, kde-format +msgid "Possible Data Loss" +msgstr "Možná ztráta dat" + +#: document/katedocument.cpp:2531 +#, kde-format +msgid "" +"The selected encoding cannot encode every Unicode character in this " +"document. Do you really want to save it? There could be some data lost." +msgstr "" +"Zvolené kódování nepojme všechny obsažené znaky Unicode v dokumentu. Opravdu " +"si jej přejete uložit? Může dojít ke ztrátě dat." + +#: document/katedocument.cpp:2601 +#, kde-format +msgid "" +"The document could not be saved, as it was not possible to write to %1.\n" +"Check that you have write access to this file or that enough disk space is " +"available.\n" +"The original file may be lost or damaged. Don't quit the application until " +"the file is successfully written." +msgstr "" +"Dokument nelze uložit, protože nelze zapisovat do %1.\n" +"Zkontrolujte, zda máte oprávnění k zápisu do tohoto souboru a že je na disku " +"dostatek místa.\n" +"Původní soubor může být ztracen nebo poškozen. Neukončujte aplikaci dokud " +"není soubor úspěšně zapsán." + +#: document/katedocument.cpp:2722 +#, kde-format +msgid "" +"For file %1 no backup copy could be created before saving. If an error " +"occurs while saving, you might lose the data of this file. A reason could be " +"that the media you write to is full or the directory of the file is read-" +"only for you." +msgstr "" +"Před uložením souboru %1 nemohla být vytvořena záložní kopie. Pokud při " +"ukládání dojde k chybě, můžete ztratit všechny změny v tomto souboru. To by " +"mohlo být způsobeno plným médiem na které si přejete zapisovat, nebo nemáte " +"oprávnění k zápisu do tohoto souboru." + +#: document/katedocument.cpp:2726 +#, kde-format +msgid "Failed to create backup copy." +msgstr "Vytvoření záložní kopie selhalo." + +#: document/katedocument.cpp:2727 +#, kde-format +msgid "Try to Save Nevertheless" +msgstr "Pokusit se přesto uložit" + +#: document/katedocument.cpp:2852 +#, kde-format +msgid "Do you really want to continue to close this file? Data loss may occur." +msgstr "Opravdu si přejete uzavřít tento soubor? Může dojít ke ztrátě dat." + +#: document/katedocument.cpp:2854 +#, kde-format +msgid "Close Nevertheless" +msgstr "Přesto uzavřít" + +#: document/katedocument.cpp:4641 +#, kde-format +msgid "Untitled (%1)" +msgstr "Nepojmenovaný (%1)" + +#: document/katedocument.cpp:4643 +#, kde-format +msgid "Untitled" +msgstr "Nepojmenovaný" + +#: document/katedocument.cpp:4820 document/katedocument.cpp:5051 +#: document/katedocument.cpp:5061 document/katedocument.cpp:5862 +#: document/katedocument.cpp:6049 +#, kde-format +msgid "Save File" +msgstr "Uložit soubor" + +#: document/katedocument.cpp:4823 +#, kde-format +msgid "Save failed" +msgstr "Uložení selhalo" + +#: document/katedocument.cpp:5072 +#, kde-format +msgid "Save Copy of File" +msgstr "Uložit kopii souboru" + +#: document/katedocument.cpp:5084 +#, kde-format +msgid "" +"The document could not be saved, as it was not possible to write to %1.\n" +"\n" +"Check that you have write access to this file or that enough disk space is " +"available." +msgstr "" +"Dokument nelze uložit, protože nelze zapisovat do %1.\n" +"Zkontrolujte, zda máte oprávnění k zápisu do tohoto souboru a že je na disku " +"dostatek místa." + +#: document/katedocument.cpp:5376 +#, kde-format +msgid "" +"Using deprecated modeline 'remove-trailing-space'. Please replace with " +"'remove-trailing-spaces modified;', see https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" +msgstr "" + +#: document/katedocument.cpp:5382 +#, kde-format +msgid "" +"Using deprecated modeline 'replace-trailing-space-save'. Please replace with " +"'remove-trailing-spaces all;', see https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" +msgstr "" + +#: document/katedocument.cpp:5696 +#, kde-format +msgid "The file '%1' was modified on disk." +msgstr "" + +#: document/katedocument.cpp:5698 +#, kde-format +msgid "The file '%1' was deleted or moved on disk." +msgstr "Soubor '%1' byl smazán nebo přesunut na disku." + +#: document/katedocument.cpp:6034 +#, kde-format +msgid "" +"The document \"%1\" has been modified.\n" +"Do you want to save your changes or discard them?" +msgstr "" +"Dokument \"%1\" byl změněn.\n" +"Přejete si uložit změny nebo je zapomenout?" + +#: document/katedocument.cpp:6037 +#, kde-format +msgid "Close Document" +msgstr "Uzavřít dokument" + +#: document/katedocument.cpp:6148 +#, kde-format +msgid "The file %2 is still loading." +msgstr "" + +#: document/katedocument.cpp:6153 +#, kde-format +msgid "&Abort Loading" +msgstr "" + +#: inputmode/katenormalinputmode.cpp:74 +#, kde-format +msgid "OVERWRITE" +msgstr "PŘEPOSLAT" + +#: inputmode/katenormalinputmode.cpp:74 +#, kde-format +msgid "INSERT" +msgstr "VLOŽIT" + +#: inputmode/katenormalinputmodefactory.cpp:29 +#, kde-format +msgid "Normal Mode" +msgstr "Normální režim" + +#: inputmode/kateviinputmode.cpp:31 +#, fuzzy, kde-format +#| msgid "VI: INSERT MODE" +msgctxt "The INSERT mode of VI" +msgid "VI: INSERT" +msgstr "VI: REŽIM VKLÁDÁNÍ" + +#: inputmode/kateviinputmode.cpp:34 +#, fuzzy, kde-format +#| msgid "VI: NORMAL MODE" +msgctxt "The NORMAL mode of VI" +msgid "VI: NORMAL" +msgstr "VI: NORMÁLNÍ REŽIM" + +#: inputmode/kateviinputmode.cpp:37 +#, kde-format +msgid "VI: VISUAL" +msgstr "VI: VISUAL" + +#: inputmode/kateviinputmode.cpp:40 +#, kde-format +msgid "VI: VISUAL BLOCK" +msgstr "VI: VISUAL BLOCK" + +#: inputmode/kateviinputmode.cpp:43 +#, kde-format +msgid "VI: VISUAL LINE" +msgstr "VI: VISUAL LINE" + +#: inputmode/kateviinputmode.cpp:46 +#, kde-format +msgid "VI: REPLACE" +msgstr "VI: NAHRAZOVÁNÍ" + +#: inputmode/kateviinputmode.cpp:146 +#, kde-format +msgid "vi-mode" +msgstr "Režim Vi" + +#: inputmode/kateviinputmode.cpp:159 +#, kde-format +msgid "recording" +msgstr "nahrává se" + +#: inputmode/kateviinputmodefactory.cpp:38 utils/kateglobal.cpp:88 +#: vimode/config/configtab.cpp:237 +#, kde-format +msgid "Vi Input Mode" +msgstr "Vstupní režim Vi" + +#: mode/katemodeconfigpage.cpp:46 +#, kde-format +msgid "" +msgstr "" + +#: mode/katemodeconfigpage.cpp:58 +#, kde-format +msgid "Use Default" +msgstr "Použít výchozí" + +#: mode/katemodeconfigpage.cpp:99 mode/katemodeconfigpage.cpp:241 +#, kde-format +msgid "Properties of %1" +msgstr "Vlastnosti %1" + +#: mode/katemodeconfigpage.cpp:178 +#, kde-format +msgid "New Filetype" +msgstr "Nový typ souboru" + +#: mode/katemodeconfigpage.cpp:293 +#, kde-format +msgid "" +"Select the MimeTypes you want for this file type.\n" +"Please note that this will automatically edit the associated file extensions " +"as well." +msgstr "" +"Vyberte typy MIME, pro tento typ souboru.\n" +"Prosím uvědomte si, že to též automaticky změní přiřazené přípony souborů." + +#: mode/katemodeconfigpage.cpp:295 +#, kde-format +msgid "Select Mime Types" +msgstr "Vybrat typy MIME" + +#: mode/katemodeconfigpage.cpp:312 +#, kde-format +msgid "Modes && Filetypes" +msgstr "Režimy a typy souborů" + +#: mode/katemodemenulist.cpp:138 +#, kde-format +msgctxt "@info:placeholder" +msgid "Search…" +msgstr "Hledat…" + +#: mode/katemodemenulist.cpp:140 +#, kde-format +msgctxt "ToolTip of the search bar of modes of syntax highlighting" +msgid "" +"Search for syntax highlighting modes by language name or file extension (for " +"example, C++ or .cpp)" +msgstr "" + +#: mode/katemodemenulist.cpp:560 +#, kde-format +msgctxt "A search yielded no results" +msgid "No items matching your search" +msgstr "Vašemu hledání neodpovídá žádná položka" + +#: mode/katemodemenulist.cpp:1087 +#, kde-format +msgctxt "" +"Title (in singular) of the best result in an item search. Please, that the " +"translation doesn't have more than 34 characters, since the menu where it's " +"displayed is small and fixed." +msgid "Best Search Match" +msgstr "Nejlepší shoda hledání" + +#: mode/katemodemenulist.cpp:1092 +#, kde-format +msgctxt "" +"Title (in plural) of the best results in an item search. Please, that the " +"translation doesn't have more than 34 characters, since the menu where it's " +"displayed is small and fixed." +msgid "Best Search Matches" +msgstr "Nejlepší shody hledání" + +#: printing/printconfigwidgets.cpp:36 +#, kde-format +msgid "Te&xt Settings" +msgstr "Nastavení te&xtu" + +#: printing/printconfigwidgets.cpp:40 +#, kde-format +msgid "Print line &numbers" +msgstr "Tisknout čís&la řádků" + +#: printing/printconfigwidgets.cpp:43 +#, kde-format +msgid "Print &legend" +msgstr "Tisknout vysvět&livky" + +#: printing/printconfigwidgets.cpp:46 +#, kde-format +msgid "Don't print folded code" +msgstr "" + +#: printing/printconfigwidgets.cpp:54 +#, kde-format +msgid "" +"

If enabled, line numbers will be printed on the left side of the page(s)." +"

" +msgstr "" +"

Je-li zvoleno, pak budou na levé straně tištěných stran uvedena čísla " +"řádků.

" + +#: printing/printconfigwidgets.cpp:56 +#, kde-format +msgid "" +"

Print a box displaying typographical conventions for the document type, " +"as defined by the syntax highlighting being used.

" +msgstr "" +"

Vytiskne kolonku, ve které budou v souladu s použitým zvýrazňováním " +"zobrazeny typografické konvence použité pro daný typ dokumentu.

" + +#: printing/printconfigwidgets.cpp:116 +#, kde-format +msgid "Hea&der && Footer" +msgstr "Záhlaví a záp&atí" + +#: printing/printconfigwidgets.cpp:123 +#, kde-format +msgid "Pr&int header" +msgstr "T&isknout záhlaví" + +#: printing/printconfigwidgets.cpp:125 +#, kde-format +msgid "Pri&nt footer" +msgstr "Tisk&nout zápatí" + +#: printing/printconfigwidgets.cpp:131 +#, kde-format +msgid "Header/footer font:" +msgstr "Písmo pro záhlaví a zápatí:" + +#: printing/printconfigwidgets.cpp:137 +#, kde-format +msgid "Header Properties" +msgstr "Vlastnosti záhlaví" + +#: printing/printconfigwidgets.cpp:141 +#, kde-format +msgid "&Format:" +msgstr "&Formát:" + +#: printing/printconfigwidgets.cpp:163 printing/printconfigwidgets.cpp:209 +#, kde-format +msgid "Colors:" +msgstr "Barvy:" + +#: printing/printconfigwidgets.cpp:170 printing/printconfigwidgets.cpp:216 +#, kde-format +msgid "Foreground:" +msgstr "Popředí:" + +#: printing/printconfigwidgets.cpp:175 +#, kde-format +msgid "Bac&kground" +msgstr "Poz&adí" + +#: printing/printconfigwidgets.cpp:181 +#, kde-format +msgid "Footer Properties" +msgstr "Vlastnosti zápatí" + +#: printing/printconfigwidgets.cpp:186 +#, kde-format +msgid "For&mat:" +msgstr "For&mát:" + +#: printing/printconfigwidgets.cpp:221 +#, kde-format +msgid "&Background" +msgstr "&Pozadí" + +#: printing/printconfigwidgets.cpp:250 +#, kde-format +msgid "

Format of the page header. The following tags are supported:

" +msgstr "

Formát záhlaví stránky. Podporovány jsou následující značky:

" + +#: printing/printconfigwidgets.cpp:252 +#, kde-format +msgid "" +"
  • %u: current user name
  • %d: complete date/" +"time in short format
  • %D: complete date/time in long format
  • %h: current time
  • %y: current date in short " +"format
  • %Y: current date in long format
  • %f: " +"file name
  • %U: full URL of the document
  • %p: " +"page number
  • %P: total amount of pages

" +msgstr "" +"
  • %u: aktuální uživatelské jméno
  • %d: plné " +"datum/čas v krátkém formátu
  • %D: plné datum/čas v dlouhém " +"formátu
  • %h: aktuální čas
  • %y: aktuální " +"datum v krátkém formátu
  • %Y: aktuální datum v dlouhém " +"formátu
  • %f: název souboru
  • %U: plné URL " +"dokumentu
  • %p: číslo stránky
  • %P: celkový " +"počet stran

" + +#: printing/printconfigwidgets.cpp:266 +#, kde-format +msgid "

Format of the page footer. The following tags are supported:

" +msgstr "

Formát zápatí stránky. Podporovány jsou následující značky:

" + +#: printing/printconfigwidgets.cpp:352 +#, kde-format +msgid "Add Placeholder..." +msgstr "Přidat zástupný symbol..." + +#: printing/printconfigwidgets.cpp:354 +#, kde-format +msgid "Current User Name" +msgstr "Jméno současného uživatele:" + +#: printing/printconfigwidgets.cpp:356 +#, kde-format +msgid "Complete Date/Time (short format)" +msgstr "Plné datum a čas (krátký formát)" + +#: printing/printconfigwidgets.cpp:358 +#, kde-format +msgid "Complete Date/Time (long format)" +msgstr "Plné datum a čas (dlouhý formát)" + +#: printing/printconfigwidgets.cpp:360 +#, kde-format +msgid "Current Time" +msgstr "Aktuální čas" + +#: printing/printconfigwidgets.cpp:362 +#, kde-format +msgid "Current Date (short format)" +msgstr "Aktuální datum (krátký formát)" + +#: printing/printconfigwidgets.cpp:364 +#, kde-format +msgid "Current Date (long format)" +msgstr "Aktuální datum (dlouhý formát)" + +#: printing/printconfigwidgets.cpp:366 +#, kde-format +msgid "File Name" +msgstr "Název souboru" + +#: printing/printconfigwidgets.cpp:368 +#, kde-format +msgid "Full document URL" +msgstr "Celé URL dokumentu" + +#: printing/printconfigwidgets.cpp:370 +#, kde-format +msgid "Page Number" +msgstr "Číslo stránky" + +#: printing/printconfigwidgets.cpp:372 +#, kde-format +msgid "Total Amount of Pages" +msgstr "Celkový počet stran" + +#: printing/printconfigwidgets.cpp:478 +#, kde-format +msgid "L&ayout" +msgstr "&Rozvržení" + +#: printing/printconfigwidgets.cpp:484 +#, kde-format +msgid "&Color theme:" +msgstr "&Barevný motiv:" + +#: printing/printconfigwidgets.cpp:494 +#, kde-format +msgid "Font:" +msgstr "Písmo:" + +#: printing/printconfigwidgets.cpp:498 +#, kde-format +msgid "Draw bac&kground color" +msgstr "&Kreslit barvu pozadí" + +#: printing/printconfigwidgets.cpp:501 +#, kde-format +msgid "Draw &boxes" +msgstr "Vykreslit &rámy" + +#: printing/printconfigwidgets.cpp:505 +#, kde-format +msgid "Box Properties" +msgstr "Vlastnosti rámu" + +#: printing/printconfigwidgets.cpp:509 +#, kde-format +msgid "W&idth:" +msgstr "Šíř&ka:" + +#: printing/printconfigwidgets.cpp:517 +#, kde-format +msgid "&Margin:" +msgstr "&Okraj:" + +#: printing/printconfigwidgets.cpp:525 +#, kde-format +msgid "Co&lor:" +msgstr "Ba&rva:" + +#: printing/printconfigwidgets.cpp:547 +#, kde-format +msgid "Select the color theme to use for the print." +msgstr "Vyberte barevný motiv pro tisk." + +#: printing/printconfigwidgets.cpp:549 +#, kde-format +msgid "" +"

If enabled, the background color of the editor will be used.

This " +"may be useful if your color theme is designed for a dark background.

" +msgstr "" +"

Je-li zvoleno, pak bude bude použita barva pozadí editoru.

To může " +"být užitečné v případě, že je váš barevný motiv navržen pro tmavé pozadí.

" + +#: printing/printconfigwidgets.cpp:552 +#, kde-format +msgid "" +"

If enabled, a box as defined in the properties below will be drawn around " +"the contents of each page. The Header and Footer will be separated from the " +"contents with a line as well.

" +msgstr "" +"

Je-li zvoleno, pak bude kolem obsahu každé stránky vykreslen rám, který " +"je definován níže uvedenými vlastnostmi. Záhlaví a zápatí budou odděleny od " +"obsahu čarou.

" + +#: printing/printconfigwidgets.cpp:555 +#, kde-format +msgid "The width of the box outline" +msgstr "Šířka obrysu rámu" + +#: printing/printconfigwidgets.cpp:556 +#, kde-format +msgid "The margin inside boxes, in pixels" +msgstr "Velikost okraje vevnitř rámu, měřený v pixelech" + +#: printing/printconfigwidgets.cpp:557 +#, kde-format +msgid "The line color to use for boxes" +msgstr "Barva čáry použité pro rám" + +#: printing/printpainter.cpp:269 +#, kde-format +msgid "(Selection of) " +msgstr "(Výběr z)" + +#: printing/printpainter.cpp:522 +#, kde-format +msgid "Typographical Conventions for %1" +msgstr "Typografické konvence pro %1" + +#: printing/printpainter.cpp:555 +#, kde-format +msgid "text" +msgstr "text" + +#: script/data/commands/emmet.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Expand Abbreviation" +msgstr "Rozbalit zkratku" + +#: script/data/commands/emmet.js:10 script/data/commands/emmet.js:14 +#: script/data/commands/emmet.js:19 script/data/commands/emmet.js:23 +#: script/data/commands/emmet.js:27 script/data/commands/emmet.js:31 +#: script/data/commands/emmet.js:35 script/data/commands/emmet.js:39 +#: script/data/commands/emmet.js:43 script/data/commands/emmet.js:47 +#: script/data/commands/emmet.js:51 script/data/commands/emmet.js:55 +#: script/data/commands/emmet.js:59 script/data/commands/emmet.js:63 +#: script/data/commands/emmet.js:67 script/data/commands/emmet.js:71 +#: script/data/commands/emmet.js:75 script/data/commands/emmet.js:79 +#: script/data/commands/emmet.js:83 +#, kde-format +msgctxt "Script command category" +msgid "Emmet" +msgstr "" + +#: script/data/commands/emmet.js:13 +#, kde-format +msgctxt "Script command name" +msgid "Wrap with Tag" +msgstr "Zalamovat se značkou" + +#: script/data/commands/emmet.js:18 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Matching Tag" +msgstr "Přesunout kurzor na odpovídající značku" + +#: script/data/commands/emmet.js:22 +#, kde-format +msgctxt "Script command name" +msgid "Select HTML/XML Tag Contents Inwards" +msgstr "" + +#: script/data/commands/emmet.js:26 +#, kde-format +msgctxt "Script command name" +msgid "Select HTML/XML Tag Contents Outwards" +msgstr "" + +#: script/data/commands/emmet.js:30 +#, kde-format +msgctxt "Script command name" +msgid "Toggle Comment" +msgstr "Přepnout komentář" + +#: script/data/commands/emmet.js:34 +#, kde-format +msgctxt "Script command name" +msgid "Go to Next Edit Point" +msgstr "" + +#: script/data/commands/emmet.js:38 +#, kde-format +msgctxt "Script command name" +msgid "Go to Previous Edit Point" +msgstr "" + +#: script/data/commands/emmet.js:42 +#, kde-format +msgctxt "Script command name" +msgid "Select Next Edit Point" +msgstr "" + +#: script/data/commands/emmet.js:46 +#, kde-format +msgctxt "Script command name" +msgid "Select Previous Edit Point" +msgstr "" + +#: script/data/commands/emmet.js:50 +#, kde-format +msgctxt "Script command name" +msgid "Delete Tag Under Cursor" +msgstr "Smazat značku pod kurzorem" + +#: script/data/commands/emmet.js:54 +#, kde-format +msgctxt "Script command name" +msgid "Split or Join a Tag" +msgstr "Rozdělit nebo spojit značku" + +#: script/data/commands/emmet.js:58 +#, kde-format +msgctxt "Script command name" +msgid "Evaluate a Simple Math Expression" +msgstr "" + +#: script/data/commands/emmet.js:62 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 1" +msgstr "" + +#: script/data/commands/emmet.js:66 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 10" +msgstr "" + +#: script/data/commands/emmet.js:70 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 0.1" +msgstr "" + +#: script/data/commands/emmet.js:74 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 1" +msgstr "" + +#: script/data/commands/emmet.js:78 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 10" +msgstr "" + +#: script/data/commands/emmet.js:82 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 0.1" +msgstr "" + +#: script/data/commands/emmet.js:96 +#, kde-format +msgid "" +"Expands the abbreviation using Emmet expressions; see http://code.google.com/" +"p/zen-coding/wiki/ZenHTMLSelectorsEn" +msgstr "" + +#: script/data/commands/emmet.js:97 +#, kde-format +msgid "" +"Wraps the selected text in XML tags constructed from the provided Emmet " +"expression (defaults to div)." +msgstr "" + +#: script/data/commands/emmet.js:98 +#, kde-format +msgid "Moves the caret to the current tag's pair" +msgstr "" + +#: script/data/commands/emmet.js:99 +#, kde-format +msgid "" +"Select contents of HTML/XML tag, moving inward on continuous invocations" +msgstr "" + +#: script/data/commands/emmet.js:100 +#, kde-format +msgid "" +"Select contents of HTML/XML tag, moving outwards on continuous invocations" +msgstr "" + +#: script/data/commands/emmet.js:101 +#, kde-format +msgid "Move to the next edit point (tag or empty attribute)." +msgstr "" + +#: script/data/commands/emmet.js:102 +#, kde-format +msgid "Move to the previous edit point (tag or empty attribute)." +msgstr "" + +#: script/data/commands/emmet.js:103 +#, kde-format +msgid "Select next edit point (tag or empty attribute)." +msgstr "" + +#: script/data/commands/emmet.js:104 +#, kde-format +msgid "Select previous edit point (tag or empty attribute)." +msgstr "" + +#: script/data/commands/emmet.js:105 +#, kde-format +msgid "Toggle comment of current tag or CSS selector" +msgstr "" + +#: script/data/commands/emmet.js:106 +#, kde-format +msgid "Deletes tag under cursor" +msgstr "Smaže značku pod kurzorem" + +#: script/data/commands/emmet.js:107 +#, kde-format +msgid "Splits or joins a tag" +msgstr "Rozdělí nebo sloučí značku" + +#: script/data/commands/emmet.js:108 +#, kde-format +msgid "Evaluates a simple math expression" +msgstr "" + +#: script/data/commands/emmet.js:109 +#, kde-format +msgid "Decrement number under cursor by 1" +msgstr "" + +#: script/data/commands/emmet.js:110 +#, kde-format +msgid "Decrement number under cursor by 10" +msgstr "" + +#: script/data/commands/emmet.js:111 +#, kde-format +msgid "Decrement number under cursor by 0.1" +msgstr "" + +#: script/data/commands/emmet.js:112 +#, kde-format +msgid "Increment number under cursor by 1" +msgstr "" + +#: script/data/commands/emmet.js:113 +#, kde-format +msgid "Increment number under cursor by 10" +msgstr "" + +#: script/data/commands/emmet.js:114 +#, kde-format +msgid "Increment number under cursor by 0.1" +msgstr "" + +#: script/data/commands/jumpMatchingIndent.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Previous Matching Indent" +msgstr "" + +#: script/data/commands/jumpMatchingIndent.js:11 +#: script/data/commands/jumpMatchingIndent.js:16 +#: script/data/commands/jumpMatchingIndent.js:21 +#: script/data/commands/jumpMatchingIndent.js:26 +#: script/data/commands/navigation.js:10 script/data/commands/navigation.js:14 +#, kde-format +msgctxt "Script command category" +msgid "Navigation" +msgstr "Procházení" + +#: script/data/commands/jumpMatchingIndent.js:14 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Next Matching Indent" +msgstr "Přejít na následující odpovídající odsazení" + +#: script/data/commands/jumpMatchingIndent.js:19 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Next Blank Line" +msgstr "" + +#: script/data/commands/jumpMatchingIndent.js:24 +#, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Previous Blank Line" +msgstr "" + +#: script/data/commands/jumpMatchingIndent.js:80 +#, kde-format +msgid "Move cursor to previous matching indent" +msgstr "Přesunout kurzor na předchozí odpovídající odsazení" + +#: script/data/commands/jumpMatchingIndent.js:83 +#, kde-format +msgid "Move cursor to next matching indent" +msgstr "Přejít na následující odpovídající odsazení" + +#: script/data/commands/jumpMatchingIndent.js:85 +#, kde-format +msgid "Move cursor to next blank line" +msgstr "" + +#: script/data/commands/jumpMatchingIndent.js:87 +#, kde-format +msgid "Move cursor to previous blank line" +msgstr "" + +#: script/data/commands/navigation.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Go to Next Paragraph" +msgstr "Přejít na následující odstavec" + +#: script/data/commands/navigation.js:13 +#, kde-format +msgctxt "Script command name" +msgid "Go to Previous Paragraph" +msgstr "Přejít na předchozí odstavec" + +#: script/data/commands/utils.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Remove Trailing Spaces" +msgstr "Odstranit mezery na konci řádku" + +#: script/data/commands/utils.js:10 script/data/commands/utils.js:14 +#: script/data/commands/utils.js:18 script/data/commands/utils.js:22 +#: script/data/commands/utils.js:27 script/data/commands/utils.js:32 +#: script/data/commands/utils.js:36 script/data/commands/utils.js:40 +#: script/data/commands/utils.js:44 script/data/commands/utils.js:48 +#: script/data/commands/utils.js:52 script/data/commands/utils.js:56 +#, kde-format +msgctxt "Script command category" +msgid "Editing" +msgstr "Úpravy" + +#: script/data/commands/utils.js:13 +#, kde-format +msgctxt "Script command name" +msgid "Remove Leading Spaces" +msgstr "Odstranit mezery na začátku řádku" + +#: script/data/commands/utils.js:17 +#, kde-format +msgctxt "Script command name" +msgid "Remove Trailing and Leading Spaces" +msgstr "Odstranit mezery na začátku a na konci řádku" + +#: script/data/commands/utils.js:21 +#, kde-format +msgctxt "Script command name" +msgid "Join Lines" +msgstr "Spojit řádky" + +#: script/data/commands/utils.js:25 +#, kde-format +msgctxt "Script command name" +msgid "Move Lines Down" +msgstr "Přesunout řádky dolů" + +#: script/data/commands/utils.js:30 +#, kde-format +msgctxt "Script command name" +msgid "Move Lines Up" +msgstr "Přesunout řádky nahoru" + +#: script/data/commands/utils.js:35 +#, kde-format +msgctxt "Script command name" +msgid "Duplicate Selected Lines Down" +msgstr "Duplikovat vybrané řádky dolů" + +#: script/data/commands/utils.js:39 +#, kde-format +msgctxt "Script command name" +msgid "Duplicate Selected Lines Up" +msgstr "Duplikovat vybrané řádky nahoru" + +#: script/data/commands/utils.js:43 +#, kde-format +msgctxt "Script command name" +msgid "Duplicate selected text" +msgstr "Duplikovat vybraný text" + +#: script/data/commands/utils.js:47 +#, kde-format +msgctxt "Script command name" +msgid "URI-encode Selected Text" +msgstr "URI-Zašifrovat vybraný text" + +#: script/data/commands/utils.js:51 +#, kde-format +msgctxt "Script command name" +msgid "URI-decode Selected Text" +msgstr "URI-Dešifrovat vybraný text" + +#: script/data/commands/utils.js:55 +#, kde-format +msgctxt "Script command name" +msgid "Remove Empty Lines" +msgstr "Odstranit prázdné řádky" + +#: script/data/commands/utils.js:410 +#, kde-format +msgid "Sort the selected text or whole document." +msgstr "Setřídit vybraný text nebo celý dokument." + +#: script/data/commands/utils.js:412 +#, kde-format +msgid "Move selected lines down." +msgstr "Přesunout vybrané řádky dolů." + +#: script/data/commands/utils.js:414 +#, kde-format +msgid "Move selected lines up." +msgstr "Přesunout vybrané řádky nahoru." + +#: script/data/commands/utils.js:416 +#, kde-format +msgid "Remove duplicate lines from the selected text or whole document." +msgstr "Odstranit duplicitní řádky z vybraného textu nebo celého dokumentu." + +#: script/data/commands/utils.js:418 +#, kde-format +msgid "" +"Sort the selected text or whole document in natural order.
Here is an " +"example to show the difference to the normal sort method:
sort(a10, a1, " +"a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" +msgstr "" +"Seřadit vybraný text nebo celý dokument dle přirozené posloupnosti." +"
Následující příklad ukazuje rozdíl oproti normální metodě řazení:" +"
sort(a10, a1, a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" + +#: script/data/commands/utils.js:420 +#, kde-format +msgid "Trims trailing whitespace from selection or whole document." +msgstr "Ořízne nadbytečné mezery z výběru nebo celého dokumentu." + +#: script/data/commands/utils.js:422 +#, kde-format +msgid "Trims leading whitespace from selection or whole document." +msgstr "Ořízne úvodní mezery z výběru nebo celého dokumentu." + +#: script/data/commands/utils.js:424 +#, kde-format +msgid "Trims leading and trailing whitespace from selection or whole document." +msgstr "Ořízne úvodní a nadbytečné mezery z výběru nebo celého dokumentu." + +#: script/data/commands/utils.js:426 +#, kde-format +msgid "" +"Joins selected lines or whole document. Optionally pass a separator to put " +"between each line:
join ', ' will e.g. join lines and " +"separate them by a comma." +msgstr "" +"Slouží vybrané řádky nebo celý dokument. Volitelně lze zadat oddělovač který " +"bude mezi řádky vložen :
Například join ', ' sloučí řádky a " +"oddělí je čárkou." + +#: script/data/commands/utils.js:428 +#, kde-format +msgid "Removes empty lines from selection or whole document." +msgstr "Odstraní z dokumentu nebo výběru všechny prázdné řádky." + +#: script/data/commands/utils.js:430 +#, kde-format +msgid "" +"This command aligns lines in the selected block or whole document on the " +"column given by a regular expression given as an argument.

If you " +"give an empty pattern it will align on the first non-blank character by " +"default.
If the pattern has a capture it will indent on the captured " +"match.

Examples:
'alignon -' will insert " +"spaces before the first '-' of each lines to align them all on the same " +"column.
'alignon :\\s+(.)' will insert spaces before the " +"first non-blank character that occurs after a colon to align them all on the " +"same column." +msgstr "" + +#: script/data/commands/utils.js:434 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and replace them with the return value of that callback." +"
Example (join selected lines):
each 'function(lines){return " +"lines.join(\", \");}'
To save you some typing, you can also do " +"this to achieve the same:
each 'lines.join(\", \")'" +msgstr "" +"Funkce JavaScriptu předaná jako parametr je zavolána pro (vybraný) seznam " +"řádků a nahradí je výsledkem volání.
Například (sloučení vybraných " +"řádků):
each 'function(lines){return lines.join(\", \");}'
Takto si můžete ušetřit trochu psaní, výsledek bude stejný:" +"
each 'lines.join(\", \")'" + +#: script/data/commands/utils.js:436 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and remove those where the callback returns false." +"
Example (see also rmblank):
filter 'function(l)" +"{return l.length > 0;}'
To save you some typing, you can also do " +"this to achieve the same:
filter 'line.length > 0'" +msgstr "" +"Funkce JavaScriptu předaná jako parametr je zavolána pro (vybraný) seznam " +"řádků a odstraní řádky pro které funkce vrací nepravdu (false).
Například " +"(podívejte se také na rmblank):
filter 'function(l)" +"{return l.length > 0;}'
Takto si můžete ušetřit trochu psaní, " +"výsledek bude stejný:
filter 'line.length > 0'" + +#: script/data/commands/utils.js:438 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and replace the line with the return value of the callback." +"
Example (see also ltrim):
map 'function(line)" +"{return line.replace(/^\\s+/, \"\");}'
To save you some typing, " +"you can also do this to achieve the same:
map 'line.replace(/^\\s" +"+/, \"\")'" +msgstr "" +"Funkce JavaScriptu předaná jako parametr je zavolána pro (vybraný) seznam " +"řádků a nahradí řádky výsledkem volání.
Například (podívejte se také na " +"ltrim):
map 'function(line){return line.replace(/^\\s" +"+/, \"\");}'
Takto si můžete ušetřit trochu psaní, výsledek bude " +"stejný:
map 'line.replace(/^\\s+/, \"\")'" + +#: script/data/commands/utils.js:440 +#, kde-format +msgid "Duplicates the selected lines up." +msgstr "Duplikuje vybrané řádky nahoru." + +#: script/data/commands/utils.js:442 +#, kde-format +msgid "Duplicates the selected lines down." +msgstr "Duplikuje vybrané řádky dolů." + +#: script/data/commands/utils.js:446 +#, kde-format +msgid "" +"Encode special chars in a single line selection, so the result text can be " +"used as URI." +msgstr "" + +#: script/data/commands/utils.js:448 +#, kde-format +msgid "Reverse action of URI encode." +msgstr "" + +#: script/data/commands/utils.js:450 +#, kde-format +msgid "" +"Select text forward from current cursor position to the first occurrence of " +"the given argument after it (or the end of the current line by default)." +msgstr "" + +#: script/data/commands/utils.js:452 +#, kde-format +msgid "" +"Select text backward from current cursor position to the last occurrence of " +"the given argument before it (or the beginning of the current line by " +"default)." +msgstr "" + +#: script/data/indentation/ada.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "ada" +msgstr "ada" + +#: script/data/indentation/cmake.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "CMake" +msgstr "CMake" + +#: script/data/indentation/cppstyle.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "C++/boost Style" +msgstr "C++/Styl boost" + +#: script/data/indentation/cstyle.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "C Style" +msgstr "Styly C" + +#: script/data/indentation/haskell.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Haskell" +msgstr "Haskell" + +#: script/data/indentation/julia.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Julia" +msgstr "Julia" + +#: script/data/indentation/latex.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Latex" +msgstr "Latex" + +#: script/data/indentation/lilypond.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "LilyPond" +msgstr "LilyPond" + +#: script/data/indentation/lisp.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "LISP" +msgstr "LISP" + +#: script/data/indentation/pascal.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Pascal" +msgstr "Pascal" + +#: script/data/indentation/python.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Python" +msgstr "Python" + +#: script/data/indentation/r.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "R" +msgstr "R" + +#: script/data/indentation/replicode.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Replicode" +msgstr "Replicode" + +#: script/data/indentation/ruby.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Ruby" +msgstr "Ruby" + +#: script/data/indentation/xml.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "XML Style" +msgstr "Styl XML" + +#: script/katecommandlinescript.cpp:37 +#, kde-format +msgid "Function '%1' not found in script: %2" +msgstr "Funkce '%1' nebyla ve skriptu: %2 nalezena" + +#: script/katecommandlinescript.cpp:51 +#, kde-format +msgid "Error calling %1" +msgstr "Chyba při volání %1" + +#: script/katecommandlinescript.cpp:68 +#, kde-format +msgid "Bad quoting in call: %1. Please escape single quotes with a backslash." +msgstr "" +"Špatné uvozovky při volání: %1. Prosím, dejte před jednoduché uvozovky " +"zpětné lomítko." + +#: script/katecommandlinescript.cpp:76 utils/katecmds.cpp:217 +#: vimode/cmds.cpp:37 +#, kde-format +msgid "Could not access view" +msgstr "Nelze přistupovat k pohledu" + +#: script/katecommandlinescript.cpp:118 +#, kde-format +msgid "Error calling 'help %1'" +msgstr "Chyba při volání 'help %1'" + +#: script/katecommandlinescript.cpp:123 +#, kde-format +msgid "No help specified for command '%1' in script %2" +msgstr "Nápověda pro příkaz '%1' není ve skriptu %2 obsažena" + +#: script/katescript.cpp:282 +#, kde-format +msgid "Error loading script %1: %2" +msgstr "" + +#: script/katescriptmanager.cpp:319 +#, kde-format +msgid "Reload all JavaScript files (indenters, command line scripts, etc)." +msgstr "" +"Znovu načíst všechny soubory JavaScript (odsazovače, skripty příkazové řádky " +"a jiné)." + +#: script/katescriptview.cpp:214 +#, kde-format +msgid "Command not found: %1" +msgstr "Příkaz nenalezen: %1" + +#: search/katesearchbar.cpp:73 +#, kde-format +msgid "Add..." +msgstr "Přidat..." + +#: search/katesearchbar.cpp:298 +#, kde-format +msgctxt "short translation" +msgid "1 replacement made" +msgid_plural "%1 replacements made" +msgstr[0] "Provedena 1 náhrada" +msgstr[1] "Provedeny %1 náhrady" +msgstr[2] "Provedeno %1 náhrad" + +#: search/katesearchbar.cpp:300 +#, kde-format +msgctxt "short translation" +msgid "1 match found" +msgid_plural "%1 matches found" +msgstr[0] "Nalezena 1 shoda" +msgstr[1] "Nalezeny %1 shody" +msgstr[2] "Nalezeno %1 shod" + +#: search/katesearchbar.cpp:374 +#, kde-format +msgid "Reached top, continued from bottom" +msgstr "Dosaženo začátku, pokračuje se od konce" + +#: search/katesearchbar.cpp:376 +#, kde-format +msgid "Reached bottom, continued from top" +msgstr "Dosaženo konce, pokračuje se od začátku" + +#: search/katesearchbar.cpp:381 +#, kde-format +msgid "Not found" +msgstr "Nenalezeno" + +#: search/katesearchbar.cpp:615 +#, kde-format +msgid "Bottom of file reached. Continue from top?" +msgstr "Dosaženo konce souboru, pokračovat od začátku?" + +#: search/katesearchbar.cpp:615 +#, kde-format +msgid "Top of file reached. Continue from bottom?" +msgstr "Dosaženo začátku souboru. Pokračovat od konce?" + +#: search/katesearchbar.cpp:618 +#, kde-format +msgid "Continue search?" +msgstr "Pokračovat v hledání?" + +#: search/katesearchbar.cpp:920 +#, kde-format +msgid "SearchHighLight" +msgstr "Zvýraznění hledání" + +#: search/katesearchbar.cpp:1136 search/katesearchbar.cpp:1755 +#, kde-format +msgid "Clear history" +msgstr "Vyprázdnit historii" + +#: search/katesearchbar.cpp:1166 +#, kde-format +msgid "Beginning of line" +msgstr "Začátek řádku" + +#: search/katesearchbar.cpp:1167 +#, kde-format +msgid "End of line" +msgstr "Konec řádku" + +#: search/katesearchbar.cpp:1169 +#, kde-format +msgid "Match any character excluding new line (by default)" +msgstr "Jakýkoliv znak kromě nových řádků (výchozí)" + +#: search/katesearchbar.cpp:1170 +#, kde-format +msgid "One or more occurrences" +msgstr "Jeden nebo více výskytů" + +#: search/katesearchbar.cpp:1171 +#, kde-format +msgid "Zero or more occurrences" +msgstr "Žádný nebo více výskytů" + +#: search/katesearchbar.cpp:1172 +#, kde-format +msgid "Zero or one occurrences" +msgstr "Žádný nebo jeden výskyt" + +#: search/katesearchbar.cpp:1175 +#, kde-format +msgid " through occurrences" +msgstr " výskytů" + +#: search/katesearchbar.cpp:1181 +#, kde-format +msgid "Group, capturing" +msgstr "Skupina, zachytávání" + +#: search/katesearchbar.cpp:1182 +#, kde-format +msgid "Or" +msgstr "Nebo" + +#: search/katesearchbar.cpp:1183 +#, kde-format +msgid "Set of characters" +msgstr "Sada znaků" + +#: search/katesearchbar.cpp:1184 +#, kde-format +msgid "Negative set of characters" +msgstr "Záporná sada znaků" + +#: search/katesearchbar.cpp:1188 +#, kde-format +msgid "Whole match reference" +msgstr "Odkaz na celou shodu" + +#: search/katesearchbar.cpp:1199 +#, kde-format +msgid "Reference" +msgstr "Odkaz" + +#: search/katesearchbar.cpp:1206 +#, kde-format +msgid "Line break" +msgstr "Zalomení řádku" + +#: search/katesearchbar.cpp:1207 +#, kde-format +msgid "Tab" +msgstr "Tabulátor" + +#: search/katesearchbar.cpp:1210 +#, kde-format +msgid "Word boundary" +msgstr "Hranice slova" + +#: search/katesearchbar.cpp:1211 +#, kde-format +msgid "Not word boundary" +msgstr "Ne-hranice slova" + +#: search/katesearchbar.cpp:1212 +#, kde-format +msgid "Digit" +msgstr "Číslice" + +#: search/katesearchbar.cpp:1213 +#, kde-format +msgid "Non-digit" +msgstr "Ne-číslice" + +#: search/katesearchbar.cpp:1214 +#, kde-format +msgid "Whitespace (excluding line breaks)" +msgstr "Mezery (kromě zalomení řádků)" + +#: search/katesearchbar.cpp:1215 +#, kde-format +msgid "Non-whitespace" +msgstr "" + +#: search/katesearchbar.cpp:1216 +#, kde-format +msgid "Word character (alphanumerics plus '_')" +msgstr "Znak slova (písmena, číslice a '_')" + +#: search/katesearchbar.cpp:1217 +#, kde-format +msgid "Non-word character" +msgstr "Ne-slovní znak" + +#: search/katesearchbar.cpp:1220 +#, kde-format +msgid "Octal character 000 to 377 (2^8-1)" +msgstr "Osmičkový znak 000 až 377 (2^8-1)" + +#: search/katesearchbar.cpp:1221 +#, kde-format +msgid "Hex character 0000 to FFFF (2^16-1)" +msgstr "Šestnáctkový znak 0000 až FFFF (2^16-1)" + +#: search/katesearchbar.cpp:1222 +#, kde-format +msgid "Backslash" +msgstr "Zpětné lomítko" + +#: search/katesearchbar.cpp:1226 +#, kde-format +msgid "Group, non-capturing" +msgstr "Skupina nezachytávací" + +#: search/katesearchbar.cpp:1227 +#, kde-format +msgid "Positive Lookahead" +msgstr "Pozitivní vyhlížení" + +#: search/katesearchbar.cpp:1228 +#, kde-format +msgid "Negative lookahead" +msgstr "Záporný dopředný výrok" + +#: search/katesearchbar.cpp:1232 +#, kde-format +msgid "Fixed-length positive lookbehind" +msgstr "" + +#: search/katesearchbar.cpp:1233 +#, kde-format +msgid "Fixed-length negative lookbehind" +msgstr "" + +#: search/katesearchbar.cpp:1238 +#, kde-format +msgid "Begin lowercase conversion" +msgstr "Začátek převodu na malá" + +#: search/katesearchbar.cpp:1239 +#, kde-format +msgid "Begin uppercase conversion" +msgstr "Začátek převodu na velká" + +#: search/katesearchbar.cpp:1240 +#, kde-format +msgid "End case conversion" +msgstr "Konec převodu velikosti" + +#: search/katesearchbar.cpp:1241 +#, kde-format +msgid "Lowercase first character conversion" +msgstr "Převést první znak na malé písmeno" + +#: search/katesearchbar.cpp:1242 +#, kde-format +msgid "Uppercase first character conversion" +msgstr "Převést první znak na velké písmeno" + +#: search/katesearchbar.cpp:1243 +#, kde-format +msgid "Replacement counter (for Replace All)" +msgstr "Počítadlo nahrazování (pro nahrazení všech)" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: search/searchbarincremental.ui:50 +#, kde-format +msgid "F&ind:" +msgstr "Na&jít:" + +#. i18n: ectx: property (toolTip), widget (QComboBox, pattern) +#: search/searchbarincremental.ui:78 search/searchbarpower.ui:295 +#, kde-format +msgid "Text to search for" +msgstr "Hledat text" + +#. i18n: ectx: property (toolTip), widget (QToolButton, findNext) +#. i18n: ectx: property (toolTip), widget (QToolButton, next) +#: search/searchbarincremental.ui:91 search/searchbarpower.ui:175 +#, kde-format +msgid "Jump to next match" +msgstr "Přejít na následující výskyt" + +#. i18n: ectx: property (toolTip), widget (QToolButton, findPrev) +#. i18n: ectx: property (toolTip), widget (QToolButton, prev) +#: search/searchbarincremental.ui:101 search/searchbarpower.ui:185 +#, kde-format +msgid "Jump to previous match" +msgstr "Přejít na předchozí výskyt" + +#. i18n: ectx: property (toolTip), widget (QToolButton, matchCase) +#: search/searchbarincremental.ui:111 search/searchbarpower.ui:136 +#, kde-format +msgid "Match case sensitive" +msgstr "Rozlišovat velikost písmen" + +#. i18n: ectx: property (toolTip), widget (QToolButton, mutate) +#: search/searchbarincremental.ui:146 +#, kde-format +msgid "Switch to power search and replace bar" +msgstr "Přepnout panel do režimu rozšířeného hledání a nahrazování" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: search/searchbarpower.ui:50 +#, kde-format +msgid "Fin&d:" +msgstr "Na&jít:" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: search/searchbarpower.ui:63 +#, kde-format +msgid "Rep&lace:" +msgstr "&Nahradit:" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: search/searchbarpower.ui:76 +#, kde-format +msgid "&Mode:" +msgstr "Reži&m:" + +#. i18n: ectx: property (toolTip), widget (QComboBox, searchMode) +#: search/searchbarpower.ui:103 +#, kde-format +msgid "Search mode" +msgstr "Režim hledání" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:113 +#, kde-format +msgid "Plain text" +msgstr "Prostý text" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:118 +#, kde-format +msgid "Whole words" +msgstr "Celá slova" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:123 +#, kde-format +msgid "Escape sequences" +msgstr "Escape sekvence" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:128 +#, kde-format +msgid "Regular expression" +msgstr "Regulární výraz" + +#. i18n: ectx: property (toolTip), widget (QToolButton, selectionOnly) +#: search/searchbarpower.ui:149 +#, kde-format +msgid "Search in the selection only" +msgstr "Nastavit pouze ve výběru" + +#. i18n: ectx: property (toolTip), widget (QPushButton, replaceNext) +#: search/searchbarpower.ui:195 +#, kde-format +msgid "Replace next match" +msgstr "Nahradit následující výskyt" + +#. i18n: ectx: property (text), widget (QPushButton, replaceNext) +#. i18n: ectx: property (text), widget (QPushButton, m_replaceBtn) +#: search/searchbarpower.ui:198 spellcheck/spellcheckbar.ui:130 +#, kde-format +msgid "&Replace" +msgstr "Nah&radit" + +#. i18n: ectx: property (toolTip), widget (QPushButton, replaceAll) +#: search/searchbarpower.ui:224 +#, kde-format +msgid "Replace all matches" +msgstr "Nahradit všechny výskyty" + +#. i18n: ectx: property (text), widget (QPushButton, replaceAll) +#: search/searchbarpower.ui:227 +#, kde-format +msgid "Replace &All" +msgstr "N&ahradit vše" + +#. i18n: ectx: property (text), widget (QPushButton, findAll) +#: search/searchbarpower.ui:234 +#, kde-format +msgid "&Find All" +msgstr "&Najít vše" + +#. i18n: ectx: property (text), widget (QPushButton, cancel) +#: search/searchbarpower.ui:257 +#, kde-format +msgid "Cancel" +msgstr "Zrušit" + +#. i18n: ectx: property (toolTip), widget (QToolButton, mutate) +#: search/searchbarpower.ui:268 +#, kde-format +msgid "Switch to incremental search bar" +msgstr "Přepnout na panel pro přírůstkové vyhledávání" + +#. i18n: ectx: property (toolTip), widget (QComboBox, replacement) +#: search/searchbarpower.ui:314 +#, kde-format +msgid "Text to replace with" +msgstr "Text k nahrazení" + +#: spellcheck/spellcheckbar.cpp:148 +#, kde-format +msgid "Spell check canceled." +msgstr "Zrušena kontrola pravopisu." + +#: spellcheck/spellcheckbar.cpp:245 +#, kde-format +msgctxt "@info:progress" +msgid "Spell checking in progress…" +msgstr "Probíhá kontrola pravopisu…" + +#: spellcheck/spellcheckbar.cpp:246 spellcheck/spellcheckbar.cpp:435 +#, kde-format +msgctxt "@title:window" +msgid "Check Spelling" +msgstr "Zkontrolovat pravopis" + +#: spellcheck/spellcheckbar.cpp:432 spellcheck/spellcheckbar.cpp:435 +#, kde-format +msgid "Spell check complete." +msgstr "Kontrola pravopisu dokončena." + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel2) +#. i18n: ectx: property (whatsThis), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:30 spellcheck/spellcheckbar.ui:46 +#, kde-format +msgid "" +"

This word was considered to be an \"unknown word\" because it does " +"not match any entry in the dictionary currently in use. It may also be a " +"word in a foreign language.

\n" +"

If the word is not misspelled, you may add it to the dictionary by " +"clicking Add to Dictionary. If you do not want to add the unknown " +"word to the dictionary, but you want to leave it unchanged, click Ignore or Ignore All.

\n" +"

However, if the word is misspelled, you can try to find the correct " +"replacement in the list below. If you cannot find a replacement there, you " +"may type it in the text box below, and click Replace or Replace " +"All.

\n" +"
" +msgstr "" +"

Toto slovo je považováno za neznámé, protože neodpovídá žádné položce " +"v právě používaném slovníku. Možná je to také slovo v cizím jazyce.

\n" +"

Pokud je slovo napsáno správně, můžete je přidat do slovníku. " +"Pokud si jej nepřejete přidávat, ale přejete si jej ponechat nezměněné, " +"stiskněte Ignorovat nebo Ignorovat vše.

\n" +"

Pokud je ovšem slovo špatně napsáno, můžete se pokusit pro něj najít " +"vhodnou náhradu v seznamu níže. Pokud náhradu nenajdete, můžete ji stále " +"zapsat do textového políčka níže a zvolit Nahradit nebo Nahradit " +"vše.

\n" +"
" + +#. i18n: ectx: property (text), widget (QLabel, textLabel2) +#: spellcheck/spellcheckbar.ui:33 +#, kde-format +msgid "Unknown word:" +msgstr "Neznámé slovo:" + +#. i18n: ectx: property (toolTip), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:40 +#, kde-format +msgid "Unknown word" +msgstr "Neznámé slovo" + +#. i18n: ectx: property (text), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:49 +#, kde-format +msgid "misspelled" +msgstr "chybně napsáno" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_addBtn) +#: spellcheck/spellcheckbar.ui:72 +#, kde-format +msgid "" +"\n" +"

The unknown word was detected and considered unknown because it is not " +"included in the dictionary.
\n" +"Click here if you consider the unknown word not to be misspelled, and you " +"want to avoid wrongly detecting it again in the future. If you want to let " +"it remain as is, but not add it to the dictionary, then click Ignore " +"or Ignore All instead.

\n" +"
" +msgstr "" +"\n" +"

Toto slovo je považováno za neznámé, protože není obsaženo ve slovníku. " +"
\n" +"Klikněte sem, pokud si myslíte, že neznámé slovo není chybně napsáno a vy si " +"jej nepřejete znovu v budoucnu kontrolovat. Pokud si jej přejete ponechat " +"tak, jak je, a nepřidávat do slovníku, klikněte na Ignorovat popř. " +"Ignorovat vše.

\n" +"
" + +#. i18n: ectx: property (text), widget (QPushButton, m_addBtn) +#: spellcheck/spellcheckbar.ui:75 +#, kde-format +msgid "<< Add to Dictionary" +msgstr "<< Přidat do slovníku" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel4) +#: spellcheck/spellcheckbar.ui:89 +#, kde-format +msgid "" +"\n" +"

If the unknown word is misspelled, you should type the correction for " +"your misspelled word here or select it from the list below.

\n" +"

You can then click Replace if you want to correct only this " +"occurrence of the word or Replace All if you want to correct all " +"occurrences.

\n" +"
" +msgstr "" +"\n" +"

Pokud je neznámé slovo chybně napsáno, měli byste sem zapsat správné " +"slovo nebo jej vybrat ze seznamu níže.

\n" +"

K opravě tohoto slova klikněte na Nahradit, pokud si přejete " +"opravit pouze tento výskyt nebo na Nahradit vše pro nahrazení všech " +"výskytů.

\n" +"
" + +#. i18n: ectx: property (text), widget (QLabel, textLabel4) +#: spellcheck/spellcheckbar.ui:92 +#, kde-format +msgid "Replace with:" +msgstr "Nahradit za:" + +#. i18n: ectx: property (text), widget (QPushButton, m_suggestBtn) +#: spellcheck/spellcheckbar.ui:118 +#, kde-format +msgid "S&uggest" +msgstr "Navrhno&ut" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_replaceBtn) +#: spellcheck/spellcheckbar.ui:127 +#, kde-format +msgid "" +"\n" +"

Click here to replace this occurrence of the unknown text with the text " +"in the edit box above (to the left).

\n" +"
" +msgstr "" +"\n" +"

Klikněte sem pro nahrazení tohoto výskytu neznámého slova textem zadaným " +"do vstupního pole nahoře vlevo.

\n" +"
" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_skipBtn) +#: spellcheck/spellcheckbar.ui:140 +#, kde-format +msgid "" +"\n" +"

Click here to let this occurrence of the unknown word remain as is.

\n" +"

This action is useful when the word is a name, an acronym, a foreign word " +"or any other unknown word that you want to use but not add to the dictionary." +"

\n" +"
" +msgstr "" +"\n" +"

Klikněte sem pro ponechání tohoto výskytu slova tak, jak je.

\n" +"

Tato činnost je užitečná, pokud je slovo akronymem, cizím slovem, nebo " +"jiným neznámým slovem, které si nepřejete přidat do slovníku.

\n" +"
" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel5) +#. i18n: ectx: property (whatsThis), widget (Sonnet::DictionaryComboBox, m_language) +#: spellcheck/spellcheckbar.ui:156 spellcheck/spellcheckbar.ui:174 +#, kde-format +msgid "" +"\n" +"

Select the language of the document you are proofing here.

\n" +"
" +msgstr "" +"\n" +"

Zde vyberte jazyk kontrolovaného dokumentu.

\n" +"
" + +#. i18n: ectx: property (text), widget (QLabel, textLabel5) +#: spellcheck/spellcheckbar.ui:159 +#, kde-format +msgid "&Language:" +msgstr "&Jazyk:" + +#. i18n: ectx: property (toolTip), widget (Sonnet::DictionaryComboBox, m_language) +#: spellcheck/spellcheckbar.ui:169 +#, kde-format +msgid "Language Selection" +msgstr "Výběr jazyka" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_autoCorrect) +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_skipAllBtn) +#: spellcheck/spellcheckbar.ui:197 spellcheck/spellcheckbar.ui:222 +#, kde-format +msgid "" +"\n" +"

Click here to let all occurrences of the unknown word remain as they are." +"

\n" +"

This action is useful when the word is a name, an acronym, a foreign word " +"or any other unknown word that you want to use but not add to the dictionary." +"

\n" +"
" +msgstr "" +"\n" +"

Klikněte sem pro ponechání všech výskytů slova tak, jak jsou.

\n" +"

Tato činnost je užitečná, pokud je slovo akronymem, cizím slovem, nebo " +"jiným neznámým slovem, které si nepřejete přidat do slovníku.

\n" +"
" + +#. i18n: ectx: property (text), widget (QPushButton, m_autoCorrect) +#: spellcheck/spellcheckbar.ui:200 +#, kde-format +msgid "Autocorrect" +msgstr "Automatická oprava" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_replaceAllBtn) +#: spellcheck/spellcheckbar.ui:209 +#, kde-format +msgid "" +"\n" +"

Click here to replace all occurrences of the unknown text with the text " +"in the edit box above (to the left).

\n" +"
" +msgstr "" +"\n" +"

Klikněte sem pro nahrazení všech výskytů neznámého slova textem zadaným " +"do vstupního pole nahoře vlevo.

\n" +"
" + +#. i18n: ectx: property (text), widget (QPushButton, m_replaceAllBtn) +#: spellcheck/spellcheckbar.ui:212 +#, kde-format +msgid "R&eplace All" +msgstr "N&ahradit vše" + +#. i18n: ectx: property (text), widget (QPushButton, m_skipAllBtn) +#: spellcheck/spellcheckbar.ui:225 +#, kde-format +msgid "I&gnore All" +msgstr "I&gnorovat vše" + +#: spellcheck/spellcheckdialog.cpp:51 +#, kde-format +msgctxt "@action" +msgid "Spelling (from Cursor)…" +msgstr "Kontrola pravopisu (od kurzoru)..." + +#: spellcheck/spellcheckdialog.cpp:54 +#, kde-format +msgid "Check the document's spelling from the cursor and forward" +msgstr "Zkontrolovat pravopis od kurzoru dále" + +#: spellcheck/spellingmenu.cpp:76 +#, kde-format +msgid "Ignore Word" +msgstr "Ignorovat slovo" + +#: spellcheck/spellingmenu.cpp:79 +#, kde-format +msgid "Add to Dictionary" +msgstr "Přidat do slovníku" + +#: spellcheck/spellingmenu.cpp:172 +#, kde-format +msgid "Spelling '%1'" +msgstr "Kontrola pravopisu '%1'" + +#: swapfile/kateswapdiffcreator.cpp:87 +#, kde-format +msgid "" +"The diff command could not be found. Please make sure that diff(1) is " +"installed and in your PATH." +msgstr "" + +#: swapfile/kateswapdiffcreator.cpp:98 +#, kde-format +msgid "The diff command '%1' could not be started." +msgstr "" + +#: swapfile/kateswapfile.cpp:642 +#, kde-format +msgid "The file was not closed properly." +msgstr "Soubor nebyl zavřen správně." + +#: swapfile/kateswapfile.cpp:645 +#, kde-format +msgid "View Changes" +msgstr "Zobrazit změny" + +#: swapfile/kateswapfile.cpp:646 +#, kde-format +msgid "Recover Data" +msgstr "Obnovit data" + +#: swapfile/kateswapfile.cpp:647 +#, kde-format +msgid "Discard" +msgstr "Zahodit" + +#: syntax/katecolortreewidget.cpp:34 syntax/katecolortreewidget.cpp:61 +#, kde-format +msgid "Use default color from the color theme" +msgstr "Použít výchozí barvu ze barevného motivu" + +# žádné parametry funkce v inspektoru funkcí +#: syntax/katehighlightmenu.cpp:39 +#, kde-format +msgid "None" +msgstr "Nic" + +#: syntax/katestyletreewidget.cpp:135 +#, kde-format +msgctxt "@title:column Meaning of text in editor" +msgid "Context" +msgstr "Kontext" + +#: syntax/katestyletreewidget.cpp:136 +#, kde-format +msgctxt "@title:column Text style" +msgid "Normal" +msgstr "Normální" + +#: syntax/katestyletreewidget.cpp:136 +#, kde-format +msgctxt "@title:column Text style" +msgid "Selected" +msgstr "Vybrané" + +#: syntax/katestyletreewidget.cpp:136 +#, kde-format +msgctxt "@title:column Text style" +msgid "Background" +msgstr "Pozadí" + +#: syntax/katestyletreewidget.cpp:137 +#, kde-format +msgctxt "@title:column Text style" +msgid "Background Selected" +msgstr "Pozadí vybraného" + +#: syntax/katestyletreewidget.cpp:139 +#, kde-format +msgid "Use Default Style" +msgstr "Použít výchozí styl" + +#: syntax/katestyletreewidget.cpp:238 +#, kde-format +msgid "&Bold" +msgstr "&Tučné" + +#: syntax/katestyletreewidget.cpp:243 +#, kde-format +msgid "&Italic" +msgstr "&Skloněné" + +#: syntax/katestyletreewidget.cpp:248 +#, kde-format +msgid "&Underline" +msgstr "&Podtržené" + +#: syntax/katestyletreewidget.cpp:253 +#, kde-format +msgid "S&trikeout" +msgstr "Přeškr&tnuté" + +#: syntax/katestyletreewidget.cpp:260 +#, kde-format +msgctxt "@action:inmenu" +msgid "Normal &Color…" +msgstr "&Normální barva…" + +#: syntax/katestyletreewidget.cpp:263 +#, kde-format +msgctxt "@action:inmenu" +msgid "&Selected Color…" +msgstr "Barva &výběru…" + +#: syntax/katestyletreewidget.cpp:266 +#, kde-format +msgctxt "@action:inmenu" +msgid "&Background Color…" +msgstr "&Barva pozadí…" + +#: syntax/katestyletreewidget.cpp:269 +#, kde-format +msgctxt "@action:inmenu" +msgid "S&elected Background Color…" +msgstr "Barva &pozadí výběru…" + +#: syntax/katestyletreewidget.cpp:275 +#, kde-format +msgid "Unset Normal Color" +msgstr "" + +#: syntax/katestyletreewidget.cpp:278 +#, kde-format +msgid "Unset Selected Color" +msgstr "" + +#: syntax/katestyletreewidget.cpp:284 +#, kde-format +msgid "Unset Background Color" +msgstr "Zrušit barvu pozadí" + +#: syntax/katestyletreewidget.cpp:289 +#, kde-format +msgid "Unset Selected Background Color" +msgstr "Zrušit barvu pozadí výběru" + +#: syntax/katestyletreewidget.cpp:295 +#, kde-format +msgid "Use &Default Style" +msgstr "Použít vý&chozí styl" + +#: syntax/katestyletreewidget.cpp:408 +#, kde-format +msgctxt "No text or background color set" +msgid "None set" +msgstr "Nic nenastaveno" + +#: syntax/katestyletreewidget.cpp:642 +#, kde-format +msgid "" +"\"Use Default Style\" will be automatically unset when you change any style " +"properties." +msgstr "" +"Při změně jakékoli vlastnosti stylu bude automaticky vypnuta volba \"Použít " +"výchozí styl\"." + +#: syntax/katestyletreewidget.cpp:643 +#, kde-format +msgid "Kate Styles" +msgstr "Styly Kate" + +#: syntax/katethemeconfig.cpp:47 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Normal" +msgstr "Normální" + +#: syntax/katethemeconfig.cpp:49 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Keyword" +msgstr "Klíčové slovo" + +#: syntax/katethemeconfig.cpp:51 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Function" +msgstr "Funkce" + +#: syntax/katethemeconfig.cpp:53 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Variable" +msgstr "Proměnná" + +#: syntax/katethemeconfig.cpp:55 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Control Flow" +msgstr "" + +#: syntax/katethemeconfig.cpp:57 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Operator" +msgstr "Operátor" + +#: syntax/katethemeconfig.cpp:59 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Built-in" +msgstr "Vestavěno" + +#: syntax/katethemeconfig.cpp:61 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Extension" +msgstr "Přípona" + +#: syntax/katethemeconfig.cpp:63 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Preprocessor" +msgstr "Preprocesor" + +#: syntax/katethemeconfig.cpp:65 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Attribute" +msgstr "Atribut" + +#: syntax/katethemeconfig.cpp:68 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Character" +msgstr "Znak" + +#: syntax/katethemeconfig.cpp:70 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Special Character" +msgstr "Speciální znak" + +#: syntax/katethemeconfig.cpp:72 +#, kde-format +msgctxt "@item:intable Text context" +msgid "String" +msgstr "Řetězec" + +#: syntax/katethemeconfig.cpp:74 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Verbatim String" +msgstr "" + +#: syntax/katethemeconfig.cpp:76 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Special String" +msgstr "Speciální řetězec" + +#: syntax/katethemeconfig.cpp:78 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Imports, Modules, Includes" +msgstr "" + +#: syntax/katethemeconfig.cpp:81 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Data Type" +msgstr "Datový typ" + +#: syntax/katethemeconfig.cpp:83 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Decimal/Value" +msgstr "Decimální/Hodnota" + +#: syntax/katethemeconfig.cpp:85 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Base-N Integer" +msgstr "Celé číslo (Base-N)" + +#: syntax/katethemeconfig.cpp:87 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Floating Point" +msgstr "Plovoucí řádová čárka" + +#: syntax/katethemeconfig.cpp:89 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Constant" +msgstr "Konstanta" + +#: syntax/katethemeconfig.cpp:92 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Comment" +msgstr "Komentář" + +#: syntax/katethemeconfig.cpp:94 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Documentation" +msgstr "Dokumentace" + +#: syntax/katethemeconfig.cpp:96 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Annotation" +msgstr "Poznámka" + +#: syntax/katethemeconfig.cpp:98 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Comment Variable" +msgstr "Proměnná komentáře" + +#: syntax/katethemeconfig.cpp:101 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Region Marker" +msgstr "Značka regionu" + +#: syntax/katethemeconfig.cpp:103 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Information" +msgstr "Informace" + +#: syntax/katethemeconfig.cpp:105 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Warning" +msgstr "Varování" + +#: syntax/katethemeconfig.cpp:107 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Alert" +msgstr "Upozornění" + +#: syntax/katethemeconfig.cpp:110 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Others" +msgstr "Jiné" + +#: syntax/katethemeconfig.cpp:113 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Error" +msgstr "Chyba" + +#: syntax/katethemeconfig.cpp:162 +#, kde-format +msgid "Use Default Colors" +msgstr "Použít výchozí barvy" + +#: syntax/katethemeconfig.cpp:182 +#, kde-format +msgid "Editor Background Colors" +msgstr "Barvy pozadí pro editor" + +#: syntax/katethemeconfig.cpp:184 +#, kde-format +msgid "Text Area" +msgstr "Textová oblast" + +#: syntax/katethemeconfig.cpp:186 +#, kde-format +msgid "

Sets the background color of the editing area.

" +msgstr "

Nastaví barvu pozadí editační oblasti.

" + +#: syntax/katethemeconfig.cpp:191 +#, kde-format +msgid "Selected Text" +msgstr "Vybraný text" + +#: syntax/katethemeconfig.cpp:194 +#, kde-format +msgid "" +"

Sets the background color of the selection.

To set the text color " +"for selected text, use the "Configure Highlighting" dialog." +"

" +msgstr "" +"

Nastaví barvu pozadí výběru.

K nastavení barvy vybraného textu, " +"použijte dialog "Nastavení zvýrazňování".

" + +#: syntax/katethemeconfig.cpp:200 +#, kde-format +msgid "Current Line" +msgstr "Současný řádek" + +#: syntax/katethemeconfig.cpp:202 +#, kde-format +msgid "" +"

Sets the background color of the currently active line, which means the " +"line where your cursor is positioned.

" +msgstr "" +"

Nastaví barvu pozadí právě aktuální řádky, tj. řádky na níž je umístěn " +"kurzor.

" + +#: syntax/katethemeconfig.cpp:207 +#, kde-format +msgid "Search Highlight" +msgstr "Zvýraznění hledání" + +#: syntax/katethemeconfig.cpp:209 +#, kde-format +msgid "

Sets the background color of search results.

" +msgstr "

Nastaví barvu pozadí výsledků hledání.

" + +#: syntax/katethemeconfig.cpp:214 +#, kde-format +msgid "Replace Highlight" +msgstr "Zvýraznění nahrazení" + +#: syntax/katethemeconfig.cpp:216 +#, kde-format +msgid "

Sets the background color of replaced text.

" +msgstr "

Nastaví barvu pozadí nahrazeného textu.

" + +#: syntax/katethemeconfig.cpp:223 +#, kde-format +msgid "Icon Border" +msgstr "Okraj ikony" + +#: syntax/katethemeconfig.cpp:226 +#, kde-format +msgid "Background Area" +msgstr "Oblast pozadí" + +#: syntax/katethemeconfig.cpp:228 +#, kde-format +msgid "

Sets the background color of the icon border.

" +msgstr "

Nastaví barvu pozadí proužku ikon.

" + +#: syntax/katethemeconfig.cpp:233 view/screenshotdialog.cpp:265 +#, kde-format +msgid "Line Numbers" +msgstr "Čísla řádků" + +#: syntax/katethemeconfig.cpp:235 +#, kde-format +msgid "

This color will be used to draw the line numbers (if enabled).

" +msgstr "" +"

Barva bude použita pro čísla řádků (pokud je jejich zobrazení povoleno)." + +#: syntax/katethemeconfig.cpp:240 +#, kde-format +msgid "Current Line Number" +msgstr "Číslo současného řádku" + +#: syntax/katethemeconfig.cpp:242 +#, kde-format +msgid "" +"

This color will be used to draw the number of the current line (if " +"enabled).

" +msgstr "" +"

Barva bude použita pro čísla řádků (pokud je jejich zobrazení povoleno)." + +#: syntax/katethemeconfig.cpp:247 +#, kde-format +msgid "Separator" +msgstr "Oddělovač" + +#: syntax/katethemeconfig.cpp:249 +#, kde-format +msgid "" +"

This color will be used to draw the line between line numbers and the " +"icon borders, if both are enabled.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:254 +#, kde-format +msgid "Word Wrap Marker" +msgstr "Značka zalomení řádku" + +#: syntax/katethemeconfig.cpp:257 +#, kde-format +msgid "" +"

Sets the color of Word Wrap-related markers:

Static Word Wrap
A vertical line which shows the column where text is going to be " +"wrapped
Dynamic Word Wrap
An arrow shown to the left of " +"visually-wrapped lines
" +msgstr "" +"

Nastaví barvu značek zalomení řádků:

Pevné zalomení řádků
Svislá čára ukazující sloupec, kde bude text zalomen.
Pohyblivé zalomení řádků
Šipka nalevo od vizuálně zalomených " +"řádků
" + +#: syntax/katethemeconfig.cpp:264 +#, kde-format +msgid "Code Folding" +msgstr "Skládání kódu" + +#: syntax/katethemeconfig.cpp:266 +#, kde-format +msgid "

Sets the color of the code folding bar.

" +msgstr "

Nastaví barvu pruhu skládaní kódu.

" + +#: syntax/katethemeconfig.cpp:271 +#, kde-format +msgid "Modified Lines" +msgstr "Změněné řádky" + +#: syntax/katethemeconfig.cpp:273 +#, kde-format +msgid "" +"

Sets the color of the line modification marker for modified lines.

" +msgstr "

Nastaví barvu značky pro změněné řádky.

" + +#: syntax/katethemeconfig.cpp:278 +#, kde-format +msgid "Saved Lines" +msgstr "Uložené řádky" + +#: syntax/katethemeconfig.cpp:280 +#, kde-format +msgid "

Sets the color of the line modification marker for saved lines.

" +msgstr "

Nastaví barvu značky pro uložené řádky .

" + +#: syntax/katethemeconfig.cpp:287 +#, kde-format +msgid "Text Decorations" +msgstr "Dekorace textu" + +#: syntax/katethemeconfig.cpp:290 +#, kde-format +msgid "Spelling Mistake Line" +msgstr "Řádek s překlepem" + +#: syntax/katethemeconfig.cpp:292 +#, kde-format +msgid "" +"

Sets the color of the line that is used to indicate spelling mistakes.

" +msgstr "

Nastaví barvu řádku, která je použita pro vyznačení překlepů.

" + +#: syntax/katethemeconfig.cpp:297 +#, kde-format +msgid "Tab and Space Markers" +msgstr "Značky tabulátoru a mezer" + +#: syntax/katethemeconfig.cpp:299 +#, kde-format +msgid "

Sets the color of the tabulator marks.

" +msgstr "

Nastaví barvu pozadí značek tabulátoru.

" + +#: syntax/katethemeconfig.cpp:304 +#, kde-format +msgid "Indentation Line" +msgstr "Čára odsazování" + +#: syntax/katethemeconfig.cpp:306 +#, kde-format +msgid "

Sets the color of the vertical indentation lines.

" +msgstr "

Nastaví barvu svislých čar odsazování.

" + +#: syntax/katethemeconfig.cpp:311 +#, kde-format +msgid "Bracket Highlight" +msgstr "Zvýraznění závorky" + +#: syntax/katethemeconfig.cpp:314 +#, kde-format +msgid "" +"

Sets the bracket matching color. This means, if you place the cursor e.g. " +"at a (, the matching ) will be highlighted with this color.

" +msgstr "" +"

Nastaví barvu odpovídající závorky. To znamená, že umístíte-li kurzor " +"např. na (, pak odpovídající uzavírací ) bude touto barvou " +"zvýrazněna.

" + +#: syntax/katethemeconfig.cpp:322 +#, kde-format +msgid "Marker Colors" +msgstr "Barvy značkovačů" + +#: syntax/katethemeconfig.cpp:324 view/kateviewhelpers.cpp:1536 +#, kde-format +msgid "Bookmark" +msgstr "Záložka" + +#: syntax/katethemeconfig.cpp:325 +#, kde-format +msgid "Active Breakpoint" +msgstr "Aktivní zarážka" + +#: syntax/katethemeconfig.cpp:326 +#, kde-format +msgid "Reached Breakpoint" +msgstr "Dosažená zarážka" + +#: syntax/katethemeconfig.cpp:327 +#, kde-format +msgid "Disabled Breakpoint" +msgstr "Zakázaná zarážka" + +#: syntax/katethemeconfig.cpp:328 +#, kde-format +msgid "Execution" +msgstr "Vykonání" + +#: syntax/katethemeconfig.cpp:329 +#, kde-format +msgid "Warning" +msgstr "Varování" + +#: syntax/katethemeconfig.cpp:330 +#, kde-format +msgid "Error" +msgstr "Chyba" + +#: syntax/katethemeconfig.cpp:332 +#, kde-format +msgid "" +"

Sets the background color of mark type.

Note: The marker " +"color is displayed lightly because of transparency.

" +msgstr "" +"

Nastaví barvu pozadí zvoleného typu značky.

Poznámka: Kvůli " +"průhlednosti je barva značky světlejší.

" + +#: syntax/katethemeconfig.cpp:344 +#, kde-format +msgid "Text Templates & Snippets" +msgstr "Šablony a úryvky textu" + +#: syntax/katethemeconfig.cpp:349 +#, kde-format +msgid "Background" +msgstr "Pozadí" + +#: syntax/katethemeconfig.cpp:355 +#, kde-format +msgid "Editable Placeholder" +msgstr "Upravitelný zástupný symbol" + +#: syntax/katethemeconfig.cpp:361 +#, kde-format +msgid "Focused Editable Placeholder" +msgstr "Zaměřený upravitelný zástupný symbol" + +#: syntax/katethemeconfig.cpp:367 +#, kde-format +msgid "Not Editable Placeholder" +msgstr "Neupravitelný zástupný symbol" + +#: syntax/katethemeconfig.cpp:501 +#, kde-format +msgid "" +"

This list displays the default styles for the current color theme and " +"offers the means to edit them. The style name reflects the current style " +"settings.

To edit the colors, click the colored squares, or select the " +"color to edit from the popup menu.

You can unset the Background and " +"Selected Background colors from the popup menu when appropriate.

" +msgstr "" +"

Tento seznam zobrazuje výchozí styly aktuálního barevného motivu a " +"umožňuje jejich úpravu. Název stylu zohledňuje aktuální nastavení.

" +"

Pro úpravu barev klikněte na barevné čtverečky, anebo vyberte barvu z " +"vyskakovací nabídky.

Pomocí vyskakovací nabídky také můžete zrušit " +"barvy pro pozadí nebo pozadí výběru.

" + +#: syntax/katethemeconfig.cpp:568 +#, kde-format +msgctxt "@item:intable" +msgid "Normal Text & Source Code" +msgstr "Normální text a zdrojový kód" + +#: syntax/katethemeconfig.cpp:575 +#, kde-format +msgctxt "@item:intable" +msgid "Numbers, Types & Constants" +msgstr "Čísla, typy a konstanty" + +#: syntax/katethemeconfig.cpp:582 +#, kde-format +msgctxt "@item:intable" +msgid "Strings & Characters" +msgstr "Řetězce a znaky" + +#: syntax/katethemeconfig.cpp:589 +#, kde-format +msgctxt "@item:intable" +msgid "Comments & Documentation" +msgstr "Komentáře a dokumentace" + +#: syntax/katethemeconfig.cpp:596 +#, kde-format +msgctxt "@item:intable" +msgid "Miscellaneous" +msgstr "Různé" + +#: syntax/katethemeconfig.cpp:704 +#, kde-format +msgid "H&ighlight:" +msgstr "&Zvýraznění:" + +#: syntax/katethemeconfig.cpp:746 +#, kde-format +msgid "" +"

This list displays the contexts of the current syntax highlight mode and " +"offers the means to edit them. The context name reflects the current style " +"settings.

To edit using the keyboard, press <SPACE> and choose a property from the popup menu.

To edit the colors, " +"click the colored squares, or select the color to edit from the popup menu.

You can unset the Background and Selected Background colors from the " +"context menu when appropriate.

" +msgstr "" +"

Tento seznam zobrazuje kontexty aktuálního režimu syntaktického " +"zvýrazňování a umožňuje jejich úpravu. Název kontextu zohledňuje aktuální " +"nastavení stylu.

K úpravám s použitím klávesnice stiskněte <" +"Mezerník> a vyberte vlastnost ve vyskakovací nabídce.

K " +"úpravě barev buďto klikněte na barevné čtverečky, anebo vyberte upravovanou " +"barvu ve vyskakovací nabídce.

" + +#: syntax/katethemeconfig.cpp:1027 +#, kde-format +msgid "Default Theme" +msgstr "Výchozí motiv" + +#: syntax/katethemeconfig.cpp:1028 +#, kde-format +msgid "Theme Editor" +msgstr "Editor motivů" + +#: syntax/katethemeconfig.cpp:1046 +#, kde-format +msgid "Select theme:" +msgstr "Zvolte motiv:" + +#: syntax/katethemeconfig.cpp:1119 +#, kde-format +msgid "&Theme:" +msgstr "&Motiv:" + +#: syntax/katethemeconfig.cpp:1128 +#, kde-format +msgctxt "@action:button" +msgid "&Copy…" +msgstr "&Kopírovat…" + +#: syntax/katethemeconfig.cpp:1136 +#, kde-format +msgctxt "@action:button" +msgid "Export…" +msgstr "Exportovat…" + +#: syntax/katethemeconfig.cpp:1140 +#, kde-format +msgctxt "@action:button" +msgid "Import…" +msgstr "Importovat…" + +#: syntax/katethemeconfig.cpp:1147 +#, kde-format +msgid "Bundled read-only theme. To modify the theme, please copy it." +msgstr "" +"Přidaný motiv pouze pro čtení. Pokud jej chcete upravit, musíte jej " +"zkopírovat." + +#: syntax/katethemeconfig.cpp:1160 +#, kde-format +msgid "Colors" +msgstr "Barvy" + +#: syntax/katethemeconfig.cpp:1164 +#, kde-format +msgid "Default Text Styles" +msgstr "Výchozí styly textu" + +#: syntax/katethemeconfig.cpp:1168 +#, kde-format +msgid "Highlighting Text Styles" +msgstr "Zvýrazněné styly textu" + +#: syntax/katethemeconfig.cpp:1180 +#, kde-format +msgid "Exporting color theme: %1" +msgstr "" + +#: syntax/katethemeconfig.cpp:1182 syntax/katethemeconfig.cpp:1203 +#, kde-format +msgid "Color theme" +msgstr "Barevný motiv" + +#: syntax/katethemeconfig.cpp:1203 +#, kde-format +msgid "Importing Color Theme" +msgstr "Importuje se barevný motiv" + +#: syntax/katethemeconfig.cpp:1217 +#, kde-format +msgid "" +"Importing will overwrite the existing theme file \"%1\". This can not be " +"undone." +msgstr "" + +#: syntax/katethemeconfig.cpp:1219 +#, kde-format +msgid "Import Nevertheless" +msgstr "Přesto importovat" + +#: syntax/katethemeconfig.cpp:1308 +#, kde-format +msgid "Follow System Color Scheme" +msgstr "Následovat barevné schéma systému" + +#: syntax/katethemeconfig.cpp:1375 +#, kde-format +msgid "Do you really want to delete the theme \"%1\"? This can not be undone." +msgstr "" + +#: syntax/katethemeconfig.cpp:1377 +#, kde-format +msgid "Delete Nevertheless" +msgstr "Přesto smazat" + +#: syntax/katethemeconfig.cpp:1419 +#, kde-format +msgid "Copy theme" +msgstr "Kopírovat motiv" + +#: syntax/katethemeconfig.cpp:1420 +#, kde-format +msgid "Name for copy of color theme \"%1\":" +msgstr "" + +#: syntax/katethemeconfig.cpp:1432 +#, kde-format +msgid "" +"

The theme \"%1\" already exists.

Please choose a different theme " +"name.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:1433 +#, kde-format +msgid "Copy Theme" +msgstr "Kopírovat motiv" + +#: syntax/katethemeconfig.cpp:1486 syntax/katethemeconfig.cpp:1491 +#, kde-format +msgid "Color Themes" +msgstr "Barevné motivy" + +#: utils/kateautoindent.cpp:88 +#, kde-format +msgctxt "Autoindent mode" +msgid "None" +msgstr "Žádný" + +#: utils/kateautoindent.cpp:92 +#, kde-format +msgctxt "Autoindent mode" +msgid "Normal" +msgstr "Normální" + +#: utils/katebookmarks.cpp:49 +#, kde-format +msgid "Toggle &Bookmark" +msgstr "" + +#: utils/katebookmarks.cpp:53 +#, kde-format +msgid "If a line has no bookmark then add one, otherwise remove it." +msgstr "" +"Nemá-li ještě řádek žádnou, bude záložka přidána. V opačném případě bude " +"odebrána." + +#: utils/katebookmarks.cpp:56 +#, kde-format +msgid "Clear &All Bookmarks" +msgstr "Vym&azat všechny záložky" + +#: utils/katebookmarks.cpp:59 +#, kde-format +msgid "Remove all bookmarks of the current document." +msgstr "Odstranit všechny záložky ze současného dokumentu." + +#: utils/katebookmarks.cpp:62 utils/katebookmarks.cpp:219 +#, kde-format +msgid "Next Bookmark" +msgstr "Následující záložka" + +#: utils/katebookmarks.cpp:66 +#, kde-format +msgid "Go to the next bookmark." +msgstr "Jít na následující záložku." + +#: utils/katebookmarks.cpp:69 utils/katebookmarks.cpp:220 +#, kde-format +msgid "Previous Bookmark" +msgstr "Předchozí záložka" + +#: utils/katebookmarks.cpp:73 +#, kde-format +msgid "Go to the previous bookmark." +msgstr "Jít na předcházející záložku." + +#: utils/katebookmarks.cpp:76 +#, kde-format +msgid "&Bookmarks" +msgstr "&Záložky" + +#: utils/katebookmarks.cpp:192 +#, kde-format +msgid "&Next: %1 - \"%2\"" +msgstr "&Následující: %1 - \"%2\"" + +#: utils/katebookmarks.cpp:198 +#, kde-format +msgid "&Previous: %1 - \"%2\"" +msgstr "&Předchozí: %1 - \"%2\"" + +#: utils/katecmds.cpp:53 +#, kde-format +msgid "

indent

Indents the selected lines or the current line

" +msgstr "" + +#: utils/katecmds.cpp:58 +#, kde-format +msgid "

unindent

Unindents the selected lines or current line.

" +msgstr "" + +#: utils/katecmds.cpp:63 +#, kde-format +msgid "" +"

cleanindent

Cleans up the indentation of the selected lines or " +"current line according to the indentation settings in the document.

" +msgstr "" + +#: utils/katecmds.cpp:68 +#, kde-format +msgid "" +"

comment

Inserts comment markers to make the selection or selected " +"lines or current line a comment according to the text format as defined by " +"the syntax highlight definition for the document.

" +msgstr "" + +#: utils/katecmds.cpp:74 +#, kde-format +msgid "" +"

uncomment

Removes comment markers from the selection or selected " +"lines or current line according to the text format as defined by the syntax " +"highlight definition for the document.

" +msgstr "" + +#: utils/katecmds.cpp:80 +#, kde-format +msgid "" +"

goto line number

This command navigates to the specified " +"line number.

" +msgstr "" + +#: utils/katecmds.cpp:85 +#, kde-format +msgid "" +"

set-indent-pasted-text enable

If enabled, indentation of " +"text pasted from the clipboard is adjusted using the current indenter.

Possible true values: 1 on true
possible false values: 0 off false" +msgstr "" + +#: utils/katecmds.cpp:91 +#, kde-format +msgid "Deletes the current line." +msgstr "Smaže současný řádek." + +#: utils/katecmds.cpp:95 +#, kde-format +msgid "" +"

set-tab-width width

Sets the tab width to the number " +"width

" +msgstr "" + +#: utils/katecmds.cpp:100 +#, kde-format +msgid "" +"

set-replace-tab enable

If enabled, tabs are replaced with " +"spaces as you type.

Possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:107 +#, kde-format +msgid "" +"

set-show-tabs enable

If enabled, TAB characters and trailing " +"whitespace will be visualized by a small dot.

Possible true values: 1 " +"on true
possible false values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:114 +#, kde-format +msgid "" +"

set-remove-trailing-spaces mode

Removes the trailing spaces " +"in the document depending on the mode.

Possible values:" +"

  • none: never remove trailing spaces.
  • modified: " +"remove trailing spaces only of modified lines.
  • all: remove " +"trailing spaces in the entire document.

" +msgstr "" + +#: utils/katecmds.cpp:125 +#, kde-format +msgid "" +"

set-indent-width width

Sets the indentation width to the " +"number width. Used only if you are indenting with spaces.

" +msgstr "" + +#: utils/katecmds.cpp:130 +#, kde-format +msgid "" +"

set-indent-mode mode

The mode parameter is a value as seen " +"in the Tools - Indentation menu

" +msgstr "" + +#: utils/katecmds.cpp:135 +#, kde-format +msgid "" +"

set-auto-indent enable

Enable or disable autoindentation.

possible true values: 1 on true
possible false values: 0 off false" +msgstr "" + +#: utils/katecmds.cpp:142 +#, kde-format +msgid "" +"

set-line-numbers enable

Sets the visibility of the line " +"numbers pane.

possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:149 +#, kde-format +msgid "" +"

set-folding-markers enable

Sets the visibility of the " +"folding markers pane.

possible true values: 1 on true
possible " +"false values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:156 +#, kde-format +msgid "" +"

set-icon-border enable

Sets the visibility of the icon " +"border.

possible true values: 1 on true
possible false values: 0 " +"off false

" +msgstr "" + +#: utils/katecmds.cpp:163 +#, kde-format +msgid "" +"

set-word-wrap enable

Enables dynamic word wrap according to " +"enable

possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:170 +#, kde-format +msgid "" +"

set-word-wrap-column width

Sets the line width for hard " +"wrapping to width. This is used if you are having your text wrapped " +"automatically.

" +msgstr "" + +#: utils/katecmds.cpp:175 +#, kde-format +msgid "" +"

set-replace-tabs-save enable

When enabled, tabs will be " +"replaced with whitespace whenever the document is saved.

possible " +"true values: 1 on true
possible false values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:182 +#, kde-format +msgid "" +"

set-highlight highlight

Sets the syntax highlighting system " +"for the document. The argument must be a valid highlight name, as seen in " +"the Tools → Highlighting menu. This command provides an autocompletion list " +"for its argument.

" +msgstr "" + +#: utils/katecmds.cpp:188 +#, kde-format +msgid "

set-mode mode

Sets the mode as seen in Tools - Mode

" +msgstr "" + +#: utils/katecmds.cpp:193 +#, kde-format +msgid "" +"

set-show-indent enable

If enabled, indentation will be " +"visualized by a vertical dotted line.

possible true values: 1 on " +"true
possible false values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:199 +#, kde-format +msgid "

Open the Print dialog to print the current document.

" +msgstr "" + +#: utils/katecmds.cpp:314 utils/katecmds.cpp:341 +#, kde-format +msgid "Missing argument. Usage: %1 " +msgstr "Chybějící argument. Použití: %1 " + +#: utils/katecmds.cpp:327 +#, kde-format +msgid "No such highlighting '%1'" +msgstr "Takové zvýrazňování neexistuje '%1'" + +#: utils/katecmds.cpp:333 +#, kde-format +msgid "No such mode '%1'" +msgstr "Takový režim neexistuje: '%1'" + +#: utils/katecmds.cpp:346 +#, kde-format +msgid "Failed to convert argument '%1' to integer." +msgstr "Převod argumentu '%1' na celé číslo se nezdařil." + +#: utils/katecmds.cpp:350 utils/katecmds.cpp:355 +#, kde-format +msgid "Width must be at least 1." +msgstr "Šířka musí být alespoň 1." + +#: utils/katecmds.cpp:360 +#, kde-format +msgid "Column must be at least 1." +msgstr "Sloupec musí být alespoň 1." + +#: utils/katecmds.cpp:390 +#, kde-format +msgid "Usage: %1 on|off|1|0|true|false" +msgstr "Použití: %1 on|off|1|0|true|false" + +#: utils/katecmds.cpp:417 +#, kde-format +msgid "Bad argument '%1'. Usage: %2 on|off|1|0|true|false" +msgstr "Chybný argument '%1'. Použití: %2 on|off|1|0|true|false" + +#: utils/katecmds.cpp:421 +#, kde-format +msgid "" +"Usage: set-remove-trailing-spaces 0|-|none or 1|+|mod|modified or 2|*|all" +msgstr "" + +#: utils/katecmds.cpp:435 vimode/cmds.cpp:168 +#, kde-format +msgid "Unknown command '%1'" +msgstr "Neznámý příkaz '%1'" + +#: utils/katecmds.cpp:493 +#, kde-format +msgid "" +"

char identifier

This command allows you to insert literal " +"characters by their numerical identifier, in decimal, octal or hexadecimal " +"form.

Examples:

  • char 234
  • char 0x1234

" +msgstr "" + +#: utils/katecmds.cpp:560 +#, kde-format +msgid "" +"

date or date format

Inserts a date/time string as defined by " +"the specified format, or the format yyyy-MM-dd hh:mm:ss if none is specified." +"

Possible format specifiers are:
dThe day as " +"number without a leading zero (1-31).
ddThe day as " +"number with a leading zero (01-31).
dddThe " +"abbreviated localized day name (e.g. 'Mon'..'Sun').
ddddThe long localized day name (e.g. 'Monday'..'Sunday').
MThe month as number without a leading zero (1-12).
MMThe month as number with a leading zero (01-12).
MMMThe abbreviated localized month name (e.g. " +"'Jan'..'Dec').
yyThe year as two digit number " +"(00-99).
yyyyThe year as four digit number " +"(1752-8000).
hThe hour without a leading zero " +"(0..23 or 1..12 if AM/PM display).
hhThe hour with " +"a leading zero (00..23 or 01..12 if AM/PM display).
mThe minute without a leading zero (0..59).
mmThe minute with a leading zero (00..59).
sThe second without a leading zero (0..59).
ssThe second with a leading zero (00..59).
zThe milliseconds without leading zeroes (0..999).
zzzThe milliseconds with leading zeroes (000..999).
APUse AM/PM display. AP will be replaced by either " +"\"AM\" or \"PM\".
apUse am/pm display. ap will be " +"replaced by either \"am\" or \"pm\".

" +msgstr "" + +#: utils/katecmds.cpp:621 +#, kde-format +msgid "Remove Duplicate Lines" +msgstr "Odstranit duplicitní řádky" + +#: utils/katecmds.cpp:622 +#, kde-format +msgid "Remove Duplicates and Sort Text Alphabetically" +msgstr "Odstranit duplikáty a seřadit podle abecedy" + +#: utils/katecmds.cpp:623 +#, kde-format +msgid "Sort Text Naturally" +msgstr "" + +#: utils/katecmds.cpp:624 +#, kde-format +msgid "Sort Selected Text Alphabetically" +msgstr "" + +#: utils/katecmds.cpp:699 +#, kde-format +msgid "" +"

sort

Sort the selected text or whole document if there is no " +"selection

" +msgstr "" + +#: utils/katecmds.cpp:703 +#, kde-format +msgid "" +"

uniq

Remove duplicate lines from the selected text or whole " +"document if there is no selection.

" +msgstr "" + +#: utils/katecmds.cpp:707 +#, kde-format +msgid "" +"

sortuniq

Sort the selected text or whole document and then remove " +"all duplicate lines.

" +msgstr "" + +#: utils/katecmds.cpp:711 +#, kde-format +msgid "" +"

natsort

Sort the selected text or whole document in natural order." +"
Here is an example to show the difference to the normal sort method:" +"
sort(a10, a1, a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" +msgstr "" + +#: utils/kateglobal.cpp:60 +#, kde-format +msgid "Kate Part" +msgstr "Kate Part" + +#: utils/kateglobal.cpp:62 +#, kde-format +msgid "Embeddable editor component" +msgstr "Komponenta vestavěného editoru" + +#: utils/kateglobal.cpp:64 +#, kde-format +msgid "(c) 2000-2025 The Kate Authors" +msgstr "" + +#: utils/kateglobal.cpp:84 +#, kde-format +msgid "Christoph Cullmann" +msgstr "Christoph Cullmann" + +#: utils/kateglobal.cpp:84 +#, kde-format +msgid "Maintainer" +msgstr "Správce" + +#: utils/kateglobal.cpp:85 +#, kde-format +msgid "Dominik Haumann" +msgstr "Dominik Haumann" + +#: utils/kateglobal.cpp:85 utils/kateglobal.cpp:86 utils/kateglobal.cpp:87 +#: utils/kateglobal.cpp:90 utils/kateglobal.cpp:93 utils/kateglobal.cpp:98 +#, kde-format +msgid "Core Developer" +msgstr "Přední vývojář" + +#: utils/kateglobal.cpp:86 +#, kde-format +msgid "Milian Wolff" +msgstr "Milian Wolff" + +#: utils/kateglobal.cpp:87 +#, kde-format +msgid "Joseph Wenninger" +msgstr "Joseph Wenninger" + +#: utils/kateglobal.cpp:88 +#, kde-format +msgid "Erlend Hamberg" +msgstr "Erlend Hamberg" + +#: utils/kateglobal.cpp:89 +#, kde-format +msgid "Bernhard Beschow" +msgstr "Bernhard Beschow" + +#: utils/kateglobal.cpp:89 utils/kateglobal.cpp:105 +#, kde-format +msgid "Developer" +msgstr "Vývojář" + +#: utils/kateglobal.cpp:90 +#, kde-format +msgid "Anders Lund" +msgstr "Anders Lund" + +#: utils/kateglobal.cpp:91 +#, kde-format +msgid "Michel Ludwig" +msgstr "Michel Ludwig" + +#: utils/kateglobal.cpp:91 +#, kde-format +msgid "On-the-fly spell checking" +msgstr "Kontrola pravopisu za běhu" + +#: utils/kateglobal.cpp:92 +#, kde-format +msgid "Pascal Létourneau" +msgstr "Pascal Létourneau" + +#: utils/kateglobal.cpp:92 +#, kde-format +msgid "Large scale bug fixing" +msgstr "Rozsáhlé opravy chyb" + +#: utils/kateglobal.cpp:93 +#, kde-format +msgid "Hamish Rodda" +msgstr "Hamish Rodda" + +#: utils/kateglobal.cpp:94 +#, kde-format +msgid "Waldo Bastian" +msgstr "Waldo Bastian" + +#: utils/kateglobal.cpp:94 +#, kde-format +msgid "The cool buffersystem" +msgstr "Skvělý systém vyrovnávací paměti" + +#: utils/kateglobal.cpp:95 +#, kde-format +msgid "Charles Samuels" +msgstr "Charles Samuels" + +#: utils/kateglobal.cpp:95 +#, kde-format +msgid "The Editing Commands" +msgstr "Příkazy pro úpravy" + +#: utils/kateglobal.cpp:96 +#, kde-format +msgid "Matt Newell" +msgstr "Matt Newell" + +#: utils/kateglobal.cpp:96 +#, kde-format +msgid "Testing, ..." +msgstr "Testování, ..." + +#: utils/kateglobal.cpp:97 +#, kde-format +msgid "Michael Bartl" +msgstr "Michael Bartl" + +#: utils/kateglobal.cpp:97 +#, kde-format +msgid "Former Core Developer" +msgstr "Bývalý přední vývojář" + +#: utils/kateglobal.cpp:98 +#, kde-format +msgid "Michael McCallum" +msgstr "Michael McCallum" + +#: utils/kateglobal.cpp:99 +#, kde-format +msgid "Michael Koch" +msgstr "Michael Koch" + +#: utils/kateglobal.cpp:99 +#, kde-format +msgid "KWrite port to KParts" +msgstr "Převod KWrite do KParts" + +#: utils/kateglobal.cpp:100 +#, kde-format +msgid "Christian Gebauer" +msgstr "Christian Gebauer" + +#: utils/kateglobal.cpp:101 +#, kde-format +msgid "Simon Hausmann" +msgstr "Simon Hausmann" + +#: utils/kateglobal.cpp:102 +#, kde-format +msgid "Glen Parker" +msgstr "Glen Parker" + +#: utils/kateglobal.cpp:102 +#, kde-format +msgid "KWrite Undo History, Kspell integration" +msgstr "Historie pro operaci zpět, začlenění KSpell" + +#: utils/kateglobal.cpp:103 +#, kde-format +msgid "Scott Manson" +msgstr "Scott Manson" + +#: utils/kateglobal.cpp:103 +#, kde-format +msgid "KWrite XML Syntax highlighting support" +msgstr "Podpora zvýrazňování XML syntaxe" + +#: utils/kateglobal.cpp:104 +#, kde-format +msgid "John Firebaugh" +msgstr "John Firebaugh" + +#: utils/kateglobal.cpp:104 +#, kde-format +msgid "Patches and more" +msgstr "Záplaty a ostatní" + +#: utils/kateglobal.cpp:105 +#, kde-format +msgid "Andreas Kling" +msgstr "Andreas Kling" + +#: utils/kateglobal.cpp:106 +#, kde-format +msgid "Mirko Stocker" +msgstr "Mirko Stocker" + +#: utils/kateglobal.cpp:106 +#, kde-format +msgid "Various bugfixes" +msgstr "Různé opravy chyb" + +#: utils/kateglobal.cpp:107 +#, kde-format +msgid "Matthew Woehlke" +msgstr "Matthew Woehlke" + +#: utils/kateglobal.cpp:107 +#, kde-format +msgid "Selection, KColorScheme integration" +msgstr "Výběr textu, začlenění KColorScheme" + +#: utils/kateglobal.cpp:108 +#, kde-format +msgid "Sebastian Pipping" +msgstr "Sebastian Pipping" + +#: utils/kateglobal.cpp:109 +#, kde-format +msgid "Search bar back- and front-end" +msgstr "Panel hledání - podpůrná vrstva a rozhraní" + +#: utils/kateglobal.cpp:112 +#, kde-format +msgid "Jochen Wilhelmy" +msgstr "Jochen Wilhelmy" + +#: utils/kateglobal.cpp:112 +#, kde-format +msgid "Original KWrite Author" +msgstr "Původní autor KWrite" + +#: utils/kateglobal.cpp:113 +#, kde-format +msgid "Gerald Senarclens de Grancy" +msgstr "Gerald Senarclens de Grancy" + +#: utils/kateglobal.cpp:113 +#, kde-format +msgid "QA and Scripting" +msgstr "QA a skriptování" + +#: utils/kateglobal.cpp:115 +#, kde-format +msgid "Matteo Merli" +msgstr "Matteo Merli" + +#: utils/kateglobal.cpp:115 +#, kde-format +msgid "Highlighting for RPM Spec-Files, Perl, Diff and more" +msgstr "Zvýraznění pro soubory RPM Spec, Perl, Diff a ostatní" + +#: utils/kateglobal.cpp:116 +#, kde-format +msgid "Rocky Scaletta" +msgstr "Rocky Scaletta" + +#: utils/kateglobal.cpp:116 +#, kde-format +msgid "Highlighting for VHDL" +msgstr "Zvýraznění pro VHDL" + +#: utils/kateglobal.cpp:117 +#, kde-format +msgid "Yury Lebedev" +msgstr "Yury Lebedev" + +#: utils/kateglobal.cpp:117 +#, kde-format +msgid "Highlighting for SQL" +msgstr "Zvýraznění pro SQL" + +#: utils/kateglobal.cpp:118 +#, kde-format +msgid "Chris Ross" +msgstr "Chris Ross" + +#: utils/kateglobal.cpp:118 +#, kde-format +msgid "Highlighting for Ferite" +msgstr "Zvýraznění pro Ferite" + +#: utils/kateglobal.cpp:119 +#, kde-format +msgid "Nick Roux" +msgstr "Nick Roux" + +#: utils/kateglobal.cpp:119 +#, kde-format +msgid "Highlighting for ILERPG" +msgstr "Zvýraznění pro ILERPG" + +#: utils/kateglobal.cpp:120 +#, kde-format +msgid "Carsten Niehaus" +msgstr "Carsten Niehaus" + +#: utils/kateglobal.cpp:120 +#, kde-format +msgid "Highlighting for LaTeX" +msgstr "Zvýraznění pro LaTeX" + +#: utils/kateglobal.cpp:121 +#, kde-format +msgid "Per Wigren" +msgstr "Per Wigren" + +#: utils/kateglobal.cpp:121 +#, kde-format +msgid "Highlighting for Makefiles, Python" +msgstr "Zvýraznění pro Makefile, Python" + +#: utils/kateglobal.cpp:122 +#, kde-format +msgid "Jan Fritz" +msgstr "Jan Fritz" + +#: utils/kateglobal.cpp:122 +#, kde-format +msgid "Highlighting for Python" +msgstr "Zvýraznění pro Python" + +#: utils/kateglobal.cpp:123 +#, kde-format +msgid "Daniel Naber" +msgstr "Daniel Naber" + +#: utils/kateglobal.cpp:124 +#, kde-format +msgid "Roland Pabel" +msgstr "Roland Pabel" + +#: utils/kateglobal.cpp:124 +#, kde-format +msgid "Highlighting for Scheme" +msgstr "Zvýraznění pro Scheme" + +#: utils/kateglobal.cpp:125 +#, kde-format +msgid "Cristi Dumitrescu" +msgstr "Cristi Dumitrescu" + +#: utils/kateglobal.cpp:125 +#, kde-format +msgid "PHP Keyword/Datatype list" +msgstr "Seznam párů klíčové slovo/datový typ pro PHP" + +#: utils/kateglobal.cpp:126 +#, kde-format +msgid "Carsten Pfeiffer" +msgstr "Carsten Pfeiffer" + +#: utils/kateglobal.cpp:126 +#, kde-format +msgid "Very nice help" +msgstr "Velmi pěkná nápověda" + +#: utils/kateglobal.cpp:127 +#, kde-format +msgid "Bruno Massa" +msgstr "Bruno Massa" + +#: utils/kateglobal.cpp:127 +#, kde-format +msgid "Highlighting for Lua" +msgstr "Zvýraznění pro Lua" + +#: utils/kateglobal.cpp:129 +#, kde-format +msgid "All people who have contributed and I have forgotten to mention" +msgstr "Všem přispěvatelům o kterých jsem se zapomněl zmínit" + +#: utils/kateglobal.cpp:131 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Lukáš Tinkl, Miroslav Flídr,Klára Cihlářová" + +#: utils/kateglobal.cpp:131 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "lukas@kde.org, flidr@kky.zcu.cz,koty@seznam.cz" + +#: utils/kateglobal.cpp:255 +#, kde-format +msgid "Configure" +msgstr "Nastavit" + +#: utils/katesedcmd.cpp:268 +#, kde-format +msgid "replace with %1?" +msgstr "nahradit za %1?" + +#: utils/katesedcmd.cpp:274 +#, kde-format +msgctxt "%2 is the translation of the next message" +msgid "1 replacement done on %2" +msgid_plural "%1 replacements done on %2" +msgstr[0] "Provedeno 1 nahrazení v %2" +msgstr[1] "Provedeny %1 nahrazení v %2" +msgstr[2] "Provedeno %1 nahrazení v %2" + +#: utils/katesedcmd.cpp:277 +#, kde-format +msgctxt "substituted into the previous message" +msgid "1 line" +msgid_plural "%1 lines" +msgstr[0] "1 řádek" +msgstr[1] "%1 řádky" +msgstr[2] "%1 řádků" + +#: utils/katevariableexpansionhelpers.cpp:77 +#, kde-format +msgid "" +msgstr "" + +#: utils/katevariableexpansionhelpers.cpp:161 +#, kde-format +msgid "Insert variable" +msgstr "Vložit proměnnou" + +#: utils/katevariableexpansionhelpers.cpp:165 +#, kde-format +msgid "Variables" +msgstr "Proměnné" + +#: utils/katevariableexpansionhelpers.cpp:169 +#, kde-format +msgid "Filter" +msgstr "Filtr" + +#: utils/katevariableexpansionhelpers.cpp:188 +#: utils/katevariableexpansionhelpers.cpp:217 +#, kde-format +msgid "Please select a variable." +msgstr "Prosím, zasejte proměnnou." + +#: utils/katevariableexpansionhelpers.cpp:206 +#, kde-format +msgid "Current value: %1" +msgstr "Současná hodnota: %1" + +#: utils/katevariableexpansionhelpers.cpp:214 +#, kde-format +msgid "Current value: %1" +msgstr "Současná hodnota: %1" + +#: utils/katevariableexpansionmanager.cpp:86 +#, kde-format +msgid "File base name without path and suffix of the current document." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:94 +#, kde-format +msgid "File extension of the current document." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:102 +#, kde-format +msgid "File name without path of the current document." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:110 +#, kde-format +msgid "Full path of the current document including the file name." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:118 +#, kde-format +msgid "Contents of the current document." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:125 +#, kde-format +msgid "Full path of the current document excluding the file name." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:133 +#, kde-format +msgid "" +"Full document path including file name, with native path separator " +"(backslash on Windows)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:141 +#, kde-format +msgid "" +"Full document path excluding file name, with native path separator " +"(backslash on Windows)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:149 +#, kde-format +msgid "" +"Line number of the text cursor position in current document (starts with 0)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:156 +#, kde-format +msgid "" +"Column number of the text cursor position in current document (starts with " +"0)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:163 +#, kde-format +msgid "X component in global screen coordinates of the cursor position." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:170 +#, kde-format +msgid "Y component in global screen coordinates of the cursor position." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:177 +#, kde-format +msgid "Text selection of the current document." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:184 +#, kde-format +msgid "Start line of selected text of the current document." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:191 +#, kde-format +msgid "Start column of selected text of the current document." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:198 +#, kde-format +msgid "End line of selected text of the current document." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:205 +#, kde-format +msgid "End column of selected text of the current document." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:212 +#, kde-format +msgid "Number of rows of the current document." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:219 +#, kde-format +msgid "Read a document variable." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:227 +#, kde-format +msgid "The current date in current locale format." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:234 +#, kde-format +msgid "The current date (ISO)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:241 +#, kde-format +msgid "The current date (QDate formatstring)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:249 +#, kde-format +msgid "The current time in current locale format." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:256 +#, kde-format +msgid "The current time (ISO)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:263 +#, kde-format +msgid "The current time (QTime formatstring)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:271 +#, kde-format +msgid "Access to environment variables." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:279 +#, kde-format +msgid "Evaluate simple JavaScript statements." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:289 +#, kde-format +msgid "Encode text to make it URL compatible." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:297 +#, kde-format +msgid "Generate a new UUID." +msgstr "" + +#: variableeditor/variableeditor.cpp:40 +#, kde-format +msgid "Kate Handbook." +msgstr "Příručka Kate." + +#: variableeditor/variableeditor.cpp:213 +#, kde-format +msgid "true" +msgstr "pravda" + +#: variableeditor/variableeditor.cpp:214 +#, kde-format +msgid "false" +msgstr "nepravda" + +#: variableeditor/variableeditor.cpp:350 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "none" +msgstr "nic" + +#: variableeditor/variableeditor.cpp:351 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "modified" +msgstr "změněno" + +#: variableeditor/variableeditor.cpp:352 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "all" +msgstr "vše" + +#: variableeditor/variablelineedit.cpp:42 +#, kde-format +msgid "Show list of valid variables." +msgstr "Zobrazit seznam platných proměnných." + +#: variableeditor/variablelineedit.cpp:115 +#, kde-format +msgctxt "short translation please" +msgid "Enable automatic insertion of brackets." +msgstr "Povolit automatické vkládání závorek" + +#: variableeditor/variablelineedit.cpp:121 +#, kde-format +msgctxt "short translation please" +msgid "Set the number of autocenter lines." +msgstr "Nastavit počet řádků pro automatické centrování." + +#: variableeditor/variablelineedit.cpp:126 +#, kde-format +msgctxt "short translation please" +msgid "Set the document background color." +msgstr "Nastavit barvu pozadí dokumentu." + +#: variableeditor/variablelineedit.cpp:131 +#, kde-format +msgctxt "short translation please" +msgid "Pressing backspace in leading whitespace unindents." +msgstr "Klávesa backspace zpětně odsazuje v úvodních mezerách." + +#: variableeditor/variablelineedit.cpp:139 +#, kde-format +msgctxt "short translation please" +msgid "Enable block selection mode." +msgstr "Povolit režim blokového výběru." + +#: variableeditor/variablelineedit.cpp:144 +#, kde-format +msgctxt "short translation please" +msgid "Enable the byte order mark (BOM) when saving Unicode files." +msgstr "Povolit značku pořadí bajtů při ukládání souborů v Unicode." + +#: variableeditor/variablelineedit.cpp:149 +#, kde-format +msgctxt "short translation please" +msgid "Set the color for the bracket highlight." +msgstr "Vyberte barvu pro zvýraznění závorek." + +#: variableeditor/variablelineedit.cpp:154 +#, kde-format +msgctxt "short translation please" +msgid "Set the background color for the current line." +msgstr "Nastavit barvu pozadí aktuálního řádku." + +#: variableeditor/variablelineedit.cpp:160 +#, kde-format +msgctxt "short translation please" +msgid "Set the default dictionary used for spell checking." +msgstr "Nastavit výchozí slovník použitý ke kontrole pravopisu." + +#: variableeditor/variablelineedit.cpp:165 +#, kde-format +msgctxt "short translation please" +msgid "Enable dynamic word wrap of long lines." +msgstr "Povolit pohyblivé zalamování u dlouhých řádků." + +#: variableeditor/variablelineedit.cpp:172 +#, kde-format +msgctxt "short translation please" +msgid "Sets the end of line mode." +msgstr "Nastavit režim pro konce řádků." + +#: variableeditor/variablelineedit.cpp:177 +#, kde-format +msgctxt "short translation please" +msgid "" +"Enable whether pressing enter will insert selected auto completion item." +msgstr "" + +#: variableeditor/variablelineedit.cpp:182 +#, kde-format +msgctxt "short translation please" +msgid "Enable folding markers in the editor border." +msgstr "Povolit značky skládání kódu na okraji editoru." + +#: variableeditor/variablelineedit.cpp:187 +#, kde-format +msgctxt "short translation please" +msgid "Enable folding preview in the editor border." +msgstr "Povolit náhled skládání kódu na okraji editoru." + +#: variableeditor/variablelineedit.cpp:193 +#, kde-format +msgctxt "short translation please" +msgid "Set the point size of the document font." +msgstr "Nastavit velikost písma dokumentu." + +#: variableeditor/variablelineedit.cpp:198 +#, kde-format +msgctxt "short translation please" +msgid "Set the font of the document." +msgstr "Nastavit písmo dokumentu." + +#: variableeditor/variablelineedit.cpp:214 +#, kde-format +msgctxt "short translation please" +msgid "Set the syntax highlighting." +msgstr "Nastavit zvýrazňování syntaxe." + +#: variableeditor/variablelineedit.cpp:219 +#, kde-format +msgctxt "short translation please" +msgid "Set the icon bar color." +msgstr "Nastavit barvu panelu ikon." + +#: variableeditor/variablelineedit.cpp:224 +#, kde-format +msgctxt "short translation please" +msgid "Enable the icon border in the editor view." +msgstr "Povolit proužek s ikonami v pohledu na editor." + +#: variableeditor/variablelineedit.cpp:229 +#, kde-format +msgctxt "short translation please" +msgid "Set the auto indentation style." +msgstr "Nastavit styl automatického odsazení." + +#: variableeditor/variablelineedit.cpp:234 +#, kde-format +msgctxt "short translation please" +msgid "Adjust indentation of text pasted from the clipboard." +msgstr "Upravit odsazení textu vloženého ze schránky." + +#: variableeditor/variablelineedit.cpp:240 +#, kde-format +msgctxt "short translation please" +msgid "Set the indentation depth for each indent level." +msgstr "Nastavit hloubku odsazení pro každou úroveň." + +#: variableeditor/variablelineedit.cpp:245 +#, kde-format +msgctxt "short translation please" +msgid "Allow odd indentation level (no multiple of indent width)." +msgstr "Povolit zvláštní úroveň odsazení (není násobek normálního)." + +#: variableeditor/variablelineedit.cpp:250 +#, kde-format +msgctxt "short translation please" +msgid "Show line numbers." +msgstr "Zobrazit čísla řádků." + +#: variableeditor/variablelineedit.cpp:255 +#, kde-format +msgctxt "short translation please" +msgid "Insert newline at end of file on save." +msgstr "Před uložením ukončit poslední řádek." + +#: variableeditor/variablelineedit.cpp:260 +#, kde-format +msgctxt "short translation please" +msgid "Enable overwrite mode in the document." +msgstr "Povolit v dokumentu režim přepisování." + +#: variableeditor/variablelineedit.cpp:265 +#, kde-format +msgctxt "short translation please" +msgid "Enable persistent text selection." +msgstr "Povolit trvalý výběr textu." + +#: variableeditor/variablelineedit.cpp:270 +#, kde-format +msgctxt "short translation please" +msgid "Replace tabs with spaces when saving the document." +msgstr "Při uložení dokumentu nahradit tabelátory mezerami." + +#: variableeditor/variablelineedit.cpp:275 +#, kde-format +msgctxt "short translation please" +msgid "Replace tabs with spaces." +msgstr "Nahradit tabelátory mezerami." + +#: variableeditor/variablelineedit.cpp:280 +#, kde-format +msgctxt "short translation please" +msgid "Remove trailing spaces when saving the document." +msgstr "Odstranit koncové mezery při ukládání dokumentu." + +#: variableeditor/variablelineedit.cpp:285 +#, kde-format +msgctxt "short translation please" +msgid "Show scrollbar minimap." +msgstr "Zobrazovat minimapu posuvníku" + +#: variableeditor/variablelineedit.cpp:290 +#, kde-format +msgctxt "short translation please" +msgid "Show scrollbar preview." +msgstr "Zobrazit náhled v posuvném panelu." + +#: variableeditor/variablelineedit.cpp:301 +#, kde-format +msgctxt "short translation please" +msgid "Set the color scheme." +msgstr "Nastavit barevné schéma." + +#: variableeditor/variablelineedit.cpp:306 +#, kde-format +msgctxt "short translation please" +msgid "Set the text selection color." +msgstr "Nastavit barvu pro výběr textu." + +#: variableeditor/variablelineedit.cpp:311 +#, kde-format +msgctxt "short translation please" +msgid "Visualize tabs and trailing spaces." +msgstr "Zvýrazňovat tabelátory a koncové mezery." + +#: variableeditor/variablelineedit.cpp:316 +#, kde-format +msgctxt "short translation please" +msgid "Enable smart home navigation." +msgstr "Povolit chytrou Home klávesu." + +#: variableeditor/variablelineedit.cpp:321 +#, kde-format +msgctxt "short translation please" +msgid "Pressing TAB key indents." +msgstr "Stiskem Tabulátoru se odsazuje." + +#: variableeditor/variablelineedit.cpp:327 +#, kde-format +msgctxt "short translation please" +msgid "Set the tab display width." +msgstr "Nastavit šířku tabulátoru." + +#: variableeditor/variablelineedit.cpp:333 +#, kde-format +msgctxt "short translation please" +msgid "Set the number of undo steps to remember (0 equals infinity)." +msgstr "Omezit počet zapamatovaných kroků pro zpět (0 = bez omezení)." + +#: variableeditor/variablelineedit.cpp:339 +#, kde-format +msgctxt "short translation please" +msgid "Set the word wrap column." +msgstr "Nastavit sloupec pro zalomení řádků." + +#: variableeditor/variablelineedit.cpp:344 +#, kde-format +msgctxt "short translation please" +msgid "Set the word wrap marker color." +msgstr "Nastavit barvu značky zalomení řádků." + +#: variableeditor/variablelineedit.cpp:349 +#, kde-format +msgctxt "short translation please" +msgid "Enable word wrap while typing text." +msgstr "Povolit zalamování řádků při vkládání." + +#: view/katestatusbar.cpp:114 +#, kde-format +msgid "Current cursor position. Click to go to a specific line." +msgstr "" + +#: view/katestatusbar.cpp:127 +#, kde-format +msgid "Insert mode and VI input mode indicator. Click to change the mode." +msgstr "" + +#: view/katestatusbar.cpp:135 +#, kde-format +msgid "Change dictionary" +msgstr "Změnit slovník" + +#: view/katestatusbar.cpp:161 view/katestatusbar.cpp:488 +#, kde-format +msgid "Tab Width" +msgstr "Šířka tabulátoru" + +#: view/katestatusbar.cpp:169 view/katestatusbar.cpp:503 +#, kde-format +msgid "Indentation Width" +msgstr "Šířka odsazování" + +#: view/katestatusbar.cpp:177 +#, kde-format +msgid "Indentation Mode" +msgstr "Režim odsazování" + +#: view/katestatusbar.cpp:179 +#, kde-format +msgid "Tabulators && Spaces" +msgstr "Tabulátory && mezery" + +#: view/katestatusbar.cpp:182 +#, kde-format +msgid "Tabulators" +msgstr "Tabulátory" + +#: view/katestatusbar.cpp:185 +#, kde-format +msgid "Spaces" +msgstr "Mezery" + +#: view/katestatusbar.cpp:197 +#, kde-format +msgid "Encoding" +msgstr "Kódování" + +#: view/katestatusbar.cpp:200 view/katestatusbar.cpp:201 +#, kde-format +msgid "End of line type" +msgstr "" + +#: view/katestatusbar.cpp:207 +#, kde-format +msgid "Mode" +msgstr "Režim" + +#: view/katestatusbar.cpp:209 view/kateview.cpp:703 +#, kde-format +msgid "" +"Here you can choose which mode should be used for the current document. This " +"will influence the highlighting and folding being used, for example." +msgstr "" +"Zde si můžete vybrat režim pro současný dokument. Výběr ovlivní například " +"použití zvýrazňování a skládání kódu." + +#: view/katestatusbar.cpp:216 +#, kde-format +msgid "Syntax highlighting" +msgstr "Zvýraznění syntaxe" + +#: view/katestatusbar.cpp:261 +#, kde-format +msgid "Line/Column compact mode" +msgstr "" + +#: view/katestatusbar.cpp:307 +#, kde-format +msgid "[BLOCK] %1" +msgstr "[BLOK] %1" + +#: view/katestatusbar.cpp:323 +#, kde-format +msgid "%1/%2:%3" +msgstr "" + +#: view/katestatusbar.cpp:325 +#, kde-format +msgid "%1:%2" +msgstr "%1:%2" + +#: view/katestatusbar.cpp:329 +#, kde-format +msgid "Line %1 of %2, Column %3" +msgstr "Řádek %1 z %2, Sloupec %3 " + +#: view/katestatusbar.cpp:331 +#, kde-format +msgid "Line %1, Column %2" +msgstr "Řádek %1, sloupec %2" + +#: view/katestatusbar.cpp:405 +#, kde-format +msgid "Soft Tabs: %1" +msgstr "" + +#: view/katestatusbar.cpp:406 +#, kde-format +msgid "Soft Tabs: %1 (%2)" +msgstr "" + +#: view/katestatusbar.cpp:407 +#, kde-format +msgid "Tab Size: %1" +msgstr "Velikost tabulátoru: %1" + +#: view/katestatusbar.cpp:408 +#, kde-format +msgid "Indent/Tab: %1/%2" +msgstr "" + +#: view/katestatusbar.cpp:448 view/katestatusbar.cpp:474 +#, kde-format +msgctxt "@item:inmenu" +msgid "Other…" +msgstr "Jiné…" + +#: view/katestatusbar.cpp:476 +#, kde-format +msgid "Other (%1)" +msgid_plural "Other (%1)" +msgstr[0] "Jiné (%1)" +msgstr[1] "Jiné (%1)" +msgstr[2] "Jiné (%1)" + +#: view/katestatusbar.cpp:488 +#, kde-format +msgid "Please specify the wanted tab width:" +msgstr "" + +#: view/katestatusbar.cpp:504 +#, kde-format +msgid "Please specify the wanted indentation width:" +msgstr "" + +#: view/katestatusbar.cpp:567 +#, kde-format +msgctxt "" +"%1 and %3 are the selected words/chars count, %2 and %4 are the total words/" +"chars count." +msgid "Words %1/%2, Chars %3/%4" +msgstr "" + +#: view/katestatusbar.cpp:573 +#, kde-format +msgctxt "%1 and %2 are the total words/chars count." +msgid "Words %1, Chars %2" +msgstr "" + +#: view/katestatusbar.cpp:588 +#, kde-format +msgid "Zoom: %1%" +msgstr "Přiblížení: %1%" + +#: view/kateview.cpp:440 +#, kde-format +msgid "Cut the selected text and move it to the clipboard" +msgstr "Vyjmout vybraný text a přesunout jej do schránky" + +#: view/kateview.cpp:445 +#, kde-format +msgid "Paste previously copied or cut clipboard contents" +msgstr "Vložit dříve zkopírovaný nebo vyjmutý obsah stránky" + +#: view/kateview.cpp:448 +#, kde-format +msgid "" +"Use this command to copy the currently selected text to the system clipboard." +msgstr "" +"Použijte tento příkaz ke kopírování aktuálně vybraného textu do schránky " +"systému." + +#: view/kateview.cpp:454 +#, kde-format +msgid "Clipboard &History Paste" +msgstr "" + +#: view/kateview.cpp:459 +#, kde-format +msgid "Paste Selection" +msgstr "Vložit výběr" + +#: view/kateview.cpp:461 +#, kde-format +msgid "Paste previously mouse selection contents" +msgstr "" + +#: view/kateview.cpp:465 +#, kde-format +msgid "Paste From File" +msgstr "Vložit ze souboru" + +#: view/kateview.cpp:469 +#, kde-format +msgid "Copy File Location" +msgstr "Kopírovat umístění souboru" + +#: view/kateview.cpp:470 +#, kde-format +msgid "Copy the current file name and line number" +msgstr "Kopírovat současný název souboru a číslo řádku" + +#: view/kateview.cpp:473 +#, kde-format +msgid "Swap with Clipboard Contents" +msgstr "" + +#: view/kateview.cpp:474 +#, kde-format +msgid "Swap the selected text with the clipboard contents" +msgstr "" + +#: view/kateview.cpp:477 +#, kde-format +msgid "Take Screenshot of Selection" +msgstr "Zachytit snímek výběru" + +#: view/kateview.cpp:481 +#, kde-format +msgid "Save the current document" +msgstr "Uložit současný dokument" + +#: view/kateview.cpp:484 +#, kde-format +msgid "Revert the most recent editing actions" +msgstr "Vrátit zpět poslední úpravy" + +#: view/kateview.cpp:487 +#, kde-format +msgid "Revert the most recent undo operation" +msgstr "Vrátit zpět poslední operaci návratu úprav" + +#: view/kateview.cpp:491 +#, kde-format +msgid "&Scripts" +msgstr "&Skripty" + +#: view/kateview.cpp:495 +#, kde-format +msgid "Apply &Word Wrap" +msgstr "Za&lomit řádky napevno" + +#: view/kateview.cpp:497 +#, kde-format +msgid "" +"Use this to wrap the current line, or to reformat the selected lines as " +"paragraph, to fit the 'Wrap words at' setting in the configuration dialog." +"

This is a static word wrap, meaning the document is changed." +msgstr "" + +#: view/kateview.cpp:503 +#, kde-format +msgid "&Clean Indentation" +msgstr "Smazat od&sazení" + +#: view/kateview.cpp:505 +#, kde-format +msgid "" +"Use this to clean the indentation of a selected block of text (only tabs/" +"only spaces).

You can configure whether tabs should be honored " +"and used or replaced with spaces, in the configuration dialog." +msgstr "" +"Použijte tuto funkci k vyčištění odsazení vybraného textového bloku (pouze " +"tabulátory/mezery).

V dialogu nastavení můžete nastavit zda-li " +"mají být zohledňovány a požívány tabulátory nebo zda mají být nahrazeny " +"mezerami." + +#: view/kateview.cpp:510 +#, kde-format +msgid "Convert Indentation to Spaces" +msgstr "Převést odsazení na mezery." + +#: view/kateview.cpp:517 +#, kde-format +msgid "Convert Indentation to Tabs" +msgstr "Převést odsazení na Tabulátory." + +#: view/kateview.cpp:532 +#, kde-format +msgid "&Format Indentation" +msgstr "Odsazení &formátu" + +#: view/kateview.cpp:533 +#, kde-format +msgid "" +"Use this to auto indent the current line or block of text to its proper " +"indent level." +msgstr "" + +#: view/kateview.cpp:537 +#, kde-format +msgctxt "@action" +msgid "&Align On…" +msgstr "&Zarovnat na…" + +#: view/kateview.cpp:539 +#, kde-format +msgid "" +"This command aligns lines in the selected block or whole document on the " +"column given by a regular expression that you will be prompted for.

If you give an empty pattern it will align on the first non-blank " +"character by default.
If the pattern has a capture it will indent on " +"the captured match.

Examples:
With '-' it will insert " +"spaces before the first '-' of each lines to align them all on the same " +"column.
With ':\\s+(.)' it will insert spaces before the first non-" +"blank character that occurs after a colon to align them all on the same " +"column." +msgstr "" + +#: view/kateview.cpp:550 +#, kde-format +msgid "C&omment" +msgstr "K&omentář" + +#: view/kateview.cpp:553 +#, kde-format +msgid "" +"This command comments out the current line or a selected block of text.

The characters for single/multiple line comments are defined within " +"the language's highlighting." +msgstr "" +"Tento příkaz zakomentuje aktuální řádek nebo vybraný blok textu.

Znaky použité k zakomentování jsou definovány v rámci schématu " +"syntaktického zvýraznění daného jazyka." + +#: view/kateview.cpp:558 +#, kde-format +msgid "Go to Previous Editing Location" +msgstr "" + +#: view/kateview.cpp:564 +#, kde-format +msgid "Go to Next Editing Location" +msgstr "" + +#: view/kateview.cpp:570 +#, kde-format +msgid "Unco&mment" +msgstr "Odstranit ko&mentář" + +#: view/kateview.cpp:573 +#, kde-format +msgid "" +"This command removes comments from the current line or a selected block of " +"text.

The characters for single/multiple line comments are " +"defined within the language's highlighting." +msgstr "" +"Tento příkaz zruší zakomentování aktuálního řádku nebo vybraného bloku " +"textu.

Znaky použité k zakomentování jsou definovány v rámci " +"schématu syntaktického zvýraznění daného jazyka." + +#: view/kateview.cpp:578 +#, kde-format +msgid "Toggle Comment" +msgstr "Přepnout komentář" + +#: view/kateview.cpp:582 +#, kde-format +msgid "&Read Only Mode" +msgstr "&Režim pouze pro čtení" + +#: view/kateview.cpp:583 +#, kde-format +msgid "Lock/unlock the document for writing" +msgstr "Zamknout/odemknout dokument pro zápis" + +#: view/kateview.cpp:588 +#, kde-format +msgid "&Force RTL Direction" +msgstr "Vyn&utit směr zprava doleva" + +#: view/kateview.cpp:589 +#, kde-format +msgid "Force RTL Text Direction" +msgstr "Vynutit směr textu zprava doleva" + +#: view/kateview.cpp:599 +#, kde-format +msgid "Uppercase" +msgstr "Velká písmena" + +#: view/kateview.cpp:602 +#, kde-format +msgid "" +"Convert the selection to uppercase, or the character to the right of the " +"cursor if no text is selected." +msgstr "" +"Převést výběr na velká písmena (nebo znak vpravo od kurzoru, pokud není " +"vybrán žádný text)." + +#: view/kateview.cpp:608 +#, kde-format +msgid "Lowercase" +msgstr "Malá písmena" + +#: view/kateview.cpp:611 +#, kde-format +msgid "" +"Convert the selection to lowercase, or the character to the right of the " +"cursor if no text is selected." +msgstr "" +"Převést výběr na malá písmena (nebo znak vpravo od kurzoru, pokud není " +"vybrán žádný text)." + +#: view/kateview.cpp:617 +#, kde-format +msgid "Capitalize" +msgstr "Velká počáteční písmena" + +#: view/kateview.cpp:620 +#, kde-format +msgid "" +"Capitalize the selection, or the word under the cursor if no text is " +"selected." +msgstr "" +"Převést výběr na počáteční velká písmena (nebo slovo vpravo od kurzoru, " +"pokud není vybrán žádný text)." + +#: view/kateview.cpp:625 +#, kde-format +msgid "Join Lines" +msgstr "Spojit řádky" + +#: view/kateview.cpp:630 +#, kde-format +msgid "Invoke Code Completion" +msgstr "Provést doplnění kódu" + +#: view/kateview.cpp:631 +#, kde-format +msgid "" +"Manually invoke command completion, usually by using a shortcut bound to " +"this action." +msgstr "" +"Manuálně vyvolá doplnění příkazu, obvykle pomocí přiřazené klávesové zkratky." + +#: view/kateview.cpp:636 +#, kde-format +msgid "Remove Trailing Spaces" +msgstr "Odstranit mezery na konci řádku" + +#: view/kateview.cpp:654 +#, kde-format +msgid "Print the current document." +msgstr "Vytisknout aktuální dokument." + +#: view/kateview.cpp:657 +#, kde-format +msgid "Show print preview of current document" +msgstr "Zobrazit náhled tisku pro současný dokument" + +#: view/kateview.cpp:661 +#, kde-format +msgid "Reloa&d" +msgstr "Znovu načís&t" + +#: view/kateview.cpp:663 +#, kde-format +msgid "Reload the current document from disk." +msgstr "Obnovit současný dokument z disku." + +#: view/kateview.cpp:667 +#, kde-format +msgid "Save the current document to disk, with a name of your choice." +msgstr "Uložit současný dokument na disk a pojmenovat dle volby uživatele." + +#: view/kateview.cpp:669 +#, kde-format +msgctxt "@action" +msgid "Save As with Encodin&g…" +msgstr "Uložit jako s &kódováním…" + +#: view/kateview.cpp:675 +#, kde-format +msgctxt "@action" +msgid "Save Cop&y As…" +msgstr "Uložit kop&ii jako…" + +#: view/kateview.cpp:676 +#, kde-format +msgid "Save a copy of the current document to disk." +msgstr "Uložit kopii současného dokumentu na disk." + +#: view/kateview.cpp:680 +#, kde-format +msgid "" +"This command opens a dialog and lets you choose a line that you want the " +"cursor to move to." +msgstr "" +"Tento příkaz otevře dialog a nechá vás vybrat řádku, na kterou si přejete " +"přesunou kurzor." + +#: view/kateview.cpp:684 +#, kde-format +msgid "Go to Previous Modified Line" +msgstr "" + +#: view/kateview.cpp:685 +#, kde-format +msgid "Move upwards to the previous modified line." +msgstr "" + +#: view/kateview.cpp:690 +#, kde-format +msgid "Go to Next Modified Line" +msgstr "" + +#: view/kateview.cpp:691 +#, kde-format +msgid "Move downwards to the next modified line." +msgstr "" + +#: view/kateview.cpp:695 +#, kde-format +msgctxt "@action" +msgid "&Configure Editor…" +msgstr "Nastavit e&ditor…" + +#: view/kateview.cpp:697 +#, kde-format +msgid "Configure various aspects of this editor." +msgstr "Nastavit různé vlastnosti tohoto editoru." + +#: view/kateview.cpp:700 +#, kde-format +msgid "&Mode" +msgstr "Reži&m" + +#: view/kateview.cpp:706 +#, kde-format +msgid "&Highlighting" +msgstr "Z&výraznění" + +#: view/kateview.cpp:708 +#, kde-format +msgid "Here you can choose how the current document should be highlighted." +msgstr "Zde si můžete vybrat jak bude současný dokument zvýrazňovaný." + +#: view/kateview.cpp:711 +#, kde-format +msgid "&Editor Color Theme" +msgstr "" + +#: view/kateview.cpp:717 +#, kde-format +msgid "&Indentation" +msgstr "Od&sazování" + +#: view/kateview.cpp:726 +#, kde-format +msgid "Select the entire text of the current document." +msgstr "Vybrat celý text současného dokumentu." + +#: view/kateview.cpp:729 +#, kde-format +msgid "" +"If you have selected something within the current document, this will no " +"longer be selected." +msgstr "" +"Jestliže jste v současném dokumentu něco vybrali, pak bude tento výběr " +"zrušen." + +#: view/kateview.cpp:733 +#, kde-format +msgid "Enlarge Font" +msgstr "Zvětšit písmo" + +#: view/kateview.cpp:735 +#, kde-format +msgid "This increases the display font size." +msgstr "Zvětší velikost zobrazovaného písma." + +#: view/kateview.cpp:742 +#, kde-format +msgid "Shrink Font" +msgstr "Zmenšit písmo" + +#: view/kateview.cpp:744 +#, kde-format +msgid "This decreases the display font size." +msgstr "Zmenší velikost zobrazovaného písma." + +#: view/kateview.cpp:751 +#, kde-format +msgid "Reset Font Size" +msgstr "Resetovat velikost písma" + +#: view/kateview.cpp:753 +#, kde-format +msgid "This resets the display font size." +msgstr "" + +#: view/kateview.cpp:756 +#, kde-format +msgid "Bl&ock Selection Mode" +msgstr "Režim bl&okového výběru" + +#: view/kateview.cpp:759 +#, kde-format +msgid "" +"This command allows switching between the normal (line based) selection mode " +"and the block selection mode." +msgstr "" +"Tento příkaz umožní přepnutí mezi normálním (řádkovým) a blokovým režimem " +"výběru." + +#: view/kateview.cpp:763 +#, kde-format +msgid "Switch to Next Input Mode" +msgstr "Přepnout do následujícího vstupního režimu" + +#: view/kateview.cpp:765 +#, kde-format +msgid "Switch to the next input mode." +msgstr "Přepnout do následujícího vstupního režimu." + +#: view/kateview.cpp:768 +#, kde-format +msgid "Overwr&ite Mode" +msgstr "Rež&im přepisování" + +#: view/kateview.cpp:771 +#, kde-format +msgid "" +"Choose whether you want the text you type to be inserted or to overwrite " +"existing text." +msgstr "" +"Vyberte si, zda má být vámi vložený text vkládán, anebo má přepisovat " +"stávající text." + +#: view/kateview.cpp:775 +#, kde-format +msgid "Show Whitespace" +msgstr "" + +#: view/kateview.cpp:778 +#, kde-format +msgid "" +"If this option is checked, whitespaces in this document will be visible.

This is only a view option, meaning the document will not be changed." +msgstr "" + +#: view/kateview.cpp:782 +#, kde-format +msgid "&Dynamic Word Wrap" +msgstr "&Pohyblivé zalamování řádků" + +#: view/kateview.cpp:786 +#, kde-format +msgid "" +"If this option is checked, the text lines will be wrapped at the view border " +"on the screen.

This is only a view option, meaning the document " +"will not be changed." +msgstr "" +"Je-li zvolena tato volba, pak budou řádky textu zalamovány na hranici " +"pohledu.

Tato volba je pouze o prohlížení. Dokument nebude změněn." + +#: view/kateview.cpp:790 +#, kde-format +msgid "Dynamic Word Wrap Indicators" +msgstr "Ukazatele pohyblivého zalamování řádků" + +#: view/kateview.cpp:792 +#, kde-format +msgid "Choose when the Dynamic Word Wrap Indicators should be displayed" +msgstr "Vyberte, kdy mají být ukazatele pohyblivého zalomení zobrazeny" + +#: view/kateview.cpp:794 +#, kde-format +msgid "&Off" +msgstr "Vypnut&o" + +#: view/kateview.cpp:794 +#, kde-format +msgid "Follow &Line Numbers" +msgstr "Nás&ledovat čísla řádků" + +#: view/kateview.cpp:794 +#, kde-format +msgid "&Always On" +msgstr "Vždy z&apnuto" + +#: view/kateview.cpp:798 +#, kde-format +msgid "Static Word Wrap" +msgstr "Pevné zalamování řádků" + +#: view/kateview.cpp:800 +#, kde-format +msgid "" +"If this option is checked, the text lines will be wrapped at the column " +"defined in the editing properties." +msgstr "" + +#: view/kateview.cpp:807 +#, kde-format +msgid "Show Static &Word Wrap Marker" +msgstr "Zobrazit značky pevného za&lamování řádků" + +#: view/kateview.cpp:810 +#, kde-format +msgid "" +"Show/hide the Word Wrap Marker, a vertical line drawn at the word wrap " +"column as defined in the editing properties" +msgstr "" +"Zobrazit/schovat znak zalomení řádků, tedy svislou čáru na pozici zalamování " +"(podle nastavení ve vlastnostech úprav)" + +#: view/kateview.cpp:814 +#, kde-format +msgid "Show Folding &Markers" +msgstr "Zobrazit značky sklá&dání" + +#: view/kateview.cpp:816 +#, kde-format +msgid "" +"You can choose if the codefolding marks should be shown, if codefolding is " +"possible." +msgstr "" +"Můžete si vybrat, zda mají být zobrazovány značky skládání (je-li skládání " +"kódu možné)." + +#: view/kateview.cpp:819 +#, kde-format +msgid "Show &Icon Border" +msgstr "Ukázat pruh s &ikonami" + +#: view/kateview.cpp:821 +#, kde-format +msgid "" +"Show/hide the icon border.

The icon border shows bookmark " +"symbols, for instance." +msgstr "" +"Ukázat/skrýt proužek s ikonami

Proužek ikon zobrazuje například " +"symbol záložek." + +#: view/kateview.cpp:824 +#, kde-format +msgid "Show &Line Numbers" +msgstr "Zobrazovat čís&la řádků" + +#: view/kateview.cpp:826 +#, kde-format +msgid "Show/hide the line numbers on the left hand side of the view." +msgstr "Zobrazit/skrýt čísla řádků na levé straně pohledu." + +#: view/kateview.cpp:829 +#, kde-format +msgid "Show Scroll&bar Marks" +msgstr "Zo&brazit značky na posuvnících" + +#: view/kateview.cpp:831 +#, kde-format +msgid "" +"Show/hide the marks on the vertical scrollbar.

The marks show " +"bookmarks, for instance." +msgstr "" +"Zobrazit/skrýt značky na svislém posuvníku

Značky zobrazují " +"například symboly záložek." + +#: view/kateview.cpp:834 +#, kde-format +msgid "Show Scrollbar Mini-Map" +msgstr "Zobrazit minimapu posuvníku" + +#: view/kateview.cpp:836 +#, kde-format +msgid "" +"Show/hide the mini-map on the vertical scrollbar.

The mini-map " +"shows an overview of the whole document." +msgstr "" + +#. i18n("Show the whole document in the Mini-Map"), this); +#. ac->addAction(QLatin1String("view_scrollbar_minimap_all"), a); +#. a->setWhatsThis(i18n("Display the whole document in the mini-map.

With this option set the whole document will be visible in the +#. mini-map.")); connect(a, SIGNAL(triggered(bool)), SlOT(toggleScrollBarMiniMapAll())); connect(m_toggleScrollBarMiniMap, SIGNAL(triggered(bool)), +#. m_toggleScrollBarMiniMapAll, SLOT(setEnabled(bool))); +#: view/kateview.cpp:848 +#, kde-format +msgid "Show Non-Printable Spaces" +msgstr "" + +#: view/kateview.cpp:850 +#, kde-format +msgid "Show/hide bounding box around non-printable spaces" +msgstr "" + +#: view/kateview.cpp:854 +#, kde-format +msgid "Switch to Command Line" +msgstr "Přepnout na příkazovou řádku" + +#: view/kateview.cpp:856 +#, kde-format +msgid "Show/hide the command line on the bottom of the view." +msgstr "Zobrazit/skrýt příkazovou řádku v dolní části pohledu." + +#: view/kateview.cpp:859 +#, kde-format +msgid "Input Modes" +msgstr "Vstupní režimy" + +#: view/kateview.cpp:868 +#, kde-format +msgid "Activate/deactivate %1" +msgstr "Zapnout/vypnout %1" + +#: view/kateview.cpp:878 +#, kde-format +msgid "&End of Line" +msgstr "Kon&ec řádku" + +#: view/kateview.cpp:880 +#, kde-format +msgid "Choose which line endings should be used, when you save the document" +msgstr "" +"Vyberte si, jaké znaky konce řádků budou používány při ukládání dokumentu" + +#: view/kateview.cpp:881 +#, kde-format +msgctxt "@item:inmenu End of Line" +msgid "&UNIX" +msgstr "&UNIX" + +#: view/kateview.cpp:882 +#, kde-format +msgctxt "@item:inmenu End of Line" +msgid "&Windows/DOS" +msgstr "&Windows/DOS" + +#: view/kateview.cpp:883 +#, kde-format +msgctxt "@item:inmenu End of Line" +msgid "&Macintosh" +msgstr "&Macintosh" + +#: view/kateview.cpp:888 +#, kde-format +msgid "Add &Byte Order Mark (BOM)" +msgstr "Přidat značku pořadí &bajtů (BOM)" + +#: view/kateview.cpp:891 +#, kde-format +msgid "" +"Enable/disable adding of byte order marks for UTF-8/UTF-16 encoded files " +"while saving" +msgstr "" +"Při ukládání povolit/zakázat přidání značky pořadí bajtů pro soubory v " +"kódování UTF-8/UTF-16" + +#: view/kateview.cpp:895 +#, kde-format +msgid "E&ncoding" +msgstr "Kódová&ní" + +#: view/kateview.cpp:899 +#, kde-format +msgid "Look up the first occurrence of a piece of text or regular expression." +msgstr "Vyhledat první výskyt části textu nebo regulárního výrazu." + +#: view/kateview.cpp:903 +#, kde-format +msgid "Find Selected" +msgstr "Najít vybrané" + +#: view/kateview.cpp:905 +#, kde-format +msgid "Finds next occurrence of selected text." +msgstr "Vyhledat následující výskyt vybraného textu." + +#: view/kateview.cpp:909 +#, kde-format +msgid "Find Selected Backwards" +msgstr "Najít vybrané zpět" + +#: view/kateview.cpp:911 +#, kde-format +msgid "Finds previous occurrence of selected text." +msgstr "Vyhledat předchozí výskyt hledaného textu." + +#: view/kateview.cpp:915 +#, kde-format +msgid "Find and Select Next Occurrence" +msgstr "" + +#: view/kateview.cpp:917 +#, kde-format +msgid "Finds next occurrence of the word under cursor and add it to selection." +msgstr "" + +#: view/kateview.cpp:921 +#, kde-format +msgid "Mark Currently Selected Occurrence as Skipped" +msgstr "" + +#: view/kateview.cpp:923 +#, kde-format +msgid "Marks the currently selected word as skipped." +msgstr "" + +#: view/kateview.cpp:927 +#, kde-format +msgid "Find and Select All Occurrences" +msgstr "" + +#: view/kateview.cpp:929 +#, kde-format +msgid "Finds all occurrences of the word under cursor and selects them." +msgstr "Najde všechny výskyty slova pod kurzorem a vybere je." + +#: view/kateview.cpp:933 +#, kde-format +msgid "Look up the next occurrence of the search phrase." +msgstr "Vyhledat následující výskyt hledaného výrazu." + +#: view/kateview.cpp:937 +#, kde-format +msgid "Look up the previous occurrence of the search phrase." +msgstr "Vyhledat předchozí výskyt hledaného výrazu." + +#: view/kateview.cpp:941 +#, kde-format +msgid "" +"Look up a piece of text or regular expression and replace the result with " +"some given text." +msgstr "" +"Vyhledat řetězec nebo regulární výraz a nahradit výsledek daným textem." + +#: view/kateview.cpp:944 +#, kde-format +msgid "Add Cursors to Line Ends" +msgstr "" + +#: view/kateview.cpp:946 +#, kde-format +msgid "Creates a cursor at the end of every line in selection." +msgstr "" + +#: view/kateview.cpp:950 +#, kde-format +msgid "Add Caret below Cursor" +msgstr "" + +#: view/kateview.cpp:952 +#, kde-format +msgid "Adds a caret in the line below the current caret." +msgstr "" + +#: view/kateview.cpp:956 +#, kde-format +msgid "Add Caret above Cursor" +msgstr "" + +#: view/kateview.cpp:958 +#, kde-format +msgid "Adds a caret in the line above the current caret." +msgstr "" + +#: view/kateview.cpp:962 +#, kde-format +msgid "Toggle Camel Case Cursor Movement" +msgstr "" + +#: view/kateview.cpp:963 +#, kde-format +msgid "Toggle between normal word movement and camel case cursor movement." +msgstr "" + +#: view/kateview.cpp:967 +#, kde-format +msgid "Remove Cursors from Empty Lines" +msgstr "" + +#: view/kateview.cpp:968 +#, kde-format +msgid "Remove cursors from empty lines" +msgstr "" + +#: view/kateview.cpp:972 +#, kde-format +msgid "Automatic Spell Checking" +msgstr "Automatická kontrola pravopisu" + +#: view/kateview.cpp:973 +#, kde-format +msgid "Enable/disable automatic spell checking" +msgstr "Povolit/zakázat automatickou kontrolu pravopisu" + +#: view/kateview.cpp:979 +#, kde-format +msgctxt "@action" +msgid "Change Dictionary…" +msgstr "Změnit slovník…" + +#: view/kateview.cpp:980 +#, kde-format +msgid "Change the dictionary that is used for spell checking." +msgstr "Změní slovník použitý ke kontrole pravopisu." + +#: view/kateview.cpp:984 +#, kde-format +msgid "Clear Dictionary Ranges" +msgstr "Smazat rozsahy slovníku" + +#: view/kateview.cpp:986 +#, kde-format +msgid "" +"Remove all the separate dictionary ranges that were set for spell checking." +msgstr "" +"Odstranit všechny oddělené rozsahy slovníku jež byly nastaveny pro kontrolu " +"pravopisu." + +#: view/kateview.cpp:992 +#, kde-format +msgid "Copy as &HTML" +msgstr "Kopírovat jako &HTML" + +#: view/kateview.cpp:993 +#, kde-format +msgid "" +"Copy the selection as HTML, formatted using the current syntax highlighting " +"and color scheme settings." +msgstr "" + +#: view/kateview.cpp:997 +#, kde-format +msgctxt "@action" +msgid "E&xport as HTML…" +msgstr "E&xportovat do HTML…" + +#: view/kateview.cpp:999 +#, kde-format +msgid "" +"This command allows you to export the current document with all highlighting " +"information into a HTML document." +msgstr "" +"Tento příkaz umožňuje exportovat současný dokument s veškerou informací o " +"zvýrazňování do HTML dokumentu." + +#: view/kateview.cpp:1038 +#, kde-format +msgid "Move Word Left" +msgstr "Přesunout slovo doleva" + +#: view/kateview.cpp:1044 +#, kde-format +msgid "Select Character Left" +msgstr "Vybrat znak doleva" + +#: view/kateview.cpp:1050 +#, kde-format +msgid "Select Word Left" +msgstr "Vybrat slovo doleva" + +#: view/kateview.cpp:1060 +#, kde-format +msgid "Move Word Right" +msgstr "Přesunout slovo doprava" + +#: view/kateview.cpp:1066 +#, kde-format +msgid "Select Character Right" +msgstr "Vybrat znak doprava" + +#: view/kateview.cpp:1072 +#, kde-format +msgid "Select Word Right" +msgstr "Vybrat slovo doprava" + +#: view/kateview.cpp:1082 +#, kde-format +msgid "Start the Marked Selection" +msgstr "Spustit Označený výběr" + +#: view/kateview.cpp:1083 +#, kde-format +msgid "" +"Emulate the Emacs-like selection mode, where the beginning is marked and " +"then the selection is continuously updated." +msgstr "" + +#: view/kateview.cpp:1088 +#, kde-format +msgid "Move to Beginning of Line" +msgstr "Přesunout na začátek řádku" + +#: view/kateview.cpp:1094 +#, kde-format +msgid "Move to Beginning of Document" +msgstr "Přesunout na začátek dokumentu" + +#: view/kateview.cpp:1100 +#, kde-format +msgid "Select to Beginning of Line" +msgstr "Vybrat do začátku řádku" + +#: view/kateview.cpp:1110 +#, kde-format +msgid "Select to Beginning of Document" +msgstr "Vybrat do začátku dokumentu" + +#: view/kateview.cpp:1120 +#, kde-format +msgid "Move to End of Line" +msgstr "Přesunout na konec řádku" + +#: view/kateview.cpp:1126 +#, kde-format +msgid "Move to End of Document" +msgstr "Přesunout na konec dokumentu" + +#: view/kateview.cpp:1132 +#, kde-format +msgid "Select to End of Line" +msgstr "Vybrat do konce řádku" + +#: view/kateview.cpp:1142 +#, kde-format +msgid "Select to End of Document" +msgstr "Vybrat do konce dokumentu" + +#: view/kateview.cpp:1152 +#, kde-format +msgid "Select to Previous Line" +msgstr "Vybrat předcházející řádek" + +#: view/kateview.cpp:1158 +#, kde-format +msgid "Scroll Line Up" +msgstr "Posun o řádku nahoru" + +#: view/kateview.cpp:1167 +#, kde-format +msgid "Move to Next Line" +msgstr "Přejít na následující řádek" + +#: view/kateview.cpp:1173 +#, kde-format +msgid "Move to Previous Line" +msgstr "Přejít na předchozí řádek" + +#: view/kateview.cpp:1179 +#, kde-format +msgid "Move Cursor Right" +msgstr "Přesunout kurzor doprava" + +#: view/kateview.cpp:1185 +#, kde-format +msgid "Move Cursor Left" +msgstr "Přesunout kurzor doleva" + +#: view/kateview.cpp:1191 +#, kde-format +msgid "Select to Next Line" +msgstr "Vybrat následující řádek" + +#: view/kateview.cpp:1197 +#, kde-format +msgid "Scroll Line Down" +msgstr "Posun o řádku dolů" + +#: view/kateview.cpp:1206 +#, kde-format +msgid "Scroll Page Up" +msgstr "Posun o jednu stránku nahoru" + +#: view/kateview.cpp:1212 +#, kde-format +msgid "Select Page Up" +msgstr "Vybrat stránku nahoru" + +#: view/kateview.cpp:1218 +#, kde-format +msgid "Move to Top of View" +msgstr "Přesunout se na začátek pohledu" + +#: view/kateview.cpp:1224 +#, kde-format +msgid "Select to Top of View" +msgstr "Vybrat text do začátku pohledu" + +#: view/kateview.cpp:1230 +#, kde-format +msgid "Scroll Page Down" +msgstr "Posun o jednu stránku dolů" + +#: view/kateview.cpp:1236 +#, kde-format +msgid "Select Page Down" +msgstr "Vybrat stránku dolů" + +#: view/kateview.cpp:1242 +#, kde-format +msgid "Move to Bottom of View" +msgstr "Přesunout se na konec pohledu" + +#: view/kateview.cpp:1248 +#, kde-format +msgid "Select to Bottom of View" +msgstr "Vybrat text do konce pohledu" + +#: view/kateview.cpp:1254 +#, kde-format +msgid "Go to Matching Bracket" +msgstr "" + +#: view/kateview.cpp:1260 +#, kde-format +msgid "Select to Matching Bracket" +msgstr "Vybrat text do odpovídající závorky" + +#: view/kateview.cpp:1267 +#, kde-format +msgid "Move Sub-Word Right" +msgstr "" + +#: view/kateview.cpp:1274 +#, kde-format +msgid "Select Sub-Word Right" +msgstr "" + +#: view/kateview.cpp:1281 +#, kde-format +msgid "Move Sub-Word Left" +msgstr "" + +#: view/kateview.cpp:1288 +#, kde-format +msgid "Select Sub-Word Left" +msgstr "" + +#: view/kateview.cpp:1298 +#, kde-format +msgid "Transpose Characters" +msgstr "Zaměnit znaky" + +#: view/kateview.cpp:1303 +#, kde-format +msgid "Transpose Words" +msgstr "" + +#: view/kateview.cpp:1308 +#, kde-format +msgid "Delete Line" +msgstr "Smazat řádek" + +#: view/kateview.cpp:1314 +#, kde-format +msgid "Delete Word Left" +msgstr "Smazat slovo doleva" + +#: view/kateview.cpp:1320 +#, kde-format +msgid "Delete Word Right" +msgstr "Smazat slovo doprava" + +#: view/kateview.cpp:1326 +#, kde-format +msgid "Delete Next Character" +msgstr "Smazat následující znak" + +#: view/kateview.cpp:1332 +#, kde-format +msgid "Backspace" +msgstr "Backspace" + +#: view/kateview.cpp:1340 +#, kde-format +msgid "Insert Tab Character" +msgstr "" + +#: view/kateview.cpp:1345 +#, kde-format +msgid "Insert Smart Newline" +msgstr "Vložit chytrý nový řádek" + +#: view/kateview.cpp:1346 +#, kde-format +msgid "" +"Insert newline including leading characters of the current line which are " +"not letters or numbers." +msgstr "" +"Vložit nový řádek, a to včetně těch úvodních znaků současného řádku, jenž " +"nejsou písmeny nebo číslicemi." + +#: view/kateview.cpp:1354 +#, kde-format +msgid "Insert a Non-Indented Newline" +msgstr "" + +#: view/kateview.cpp:1355 +#, kde-format +msgid "" +"Insert a new line without indentation, regardless of indentation settings." +msgstr "" + +#: view/kateview.cpp:1363 +#, kde-format +msgid "Insert a Newline Above Current Line" +msgstr "" + +#: view/kateview.cpp:1364 +#, kde-format +msgid "" +"Insert a new line above current line without modifying the current line." +msgstr "" + +#: view/kateview.cpp:1372 +#, kde-format +msgid "Insert a Newline Below Current Line" +msgstr "" + +#: view/kateview.cpp:1373 +#, kde-format +msgid "" +"Insert a new line below current line without modifying the current line." +msgstr "" + +#: view/kateview.cpp:1382 +#, kde-format +msgid "&Indent" +msgstr "Odsaz&ování" + +#: view/kateview.cpp:1384 +#, kde-format +msgid "" +"Use this to indent a selected block of text.

You can configure " +"whether tabs should be honored and used or replaced with spaces, in the " +"configuration dialog." +msgstr "" +"Použijte toto pro odsazení vybraného bloku textu.

Můžete v " +"dialogu nastavení určit, zda mají být zohledňovány a používány tabulátory " +"nebo zda budou nahrazeny mezerami." + +#: view/kateview.cpp:1391 +#, kde-format +msgid "&Unindent" +msgstr "Z&pětné odsazení" + +#: view/kateview.cpp:1392 +#, kde-format +msgid "Use this to unindent a selected block of text." +msgstr "Toto použijte ke zrušení odsazení vybraného bloku textu." + +#: view/kateview.cpp:1398 +#, kde-format +msgid "Delete Sub-Word Left" +msgstr "" + +#: view/kateview.cpp:1405 +#, kde-format +msgid "Delete Sub-Word Right" +msgstr "" + +#: view/kateview.cpp:1426 +#, kde-format +msgid "Fold Toplevel Nodes" +msgstr "Sbalit vrchní úroveň" + +#: view/kateview.cpp:1430 +#, kde-format +msgid "Unfold Toplevel Nodes" +msgstr "Rozbalit vrchní úroveň" + +#: view/kateview.cpp:1434 +#, kde-format +msgid "Toggle Current Node" +msgstr "" + +#: view/kateview.cpp:1438 +#, kde-format +msgid "Toggle Contained Nodes" +msgstr "" + +#: view/kateview.cpp:1447 +#, kde-format +msgid "Say current selection or document" +msgstr "" + +#: view/kateview.cpp:1457 +#, kde-format +msgid "Stop current output" +msgstr "" + +#: view/kateview.cpp:1463 +#, kde-format +msgid "Pause current output" +msgstr "" + +#: view/kateview.cpp:1469 +#, kde-format +msgid "Resume current output" +msgstr "" + +#: view/kateview.cpp:1640 +#, kde-format +msgid "(R/O) %1" +msgstr "(R/O) %1" + +#: view/kateview.cpp:1828 +#, kde-format +msgid "Camel case movement disabled" +msgstr "" + +#: view/kateview.cpp:1830 +#, kde-format +msgid "Camel case movement enabled" +msgstr "" + +#: view/kateview.cpp:2349 +#, kde-format +msgid "Search wrapped" +msgstr "" + +#: view/kateview.cpp:3043 +#, kde-format +msgid "Open File" +msgstr "Otevřít soubor" + +#: view/kateview.cpp:3984 +#, kde-format +msgid "Align On" +msgstr "" + +#: view/kateview.cpp:3984 +#, kde-format +msgid "Alignment pattern:" +msgstr "Vzorec zarovnání:" + +#: view/kateview.cpp:5068 +#, kde-format +msgid "Export File as HTML" +msgstr "Exportovat soubor do HTML" + +#: view/kateviewhelpers.cpp:302 view/kateviewhelpers.cpp:351 +#: view/kateviewhelpers.cpp:1012 +#, kde-format +msgctxt "from line - to line" +msgid "

%1

%2
" +msgstr "
%1

%2
" + +#: view/kateviewhelpers.cpp:1212 +#, kde-format +msgid "Available Commands" +msgstr "Dostupné příkazy" + +#: view/kateviewhelpers.cpp:1213 +#, kde-format +msgid "" +"

For help on individual commands, do 'help <command>'" +msgstr "" +"

Nápovědu k jednotlivým příkazům získáte provedením 'help <" +"příkaz>'

" + +#: view/kateviewhelpers.cpp:1220 +#, kde-format +msgid "No help for '%1'" +msgstr "Pro '%1' není nápověda" + +#: view/kateviewhelpers.cpp:1223 +#, kde-format +msgid "No such command %1" +msgstr "Takový příkaz neexistuje: %1" + +#: view/kateviewhelpers.cpp:1229 +#, kde-format +msgid "" +"

This is the Katepart command line.
Syntax: command " +"[ arguments ]
For a list of available commands, enter " +"help list
For help for individual commands, enter " +"help <command>

" +msgstr "" +"

Toto je příkazový řádek Katepart.
Použití: příkaz " +"[ argumenty ]
Pro seznam dostupných příkazů zadejte " +"help list
Pro nápovědu k jednotlivým příkazům " +"zadejte help <příkaz>

" + +#: view/kateviewhelpers.cpp:1317 vimode/emulatedcommandbar/commandmode.cpp:211 +#, kde-format +msgid "No such command: \"%1\"" +msgstr "Takový příkaz neexistuje: \"%1\"" + +#: view/kateviewhelpers.cpp:1320 vimode/emulatedcommandbar/commandmode.cpp:193 +#, kde-format +msgid "Error: No range allowed for command \"%1\"." +msgstr "Chyba: Příkaz \"%1\" nedovoluje zadat žádný rozsah." + +#: view/kateviewhelpers.cpp:1330 vimode/emulatedcommandbar/commandmode.cpp:197 +#, kde-format +msgid "Success: " +msgstr "Úspěch: " + +#: view/kateviewhelpers.cpp:1344 vimode/emulatedcommandbar/commandmode.cpp:206 +#, kde-format +msgid "Command \"%1\" failed." +msgstr "Příkaz \"%1\" selhal." + +#: view/kateviewhelpers.cpp:2632 view/kateviewhelpers.cpp:2633 +#, kde-format +msgid "Mark Type %1" +msgstr "Značka typu %1" + +#: view/kateviewhelpers.cpp:2656 +#, kde-format +msgid "Set Default Mark Type" +msgstr "Nastavit výchozí typ značky" + +#: view/kateviewhelpers.cpp:2801 +#, kde-format +msgid "Disable Annotation Bar" +msgstr "Zakázat panel poznámek" + +#: view/screenshotdialog.cpp:175 +#, kde-format +msgid "Save" +msgstr "Uložit" + +#: view/screenshotdialog.cpp:176 +#, kde-format +msgid "Copy" +msgstr "Kopírovat" + +#: view/screenshotdialog.cpp:177 +#, kde-format +msgctxt "@action:button" +msgid "Background Color…" +msgstr "Barva pozadí…" + +#: view/screenshotdialog.cpp:179 +#, kde-format +msgid "Show Extra Decorations" +msgstr "Zobrazit extra dekorace" + +#: view/screenshotdialog.cpp:180 +#, kde-format +msgid "Show Window Decorations" +msgstr "Zobrazit dekorace oken" + +#: view/screenshotdialog.cpp:185 +#, kde-format +msgctxt "@title:window" +msgid "Take Screenshot of Selection" +msgstr "Zachytit snímek výběru" + +#: view/screenshotdialog.cpp:257 +#, kde-format +msgid "Don't Show Line Numbers" +msgstr "" + +#: view/screenshotdialog.cpp:258 +#, kde-format +msgid "Show Line Numbers From 1" +msgstr "" + +#: view/screenshotdialog.cpp:259 +#, kde-format +msgid "Show Actual Line Numbers" +msgstr "" + +#: view/screenshotdialog.cpp:422 +#, kde-format +msgctxt "@title:window" +msgid "Screenshot saving failed" +msgstr "Uložení snímku obrazovky selhalo" + +#: view/screenshotdialog.cpp:422 +#, kde-format +msgid "Screenshot saving failed: %1" +msgstr "Uložení snímku obrazovky selhalo: %1" + +#: vimode/appcommands.cpp:67 +#, kde-format +msgid "All documents written to disk" +msgstr "Všechny dokumenty byly zapsány na disk" + +#: vimode/appcommands.cpp:70 +#, kde-format +msgid "Document written to disk" +msgstr "Dokument zapsán na disk" + +#: vimode/appcommands.cpp:202 +#, kde-format +msgid "" +"

w/wa — write document(s) to disk

Usage: w[a]

Writes the current document(s) to disk. It can be called in " +"two ways:
w — writes the current document to disk
" +"wa — writes all documents to disk.

If no file name is " +"associated with the document, a file dialog will be shown.

" +msgstr "" +"

w/wa — zapíše dokument(y) na disk

Použití: " +"w[a]

Zapíše aktuálně otevřené dokumenty na disk. Lze " +"volat dvěma způsoby:
w — zapíše aktuální dokument " +"disk
wa — zapíše všechny dokumenty disk.

Pokud " +"nemá dokument jméno, zobrazí se dialog uložení souborů.

" + +#: vimode/appcommands.cpp:213 +#, kde-format +msgid "" +"

q/qa/wq/wqa — [write and] quit

Usage: [w]q[a]

Quits the application. If w is prepended, it also " +"writes the document(s) to disk. This command can be called in several ways:" +"
q — closes the current view.
qa — " +"closes all views, effectively quitting the application.
wq " +"— writes the current document to disk and closes its view.
" +"wqa — writes all documents to disk and quits.

In all " +"cases, if the view being closed is the last view, the application quits. If " +"no file name is associated with the document and it should be written to " +"disk, a file dialog will be shown.

" +msgstr "" +"

q/qa/wq/wqa — [zapsat ] skončit

Použití: " +"[w]q[a]

Ukončí aplikaci. Jestliže následuje po w jsou všechny dokumenty zapsány na disk. Tento příkaz může být zavolán " +"několika způsoby:
q — zavře aktuální dokument.
" +"qa — zavře všechny dokumenty, což znamená ukončení aplikace." +"
wq — zapíše aktuální dokument na disk a uzavře jej." +"
wqa — zapíše všechny dokumenty na disk a skončí.

Ve všech případech: pokud je aplikace ukončena, pokud je uzavřen " +"poslední dokument. V případě, že má být na disk uložen zatím nepojmenovaný " +"dokument, je zobrazen dialog uložení souboru.

" + +#: vimode/appcommands.cpp:228 +#, kde-format +msgid "" +"

x/xa — write and quit

Usage: x[a]

Saves document(s) and quits (exits). This command can be called " +"in two ways:
x — closes the current view.
xa — closes all views, effectively quitting the application.

In " +"all cases, if the view being closed is the last view, the application quits. " +"If no file name is associated with the document and it should be written to " +"disk, a file dialog will be shown.

Unlike the 'w' commands, this " +"command only writes the document if it is modified.

" +msgstr "" +"

x/xa — zapsat a skončit

Použití: x[a]

Uloží dokument(y) a skončí (exit). Příkaz má dvě varianty:
" +"x — ukončí současný pohled.
xa — ukončí " +"všechny pohledy, což znamená ukončení aplikace.

Ve všech případech: " +"pokud je aplikace ukončena, pokud je uzavřen poslední dokument. V případě, " +"že má být na disk uložen zatím nepojmenovaný dokument, je zobrazen dialog " +"uložení souboru.

Stejně jako u příkazu 'w', jsou uloženy pouze změněné " +"soubory.

" + +#: vimode/appcommands.cpp:242 +#, kde-format +msgid "" +"

sp,split— Split horizontally the current view into two

Usage: sp[lit]

The result is two views on the " +"same document.

" +msgstr "" + +#: vimode/appcommands.cpp:248 +#, kde-format +msgid "" +"

vs,vsplit— Split vertically the current view into two

Usage: vs[plit]

The result is two views on the " +"same document.

" +msgstr "" +"

vs,vsplit— Svisle rozdělit aktuální pohled na dva

Použití: vs[plit]

Výsledkem jsou dva pohledy na " +"stejný dokument.

" + +#: vimode/appcommands.cpp:254 +#, kde-format +msgid "" +"

clo[se]— Close the current view

Usage: clo[se]

After executing it, the current view will be closed.

" +msgstr "" + +#: vimode/appcommands.cpp:260 +#, kde-format +msgid "" +"

[v]new — split view and create new document

Usage: " +"[v]new

Splits the current view and opens a new " +"document in the new view. This command can be called in two ways:
" +"new — splits the view horizontally and opens a new document." +"
vnew — splits the view vertically and opens a new " +"document.

" +msgstr "" +"

[v]new — rozdělí pohled a vytvoří nový dokument

Použití: [v]new

Rozdělí aktuální pohled a otevře " +"nový pohled v novém pohledu. Příkaz má dvě varianty:
new " +"— rozdělí pohled vodorovně a otevře nový dokument.
vnew " +"— rozdělí pohled svisle a otevře nový dokument

" + +#: vimode/appcommands.cpp:270 +#, kde-format +msgid "" +"

e[dit] — reload current document

Usage: e[dit]

Starts editing the current document again. This is " +"useful to re-edit the current file, when it was modified on disk.

" +msgstr "" + +#: vimode/appcommands.cpp:518 +#, kde-format +msgid "" +"

b,buffer — Edit document N from the document list

Usage: b[uffer] [N]

" +msgstr "" + +#: vimode/appcommands.cpp:523 +#, kde-format +msgid "" +"

bp,bprev — previous buffer

Usage: bp[revious] " +"[N]

Goes to [N]th previous document (\"buffer" +"\") in document list.

[N] defaults to one.

Wraps " +"around the start of the document list.

" +msgstr "" + +#: vimode/appcommands.cpp:531 +#, kde-format +msgid "" +"

bn,bnext — switch to next document

Usage: " +"bn[ext] [N]

Goes to [N]th next document " +"(\"buffer\") in document list.[N] defaults to one.

Wraps around the end of the document list.

" +msgstr "" + +#: vimode/appcommands.cpp:539 +#, kde-format +msgid "" +"

bf,bfirst — first document

Usage: bf[irst]

Goes to the first document (\"buffer\") in document " +"list.

" +msgstr "" + +#: vimode/appcommands.cpp:545 +#, kde-format +msgid "" +"

bl,blast — last document

Usage: bl[ast]

Goes to the last document (\"buffer\") in document " +"list.

" +msgstr "" + +#: vimode/appcommands.cpp:551 +#, kde-format +msgid "

ls

list current buffers

" +msgstr "" + +#: vimode/cmds.cpp:52 +#, kde-format +msgid "Missing argument. Usage: %1 " +msgstr "Chybějící argument(y). Použití: %1 " + +#: vimode/cmds.cpp:68 +#, kde-format +msgid "No mapping found for \"%1\"" +msgstr "Mapování pro \"%1\" nebylo nalezeno" + +#: vimode/cmds.cpp:71 +#, kde-format +msgid "\"%1\" is mapped to \"%2\"" +msgstr "\"%1\" je mapován na \"%2\"" + +#: vimode/cmds.cpp:77 +#, kde-format +msgid "Missing argument(s). Usage: %1 []" +msgstr "Chybějící argument(y). Použití: %1 []" + +#: vimode/cmds.cpp:145 vimode/cmds.cpp:161 +#, kde-format +msgid "Wrong arguments" +msgstr "Chybné argumenty" + +#: vimode/config/configtab.cpp:205 +#, kde-format +msgid "Unable to open the config file for reading." +msgstr "Nelze otevřít konfigurační soubor pro čtení." + +#: vimode/config/configtab.cpp:205 +#, kde-format +msgid "Unable to open file" +msgstr "Nelze otevřít soubor" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkViCommandsOverride) +#: vimode/config/configwidget.ui:35 +#, kde-format +msgid "" +"When selected, vi commands will override Kate's built-in commands. For " +"example: Ctrl+R will redo, and override the standard action (showing the " +"search and replace dialog)." +msgstr "" +"Pokud je zatrženo, nahradí Vi příkazy vestavěné příkazy Kate. Například: Ctrl" +"+R bude znamenat Zpět a nahradí standardní činnost (zobrazující dialog " +"hledání a nahrazení)." + +#. i18n: ectx: property (text), widget (QCheckBox, chkViCommandsOverride) +#: vimode/config/configwidget.ui:38 +#, kde-format +msgid "Let Vi commands override Kate shortcuts" +msgstr "Příkazy Vi mají přednost před zkratkami Kate" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkViRelLineNumbers) +#: vimode/config/configwidget.ui:45 +#, kde-format +msgid "" +"Show the line number relative to the line with the cursor in front of each " +"line." +msgstr "" +"Zobrazit před řádkem číslo řádku vzhledem k řádku, kde se nachází kurzor." + +#. i18n: ectx: property (text), widget (QCheckBox, chkViRelLineNumbers) +#: vimode/config/configwidget.ui:48 +#, kde-format +msgid "Display relative line numbers" +msgstr "Zobrazit relativní čísla řádků" + +#. i18n: ectx: property (whatsThis), widget (QGroupBox, groupBox) +#: vimode/config/configwidget.ui:63 +#, kde-format +msgid "" +"Key mapping is used to change the meaning of typed keys. This allows you to " +"move commands to other keys or make special keypresses for doing a series of " +"commands.\n" +"\n" +"Example:\n" +"\"\" → \"I-- \"\n" +"\n" +"This will prepend \"-- \" to a line when pressing F2." +msgstr "" +"Mapování kláves se používá pro změnu významu stisknutých kláves. Toto " +"umožňuje přesunout příkazy na jiné klávesy nebo vytvořit speciální klávesy " +"vkládající sérii příkazů.\n" +"\n" +"Například:\n" +"\"\" → \"I-- \"\n" +"\n" +"Po stisku klávesy F2 bude na začátek řádky vložen řetězec \"-- \"." + +#. i18n: ectx: property (title), widget (QGroupBox, groupBox) +#: vimode/config/configwidget.ui:66 +#, kde-format +msgid "Key Mapping" +msgstr "Mapování kláves" + +#. i18n: ectx: attribute (title), widget (QWidget, normalTab) +#: vimode/config/configwidget.ui:76 +#, kde-format +msgid "Normal mode" +msgstr "Normální režim" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:95 vimode/config/configwidget.ui:133 +#: vimode/config/configwidget.ui:171 +#, kde-format +msgid "Command" +msgstr "Příkaz" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:100 vimode/config/configwidget.ui:138 +#: vimode/config/configwidget.ui:176 +#, kde-format +msgid "Replacement" +msgstr "Nahrazení" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:105 vimode/config/configwidget.ui:143 +#: vimode/config/configwidget.ui:181 +#, kde-format +msgid "Recursive?" +msgstr "Rekurzivně?" + +#. i18n: ectx: attribute (title), widget (QWidget, insertTab) +#: vimode/config/configwidget.ui:114 +#, kde-format +msgid "Insert mode" +msgstr "Režim vkládání" + +#. i18n: ectx: attribute (title), widget (QWidget, visualTab) +#: vimode/config/configwidget.ui:152 +#, kde-format +msgid "Visual mode" +msgstr "Vizuální režim" + +#. i18n: ectx: property (text), widget (QPushButton, btnRemoveSelectedRows) +#: vimode/config/configwidget.ui:195 +#, kde-format +msgid "Remove selected" +msgstr "Odstranit vybrané" + +#. i18n: ectx: property (text), widget (QPushButton, btnAddNewRow) +#: vimode/config/configwidget.ui:202 +#, kde-format +msgid "Add new mapping" +msgstr "Přidat nové mapování" + +#. i18n: ectx: property (toolTip), widget (QPushButton, btnImportNormal) +#: vimode/config/configwidget.ui:209 +#, kde-format +msgid "" +"Read a vimrc file and attempt to import mappings specified with the " +"\"[n]noremap\" command." +msgstr "" +"Přečíst soubor vimrc a pokusit se importovat mapování určené příkazem " +"\"[n]noremap\"." + +#. i18n: ectx: property (text), widget (QPushButton, btnImportNormal) +#: vimode/config/configwidget.ui:212 +#, kde-format +msgid "Import from vimrc file" +msgstr "Importovat soubor vimrc" + +#: vimode/marks.cpp:117 +#, kde-format +msgid "Mark set: %1" +msgstr "Značka nenastavena: %1" + +#: vimode/marks.cpp:163 +#, kde-format +msgid "There are no more chars for the next bookmark." +msgstr "Pro následující záložku nejsou žádné další znaky." + +#: vimode/modes/insertvimode.cpp:261 vimode/modes/modebase.cpp:794 +#: vimode/modes/normalvimode.cpp:3567 +#, kde-format +msgid "Nothing in register %1" +msgstr "Prázdný registr %1" + +#: vimode/modes/normalvimode.cpp:1691 +#, kde-format +msgid "'%1' %2, Hex %3, Octal %4" +msgstr "'%1' %2, šestnáctkově %3, osmičkově %4" + +#: vimode/modes/normalvimode.cpp:2534 +#, kde-format +msgid "Mark not set: %1" +msgstr "Značka nenastavena: %1" diff --git a/local/recipes/kde/kf6-ktexteditor/source/po/cy/ktexteditor6.po b/local/recipes/kde/kf6-ktexteditor/source/po/cy/ktexteditor6.po new file mode 100644 index 0000000000..a575178419 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/po/cy/ktexteditor6.po @@ -0,0 +1,9242 @@ +# translation of katepart4.po to Cymraeg +# KDE yn Gymraeg. +# Copyright (C) 2003 Free Software Foundation, Inc. +# www.kyfieithu.co.uk , 2003. +# KD at KGyfieithu , 2003. +# +# +msgid "" +msgstr "" +"Project-Id-Version: katepart4\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2026-06-23 00:41+0000\n" +"PO-Revision-Date: 2003-11-12 14:22+0000\n" +"Last-Translator: KD at KGyfieithu \n" +"Language-Team: Cymraeg \n" +"Language: cy\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.2\n" +"\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: completion/katecompletionmodel.cpp:147 +#, kde-format +msgid "Argument-hints" +msgstr "" + +#: completion/katecompletionmodel.cpp:148 +#, kde-format +msgid "Best matches" +msgstr "" + +#: completion/katekeywordcompletion.cpp:143 +#, kde-format +msgid "Language keywords" +msgstr "" + +#: completion/katewordcompletion.cpp:74 +#, kde-format +msgid "Auto Word Completion" +msgstr "" + +#: completion/katewordcompletion.cpp:301 +#, kde-format +msgid "Shell Completion" +msgstr "" + +#: completion/katewordcompletion.cpp:306 +#, kde-format +msgid "Reuse Word Above" +msgstr "" + +#: completion/katewordcompletion.cpp:312 +#, kde-format +msgid "Reuse Word Below" +msgstr "" + +#. i18n: ectx: Menu (file) +#: data/katepart5ui.rc:4 +#, fuzzy, kde-format +msgid "&File" +msgstr "Fformat Ffeil" + +#. i18n: ectx: Menu (file_export) +#: data/katepart5ui.rc:10 +#, kde-format +msgid "&Print/Export" +msgstr "" + +#. i18n: ectx: Menu (edit) +#: data/katepart5ui.rc:17 +#, fuzzy, kde-format +msgid "&Edit" +msgstr "&Golygu..." + +#. i18n: ectx: Menu (edit_find_menu) +#: data/katepart5ui.rc:36 +#, kde-format +msgid "Find Variants" +msgstr "" + +#. i18n: ectx: Menu (selection) +#: data/katepart5ui.rc:46 +#, fuzzy, kde-format +#| msgid "Selection Only" +msgid "Selection" +msgstr "Dewisiad yn Unig" + +#. i18n: ectx: Menu (capitalization) +#: data/katepart5ui.rc:53 +#, kde-format +msgid "Capitalization" +msgstr "" + +#. i18n: ectx: Menu (view) +#: data/katepart5ui.rc:73 +#, fuzzy, kde-format +msgid "&View" +msgstr "&Newydd" + +#. i18n: ectx: Menu (view_menu_word_wrap) +#: data/katepart5ui.rc:78 +#, fuzzy, kde-format +#| msgid "Word Wrap" +msgid "Word Wrap" +msgstr "Lapio Llinellau" + +#. i18n: ectx: Menu (view_menu_borders) +#: data/katepart5ui.rc:84 dialogs/katedialogs.cpp:747 +#, fuzzy, kde-format +#| msgid "Borders" +msgid "Borders" +msgstr "Borderi" + +#. i18n: ectx: Menu (codefolding) +#: data/katepart5ui.rc:92 +#, kde-format +msgid "&Code Folding" +msgstr "" + +#. i18n: ectx: Menu (go) +#: data/katepart5ui.rc:109 +#, kde-format +msgid "&Go" +msgstr "" + +#. i18n: ectx: Menu (tools) +#: data/katepart5ui.rc:124 +#, fuzzy, kde-format +msgid "&Tools" +msgstr "Offer data" + +#. i18n: ectx: Menu (wordcompletion) +#: data/katepart5ui.rc:138 +#, kde-format +msgid "Word Completion" +msgstr "" + +#. i18n: ectx: Menu (spelling) +#: data/katepart5ui.rc:144 spellcheck/spellingmenu.cpp:71 +#: spellcheck/spellingmenu.cpp:195 +#, kde-format +msgid "Spelling" +msgstr "" + +#. i18n: ectx: Menu (speech) +#: data/katepart5ui.rc:153 data/katepart5ui.rc:184 +#, kde-format +msgid "Text to Speech" +msgstr "" + +#. i18n: ectx: Menu (settings) +#: data/katepart5ui.rc:161 +#, fuzzy, kde-format +msgid "&Settings" +msgstr "Gosodiadau Test&un" + +#. i18n: ectx: ToolBar (mainToolBar) +#: data/katepart5ui.rc:192 +#, kde-format +msgid "Main Toolbar" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/bordersappearanceconfigwidget.ui:25 +#, kde-format +msgid "Code block folding:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowFoldingMarkers) +#: dialogs/bordersappearanceconfigwidget.ui:32 +#, kde-format +msgid "" +"If this option is checked, every new view will display marks for folding." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowFoldingMarkers) +#: dialogs/bordersappearanceconfigwidget.ui:35 +#, kde-format +msgid "Show arrows to collapse code blocks" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowFoldingPreview) +#: dialogs/bordersappearanceconfigwidget.ui:42 +#, kde-format +msgid "" +"If checked, hovering over a folded region shows a preview of the folded text " +"in a popup." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowFoldingPreview) +#: dialogs/bordersappearanceconfigwidget.ui:45 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Show preview of folded blocks on hover" +msgstr "Argraffu'r ddogfen cyfredol." + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/bordersappearanceconfigwidget.ui:52 +#, kde-format +msgid "Folding arrows visibility:" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbFoldingArrowVisiblity) +#: dialogs/bordersappearanceconfigwidget.ui:63 +#, fuzzy, kde-format +#| msgid "Print &line numbers" +msgid "Show on Hover" +msgstr "Argraffu rhifau &llinell" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbFoldingArrowVisiblity) +#: dialogs/bordersappearanceconfigwidget.ui:68 +#, fuzzy, kde-format +#| msgid "Print &line numbers" +msgid "Show Always" +msgstr "Argraffu rhifau &llinell" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/bordersappearanceconfigwidget.ui:92 +#, kde-format +msgid "Left side:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkIconBorder) +#: dialogs/bordersappearanceconfigwidget.ui:99 +#, kde-format +msgid "" +"

If this option is checked, every new view will display an icon border on " +"the left hand side.

The icon border shows bookmark signs, for instance." +"

" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkIconBorder) +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMarks) +#: dialogs/bordersappearanceconfigwidget.ui:102 +#: dialogs/bordersappearanceconfigwidget.ui:155 +#, fuzzy, kde-format +#| msgid "Print &line numbers" +msgid "Show marks" +msgstr "Argraffu rhifau &llinell" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkLineNumbers) +#: dialogs/bordersappearanceconfigwidget.ui:109 +#, kde-format +msgid "" +"If this option is checked, every new view will display line numbers on the " +"left hand side." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkLineNumbers) +#: dialogs/bordersappearanceconfigwidget.ui:112 +#, fuzzy, kde-format +#| msgid "Print &line numbers" +msgid "Show &line numbers" +msgstr "Argraffu rhifau &llinell" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowLineModification) +#: dialogs/bordersappearanceconfigwidget.ui:119 +#, kde-format +msgid "" +"If this option is checked, a small indicator for modified and saved lines is " +"shown on the left hand side." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowLineModification) +#: dialogs/bordersappearanceconfigwidget.ui:122 +#, kde-format +msgid "Highlight changed and unsaved lines" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/bordersappearanceconfigwidget.ui:145 +#, kde-format +msgid "Scrollbars:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMarks) +#: dialogs/bordersappearanceconfigwidget.ui:152 +#, kde-format +msgid "" +"

If this option is checked, every new view will show marks on the vertical " +"scrollbar.

These marks will show bookmarks, for instance.

" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarPreview) +#: dialogs/bordersappearanceconfigwidget.ui:162 +#, kde-format +msgid "" +"

If this option is checked, hovering over the vertical scrollbar will show " +"a preview of the text.

" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarPreview) +#: dialogs/bordersappearanceconfigwidget.ui:165 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Show preview when hovering over scrollbar" +msgstr "Argraffu'r ddogfen cyfredol." + +#. i18n: ectx: property (text), widget (QLabel, lblShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:172 +#, kde-format +msgid "Scro&llbars visibility:" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:183 dialogs/katedialogs.cpp:755 +#, kde-format +msgid "Always On" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:188 +#, kde-format +msgid "Show When Needed" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:193 +#, kde-format +msgid "Always Off" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/bordersappearanceconfigwidget.ui:217 +#, fuzzy, kde-format +#| msgid "W&idth:" +msgid "Minimap:" +msgstr "&Lled:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMiniMap) +#: dialogs/bordersappearanceconfigwidget.ui:224 +#, kde-format +msgid "" +"If this option is checked, every new view will show a mini map on the " +"vertical scrollbar." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMiniMap) +#: dialogs/bordersappearanceconfigwidget.ui:227 +#, kde-format +msgid "Show minimap" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, labelMiniMapWidth) +#: dialogs/bordersappearanceconfigwidget.ui:250 +#, fuzzy, kde-format +#| msgid "W&idth:" +msgid "Minim&ap width:" +msgstr "&Lled:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMiniMapAll) +#: dialogs/bordersappearanceconfigwidget.ui:263 +#, kde-format +msgid "" +"If this option is checked, every new view will show a mini map of the whole " +"document on the vertical scrollbar." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMiniMapAll) +#: dialogs/bordersappearanceconfigwidget.ui:266 +#, fuzzy, kde-format +#| msgid "Save the current document" +msgid "Map the whole document" +msgstr "Cadw'r ddogfen cyfredol" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbSortBookmarksByCreation) +#: dialogs/bordersappearanceconfigwidget.ui:276 +#, kde-format +msgid "" +"Each new bookmark will be added to the bottom, independently from where it " +"is placed in the document." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbSortBookmarksByCreation) +#: dialogs/bordersappearanceconfigwidget.ui:279 +#, kde-format +msgid "By date created" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbSortBookmarksByPosition) +#: dialogs/bordersappearanceconfigwidget.ui:286 +#, kde-format +msgid "The bookmarks will be ordered by the line numbers they are placed at." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbSortBookmarksByPosition) +#: dialogs/bordersappearanceconfigwidget.ui:289 +#, fuzzy, kde-format +#| msgid "Print &line numbers" +msgid "By line number" +msgstr "Argraffu rhifau &llinell" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/bordersappearanceconfigwidget.ui:296 +#, fuzzy, kde-format +#| msgid "Set &Bookmark" +msgid "Sort bookmarks menu:" +msgstr "Gosod &Tudnod" + +#: dialogs/clipboardhistorydialog.cpp:264 +#, kde-format +msgid "Select text to paste." +msgstr "" + +#: dialogs/clipboardhistorydialog.cpp:296 +#, kde-format +msgid "No entries in clipboard history" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbGeneral) +#. i18n: ectx: property (title), widget (QGroupBox, gbViInputMode) +#: dialogs/completionconfigtab.ui:29 dialogs/katedialogs.cpp:609 +#: dialogs/katedialogs.cpp:743 dialogs/katedialogs.cpp:1026 +#: vimode/config/configwidget.ui:29 +#, kde-format +msgid "General" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoCompletionEnabled) +#: dialogs/completionconfigtab.ui:35 +#, fuzzy, kde-format +#| msgid "Unable to open %1" +msgid "Enable &auto completion" +msgstr "Methu agor %1" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoSelectFirstEntry) +#: dialogs/completionconfigtab.ui:42 +#, kde-format +msgid "Auto select &first completion entry" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkTabCompletion) +#: dialogs/completionconfigtab.ui:49 +#, kde-format +msgid "Cycle through the list of completions using Tab / Shift+Tab" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkEnterCompletion) +#: dialogs/completionconfigtab.ui:56 +#, kde-format +msgid "" +"Pressing enter will insert the text of selected completion item into the " +"editor. If disabled, Tab key or double-click can still be used to trigger " +"completion." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkEnterCompletion) +#: dialogs/completionconfigtab.ui:59 +#, kde-format +msgid "Use Enter key to insert selected completion" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbWordCompletion) +#: dialogs/completionconfigtab.ui:69 +#, fuzzy, kde-format +#| msgid "Unable to open %1" +msgid "A&uto word completion" +msgstr "Methu agor %1" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/completionconfigtab.ui:83 +#, kde-format +msgid "Minimal word length to complete:" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, removeTail) +#: dialogs/completionconfigtab.ui:111 +#, kde-format +msgid "Remove tail of a previous word when completion item chosen from a list" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, removeTail) +#: dialogs/completionconfigtab.ui:114 +#, fuzzy, kde-format +#| msgid "Re&move trailing spaces" +msgid "Remove tail on complete" +msgstr "&Gwaredu gofodnodau ychwanegol" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/completionconfigtab.ui:121 +#, kde-format +msgid "" +"Word completion provides suggestions based on the words found in the document" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbKeywordCompletion) +#: dialogs/completionconfigtab.ui:134 +#, fuzzy, kde-format +#| msgid "Unable to open %1" +msgid "&Keyword completion" +msgstr "Methu agor %1" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/completionconfigtab.ui:143 +#, kde-format +msgid "" +"Keyword completion provides suggestions based on the keywords which exist in " +"the document's language." +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbShowDoc) +#: dialogs/completionconfigtab.ui:156 +#, fuzzy, kde-format +msgid "Documentation with completion" +msgstr "Modd Dewis" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/completionconfigtab.ui:165 +#, kde-format +msgid "" +"Show documentation beside completion box. If disabled, documentation can be " +"shown by pressing Alt key." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/editconfigwidget.ui:22 +#, fuzzy, kde-format +#| msgid "Word Wrap" +msgid "Word wrap:" +msgstr "Lapio Llinellau" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkStaticWordWrap) +#: dialogs/editconfigwidget.ui:29 +#, kde-format +msgid "" +"

Automatically start a new line of text when the current line exceeds the " +"length specified by the Wrap words at: option.

This option does " +"not wrap existing lines of text - use the Apply Static Word Wrap " +"option in the Tools menu for that purpose.

If you want lines to " +"be visually wrapped instead, according to the width of the view, " +"enable Dynamic Word Wrap in the Appearance config page.

" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkStaticWordWrap) +#: dialogs/editconfigwidget.ui:32 +#, kde-format +msgid "Wrap &words at a fixed column" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowStaticWordWrapMarker) +#: dialogs/editconfigwidget.ui:39 +#, kde-format +msgid "" +"

If this option is checked, a vertical line will be drawn at the word wrap " +"column as defined in the Editing properties.

" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowStaticWordWrapMarker) +#: dialogs/editconfigwidget.ui:42 +#, kde-format +msgid "&Draw vertical line at the word wrap column" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblWordWrap) +#: dialogs/editconfigwidget.ui:49 +#, kde-format +msgid "Wra&p words at:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbWordWrap) +#: dialogs/editconfigwidget.ui:59 +#, kde-format +msgid "" +"If the Word Wrap option is selected this entry determines the length (in " +"characters) at which the editor will automatically start a new line." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblInputMode) +#: dialogs/editconfigwidget.ui:91 +#, kde-format +msgid "Default input mode:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/editconfigwidget.ui:120 +#, fuzzy, kde-format +msgid "Brackets:" +msgstr "Nod Tudalen" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoBrackets) +#: dialogs/editconfigwidget.ui:127 +#, kde-format +msgid "Automatically close brackets when opening bracket is typed" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLabel, lbEncloseSelection) +#: dialogs/editconfigwidget.ui:140 +#, kde-format +msgid "" +"When some text is selected these chars will be added on both its sides in a " +"way \"Auto Bracket\" do" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lbEncloseSelection) +#: dialogs/editconfigwidget.ui:143 +#, fuzzy, kde-format +#| msgid "Character" +msgid "Enclosing characters:" +msgstr "Nod" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/editconfigwidget.ui:166 +#, kde-format +msgid "Copy and paste:" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkTextDragAndDrop) +#: dialogs/editconfigwidget.ui:173 +#, fuzzy, kde-format +#| msgid "Selected" +msgid "Move selected text when dragged" +msgstr "Dewisiedig" + +#. i18n: ectx: property (text), widget (QCheckBox, chkSmartCopyCut) +#: dialogs/editconfigwidget.ui:180 +#, kde-format +msgid "Copy/cut the current line if invoked without any text selected" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkMousePasteAtCursorPosition) +#: dialogs/editconfigwidget.ui:187 +#, kde-format +msgid "Don't move the text cursor when pasting by mouse" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblClipboardHistoryEntries) +#: dialogs/editconfigwidget.ui:194 +#, kde-format +msgid "Max Clipboard History Entries:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbClipboardHistoryEntries) +#: dialogs/editconfigwidget.ui:204 +#, kde-format +msgid "This determines the number of entries to keep in the clipboard history" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblBracketHelp) +#: dialogs/editconfigwidget.ui:226 +#, kde-format +msgid "" +"When you type these characters while text is selected, they will surround " +"the selected text instead of replacing it." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAccessibility) +#: dialogs/editconfigwidget.ui:252 +#, kde-format +msgid "Enable accessibility notifications" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/editconfigwidget.ui:259 +#, kde-format +msgid "Accessibility:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblFiletype) +#: dialogs/filetypeconfigwidget.ui:14 +#, fuzzy, kde-format +msgid "&Filetype:" +msgstr "Fformat Ffeil" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbFiletypes) +#: dialogs/filetypeconfigwidget.ui:24 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "Select the filetype you want to change." +msgstr "Dewis holl destun y ddogfen gyfredol." + +#. i18n: ectx: property (whatsThis), widget (QPushButton, btnNew) +#: dialogs/filetypeconfigwidget.ui:31 +#, fuzzy, kde-format +msgid "Create a new file type." +msgstr "Cadw'r ddogfen cyfredol" + +#. i18n: ectx: property (text), widget (QPushButton, btnNew) +#: dialogs/filetypeconfigwidget.ui:34 +#, fuzzy, kde-format +#| msgid "&New..." +msgid "&New" +msgstr "&Newydd..." + +#. i18n: ectx: property (whatsThis), widget (QPushButton, btnDelete) +#: dialogs/filetypeconfigwidget.ui:41 +#, fuzzy, kde-format +msgid "Delete the current file type." +msgstr "Cadw'r ddogfen cyfredol" + +#. i18n: ectx: property (text), widget (QPushButton, btnDelete) +#: dialogs/filetypeconfigwidget.ui:44 syntax/katethemeconfig.cpp:1132 +#, fuzzy, kde-format +msgid "&Delete" +msgstr "Dewisiedig" + +#. i18n: ectx: property (title), widget (QGroupBox, gbProperties) +#: dialogs/filetypeconfigwidget.ui:66 mode/katemodeconfigpage.cpp:272 +#, fuzzy, kde-format +msgid "Properties" +msgstr "Priodweddau'r blwch" + +#. i18n: ectx: property (text), widget (QLabel, lblName) +#: dialogs/filetypeconfigwidget.ui:72 +#, fuzzy, kde-format +#| msgid "Name:" +msgid "&Name:" +msgstr "Enw:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtName) +#: dialogs/filetypeconfigwidget.ui:82 +#, kde-format +msgid "" +"The name of the filetype will be the text of the corresponding menu item." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblSection) +#: dialogs/filetypeconfigwidget.ui:89 +#, kde-format +msgid "&Section:" +msgstr "R&han:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtSection) +#: dialogs/filetypeconfigwidget.ui:99 +#, kde-format +msgid "The section name is used to organize the file types in menus." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblVariables) +#: dialogs/filetypeconfigwidget.ui:106 +#, fuzzy, kde-format +msgid "&Variables:" +msgstr "&Newidynnau :" + +#. i18n: ectx: property (whatsThis), widget (VariableLineEdit, edtVariables) +#: dialogs/filetypeconfigwidget.ui:116 +#, kde-format +msgid "" +"

This string allows to configure Kate's settings for the files selected by " +"this mimetype using Kate variables. Almost any configuration option can be " +"set, such as highlight, indent-mode, encoding, etc.

For a full list of " +"known variables, see the manual.

" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblHl) +#: dialogs/filetypeconfigwidget.ui:123 +#, fuzzy, kde-format +#| msgid "&Highlighting" +msgid "&Highlighting:" +msgstr "&Amlygu" + +#. i18n: ectx: property (text), widget (QLabel, lblIndenter) +#: dialogs/filetypeconfigwidget.ui:136 +#, fuzzy, kde-format +msgid "&Indentation mode:" +msgstr "Modd Dewis" + +#. i18n: ectx: property (text), widget (QLabel, lblExtensions) +#: dialogs/filetypeconfigwidget.ui:149 +#, fuzzy, kde-format +msgid "File e&xtensions:" +msgstr "R&han:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtFileExtensions) +#: dialogs/filetypeconfigwidget.ui:159 +#, kde-format +msgid "" +"The wildcards mask allows to select files by filename. A typical mask uses " +"an asterisk and the file extension, for example *.txt; *.text. " +"The string is a semicolon-separated list of masks." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblMimeTypes) +#: dialogs/filetypeconfigwidget.ui:166 +#, kde-format +msgid "MIME &types:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtMimeTypes) +#: dialogs/filetypeconfigwidget.ui:181 +#, kde-format +msgid "" +"The mime type mask allows to select files by mimetype. The string is a " +"semicolon-separated list of mimetypes, for example text/plain; text/" +"english." +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QToolButton, btnMimeTypes) +#: dialogs/filetypeconfigwidget.ui:188 +#, kde-format +msgid "Displays a wizard that helps you easily select mimetypes." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblPriority) +#: dialogs/filetypeconfigwidget.ui:197 +#, fuzzy, kde-format +#| msgid "Prio&rity:" +msgid "P&riority:" +msgstr "Blae&noriaeth:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbPriority) +#: dialogs/filetypeconfigwidget.ui:207 +#, kde-format +msgid "" +"Sets priority for this file type. If more than one file type selects the " +"same file, the one with the highest priority will be used." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblMode) +#: dialogs/indentationconfigwidget.ui:43 +#, kde-format +msgid "Default indentation mode:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbMode) +#: dialogs/indentationconfigwidget.ui:53 +#, kde-format +msgid "" +"This is a list of available indentation modes. The specified indentation " +"mode will be used for all new documents. Be aware that it is also possible " +"to set the indentation mode with document variables, modes or a .kateconfig " +"file." +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbIndentationMode) +#: dialogs/indentationconfigwidget.ui:75 +#, fuzzy, kde-format +msgid "Indent using" +msgstr "Modd Dewis" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbIndentWidth) +#: dialogs/indentationconfigwidget.ui:81 +#, kde-format +msgid "" +"The indentation width is the number of spaces which is used to indent a " +"line. If the option Insert spaces instead of tabulators in the " +"section Editing is disabled, a Tab character is inserted if " +"the indentation is divisible by the tab width." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentWithSpaces) +#: dialogs/indentationconfigwidget.ui:97 +#, fuzzy, kde-format +#| msgid "&Replace" +msgid "&Spaces" +msgstr "A&mnewid" + +#. i18n: ectx: property (text), widget (QLabel, lblIndentWidth) +#: dialogs/indentationconfigwidget.ui:104 +#, fuzzy, kde-format +msgid "&Indentation width:" +msgstr "Modd Dewis" + +#. i18n: ectx: property (text), widget (QLabel, lblTabWidth) +#: dialogs/indentationconfigwidget.ui:114 +#, kde-format +msgid "Tab wi&dth:" +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentWithTabs) +#: dialogs/indentationconfigwidget.ui:153 +#, fuzzy, kde-format +#| msgid "Tabulators" +msgid "&Tabulators" +msgstr "Tablyddion" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentMixed) +#: dialogs/indentationconfigwidget.ui:160 +#, fuzzy, kde-format +#| msgid "Tabulators" +msgid "Tabulators &and Spaces" +msgstr "Tablyddion" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoDetectIndent) +#: dialogs/indentationconfigwidget.ui:167 +#, fuzzy, kde-format +#| msgid "Backspace" +msgid "Automatically detect file indentation" +msgstr "Yn ôl" + +#. i18n: ectx: property (title), widget (QGroupBox, gbProperties) +#: dialogs/indentationconfigwidget.ui:177 +#, fuzzy, kde-format +#| msgid "Header Properties" +msgid "Indentation Properties" +msgstr "Nodweddion Penawdau" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkKeepExtraSpaces) +#: dialogs/indentationconfigwidget.ui:183 +#, kde-format +msgid "" +"If this option is disabled, changing the indentation level aligns a line to " +"a multiple of the width specified in Indentation width." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkKeepExtraSpaces) +#: dialogs/indentationconfigwidget.ui:186 +#, fuzzy, kde-format +#| msgid "&Keep extra spaces" +msgid "&Keep extra spaces" +msgstr "&Cadw gofodnodau ychwanegol" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkIndentPaste) +#: dialogs/indentationconfigwidget.ui:193 +#, kde-format +msgid "" +"If this option is selected, pasted code from the clipboard is indented. " +"Triggering the undo-action removes the indentation." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkIndentPaste) +#: dialogs/indentationconfigwidget.ui:196 +#, kde-format +msgid "Adjust indentation of code &pasted from the clipboard" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbKeys) +#: dialogs/indentationconfigwidget.ui:206 +#, fuzzy, kde-format +msgid "Indentation Actions" +msgstr "Modd Dewis" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackspaceUnindents) +#: dialogs/indentationconfigwidget.ui:212 +#, kde-format +msgid "" +"If this option is selected, the Backspace key decreases the " +"indentation level if the cursor is located in the leading blank space of a " +"line." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackspaceUnindents) +#: dialogs/indentationconfigwidget.ui:215 +#, kde-format +msgid "&Backspace key in leading blank space unindents" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/indentationconfigwidget.ui:225 +#, kde-format +msgid "" +"\n" +"

Tab key action (if no selection exists) Tab " +"to align the current line in the current code block like in Emacs, make " +"Tab a shortcut to the action Format Indentation." +"\">More ...

" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabAdvances) +#: dialogs/indentationconfigwidget.ui:276 +#, kde-format +msgid "" +"If this option is selected, the Tab key always inserts white space so " +"that the next tab position is reached. If the option Insert spaces " +"instead of tabulators in the section Editing is enabled, spaces " +"are inserted; otherwise, a single tabulator is inserted." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabAdvances) +#: dialogs/indentationconfigwidget.ui:279 +#, kde-format +msgid "Always advance to the &next tab position" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabIndents) +#: dialogs/indentationconfigwidget.ui:286 +#, kde-format +msgid "" +"If this option is selected, the Tab key always indents the current " +"line by the number of character positions specified in Indentation width." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabIndents) +#: dialogs/indentationconfigwidget.ui:289 +#, kde-format +msgid "Always increase indentation &level" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabSmart) +#: dialogs/indentationconfigwidget.ui:296 +#, kde-format +msgid "" +"If this option is selected, the Tab key either indents the current " +"line or advances to the next tab position.

If the insertion point is at " +"or before the first non-space character in the line, or if there is a " +"selection, the current line is indented by the number of character positions " +"specified in Indentation width.

If the insertion point is located " +"after the first non-space character in the line and there is no selection, " +"white space is inserted so that the next tab position is reached: if the " +"option Insert spaces instead of tabulators in the section Editing is enabled, spaces are inserted; otherwise, a single tabulator is " +"inserted." +msgstr "" + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabSmart) +#: dialogs/indentationconfigwidget.ui:299 +#, kde-format +msgid "Increase indentation level if in l&eading blank space" +msgstr "" + +#: dialogs/katedialogs.cpp:185 dialogs/katedialogs.cpp:187 +#, fuzzy, kde-format +#| msgid "Character" +msgid "%v character" +msgid_plural "%v characters" +msgstr[0] "Nod" +msgstr[1] "Nod" + +#: dialogs/katedialogs.cpp:211 +#, kde-format +msgid "Indentation" +msgstr "" + +#: dialogs/katedialogs.cpp:295 +#, kde-format +msgid "Auto Completion" +msgstr "" + +#: dialogs/katedialogs.cpp:362 +#, kde-format +msgid "Spellcheck" +msgstr "Gwirio Sillafu" + +#: dialogs/katedialogs.cpp:410 dialogs/katedialogs.cpp:417 +#, kde-format +msgid "Alt" +msgstr "" + +#: dialogs/katedialogs.cpp:411 dialogs/katedialogs.cpp:419 +#, kde-format +msgid "Ctrl" +msgstr "" + +#: dialogs/katedialogs.cpp:412 +#, kde-format +msgid "Meta" +msgstr "" + +#: dialogs/katedialogs.cpp:413 dialogs/katedialogs.cpp:421 +#, kde-format +msgid "Ctrl + Alt" +msgstr "" + +#: dialogs/katedialogs.cpp:414 +#, kde-format +msgid "Meta + Alt" +msgstr "" + +#: dialogs/katedialogs.cpp:415 +#, kde-format +msgid "Ctrl + Meta" +msgstr "" + +#: dialogs/katedialogs.cpp:418 +#, fuzzy, kde-format +#| msgid "Comment" +msgid "Cmd" +msgstr "Sylwad" + +#: dialogs/katedialogs.cpp:420 +#, kde-format +msgid "Cmd + Alt" +msgstr "" + +#: dialogs/katedialogs.cpp:422 +#, kde-format +msgid "Cmd + Ctrl" +msgstr "" + +#: dialogs/katedialogs.cpp:480 +#, fuzzy, kde-format +#| msgctxt "Language Section" +#| msgid "Configuration" +msgid "Text Navigation" +msgstr "Ffurfwedd" + +#: dialogs/katedialogs.cpp:582 +#, fuzzy, kde-format +#| msgid "Character" +msgctxt "Wrap words at (value is at 20 or larger)" +msgid "%v character" +msgid_plural "%v characters" +msgstr[0] "Nod" +msgstr[1] "Nod" + +#: dialogs/katedialogs.cpp:587 +#, kde-format +msgid "Feature is not active" +msgstr "" + +#: dialogs/katedialogs.cpp:589 +#, fuzzy, kde-format +#| msgid "Disabled" +msgid "Disable Feature" +msgstr "Analluogir" + +#: dialogs/katedialogs.cpp:591 +#, kde-format +msgid "May be handy with Markdown" +msgstr "" + +#: dialogs/katedialogs.cpp:593 +#, kde-format +msgid "Mirror characters, similar but not exactly like auto brackets" +msgstr "" + +#: dialogs/katedialogs.cpp:595 +#, fuzzy, kde-format +#| msgid "Character" +msgid "Non letter character" +msgstr "Nod" + +#: dialogs/katedialogs.cpp:712 +#, kde-format +msgid "Editing" +msgstr "" + +#: dialogs/katedialogs.cpp:717 +#, kde-format +msgid "Editing Options" +msgstr "" + +#: dialogs/katedialogs.cpp:751 +#, kde-format +msgid "Statusbar" +msgstr "" + +#: dialogs/katedialogs.cpp:753 +#, fuzzy, kde-format +msgid "Off" +msgstr "&I ffwrdd" + +#: dialogs/katedialogs.cpp:754 +#, kde-format +msgid "Follow Line Numbers" +msgstr "" + +#: dialogs/katedialogs.cpp:945 dialogs/katedialogs.cpp:950 +#, fuzzy, kde-format +msgid "Appearance" +msgstr "Priflythrennau" + +#: dialogs/katedialogs.cpp:986 +#, kde-format +msgid "" +"%1 backs up unsaved files to \"swap files.\" Swap files allow %1 to recover " +"your work in the case of a system crash. Disabling swap files may cause data " +"loss in case of a system crash." +msgstr "" + +#: dialogs/katedialogs.cpp:1027 +#, kde-format +msgid "Advanced" +msgstr "" + +#: dialogs/katedialogs.cpp:1092 +#, kde-format +msgid "" +"You did not provide a backup suffix or prefix. Using default suffix: '~'" +msgstr "" + +#: dialogs/katedialogs.cpp:1092 +#, kde-format +msgid "No Backup Suffix or Prefix" +msgstr "" + +#: dialogs/katedialogs.cpp:1227 +#, kde-format +msgid "Open/Save" +msgstr "" + +#: dialogs/katedialogs.cpp:1232 +#, kde-format +msgid "File Opening & Saving" +msgstr "" + +#: dialogs/katedialogs.cpp:1255 +#, kde-format +msgid "&Line:" +msgstr "" + +#: dialogs/katedialogs.cpp:1256 +#, kde-format +msgid "Go to line number from clipboard" +msgstr "" + +#: dialogs/katedialogs.cpp:1267 +#, kde-format +msgid "Go to" +msgstr "" + +#: dialogs/katedialogs.cpp:1347 +#, kde-format +msgid "No valid line number found in clipboard" +msgstr "" + +#: dialogs/katedialogs.cpp:1411 +#, fuzzy, kde-format +#| msgid "&Section:" +msgid "Dictionary:" +msgstr "R&han:" + +#: dialogs/katedialogs.cpp:1463 +#, fuzzy, kde-format +#| msgid "Unable to open %1" +msgid "Enable Auto Reload" +msgstr "Methu agor %1" + +#: dialogs/katedialogs.cpp:1466 +#, kde-format +msgid "" +"Reloads and will automatically reload without warning about disk changes " +"from now until you close either the tab or window." +msgstr "" + +#: dialogs/katedialogs.cpp:1471 +#, kde-format +msgid "View &Difference" +msgstr "" + +#: dialogs/katedialogs.cpp:1473 +#, kde-format +msgid "Shows a diff of the changes." +msgstr "" + +#: dialogs/katedialogs.cpp:1478 +#, fuzzy, kde-format +#| msgid "Reloa&d" +msgid "&Reload" +msgstr "Ail-l&wytho" + +#: dialogs/katedialogs.cpp:1480 +#, kde-format +msgid "Reloads the file from disk. Unsaved changes will be lost." +msgstr "" + +#: dialogs/katedialogs.cpp:1484 +#, fuzzy, kde-format +msgctxt "@action:button closes the opened file" +msgid "&Close File" +msgstr "A&mnewid" + +#: dialogs/katedialogs.cpp:1486 +#, kde-format +msgid "Closes the file, discarding its content." +msgstr "" + +#: dialogs/katedialogs.cpp:1490 +#, fuzzy, kde-format +msgctxt "@action" +msgid "&Save As…" +msgstr "Mewnosod Ffeil ..." + +#: dialogs/katedialogs.cpp:1492 +#, kde-format +msgid "Lets you select a location and save the file again." +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, m_skipBtn) +#: dialogs/katedialogs.cpp:1497 spellcheck/spellcheckbar.ui:143 +#, kde-format +msgid "&Ignore" +msgstr "&Anwybyddu" + +#: dialogs/katedialogs.cpp:1498 +#, kde-format +msgid "Ignores the changes on disk without any action." +msgstr "" + +#: dialogs/katedialogs.cpp:1567 swapfile/kateswapdiffcreator.cpp:131 +#, kde-format +msgid "" +"The diff command failed. Please make sure that diff(1) is installed and in " +"your PATH." +msgstr "" + +#: dialogs/katedialogs.cpp:1569 swapfile/kateswapdiffcreator.cpp:89 +#: swapfile/kateswapdiffcreator.cpp:99 swapfile/kateswapdiffcreator.cpp:133 +#, kde-format +msgid "Error Creating Diff" +msgstr "" + +#: dialogs/katedialogs.cpp:1576 swapfile/kateswapdiffcreator.cpp:140 +#, kde-format +msgid "The files are identical." +msgstr "" + +#: dialogs/katedialogs.cpp:1576 swapfile/kateswapdiffcreator.cpp:140 +#, kde-format +msgid "Diff Output" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbCursorMovement) +#: dialogs/navigationconfigwidget.ui:29 +#, kde-format +msgid "Text Cursor Movement" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkSmartHome) +#: dialogs/navigationconfigwidget.ui:35 +#, kde-format +msgid "" +"When selected, pressing the home key will cause the cursor to skip " +"whitespace and go to the start of a line's text. The same applies for the " +"end key." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkSmartHome) +#: dialogs/navigationconfigwidget.ui:38 +#, kde-format +msgid "Smart ho&me and smart end" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkPagingMovesCursor) +#: dialogs/navigationconfigwidget.ui:45 +#, kde-format +msgid "" +"Selects whether the PageUp and PageDown keys should alter the vertical " +"position of the cursor relative to the top of the view." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkPagingMovesCursor) +#: dialogs/navigationconfigwidget.ui:48 +#, kde-format +msgid "&PageUp/PageDown moves cursor" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkCamelCursor) +#: dialogs/navigationconfigwidget.ui:55 +#, kde-format +msgid "" +"Selects whether cursor stops at camel case humps and underscores within a " +"word." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkCamelCursor) +#: dialogs/navigationconfigwidget.ui:58 +#, kde-format +msgid "" +"Stop at 'camelCase' and 'snake_case' subwords when moving the cursor by word" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:79 +#, kde-format +msgid "&Autocenter cursor:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:89 +#, kde-format +msgid "" +"Sets the number of lines to maintain visible above and below the cursor when " +"possible." +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, spbSwapFileSync) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:92 dialogs/opensaveconfigadvwidget.ui:120 +#: dialogs/opensaveconfigadvwidget.ui:168 +#, kde-format +msgid "Disabled" +msgstr "Analluogir" + +#. i18n: ectx: property (suffix), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:95 +#, fuzzy, kde-format +msgid " lines" +msgstr "&Danlinellu" + +#. i18n: ectx: property (title), widget (QGroupBox, cbNavigationMisc) +#: dialogs/navigationconfigwidget.ui:120 +#, kde-format +msgid "Misc" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:128 +#, fuzzy, kde-format +#| msgid "Selection Mode" +msgid "Text selection mode:" +msgstr "Modd Dewis" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:139 inputmode/katenormalinputmode.cpp:64 +#: mode/katemodemanager.cpp:162 +#, fuzzy, kde-format +#| msgid "Normal" +msgid "Normal" +msgstr "Arferol" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:144 +#, fuzzy, kde-format +#| msgid "&Persistent" +msgid "Persistent" +msgstr "Par&haol" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollPastEnd) +#: dialogs/navigationconfigwidget.ui:167 +#, kde-format +msgid "Allow scrolling past the end of the document" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackspaceRemoveComposed) +#: dialogs/navigationconfigwidget.ui:174 +#, kde-format +msgid "" +"When selected, composed characters are removed with their diacritics instead " +"of only removing the base character. This is useful for Indic locales." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackspaceRemoveComposed) +#: dialogs/navigationconfigwidget.ui:177 +#, kde-format +msgid "Backspace key removes character’s base with its diacritics" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbCycleBookmarks) +#: dialogs/navigationconfigwidget.ui:184 +#, kde-format +msgid "Allow to cycle through bookmarks" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbMulticursor) +#: dialogs/navigationconfigwidget.ui:194 +#, kde-format +msgid "Multicursor" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblMulticursormodifiers) +#: dialogs/navigationconfigwidget.ui:200 +#, kde-format +msgid "Multiple Cursor Modifiers" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoReloadVersionControl) +#: dialogs/opensaveconfigadvwidget.ui:34 +#, kde-format +msgid "Auto reload files in version control" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoReloadOnExternalChanges) +#: dialogs/opensaveconfigadvwidget.ui:41 +#, kde-format +msgid "Auto reload files on external changes" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/opensaveconfigadvwidget.ui:48 +#, kde-format +msgid "Write a backup file on save for:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackupLocalFiles) +#: dialogs/opensaveconfigadvwidget.ui:55 +#, kde-format +msgid "" +"If this option is enabled, backups for local files will be created when " +"saving." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackupLocalFiles) +#: dialogs/opensaveconfigadvwidget.ui:58 +#, kde-format +msgid "&Local files" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackupRemoteFiles) +#: dialogs/opensaveconfigadvwidget.ui:65 +#, kde-format +msgid "" +"If this option is enabled, backups for remote files will be created when " +"saving." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackupRemoteFiles) +#: dialogs/opensaveconfigadvwidget.ui:68 +#, fuzzy, kde-format +msgid "&Remote files" +msgstr "A&mnewid" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/opensaveconfigadvwidget.ui:75 +#, kde-format +msgid "Prefix for backup files:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtBackupPrefix) +#: dialogs/opensaveconfigadvwidget.ui:85 +#, kde-format +msgid "Enter the prefix to prepend to the backup file names." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/opensaveconfigadvwidget.ui:92 +#, kde-format +msgid "Suffix for backup files:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtBackupSuffix) +#: dialogs/opensaveconfigadvwidget.ui:102 +#, kde-format +msgid "Enter the suffix to append to the backup file names." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:109 +#, kde-format +msgid "Swap file mode:" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:125 +#, kde-format +msgid "Enabled, Store In Default Directory" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:130 +#, kde-format +msgid "Enabled, Store In Custom Directory" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapDirectory) +#: dialogs/opensaveconfigadvwidget.ui:138 +#, kde-format +msgid "Store swap files in:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapFileSync) +#: dialogs/opensaveconfigadvwidget.ui:158 +#, kde-format +msgid "Save swap files every:" +msgstr "" + +#. i18n: ectx: property (suffix), widget (QSpinBox, spbSwapFileSync) +#: dialogs/opensaveconfigadvwidget.ui:171 +#, kde-format +msgid "s" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblExplanatory) +#: dialogs/opensaveconfigadvwidget.ui:196 +#, kde-format +msgid "" +"This string is located in katedialogs.cpp in KateSaveConfigTab's constructor." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkEditorConfig) +#: dialogs/opensaveconfigadvwidget.ui:209 +#, kde-format +msgid "Honor settings in .editorconfig file" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkUseFirstLineAsDocName) +#: dialogs/opensaveconfigadvwidget.ui:229 +#, kde-format +msgid "Use first line of untitled documents for document name" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbFileFormat) +#: dialogs/opensaveconfigwidget.ui:29 +#, kde-format +msgid "File Format" +msgstr "Fformat Ffeil" + +#. i18n: ectx: property (text), widget (QLabel, lblEncoding) +#: dialogs/opensaveconfigwidget.ui:40 +#, kde-format +msgid "&Encoding:" +msgstr "&Amgodiad:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncoding) +#: dialogs/opensaveconfigwidget.ui:50 +#, kde-format +msgid "" +"This defines the standard encoding to use to open/save files, if not changed " +"in the open/save dialog or by using a command line option." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblEncodingDetection) +#: dialogs/opensaveconfigwidget.ui:57 +#, fuzzy, kde-format +#| msgid "&Encoding:" +msgid "&Encoding detection:" +msgstr "&Amgodiad:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncodingDetection) +#: dialogs/opensaveconfigwidget.ui:67 +#, kde-format +msgid "" +"if neither the encoding chosen as standard above, nor the encoding specified " +"in the open/save dialog, nor the encoding specified on command line match " +"the content of the file, this detection will be run." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblEncodingDetection2) +#: dialogs/opensaveconfigwidget.ui:74 +#, fuzzy, kde-format +#| msgid "&Encoding:" +msgid "&Fallback encoding:" +msgstr "&Amgodiad:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncodingFallback) +#: dialogs/opensaveconfigwidget.ui:84 +#, kde-format +msgid "" +"This defines the fallback encoding to try for opening files if neither the " +"encoding chosen as standard above, nor the encoding specified in the open/" +"save dialog, nor the encoding specified on command line match the content of " +"the file. Before this is used, an attempt will be made to determine the " +"encoding to use by looking for a byte order mark at start of file: if one is " +"found, the right Unicode encoding will be chosen; otherwise encoding " +"detection will run, if both fail the fallback encoding will be tried." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblEOL) +#: dialogs/opensaveconfigwidget.ui:91 +#, fuzzy, kde-format +#| msgid "&End of Line" +msgid "E&nd of line:" +msgstr "&Diwedd y Llinell" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:102 +#, kde-format +msgid "UNIX" +msgstr "UNIX" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:107 +#, kde-format +msgid "DOS/Windows" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:112 +#, kde-format +msgid "Macintosh" +msgstr "Macintosh" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkDetectEOL) +#: dialogs/opensaveconfigwidget.ui:122 +#, kde-format +msgid "" +"If this option is enabled the editor will autodetect the end of line type. " +"The first found end of line type will be used for the whole file." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDetectEOL) +#: dialogs/opensaveconfigwidget.ui:125 +#, kde-format +msgid "A&utomatic end of line detection" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkEnableBOM) +#: dialogs/opensaveconfigwidget.ui:132 +#, kde-format +msgid "" +"The byte order mark is a special sequence at the beginning of Unicode " +"encoded documents. It helps editors to open text documents with the correct " +"Unicode encoding. The byte order mark is not visible in the displayed " +"document." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkEnableBOM) +#: dialogs/opensaveconfigwidget.ui:135 +#, kde-format +msgid "Enable byte order mark (BOM)" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/opensaveconfigwidget.ui:142 +#, kde-format +msgid "Line length limit:" +msgstr "" + +#. i18n: ectx: property (specialValueText), widget (QSpinBox, lineLengthLimit) +#: dialogs/opensaveconfigwidget.ui:152 +#, fuzzy, kde-format +msgid "Unlimited" +msgstr "Heb derfyn" + +#. i18n: ectx: property (title), widget (QGroupBox, gbCleanups) +#: dialogs/opensaveconfigwidget.ui:168 +#, fuzzy, kde-format +#| msgid "Backspace" +msgid "Automatic Cleanups on Save" +msgstr "Yn ôl" + +#. i18n: ectx: property (whatsThis), widget (QLabel, lblRemoveTrailingSpaces) +#. i18n: ectx: property (whatsThis), widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:176 dialogs/opensaveconfigwidget.ui:189 +#, kde-format +msgid "" +"Depending on the choice, trailing spaces are removed when saving a document, " +"either in the entire document or only of modified lines." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:179 +#, fuzzy, kde-format +#| msgid "Re&move trailing spaces" +msgid "Re&move trailing spaces:" +msgstr "&Gwaredu gofodnodau ychwanegol" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, spbAutoSaveInterval) +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/opensaveconfigwidget.ui:193 dialogs/opensaveconfigwidget.ui:270 +#: dialogs/textareaappearanceconfigwidget.ui:104 +#, kde-format +msgid "Never" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:198 +#, fuzzy, kde-format +msgid "On Modified Lines" +msgstr "Mynd i Linell" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:203 +#, kde-format +msgid "In Entire Document" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkNewLineAtEof) +#: dialogs/opensaveconfigwidget.ui:226 +#, kde-format +msgid "" +"On save, a line break is appended to the document if not already present. " +"The line break is visible after reloading the file." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkNewLineAtEof) +#: dialogs/opensaveconfigwidget.ui:229 +#, kde-format +msgid "Append newline at end of file on save" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbAutoSave) +#: dialogs/opensaveconfigwidget.ui:239 +#, fuzzy, kde-format +#| msgid "Unable to open %1" +msgid "Enable Auto Save (local files only)" +msgstr "Methu agor %1" + +#. i18n: ectx: property (text), widget (QCheckBox, cbAutoSaveOnFocus) +#: dialogs/opensaveconfigwidget.ui:254 +#, kde-format +msgid "Auto save document when the active document is losing focus" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/opensaveconfigwidget.ui:263 +#, kde-format +msgid "Auto save interval:" +msgstr "" + +#. i18n: ectx: property (suffix), widget (QSpinBox, spbAutoSaveInterval) +#: dialogs/opensaveconfigwidget.ui:273 +#, kde-format +msgid " seconds" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowHighlightingMode) +#: dialogs/statusbarconfigwidget.ui:19 +#, fuzzy, kde-format +#| msgid "KWrite XML Syntax highlighting support" +msgid "Show highlighting mode" +msgstr "Cynhaliaeth amlygu cystrawen XML KWrite" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowInputMode) +#: dialogs/statusbarconfigwidget.ui:26 +#, fuzzy, kde-format +#| msgid "Print &line numbers" +msgid "Show input mode" +msgstr "Argraffu rhifau &llinell" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowActiveDictionary) +#: dialogs/statusbarconfigwidget.ui:33 +#, fuzzy, kde-format +msgid "Show active dictionary" +msgstr "Dewi&s Ffont..." + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowTabSetting) +#: dialogs/statusbarconfigwidget.ui:40 +#, fuzzy, kde-format +msgid "Show tab setting" +msgstr "&Dangos tablyddion" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowLineColumn) +#: dialogs/statusbarconfigwidget.ui:47 +#, fuzzy, kde-format +msgid "Show line column" +msgstr "Mynd i Linell" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowEncoding) +#: dialogs/statusbarconfigwidget.ui:54 +#, fuzzy, kde-format +#| msgid "E&ncoding" +msgid "Show File Encoding" +msgstr "A&mgodiad" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowEOL) +#: dialogs/statusbarconfigwidget.ui:61 +#, kde-format +msgid "Show Line Ending Type" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/textareaappearanceconfigwidget.ui:28 +#, fuzzy, kde-format +#| msgid "Plugins" +msgid "Editor font:" +msgstr "Ategion" + +#. i18n: ectx: property (text), widget (QLabel, lblLineHeight) +#: dialogs/textareaappearanceconfigwidget.ui:48 +#, kde-format +msgid "&Line Height Multiplier:" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QDoubleSpinBox, spbLineHeightMultiplier) +#: dialogs/textareaappearanceconfigwidget.ui:58 +#, kde-format +msgid "" +"This value will be multiplied with the font's default line height. A value " +"of 1.0 means that the default height will be used." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/textareaappearanceconfigwidget.ui:93 +#, kde-format +msgid "Show whitespace indicators:" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/textareaappearanceconfigwidget.ui:109 +#, fuzzy, kde-format +#| msgid "&End of Line" +msgid "At the end of a line" +msgstr "&Diwedd y Llinell" + +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/textareaappearanceconfigwidget.ui:114 +#, kde-format +msgid "Always" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lbMarkerDescription) +#: dialogs/textareaappearanceconfigwidget.ui:122 +#, fuzzy, kde-format +#| msgid "Highlighting" +msgid "Whitespace indicator si&ze:" +msgstr "Amlygu" + +#. i18n: ectx: property (whatsThis), widget (QSlider, sliSetMarkerSize) +#: dialogs/textareaappearanceconfigwidget.ui:138 +#, kde-format +msgid "Size of the visible highlight marker." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/textareaappearanceconfigwidget.ui:166 +#, fuzzy, kde-format +msgid "Show &tab indicators:" +msgstr "&Dangos tablyddion" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowTabs) +#: dialogs/textareaappearanceconfigwidget.ui:176 +#, kde-format +msgid "" +"The editor will display a symbol to indicate the presence of a tab in the " +"text." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/textareaappearanceconfigwidget.ui:202 +#, fuzzy, kde-format +#| msgid "H&ighlight:" +msgid "Bracket matching:" +msgstr "A&mlygu:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowWholeBracketExpression) +#: dialogs/textareaappearanceconfigwidget.ui:209 +#, kde-format +msgid "" +"If this is enabled, the range between the selected matching brackets will be " +"highlighted." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowWholeBracketExpression) +#: dialogs/textareaappearanceconfigwidget.ui:212 +#, kde-format +msgid "Highlight range between selected brackets" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:219 +#, kde-format +msgid "Show the matching open bracket and lines adjacent to it for context" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:222 +#, kde-format +msgid "" +"If this is enabled, a preview of the lines near a matching open bracket is " +"shown. This can help in quickly determining the context of a closing " +"bracket, especially in long function/class declarations and deeply nested if " +"blocks" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:225 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Show preview of matching open bracket" +msgstr "Argraffu'r ddogfen cyfredol." + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:232 +#, kde-format +msgid "Flash matching brackets" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:235 +#, kde-format +msgid "" +"If this is enabled, matching brackets are animated for better visibility." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:238 +#, kde-format +msgid "Flash matching bracket when cursor moves to other bracket in pair" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/textareaappearanceconfigwidget.ui:261 +#, kde-format +msgid "Counts:" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowWordCount) +#: dialogs/textareaappearanceconfigwidget.ui:268 +#, kde-format +msgid "Show/hide word count in status bar" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowWordCount) +#: dialogs/textareaappearanceconfigwidget.ui:271 view/katestatusbar.cpp:258 +#, kde-format +msgid "Show word count" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowLineCount) +#: dialogs/textareaappearanceconfigwidget.ui:278 +#, kde-format +msgid "Show/hide line count in status bar" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowLineCount) +#: dialogs/textareaappearanceconfigwidget.ui:281 view/katestatusbar.cpp:255 +#, fuzzy, kde-format +msgid "Show line count" +msgstr "Mynd i Linell" + +#. i18n: ectx: property (text), widget (QLabel, label_25) +#: dialogs/textareaappearanceconfigwidget.ui:304 +#, fuzzy, kde-format +#| msgid "Go to Line" +msgid "Fold first line:" +msgstr "Mynd i Linell" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkFoldFirstLine) +#: dialogs/textareaappearanceconfigwidget.ui:317 +#, kde-format +msgid "" +"When this setting is enabled, the editor view automatically folds\n" +"comment blocks that start on the first line of the document. This is\n" +"helpful to hide license headers which are commonly placed at the\n" +"beginning of a file." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbxWordWrap) +#: dialogs/textareaappearanceconfigwidget.ui:337 +#, fuzzy, kde-format +#| msgid "Word Wrap" +msgid "Dynamic Word Wrap:" +msgstr "Lapio Llinellau" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDynWrapAtStaticMarker) +#: dialogs/textareaappearanceconfigwidget.ui:344 +#, fuzzy, kde-format +msgid "Wrap dynamically at static word wrap marker" +msgstr "Llunio lliw y ce&fndir" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDynWrapAnywhere) +#: dialogs/textareaappearanceconfigwidget.ui:351 +#, kde-format +msgid "Disregard word boundaries for dynamic wrapping" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblDynamicWordWrapIndicators) +#: dialogs/textareaappearanceconfigwidget.ui:358 +#, kde-format +msgid "D&ynamic word wrap indicators:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbDynamicWordWrapIndicator) +#: dialogs/textareaappearanceconfigwidget.ui:368 +#, kde-format +msgid "Choose when the Dynamic Word Wrap Indicators should be displayed." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/textareaappearanceconfigwidget.ui:391 +#, fuzzy, kde-format +#| msgid "Header Properties" +msgid "I&ndent wrapped lines:" +msgstr "Nodweddion Penawdau" + +#. i18n: ectx: property (text), widget (QLabel, lblDynamicWordWrapIndicators_2) +#: dialogs/textareaappearanceconfigwidget.ui:408 +#, fuzzy, kde-format +msgid "&Don't indent lines wider than:" +msgstr "Modd Dewis" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbDynamicWordWrapDepth) +#: dialogs/textareaappearanceconfigwidget.ui:424 +#, no-c-format, kde-format +msgid "" +"

Enables the start of dynamically wrapped lines to be aligned vertically " +"to the indentation level of the first line. This can help to make code and " +"markup more readable.

Additionally, this allows you to set a maximum " +"width of the screen, as a percentage, after which dynamically wrapped lines " +"will no longer be vertically aligned. For example, at 50%, lines whose " +"indentation levels are deeper than 50% of the width of the screen will not " +"have vertical alignment applied to subsequent wrapped lines.

" +msgstr "" + +#. i18n: ectx: property (suffix), widget (QSpinBox, sbDynamicWordWrapDepth) +#: dialogs/textareaappearanceconfigwidget.ui:427 +#, no-c-format, kde-format +msgid "% of View Width" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_24) +#: dialogs/textareaappearanceconfigwidget.ui:443 +#, fuzzy, kde-format +msgid "Show i&ndentation lines:" +msgstr "Modd Dewis" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowIndentationLines) +#: dialogs/textareaappearanceconfigwidget.ui:453 +#, kde-format +msgid "" +"If this is enabled, the editor will display vertical lines to help identify " +"indent lines." +msgstr "" + +#: document/katebuffer.cpp:135 +#, kde-format +msgctxt "short translation, user created new file" +msgid "New file" +msgstr "" + +#: document/katedocument.cpp:223 +#, kde-format +msgid "Auto Reload Document" +msgstr "" + +#: document/katedocument.cpp:225 +#, kde-format +msgid "Automatic reload the document when it was changed on disk" +msgstr "" + +#: document/katedocument.cpp:2307 +#, kde-format +msgid "" +"The file %1 could not be loaded, as it was not possible to read from it.
Check if you have read access to this file." +msgstr "" + +#: document/katedocument.cpp:2312 +#, kde-format +msgctxt "translators: you can also translate 'Try Again' with 'Reload'" +msgid "Try Again" +msgstr "" + +#: document/katedocument.cpp:2316 document/katedocument.cpp:6534 +#, kde-format +msgid "&Close" +msgstr "" + +#: document/katedocument.cpp:2317 document/katedocument.cpp:6535 +#, kde-format +msgctxt "Close the message being displayed" +msgid "Close message" +msgstr "" + +#: document/katedocument.cpp:2449 +#, kde-format +msgid "" +"The file %1 was opened with %2 encoding but contained invalid characters." +"
It is set to read-only mode, as saving might destroy its content.
Either reopen the file with the correct encoding chosen or enable the read-" +"write mode again in the tools menu to be able to edit it." +msgstr "" + +#: document/katedocument.cpp:2468 +#, kde-format +msgid "" +"The file %1 was opened and contained lines longer than the configured Line " +"Length Limit (%2 characters).
The longest of those lines was %3 " +"characters long
Those lines were wrapped and the document is set to read-" +"only mode, as saving will modify its content." +msgstr "" + +#: document/katedocument.cpp:2475 +#, kde-format +msgid "Temporarily raise limit and reload file" +msgstr "" + +#: document/katedocument.cpp:2478 +#, kde-format +msgid "Close" +msgstr "" + +#: document/katedocument.cpp:2505 +#, kde-format +msgid "" +"Do you really want to save this unmodified file? You could overwrite changed " +"data in the file on disk." +msgstr "" + +#: document/katedocument.cpp:2506 +#, kde-format +msgid "Trying to Save Unmodified File" +msgstr "" + +#: document/katedocument.cpp:2507 document/katedocument.cpp:2518 +#: document/katedocument.cpp:2534 +#, kde-format +msgid "Save Nevertheless" +msgstr "" + +#: document/katedocument.cpp:2516 +#, kde-format +msgid "" +"Do you really want to save this file? Both your open file and the file on " +"disk were changed. There could be some data lost." +msgstr "" + +#: document/katedocument.cpp:2517 document/katedocument.cpp:2533 +#: document/katedocument.cpp:2853 syntax/katethemeconfig.cpp:1218 +#: syntax/katethemeconfig.cpp:1376 +#, kde-format +msgid "Possible Data Loss" +msgstr "" + +#: document/katedocument.cpp:2531 +#, kde-format +msgid "" +"The selected encoding cannot encode every Unicode character in this " +"document. Do you really want to save it? There could be some data lost." +msgstr "" + +#: document/katedocument.cpp:2601 +#, kde-format +msgid "" +"The document could not be saved, as it was not possible to write to %1.\n" +"Check that you have write access to this file or that enough disk space is " +"available.\n" +"The original file may be lost or damaged. Don't quit the application until " +"the file is successfully written." +msgstr "" + +#: document/katedocument.cpp:2722 +#, kde-format +msgid "" +"For file %1 no backup copy could be created before saving. If an error " +"occurs while saving, you might lose the data of this file. A reason could be " +"that the media you write to is full or the directory of the file is read-" +"only for you." +msgstr "" + +#: document/katedocument.cpp:2726 +#, kde-format +msgid "Failed to create backup copy." +msgstr "" + +#: document/katedocument.cpp:2727 +#, kde-format +msgid "Try to Save Nevertheless" +msgstr "" + +#: document/katedocument.cpp:2852 +#, kde-format +msgid "Do you really want to continue to close this file? Data loss may occur." +msgstr "" + +#: document/katedocument.cpp:2854 +#, kde-format +msgid "Close Nevertheless" +msgstr "" + +#: document/katedocument.cpp:4641 +#, fuzzy, kde-format +msgid "Untitled (%1)" +msgstr "Heb derfyn" + +#: document/katedocument.cpp:4643 +#, fuzzy, kde-format +msgid "Untitled" +msgstr "Heb derfyn" + +#: document/katedocument.cpp:4820 document/katedocument.cpp:5051 +#: document/katedocument.cpp:5061 document/katedocument.cpp:5862 +#: document/katedocument.cpp:6049 +#, kde-format +msgid "Save File" +msgstr "" + +#: document/katedocument.cpp:4823 +#, kde-format +msgid "Save failed" +msgstr "Methodd y cadw" + +#: document/katedocument.cpp:5072 +#, fuzzy, kde-format +#| msgid "Save failed" +msgid "Save Copy of File" +msgstr "Methodd y cadw" + +#: document/katedocument.cpp:5084 +#, kde-format +msgid "" +"The document could not be saved, as it was not possible to write to %1.\n" +"\n" +"Check that you have write access to this file or that enough disk space is " +"available." +msgstr "" + +#: document/katedocument.cpp:5376 +#, kde-format +msgid "" +"Using deprecated modeline 'remove-trailing-space'. Please replace with " +"'remove-trailing-spaces modified;', see https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" +msgstr "" + +#: document/katedocument.cpp:5382 +#, kde-format +msgid "" +"Using deprecated modeline 'replace-trailing-space-save'. Please replace with " +"'remove-trailing-spaces all;', see https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" +msgstr "" + +#: document/katedocument.cpp:5696 +#, kde-format +msgid "The file '%1' was modified on disk." +msgstr "" + +#: document/katedocument.cpp:5698 +#, fuzzy, kde-format +msgid "The file '%1' was deleted or moved on disk." +msgstr "Mae'r Ffeil wedi Newid ar Dddisg" + +#: document/katedocument.cpp:6034 +#, kde-format +msgid "" +"The document \"%1\" has been modified.\n" +"Do you want to save your changes or discard them?" +msgstr "" + +#: document/katedocument.cpp:6037 +#, kde-format +msgid "Close Document" +msgstr "" + +#: document/katedocument.cpp:6148 +#, kde-format +msgid "The file %2 is still loading." +msgstr "" + +#: document/katedocument.cpp:6153 +#, kde-format +msgid "&Abort Loading" +msgstr "" + +#: inputmode/katenormalinputmode.cpp:74 +#, kde-format +msgid "OVERWRITE" +msgstr "" + +#: inputmode/katenormalinputmode.cpp:74 +#, kde-format +msgid "INSERT" +msgstr "" + +#: inputmode/katenormalinputmodefactory.cpp:29 +#, fuzzy, kde-format +#| msgid "Normal Text" +msgid "Normal Mode" +msgstr "Testun Arferol" + +#: inputmode/kateviinputmode.cpp:31 +#, kde-format +msgctxt "The INSERT mode of VI" +msgid "VI: INSERT" +msgstr "" + +#: inputmode/kateviinputmode.cpp:34 +#, fuzzy, kde-format +#| msgid " NORM " +msgctxt "The NORMAL mode of VI" +msgid "VI: NORMAL" +msgstr "ARF" + +#: inputmode/kateviinputmode.cpp:37 +#, kde-format +msgid "VI: VISUAL" +msgstr "" + +#: inputmode/kateviinputmode.cpp:40 +#, kde-format +msgid "VI: VISUAL BLOCK" +msgstr "" + +#: inputmode/kateviinputmode.cpp:43 +#, kde-format +msgid "VI: VISUAL LINE" +msgstr "" + +#: inputmode/kateviinputmode.cpp:46 +#, kde-format +msgid "VI: REPLACE" +msgstr "" + +#: inputmode/kateviinputmode.cpp:146 +#, kde-format +msgid "vi-mode" +msgstr "" + +#: inputmode/kateviinputmode.cpp:159 +#, fuzzy, kde-format +#| msgid "E&ncoding" +msgid "recording" +msgstr "A&mgodiad" + +#: inputmode/kateviinputmodefactory.cpp:38 utils/kateglobal.cpp:88 +#: vimode/config/configtab.cpp:237 +#, kde-format +msgid "Vi Input Mode" +msgstr "" + +#: mode/katemodeconfigpage.cpp:46 +#, kde-format +msgid "" +msgstr "" + +#: mode/katemodeconfigpage.cpp:58 +#, fuzzy, kde-format +#| msgid "KDE Default" +msgid "Use Default" +msgstr "Rhagosodion KDE" + +#: mode/katemodeconfigpage.cpp:99 mode/katemodeconfigpage.cpp:241 +#, kde-format +msgid "Properties of %1" +msgstr "Priodweddau %1" + +#: mode/katemodeconfigpage.cpp:178 +#, kde-format +msgid "New Filetype" +msgstr "" + +#: mode/katemodeconfigpage.cpp:293 +#, kde-format +msgid "" +"Select the MimeTypes you want for this file type.\n" +"Please note that this will automatically edit the associated file extensions " +"as well." +msgstr "" + +#: mode/katemodeconfigpage.cpp:295 +#, kde-format +msgid "Select Mime Types" +msgstr "" + +#: mode/katemodeconfigpage.cpp:312 +#, fuzzy, kde-format +msgid "Modes && Filetypes" +msgstr "Fformat Ffeil" + +#: mode/katemodemenulist.cpp:138 +#, fuzzy, kde-format +#| msgid "I-Search:" +msgctxt "@info:placeholder" +msgid "Search…" +msgstr "Chwilio Cynyddol:" + +#: mode/katemodemenulist.cpp:140 +#, kde-format +msgctxt "ToolTip of the search bar of modes of syntax highlighting" +msgid "" +"Search for syntax highlighting modes by language name or file extension (for " +"example, C++ or .cpp)" +msgstr "" + +#: mode/katemodemenulist.cpp:560 +#, kde-format +msgctxt "A search yielded no results" +msgid "No items matching your search" +msgstr "" + +#: mode/katemodemenulist.cpp:1087 +#, fuzzy, kde-format +#| msgid "Previous Incremental Search Match" +msgctxt "" +"Title (in singular) of the best result in an item search. Please, that the " +"translation doesn't have more than 34 characters, since the menu where it's " +"displayed is small and fixed." +msgid "Best Search Match" +msgstr "Cydweddiad Cynt o'r Chwiliad Cynyddol" + +#: mode/katemodemenulist.cpp:1092 +#, fuzzy, kde-format +#| msgid "Previous Incremental Search Match" +msgctxt "" +"Title (in plural) of the best results in an item search. Please, that the " +"translation doesn't have more than 34 characters, since the menu where it's " +"displayed is small and fixed." +msgid "Best Search Matches" +msgstr "Cydweddiad Cynt o'r Chwiliad Cynyddol" + +#: printing/printconfigwidgets.cpp:36 +#, kde-format +msgid "Te&xt Settings" +msgstr "Gosodiadau Test&un" + +#: printing/printconfigwidgets.cpp:40 +#, fuzzy, kde-format +#| msgid "Print &line numbers" +msgid "Print line &numbers" +msgstr "Argraffu rhifau &llinell" + +#: printing/printconfigwidgets.cpp:43 +#, fuzzy, kde-format +#| msgid "Print &line numbers" +msgid "Print &legend" +msgstr "Argraffu rhifau &llinell" + +#: printing/printconfigwidgets.cpp:46 +#, kde-format +msgid "Don't print folded code" +msgstr "" + +#: printing/printconfigwidgets.cpp:54 +#, kde-format +msgid "" +"

If enabled, line numbers will be printed on the left side of the page(s)." +"

" +msgstr "" +"

Os alluogir, argraffir rhifau llinell ar ochr chwith y tudalen(nau).

" + +#: printing/printconfigwidgets.cpp:56 +#, fuzzy, kde-format +#| msgid "" +#| "

Print a box displaying typographical conventions for the document " +#| "type, as defined by the syntax highlighting being used." +msgid "" +"

Print a box displaying typographical conventions for the document type, " +"as defined by the syntax highlighting being used.

" +msgstr "" +"

Argraffu blwch syn dangos arferiadau teipograffeg am fath y ddogfen, fel " +"a ddiffinir gan yr amlygiad cystrawen a ddefnyddir." + +#: printing/printconfigwidgets.cpp:116 +#, kde-format +msgid "Hea&der && Footer" +msgstr "Pen&nawd && Troedyn" + +#: printing/printconfigwidgets.cpp:123 +#, kde-format +msgid "Pr&int header" +msgstr "A&rgraffu pennawd" + +#: printing/printconfigwidgets.cpp:125 +#, kde-format +msgid "Pri&nt footer" +msgstr "Argr&affu troedyn" + +#: printing/printconfigwidgets.cpp:131 +#, kde-format +msgid "Header/footer font:" +msgstr "" + +#: printing/printconfigwidgets.cpp:137 +#, kde-format +msgid "Header Properties" +msgstr "Nodweddion Penawdau" + +#: printing/printconfigwidgets.cpp:141 +#, kde-format +msgid "&Format:" +msgstr "&Fformat:" + +#: printing/printconfigwidgets.cpp:163 printing/printconfigwidgets.cpp:209 +#, kde-format +msgid "Colors:" +msgstr "Lliwiau:" + +#: printing/printconfigwidgets.cpp:170 printing/printconfigwidgets.cpp:216 +#, kde-format +msgid "Foreground:" +msgstr "Blaendir:" + +#: printing/printconfigwidgets.cpp:175 +#, kde-format +msgid "Bac&kground" +msgstr "Ce&fndir" + +#: printing/printconfigwidgets.cpp:181 +#, kde-format +msgid "Footer Properties" +msgstr "Priodweddau'r Troedynnau" + +#: printing/printconfigwidgets.cpp:186 +#, kde-format +msgid "For&mat:" +msgstr "Ffor&mat:" + +#: printing/printconfigwidgets.cpp:221 +#, kde-format +msgid "&Background" +msgstr "&Cefndir" + +#: printing/printconfigwidgets.cpp:250 +#, kde-format +msgid "

Format of the page header. The following tags are supported:

" +msgstr "

Fformat pennawd y dudalen. Cynhelir y tagiau canlynol:

" + +#: printing/printconfigwidgets.cpp:252 +#, kde-format +msgid "" +"
  • %u: current user name
  • %d: complete date/" +"time in short format
  • %D: complete date/time in long format
  • %h: current time
  • %y: current date in short " +"format
  • %Y: current date in long format
  • %f: " +"file name
  • %U: full URL of the document
  • %p: " +"page number
  • %P: total amount of pages

" +msgstr "" + +#: printing/printconfigwidgets.cpp:266 +#, kde-format +msgid "

Format of the page footer. The following tags are supported:

" +msgstr "" + +#: printing/printconfigwidgets.cpp:352 +#, kde-format +msgid "Add Placeholder..." +msgstr "" + +#: printing/printconfigwidgets.cpp:354 +#, kde-format +msgid "Current User Name" +msgstr "" + +#: printing/printconfigwidgets.cpp:356 +#, kde-format +msgid "Complete Date/Time (short format)" +msgstr "" + +#: printing/printconfigwidgets.cpp:358 +#, kde-format +msgid "Complete Date/Time (long format)" +msgstr "" + +#: printing/printconfigwidgets.cpp:360 +#, kde-format +msgid "Current Time" +msgstr "" + +#: printing/printconfigwidgets.cpp:362 +#, kde-format +msgid "Current Date (short format)" +msgstr "" + +#: printing/printconfigwidgets.cpp:364 +#, kde-format +msgid "Current Date (long format)" +msgstr "" + +#: printing/printconfigwidgets.cpp:366 +#, fuzzy, kde-format +#| msgid "Name" +msgid "File Name" +msgstr "Enw" + +#: printing/printconfigwidgets.cpp:368 +#, kde-format +msgid "Full document URL" +msgstr "" + +#: printing/printconfigwidgets.cpp:370 +#, kde-format +msgid "Page Number" +msgstr "" + +#: printing/printconfigwidgets.cpp:372 +#, kde-format +msgid "Total Amount of Pages" +msgstr "" + +#: printing/printconfigwidgets.cpp:478 +#, kde-format +msgid "L&ayout" +msgstr "C&ynllun" + +#: printing/printconfigwidgets.cpp:484 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "&Color theme:" +msgstr "Lliwiau" + +#: printing/printconfigwidgets.cpp:494 +#, kde-format +msgid "Font:" +msgstr "" + +#: printing/printconfigwidgets.cpp:498 +#, kde-format +msgid "Draw bac&kground color" +msgstr "Llunio lliw y ce&fndir" + +#: printing/printconfigwidgets.cpp:501 +#, kde-format +msgid "Draw &boxes" +msgstr "Llunio &blychau" + +#: printing/printconfigwidgets.cpp:505 +#, kde-format +msgid "Box Properties" +msgstr "Priodweddau'r blwch" + +#: printing/printconfigwidgets.cpp:509 +#, kde-format +msgid "W&idth:" +msgstr "&Lled:" + +#: printing/printconfigwidgets.cpp:517 +#, kde-format +msgid "&Margin:" +msgstr "&Ymyl:" + +#: printing/printconfigwidgets.cpp:525 +#, kde-format +msgid "Co&lor:" +msgstr "Ll&iw:" + +#: printing/printconfigwidgets.cpp:547 +#, kde-format +msgid "Select the color theme to use for the print." +msgstr "" + +#: printing/printconfigwidgets.cpp:549 +#, kde-format +msgid "" +"

If enabled, the background color of the editor will be used.

This " +"may be useful if your color theme is designed for a dark background.

" +msgstr "" + +#: printing/printconfigwidgets.cpp:552 +#, kde-format +msgid "" +"

If enabled, a box as defined in the properties below will be drawn around " +"the contents of each page. The Header and Footer will be separated from the " +"contents with a line as well.

" +msgstr "" + +#: printing/printconfigwidgets.cpp:555 +#, kde-format +msgid "The width of the box outline" +msgstr "Lled amlinell y blwch" + +#: printing/printconfigwidgets.cpp:556 +#, kde-format +msgid "The margin inside boxes, in pixels" +msgstr "Yr ymyl tu mewn y blychau, mewn picseli" + +#: printing/printconfigwidgets.cpp:557 +#, kde-format +msgid "The line color to use for boxes" +msgstr "Lliw y lliniau i'w ddefnyddio am y blychau" + +#: printing/printpainter.cpp:269 +#, kde-format +msgid "(Selection of) " +msgstr "(Dewisiad o)" + +#: printing/printpainter.cpp:522 +#, kde-format +msgid "Typographical Conventions for %1" +msgstr "Arferiadau Teipograffeg am %1" + +#: printing/printpainter.cpp:555 +#, fuzzy, kde-format +#| msgid "Latest" +msgid "text" +msgstr "Diweddaraf" + +#: script/data/commands/emmet.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Expand Abbreviation" +msgstr "" + +#: script/data/commands/emmet.js:10 script/data/commands/emmet.js:14 +#: script/data/commands/emmet.js:19 script/data/commands/emmet.js:23 +#: script/data/commands/emmet.js:27 script/data/commands/emmet.js:31 +#: script/data/commands/emmet.js:35 script/data/commands/emmet.js:39 +#: script/data/commands/emmet.js:43 script/data/commands/emmet.js:47 +#: script/data/commands/emmet.js:51 script/data/commands/emmet.js:55 +#: script/data/commands/emmet.js:59 script/data/commands/emmet.js:63 +#: script/data/commands/emmet.js:67 script/data/commands/emmet.js:71 +#: script/data/commands/emmet.js:75 script/data/commands/emmet.js:79 +#: script/data/commands/emmet.js:83 +#, kde-format +msgctxt "Script command category" +msgid "Emmet" +msgstr "" + +#: script/data/commands/emmet.js:13 +#, kde-format +msgctxt "Script command name" +msgid "Wrap with Tag" +msgstr "" + +#: script/data/commands/emmet.js:18 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Matching Tag" +msgstr "Mynd i Linell" + +#: script/data/commands/emmet.js:22 +#, kde-format +msgctxt "Script command name" +msgid "Select HTML/XML Tag Contents Inwards" +msgstr "" + +#: script/data/commands/emmet.js:26 +#, kde-format +msgctxt "Script command name" +msgid "Select HTML/XML Tag Contents Outwards" +msgstr "" + +#: script/data/commands/emmet.js:30 +#, fuzzy, kde-format +#| msgid "Comment" +msgctxt "Script command name" +msgid "Toggle Comment" +msgstr "Sylwad" + +#: script/data/commands/emmet.js:34 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Go to Next Edit Point" +msgstr "Mynd i Linell" + +#: script/data/commands/emmet.js:38 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Go to Previous Edit Point" +msgstr "Mynd i Linell" + +#: script/data/commands/emmet.js:42 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Select Next Edit Point" +msgstr "Mynd i Linell" + +#: script/data/commands/emmet.js:46 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Select Previous Edit Point" +msgstr "Mynd i Linell" + +#: script/data/commands/emmet.js:50 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Delete Tag Under Cursor" +msgstr "Cadw'r ddogfen cyfredol" + +#: script/data/commands/emmet.js:54 +#, kde-format +msgctxt "Script command name" +msgid "Split or Join a Tag" +msgstr "" + +#: script/data/commands/emmet.js:58 +#, kde-format +msgctxt "Script command name" +msgid "Evaluate a Simple Math Expression" +msgstr "" + +#: script/data/commands/emmet.js:62 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 1" +msgstr "" + +#: script/data/commands/emmet.js:66 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 10" +msgstr "" + +#: script/data/commands/emmet.js:70 +#, kde-format +msgctxt "Script command name" +msgid "Decrement Number by 0.1" +msgstr "" + +#: script/data/commands/emmet.js:74 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 1" +msgstr "" + +#: script/data/commands/emmet.js:78 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 10" +msgstr "" + +#: script/data/commands/emmet.js:82 +#, kde-format +msgctxt "Script command name" +msgid "Increment Number by 0.1" +msgstr "" + +#: script/data/commands/emmet.js:96 +#, kde-format +msgid "" +"Expands the abbreviation using Emmet expressions; see http://code.google.com/" +"p/zen-coding/wiki/ZenHTMLSelectorsEn" +msgstr "" + +#: script/data/commands/emmet.js:97 +#, kde-format +msgid "" +"Wraps the selected text in XML tags constructed from the provided Emmet " +"expression (defaults to div)." +msgstr "" + +#: script/data/commands/emmet.js:98 +#, kde-format +msgid "Moves the caret to the current tag's pair" +msgstr "" + +#: script/data/commands/emmet.js:99 +#, kde-format +msgid "" +"Select contents of HTML/XML tag, moving inward on continuous invocations" +msgstr "" + +#: script/data/commands/emmet.js:100 +#, kde-format +msgid "" +"Select contents of HTML/XML tag, moving outwards on continuous invocations" +msgstr "" + +#: script/data/commands/emmet.js:101 +#, kde-format +msgid "Move to the next edit point (tag or empty attribute)." +msgstr "" + +#: script/data/commands/emmet.js:102 +#, kde-format +msgid "Move to the previous edit point (tag or empty attribute)." +msgstr "" + +#: script/data/commands/emmet.js:103 +#, kde-format +msgid "Select next edit point (tag or empty attribute)." +msgstr "" + +#: script/data/commands/emmet.js:104 +#, kde-format +msgid "Select previous edit point (tag or empty attribute)." +msgstr "" + +#: script/data/commands/emmet.js:105 +#, kde-format +msgid "Toggle comment of current tag or CSS selector" +msgstr "" + +#: script/data/commands/emmet.js:106 +#, fuzzy, kde-format +msgid "Deletes tag under cursor" +msgstr "Cadw'r ddogfen cyfredol" + +#: script/data/commands/emmet.js:107 +#, kde-format +msgid "Splits or joins a tag" +msgstr "" + +#: script/data/commands/emmet.js:108 +#, kde-format +msgid "Evaluates a simple math expression" +msgstr "" + +#: script/data/commands/emmet.js:109 +#, kde-format +msgid "Decrement number under cursor by 1" +msgstr "" + +#: script/data/commands/emmet.js:110 +#, kde-format +msgid "Decrement number under cursor by 10" +msgstr "" + +#: script/data/commands/emmet.js:111 +#, kde-format +msgid "Decrement number under cursor by 0.1" +msgstr "" + +#: script/data/commands/emmet.js:112 +#, kde-format +msgid "Increment number under cursor by 1" +msgstr "" + +#: script/data/commands/emmet.js:113 +#, kde-format +msgid "Increment number under cursor by 10" +msgstr "" + +#: script/data/commands/emmet.js:114 +#, kde-format +msgid "Increment number under cursor by 0.1" +msgstr "" + +#: script/data/commands/jumpMatchingIndent.js:9 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Previous Matching Indent" +msgstr "Mynd i Linell" + +#: script/data/commands/jumpMatchingIndent.js:11 +#: script/data/commands/jumpMatchingIndent.js:16 +#: script/data/commands/jumpMatchingIndent.js:21 +#: script/data/commands/jumpMatchingIndent.js:26 +#: script/data/commands/navigation.js:10 script/data/commands/navigation.js:14 +#, fuzzy, kde-format +#| msgctxt "Language Section" +#| msgid "Configuration" +msgctxt "Script command category" +msgid "Navigation" +msgstr "Ffurfwedd" + +#: script/data/commands/jumpMatchingIndent.js:14 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Next Matching Indent" +msgstr "Mynd i Linell" + +#: script/data/commands/jumpMatchingIndent.js:19 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Next Blank Line" +msgstr "Mynd i Linell" + +#: script/data/commands/jumpMatchingIndent.js:24 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Move Cursor to Previous Blank Line" +msgstr "Mynd i Linell" + +#: script/data/commands/jumpMatchingIndent.js:80 +#, fuzzy, kde-format +msgid "Move cursor to previous matching indent" +msgstr "Mynd i Linell" + +#: script/data/commands/jumpMatchingIndent.js:83 +#, kde-format +msgid "Move cursor to next matching indent" +msgstr "" + +#: script/data/commands/jumpMatchingIndent.js:85 +#, fuzzy, kde-format +msgid "Move cursor to next blank line" +msgstr "Mynd i Linell" + +#: script/data/commands/jumpMatchingIndent.js:87 +#, fuzzy, kde-format +msgid "Move cursor to previous blank line" +msgstr "Mynd i Linell" + +#: script/data/commands/navigation.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Go to Next Paragraph" +msgstr "" + +#: script/data/commands/navigation.js:13 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Go to Previous Paragraph" +msgstr "Mynd i Linell" + +#: script/data/commands/utils.js:9 +#, fuzzy, kde-format +#| msgid "Re&move trailing spaces" +msgctxt "Script command name" +msgid "Remove Trailing Spaces" +msgstr "&Gwaredu gofodnodau ychwanegol" + +#: script/data/commands/utils.js:10 script/data/commands/utils.js:14 +#: script/data/commands/utils.js:18 script/data/commands/utils.js:22 +#: script/data/commands/utils.js:27 script/data/commands/utils.js:32 +#: script/data/commands/utils.js:36 script/data/commands/utils.js:40 +#: script/data/commands/utils.js:44 script/data/commands/utils.js:48 +#: script/data/commands/utils.js:52 script/data/commands/utils.js:56 +#, fuzzy, kde-format +msgctxt "Script command category" +msgid "Editing" +msgstr "&Golygu..." + +#: script/data/commands/utils.js:13 +#, fuzzy, kde-format +#| msgid "Re&move trailing spaces" +msgctxt "Script command name" +msgid "Remove Leading Spaces" +msgstr "&Gwaredu gofodnodau ychwanegol" + +#: script/data/commands/utils.js:17 +#, fuzzy, kde-format +#| msgid "Re&move trailing spaces" +msgctxt "Script command name" +msgid "Remove Trailing and Leading Spaces" +msgstr "&Gwaredu gofodnodau ychwanegol" + +#: script/data/commands/utils.js:21 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Join Lines" +msgstr "Mynd i Linell" + +#: script/data/commands/utils.js:25 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Move Lines Down" +msgstr "Mynd i Linell" + +#: script/data/commands/utils.js:30 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Move Lines Up" +msgstr "Mynd i Linell" + +#: script/data/commands/utils.js:35 +#, fuzzy, kde-format +#| msgid "Selected" +msgctxt "Script command name" +msgid "Duplicate Selected Lines Down" +msgstr "Dewisiedig" + +#: script/data/commands/utils.js:39 +#, fuzzy, kde-format +#| msgid "Selected" +msgctxt "Script command name" +msgid "Duplicate Selected Lines Up" +msgstr "Dewisiedig" + +#: script/data/commands/utils.js:43 +#, fuzzy, kde-format +#| msgid "Selected" +msgctxt "Script command name" +msgid "Duplicate selected text" +msgstr "Dewisiedig" + +#: script/data/commands/utils.js:47 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgctxt "Script command name" +msgid "URI-encode Selected Text" +msgstr "Testun dewisedig:" + +#: script/data/commands/utils.js:51 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgctxt "Script command name" +msgid "URI-decode Selected Text" +msgstr "Testun dewisedig:" + +#: script/data/commands/utils.js:55 +#, fuzzy, kde-format +msgctxt "Script command name" +msgid "Remove Empty Lines" +msgstr "Mynd i Linell" + +#: script/data/commands/utils.js:410 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "Sort the selected text or whole document." +msgstr "Dewis holl destun y ddogfen gyfredol." + +#: script/data/commands/utils.js:412 +#, fuzzy, kde-format +#| msgid "Selected" +msgid "Move selected lines down." +msgstr "Dewisiedig" + +#: script/data/commands/utils.js:414 +#, fuzzy, kde-format +#| msgid "Selected" +msgid "Move selected lines up." +msgstr "Dewisiedig" + +#: script/data/commands/utils.js:416 +#, kde-format +msgid "Remove duplicate lines from the selected text or whole document." +msgstr "" + +#: script/data/commands/utils.js:418 +#, kde-format +msgid "" +"Sort the selected text or whole document in natural order.
Here is an " +"example to show the difference to the normal sort method:
sort(a10, a1, " +"a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" +msgstr "" + +#: script/data/commands/utils.js:420 +#, kde-format +msgid "Trims trailing whitespace from selection or whole document." +msgstr "" + +#: script/data/commands/utils.js:422 +#, kde-format +msgid "Trims leading whitespace from selection or whole document." +msgstr "" + +#: script/data/commands/utils.js:424 +#, kde-format +msgid "Trims leading and trailing whitespace from selection or whole document." +msgstr "" + +#: script/data/commands/utils.js:426 +#, kde-format +msgid "" +"Joins selected lines or whole document. Optionally pass a separator to put " +"between each line:
join ', ' will e.g. join lines and " +"separate them by a comma." +msgstr "" + +#: script/data/commands/utils.js:428 +#, kde-format +msgid "Removes empty lines from selection or whole document." +msgstr "" + +#: script/data/commands/utils.js:430 +#, kde-format +msgid "" +"This command aligns lines in the selected block or whole document on the " +"column given by a regular expression given as an argument.

If you " +"give an empty pattern it will align on the first non-blank character by " +"default.
If the pattern has a capture it will indent on the captured " +"match.

Examples:
'alignon -' will insert " +"spaces before the first '-' of each lines to align them all on the same " +"column.
'alignon :\\s+(.)' will insert spaces before the " +"first non-blank character that occurs after a colon to align them all on the " +"same column." +msgstr "" + +#: script/data/commands/utils.js:434 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and replace them with the return value of that callback." +"
Example (join selected lines):
each 'function(lines){return " +"lines.join(\", \");}'
To save you some typing, you can also do " +"this to achieve the same:
each 'lines.join(\", \")'" +msgstr "" + +#: script/data/commands/utils.js:436 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and remove those where the callback returns false." +"
Example (see also rmblank):
filter 'function(l)" +"{return l.length > 0;}'
To save you some typing, you can also do " +"this to achieve the same:
filter 'line.length > 0'" +msgstr "" + +#: script/data/commands/utils.js:438 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and replace the line with the return value of the callback." +"
Example (see also ltrim):
map 'function(line)" +"{return line.replace(/^\\s+/, \"\");}'
To save you some typing, " +"you can also do this to achieve the same:
map 'line.replace(/^\\s" +"+/, \"\")'" +msgstr "" + +#: script/data/commands/utils.js:440 +#, kde-format +msgid "Duplicates the selected lines up." +msgstr "" + +#: script/data/commands/utils.js:442 +#, kde-format +msgid "Duplicates the selected lines down." +msgstr "" + +#: script/data/commands/utils.js:446 +#, kde-format +msgid "" +"Encode special chars in a single line selection, so the result text can be " +"used as URI." +msgstr "" + +#: script/data/commands/utils.js:448 +#, kde-format +msgid "Reverse action of URI encode." +msgstr "" + +#: script/data/commands/utils.js:450 +#, kde-format +msgid "" +"Select text forward from current cursor position to the first occurrence of " +"the given argument after it (or the end of the current line by default)." +msgstr "" + +#: script/data/commands/utils.js:452 +#, kde-format +msgid "" +"Select text backward from current cursor position to the last occurrence of " +"the given argument before it (or the beginning of the current line by " +"default)." +msgstr "" + +#: script/data/indentation/ada.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "ada" +msgstr "" + +#: script/data/indentation/cmake.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "CMake" +msgstr "" + +#: script/data/indentation/cppstyle.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "C++/boost Style" +msgstr "" + +#: script/data/indentation/cstyle.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "C Style" +msgstr "" + +#: script/data/indentation/haskell.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Haskell" +msgstr "" + +#: script/data/indentation/julia.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Julia" +msgstr "" + +#: script/data/indentation/latex.js:2 +#, fuzzy, kde-format +#| msgid "Latest" +msgctxt "Autoindent mode" +msgid "Latex" +msgstr "Diweddaraf" + +#: script/data/indentation/lilypond.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "LilyPond" +msgstr "" + +#: script/data/indentation/lisp.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "LISP" +msgstr "" + +#: script/data/indentation/pascal.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Pascal" +msgstr "" + +#: script/data/indentation/python.js:2 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Python" +msgctxt "Autoindent mode" +msgid "Python" +msgstr "Python" + +#: script/data/indentation/r.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "R" +msgstr "" + +#: script/data/indentation/replicode.js:2 +#, fuzzy, kde-format +#| msgid "&Replace" +msgctxt "Autoindent mode" +msgid "Replicode" +msgstr "A&mnewid" + +#: script/data/indentation/ruby.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Ruby" +msgstr "" + +#: script/data/indentation/xml.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "XML Style" +msgstr "" + +#: script/katecommandlinescript.cpp:37 +#, kde-format +msgid "Function '%1' not found in script: %2" +msgstr "" + +#: script/katecommandlinescript.cpp:51 +#, fuzzy, kde-format +#| msgid "Error: %1" +msgid "Error calling %1" +msgstr "Gwall: %1" + +#: script/katecommandlinescript.cpp:68 +#, kde-format +msgid "Bad quoting in call: %1. Please escape single quotes with a backslash." +msgstr "" + +#: script/katecommandlinescript.cpp:76 utils/katecmds.cpp:217 +#: vimode/cmds.cpp:37 +#, kde-format +msgid "Could not access view" +msgstr "" + +#: script/katecommandlinescript.cpp:118 +#, kde-format +msgid "Error calling 'help %1'" +msgstr "" + +#: script/katecommandlinescript.cpp:123 +#, kde-format +msgid "No help specified for command '%1' in script %2" +msgstr "" + +#: script/katescript.cpp:282 +#, fuzzy, kde-format +#| msgid "Error: %1" +msgid "Error loading script %1: %2" +msgstr "Gwall: %1" + +#: script/katescriptmanager.cpp:319 +#, kde-format +msgid "Reload all JavaScript files (indenters, command line scripts, etc)." +msgstr "" + +#: script/katescriptview.cpp:214 +#, kde-format +msgid "Command not found: %1" +msgstr "" + +#: search/katesearchbar.cpp:73 +#, kde-format +msgid "Add..." +msgstr "" + +#: search/katesearchbar.cpp:298 +#, fuzzy, kde-format +msgctxt "short translation" +msgid "1 replacement made" +msgid_plural "%1 replacements made" +msgstr[0] "A&mnewid" +msgstr[1] "A&mnewid" + +#: search/katesearchbar.cpp:300 +#, kde-format +msgctxt "short translation" +msgid "1 match found" +msgid_plural "%1 matches found" +msgstr[0] "" +msgstr[1] "" + +#: search/katesearchbar.cpp:374 +#, kde-format +msgid "Reached top, continued from bottom" +msgstr "" + +#: search/katesearchbar.cpp:376 +#, kde-format +msgid "Reached bottom, continued from top" +msgstr "" + +#: search/katesearchbar.cpp:381 +#, kde-format +msgid "Not found" +msgstr "" + +#: search/katesearchbar.cpp:615 +#, kde-format +msgid "Bottom of file reached. Continue from top?" +msgstr "" + +#: search/katesearchbar.cpp:615 +#, kde-format +msgid "Top of file reached. Continue from bottom?" +msgstr "" + +#: search/katesearchbar.cpp:618 +#, fuzzy, kde-format +msgid "Continue search?" +msgstr "Mae llythrennau mawr/bach o bwys" + +#: search/katesearchbar.cpp:920 +#, fuzzy, kde-format +#| msgid "Highlighting" +msgid "SearchHighLight" +msgstr "Amlygu" + +#: search/katesearchbar.cpp:1136 search/katesearchbar.cpp:1755 +#, kde-format +msgid "Clear history" +msgstr "" + +#: search/katesearchbar.cpp:1166 +#, fuzzy, kde-format +#| msgid "Beginning of document reached." +msgid "Beginning of line" +msgstr " Wedi cyrraedd diwedd y ddogfen." + +#: search/katesearchbar.cpp:1167 +#, fuzzy, kde-format +#| msgid "&End of Line" +msgid "End of line" +msgstr "&Diwedd y Llinell" + +#: search/katesearchbar.cpp:1169 +#, kde-format +msgid "Match any character excluding new line (by default)" +msgstr "" + +#: search/katesearchbar.cpp:1170 +#, kde-format +msgid "One or more occurrences" +msgstr "" + +#: search/katesearchbar.cpp:1171 +#, kde-format +msgid "Zero or more occurrences" +msgstr "" + +#: search/katesearchbar.cpp:1172 +#, kde-format +msgid "Zero or one occurrences" +msgstr "" + +#: search/katesearchbar.cpp:1175 +#, kde-format +msgid " through occurrences" +msgstr "" + +#: search/katesearchbar.cpp:1181 +#, kde-format +msgid "Group, capturing" +msgstr "" + +#: search/katesearchbar.cpp:1182 +#, kde-format +msgid "Or" +msgstr "" + +#: search/katesearchbar.cpp:1183 +#, fuzzy, kde-format +#| msgid "Character" +msgid "Set of characters" +msgstr "Nod" + +#: search/katesearchbar.cpp:1184 +#, kde-format +msgid "Negative set of characters" +msgstr "" + +#: search/katesearchbar.cpp:1188 +#, kde-format +msgid "Whole match reference" +msgstr "" + +#: search/katesearchbar.cpp:1199 +#, kde-format +msgid "Reference" +msgstr "" + +#: search/katesearchbar.cpp:1206 +#, fuzzy, kde-format +msgid "Line break" +msgstr "Argraffu rhifau &llinell" + +#: search/katesearchbar.cpp:1207 +#, kde-format +msgid "Tab" +msgstr "" + +#: search/katesearchbar.cpp:1210 +#, kde-format +msgid "Word boundary" +msgstr "" + +#: search/katesearchbar.cpp:1211 +#, kde-format +msgid "Not word boundary" +msgstr "" + +#: search/katesearchbar.cpp:1212 +#, kde-format +msgid "Digit" +msgstr "" + +#: search/katesearchbar.cpp:1213 +#, kde-format +msgid "Non-digit" +msgstr "" + +#: search/katesearchbar.cpp:1214 +#, kde-format +msgid "Whitespace (excluding line breaks)" +msgstr "" + +#: search/katesearchbar.cpp:1215 +#, fuzzy, kde-format +#| msgid "&Replace" +msgid "Non-whitespace" +msgstr "A&mnewid" + +#: search/katesearchbar.cpp:1216 +#, kde-format +msgid "Word character (alphanumerics plus '_')" +msgstr "" + +#: search/katesearchbar.cpp:1217 +#, fuzzy, kde-format +#| msgid "Character" +msgid "Non-word character" +msgstr "Nod" + +#: search/katesearchbar.cpp:1220 +#, kde-format +msgid "Octal character 000 to 377 (2^8-1)" +msgstr "" + +#: search/katesearchbar.cpp:1221 +#, kde-format +msgid "Hex character 0000 to FFFF (2^16-1)" +msgstr "" + +#: search/katesearchbar.cpp:1222 +#, fuzzy, kde-format +#| msgid "Backspace" +msgid "Backslash" +msgstr "Yn ôl" + +#: search/katesearchbar.cpp:1226 +#, kde-format +msgid "Group, non-capturing" +msgstr "" + +#: search/katesearchbar.cpp:1227 +#, kde-format +msgid "Positive Lookahead" +msgstr "" + +#: search/katesearchbar.cpp:1228 +#, kde-format +msgid "Negative lookahead" +msgstr "" + +#: search/katesearchbar.cpp:1232 +#, kde-format +msgid "Fixed-length positive lookbehind" +msgstr "" + +#: search/katesearchbar.cpp:1233 +#, kde-format +msgid "Fixed-length negative lookbehind" +msgstr "" + +#: search/katesearchbar.cpp:1238 +#, kde-format +msgid "Begin lowercase conversion" +msgstr "" + +#: search/katesearchbar.cpp:1239 +#, kde-format +msgid "Begin uppercase conversion" +msgstr "" + +#: search/katesearchbar.cpp:1240 +#, kde-format +msgid "End case conversion" +msgstr "" + +#: search/katesearchbar.cpp:1241 +#, kde-format +msgid "Lowercase first character conversion" +msgstr "" + +#: search/katesearchbar.cpp:1242 +#, kde-format +msgid "Uppercase first character conversion" +msgstr "" + +#: search/katesearchbar.cpp:1243 +#, kde-format +msgid "Replacement counter (for Replace All)" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: search/searchbarincremental.ui:50 +#, fuzzy, kde-format +#| msgid "Find" +msgid "F&ind:" +msgstr "Canfod:" + +#. i18n: ectx: property (toolTip), widget (QComboBox, pattern) +#: search/searchbarincremental.ui:78 search/searchbarpower.ui:295 +#, kde-format +msgid "Text to search for" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QToolButton, findNext) +#. i18n: ectx: property (toolTip), widget (QToolButton, next) +#: search/searchbarincremental.ui:91 search/searchbarpower.ui:175 +#, kde-format +msgid "Jump to next match" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QToolButton, findPrev) +#. i18n: ectx: property (toolTip), widget (QToolButton, prev) +#: search/searchbarincremental.ui:101 search/searchbarpower.ui:185 +#, kde-format +msgid "Jump to previous match" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QToolButton, matchCase) +#: search/searchbarincremental.ui:111 search/searchbarpower.ui:136 +#, fuzzy, kde-format +#| msgid "Case &sensitive" +msgid "Match case sensitive" +msgstr "Mae llythrennau bras o &bwys" + +#. i18n: ectx: property (toolTip), widget (QToolButton, mutate) +#: search/searchbarincremental.ui:146 +#, kde-format +msgid "Switch to power search and replace bar" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: search/searchbarpower.ui:50 +#, kde-format +msgid "Fin&d:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: search/searchbarpower.ui:63 +#, fuzzy, kde-format +msgid "Rep&lace:" +msgstr "A&mnewid" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: search/searchbarpower.ui:76 +#, fuzzy, kde-format +#| msgid "&Bold" +msgid "&Mode:" +msgstr "&Bras" + +#. i18n: ectx: property (toolTip), widget (QComboBox, searchMode) +#: search/searchbarpower.ui:103 +#, fuzzy, kde-format +#| msgid "Search" +msgid "Search mode" +msgstr "Chwilio" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:113 +#, fuzzy, kde-format +#| msgid "&Find Next" +msgid "Plain text" +msgstr "&Canfod Nesaf" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:118 +#, kde-format +msgid "Whole words" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:123 +#, kde-format +msgid "Escape sequences" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:128 +#, fuzzy, kde-format +msgid "Regular expression" +msgstr "Mynegiad Rheolaidd" + +#. i18n: ectx: property (toolTip), widget (QToolButton, selectionOnly) +#: search/searchbarpower.ui:149 +#, fuzzy, kde-format +msgid "Search in the selection only" +msgstr "Dewisiad yn Unig" + +#. i18n: ectx: property (toolTip), widget (QPushButton, replaceNext) +#: search/searchbarpower.ui:195 +#, fuzzy, kde-format +#| msgid "Replace &All" +msgid "Replace next match" +msgstr "Amnewid y &Cwbl" + +#. i18n: ectx: property (text), widget (QPushButton, replaceNext) +#. i18n: ectx: property (text), widget (QPushButton, m_replaceBtn) +#: search/searchbarpower.ui:198 spellcheck/spellcheckbar.ui:130 +#, kde-format +msgid "&Replace" +msgstr "A&mnewid" + +#. i18n: ectx: property (toolTip), widget (QPushButton, replaceAll) +#: search/searchbarpower.ui:224 +#, fuzzy, kde-format +#| msgid "Replace &All" +msgid "Replace all matches" +msgstr "Amnewid y &Cwbl" + +#. i18n: ectx: property (text), widget (QPushButton, replaceAll) +#: search/searchbarpower.ui:227 +#, fuzzy, kde-format +#| msgid "Replace &All" +msgid "Replace &All" +msgstr "Amnewid y &Cwbl" + +#. i18n: ectx: property (text), widget (QPushButton, findAll) +#: search/searchbarpower.ui:234 +#, kde-format +msgid "&Find All" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, cancel) +#: search/searchbarpower.ui:257 +#, kde-format +msgid "Cancel" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QToolButton, mutate) +#: search/searchbarpower.ui:268 +#, fuzzy, kde-format +#| msgid "Next Incremental Search Match" +msgid "Switch to incremental search bar" +msgstr "Cydweddiad Nesaf o'r Chwiliad Cynyddol" + +#. i18n: ectx: property (toolTip), widget (QComboBox, replacement) +#: search/searchbarpower.ui:314 +#, kde-format +msgid "Text to replace with" +msgstr "" + +#: spellcheck/spellcheckbar.cpp:148 +#, fuzzy, kde-format +msgid "Spell check canceled." +msgstr "Gwirio Sillafu" + +#: spellcheck/spellcheckbar.cpp:245 +#, fuzzy, kde-format +msgctxt "@info:progress" +msgid "Spell checking in progress…" +msgstr "Gwirio Sillafu" + +#: spellcheck/spellcheckbar.cpp:246 spellcheck/spellcheckbar.cpp:435 +#, kde-format +msgctxt "@title:window" +msgid "Check Spelling" +msgstr "" + +#: spellcheck/spellcheckbar.cpp:432 spellcheck/spellcheckbar.cpp:435 +#, fuzzy, kde-format +msgid "Spell check complete." +msgstr "Gwirio Sillafu" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel2) +#. i18n: ectx: property (whatsThis), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:30 spellcheck/spellcheckbar.ui:46 +#, kde-format +msgid "" +"

This word was considered to be an \"unknown word\" because it does " +"not match any entry in the dictionary currently in use. It may also be a " +"word in a foreign language.

\n" +"

If the word is not misspelled, you may add it to the dictionary by " +"clicking Add to Dictionary. If you do not want to add the unknown " +"word to the dictionary, but you want to leave it unchanged, click Ignore or Ignore All.

\n" +"

However, if the word is misspelled, you can try to find the correct " +"replacement in the list below. If you cannot find a replacement there, you " +"may type it in the text box below, and click Replace or Replace " +"All.

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, textLabel2) +#: spellcheck/spellcheckbar.ui:33 +#, fuzzy, kde-format +msgid "Unknown word:" +msgstr "Priodweddau'r blwch" + +#. i18n: ectx: property (toolTip), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:40 +#, fuzzy, kde-format +msgid "Unknown word" +msgstr "Priodweddau'r blwch" + +#. i18n: ectx: property (text), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:49 +#, kde-format +msgid "misspelled" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_addBtn) +#: spellcheck/spellcheckbar.ui:72 +#, kde-format +msgid "" +"\n" +"

The unknown word was detected and considered unknown because it is not " +"included in the dictionary.
\n" +"Click here if you consider the unknown word not to be misspelled, and you " +"want to avoid wrongly detecting it again in the future. If you want to let " +"it remain as is, but not add it to the dictionary, then click Ignore " +"or Ignore All instead.

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, m_addBtn) +#: spellcheck/spellcheckbar.ui:75 +#, fuzzy, kde-format +#| msgid "&Section:" +msgid "<< Add to Dictionary" +msgstr "R&han:" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel4) +#: spellcheck/spellcheckbar.ui:89 +#, kde-format +msgid "" +"\n" +"

If the unknown word is misspelled, you should type the correction for " +"your misspelled word here or select it from the list below.

\n" +"

You can then click Replace if you want to correct only this " +"occurrence of the word or Replace All if you want to correct all " +"occurrences.

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, textLabel4) +#: spellcheck/spellcheckbar.ui:92 +#, fuzzy, kde-format +#| msgid "Replace &All" +msgid "Replace with:" +msgstr "Amnewid y &Cwbl" + +#. i18n: ectx: property (text), widget (QPushButton, m_suggestBtn) +#: spellcheck/spellcheckbar.ui:118 +#, kde-format +msgid "S&uggest" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_replaceBtn) +#: spellcheck/spellcheckbar.ui:127 +#, kde-format +msgid "" +"\n" +"

Click here to replace this occurrence of the unknown text with the text " +"in the edit box above (to the left).

\n" +"
" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_skipBtn) +#: spellcheck/spellcheckbar.ui:140 +#, kde-format +msgid "" +"\n" +"

Click here to let this occurrence of the unknown word remain as is.

\n" +"

This action is useful when the word is a name, an acronym, a foreign word " +"or any other unknown word that you want to use but not add to the dictionary." +"

\n" +"
" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel5) +#. i18n: ectx: property (whatsThis), widget (Sonnet::DictionaryComboBox, m_language) +#: spellcheck/spellcheckbar.ui:156 spellcheck/spellcheckbar.ui:174 +#, kde-format +msgid "" +"\n" +"

Select the language of the document you are proofing here.

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, textLabel5) +#: spellcheck/spellcheckbar.ui:159 +#, kde-format +msgid "&Language:" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (Sonnet::DictionaryComboBox, m_language) +#: spellcheck/spellcheckbar.ui:169 +#, kde-format +msgid "Language Selection" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_autoCorrect) +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_skipAllBtn) +#: spellcheck/spellcheckbar.ui:197 spellcheck/spellcheckbar.ui:222 +#, kde-format +msgid "" +"\n" +"

Click here to let all occurrences of the unknown word remain as they are." +"

\n" +"

This action is useful when the word is a name, an acronym, a foreign word " +"or any other unknown word that you want to use but not add to the dictionary." +"

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, m_autoCorrect) +#: spellcheck/spellcheckbar.ui:200 +#, kde-format +msgid "Autocorrect" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_replaceAllBtn) +#: spellcheck/spellcheckbar.ui:209 +#, kde-format +msgid "" +"\n" +"

Click here to replace all occurrences of the unknown text with the text " +"in the edit box above (to the left).

\n" +"
" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, m_replaceAllBtn) +#: spellcheck/spellcheckbar.ui:212 +#, fuzzy, kde-format +#| msgid "Replace &All" +msgid "R&eplace All" +msgstr "Amnewid y &Cwbl" + +#. i18n: ectx: property (text), widget (QPushButton, m_skipAllBtn) +#: spellcheck/spellcheckbar.ui:225 +#, fuzzy, kde-format +#| msgid "&Ignore" +msgid "I&gnore All" +msgstr "&Anwybyddu" + +#: spellcheck/spellcheckdialog.cpp:51 +#, kde-format +msgctxt "@action" +msgid "Spelling (from Cursor)…" +msgstr "" + +#: spellcheck/spellcheckdialog.cpp:54 +#, kde-format +msgid "Check the document's spelling from the cursor and forward" +msgstr "" + +#: spellcheck/spellingmenu.cpp:76 +#, fuzzy, kde-format +#| msgid "&Ignore" +msgid "Ignore Word" +msgstr "&Anwybyddu" + +#: spellcheck/spellingmenu.cpp:79 +#, fuzzy, kde-format +#| msgid "&Section:" +msgid "Add to Dictionary" +msgstr "R&han:" + +#: spellcheck/spellingmenu.cpp:172 +#, kde-format +msgid "Spelling '%1'" +msgstr "" + +#: swapfile/kateswapdiffcreator.cpp:87 +#, kde-format +msgid "" +"The diff command could not be found. Please make sure that diff(1) is " +"installed and in your PATH." +msgstr "" + +#: swapfile/kateswapdiffcreator.cpp:98 +#, kde-format +msgid "The diff command '%1' could not be started." +msgstr "" + +#: swapfile/kateswapfile.cpp:642 +#, kde-format +msgid "The file was not closed properly." +msgstr "" + +#: swapfile/kateswapfile.cpp:645 +#, fuzzy, kde-format +msgid "View Changes" +msgstr "Mae'r Ffeil wedi Newid ar Dddisg" + +#: swapfile/kateswapfile.cpp:646 +#, kde-format +msgid "Recover Data" +msgstr "" + +#: swapfile/kateswapfile.cpp:647 +#, fuzzy, kde-format +#| msgid "Disabled" +msgid "Discard" +msgstr "Analluogir" + +#: syntax/katecolortreewidget.cpp:34 syntax/katecolortreewidget.cpp:61 +#, kde-format +msgid "Use default color from the color theme" +msgstr "" + +#: syntax/katehighlightmenu.cpp:39 +#, fuzzy, kde-format +#| msgid "None" +msgid "None" +msgstr "Dim" + +#: syntax/katestyletreewidget.cpp:135 +#, fuzzy, kde-format +#| msgid "Latest" +msgctxt "@title:column Meaning of text in editor" +msgid "Context" +msgstr "Diweddaraf" + +#: syntax/katestyletreewidget.cpp:136 +#, fuzzy, kde-format +#| msgid "Normal" +msgctxt "@title:column Text style" +msgid "Normal" +msgstr "Arferol" + +#: syntax/katestyletreewidget.cpp:136 +#, fuzzy, kde-format +#| msgid "Selected" +msgctxt "@title:column Text style" +msgid "Selected" +msgstr "Dewisiedig" + +#: syntax/katestyletreewidget.cpp:136 +#, fuzzy, kde-format +#| msgid "Background" +msgctxt "@title:column Text style" +msgid "Background" +msgstr "Cefndir" + +#: syntax/katestyletreewidget.cpp:137 +#, fuzzy, kde-format +#| msgid "Background Selected" +msgctxt "@title:column Text style" +msgid "Background Selected" +msgstr "Cefndir Dewisedig" + +#: syntax/katestyletreewidget.cpp:139 +#, kde-format +msgid "Use Default Style" +msgstr "" + +#: syntax/katestyletreewidget.cpp:238 +#, kde-format +msgid "&Bold" +msgstr "&Bras" + +#: syntax/katestyletreewidget.cpp:243 +#, kde-format +msgid "&Italic" +msgstr "&Italig" + +#: syntax/katestyletreewidget.cpp:248 +#, kde-format +msgid "&Underline" +msgstr "&Danlinellu" + +#: syntax/katestyletreewidget.cpp:253 +#, kde-format +msgid "S&trikeout" +msgstr "T&rwylinellu" + +#: syntax/katestyletreewidget.cpp:260 +#, fuzzy, kde-format +msgctxt "@action:inmenu" +msgid "Normal &Color…" +msgstr "Llunio lliw y ce&fndir" + +#: syntax/katestyletreewidget.cpp:263 +#, fuzzy, kde-format +msgctxt "@action:inmenu" +msgid "&Selected Color…" +msgstr "Llunio lliw y ce&fndir" + +#: syntax/katestyletreewidget.cpp:266 +#, fuzzy, kde-format +#| msgid "&Background Color..." +msgctxt "@action:inmenu" +msgid "&Background Color…" +msgstr "&Lliw Cefndir ..." + +#: syntax/katestyletreewidget.cpp:269 +#, fuzzy, kde-format +msgctxt "@action:inmenu" +msgid "S&elected Background Color…" +msgstr "Llunio lliw y ce&fndir" + +#: syntax/katestyletreewidget.cpp:275 +#, fuzzy, kde-format +msgid "Unset Normal Color" +msgstr "Llunio lliw y ce&fndir" + +#: syntax/katestyletreewidget.cpp:278 +#, fuzzy, kde-format +msgid "Unset Selected Color" +msgstr "Llunio lliw y ce&fndir" + +#: syntax/katestyletreewidget.cpp:284 +#, fuzzy, kde-format +msgid "Unset Background Color" +msgstr "Llunio lliw y ce&fndir" + +#: syntax/katestyletreewidget.cpp:289 +#, kde-format +msgid "Unset Selected Background Color" +msgstr "" + +#: syntax/katestyletreewidget.cpp:295 +#, kde-format +msgid "Use &Default Style" +msgstr "" + +#: syntax/katestyletreewidget.cpp:408 +#, fuzzy, kde-format +msgctxt "No text or background color set" +msgid "None set" +msgstr "Dim" + +#: syntax/katestyletreewidget.cpp:642 +#, kde-format +msgid "" +"\"Use Default Style\" will be automatically unset when you change any style " +"properties." +msgstr "" + +#: syntax/katestyletreewidget.cpp:643 +#, kde-format +msgid "Kate Styles" +msgstr "" + +#: syntax/katethemeconfig.cpp:47 +#, fuzzy, kde-format +#| msgid "Normal" +msgctxt "@item:intable Text context" +msgid "Normal" +msgstr "Arferol" + +#: syntax/katethemeconfig.cpp:49 +#, fuzzy, kde-format +#| msgid "Keyword" +msgctxt "@item:intable Text context" +msgid "Keyword" +msgstr "Allweddair" + +#: syntax/katethemeconfig.cpp:51 +#, fuzzy, kde-format +#| msgid "Function" +msgctxt "@item:intable Text context" +msgid "Function" +msgstr "Ffwythiant" + +#: syntax/katethemeconfig.cpp:53 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Variable" +msgstr "&Newidynnau :" + +#: syntax/katethemeconfig.cpp:55 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Control Flow" +msgstr "" + +#: syntax/katethemeconfig.cpp:57 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Operator" +msgstr "" + +#: syntax/katethemeconfig.cpp:59 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Built-in" +msgstr "" + +#: syntax/katethemeconfig.cpp:61 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Extension" +msgstr "R&han:" + +#: syntax/katethemeconfig.cpp:63 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Preprocessor" +msgstr "" + +#: syntax/katethemeconfig.cpp:65 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Attribute" +msgstr "" + +#: syntax/katethemeconfig.cpp:68 +#, fuzzy, kde-format +#| msgid "Character" +msgctxt "@item:intable Text context" +msgid "Character" +msgstr "Nod" + +#: syntax/katethemeconfig.cpp:70 +#, fuzzy, kde-format +#| msgid "Character" +msgctxt "@item:intable Text context" +msgid "Special Character" +msgstr "Nod" + +#: syntax/katethemeconfig.cpp:72 +#, fuzzy, kde-format +#| msgid "String" +msgctxt "@item:intable Text context" +msgid "String" +msgstr "Llinell" + +#: syntax/katethemeconfig.cpp:74 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Verbatim String" +msgstr "" + +#: syntax/katethemeconfig.cpp:76 +#, fuzzy, kde-format +#| msgid "String" +msgctxt "@item:intable Text context" +msgid "Special String" +msgstr "Llinell" + +#: syntax/katethemeconfig.cpp:78 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Imports, Modules, Includes" +msgstr "" + +#: syntax/katethemeconfig.cpp:81 +#, fuzzy, kde-format +#| msgid "Data Type" +msgctxt "@item:intable Text context" +msgid "Data Type" +msgstr "Math data" + +#: syntax/katethemeconfig.cpp:83 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Decimal/Value" +msgstr "" + +#: syntax/katethemeconfig.cpp:85 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Base-N Integer" +msgstr "" + +#: syntax/katethemeconfig.cpp:87 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Floating Point" +msgstr "" + +#: syntax/katethemeconfig.cpp:89 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Constant" +msgstr "" + +#: syntax/katethemeconfig.cpp:92 +#, fuzzy, kde-format +#| msgid "Comment" +msgctxt "@item:intable Text context" +msgid "Comment" +msgstr "Sylwad" + +#: syntax/katethemeconfig.cpp:94 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Documentation" +msgstr "Modd Dewis" + +#: syntax/katethemeconfig.cpp:96 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Annotation" +msgstr "Modd Dewis" + +#: syntax/katethemeconfig.cpp:98 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Comment Variable" +msgstr "&Newidynnau :" + +#: syntax/katethemeconfig.cpp:101 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Region Marker" +msgstr "" + +#: syntax/katethemeconfig.cpp:103 +#, fuzzy, kde-format +#| msgctxt "Language Section" +#| msgid "Configuration" +msgctxt "@item:intable Text context" +msgid "Information" +msgstr "Ffurfwedd" + +#: syntax/katethemeconfig.cpp:105 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Warning" +msgstr "Llinell" + +#: syntax/katethemeconfig.cpp:107 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Alert" +msgstr "" + +#: syntax/katethemeconfig.cpp:110 +#, fuzzy, kde-format +#| msgid "Others" +msgctxt "@item:intable Text context" +msgid "Others" +msgstr "Eraill" + +#: syntax/katethemeconfig.cpp:113 +#, fuzzy, kde-format +msgctxt "@item:intable Text context" +msgid "Error" +msgstr "Gwall:" + +#: syntax/katethemeconfig.cpp:162 +#, fuzzy, kde-format +#| msgid "KDE Default" +msgid "Use Default Colors" +msgstr "Rhagosodion KDE" + +#: syntax/katethemeconfig.cpp:182 +#, fuzzy, kde-format +msgid "Editor Background Colors" +msgstr "Llunio lliw y ce&fndir" + +#: syntax/katethemeconfig.cpp:184 +#, fuzzy, kde-format +msgid "Text Area" +msgstr "Cefndir Ardal Testun" + +#: syntax/katethemeconfig.cpp:186 +#, kde-format +msgid "

Sets the background color of the editing area.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:191 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgid "Selected Text" +msgstr "Testun dewisedig:" + +#: syntax/katethemeconfig.cpp:194 +#, kde-format +msgid "" +"

Sets the background color of the selection.

To set the text color " +"for selected text, use the "Configure Highlighting" dialog." +"

" +msgstr "" + +#: syntax/katethemeconfig.cpp:200 +#, kde-format +msgid "Current Line" +msgstr "" + +#: syntax/katethemeconfig.cpp:202 +#, kde-format +msgid "" +"

Sets the background color of the currently active line, which means the " +"line where your cursor is positioned.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:207 +#, fuzzy, kde-format +#| msgid "Highlighting" +msgid "Search Highlight" +msgstr "Amlygu" + +#: syntax/katethemeconfig.cpp:209 +#, kde-format +msgid "

Sets the background color of search results.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:214 +#, fuzzy, kde-format +#| msgid "Highlighting" +msgid "Replace Highlight" +msgstr "Amlygu" + +#: syntax/katethemeconfig.cpp:216 +#, kde-format +msgid "

Sets the background color of replaced text.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:223 +#, fuzzy, kde-format +#| msgid "Borders" +msgid "Icon Border" +msgstr "Borderi" + +#: syntax/katethemeconfig.cpp:226 +#, fuzzy, kde-format +#| msgid "Background" +msgid "Background Area" +msgstr "Cefndir" + +#: syntax/katethemeconfig.cpp:228 +#, kde-format +msgid "

Sets the background color of the icon border.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:233 view/screenshotdialog.cpp:265 +#, fuzzy, kde-format +msgid "Line Numbers" +msgstr "Argraffu rhifau &llinell" + +#: syntax/katethemeconfig.cpp:235 +#, kde-format +msgid "

This color will be used to draw the line numbers (if enabled).

" +msgstr "" + +#: syntax/katethemeconfig.cpp:240 +#, fuzzy, kde-format +msgid "Current Line Number" +msgstr "Argraffu rhifau &llinell" + +#: syntax/katethemeconfig.cpp:242 +#, kde-format +msgid "" +"

This color will be used to draw the number of the current line (if " +"enabled).

" +msgstr "" + +#: syntax/katethemeconfig.cpp:247 +#, kde-format +msgid "Separator" +msgstr "" + +#: syntax/katethemeconfig.cpp:249 +#, kde-format +msgid "" +"

This color will be used to draw the line between line numbers and the " +"icon borders, if both are enabled.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:254 +#, kde-format +msgid "Word Wrap Marker" +msgstr "" + +#: syntax/katethemeconfig.cpp:257 +#, kde-format +msgid "" +"

Sets the color of Word Wrap-related markers:

Static Word Wrap
A vertical line which shows the column where text is going to be " +"wrapped
Dynamic Word Wrap
An arrow shown to the left of " +"visually-wrapped lines
" +msgstr "" + +#: syntax/katethemeconfig.cpp:264 +#, kde-format +msgid "Code Folding" +msgstr "" + +#: syntax/katethemeconfig.cpp:266 +#, kde-format +msgid "

Sets the color of the code folding bar.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:271 +#, fuzzy, kde-format +msgid "Modified Lines" +msgstr "Mynd i Linell" + +#: syntax/katethemeconfig.cpp:273 +#, kde-format +msgid "" +"

Sets the color of the line modification marker for modified lines.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:278 +#, fuzzy, kde-format +msgid "Saved Lines" +msgstr "Mynd i Linell" + +#: syntax/katethemeconfig.cpp:280 +#, kde-format +msgid "

Sets the color of the line modification marker for saved lines.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:287 +#, fuzzy, kde-format +#| msgid "Selection Mode" +msgid "Text Decorations" +msgstr "Modd Dewis" + +#: syntax/katethemeconfig.cpp:290 +#, kde-format +msgid "Spelling Mistake Line" +msgstr "" + +#: syntax/katethemeconfig.cpp:292 +#, kde-format +msgid "" +"

Sets the color of the line that is used to indicate spelling mistakes.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:297 +#, fuzzy, kde-format +#| msgid "Tabulators" +msgid "Tab and Space Markers" +msgstr "Tablyddion" + +#: syntax/katethemeconfig.cpp:299 +#, kde-format +msgid "

Sets the color of the tabulator marks.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:304 +#, fuzzy, kde-format +msgid "Indentation Line" +msgstr "Modd Dewis" + +#: syntax/katethemeconfig.cpp:306 +#, kde-format +msgid "

Sets the color of the vertical indentation lines.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:311 +#, fuzzy, kde-format +#| msgid "H&ighlight:" +msgid "Bracket Highlight" +msgstr "A&mlygu:" + +#: syntax/katethemeconfig.cpp:314 +#, kde-format +msgid "" +"

Sets the bracket matching color. This means, if you place the cursor e.g. " +"at a (, the matching ) will be highlighted with this color.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:322 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "Marker Colors" +msgstr "Lliwiau" + +#: syntax/katethemeconfig.cpp:324 view/kateviewhelpers.cpp:1536 +#, kde-format +msgid "Bookmark" +msgstr "Nod Tudalen" + +#: syntax/katethemeconfig.cpp:325 +#, kde-format +msgid "Active Breakpoint" +msgstr "" + +#: syntax/katethemeconfig.cpp:326 +#, kde-format +msgid "Reached Breakpoint" +msgstr "" + +#: syntax/katethemeconfig.cpp:327 +#, kde-format +msgid "Disabled Breakpoint" +msgstr "" + +#: syntax/katethemeconfig.cpp:328 +#, fuzzy, kde-format +msgid "Execution" +msgstr "R&han:" + +#: syntax/katethemeconfig.cpp:329 +#, fuzzy, kde-format +msgid "Warning" +msgstr "Llinell" + +#: syntax/katethemeconfig.cpp:330 +#, fuzzy, kde-format +msgid "Error" +msgstr "Gwall:" + +#: syntax/katethemeconfig.cpp:332 +#, kde-format +msgid "" +"

Sets the background color of mark type.

Note: The marker " +"color is displayed lightly because of transparency.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:344 +#, kde-format +msgid "Text Templates & Snippets" +msgstr "" + +#: syntax/katethemeconfig.cpp:349 +#, fuzzy, kde-format +#| msgid "Background" +msgid "Background" +msgstr "Cefndir" + +#: syntax/katethemeconfig.cpp:355 +#, kde-format +msgid "Editable Placeholder" +msgstr "" + +#: syntax/katethemeconfig.cpp:361 +#, kde-format +msgid "Focused Editable Placeholder" +msgstr "" + +#: syntax/katethemeconfig.cpp:367 +#, kde-format +msgid "Not Editable Placeholder" +msgstr "" + +#: syntax/katethemeconfig.cpp:501 +#, kde-format +msgid "" +"

This list displays the default styles for the current color theme and " +"offers the means to edit them. The style name reflects the current style " +"settings.

To edit the colors, click the colored squares, or select the " +"color to edit from the popup menu.

You can unset the Background and " +"Selected Background colors from the popup menu when appropriate.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:568 +#, fuzzy, kde-format +#| msgid "Normal Text" +msgctxt "@item:intable" +msgid "Normal Text & Source Code" +msgstr "Testun Arferol" + +#: syntax/katethemeconfig.cpp:575 +#, kde-format +msgctxt "@item:intable" +msgid "Numbers, Types & Constants" +msgstr "" + +#: syntax/katethemeconfig.cpp:582 +#, fuzzy, kde-format +#| msgid "Character" +msgctxt "@item:intable" +msgid "Strings & Characters" +msgstr "Nod" + +#: syntax/katethemeconfig.cpp:589 +#, fuzzy, kde-format +msgctxt "@item:intable" +msgid "Comments & Documentation" +msgstr "Modd Dewis" + +#: syntax/katethemeconfig.cpp:596 +#, kde-format +msgctxt "@item:intable" +msgid "Miscellaneous" +msgstr "" + +#: syntax/katethemeconfig.cpp:704 +#, kde-format +msgid "H&ighlight:" +msgstr "A&mlygu:" + +#: syntax/katethemeconfig.cpp:746 +#, kde-format +msgid "" +"

This list displays the contexts of the current syntax highlight mode and " +"offers the means to edit them. The context name reflects the current style " +"settings.

To edit using the keyboard, press <SPACE> and choose a property from the popup menu.

To edit the colors, " +"click the colored squares, or select the color to edit from the popup menu.

You can unset the Background and Selected Background colors from the " +"context menu when appropriate.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:1027 +#, fuzzy, kde-format +#| msgid "Normal Text Styles" +msgid "Default Theme" +msgstr "Arddulliau Testun Arferol" + +#: syntax/katethemeconfig.cpp:1028 +#, fuzzy, kde-format +msgid "Theme Editor" +msgstr "Dewi&s Ffont..." + +#: syntax/katethemeconfig.cpp:1046 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgid "Select theme:" +msgstr "Testun dewisedig:" + +#: syntax/katethemeconfig.cpp:1119 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Scheme" +msgid "&Theme:" +msgstr "Cynllun" + +#: syntax/katethemeconfig.cpp:1128 +#, fuzzy, kde-format +msgctxt "@action:button" +msgid "&Copy…" +msgstr "Mewnosod Ffeil ..." + +#: syntax/katethemeconfig.cpp:1136 +#, fuzzy, kde-format +msgctxt "@action:button" +msgid "Export…" +msgstr "A&llforio" + +#: syntax/katethemeconfig.cpp:1140 +#, kde-format +msgctxt "@action:button" +msgid "Import…" +msgstr "" + +#: syntax/katethemeconfig.cpp:1147 +#, kde-format +msgid "Bundled read-only theme. To modify the theme, please copy it." +msgstr "" + +#: syntax/katethemeconfig.cpp:1160 +#, kde-format +msgid "Colors" +msgstr "Lliwiau" + +#: syntax/katethemeconfig.cpp:1164 +#, fuzzy, kde-format +#| msgid "Normal Text Styles" +msgid "Default Text Styles" +msgstr "Arddulliau Testun Arferol" + +#: syntax/katethemeconfig.cpp:1168 +#, kde-format +msgid "Highlighting Text Styles" +msgstr "Arddulliau Testun Amlygedig" + +#: syntax/katethemeconfig.cpp:1180 +#, fuzzy, kde-format +#| msgid "Replace &All" +msgid "Exporting color theme: %1" +msgstr "Amnewid y &Cwbl" + +#: syntax/katethemeconfig.cpp:1182 syntax/katethemeconfig.cpp:1203 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "Color theme" +msgstr "Lliwiau" + +#: syntax/katethemeconfig.cpp:1203 +#, fuzzy, kde-format +#| msgid "Replace &All" +msgid "Importing Color Theme" +msgstr "Amnewid y &Cwbl" + +#: syntax/katethemeconfig.cpp:1217 +#, kde-format +msgid "" +"Importing will overwrite the existing theme file \"%1\". This can not be " +"undone." +msgstr "" + +#: syntax/katethemeconfig.cpp:1219 +#, kde-format +msgid "Import Nevertheless" +msgstr "" + +#: syntax/katethemeconfig.cpp:1308 +#, fuzzy, kde-format +#| msgid "Replace &All" +msgid "Follow System Color Scheme" +msgstr "Amnewid y &Cwbl" + +#: syntax/katethemeconfig.cpp:1375 +#, kde-format +msgid "Do you really want to delete the theme \"%1\"? This can not be undone." +msgstr "" + +#: syntax/katethemeconfig.cpp:1377 +#, kde-format +msgid "Delete Nevertheless" +msgstr "" + +#: syntax/katethemeconfig.cpp:1419 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "Copy theme" +msgstr "Lliwiau" + +#: syntax/katethemeconfig.cpp:1420 +#, kde-format +msgid "Name for copy of color theme \"%1\":" +msgstr "" + +#: syntax/katethemeconfig.cpp:1432 +#, kde-format +msgid "" +"

The theme \"%1\" already exists.

Please choose a different theme " +"name.

" +msgstr "" + +#: syntax/katethemeconfig.cpp:1433 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "Copy Theme" +msgstr "Lliwiau" + +#: syntax/katethemeconfig.cpp:1486 syntax/katethemeconfig.cpp:1491 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "Color Themes" +msgstr "Lliwiau" + +#: utils/kateautoindent.cpp:88 +#, fuzzy, kde-format +#| msgid "None" +msgctxt "Autoindent mode" +msgid "None" +msgstr "Dim" + +#: utils/kateautoindent.cpp:92 +#, fuzzy, kde-format +#| msgid "Normal" +msgctxt "Autoindent mode" +msgid "Normal" +msgstr "Arferol" + +#: utils/katebookmarks.cpp:49 +#, fuzzy, kde-format +msgid "Toggle &Bookmark" +msgstr "Nod Tudalen" + +#: utils/katebookmarks.cpp:53 +#, kde-format +msgid "If a line has no bookmark then add one, otherwise remove it." +msgstr "" + +#: utils/katebookmarks.cpp:56 +#, kde-format +msgid "Clear &All Bookmarks" +msgstr "" + +#: utils/katebookmarks.cpp:59 +#, kde-format +msgid "Remove all bookmarks of the current document." +msgstr "" + +#: utils/katebookmarks.cpp:62 utils/katebookmarks.cpp:219 +#, kde-format +msgid "Next Bookmark" +msgstr "" + +#: utils/katebookmarks.cpp:66 +#, kde-format +msgid "Go to the next bookmark." +msgstr "" + +#: utils/katebookmarks.cpp:69 utils/katebookmarks.cpp:220 +#, kde-format +msgid "Previous Bookmark" +msgstr "" + +#: utils/katebookmarks.cpp:73 +#, kde-format +msgid "Go to the previous bookmark." +msgstr "" + +#: utils/katebookmarks.cpp:76 +#, fuzzy, kde-format +msgid "&Bookmarks" +msgstr "Nod Tudalen" + +#: utils/katebookmarks.cpp:192 +#, kde-format +msgid "&Next: %1 - \"%2\"" +msgstr "&Nesaf: %1 - \"%2\"" + +#: utils/katebookmarks.cpp:198 +#, kde-format +msgid "&Previous: %1 - \"%2\"" +msgstr "" + +#: utils/katecmds.cpp:53 +#, kde-format +msgid "

indent

Indents the selected lines or the current line

" +msgstr "" + +#: utils/katecmds.cpp:58 +#, kde-format +msgid "

unindent

Unindents the selected lines or current line.

" +msgstr "" + +#: utils/katecmds.cpp:63 +#, kde-format +msgid "" +"

cleanindent

Cleans up the indentation of the selected lines or " +"current line according to the indentation settings in the document.

" +msgstr "" + +#: utils/katecmds.cpp:68 +#, kde-format +msgid "" +"

comment

Inserts comment markers to make the selection or selected " +"lines or current line a comment according to the text format as defined by " +"the syntax highlight definition for the document.

" +msgstr "" + +#: utils/katecmds.cpp:74 +#, kde-format +msgid "" +"

uncomment

Removes comment markers from the selection or selected " +"lines or current line according to the text format as defined by the syntax " +"highlight definition for the document.

" +msgstr "" + +#: utils/katecmds.cpp:80 +#, kde-format +msgid "" +"

goto line number

This command navigates to the specified " +"line number.

" +msgstr "" + +#: utils/katecmds.cpp:85 +#, kde-format +msgid "" +"

set-indent-pasted-text enable

If enabled, indentation of " +"text pasted from the clipboard is adjusted using the current indenter.

Possible true values: 1 on true
possible false values: 0 off false" +msgstr "" + +#: utils/katecmds.cpp:91 +#, fuzzy, kde-format +msgid "Deletes the current line." +msgstr "Cadw'r ddogfen cyfredol" + +#: utils/katecmds.cpp:95 +#, kde-format +msgid "" +"

set-tab-width width

Sets the tab width to the number " +"width

" +msgstr "" + +#: utils/katecmds.cpp:100 +#, kde-format +msgid "" +"

set-replace-tab enable

If enabled, tabs are replaced with " +"spaces as you type.

Possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:107 +#, kde-format +msgid "" +"

set-show-tabs enable

If enabled, TAB characters and trailing " +"whitespace will be visualized by a small dot.

Possible true values: 1 " +"on true
possible false values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:114 +#, kde-format +msgid "" +"

set-remove-trailing-spaces mode

Removes the trailing spaces " +"in the document depending on the mode.

Possible values:" +"

  • none: never remove trailing spaces.
  • modified: " +"remove trailing spaces only of modified lines.
  • all: remove " +"trailing spaces in the entire document.

" +msgstr "" + +#: utils/katecmds.cpp:125 +#, kde-format +msgid "" +"

set-indent-width width

Sets the indentation width to the " +"number width. Used only if you are indenting with spaces.

" +msgstr "" + +#: utils/katecmds.cpp:130 +#, kde-format +msgid "" +"

set-indent-mode mode

The mode parameter is a value as seen " +"in the Tools - Indentation menu

" +msgstr "" + +#: utils/katecmds.cpp:135 +#, kde-format +msgid "" +"

set-auto-indent enable

Enable or disable autoindentation.

possible true values: 1 on true
possible false values: 0 off false" +msgstr "" + +#: utils/katecmds.cpp:142 +#, kde-format +msgid "" +"

set-line-numbers enable

Sets the visibility of the line " +"numbers pane.

possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:149 +#, kde-format +msgid "" +"

set-folding-markers enable

Sets the visibility of the " +"folding markers pane.

possible true values: 1 on true
possible " +"false values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:156 +#, kde-format +msgid "" +"

set-icon-border enable

Sets the visibility of the icon " +"border.

possible true values: 1 on true
possible false values: 0 " +"off false

" +msgstr "" + +#: utils/katecmds.cpp:163 +#, kde-format +msgid "" +"

set-word-wrap enable

Enables dynamic word wrap according to " +"enable

possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:170 +#, kde-format +msgid "" +"

set-word-wrap-column width

Sets the line width for hard " +"wrapping to width. This is used if you are having your text wrapped " +"automatically.

" +msgstr "" + +#: utils/katecmds.cpp:175 +#, kde-format +msgid "" +"

set-replace-tabs-save enable

When enabled, tabs will be " +"replaced with whitespace whenever the document is saved.

possible " +"true values: 1 on true
possible false values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:182 +#, kde-format +msgid "" +"

set-highlight highlight

Sets the syntax highlighting system " +"for the document. The argument must be a valid highlight name, as seen in " +"the Tools → Highlighting menu. This command provides an autocompletion list " +"for its argument.

" +msgstr "" + +#: utils/katecmds.cpp:188 +#, kde-format +msgid "

set-mode mode

Sets the mode as seen in Tools - Mode

" +msgstr "" + +#: utils/katecmds.cpp:193 +#, kde-format +msgid "" +"

set-show-indent enable

If enabled, indentation will be " +"visualized by a vertical dotted line.

possible true values: 1 on " +"true
possible false values: 0 off false

" +msgstr "" + +#: utils/katecmds.cpp:199 +#, fuzzy, kde-format +msgid "

Open the Print dialog to print the current document.

" +msgstr "Argraffu'r ddogfen cyfredol." + +#: utils/katecmds.cpp:314 utils/katecmds.cpp:341 +#, kde-format +msgid "Missing argument. Usage: %1 " +msgstr "" + +#: utils/katecmds.cpp:327 +#, kde-format +msgid "No such highlighting '%1'" +msgstr "" + +#: utils/katecmds.cpp:333 +#, kde-format +msgid "No such mode '%1'" +msgstr "" + +#: utils/katecmds.cpp:346 +#, kde-format +msgid "Failed to convert argument '%1' to integer." +msgstr "" + +#: utils/katecmds.cpp:350 utils/katecmds.cpp:355 +#, kde-format +msgid "Width must be at least 1." +msgstr "" + +#: utils/katecmds.cpp:360 +#, kde-format +msgid "Column must be at least 1." +msgstr "" + +#: utils/katecmds.cpp:390 +#, kde-format +msgid "Usage: %1 on|off|1|0|true|false" +msgstr "" + +#: utils/katecmds.cpp:417 +#, kde-format +msgid "Bad argument '%1'. Usage: %2 on|off|1|0|true|false" +msgstr "" + +#: utils/katecmds.cpp:421 +#, kde-format +msgid "" +"Usage: set-remove-trailing-spaces 0|-|none or 1|+|mod|modified or 2|*|all" +msgstr "" + +#: utils/katecmds.cpp:435 vimode/cmds.cpp:168 +#, kde-format +msgid "Unknown command '%1'" +msgstr "" + +#: utils/katecmds.cpp:493 +#, kde-format +msgid "" +"

char identifier

This command allows you to insert literal " +"characters by their numerical identifier, in decimal, octal or hexadecimal " +"form.

Examples:

  • char 234
  • char 0x1234

" +msgstr "" + +#: utils/katecmds.cpp:560 +#, kde-format +msgid "" +"

date or date format

Inserts a date/time string as defined by " +"the specified format, or the format yyyy-MM-dd hh:mm:ss if none is specified." +"

Possible format specifiers are:
dThe day as " +"number without a leading zero (1-31).
ddThe day as " +"number with a leading zero (01-31).
dddThe " +"abbreviated localized day name (e.g. 'Mon'..'Sun').
ddddThe long localized day name (e.g. 'Monday'..'Sunday').
MThe month as number without a leading zero (1-12).
MMThe month as number with a leading zero (01-12).
MMMThe abbreviated localized month name (e.g. " +"'Jan'..'Dec').
yyThe year as two digit number " +"(00-99).
yyyyThe year as four digit number " +"(1752-8000).
hThe hour without a leading zero " +"(0..23 or 1..12 if AM/PM display).
hhThe hour with " +"a leading zero (00..23 or 01..12 if AM/PM display).
mThe minute without a leading zero (0..59).
mmThe minute with a leading zero (00..59).
sThe second without a leading zero (0..59).
ssThe second with a leading zero (00..59).
zThe milliseconds without leading zeroes (0..999).
zzzThe milliseconds with leading zeroes (000..999).
APUse AM/PM display. AP will be replaced by either " +"\"AM\" or \"PM\".
apUse am/pm display. ap will be " +"replaced by either \"am\" or \"pm\".

" +msgstr "" + +#: utils/katecmds.cpp:621 +#, fuzzy, kde-format +#| msgid "Selected" +msgid "Remove Duplicate Lines" +msgstr "Dewisiedig" + +#: utils/katecmds.cpp:622 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgid "Remove Duplicates and Sort Text Alphabetically" +msgstr "Testun dewisedig:" + +#: utils/katecmds.cpp:623 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgid "Sort Text Naturally" +msgstr "Testun dewisedig:" + +#: utils/katecmds.cpp:624 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgid "Sort Selected Text Alphabetically" +msgstr "Testun dewisedig:" + +#: utils/katecmds.cpp:699 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "" +"

sort

Sort the selected text or whole document if there is no " +"selection

" +msgstr "Dewis holl destun y ddogfen gyfredol." + +#: utils/katecmds.cpp:703 +#, kde-format +msgid "" +"

uniq

Remove duplicate lines from the selected text or whole " +"document if there is no selection.

" +msgstr "" + +#: utils/katecmds.cpp:707 +#, kde-format +msgid "" +"

sortuniq

Sort the selected text or whole document and then remove " +"all duplicate lines.

" +msgstr "" + +#: utils/katecmds.cpp:711 +#, kde-format +msgid "" +"

natsort

Sort the selected text or whole document in natural order." +"
Here is an example to show the difference to the normal sort method:" +"
sort(a10, a1, a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" +msgstr "" + +#: utils/kateglobal.cpp:60 +#, kde-format +msgid "Kate Part" +msgstr "" + +#: utils/kateglobal.cpp:62 +#, kde-format +msgid "Embeddable editor component" +msgstr "" + +#: utils/kateglobal.cpp:64 +#, fuzzy, kde-format +msgid "(c) 2000-2025 The Kate Authors" +msgstr "(h)(c) 2000-2003 Yr Awduron Kate" + +#: utils/kateglobal.cpp:84 +#, kde-format +msgid "Christoph Cullmann" +msgstr "" + +#: utils/kateglobal.cpp:84 +#, kde-format +msgid "Maintainer" +msgstr "Cynhaliwr" + +#: utils/kateglobal.cpp:85 +#, kde-format +msgid "Dominik Haumann" +msgstr "" + +#: utils/kateglobal.cpp:85 utils/kateglobal.cpp:86 utils/kateglobal.cpp:87 +#: utils/kateglobal.cpp:90 utils/kateglobal.cpp:93 utils/kateglobal.cpp:98 +#, kde-format +msgid "Core Developer" +msgstr "Datblygwr Craidd" + +#: utils/kateglobal.cpp:86 +#, kde-format +msgid "Milian Wolff" +msgstr "" + +#: utils/kateglobal.cpp:87 +#, kde-format +msgid "Joseph Wenninger" +msgstr "" + +#: utils/kateglobal.cpp:88 +#, kde-format +msgid "Erlend Hamberg" +msgstr "" + +#: utils/kateglobal.cpp:89 +#, kde-format +msgid "Bernhard Beschow" +msgstr "" + +#: utils/kateglobal.cpp:89 utils/kateglobal.cpp:105 +#, fuzzy, kde-format +msgid "Developer" +msgstr "Datblygwr Craidd" + +#: utils/kateglobal.cpp:90 +#, kde-format +msgid "Anders Lund" +msgstr "" + +#: utils/kateglobal.cpp:91 +#, kde-format +msgid "Michel Ludwig" +msgstr "" + +#: utils/kateglobal.cpp:91 +#, fuzzy, kde-format +#| msgid "Spellcheck" +msgid "On-the-fly spell checking" +msgstr "Gwirio Sillafu" + +#: utils/kateglobal.cpp:92 +#, kde-format +msgid "Pascal Létourneau" +msgstr "" + +#: utils/kateglobal.cpp:92 +#, kde-format +msgid "Large scale bug fixing" +msgstr "" + +#: utils/kateglobal.cpp:93 +#, kde-format +msgid "Hamish Rodda" +msgstr "" + +#: utils/kateglobal.cpp:94 +#, kde-format +msgid "Waldo Bastian" +msgstr "" + +#: utils/kateglobal.cpp:94 +#, kde-format +msgid "The cool buffersystem" +msgstr "Y gyfundrefn byfferi cŵl" + +#: utils/kateglobal.cpp:95 +#, kde-format +msgid "Charles Samuels" +msgstr "" + +#: utils/kateglobal.cpp:95 +#, kde-format +msgid "The Editing Commands" +msgstr "Y Gorchmynion Golygu" + +#: utils/kateglobal.cpp:96 +#, kde-format +msgid "Matt Newell" +msgstr "" + +#: utils/kateglobal.cpp:96 +#, kde-format +msgid "Testing, ..." +msgstr "Profi,..." + +#: utils/kateglobal.cpp:97 +#, kde-format +msgid "Michael Bartl" +msgstr "" + +#: utils/kateglobal.cpp:97 +#, kde-format +msgid "Former Core Developer" +msgstr "Cyn-ddatblygwr Craidd" + +#: utils/kateglobal.cpp:98 +#, kde-format +msgid "Michael McCallum" +msgstr "" + +#: utils/kateglobal.cpp:99 +#, kde-format +msgid "Michael Koch" +msgstr "" + +#: utils/kateglobal.cpp:99 +#, kde-format +msgid "KWrite port to KParts" +msgstr "Porthiad KWrite i KParts" + +#: utils/kateglobal.cpp:100 +#, kde-format +msgid "Christian Gebauer" +msgstr "" + +#: utils/kateglobal.cpp:101 +#, kde-format +msgid "Simon Hausmann" +msgstr "" + +#: utils/kateglobal.cpp:102 +#, kde-format +msgid "Glen Parker" +msgstr "" + +#: utils/kateglobal.cpp:102 +#, kde-format +msgid "KWrite Undo History, Kspell integration" +msgstr "Hanes Datwneud KWrite, cyfuno Kspell" + +#: utils/kateglobal.cpp:103 +#, kde-format +msgid "Scott Manson" +msgstr "" + +#: utils/kateglobal.cpp:103 +#, kde-format +msgid "KWrite XML Syntax highlighting support" +msgstr "Cynhaliaeth amlygu cystrawen XML KWrite" + +#: utils/kateglobal.cpp:104 +#, kde-format +msgid "John Firebaugh" +msgstr "" + +#: utils/kateglobal.cpp:104 +#, kde-format +msgid "Patches and more" +msgstr "Clytiau a mwy" + +#: utils/kateglobal.cpp:105 +#, kde-format +msgid "Andreas Kling" +msgstr "" + +#: utils/kateglobal.cpp:106 +#, kde-format +msgid "Mirko Stocker" +msgstr "" + +#: utils/kateglobal.cpp:106 +#, kde-format +msgid "Various bugfixes" +msgstr "" + +#: utils/kateglobal.cpp:107 +#, kde-format +msgid "Matthew Woehlke" +msgstr "" + +#: utils/kateglobal.cpp:107 +#, kde-format +msgid "Selection, KColorScheme integration" +msgstr "" + +#: utils/kateglobal.cpp:108 +#, kde-format +msgid "Sebastian Pipping" +msgstr "" + +#: utils/kateglobal.cpp:109 +#, kde-format +msgid "Search bar back- and front-end" +msgstr "" + +#: utils/kateglobal.cpp:112 +#, kde-format +msgid "Jochen Wilhelmy" +msgstr "" + +#: utils/kateglobal.cpp:112 +#, fuzzy, kde-format +#| msgid "KWrite Author" +msgid "Original KWrite Author" +msgstr "Awdur KWrite" + +#: utils/kateglobal.cpp:113 +#, kde-format +msgid "Gerald Senarclens de Grancy" +msgstr "" + +#: utils/kateglobal.cpp:113 +#, kde-format +msgid "QA and Scripting" +msgstr "" + +#: utils/kateglobal.cpp:115 +#, kde-format +msgid "Matteo Merli" +msgstr "" + +#: utils/kateglobal.cpp:115 +#, kde-format +msgid "Highlighting for RPM Spec-Files, Perl, Diff and more" +msgstr "Amlygu i RPM, Spec-Files, Perl, Diff ac eraill" + +#: utils/kateglobal.cpp:116 +#, kde-format +msgid "Rocky Scaletta" +msgstr "" + +#: utils/kateglobal.cpp:116 +#, kde-format +msgid "Highlighting for VHDL" +msgstr "Amlygu i VHDL" + +#: utils/kateglobal.cpp:117 +#, kde-format +msgid "Yury Lebedev" +msgstr "" + +#: utils/kateglobal.cpp:117 +#, kde-format +msgid "Highlighting for SQL" +msgstr "Amlygu i SQL" + +#: utils/kateglobal.cpp:118 +#, kde-format +msgid "Chris Ross" +msgstr "" + +#: utils/kateglobal.cpp:118 +#, kde-format +msgid "Highlighting for Ferite" +msgstr "Amlygu i Ferite" + +#: utils/kateglobal.cpp:119 +#, kde-format +msgid "Nick Roux" +msgstr "" + +#: utils/kateglobal.cpp:119 +#, kde-format +msgid "Highlighting for ILERPG" +msgstr "Amlygu i ILERPG" + +#: utils/kateglobal.cpp:120 +#, kde-format +msgid "Carsten Niehaus" +msgstr "" + +#: utils/kateglobal.cpp:120 +#, kde-format +msgid "Highlighting for LaTeX" +msgstr "Amlygu i LaTeX" + +#: utils/kateglobal.cpp:121 +#, kde-format +msgid "Per Wigren" +msgstr "" + +#: utils/kateglobal.cpp:121 +#, kde-format +msgid "Highlighting for Makefiles, Python" +msgstr "Amlygu i Makefiles, Python" + +#: utils/kateglobal.cpp:122 +#, kde-format +msgid "Jan Fritz" +msgstr "" + +#: utils/kateglobal.cpp:122 +#, kde-format +msgid "Highlighting for Python" +msgstr "Amlygu i Python" + +#: utils/kateglobal.cpp:123 +#, kde-format +msgid "Daniel Naber" +msgstr "" + +#: utils/kateglobal.cpp:124 +#, kde-format +msgid "Roland Pabel" +msgstr "" + +#: utils/kateglobal.cpp:124 +#, kde-format +msgid "Highlighting for Scheme" +msgstr "Amlygu i Scheme" + +#: utils/kateglobal.cpp:125 +#, kde-format +msgid "Cristi Dumitrescu" +msgstr "" + +#: utils/kateglobal.cpp:125 +#, kde-format +msgid "PHP Keyword/Datatype list" +msgstr "Rhestr Allweddair/Math data PHP" + +#: utils/kateglobal.cpp:126 +#, kde-format +msgid "Carsten Pfeiffer" +msgstr "" + +#: utils/kateglobal.cpp:126 +#, kde-format +msgid "Very nice help" +msgstr "Cymorth hyfryd iawn" + +#: utils/kateglobal.cpp:127 +#, kde-format +msgid "Bruno Massa" +msgstr "" + +#: utils/kateglobal.cpp:127 +#, fuzzy, kde-format +#| msgid "Highlighting for LaTeX" +msgid "Highlighting for Lua" +msgstr "Amlygu i LaTeX" + +#: utils/kateglobal.cpp:129 +#, kde-format +msgid "All people who have contributed and I have forgotten to mention" +msgstr "Pawb sydd wedi cyfrannu a rwy wedi anghofio eu crybwyll" + +#: utils/kateglobal.cpp:131 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "KD wrth KGyfieithu" + +#: utils/kateglobal.cpp:131 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "kyfieithu@dotmon.com" + +#: utils/kateglobal.cpp:255 +#, fuzzy, kde-format +msgid "Configure" +msgstr "Ffurfweddu..." + +#: utils/katesedcmd.cpp:268 +#, fuzzy, kde-format +#| msgid "Replace &All" +msgid "replace with %1?" +msgstr "Amnewid y &Cwbl" + +#: utils/katesedcmd.cpp:274 +#, kde-format +msgctxt "%2 is the translation of the next message" +msgid "1 replacement done on %2" +msgid_plural "%1 replacements done on %2" +msgstr[0] "" +msgstr[1] "" + +#: utils/katesedcmd.cpp:277 +#, fuzzy, kde-format +msgctxt "substituted into the previous message" +msgid "1 line" +msgid_plural "%1 lines" +msgstr[0] "&Danlinellu" +msgstr[1] "&Danlinellu" + +#: utils/katevariableexpansionhelpers.cpp:77 +#, kde-format +msgid "" +msgstr "" + +#: utils/katevariableexpansionhelpers.cpp:161 +#, fuzzy, kde-format +msgid "Insert variable" +msgstr "&Mewnoliad" + +#: utils/katevariableexpansionhelpers.cpp:165 +#, fuzzy, kde-format +msgid "Variables" +msgstr "&Newidynnau :" + +#: utils/katevariableexpansionhelpers.cpp:169 +#, fuzzy, kde-format +#| msgid "String" +msgid "Filter" +msgstr "Llinell" + +#: utils/katevariableexpansionhelpers.cpp:188 +#: utils/katevariableexpansionhelpers.cpp:217 +#, kde-format +msgid "Please select a variable." +msgstr "" + +#: utils/katevariableexpansionhelpers.cpp:206 +#, kde-format +msgid "Current value: %1" +msgstr "" + +#: utils/katevariableexpansionhelpers.cpp:214 +#, kde-format +msgid "Current value: %1" +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:86 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "File base name without path and suffix of the current document." +msgstr "Dewis holl destun y ddogfen gyfredol." + +#: utils/katevariableexpansionmanager.cpp:94 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "File extension of the current document." +msgstr "Dewis holl destun y ddogfen gyfredol." + +#: utils/katevariableexpansionmanager.cpp:102 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "File name without path of the current document." +msgstr "Dewis holl destun y ddogfen gyfredol." + +#: utils/katevariableexpansionmanager.cpp:110 +#, fuzzy, kde-format +#| msgid "Save the current document" +msgid "Full path of the current document including the file name." +msgstr "Cadw'r ddogfen cyfredol" + +#: utils/katevariableexpansionmanager.cpp:118 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Contents of the current document." +msgstr "Argraffu'r ddogfen cyfredol." + +#: utils/katevariableexpansionmanager.cpp:125 +#, fuzzy, kde-format +#| msgid "Save the current document" +msgid "Full path of the current document excluding the file name." +msgstr "Cadw'r ddogfen cyfredol" + +#: utils/katevariableexpansionmanager.cpp:133 +#, kde-format +msgid "" +"Full document path including file name, with native path separator " +"(backslash on Windows)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:141 +#, kde-format +msgid "" +"Full document path excluding file name, with native path separator " +"(backslash on Windows)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:149 +#, kde-format +msgid "" +"Line number of the text cursor position in current document (starts with 0)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:156 +#, kde-format +msgid "" +"Column number of the text cursor position in current document (starts with " +"0)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:163 +#, kde-format +msgid "X component in global screen coordinates of the cursor position." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:170 +#, kde-format +msgid "Y component in global screen coordinates of the cursor position." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:177 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "Text selection of the current document." +msgstr "Dewis holl destun y ddogfen gyfredol." + +#: utils/katevariableexpansionmanager.cpp:184 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "Start line of selected text of the current document." +msgstr "Dewis holl destun y ddogfen gyfredol." + +#: utils/katevariableexpansionmanager.cpp:191 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "Start column of selected text of the current document." +msgstr "Dewis holl destun y ddogfen gyfredol." + +#: utils/katevariableexpansionmanager.cpp:198 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "End line of selected text of the current document." +msgstr "Dewis holl destun y ddogfen gyfredol." + +#: utils/katevariableexpansionmanager.cpp:205 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "End column of selected text of the current document." +msgstr "Dewis holl destun y ddogfen gyfredol." + +#: utils/katevariableexpansionmanager.cpp:212 +#, fuzzy, kde-format +msgid "Number of rows of the current document." +msgstr "Argraffu'r ddogfen cyfredol." + +#: utils/katevariableexpansionmanager.cpp:219 +#, fuzzy, kde-format +#| msgid "End of document reached." +msgid "Read a document variable." +msgstr " Wedi cyrraedd diwedd y ddogfen." + +#: utils/katevariableexpansionmanager.cpp:227 +#, kde-format +msgid "The current date in current locale format." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:234 +#, kde-format +msgid "The current date (ISO)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:241 +#, kde-format +msgid "The current date (QDate formatstring)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:249 +#, kde-format +msgid "The current time in current locale format." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:256 +#, kde-format +msgid "The current time (ISO)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:263 +#, kde-format +msgid "The current time (QTime formatstring)." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:271 +#, kde-format +msgid "Access to environment variables." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:279 +#, kde-format +msgid "Evaluate simple JavaScript statements." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:289 +#, kde-format +msgid "Encode text to make it URL compatible." +msgstr "" + +#: utils/katevariableexpansionmanager.cpp:297 +#, kde-format +msgid "Generate a new UUID." +msgstr "" + +#: variableeditor/variableeditor.cpp:40 +#, kde-format +msgid "Kate Handbook." +msgstr "" + +#: variableeditor/variableeditor.cpp:213 +#, fuzzy, kde-format +msgid "true" +msgstr "T&rwylinellu" + +#: variableeditor/variableeditor.cpp:214 +#, kde-format +msgid "false" +msgstr "" + +#: variableeditor/variableeditor.cpp:350 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "none" +msgstr "" + +#: variableeditor/variableeditor.cpp:351 +#, fuzzy, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "modified" +msgstr "Mynd i Linell" + +#: variableeditor/variableeditor.cpp:352 +#, kde-format +msgctxt "value for variable remove-trailing-spaces" +msgid "all" +msgstr "" + +#: variableeditor/variablelineedit.cpp:42 +#, kde-format +msgid "Show list of valid variables." +msgstr "" + +#: variableeditor/variablelineedit.cpp:115 +#, fuzzy, kde-format +#| msgid "Unable to open %1" +msgctxt "short translation please" +msgid "Enable automatic insertion of brackets." +msgstr "Methu agor %1" + +#: variableeditor/variablelineedit.cpp:121 +#, kde-format +msgctxt "short translation please" +msgid "Set the number of autocenter lines." +msgstr "" + +#: variableeditor/variablelineedit.cpp:126 +#, fuzzy, kde-format +msgctxt "short translation please" +msgid "Set the document background color." +msgstr "Llunio lliw y ce&fndir" + +#: variableeditor/variablelineedit.cpp:131 +#, kde-format +msgctxt "short translation please" +msgid "Pressing backspace in leading whitespace unindents." +msgstr "" + +#: variableeditor/variablelineedit.cpp:139 +#, fuzzy, kde-format +#| msgid "Bl&ock Selection Mode" +msgctxt "short translation please" +msgid "Enable block selection mode." +msgstr "Modd Dewis &Blociau" + +#: variableeditor/variablelineedit.cpp:144 +#, kde-format +msgctxt "short translation please" +msgid "Enable the byte order mark (BOM) when saving Unicode files." +msgstr "" + +#: variableeditor/variablelineedit.cpp:149 +#, kde-format +msgctxt "short translation please" +msgid "Set the color for the bracket highlight." +msgstr "" + +#: variableeditor/variablelineedit.cpp:154 +#, kde-format +msgctxt "short translation please" +msgid "Set the background color for the current line." +msgstr "" + +#: variableeditor/variablelineedit.cpp:160 +#, kde-format +msgctxt "short translation please" +msgid "Set the default dictionary used for spell checking." +msgstr "" + +#: variableeditor/variablelineedit.cpp:165 +#, kde-format +msgctxt "short translation please" +msgid "Enable dynamic word wrap of long lines." +msgstr "" + +#: variableeditor/variablelineedit.cpp:172 +#, kde-format +msgctxt "short translation please" +msgid "Sets the end of line mode." +msgstr "" + +#: variableeditor/variablelineedit.cpp:177 +#, kde-format +msgctxt "short translation please" +msgid "" +"Enable whether pressing enter will insert selected auto completion item." +msgstr "" + +#: variableeditor/variablelineedit.cpp:182 +#, kde-format +msgctxt "short translation please" +msgid "Enable folding markers in the editor border." +msgstr "" + +#: variableeditor/variablelineedit.cpp:187 +#, kde-format +msgctxt "short translation please" +msgid "Enable folding preview in the editor border." +msgstr "" + +#: variableeditor/variablelineedit.cpp:193 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgctxt "short translation please" +msgid "Set the point size of the document font." +msgstr "Dewis holl destun y ddogfen gyfredol." + +#: variableeditor/variablelineedit.cpp:198 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgctxt "short translation please" +msgid "Set the font of the document." +msgstr "Dewis holl destun y ddogfen gyfredol." + +#: variableeditor/variablelineedit.cpp:214 +#, fuzzy, kde-format +#| msgid "KWrite XML Syntax highlighting support" +msgctxt "short translation please" +msgid "Set the syntax highlighting." +msgstr "Cynhaliaeth amlygu cystrawen XML KWrite" + +#: variableeditor/variablelineedit.cpp:219 +#, kde-format +msgctxt "short translation please" +msgid "Set the icon bar color." +msgstr "" + +#: variableeditor/variablelineedit.cpp:224 +#, kde-format +msgctxt "short translation please" +msgid "Enable the icon border in the editor view." +msgstr "" + +#: variableeditor/variablelineedit.cpp:229 +#, fuzzy, kde-format +msgctxt "short translation please" +msgid "Set the auto indentation style." +msgstr "Modd Dewis" + +#: variableeditor/variablelineedit.cpp:234 +#, kde-format +msgctxt "short translation please" +msgid "Adjust indentation of text pasted from the clipboard." +msgstr "" + +#: variableeditor/variablelineedit.cpp:240 +#, kde-format +msgctxt "short translation please" +msgid "Set the indentation depth for each indent level." +msgstr "" + +#: variableeditor/variablelineedit.cpp:245 +#, kde-format +msgctxt "short translation please" +msgid "Allow odd indentation level (no multiple of indent width)." +msgstr "" + +#: variableeditor/variablelineedit.cpp:250 +#, fuzzy, kde-format +#| msgid "Print &line numbers" +msgctxt "short translation please" +msgid "Show line numbers." +msgstr "Argraffu rhifau &llinell" + +#: variableeditor/variablelineedit.cpp:255 +#, kde-format +msgctxt "short translation please" +msgid "Insert newline at end of file on save." +msgstr "" + +#: variableeditor/variablelineedit.cpp:260 +#, kde-format +msgctxt "short translation please" +msgid "Enable overwrite mode in the document." +msgstr "" + +#: variableeditor/variablelineedit.cpp:265 +#, kde-format +msgctxt "short translation please" +msgid "Enable persistent text selection." +msgstr "" + +#: variableeditor/variablelineedit.cpp:270 +#, kde-format +msgctxt "short translation please" +msgid "Replace tabs with spaces when saving the document." +msgstr "" + +#: variableeditor/variablelineedit.cpp:275 +#, fuzzy, kde-format +#| msgid "Replace &All" +msgctxt "short translation please" +msgid "Replace tabs with spaces." +msgstr "Amnewid y &Cwbl" + +#: variableeditor/variablelineedit.cpp:280 +#, fuzzy, kde-format +#| msgid "Remove &trailing spaces" +msgctxt "short translation please" +msgid "Remove trailing spaces when saving the document." +msgstr "Gwaredu &gofodnodau ychwanegol" + +#: variableeditor/variablelineedit.cpp:285 +#, kde-format +msgctxt "short translation please" +msgid "Show scrollbar minimap." +msgstr "" + +#: variableeditor/variablelineedit.cpp:290 +#, kde-format +msgctxt "short translation please" +msgid "Show scrollbar preview." +msgstr "" + +#: variableeditor/variablelineedit.cpp:301 +#, fuzzy, kde-format +#| msgid "Replace &All" +msgctxt "short translation please" +msgid "Set the color scheme." +msgstr "Amnewid y &Cwbl" + +#: variableeditor/variablelineedit.cpp:306 +#, kde-format +msgctxt "short translation please" +msgid "Set the text selection color." +msgstr "" + +#: variableeditor/variablelineedit.cpp:311 +#, fuzzy, kde-format +#| msgid "Highlighting Rules" +msgctxt "short translation please" +msgid "Visualize tabs and trailing spaces." +msgstr "Rheolau Amlygu" + +#: variableeditor/variablelineedit.cpp:316 +#, fuzzy, kde-format +#| msgid "Unable to open %1" +msgctxt "short translation please" +msgid "Enable smart home navigation." +msgstr "Methu agor %1" + +#: variableeditor/variablelineedit.cpp:321 +#, kde-format +msgctxt "short translation please" +msgid "Pressing TAB key indents." +msgstr "" + +#: variableeditor/variablelineedit.cpp:327 +#, kde-format +msgctxt "short translation please" +msgid "Set the tab display width." +msgstr "" + +#: variableeditor/variablelineedit.cpp:333 +#, kde-format +msgctxt "short translation please" +msgid "Set the number of undo steps to remember (0 equals infinity)." +msgstr "" + +#: variableeditor/variablelineedit.cpp:339 +#, kde-format +msgctxt "short translation please" +msgid "Set the word wrap column." +msgstr "" + +#: variableeditor/variablelineedit.cpp:344 +#, fuzzy, kde-format +msgctxt "short translation please" +msgid "Set the word wrap marker color." +msgstr "Llunio lliw y ce&fndir" + +#: variableeditor/variablelineedit.cpp:349 +#, kde-format +msgctxt "short translation please" +msgid "Enable word wrap while typing text." +msgstr "" + +#: view/katestatusbar.cpp:114 +#, kde-format +msgid "Current cursor position. Click to go to a specific line." +msgstr "" + +#: view/katestatusbar.cpp:127 +#, kde-format +msgid "Insert mode and VI input mode indicator. Click to change the mode." +msgstr "" + +#: view/katestatusbar.cpp:135 +#, fuzzy, kde-format +msgid "Change dictionary" +msgstr "Dewi&s Ffont..." + +#: view/katestatusbar.cpp:161 view/katestatusbar.cpp:488 +#, fuzzy, kde-format +#| msgid "W&idth:" +msgid "Tab Width" +msgstr "&Lled:" + +#: view/katestatusbar.cpp:169 view/katestatusbar.cpp:503 +#, fuzzy, kde-format +msgid "Indentation Width" +msgstr "Modd Dewis" + +#: view/katestatusbar.cpp:177 +#, fuzzy, kde-format +msgid "Indentation Mode" +msgstr "Modd Dewis" + +#: view/katestatusbar.cpp:179 +#, fuzzy, kde-format +#| msgid "Tabulators" +msgid "Tabulators && Spaces" +msgstr "Tablyddion" + +#: view/katestatusbar.cpp:182 +#, fuzzy, kde-format +#| msgid "Tabulators" +msgid "Tabulators" +msgstr "Tablyddion" + +#: view/katestatusbar.cpp:185 +#, fuzzy, kde-format +#| msgid "&Replace" +msgid "Spaces" +msgstr "A&mnewid" + +#: view/katestatusbar.cpp:197 +#, fuzzy, kde-format +#| msgid "E&ncoding" +msgid "Encoding" +msgstr "A&mgodiad" + +#: view/katestatusbar.cpp:200 view/katestatusbar.cpp:201 +#, fuzzy, kde-format +#| msgid "&End of Line" +msgid "End of line type" +msgstr "&Diwedd y Llinell" + +#: view/katestatusbar.cpp:207 +#, fuzzy, kde-format +#| msgid "&Bold" +msgid "Mode" +msgstr "&Bras" + +#: view/katestatusbar.cpp:209 view/kateview.cpp:703 +#, kde-format +msgid "" +"Here you can choose which mode should be used for the current document. This " +"will influence the highlighting and folding being used, for example." +msgstr "" + +#: view/katestatusbar.cpp:216 +#, fuzzy, kde-format +#| msgid "KWrite XML Syntax highlighting support" +msgid "Syntax highlighting" +msgstr "Cynhaliaeth amlygu cystrawen XML KWrite" + +#: view/katestatusbar.cpp:261 +#, kde-format +msgid "Line/Column compact mode" +msgstr "" + +#: view/katestatusbar.cpp:307 +#, fuzzy, kde-format +#| msgid " BLK " +msgid "[BLOCK] %1" +msgstr "BLC" + +#: view/katestatusbar.cpp:323 +#, kde-format +msgid "%1/%2:%3" +msgstr "" + +#: view/katestatusbar.cpp:325 +#, kde-format +msgid "%1:%2" +msgstr "" + +#: view/katestatusbar.cpp:329 +#, fuzzy, kde-format +msgid "Line %1 of %2, Column %3" +msgstr "Llinell: %1 " + +#: view/katestatusbar.cpp:331 +#, fuzzy, kde-format +msgid "Line %1, Column %2" +msgstr "Llinell: %1 " + +#: view/katestatusbar.cpp:405 +#, kde-format +msgid "Soft Tabs: %1" +msgstr "" + +#: view/katestatusbar.cpp:406 +#, kde-format +msgid "Soft Tabs: %1 (%2)" +msgstr "" + +#: view/katestatusbar.cpp:407 +#, kde-format +msgid "Tab Size: %1" +msgstr "" + +#: view/katestatusbar.cpp:408 +#, kde-format +msgid "Indent/Tab: %1/%2" +msgstr "" + +#: view/katestatusbar.cpp:448 view/katestatusbar.cpp:474 +#, fuzzy, kde-format +msgctxt "@item:inmenu" +msgid "Other…" +msgstr "Arall" + +#: view/katestatusbar.cpp:476 +#, fuzzy, kde-format +msgid "Other (%1)" +msgid_plural "Other (%1)" +msgstr[0] "Arall" +msgstr[1] "Arall" + +#: view/katestatusbar.cpp:488 +#, kde-format +msgid "Please specify the wanted tab width:" +msgstr "" + +#: view/katestatusbar.cpp:504 +#, kde-format +msgid "Please specify the wanted indentation width:" +msgstr "" + +#: view/katestatusbar.cpp:567 +#, kde-format +msgctxt "" +"%1 and %3 are the selected words/chars count, %2 and %4 are the total words/" +"chars count." +msgid "Words %1/%2, Chars %3/%4" +msgstr "" + +#: view/katestatusbar.cpp:573 +#, kde-format +msgctxt "%1 and %2 are the total words/chars count." +msgid "Words %1, Chars %2" +msgstr "" + +#: view/katestatusbar.cpp:588 +#, kde-format +msgid "Zoom: %1%" +msgstr "" + +#: view/kateview.cpp:440 +#, kde-format +msgid "Cut the selected text and move it to the clipboard" +msgstr "Torri'r testun dewisiedig a'i symud i'r gludfwrdd" + +#: view/kateview.cpp:445 +#, kde-format +msgid "Paste previously copied or cut clipboard contents" +msgstr "Gludo cynhwysion y gludfwrdd sydd wedi eu gopïo neu dorri ynghynt" + +#: view/kateview.cpp:448 +#, kde-format +msgid "" +"Use this command to copy the currently selected text to the system clipboard." +msgstr "Defnyddiwch y gorchymyn yma i gopïo'r testun dewisiedig i'r gludfwrdd." + +#: view/kateview.cpp:454 +#, kde-format +msgid "Clipboard &History Paste" +msgstr "" + +#: view/kateview.cpp:459 +#, fuzzy, kde-format +#| msgid "Backspace" +msgid "Paste Selection" +msgstr "Yn ôl" + +#: view/kateview.cpp:461 +#, fuzzy, kde-format +#| msgid "Paste previously copied or cut clipboard contents" +msgid "Paste previously mouse selection contents" +msgstr "Gludo cynhwysion y gludfwrdd sydd wedi eu gopïo neu dorri ynghynt" + +#: view/kateview.cpp:465 +#, kde-format +msgid "Paste From File" +msgstr "" + +#: view/kateview.cpp:469 +#, kde-format +msgid "Copy File Location" +msgstr "" + +#: view/kateview.cpp:470 +#, kde-format +msgid "Copy the current file name and line number" +msgstr "" + +#: view/kateview.cpp:473 +#, fuzzy, kde-format +#| msgid "Paste previously copied or cut clipboard contents" +msgid "Swap with Clipboard Contents" +msgstr "Gludo cynhwysion y gludfwrdd sydd wedi eu gopïo neu dorri ynghynt" + +#: view/kateview.cpp:474 +#, fuzzy, kde-format +#| msgid "Cut the selected text and move it to the clipboard" +msgid "Swap the selected text with the clipboard contents" +msgstr "Torri'r testun dewisiedig a'i symud i'r gludfwrdd" + +#: view/kateview.cpp:477 +#, fuzzy, kde-format +#| msgid "Backspace" +msgid "Take Screenshot of Selection" +msgstr "Yn ôl" + +#: view/kateview.cpp:481 +#, kde-format +msgid "Save the current document" +msgstr "Cadw'r ddogfen cyfredol" + +#: view/kateview.cpp:484 +#, kde-format +msgid "Revert the most recent editing actions" +msgstr "Dychwelyd y gweithredoedd golygu diweddaraf" + +#: view/kateview.cpp:487 +#, kde-format +msgid "Revert the most recent undo operation" +msgstr "Dychwelyd y weithred ddadwneud diweddaraf" + +#: view/kateview.cpp:491 +#, fuzzy, kde-format +msgid "&Scripts" +msgstr "Sgriptiau" + +#: view/kateview.cpp:495 +#, fuzzy, kde-format +#| msgid "Word Wrap" +msgid "Apply &Word Wrap" +msgstr "Lapio Llinellau" + +#: view/kateview.cpp:497 +#, kde-format +msgid "" +"Use this to wrap the current line, or to reformat the selected lines as " +"paragraph, to fit the 'Wrap words at' setting in the configuration dialog." +"

This is a static word wrap, meaning the document is changed." +msgstr "" + +#: view/kateview.cpp:503 +#, kde-format +msgid "&Clean Indentation" +msgstr "" + +#: view/kateview.cpp:505 +#, kde-format +msgid "" +"Use this to clean the indentation of a selected block of text (only tabs/" +"only spaces).

You can configure whether tabs should be honored " +"and used or replaced with spaces, in the configuration dialog." +msgstr "" + +#: view/kateview.cpp:510 +#, fuzzy, kde-format +#| msgid "Header Properties" +msgid "Convert Indentation to Spaces" +msgstr "Nodweddion Penawdau" + +#: view/kateview.cpp:517 +#, fuzzy, kde-format +msgid "Convert Indentation to Tabs" +msgstr "Modd Dewis" + +#: view/kateview.cpp:532 +#, fuzzy, kde-format +msgid "&Format Indentation" +msgstr "Modd Dewis" + +#: view/kateview.cpp:533 +#, kde-format +msgid "" +"Use this to auto indent the current line or block of text to its proper " +"indent level." +msgstr "" + +#: view/kateview.cpp:537 +#, fuzzy, kde-format +#| msgid "&Align" +msgctxt "@action" +msgid "&Align On…" +msgstr "&Alinio" + +#: view/kateview.cpp:539 +#, kde-format +msgid "" +"This command aligns lines in the selected block or whole document on the " +"column given by a regular expression that you will be prompted for.

If you give an empty pattern it will align on the first non-blank " +"character by default.
If the pattern has a capture it will indent on " +"the captured match.

Examples:
With '-' it will insert " +"spaces before the first '-' of each lines to align them all on the same " +"column.
With ':\\s+(.)' it will insert spaces before the first non-" +"blank character that occurs after a colon to align them all on the same " +"column." +msgstr "" + +#: view/kateview.cpp:550 +#, kde-format +msgid "C&omment" +msgstr "S&ylwad" + +#: view/kateview.cpp:553 +#, kde-format +msgid "" +"This command comments out the current line or a selected block of text.

The characters for single/multiple line comments are defined within " +"the language's highlighting." +msgstr "" + +#: view/kateview.cpp:558 +#, fuzzy, kde-format +msgid "Go to Previous Editing Location" +msgstr "Mynd i Linell" + +#: view/kateview.cpp:564 +#, fuzzy, kde-format +msgid "Go to Next Editing Location" +msgstr "Mynd i Linell" + +#: view/kateview.cpp:570 +#, kde-format +msgid "Unco&mment" +msgstr "" + +#: view/kateview.cpp:573 +#, kde-format +msgid "" +"This command removes comments from the current line or a selected block of " +"text.

The characters for single/multiple line comments are " +"defined within the language's highlighting." +msgstr "" + +#: view/kateview.cpp:578 +#, fuzzy, kde-format +#| msgid "Comment" +msgid "Toggle Comment" +msgstr "Sylwad" + +#: view/kateview.cpp:582 +#, kde-format +msgid "&Read Only Mode" +msgstr "" + +#: view/kateview.cpp:583 +#, kde-format +msgid "Lock/unlock the document for writing" +msgstr "" + +#: view/kateview.cpp:588 +#, kde-format +msgid "&Force RTL Direction" +msgstr "" + +#: view/kateview.cpp:589 +#, fuzzy, kde-format +#| msgid "Selection Mode" +msgid "Force RTL Text Direction" +msgstr "Modd Dewis" + +#: view/kateview.cpp:599 +#, kde-format +msgid "Uppercase" +msgstr "Priflythrennau" + +#: view/kateview.cpp:602 +#, kde-format +msgid "" +"Convert the selection to uppercase, or the character to the right of the " +"cursor if no text is selected." +msgstr "" + +#: view/kateview.cpp:608 +#, kde-format +msgid "Lowercase" +msgstr "Llythrennau Bach" + +#: view/kateview.cpp:611 +#, kde-format +msgid "" +"Convert the selection to lowercase, or the character to the right of the " +"cursor if no text is selected." +msgstr "" + +#: view/kateview.cpp:617 +#, kde-format +msgid "Capitalize" +msgstr "" + +#: view/kateview.cpp:620 +#, kde-format +msgid "" +"Capitalize the selection, or the word under the cursor if no text is " +"selected." +msgstr "" + +#: view/kateview.cpp:625 +#, kde-format +msgid "Join Lines" +msgstr "" + +#: view/kateview.cpp:630 +#, kde-format +msgid "Invoke Code Completion" +msgstr "" + +#: view/kateview.cpp:631 +#, kde-format +msgid "" +"Manually invoke command completion, usually by using a shortcut bound to " +"this action." +msgstr "" + +#: view/kateview.cpp:636 +#, fuzzy, kde-format +#| msgid "Re&move trailing spaces" +msgid "Remove Trailing Spaces" +msgstr "&Gwaredu gofodnodau ychwanegol" + +#: view/kateview.cpp:654 +#, kde-format +msgid "Print the current document." +msgstr "Argraffu'r ddogfen cyfredol." + +#: view/kateview.cpp:657 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Show print preview of current document" +msgstr "Argraffu'r ddogfen cyfredol." + +#: view/kateview.cpp:661 +#, kde-format +msgid "Reloa&d" +msgstr "Ail-l&wytho" + +#: view/kateview.cpp:663 +#, kde-format +msgid "Reload the current document from disk." +msgstr "" + +#: view/kateview.cpp:667 +#, kde-format +msgid "Save the current document to disk, with a name of your choice." +msgstr "Cadw i ddisg y ddogfen gyfredol gyda enw o'ch dewis chi." + +#: view/kateview.cpp:669 +#, kde-format +msgctxt "@action" +msgid "Save As with Encodin&g…" +msgstr "" + +#: view/kateview.cpp:675 +#, fuzzy, kde-format +msgctxt "@action" +msgid "Save Cop&y As…" +msgstr "Mewnosod Ffeil ..." + +#: view/kateview.cpp:676 +#, fuzzy, kde-format +#| msgid "Save the current document" +msgid "Save a copy of the current document to disk." +msgstr "Cadw'r ddogfen cyfredol" + +#: view/kateview.cpp:680 +#, kde-format +msgid "" +"This command opens a dialog and lets you choose a line that you want the " +"cursor to move to." +msgstr "" +"Mae'r gorchymyn yma'n agor blwch ymgom i ddewis pa linell i symud y cyrchydd " +"iddi." + +#: view/kateview.cpp:684 +#, fuzzy, kde-format +msgid "Go to Previous Modified Line" +msgstr "Mynd i Linell" + +#: view/kateview.cpp:685 +#, fuzzy, kde-format +msgid "Move upwards to the previous modified line." +msgstr "Mynd i Linell" + +#: view/kateview.cpp:690 +#, fuzzy, kde-format +msgid "Go to Next Modified Line" +msgstr "Mynd i Linell" + +#: view/kateview.cpp:691 +#, kde-format +msgid "Move downwards to the next modified line." +msgstr "" + +#: view/kateview.cpp:695 +#, fuzzy, kde-format +msgctxt "@action" +msgid "&Configure Editor…" +msgstr "Ffurfweddu %1" + +#: view/kateview.cpp:697 +#, kde-format +msgid "Configure various aspects of this editor." +msgstr "" + +#: view/kateview.cpp:700 +#, fuzzy, kde-format +#| msgid "&Bold" +msgid "&Mode" +msgstr "&Bras" + +#: view/kateview.cpp:706 +#, kde-format +msgid "&Highlighting" +msgstr "&Amlygu" + +#: view/kateview.cpp:708 +#, kde-format +msgid "Here you can choose how the current document should be highlighted." +msgstr "Dyma lle gallwch ddewis sut dylai'r ddogfen gael ei amlygu." + +#: view/kateview.cpp:711 +#, fuzzy, kde-format +#| msgid "Colors" +msgid "&Editor Color Theme" +msgstr "Lliwiau" + +#: view/kateview.cpp:717 +#, fuzzy, kde-format +msgid "&Indentation" +msgstr "Modd Dewis" + +#: view/kateview.cpp:726 +#, kde-format +msgid "Select the entire text of the current document." +msgstr "Dewis holl destun y ddogfen gyfredol." + +#: view/kateview.cpp:729 +#, kde-format +msgid "" +"If you have selected something within the current document, this will no " +"longer be selected." +msgstr "" + +#: view/kateview.cpp:733 +#, kde-format +msgid "Enlarge Font" +msgstr "Cynyddu Maint yr Wynebfath" + +#: view/kateview.cpp:735 +#, kde-format +msgid "This increases the display font size." +msgstr "" + +#: view/kateview.cpp:742 +#, kde-format +msgid "Shrink Font" +msgstr "Lleihau Wynebfath" + +#: view/kateview.cpp:744 +#, kde-format +msgid "This decreases the display font size." +msgstr "" + +#: view/kateview.cpp:751 +#, kde-format +msgid "Reset Font Size" +msgstr "" + +#: view/kateview.cpp:753 +#, kde-format +msgid "This resets the display font size." +msgstr "" + +#: view/kateview.cpp:756 +#, kde-format +msgid "Bl&ock Selection Mode" +msgstr "Modd Dewis &Blociau" + +#: view/kateview.cpp:759 +#, kde-format +msgid "" +"This command allows switching between the normal (line based) selection mode " +"and the block selection mode." +msgstr "" + +#: view/kateview.cpp:763 +#, fuzzy, kde-format +#| msgid "Print &line numbers" +msgid "Switch to Next Input Mode" +msgstr "Argraffu rhifau &llinell" + +#: view/kateview.cpp:765 +#, kde-format +msgid "Switch to the next input mode." +msgstr "" + +#: view/kateview.cpp:768 +#, kde-format +msgid "Overwr&ite Mode" +msgstr "Modd T&rosysgrifo" + +#: view/kateview.cpp:771 +#, kde-format +msgid "" +"Choose whether you want the text you type to be inserted or to overwrite " +"existing text." +msgstr "" + +#: view/kateview.cpp:775 +#, fuzzy, kde-format +#| msgid "&Replace" +msgid "Show Whitespace" +msgstr "A&mnewid" + +#: view/kateview.cpp:778 +#, kde-format +msgid "" +"If this option is checked, whitespaces in this document will be visible.

This is only a view option, meaning the document will not be changed." +msgstr "" + +#: view/kateview.cpp:782 +#, kde-format +msgid "&Dynamic Word Wrap" +msgstr "" + +#: view/kateview.cpp:786 +#, kde-format +msgid "" +"If this option is checked, the text lines will be wrapped at the view border " +"on the screen.

This is only a view option, meaning the document " +"will not be changed." +msgstr "" + +#: view/kateview.cpp:790 +#, kde-format +msgid "Dynamic Word Wrap Indicators" +msgstr "" + +#: view/kateview.cpp:792 +#, kde-format +msgid "Choose when the Dynamic Word Wrap Indicators should be displayed" +msgstr "" + +#: view/kateview.cpp:794 +#, kde-format +msgid "&Off" +msgstr "&I ffwrdd" + +#: view/kateview.cpp:794 +#, fuzzy, kde-format +msgid "Follow &Line Numbers" +msgstr "Argraffu rhifau &llinell" + +#: view/kateview.cpp:794 +#, kde-format +msgid "&Always On" +msgstr "" + +#: view/kateview.cpp:798 +#, fuzzy, kde-format +#| msgid "Word Wrap" +msgid "Static Word Wrap" +msgstr "Lapio Llinellau" + +#: view/kateview.cpp:800 +#, kde-format +msgid "" +"If this option is checked, the text lines will be wrapped at the column " +"defined in the editing properties." +msgstr "" + +#: view/kateview.cpp:807 +#, kde-format +msgid "Show Static &Word Wrap Marker" +msgstr "" + +#: view/kateview.cpp:810 +#, kde-format +msgid "" +"Show/hide the Word Wrap Marker, a vertical line drawn at the word wrap " +"column as defined in the editing properties" +msgstr "" + +#: view/kateview.cpp:814 +#, kde-format +msgid "Show Folding &Markers" +msgstr "" + +#: view/kateview.cpp:816 +#, kde-format +msgid "" +"You can choose if the codefolding marks should be shown, if codefolding is " +"possible." +msgstr "" + +#: view/kateview.cpp:819 +#, kde-format +msgid "Show &Icon Border" +msgstr "" + +#: view/kateview.cpp:821 +#, kde-format +msgid "" +"Show/hide the icon border.

The icon border shows bookmark " +"symbols, for instance." +msgstr "" + +#: view/kateview.cpp:824 +#, kde-format +msgid "Show &Line Numbers" +msgstr "" + +#: view/kateview.cpp:826 +#, kde-format +msgid "Show/hide the line numbers on the left hand side of the view." +msgstr "" + +#: view/kateview.cpp:829 +#, kde-format +msgid "Show Scroll&bar Marks" +msgstr "" + +#: view/kateview.cpp:831 +#, kde-format +msgid "" +"Show/hide the marks on the vertical scrollbar.

The marks show " +"bookmarks, for instance." +msgstr "" + +#: view/kateview.cpp:834 +#, kde-format +msgid "Show Scrollbar Mini-Map" +msgstr "" + +#: view/kateview.cpp:836 +#, kde-format +msgid "" +"Show/hide the mini-map on the vertical scrollbar.

The mini-map " +"shows an overview of the whole document." +msgstr "" + +#. i18n("Show the whole document in the Mini-Map"), this); +#. ac->addAction(QLatin1String("view_scrollbar_minimap_all"), a); +#. a->setWhatsThis(i18n("Display the whole document in the mini-map.

With this option set the whole document will be visible in the +#. mini-map.")); connect(a, SIGNAL(triggered(bool)), SlOT(toggleScrollBarMiniMapAll())); connect(m_toggleScrollBarMiniMap, SIGNAL(triggered(bool)), +#. m_toggleScrollBarMiniMapAll, SLOT(setEnabled(bool))); +#: view/kateview.cpp:848 +#, kde-format +msgid "Show Non-Printable Spaces" +msgstr "" + +#: view/kateview.cpp:850 +#, kde-format +msgid "Show/hide bounding box around non-printable spaces" +msgstr "" + +#: view/kateview.cpp:854 +#, kde-format +msgid "Switch to Command Line" +msgstr "" + +#: view/kateview.cpp:856 +#, kde-format +msgid "Show/hide the command line on the bottom of the view." +msgstr "" + +#: view/kateview.cpp:859 +#, kde-format +msgid "Input Modes" +msgstr "" + +#: view/kateview.cpp:868 +#, kde-format +msgid "Activate/deactivate %1" +msgstr "" + +#: view/kateview.cpp:878 +#, kde-format +msgid "&End of Line" +msgstr "&Diwedd y Llinell" + +#: view/kateview.cpp:880 +#, kde-format +msgid "Choose which line endings should be used, when you save the document" +msgstr "" + +#: view/kateview.cpp:881 +#, fuzzy, kde-format +#| msgid "UNIX" +msgctxt "@item:inmenu End of Line" +msgid "&UNIX" +msgstr "UNIX" + +#: view/kateview.cpp:882 +#, kde-format +msgctxt "@item:inmenu End of Line" +msgid "&Windows/DOS" +msgstr "" + +#: view/kateview.cpp:883 +#, fuzzy, kde-format +#| msgid "Macintosh" +msgctxt "@item:inmenu End of Line" +msgid "&Macintosh" +msgstr "Macintosh" + +#: view/kateview.cpp:888 +#, kde-format +msgid "Add &Byte Order Mark (BOM)" +msgstr "" + +#: view/kateview.cpp:891 +#, kde-format +msgid "" +"Enable/disable adding of byte order marks for UTF-8/UTF-16 encoded files " +"while saving" +msgstr "" + +#: view/kateview.cpp:895 +#, kde-format +msgid "E&ncoding" +msgstr "A&mgodiad" + +#: view/kateview.cpp:899 +#, kde-format +msgid "Look up the first occurrence of a piece of text or regular expression." +msgstr "" + +#: view/kateview.cpp:903 +#, fuzzy, kde-format +#| msgid "Selected" +msgid "Find Selected" +msgstr "Dewisiedig" + +#: view/kateview.cpp:905 +#, kde-format +msgid "Finds next occurrence of selected text." +msgstr "" + +#: view/kateview.cpp:909 +#, fuzzy, kde-format +#| msgid "Selected" +msgid "Find Selected Backwards" +msgstr "Dewisiedig" + +#: view/kateview.cpp:911 +#, kde-format +msgid "Finds previous occurrence of selected text." +msgstr "" + +#: view/kateview.cpp:915 +#, kde-format +msgid "Find and Select Next Occurrence" +msgstr "" + +#: view/kateview.cpp:917 +#, kde-format +msgid "Finds next occurrence of the word under cursor and add it to selection." +msgstr "" + +#: view/kateview.cpp:921 +#, kde-format +msgid "Mark Currently Selected Occurrence as Skipped" +msgstr "" + +#: view/kateview.cpp:923 +#, kde-format +msgid "Marks the currently selected word as skipped." +msgstr "" + +#: view/kateview.cpp:927 +#, kde-format +msgid "Find and Select All Occurrences" +msgstr "" + +#: view/kateview.cpp:929 +#, kde-format +msgid "Finds all occurrences of the word under cursor and selects them." +msgstr "" + +#: view/kateview.cpp:933 +#, kde-format +msgid "Look up the next occurrence of the search phrase." +msgstr "" + +#: view/kateview.cpp:937 +#, kde-format +msgid "Look up the previous occurrence of the search phrase." +msgstr "" + +#: view/kateview.cpp:941 +#, kde-format +msgid "" +"Look up a piece of text or regular expression and replace the result with " +"some given text." +msgstr "" + +#: view/kateview.cpp:944 +#, kde-format +msgid "Add Cursors to Line Ends" +msgstr "" + +#: view/kateview.cpp:946 +#, kde-format +msgid "Creates a cursor at the end of every line in selection." +msgstr "" + +#: view/kateview.cpp:950 +#, kde-format +msgid "Add Caret below Cursor" +msgstr "" + +#: view/kateview.cpp:952 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "Adds a caret in the line below the current caret." +msgstr "Dewis holl destun y ddogfen gyfredol." + +#: view/kateview.cpp:956 +#, kde-format +msgid "Add Caret above Cursor" +msgstr "" + +#: view/kateview.cpp:958 +#, kde-format +msgid "Adds a caret in the line above the current caret." +msgstr "" + +#: view/kateview.cpp:962 +#, kde-format +msgid "Toggle Camel Case Cursor Movement" +msgstr "" + +#: view/kateview.cpp:963 +#, kde-format +msgid "Toggle between normal word movement and camel case cursor movement." +msgstr "" + +#: view/kateview.cpp:967 +#, fuzzy, kde-format +msgid "Remove Cursors from Empty Lines" +msgstr "Mynd i Linell" + +#: view/kateview.cpp:968 +#, fuzzy, kde-format +msgid "Remove cursors from empty lines" +msgstr "Mynd i Linell" + +#: view/kateview.cpp:972 +#, kde-format +msgid "Automatic Spell Checking" +msgstr "" + +#: view/kateview.cpp:973 +#, kde-format +msgid "Enable/disable automatic spell checking" +msgstr "" + +#: view/kateview.cpp:979 +#, fuzzy, kde-format +msgctxt "@action" +msgid "Change Dictionary…" +msgstr "Dewi&s Ffont..." + +#: view/kateview.cpp:980 +#, kde-format +msgid "Change the dictionary that is used for spell checking." +msgstr "" + +#: view/kateview.cpp:984 +#, kde-format +msgid "Clear Dictionary Ranges" +msgstr "" + +#: view/kateview.cpp:986 +#, kde-format +msgid "" +"Remove all the separate dictionary ranges that were set for spell checking." +msgstr "" + +#: view/kateview.cpp:992 +#, kde-format +msgid "Copy as &HTML" +msgstr "" + +#: view/kateview.cpp:993 +#, kde-format +msgid "" +"Copy the selection as HTML, formatted using the current syntax highlighting " +"and color scheme settings." +msgstr "" + +#: view/kateview.cpp:997 +#, fuzzy, kde-format +msgctxt "@action" +msgid "E&xport as HTML…" +msgstr "Allforio Ffeil Fel" + +#: view/kateview.cpp:999 +#, fuzzy, kde-format +msgid "" +"This command allows you to export the current document with all highlighting " +"information into a HTML document." +msgstr "" +"Mae'r gorchymyn yma yn gadael i chi allforio'r ddogfen gyfredol efo pob " +"gwybodaeth amlygu i mewn i ddogfen nodau ychwanegiad, e.e. HTML." + +#: view/kateview.cpp:1038 +#, kde-format +msgid "Move Word Left" +msgstr "" + +#: view/kateview.cpp:1044 +#, kde-format +msgid "Select Character Left" +msgstr "" + +#: view/kateview.cpp:1050 +#, kde-format +msgid "Select Word Left" +msgstr "" + +#: view/kateview.cpp:1060 +#, kde-format +msgid "Move Word Right" +msgstr "" + +#: view/kateview.cpp:1066 +#, kde-format +msgid "Select Character Right" +msgstr "" + +#: view/kateview.cpp:1072 +#, kde-format +msgid "Select Word Right" +msgstr "" + +#: view/kateview.cpp:1082 +#, fuzzy, kde-format +#| msgid "Backspace" +msgid "Start the Marked Selection" +msgstr "Yn ôl" + +#: view/kateview.cpp:1083 +#, kde-format +msgid "" +"Emulate the Emacs-like selection mode, where the beginning is marked and " +"then the selection is continuously updated." +msgstr "" + +#: view/kateview.cpp:1088 +#, kde-format +msgid "Move to Beginning of Line" +msgstr "" + +#: view/kateview.cpp:1094 +#, kde-format +msgid "Move to Beginning of Document" +msgstr "" + +#: view/kateview.cpp:1100 +#, kde-format +msgid "Select to Beginning of Line" +msgstr "" + +#: view/kateview.cpp:1110 +#, kde-format +msgid "Select to Beginning of Document" +msgstr "" + +#: view/kateview.cpp:1120 +#, kde-format +msgid "Move to End of Line" +msgstr "" + +#: view/kateview.cpp:1126 +#, kde-format +msgid "Move to End of Document" +msgstr "" + +#: view/kateview.cpp:1132 +#, kde-format +msgid "Select to End of Line" +msgstr "" + +#: view/kateview.cpp:1142 +#, kde-format +msgid "Select to End of Document" +msgstr "" + +#: view/kateview.cpp:1152 +#, kde-format +msgid "Select to Previous Line" +msgstr "" + +#: view/kateview.cpp:1158 +#, kde-format +msgid "Scroll Line Up" +msgstr "" + +#: view/kateview.cpp:1167 +#, fuzzy, kde-format +msgid "Move to Next Line" +msgstr "Mynd i Linell" + +#: view/kateview.cpp:1173 +#, fuzzy, kde-format +msgid "Move to Previous Line" +msgstr "Mynd i Linell" + +#: view/kateview.cpp:1179 +#, kde-format +msgid "Move Cursor Right" +msgstr "" + +#: view/kateview.cpp:1185 +#, kde-format +msgid "Move Cursor Left" +msgstr "" + +#: view/kateview.cpp:1191 +#, kde-format +msgid "Select to Next Line" +msgstr "" + +#: view/kateview.cpp:1197 +#, kde-format +msgid "Scroll Line Down" +msgstr "" + +#: view/kateview.cpp:1206 +#, kde-format +msgid "Scroll Page Up" +msgstr "" + +#: view/kateview.cpp:1212 +#, kde-format +msgid "Select Page Up" +msgstr "" + +#: view/kateview.cpp:1218 +#, kde-format +msgid "Move to Top of View" +msgstr "" + +#: view/kateview.cpp:1224 +#, kde-format +msgid "Select to Top of View" +msgstr "" + +#: view/kateview.cpp:1230 +#, kde-format +msgid "Scroll Page Down" +msgstr "" + +#: view/kateview.cpp:1236 +#, kde-format +msgid "Select Page Down" +msgstr "" + +#: view/kateview.cpp:1242 +#, kde-format +msgid "Move to Bottom of View" +msgstr "" + +#: view/kateview.cpp:1248 +#, kde-format +msgid "Select to Bottom of View" +msgstr "" + +#: view/kateview.cpp:1254 +#, fuzzy, kde-format +#| msgid "Print the current document." +msgid "Go to Matching Bracket" +msgstr "Argraffu'r ddogfen cyfredol." + +#: view/kateview.cpp:1260 +#, kde-format +msgid "Select to Matching Bracket" +msgstr "" + +#: view/kateview.cpp:1267 +#, kde-format +msgid "Move Sub-Word Right" +msgstr "" + +#: view/kateview.cpp:1274 +#, kde-format +msgid "Select Sub-Word Right" +msgstr "" + +#: view/kateview.cpp:1281 +#, fuzzy, kde-format +msgid "Move Sub-Word Left" +msgstr "Mynd i Linell" + +#: view/kateview.cpp:1288 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgid "Select Sub-Word Left" +msgstr "Testun dewisedig:" + +#: view/kateview.cpp:1298 +#, kde-format +msgid "Transpose Characters" +msgstr "" + +#: view/kateview.cpp:1303 +#, fuzzy, kde-format +#| msgid "&Ignore" +msgid "Transpose Words" +msgstr "&Anwybyddu" + +#: view/kateview.cpp:1308 +#, kde-format +msgid "Delete Line" +msgstr "" + +#: view/kateview.cpp:1314 +#, kde-format +msgid "Delete Word Left" +msgstr "" + +#: view/kateview.cpp:1320 +#, kde-format +msgid "Delete Word Right" +msgstr "" + +#: view/kateview.cpp:1326 +#, kde-format +msgid "Delete Next Character" +msgstr "" + +#: view/kateview.cpp:1332 +#, kde-format +msgid "Backspace" +msgstr "Yn ôl" + +#: view/kateview.cpp:1340 +#, fuzzy, kde-format +msgid "Insert Tab Character" +msgstr "&Mewnoliad" + +#: view/kateview.cpp:1345 +#, kde-format +msgid "Insert Smart Newline" +msgstr "" + +#: view/kateview.cpp:1346 +#, kde-format +msgid "" +"Insert newline including leading characters of the current line which are " +"not letters or numbers." +msgstr "" + +#: view/kateview.cpp:1354 +#, kde-format +msgid "Insert a Non-Indented Newline" +msgstr "" + +#: view/kateview.cpp:1355 +#, kde-format +msgid "" +"Insert a new line without indentation, regardless of indentation settings." +msgstr "" + +#: view/kateview.cpp:1363 +#, kde-format +msgid "Insert a Newline Above Current Line" +msgstr "" + +#: view/kateview.cpp:1364 +#, kde-format +msgid "" +"Insert a new line above current line without modifying the current line." +msgstr "" + +#: view/kateview.cpp:1372 +#, kde-format +msgid "Insert a Newline Below Current Line" +msgstr "" + +#: view/kateview.cpp:1373 +#, kde-format +msgid "" +"Insert a new line below current line without modifying the current line." +msgstr "" + +#: view/kateview.cpp:1382 +#, kde-format +msgid "&Indent" +msgstr "&Mewnoliad" + +#: view/kateview.cpp:1384 +#, kde-format +msgid "" +"Use this to indent a selected block of text.

You can configure " +"whether tabs should be honored and used or replaced with spaces, in the " +"configuration dialog." +msgstr "" + +#: view/kateview.cpp:1391 +#, kde-format +msgid "&Unindent" +msgstr "" + +#: view/kateview.cpp:1392 +#, kde-format +msgid "Use this to unindent a selected block of text." +msgstr "" + +#: view/kateview.cpp:1398 +#, kde-format +msgid "Delete Sub-Word Left" +msgstr "" + +#: view/kateview.cpp:1405 +#, kde-format +msgid "Delete Sub-Word Right" +msgstr "" + +#: view/kateview.cpp:1426 +#, kde-format +msgid "Fold Toplevel Nodes" +msgstr "" + +#: view/kateview.cpp:1430 +#, kde-format +msgid "Unfold Toplevel Nodes" +msgstr "" + +#: view/kateview.cpp:1434 +#, fuzzy, kde-format +#| msgid "Comment" +msgid "Toggle Current Node" +msgstr "Sylwad" + +#: view/kateview.cpp:1438 +#, fuzzy, kde-format +#| msgid "Comment" +msgid "Toggle Contained Nodes" +msgstr "Sylwad" + +#: view/kateview.cpp:1447 +#, fuzzy, kde-format +#| msgid "Select the entire text of the current document." +msgid "Say current selection or document" +msgstr "Dewis holl destun y ddogfen gyfredol." + +#: view/kateview.cpp:1457 +#, fuzzy, kde-format +#| msgid "Save the current document" +msgid "Stop current output" +msgstr "Cadw'r ddogfen cyfredol" + +#: view/kateview.cpp:1463 +#, fuzzy, kde-format +#| msgid "Save the current document" +msgid "Pause current output" +msgstr "Cadw'r ddogfen cyfredol" + +#: view/kateview.cpp:1469 +#, fuzzy, kde-format +#| msgid "Save the current document" +msgid "Resume current output" +msgstr "Cadw'r ddogfen cyfredol" + +#: view/kateview.cpp:1640 +#, kde-format +msgid "(R/O) %1" +msgstr "" + +#: view/kateview.cpp:1828 +#, kde-format +msgid "Camel case movement disabled" +msgstr "" + +#: view/kateview.cpp:1830 +#, kde-format +msgid "Camel case movement enabled" +msgstr "" + +#: view/kateview.cpp:2349 +#, fuzzy, kde-format +#| msgid "Search" +msgid "Search wrapped" +msgstr "Chwilio" + +#: view/kateview.cpp:3043 +#, kde-format +msgid "Open File" +msgstr "" + +#: view/kateview.cpp:3984 +#, fuzzy, kde-format +#| msgid "&Align" +msgid "Align On" +msgstr "&Alinio" + +#: view/kateview.cpp:3984 +#, kde-format +msgid "Alignment pattern:" +msgstr "" + +#: view/kateview.cpp:5068 +#, fuzzy, kde-format +msgid "Export File as HTML" +msgstr "Allforio Ffeil Fel" + +#: view/kateviewhelpers.cpp:302 view/kateviewhelpers.cpp:351 +#: view/kateviewhelpers.cpp:1012 +#, kde-format +msgctxt "from line - to line" +msgid "

%1

%2
" +msgstr "" + +#: view/kateviewhelpers.cpp:1212 +#, kde-format +msgid "Available Commands" +msgstr "" + +#: view/kateviewhelpers.cpp:1213 +#, kde-format +msgid "" +"

For help on individual commands, do 'help <command>'" +msgstr "" + +#: view/kateviewhelpers.cpp:1220 +#, kde-format +msgid "No help for '%1'" +msgstr "" + +#: view/kateviewhelpers.cpp:1223 +#, kde-format +msgid "No such command %1" +msgstr "" + +#: view/kateviewhelpers.cpp:1229 +#, kde-format +msgid "" +"

This is the Katepart command line.
Syntax: command " +"[ arguments ]
For a list of available commands, enter " +"help list
For help for individual commands, enter " +"help <command>

" +msgstr "" + +#: view/kateviewhelpers.cpp:1317 vimode/emulatedcommandbar/commandmode.cpp:211 +#, kde-format +msgid "No such command: \"%1\"" +msgstr "" + +#: view/kateviewhelpers.cpp:1320 vimode/emulatedcommandbar/commandmode.cpp:193 +#, kde-format +msgid "Error: No range allowed for command \"%1\"." +msgstr "" + +#: view/kateviewhelpers.cpp:1330 vimode/emulatedcommandbar/commandmode.cpp:197 +#, kde-format +msgid "Success: " +msgstr "Llwyddiant : " + +#: view/kateviewhelpers.cpp:1344 vimode/emulatedcommandbar/commandmode.cpp:206 +#, kde-format +msgid "Command \"%1\" failed." +msgstr "" + +#: view/kateviewhelpers.cpp:2632 view/kateviewhelpers.cpp:2633 +#, kde-format +msgid "Mark Type %1" +msgstr "" + +#: view/kateviewhelpers.cpp:2656 +#, kde-format +msgid "Set Default Mark Type" +msgstr "" + +#: view/kateviewhelpers.cpp:2801 +#, kde-format +msgid "Disable Annotation Bar" +msgstr "" + +#: view/screenshotdialog.cpp:175 +#, kde-format +msgid "Save" +msgstr "" + +#: view/screenshotdialog.cpp:176 +#, fuzzy, kde-format +msgid "Copy" +msgstr "Mewnosod Ffeil ..." + +#: view/screenshotdialog.cpp:177 +#, fuzzy, kde-format +#| msgid "&Background Color..." +msgctxt "@action:button" +msgid "Background Color…" +msgstr "&Lliw Cefndir ..." + +#: view/screenshotdialog.cpp:179 +#, fuzzy, kde-format +#| msgid "Selection Mode" +msgid "Show Extra Decorations" +msgstr "Modd Dewis" + +#: view/screenshotdialog.cpp:180 +#, fuzzy, kde-format +msgid "Show Window Decorations" +msgstr "Modd Dewis" + +#: view/screenshotdialog.cpp:185 +#, fuzzy, kde-format +#| msgid "Backspace" +msgctxt "@title:window" +msgid "Take Screenshot of Selection" +msgstr "Yn ôl" + +#: view/screenshotdialog.cpp:257 +#, fuzzy, kde-format +msgid "Don't Show Line Numbers" +msgstr "Argraffu rhifau &llinell" + +#: view/screenshotdialog.cpp:258 +#, fuzzy, kde-format +#| msgid "Print &line numbers" +msgid "Show Line Numbers From 1" +msgstr "Argraffu rhifau &llinell" + +#: view/screenshotdialog.cpp:259 +#, fuzzy, kde-format +#| msgid "Print &line numbers" +msgid "Show Actual Line Numbers" +msgstr "Argraffu rhifau &llinell" + +#: view/screenshotdialog.cpp:422 +#, kde-format +msgctxt "@title:window" +msgid "Screenshot saving failed" +msgstr "" + +#: view/screenshotdialog.cpp:422 +#, kde-format +msgid "Screenshot saving failed: %1" +msgstr "" + +#: vimode/appcommands.cpp:67 +#, kde-format +msgid "All documents written to disk" +msgstr "" + +#: vimode/appcommands.cpp:70 +#, kde-format +msgid "Document written to disk" +msgstr "" + +#: vimode/appcommands.cpp:202 +#, kde-format +msgid "" +"

w/wa — write document(s) to disk

Usage: w[a]

Writes the current document(s) to disk. It can be called in " +"two ways:
w — writes the current document to disk
" +"wa — writes all documents to disk.

If no file name is " +"associated with the document, a file dialog will be shown.

" +msgstr "" + +#: vimode/appcommands.cpp:213 +#, kde-format +msgid "" +"

q/qa/wq/wqa — [write and] quit

Usage: [w]q[a]

Quits the application. If w is prepended, it also " +"writes the document(s) to disk. This command can be called in several ways:" +"
q — closes the current view.
qa — " +"closes all views, effectively quitting the application.
wq " +"— writes the current document to disk and closes its view.
" +"wqa — writes all documents to disk and quits.

In all " +"cases, if the view being closed is the last view, the application quits. If " +"no file name is associated with the document and it should be written to " +"disk, a file dialog will be shown.

" +msgstr "" + +#: vimode/appcommands.cpp:228 +#, kde-format +msgid "" +"

x/xa — write and quit

Usage: x[a]

Saves document(s) and quits (exits). This command can be called " +"in two ways:
x — closes the current view.
xa — closes all views, effectively quitting the application.

In " +"all cases, if the view being closed is the last view, the application quits. " +"If no file name is associated with the document and it should be written to " +"disk, a file dialog will be shown.

Unlike the 'w' commands, this " +"command only writes the document if it is modified.

" +msgstr "" + +#: vimode/appcommands.cpp:242 +#, kde-format +msgid "" +"

sp,split— Split horizontally the current view into two

Usage: sp[lit]

The result is two views on the " +"same document.

" +msgstr "" + +#: vimode/appcommands.cpp:248 +#, kde-format +msgid "" +"

vs,vsplit— Split vertically the current view into two

Usage: vs[plit]

The result is two views on the " +"same document.

" +msgstr "" + +#: vimode/appcommands.cpp:254 +#, kde-format +msgid "" +"

clo[se]— Close the current view

Usage: clo[se]

After executing it, the current view will be closed.

" +msgstr "" + +#: vimode/appcommands.cpp:260 +#, kde-format +msgid "" +"

[v]new — split view and create new document

Usage: " +"[v]new

Splits the current view and opens a new " +"document in the new view. This command can be called in two ways:
" +"new — splits the view horizontally and opens a new document." +"
vnew — splits the view vertically and opens a new " +"document.

" +msgstr "" + +#: vimode/appcommands.cpp:270 +#, kde-format +msgid "" +"

e[dit] — reload current document

Usage: e[dit]

Starts editing the current document again. This is " +"useful to re-edit the current file, when it was modified on disk.

" +msgstr "" + +#: vimode/appcommands.cpp:518 +#, kde-format +msgid "" +"

b,buffer — Edit document N from the document list

Usage: b[uffer] [N]

" +msgstr "" + +#: vimode/appcommands.cpp:523 +#, kde-format +msgid "" +"

bp,bprev — previous buffer

Usage: bp[revious] " +"[N]

Goes to [N]th previous document (\"buffer" +"\") in document list.

[N] defaults to one.

Wraps " +"around the start of the document list.

" +msgstr "" + +#: vimode/appcommands.cpp:531 +#, kde-format +msgid "" +"

bn,bnext — switch to next document

Usage: " +"bn[ext] [N]

Goes to [N]th next document " +"(\"buffer\") in document list.[N] defaults to one.

Wraps around the end of the document list.

" +msgstr "" + +#: vimode/appcommands.cpp:539 +#, kde-format +msgid "" +"

bf,bfirst — first document

Usage: bf[irst]

Goes to the first document (\"buffer\") in document " +"list.

" +msgstr "" + +#: vimode/appcommands.cpp:545 +#, kde-format +msgid "" +"

bl,blast — last document

Usage: bl[ast]

Goes to the last document (\"buffer\") in document " +"list.

" +msgstr "" + +#: vimode/appcommands.cpp:551 +#, kde-format +msgid "

ls

list current buffers

" +msgstr "" + +#: vimode/cmds.cpp:52 +#, kde-format +msgid "Missing argument. Usage: %1 " +msgstr "" + +#: vimode/cmds.cpp:68 +#, kde-format +msgid "No mapping found for \"%1\"" +msgstr "" + +#: vimode/cmds.cpp:71 +#, kde-format +msgid "\"%1\" is mapped to \"%2\"" +msgstr "" + +#: vimode/cmds.cpp:77 +#, kde-format +msgid "Missing argument(s). Usage: %1 []" +msgstr "" + +#: vimode/cmds.cpp:145 vimode/cmds.cpp:161 +#, kde-format +msgid "Wrong arguments" +msgstr "" + +#: vimode/config/configtab.cpp:205 +#, fuzzy, kde-format +#| msgid "Unable to open %1" +msgid "Unable to open the config file for reading." +msgstr "Methu agor %1" + +#: vimode/config/configtab.cpp:205 +#, fuzzy, kde-format +#| msgid "Unable to open %1" +msgid "Unable to open file" +msgstr "Methu agor %1" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkViCommandsOverride) +#: vimode/config/configwidget.ui:35 +#, kde-format +msgid "" +"When selected, vi commands will override Kate's built-in commands. For " +"example: Ctrl+R will redo, and override the standard action (showing the " +"search and replace dialog)." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkViCommandsOverride) +#: vimode/config/configwidget.ui:38 +#, kde-format +msgid "Let Vi commands override Kate shortcuts" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkViRelLineNumbers) +#: vimode/config/configwidget.ui:45 +#, kde-format +msgid "" +"Show the line number relative to the line with the cursor in front of each " +"line." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkViRelLineNumbers) +#: vimode/config/configwidget.ui:48 +#, fuzzy, kde-format +#| msgid "Print &line numbers" +msgid "Display relative line numbers" +msgstr "Argraffu rhifau &llinell" + +#. i18n: ectx: property (whatsThis), widget (QGroupBox, groupBox) +#: vimode/config/configwidget.ui:63 +#, kde-format +msgid "" +"Key mapping is used to change the meaning of typed keys. This allows you to " +"move commands to other keys or make special keypresses for doing a series of " +"commands.\n" +"\n" +"Example:\n" +"\"\" → \"I-- \"\n" +"\n" +"This will prepend \"-- \" to a line when pressing F2." +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, groupBox) +#: vimode/config/configwidget.ui:66 +#, kde-format +msgid "Key Mapping" +msgstr "" + +#. i18n: ectx: attribute (title), widget (QWidget, normalTab) +#: vimode/config/configwidget.ui:76 +#, fuzzy, kde-format +#| msgid "Normal Text" +msgid "Normal mode" +msgstr "Testun Arferol" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:95 vimode/config/configwidget.ui:133 +#: vimode/config/configwidget.ui:171 +#, fuzzy, kde-format +#| msgid "Comment" +msgid "Command" +msgstr "Sylwad" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:100 vimode/config/configwidget.ui:138 +#: vimode/config/configwidget.ui:176 +#, fuzzy, kde-format +msgid "Replacement" +msgstr "A&mnewid" + +#. i18n: ectx: property (text), widget (QTableWidget, tblNormalModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblInsertModeMappings) +#. i18n: ectx: property (text), widget (QTableWidget, tblVisualModeMappings) +#: vimode/config/configwidget.ui:105 vimode/config/configwidget.ui:143 +#: vimode/config/configwidget.ui:181 +#, kde-format +msgid "Recursive?" +msgstr "" + +#. i18n: ectx: attribute (title), widget (QWidget, insertTab) +#: vimode/config/configwidget.ui:114 +#, fuzzy, kde-format +msgid "Insert mode" +msgstr "&Mewnoliad" + +#. i18n: ectx: attribute (title), widget (QWidget, visualTab) +#: vimode/config/configwidget.ui:152 +#, fuzzy, kde-format +#| msgid "Normal Text" +msgid "Visual mode" +msgstr "Testun Arferol" + +#. i18n: ectx: property (text), widget (QPushButton, btnRemoveSelectedRows) +#: vimode/config/configwidget.ui:195 +#, fuzzy, kde-format +#| msgid "Selected" +msgid "Remove selected" +msgstr "Dewisiedig" + +#. i18n: ectx: property (text), widget (QPushButton, btnAddNewRow) +#: vimode/config/configwidget.ui:202 +#, kde-format +msgid "Add new mapping" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QPushButton, btnImportNormal) +#: vimode/config/configwidget.ui:209 +#, kde-format +msgid "" +"Read a vimrc file and attempt to import mappings specified with the " +"\"[n]noremap\" command." +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, btnImportNormal) +#: vimode/config/configwidget.ui:212 +#, kde-format +msgid "Import from vimrc file" +msgstr "" + +#: vimode/marks.cpp:117 +#, fuzzy, kde-format +msgid "Mark set: %1" +msgstr "Llinell: %1 " + +#: vimode/marks.cpp:163 +#, kde-format +msgid "There are no more chars for the next bookmark." +msgstr "" + +#: vimode/modes/insertvimode.cpp:261 vimode/modes/modebase.cpp:794 +#: vimode/modes/normalvimode.cpp:3567 +#, kde-format +msgid "Nothing in register %1" +msgstr "" + +#: vimode/modes/normalvimode.cpp:1691 +#, kde-format +msgid "'%1' %2, Hex %3, Octal %4" +msgstr "" + +#: vimode/modes/normalvimode.cpp:2534 +#, fuzzy, kde-format +msgid "Mark not set: %1" +msgstr "Llinell: %1 " + +#~ msgid "Set &Bookmark" +#~ msgstr "Gosod &Tudnod" + +#, fuzzy +#~ msgid "The file '%1' was created on disk." +#~ msgstr "Mae'r Ffeil wedi Newid ar Dddisg" + +#, fuzzy +#~ msgid "" +#~ "Use this command to copy the currently selected text as HTML to the " +#~ "system clipboard." +#~ msgstr "" +#~ "Defnyddiwch y gorchymyn yma i gopïo'r testun dewisiedig i'r gludfwrdd." + +#, fuzzy +#~| msgid "Character" +#~ msgctxt "Wrap words at (value is at 20 or larger)" +#~ msgid " character" +#~ msgid_plural " characters" +#~ msgstr[0] "Nod" +#~ msgstr[1] "Nod" + +#, fuzzy +#~ msgid "Save..." +#~ msgstr "Mewnosod Ffeil ..." + +#, fuzzy +#~ msgid "&Copy..." +#~ msgstr "Mewnosod Ffeil ..." + +#, fuzzy +#~ msgid "Other..." +#~ msgstr "Arall" + +#, fuzzy +#~| msgid "&Align" +#~ msgid "&Align On..." +#~ msgstr "&Alinio" + +#, fuzzy +#~ msgid "Change Dictionary..." +#~ msgstr "Dewi&s Ffont..." + +#, fuzzy +#~ msgid "Namespaces" +#~ msgstr "Nifer o fylchau:" + +#, fuzzy +#~ msgid "Structs" +#~ msgstr "Byrlwybrau" + +#, fuzzy +#~ msgid "Functions" +#~ msgstr "Ffwythiant" + +#, fuzzy +#~ msgid "Enumerations" +#~ msgstr "Ffurfwedd" + +#, fuzzy +#~| msgid "Comment" +#~ msgctxt "Script command name" +#~ msgid "Toggle comment" +#~ msgstr "Sylwad" + +#~ msgid "Choo&se Font..." +#~ msgstr "Dewi&s Ffont..." + +#, fuzzy +#~| msgid "E&ncoding" +#~ msgctxt "Script command category" +#~ msgid "Quick Coding" +#~ msgstr "A&mgodiad" + +#, fuzzy +#~| msgid "&Default schema for %1:" +#~ msgid "&Default theme for %1:" +#~ msgstr "&Arddull rhagosod am %1:" + +#, fuzzy +#~| msgid "Backspace" +#~ msgid "Automatic Selection" +#~ msgstr "Yn ôl" + +#, fuzzy +#~| msgid "Print &line numbers" +#~ msgid "Show line modification markers" +#~ msgstr "Argraffu rhifau &llinell" + +#, fuzzy +#~| msgid "Search Options" +#~ msgid "By posi&tion" +#~ msgstr "Dewisiadau Chwilio" + +#, fuzzy +#~| msgid "Backspace" +#~ msgid "Backup on Save" +#~ msgstr "Yn ôl" + +#, fuzzy +#~ msgid "&Prefix:" +#~ msgstr "&Rhagddodiad:" + +#~ msgid "&Suffix:" +#~ msgstr "&Ôl-ddodiad:" + +#, fuzzy +#~| msgid "Disabled" +#~ msgid "Disable" +#~ msgstr "Analluogir" + +#, fuzzy +#~ msgid "Show static word wra&p marker" +#~ msgstr "Llunio lliw y ce&fndir" + +#, fuzzy +#~ msgid "Input Mode" +#~ msgstr "Modd Dewis" + +#, fuzzy +#~| msgid "Unable to open %1" +#~ msgid "Enable automatic brackets" +#~ msgstr "Methu agor %1" + +#, fuzzy +#~ msgid "Chars to enclose selection:" +#~ msgstr "Dewisiad" + +#, fuzzy +#~| msgid "Highlighting for Ferite" +#~ msgid "Highlight marker size:" +#~ msgstr "Amlygu i Ferite" + +#, fuzzy +#~ msgid "Highlight tabulators" +#~ msgstr "&Amlygu" + +#, fuzzy +#~ msgid "Prefix" +#~ msgstr "&Rhagddodiad:" + +#, fuzzy +#~ msgid "Scope" +#~ msgstr "&Aros" + +#~ msgid "Name" +#~ msgstr "Enw" + +#, fuzzy +#~ msgid "Static" +#~ msgstr "&Italig" + +#, fuzzy +#~ msgid "Namespace" +#~ msgstr "Yn ôl" + +#, fuzzy +#~ msgid "Struct" +#~ msgstr "T&rwylinellu" + +#, fuzzy +#~ msgid "Union" +#~ msgstr "Ffwythiant" + +#~ msgid "Function" +#~ msgstr "Ffwythiant" + +#, fuzzy +#~ msgid "Variable" +#~ msgstr "&Newidynnau :" + +#, fuzzy +#~ msgid "Enumeration" +#~ msgstr "Ffurfwedd" + +#, fuzzy +#~ msgid "Template" +#~ msgstr "A&mnewid" + +#, fuzzy +#~ msgid "Override" +#~ msgstr "Trosysgrifo" + +#, fuzzy +#~ msgid "Inline" +#~ msgstr "&Danlinellu" + +#, fuzzy +#~ msgid "Friend" +#~ msgstr "Canfod:" + +#, fuzzy +#~ msgid "Unknown Property" +#~ msgstr "Priodweddau'r blwch" + +#, fuzzy +#~ msgid "Code Completion Configuration" +#~ msgstr "Ffurfwedd" + +#, fuzzy +#~ msgid "Description" +#~ msgstr "R&han:" + +#, fuzzy +#~| msgid "Edit Entry" +#~ msgid "Edit Entry..." +#~ msgstr "Golygu cofnod ..." + +#, fuzzy +#~| msgid "Edit Entry" +#~ msgid "Add Entry..." +#~ msgstr "Golygu cofnod ..." + +#, fuzzy +#~| msgid "Footer Properties" +#~ msgid "Further Notes" +#~ msgstr "Priodweddau'r Troedynnau" + +#, fuzzy +#~| msgid "The Editing Commands" +#~ msgid "Edit Command" +#~ msgstr "Y Gorchmynion Golygu" + +#, fuzzy +#~| msgid "Choo&se Font..." +#~ msgid "Choose an icon." +#~ msgstr "Dewi&s Ffont..." + +#, fuzzy +#~| msgid "&Section:" +#~ msgid "&Description:" +#~ msgstr "R&han:" + +#, fuzzy +#~| msgid "&Pattern:" +#~ msgid "&Category:" +#~ msgstr "&Patrwm:" + +#, fuzzy +#~| msgid "String" +#~ msgid "Sorting" +#~ msgstr "Llinell" + +#, fuzzy +#~| msgid "Case &sensitive" +#~ msgid "Case sensitive" +#~ msgstr "Mae llythrennau bras o &bwys" + +#, fuzzy +#~| msgid "String" +#~ msgid "Filtering" +#~ msgstr "Llinell" + +#, fuzzy +#~| msgid "Footer Properties" +#~ msgid "Access Grouping Properties" +#~ msgstr "Priodweddau'r Troedynnau" + +#, fuzzy +#~| msgid "Footer Properties" +#~ msgid "Item Grouping properties" +#~ msgstr "Priodweddau'r Troedynnau" + +#, fuzzy +#~| msgid "Colors" +#~ msgid "Columns" +#~ msgstr "Lliwiau" + +#, fuzzy +#~ msgid "(c) 2000-2019 The Kate Authors" +#~ msgstr "(h)(c) 2000-2003 Yr Awduron Kate" + +#, fuzzy +#~| msgid "What do you want to do?" +#~ msgid "How do you want to import the schema?" +#~ msgstr "Beth hoffech chi ei wneud?" + +#, fuzzy +#~| msgid "Replace &All" +#~ msgid "Replace current schema?" +#~ msgstr "Amnewid y &Cwbl" + +#, fuzzy +#~| msgid "Replace &All" +#~ msgid "Replace existing schema %1" +#~ msgstr "Amnewid y &Cwbl" + +#, fuzzy +#~| msgid "Highlighting for Scheme" +#~ msgid "Loading all highlightings for schema" +#~ msgstr "Amlygu i Scheme" + +#, fuzzy +#~| msgid "Replace &All" +#~ msgid "Kate color schema" +#~ msgstr "Amnewid y &Cwbl" + +#, fuzzy +#~| msgid "File Format" +#~ msgid "Fileformat error" +#~ msgstr "Fformat Ffeil" + +#~ msgid "&New..." +#~ msgstr "&Newydd..." + +#, fuzzy +#~| msgid "Replace &All" +#~ msgid "Replace existing theme %1" +#~ msgstr "Amnewid y &Cwbl" + +#, fuzzy +#~ msgid "Name unspecified" +#~ msgstr "Yn ôl" + +#~ msgid "Name:" +#~ msgstr "Enw:" + +#~ msgid "&Schema:" +#~ msgstr "&Sgema :" + +#~ msgid "&Schema" +#~ msgstr "&Sgema" + +#~ msgid "" +#~ "A file named \"%1\" already exists. Are you sure you want to overwrite it?" +#~ msgstr "" +#~ "Mae ffeil o'r enw \"%1\" mewn bod eisoes. Ydych wir eisiau ysgrifennu " +#~ "drosti?" + +#~ msgid "Overwrite File?" +#~ msgstr "Trosysgrifo'r Ffeil?" + +#, fuzzy +#~| msgid "Highlighting Rules" +#~ msgid "Highlight trailing &spaces" +#~ msgstr "Rheolau Amlygu" + +#, fuzzy +#~ msgid "Spellcheck Selection..." +#~ msgstr "Gwirio Sillafu" + +#~ msgid "&Go to line:" +#~ msgstr "&Mynd i linell:" + +#~ msgid "What do you want to do?" +#~ msgstr "Beth hoffech chi ei wneud?" + +#, fuzzy +#~ msgid "File Was Changed on Disk" +#~ msgstr "Mae'r Ffeil wedi Newid ar Dddisg" + +#, fuzzy +#~| msgid "Highlighting Rules" +#~ msgid "Download Highlighting Files..." +#~ msgstr "Rheolau Amlygu" + +#~ msgid "Installed" +#~ msgstr "Wedi'i osod" + +#~ msgid "Latest" +#~ msgstr "Diweddaraf" + +#~ msgid "&Install" +#~ msgstr "&Gosod" + +#, fuzzy +#~| msgid "None" +#~ msgctxt "Syntax highlighting" +#~ msgid "None" +#~ msgstr "Dim" + +#~ msgid "Normal Text" +#~ msgstr "Testun Arferol" + +#~ msgid "Unable to open %1" +#~ msgstr "Methu agor %1" + +#, fuzzy +#~| msgid "" +#~| "The error %4
has been detected in the file %1 at %2/%3" +#~ msgid "" +#~ "The error %4
has been detected in the file %1 at %2/%3" +#~ msgstr "Canfuwyd y gwall %4
yn y ffeil %1 wrth %2/%3
" + +#, fuzzy +#~ msgid "Continuing search from top" +#~ msgstr "Mae llythrennau mawr/bach o bwys" + +#, fuzzy +#~ msgid "Continuing search from bottom" +#~ msgstr "Mae llythrennau mawr/bach o bwys" + +#~ msgctxt "Language Section" +#~ msgid "Scripts" +#~ msgstr "Sgriptiau" + +#~ msgctxt "Language Section" +#~ msgid "Other" +#~ msgstr "Arall" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "ActionScript 2.0" +#~ msgstr "Sgriptiau" + +#~ msgctxt "Language Section" +#~ msgid "Hardware" +#~ msgstr "Caledwedd" + +#~ msgctxt "Language Section" +#~ msgid "Scientific" +#~ msgstr "Gwyddonol" + +#~ msgctxt "Language Section" +#~ msgid "Configuration" +#~ msgstr "Ffurfwedd" + +#~ msgctxt "Language" +#~ msgid "C" +#~ msgstr "C" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "CoffeeScript" +#~ msgstr "Sgriptiau" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "CubeScript" +#~ msgstr "Sgriptiau" + +#~ msgctxt "Language" +#~ msgid "D" +#~ msgstr "D" + +#~ msgctxt "Language" +#~ msgid "Diff" +#~ msgstr "Diff" + +#~ msgctxt "Language" +#~ msgid "Email" +#~ msgstr "Ebost" + +#~ msgctxt "Language Section" +#~ msgid "Database" +#~ msgstr "Cronfa ddata" + +#, fuzzy +#~| msgid "Backspace" +#~ msgctxt "Language" +#~ msgid "GDB Backtrace" +#~ msgstr "Yn ôl" + +#, fuzzy +#~| msgid "&Ignore" +#~ msgctxt "Language" +#~ msgid "Git Ignore" +#~ msgstr "&Anwybyddu" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "D" +#~ msgctxt "Language Section" +#~ msgid "3D" +#~ msgstr "D" + +#~ msgctxt "Language" +#~ msgid "HTML" +#~ msgstr "HTML" + +#~ msgctxt "Language" +#~ msgid "Java" +#~ msgstr "Java" + +#~ msgctxt "Language" +#~ msgid "JavaScript" +#~ msgstr "JavaScript" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Kconfig" +#~ msgstr "Ffurfweddu..." + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "SQL" +#~ msgctxt "Language" +#~ msgid "LSL" +#~ msgstr "SQL" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "MediaWiki" +#~ msgstr "Ebost" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "SQL" +#~ msgctxt "Language" +#~ msgid "MEL" +#~ msgstr "SQL" + +#, fuzzy +#~| msgid "&Bold" +#~ msgctxt "Language" +#~ msgid "Modelica" +#~ msgstr "&Bras" + +#, fuzzy +#~| msgid "&Bold" +#~ msgctxt "Language" +#~ msgid "Modelines" +#~ msgstr "&Bras" + +#~ msgctxt "Language" +#~ msgid "progress" +#~ msgstr "cynnydd" + +#~ msgctxt "Language" +#~ msgid "Python" +#~ msgstr "Python" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "SQL" +#~ msgctxt "Language" +#~ msgid "QML" +#~ msgstr "SQL" + +#, fuzzy +#~| msgid "&Replace" +#~ msgctxt "Language" +#~ msgid "Replicode" +#~ msgstr "A&mnewid" + +#, fuzzy +#~| msgid "File Format" +#~ msgctxt "Language" +#~ msgid "Rich Text Format" +#~ msgstr "Fformat Ffeil" + +#~ msgctxt "Language" +#~ msgid "SQL" +#~ msgstr "SQL" + +#, fuzzy +#~| msgctxt "Language" +#~| msgid "SQL" +#~ msgctxt "Language" +#~ msgid "STL" +#~ msgstr "SQL" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Textile" +#~ msgstr "Cefndir Ardal Testun" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Varnish Configuration Language" +#~ msgstr "Ffurfwedd" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Varnish 4 Configuration Language" +#~ msgstr "Ffurfwedd" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Varnish Test Case language" +#~ msgstr "Ffurfwedd" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Varnish 4 Test Case language" +#~ msgstr "Ffurfwedd" + +#~ msgctxt "Language" +#~ msgid "XML" +#~ msgstr "XML" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "x.org Configuration" +#~ msgstr "Ffurfwedd" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "XUL" +#~ msgstr "XML" + +#, fuzzy +#~ msgctxt "Language" +#~ msgid "Zonnon" +#~ msgstr "(Anhysbys)" + +#, fuzzy +#~ msgid "File Changed on Disk" +#~ msgstr "Mae'r Ffeil wedi Newid ar Dddisg" + +#, fuzzy +#~ msgid "Close the document." +#~ msgstr "Cadw'r ddogfen cyfredol" + +#~ msgid "KDE Default" +#~ msgstr "Rhagosodion KDE" + +#, fuzzy +#~| msgid "Latest" +#~ msgid "&Next" +#~ msgstr "Diweddaraf" + +#, fuzzy +#~ msgid "Case-sensitive searching" +#~ msgstr "Mae llythrennau mawr/bach o bwys" + +#, fuzzy +#~| msgid "&Bold" +#~ msgid "Mo&de:" +#~ msgstr "&Bras" + +#, fuzzy +#~| msgid "Character" +#~ msgctxt "spinbox special value for 1" +#~ msgid "1 character" +#~ msgstr "Nod" + +#, fuzzy +#~| msgid "Character" +#~ msgctxt "suffix for spinbox >1 wrap words at (value is at 20 or larger)" +#~ msgid " characters" +#~ msgstr "Nod" + +#, fuzzy +#~ msgid "Indentation width" +#~ msgstr "Modd Dewis" + +#, fuzzy +#~| msgid "Error: %1" +#~ msgid "Error calling action(%1)" +#~ msgstr "Gwall: %1" + +#~ msgid "Errors!" +#~ msgstr "Gwallau!" + +#~ msgid "Error: %1" +#~ msgstr "Gwall: %1" + +#, fuzzy +#~| msgid "Selected text:" +#~ msgctxt "Language" +#~ msgid "Restructured Text" +#~ msgstr "Testun dewisedig:" + +#, fuzzy +#~| msgid "Unable to open %1" +#~ msgid "Unable to find '%1'" +#~ msgstr "Methu agor %1" + +#, fuzzy +#~ msgid "Text Area Background" +#~ msgstr "Cefndir Ardal Testun" + +#~ msgid "Normal text:" +#~ msgstr "Testun arferol:" + +#, fuzzy +#~ msgid "Left border background:" +#~ msgstr "Cefndir Ardal Testun" + +#, fuzzy +#~ msgid "Line numbers:" +#~ msgstr "Argraffu rhifau &llinell" + +#, fuzzy +#~ msgid "Na&mespace:" +#~ msgstr "Yn ôl" + +#, fuzzy +#~| msgid "License:" +#~ msgid "&License:" +#~ msgstr "Trwydded:" + +#, fuzzy +#~| msgid "Author:" +#~ msgid "&Authors:" +#~ msgstr "Awdur:" + +#, fuzzy +#~ msgid "&File types:" +#~ msgstr "Fformat Ffeil" + +#, fuzzy +#~ msgid "Display &Prefix:" +#~ msgstr "&Rhagddodiad:" + +#, fuzzy +#~| msgid "Shortcuts" +#~ msgid "Shortcut:" +#~ msgstr "Byrlwybrau" + +#, fuzzy +#~ msgid "S&cripts" +#~ msgstr "Sgriptiau" + +#, fuzzy +#~| msgid "Edit Entry" +#~ msgid "" +#~ msgstr "Golygu cofnod ..." + +#, fuzzy +#~| msgid "Edit Entry" +#~ msgid "Cannot open snippet repository %1." +#~ msgstr "Golygu cofnod ..." + +#, fuzzy +#~ msgid "Applies to all filetypes" +#~ msgstr "Fformat Ffeil" + +#, fuzzy +#~| msgid "&Section:" +#~ msgid "Add Repository" +#~ msgstr "R&han:" + +#, fuzzy +#~| msgid "Edit Entry" +#~ msgid "Edit Repository" +#~ msgstr "Golygu cofnod ..." + +#, fuzzy +#~| msgid "Edit Entry" +#~ msgid "Edit Snippet" +#~ msgstr "Golygu cofnod ..." + +#, fuzzy +#~| msgid "Selected" +#~ msgid "Remove Snippet" +#~ msgstr "Dewisiedig" + +#, fuzzy +#~| msgid "String" +#~ msgid "Filter..." +#~ msgstr "Llinell" + +#, fuzzy +#~| msgid "Plugin Manager" +#~ msgid "Extensions Manager" +#~ msgstr "Rheolydd Ategynion" + +#, fuzzy +#~| msgid "Selected" +#~ msgid "Create Snippet" +#~ msgstr "Dewisiedig" + +#, fuzzy +#~ msgid "OVR" +#~ msgstr "DROS" + +#, fuzzy +#~| msgid " INS " +#~ msgid "INS" +#~ msgstr "MEWN" + +#, fuzzy +#~ msgid "Move Up" +#~ msgstr "Mynd i Linell" + +#, fuzzy +#~ msgid "Execute" +#~ msgstr "R&han:" + +#, fuzzy +#~| msgid "Print the current document." +#~ msgid "Modify the current snippet" +#~ msgstr "Argraffu'r ddogfen cyfredol." + +#, fuzzy +#~ msgid "Create a new repository file" +#~ msgstr "Cadw'r ddogfen cyfredol" + +#, fuzzy +#~| msgid "Selected" +#~ msgid "Kate Snippets" +#~ msgstr "Dewisiedig" + +#, fuzzy +#~| msgid "Selected" +#~ msgid "New Snippet" +#~ msgstr "Dewisiedig" + +#, fuzzy +#~ msgid "No file specified" +#~ msgstr "Yn ôl" + +#, fuzzy +#~| msgid "Edit Entry" +#~ msgid "Snippet Repository:" +#~ msgstr "Golygu cofnod ..." + +#, fuzzy +#~| msgid "Insert File..." +#~ msgid "New Snippet File..." +#~ msgstr "Mewnosod Ffeil ..." + +#, fuzzy +#~| msgid "Selected" +#~ msgid "Get New Snippets..." +#~ msgstr "Dewisiedig" + +#, fuzzy +#~| msgid "Selected" +#~ msgid "Kate Part Snippets" +#~ msgstr "Dewisiedig" + +#, fuzzy +#~| msgid "&Highlighting" +#~ msgid "&Keep highlighting" +#~ msgstr "&Amlygu" + +#, fuzzy +#~ msgid "R/O" +#~ msgstr "DyU" + +#~ msgid "Plugins" +#~ msgstr "Ategion" + +#~ msgid "&Normal" +#~ msgstr "&Arferol" + +#, fuzzy +#~| msgid "Remove &trailing spaces" +#~ msgid "Remove &trailing spaces while editing" +#~ msgstr "Gwaredu &gofodnodau ychwanegol" + +#, fuzzy +#~| msgid "Remove &trailing spaces" +#~ msgctxt "short translation please" +#~ msgid "Remove trailing spaces when editing a line." +#~ msgstr "Gwaredu &gofodnodau ychwanegol" + +#~ msgid "Overwrite" +#~ msgstr "Trosysgrifo" + +#, fuzzy +#~| msgid "&Stop" +#~ msgid "Stop" +#~ msgstr "&Aros" + +#, fuzzy +#~| msgid "Colors" +#~ msgctxt "@title:column a color button" +#~ msgid "Color" +#~ msgstr "Lliwiau" + +#, fuzzy +#~ msgid "Export HlColors..." +#~ msgstr "A&llforio" + +#, fuzzy +#~ msgid "Template Background" +#~ msgstr "Cefndir Ardal Testun" + +#, fuzzy +#~| msgid "&Format:" +#~ msgid "Form" +#~ msgstr "&Fformat:" + +#, fuzzy +#~ msgid "Create another view containing the current document" +#~ msgstr "Dewis holl destun y ddogfen gyfredol." + +#~ msgid " INS " +#~ msgstr "MEWN" + +#, fuzzy +#~| msgid " INS " +#~ msgid " LINE " +#~ msgstr "MEWN" + +#, fuzzy +#~ msgid "KWrite" +#~ msgstr "Awdur KWrite" + +#, fuzzy +#~ msgid "KWrite - Text Editor" +#~ msgstr "Awdur KWrite" + +#, fuzzy +#~ msgid "Choose Editor Component" +#~ msgstr "Dewis Ffeil i'w Fewnosod" + +#, fuzzy +#~ msgid "TestRegression" +#~ msgstr "Mynegiad Rheolaidd" + +#~ msgid "Error: " +#~ msgstr "Gwall:" + +#, fuzzy +#~| msgid "Disabled" +#~ msgctxt "Encodings menu" +#~ msgid "Disabled" +#~ msgstr "Analluogir" + +#, fuzzy +#~ msgid "Hi&ghlight all" +#~ msgstr "&Amlygu" + +#, fuzzy +#~ msgid "(c) 2000-2008 The Kate Authors" +#~ msgstr "(h)(c) 2000-2003 Yr Awduron Kate" + +#~ msgid "Developer & Highlight wizard" +#~ msgstr "Dewin Datblygu ac Amlygu" + +#, fuzzy +#~ msgid "Unable to read file: '%1'" +#~ msgstr "Methu agor %1" + +#~ msgid "Success" +#~ msgstr "Llwyddiant" + +#~ msgid "&Overwrite" +#~ msgstr "&Trosysgrifo" + +#, fuzzy +#~| msgid "&Find Next" +#~ msgid "Plain text\t\t(Alt+1)" +#~ msgstr "&Canfod Nesaf" + +#, fuzzy +#~ msgid "Regular expression\t(Alt+4)" +#~ msgstr "Mynegiad Rheolaidd" + +#, fuzzy +#~ msgid "Case Sensitive" +#~ msgstr "Mae llythrennau mawr/bach o bwys" + +#, fuzzy +#~ msgid "(c) 2000-2007 The Kate Authors" +#~ msgstr "(h)(c) 2000-2003 Yr Awduron Kate" + +#, fuzzy +#~ msgid "Highlight all matches" +#~ msgstr "&Amlygu" + +#, fuzzy +#~ msgid "Selection only " +#~ msgstr "Dewisiad yn Unig" + +#, fuzzy +#~ msgid "unknown" +#~ msgstr "(Anhysbys)" + +#, fuzzy +#~ msgid "Setup" +#~ msgstr "&Aros" + +#~ msgid "Print syntax &guide" +#~ msgstr "Argraffu canllawiau c&ystrawen" + +#~ msgid "Print &selected text only" +#~ msgstr "Argraffu testun de&wisedig yn unig" + +#~ msgid "" +#~ "

This option is only available if some text is selected in the document." +#~ "

If available and enabled, only the selected text is printed.

" +#~ msgstr "" +#~ "

Mae'r dewisiad yma ar gael yn unig os mae testun wedi'i ddewis yn y " +#~ "ddogfen.

Os ar gael ac wedi alluogi, argraffir y testun dewisedig " +#~ "yn unig.

" + +#~ msgid "Print %1" +#~ msgstr "Argraffu %1" + +#, fuzzy +#~ msgid "NORM" +#~ msgstr "ARF" + +#, fuzzy +#~ msgid "&Highlight all" +#~ msgstr "&Amlygu" + +#, fuzzy +#~ msgctxt "" +#~ "This is the second part of two strings that will comprise the sentence " +#~ "'Show completions when a word is at least N characters'" +#~ msgid "characters long." +#~ msgstr "Nod" + +#~ msgid "Choose File to Insert" +#~ msgstr "Dewis Ffeil i'w Fewnosod" + +#~ msgid "" +#~ "Failed to load file:\n" +#~ "\n" +#~ msgstr "" +#~ "Methwyd llwytho ffeil:\n" +#~ " \n" + +#~ msgid "Insert File Error" +#~ msgstr "Gwall Mewnosod Ffeil" + +#~ msgid "" +#~ "

The file %1 does not exist or is not readable, " +#~ "aborting." +#~ msgstr "" +#~ "

The file %1 does not exist or is not readable, " +#~ "aborting." + +#~ msgid "

Unable to open file %1, aborting." +#~ msgstr "

Methu agor ffeil %1 - yn erthylu." + +#~ msgid "

File %1 had no contents." +#~ msgstr "

Doedd gan y ffeil %1 ddim cynnwys." + +#~ msgid "Data Tools" +#~ msgstr "Offer data" + +#~ msgid "(not available)" +#~ msgstr "(dim ar gael)" + +#~ msgid "" +#~ "Data tools are only available when text is selected, or when the right " +#~ "mouse button is clicked over a word. If no data tools are offered even " +#~ "when text is selected, you need to install them. Some data tools are part " +#~ "of the KOffice package." +#~ msgstr "" +#~ "Mae offer data ar gael 'mond pan mae testun wedi'i ddewis, neu pan y " +#~ "glicir botwm de y llygoden dros air. Os na cynnigir offer data hyd yn " +#~ "oed pan y ddewisir testun, mae angen eu gosod. Mae rhai o'r offer data yn " +#~ "rhan o'r pecyn KOffice. " + +#~ msgid "&Pattern:" +#~ msgstr "&Patrwm:" + +#, fuzzy +#~ msgid "&File mask:" +#~ msgstr "Fformat Ffeil" + +#~ msgid "&Patterns" +#~ msgstr "&Patrymau" + +#~ msgid "Pattern" +#~ msgstr "Patrwm" + +#~ msgid "&Edit..." +#~ msgstr "&Golygu..." + +#~ msgid "Configure..." +#~ msgstr "Ffurfweddu..." + +#, fuzzy +#~ msgid "Script Manager" +#~ msgstr "Rheolydd Ategynion" + +#, fuzzy +#~ msgid "Hide &Line Numbers" +#~ msgstr "Argraffu rhifau &llinell" + +#, fuzzy +#~ msgid "Re&place && Close" +#~ msgstr "Amnewid Testun" + +#~ msgid "N&ame:" +#~ msgstr "E&nw:" + +#~ msgid "Memory Usage" +#~ msgstr "Defnydd Cof" + +#~ msgid "Configure %1" +#~ msgstr "Ffurfweddu %1" + +#~ msgid "Do&wnload..." +#~ msgstr "La&wrlwytho..." + +#~ msgid " Col: %1" +#~ msgstr " Col: %1" + +#~ msgid "Search Incrementally" +#~ msgstr "Chwilio yn Gynyddol" + +#~ msgid "Search Incrementally Backwards" +#~ msgstr "Chwilio yn Ôl yn Gynyddol" + +#~ msgid "From Beginning" +#~ msgstr "O'r Dechrau" + +#~ msgctxt "Incremental Search" +#~ msgid "I-Search:" +#~ msgstr "Chwiliad Cynyddol:" + +#~ msgctxt "Incremental Search found no match" +#~ msgid "Failing I-Search:" +#~ msgstr "Methodd y chwiliad cynyddol ganfod cydweddiad: " + +#~ msgctxt "Incremental Search in the reverse direction" +#~ msgid "I-Search Backward:" +#~ msgstr "Chwiliad cynyddol i'r cyfeiriad arall:" + +#~ msgid "Failing I-Search Backward:" +#~ msgstr "Methodd y chwiliad cynyddol ganfod cydweddiad yn y cyfeiriad arall:" + +#~ msgctxt "Incremental Search has passed the end of the document" +#~ msgid "Wrapped I-Search:" +#~ msgstr "Mae'r chwiliad cynyddol wedi pasio diwedd y ddogfen:" + +#~ msgid "Failing Wrapped I-Search:" +#~ msgstr "" +#~ "Methodd y chwiliad cynyddol ganfod cydweddiad ar ôl pasio diwedd y ddogfen" + +#~ msgid "Wrapped I-Search Backward:" +#~ msgstr "Chwiliad cynyddol i'r cyfeiriad arall, sy'n pasio'r safle dechrau:" + +#~ msgid "Failing Wrapped I-Search Backward:" +#~ msgstr "" +#~ "Methodd y chwiliad cynyddol ganfod cydweddiad ar ôl pasio'r safle " +#~ "dechrau, wrth fynd yn y cyfeiriad arall:" + +#~ msgctxt "" +#~ "Incremental Search has passed both the end of the document and the " +#~ "original starting position" +#~ msgid "Overwrapped I-Search:" +#~ msgstr "Overwrapped I-Search:" + +#~ msgid "Failing Overwrapped I-Search:" +#~ msgstr "" +#~ "Methodd y chwiliad cynyddol ganfod cydweddiad ar ôl pasio diwedd y " +#~ "ddogfen ac hefyd y safle dechrau:" + +#~ msgid "Overwrapped I-Search Backwards:" +#~ msgstr "" +#~ "Mae'r chwiliad cynyddol wedi pasio diwedd y ddogfen ac hefyd y safle " +#~ "dechrau, wrth fynd yn y cyfeiriad arall:" + +#~ msgid "Failing Overwrapped I-Search Backward:" +#~ msgstr "" +#~ "Methodd y chwiliad cynyddol ganfod cydweddiad ar ôl pasio diwedd y " +#~ "ddogfen ac hefyd y safle dechrau, wrth fynd yn y cyfeiriad arall:" + +#~ msgid "Error: unknown i-search state!" +#~ msgstr "Gwall: cyflwr anhysbys i'r chwiliad cynyddol!" diff --git a/local/recipes/kde/kf6-ktexteditor/source/po/da/ktexteditor6.po b/local/recipes/kde/kf6-ktexteditor/source/po/da/ktexteditor6.po new file mode 100644 index 0000000000..e5bfeccb41 --- /dev/null +++ b/local/recipes/kde/kf6-ktexteditor/source/po/da/ktexteditor6.po @@ -0,0 +1,11666 @@ +# translation of katepart4.po to +# Danish translation of katepart +# Copyright (C). +# +# Erik Kjær Pedersen , 2001, 2002, 2003, 2004, 2005, 2006. +# Lars K. Schunk , 2001, 2002. +# Martin Schlander , 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021. +# Anders Lund , 2008, 2009. +msgid "" +msgstr "" +"Project-Id-Version: katepart4\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2026-06-23 00:41+0000\n" +"PO-Revision-Date: 2021-09-09 21:34+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 20.04.2\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: completion/katecompletionmodel.cpp:147 +#, kde-format +msgid "Argument-hints" +msgstr "Argument-tips" + +#: completion/katecompletionmodel.cpp:148 +#, kde-format +msgid "Best matches" +msgstr "Bedste resultater" + +#: completion/katekeywordcompletion.cpp:143 +#, kde-format +msgid "Language keywords" +msgstr "Sprogets nøgleord" + +#: completion/katewordcompletion.cpp:74 +#, kde-format +msgid "Auto Word Completion" +msgstr "Automatisk ordfuldførelse" + +#: completion/katewordcompletion.cpp:301 +#, kde-format +msgid "Shell Completion" +msgstr "Skal-fuldførelse" + +#: completion/katewordcompletion.cpp:306 +#, kde-format +msgid "Reuse Word Above" +msgstr "Genbrug ordet ovenfor" + +#: completion/katewordcompletion.cpp:312 +#, kde-format +msgid "Reuse Word Below" +msgstr "Genbrug ordet nedenfor" + +#. i18n: ectx: Menu (file) +#: data/katepart5ui.rc:4 +#, kde-format +msgid "&File" +msgstr "&Fil" + +#. i18n: ectx: Menu (file_export) +#: data/katepart5ui.rc:10 +#, kde-format +msgid "&Print/Export" +msgstr "" + +#. i18n: ectx: Menu (edit) +#: data/katepart5ui.rc:17 +#, kde-format +msgid "&Edit" +msgstr "R&edigér" + +#. i18n: ectx: Menu (edit_find_menu) +#: data/katepart5ui.rc:36 +#, kde-format +msgid "Find Variants" +msgstr "Find varianter" + +#. i18n: ectx: Menu (selection) +#: data/katepart5ui.rc:46 +#, fuzzy, kde-format +#| msgid "&Section:" +msgid "Selection" +msgstr "&Afsnit:" + +#. i18n: ectx: Menu (capitalization) +#: data/katepart5ui.rc:53 +#, fuzzy, kde-format +#| msgid "Capitalize" +msgid "Capitalization" +msgstr "Store begyndelsesbogstaver" + +#. i18n: ectx: Menu (view) +#: data/katepart5ui.rc:73 +#, kde-format +msgid "&View" +msgstr "Tekst&vindue" + +#. i18n: ectx: Menu (view_menu_word_wrap) +#: data/katepart5ui.rc:78 +#, kde-format +msgid "Word Wrap" +msgstr "Tekstombrydning" + +#. i18n: ectx: Menu (view_menu_borders) +#: data/katepart5ui.rc:84 dialogs/katedialogs.cpp:747 +#, kde-format +msgid "Borders" +msgstr "Kanter" + +#. i18n: ectx: Menu (codefolding) +#: data/katepart5ui.rc:92 +#, kde-format +msgid "&Code Folding" +msgstr "&tekstfoldning" + +#. i18n: ectx: Menu (go) +#: data/katepart5ui.rc:109 +#, fuzzy, kde-format +#| msgid "Go" +msgid "&Go" +msgstr "Gå" + +#. i18n: ectx: Menu (tools) +#: data/katepart5ui.rc:124 +#, kde-format +msgid "&Tools" +msgstr "Værk&tøjer" + +#. i18n: ectx: Menu (wordcompletion) +#: data/katepart5ui.rc:138 +#, kde-format +msgid "Word Completion" +msgstr "Tekstfuldførelse" + +#. i18n: ectx: Menu (spelling) +#: data/katepart5ui.rc:144 spellcheck/spellingmenu.cpp:71 +#: spellcheck/spellingmenu.cpp:195 +#, kde-format +msgid "Spelling" +msgstr "Stavekontrol" + +#. i18n: ectx: Menu (speech) +#: data/katepart5ui.rc:153 data/katepart5ui.rc:184 +#, fuzzy, kde-format +#| msgid "Text to search for" +msgid "Text to Speech" +msgstr "Tekst at søge efter" + +#. i18n: ectx: Menu (settings) +#: data/katepart5ui.rc:161 +#, kde-format +msgid "&Settings" +msgstr "&Indstillinger" + +#. i18n: ectx: ToolBar (mainToolBar) +#: data/katepart5ui.rc:192 +#, kde-format +msgid "Main Toolbar" +msgstr "Hovedværktøjslinje" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/bordersappearanceconfigwidget.ui:25 +#, fuzzy, kde-format +#| msgid "Code Folding" +msgid "Code block folding:" +msgstr "Tekstfoldning" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowFoldingMarkers) +#: dialogs/bordersappearanceconfigwidget.ui:32 +#, kde-format +msgid "" +"If this option is checked, every new view will display marks for folding." +msgstr "" +"Hvis denne indstilling er markeret, vil hvert nyt tekstvindue vise mærker " +"for tekstfoldning." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowFoldingMarkers) +#: dialogs/bordersappearanceconfigwidget.ui:35 +#, kde-format +msgid "Show arrows to collapse code blocks" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowFoldingPreview) +#: dialogs/bordersappearanceconfigwidget.ui:42 +#, kde-format +msgid "" +"If checked, hovering over a folded region shows a preview of the folded text " +"in a popup." +msgstr "" +"Hvis denne indstilling er markeret, forhåndsvises den foldede tekst i en pop-" +"op når musen føres over et foldet område." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowFoldingPreview) +#: dialogs/bordersappearanceconfigwidget.ui:45 +#, fuzzy, kde-format +#| msgid "Show preview of folded code" +msgid "Show preview of folded blocks on hover" +msgstr "Forhåndsvis foldet kode" + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/bordersappearanceconfigwidget.ui:52 +#, fuzzy, kde-format +#| msgid "Scro&llbars visibility:" +msgid "Folding arrows visibility:" +msgstr "Synlighed af ru&llebjælker:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbFoldingArrowVisiblity) +#: dialogs/bordersappearanceconfigwidget.ui:63 +#, fuzzy, kde-format +#| msgid "Show &Icon Border" +msgid "Show on Hover" +msgstr "Vis &ikonpanel" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbFoldingArrowVisiblity) +#: dialogs/bordersappearanceconfigwidget.ui:68 +#, fuzzy, kde-format +#| msgid "Always" +msgid "Show Always" +msgstr "Altid" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/bordersappearanceconfigwidget.ui:92 +#, kde-format +msgid "Left side:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkIconBorder) +#: dialogs/bordersappearanceconfigwidget.ui:99 +#, kde-format +msgid "" +"

If this option is checked, every new view will display an icon border on " +"the left hand side.

The icon border shows bookmark signs, for instance." +"

" +msgstr "" +"

Hvis denne indstilling er aktiveret, vil hvert nyt tekstvindue vise et " +"ikonpanel i venstre side.

Ikonpanelet viser bl.a. bogmærkesymboler.

" + +#. i18n: ectx: property (text), widget (QCheckBox, chkIconBorder) +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMarks) +#: dialogs/bordersappearanceconfigwidget.ui:102 +#: dialogs/bordersappearanceconfigwidget.ui:155 +#, fuzzy, kde-format +#| msgid "Show &scrollbar marks" +msgid "Show marks" +msgstr "Vis mærker på &rullebjælken" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkLineNumbers) +#: dialogs/bordersappearanceconfigwidget.ui:109 +#, kde-format +msgid "" +"If this option is checked, every new view will display line numbers on the " +"left hand side." +msgstr "" +"Hvis denne indstilling er aktiveret, vil hvert nyt tekstvindue vise " +"linjenumre i venstre side." + +#. i18n: ectx: property (text), widget (QCheckBox, chkLineNumbers) +#: dialogs/bordersappearanceconfigwidget.ui:112 +#, kde-format +msgid "Show &line numbers" +msgstr "Vis &linjenumre" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowLineModification) +#: dialogs/bordersappearanceconfigwidget.ui:119 +#, kde-format +msgid "" +"If this option is checked, a small indicator for modified and saved lines is " +"shown on the left hand side." +msgstr "" +"Hvis denne indstilling er markeret, vises en lille indikator for ændrede og " +"gemte linjer i venstre side." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowLineModification) +#: dialogs/bordersappearanceconfigwidget.ui:122 +#, fuzzy, kde-format +#| msgid "Highlight range between selected brackets" +msgid "Highlight changed and unsaved lines" +msgstr "Fremhæv område mellem markerede klammer" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/bordersappearanceconfigwidget.ui:145 +#, fuzzy, kde-format +#| msgid "Show &scrollbar marks" +msgid "Scrollbars:" +msgstr "Vis mærker på &rullebjælken" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMarks) +#: dialogs/bordersappearanceconfigwidget.ui:152 +#, kde-format +msgid "" +"

If this option is checked, every new view will show marks on the vertical " +"scrollbar.

These marks will show bookmarks, for instance.

" +msgstr "" +"

Hvis denne indstilling er aktiveret, vil hvert nyt tekstvindue vise " +"mærker på den lodrette rullebjælke.

Disse mærker vil for eksempel vise " +"bogmærker.

" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarPreview) +#: dialogs/bordersappearanceconfigwidget.ui:162 +#, kde-format +msgid "" +"

If this option is checked, hovering over the vertical scrollbar will show " +"a preview of the text.

" +msgstr "" +"

Hvis denne indstilling er aktiveret, forhåndsvises teksten hvis musen " +"holdes over den lodrette rullebjælke.

" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarPreview) +#: dialogs/bordersappearanceconfigwidget.ui:165 +#, fuzzy, kde-format +#| msgid "Show text &preview on scrollbar" +msgid "Show preview when hovering over scrollbar" +msgstr "Forhånds&vis tekst på rullebjælke" + +#. i18n: ectx: property (text), widget (QLabel, lblShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:172 +#, kde-format +msgid "Scro&llbars visibility:" +msgstr "Synlighed af ru&llebjælker:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:183 dialogs/katedialogs.cpp:755 +#, kde-format +msgid "Always On" +msgstr "Altid til" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:188 +#, kde-format +msgid "Show When Needed" +msgstr "Vis efter behov" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbShowScrollbars) +#: dialogs/bordersappearanceconfigwidget.ui:193 +#, kde-format +msgid "Always Off" +msgstr "Altid fra" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/bordersappearanceconfigwidget.ui:217 +#, fuzzy, kde-format +#| msgid "Minim&ap width:" +msgid "Minimap:" +msgstr "Bredde på mini&kort:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMiniMap) +#: dialogs/bordersappearanceconfigwidget.ui:224 +#, kde-format +msgid "" +"If this option is checked, every new view will show a mini map on the " +"vertical scrollbar." +msgstr "" +"Hvis denne indstilling er aktiveret, vil hvert nyt tekstvindue vise et " +"minikort på den lodrette rullebjælke." + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMiniMap) +#: dialogs/bordersappearanceconfigwidget.ui:227 +#, fuzzy, kde-format +#| msgid "Show scrollbar mini-map" +msgid "Show minimap" +msgstr "Vis minikort på rullebjælken" + +#. i18n: ectx: property (text), widget (QLabel, labelMiniMapWidth) +#: dialogs/bordersappearanceconfigwidget.ui:250 +#, kde-format +msgid "Minim&ap width:" +msgstr "Bredde på mini&kort:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkScrollbarMiniMapAll) +#: dialogs/bordersappearanceconfigwidget.ui:263 +#, kde-format +msgid "" +"If this option is checked, every new view will show a mini map of the whole " +"document on the vertical scrollbar." +msgstr "" +"Hvis denne indstilling er markeret, vil hvert nyt tekstvindue vise et " +"minikort over hele dokumentet på den lodrette rullebjælke." + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollbarMiniMapAll) +#: dialogs/bordersappearanceconfigwidget.ui:266 +#, kde-format +msgid "Map the whole document" +msgstr "Kortlæg hele dokumentet" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbSortBookmarksByCreation) +#: dialogs/bordersappearanceconfigwidget.ui:276 +#, kde-format +msgid "" +"Each new bookmark will be added to the bottom, independently from where it " +"is placed in the document." +msgstr "" +"Hvert nyt bogmærke vil blive tilføjet til bunden uafhængigt af hvor det er " +"placeret i dokumentet." + +#. i18n: ectx: property (text), widget (QRadioButton, rbSortBookmarksByCreation) +#: dialogs/bordersappearanceconfigwidget.ui:279 +#, kde-format +msgid "By date created" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbSortBookmarksByPosition) +#: dialogs/bordersappearanceconfigwidget.ui:286 +#, kde-format +msgid "The bookmarks will be ordered by the line numbers they are placed at." +msgstr "Bogmærkerne vil blive sorteret efter de linjenumre de er placeret på." + +#. i18n: ectx: property (text), widget (QRadioButton, rbSortBookmarksByPosition) +#: dialogs/bordersappearanceconfigwidget.ui:289 +#, fuzzy, kde-format +#| msgid "Show &line numbers" +msgid "By line number" +msgstr "Vis &linjenumre" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/bordersappearanceconfigwidget.ui:296 +#, fuzzy, kde-format +#| msgid "Sort Bookmarks Menu" +msgid "Sort bookmarks menu:" +msgstr "Sortér bogmærkemenu" + +#: dialogs/clipboardhistorydialog.cpp:264 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Select next edit point" +msgid "Select text to paste." +msgstr "Markér næste redigeringspunkt" + +#: dialogs/clipboardhistorydialog.cpp:296 +#, kde-format +msgid "No entries in clipboard history" +msgstr "" + +#. i18n: ectx: property (title), widget (QGroupBox, gbGeneral) +#. i18n: ectx: property (title), widget (QGroupBox, gbViInputMode) +#: dialogs/completionconfigtab.ui:29 dialogs/katedialogs.cpp:609 +#: dialogs/katedialogs.cpp:743 dialogs/katedialogs.cpp:1026 +#: vimode/config/configwidget.ui:29 +#, kde-format +msgid "General" +msgstr "Generelt" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoCompletionEnabled) +#: dialogs/completionconfigtab.ui:35 +#, kde-format +msgid "Enable &auto completion" +msgstr "Aktivér &auto-fuldførelse" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoSelectFirstEntry) +#: dialogs/completionconfigtab.ui:42 +#, kde-format +msgid "Auto select &first completion entry" +msgstr "Auto-markér &første fuldførelsesindgang" + +#. i18n: ectx: property (text), widget (QCheckBox, chkTabCompletion) +#: dialogs/completionconfigtab.ui:49 +#, kde-format +msgid "Cycle through the list of completions using Tab / Shift+Tab" +msgstr "" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkEnterCompletion) +#: dialogs/completionconfigtab.ui:56 +#, kde-format +msgid "" +"Pressing enter will insert the text of selected completion item into the " +"editor. If disabled, Tab key or double-click can still be used to trigger " +"completion." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkEnterCompletion) +#: dialogs/completionconfigtab.ui:59 +#, fuzzy, kde-format +#| msgid "Use this to unindent a selected block of text." +msgid "Use Enter key to insert selected completion" +msgstr "Brug dette til at afindrykke en markeret tekstblok." + +#. i18n: ectx: property (title), widget (QGroupBox, gbWordCompletion) +#: dialogs/completionconfigtab.ui:69 +#, fuzzy, kde-format +#| msgid "A&uto Word Completion" +msgid "A&uto word completion" +msgstr "A&utomatisk ordfuldførelse" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/completionconfigtab.ui:83 +#, kde-format +msgid "Minimal word length to complete:" +msgstr "Minimal ordlængde der skal fuldføres:" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, removeTail) +#: dialogs/completionconfigtab.ui:111 +#, kde-format +msgid "Remove tail of a previous word when completion item chosen from a list" +msgstr "" +"Fjern hale fra et foregående ord når fuldførelseselement vælges fra en liste" + +#. i18n: ectx: property (text), widget (QCheckBox, removeTail) +#: dialogs/completionconfigtab.ui:114 +#, kde-format +msgid "Remove tail on complete" +msgstr "Fjern hale ved fuldførelse" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/completionconfigtab.ui:121 +#, fuzzy, kde-format +#| msgid "" +#| "Keyword completion provides suggestions based on the keywords which exist " +#| "in the document's language." +msgid "" +"Word completion provides suggestions based on the words found in the document" +msgstr "" +"Nøgleordsfuldførelse giver forslag baseret på nøgleord som findes i i " +"dokumentets sprog." + +#. i18n: ectx: property (title), widget (QGroupBox, gbKeywordCompletion) +#: dialogs/completionconfigtab.ui:134 +#, kde-format +msgid "&Keyword completion" +msgstr "&Nøgleordsfuldførelse" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/completionconfigtab.ui:143 +#, kde-format +msgid "" +"Keyword completion provides suggestions based on the keywords which exist in " +"the document's language." +msgstr "" +"Nøgleordsfuldførelse giver forslag baseret på nøgleord som findes i i " +"dokumentets sprog." + +#. i18n: ectx: property (title), widget (QGroupBox, gbShowDoc) +#: dialogs/completionconfigtab.ui:156 +#, fuzzy, kde-format +#| msgid "Auto Completion" +msgid "Documentation with completion" +msgstr "Auto-fuldførelse" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/completionconfigtab.ui:165 +#, kde-format +msgid "" +"Show documentation beside completion box. If disabled, documentation can be " +"shown by pressing Alt key." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/editconfigwidget.ui:22 +#, fuzzy, kde-format +#| msgid "Word Wrap" +msgid "Word wrap:" +msgstr "Tekstombrydning" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkStaticWordWrap) +#: dialogs/editconfigwidget.ui:29 +#, kde-format +msgid "" +"

Automatically start a new line of text when the current line exceeds the " +"length specified by the Wrap words at: option.

This option does " +"not wrap existing lines of text - use the Apply Static Word Wrap " +"option in the Tools menu for that purpose.

If you want lines to " +"be visually wrapped instead, according to the width of the view, " +"enable Dynamic Word Wrap in the Appearance config page.

" +msgstr "" +"

Start automatisk en ny linje, når den nuværende linje er længere end " +"længden angivet af Tekstombrydning ved:.

Denne indstilling " +"ombryder ikke eksisterende tekstlinjer - brug Anvend statisk " +"tekstombrydning i Værktøjer-menuen til dette formål.

Hvis " +"du ønsker at linjerne skal ombrydes visuelt i tekstvinduets bredde i " +"stedet for skal Dynamisk ordombrydning aktiveres i " +"konfigurationssiden Udseende.

" + +#. i18n: ectx: property (text), widget (QCheckBox, chkStaticWordWrap) +#: dialogs/editconfigwidget.ui:32 +#, kde-format +msgid "Wrap &words at a fixed column" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowStaticWordWrapMarker) +#: dialogs/editconfigwidget.ui:39 +#, kde-format +msgid "" +"

If this option is checked, a vertical line will be drawn at the word wrap " +"column as defined in the Editing properties.

" +msgstr "" +"

Hvis denne indstilling er aktiveret, vil en lodret linje blive vist ved " +"tekstombrydnings-kolonnen som defineret i egenskaber for Redigering.

" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowStaticWordWrapMarker) +#: dialogs/editconfigwidget.ui:42 +#, fuzzy, kde-format +#| msgctxt "short translation please" +#| msgid "Set the word wrap column." +msgid "&Draw vertical line at the word wrap column" +msgstr "Angiv kolonne for ordombrydning." + +#. i18n: ectx: property (text), widget (QLabel, lblWordWrap) +#: dialogs/editconfigwidget.ui:49 +#, kde-format +msgid "Wra&p words at:" +msgstr "Tekstom&bryd ord ved:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbWordWrap) +#: dialogs/editconfigwidget.ui:59 +#, kde-format +msgid "" +"If the Word Wrap option is selected this entry determines the length (in " +"characters) at which the editor will automatically start a new line." +msgstr "" +"Hvis \"Tekstombrydning\" er valgt vil denne indstilling bestemme længden (i " +"tegn) hvor en ny linje automatisk startes." + +#. i18n: ectx: property (text), widget (QLabel, lblInputMode) +#: dialogs/editconfigwidget.ui:91 +#, kde-format +msgid "Default input mode:" +msgstr "Standard input-tilstand:" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/editconfigwidget.ui:120 +#, fuzzy, kde-format +#| msgid "Auto Brackets" +msgid "Brackets:" +msgstr "Autoklammer" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoBrackets) +#: dialogs/editconfigwidget.ui:127 +#, kde-format +msgid "Automatically close brackets when opening bracket is typed" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLabel, lbEncloseSelection) +#: dialogs/editconfigwidget.ui:140 +#, kde-format +msgid "" +"When some text is selected these chars will be added on both its sides in a " +"way \"Auto Bracket\" do" +msgstr "" +"Når noget tekst markeres, vil disse tegn blive tilføjet på begge sider af " +"markeringen på en måde som \"autoklammer\" gør" + +#. i18n: ectx: property (text), widget (QLabel, lbEncloseSelection) +#: dialogs/editconfigwidget.ui:143 +#, fuzzy, kde-format +#| msgid " character" +#| msgid_plural " characters" +msgid "Enclosing characters:" +msgstr " tegn" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/editconfigwidget.ui:166 +#, fuzzy, kde-format +#| msgid "Copy and Paste" +msgid "Copy and paste:" +msgstr "Kopiér og indsæt" + +#. i18n: ectx: property (text), widget (QCheckBox, chkTextDragAndDrop) +#: dialogs/editconfigwidget.ui:173 +#, fuzzy, kde-format +#| msgid "Move selected text by drag and drop" +msgid "Move selected text when dragged" +msgstr "Flyt markeret tekst med træk og slip" + +#. i18n: ectx: property (text), widget (QCheckBox, chkSmartCopyCut) +#: dialogs/editconfigwidget.ui:180 +#, fuzzy, kde-format +#| msgid "Copy/Cut the current line if no selection" +msgid "Copy/cut the current line if invoked without any text selected" +msgstr "Kopiér/klip den aktuelle linje hvis intet er markeret" + +#. i18n: ectx: property (text), widget (QCheckBox, chkMousePasteAtCursorPosition) +#: dialogs/editconfigwidget.ui:187 +#, kde-format +msgid "Don't move the text cursor when pasting by mouse" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblClipboardHistoryEntries) +#: dialogs/editconfigwidget.ui:194 +#, fuzzy, kde-format +#| msgid "Clipboard &History" +msgid "Max Clipboard History Entries:" +msgstr "Udklipsholder&historik" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbClipboardHistoryEntries) +#: dialogs/editconfigwidget.ui:204 +#, kde-format +msgid "This determines the number of entries to keep in the clipboard history" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblBracketHelp) +#: dialogs/editconfigwidget.ui:226 +#, kde-format +msgid "" +"When you type these characters while text is selected, they will surround " +"the selected text instead of replacing it." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAccessibility) +#: dialogs/editconfigwidget.ui:252 +#, kde-format +msgid "Enable accessibility notifications" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/editconfigwidget.ui:259 +#, kde-format +msgid "Accessibility:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblFiletype) +#: dialogs/filetypeconfigwidget.ui:14 +#, kde-format +msgid "&Filetype:" +msgstr "&Filtype:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbFiletypes) +#: dialogs/filetypeconfigwidget.ui:24 +#, kde-format +msgid "Select the filetype you want to change." +msgstr "Vælg den filtype du vil ændre." + +#. i18n: ectx: property (whatsThis), widget (QPushButton, btnNew) +#: dialogs/filetypeconfigwidget.ui:31 +#, kde-format +msgid "Create a new file type." +msgstr "Opret en ny filtype." + +#. i18n: ectx: property (text), widget (QPushButton, btnNew) +#: dialogs/filetypeconfigwidget.ui:34 +#, kde-format +msgid "&New" +msgstr "&Ny" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, btnDelete) +#: dialogs/filetypeconfigwidget.ui:41 +#, kde-format +msgid "Delete the current file type." +msgstr "Slet denne filtype." + +#. i18n: ectx: property (text), widget (QPushButton, btnDelete) +#: dialogs/filetypeconfigwidget.ui:44 syntax/katethemeconfig.cpp:1132 +#, kde-format +msgid "&Delete" +msgstr "&Slet" + +#. i18n: ectx: property (title), widget (QGroupBox, gbProperties) +#: dialogs/filetypeconfigwidget.ui:66 mode/katemodeconfigpage.cpp:272 +#, kde-format +msgid "Properties" +msgstr "Egenskaber" + +#. i18n: ectx: property (text), widget (QLabel, lblName) +#: dialogs/filetypeconfigwidget.ui:72 +#, kde-format +msgid "&Name:" +msgstr "&Navn:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtName) +#: dialogs/filetypeconfigwidget.ui:82 +#, kde-format +msgid "" +"The name of the filetype will be the text of the corresponding menu item." +msgstr "Navnet på filtypen vil være teksten for det tilsvarende menupunkt." + +#. i18n: ectx: property (text), widget (QLabel, lblSection) +#: dialogs/filetypeconfigwidget.ui:89 +#, kde-format +msgid "&Section:" +msgstr "&Afsnit:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtSection) +#: dialogs/filetypeconfigwidget.ui:99 +#, kde-format +msgid "The section name is used to organize the file types in menus." +msgstr "Afsnit bruges til at organisere filtyperne i menuer." + +#. i18n: ectx: property (text), widget (QLabel, lblVariables) +#: dialogs/filetypeconfigwidget.ui:106 +#, kde-format +msgid "&Variables:" +msgstr "&Variabler:" + +#. i18n: ectx: property (whatsThis), widget (VariableLineEdit, edtVariables) +#: dialogs/filetypeconfigwidget.ui:116 +#, kde-format +msgid "" +"

This string allows to configure Kate's settings for the files selected by " +"this mimetype using Kate variables. Almost any configuration option can be " +"set, such as highlight, indent-mode, encoding, etc.

For a full list of " +"known variables, see the manual.

" +msgstr "" +"

Denne streng lader dig redigere Kates indstillinger for de filer der " +"vælges af denne mimetype ved brug af Kate-variabler. Du kan sætte næsten et " +"alle indstillinger, såsom syntaksfremhævningstilstand, indrykningstilstand, " +"tegnsæt, osv.

For en fuld liste af kendte variabler, se manualen.

" + +#. i18n: ectx: property (text), widget (QLabel, lblHl) +#: dialogs/filetypeconfigwidget.ui:123 +#, kde-format +msgid "&Highlighting:" +msgstr "&Syntaksfremhævning:" + +#. i18n: ectx: property (text), widget (QLabel, lblIndenter) +#: dialogs/filetypeconfigwidget.ui:136 +#, kde-format +msgid "&Indentation mode:" +msgstr "&Indrykningstilstand:" + +#. i18n: ectx: property (text), widget (QLabel, lblExtensions) +#: dialogs/filetypeconfigwidget.ui:149 +#, kde-format +msgid "File e&xtensions:" +msgstr "File&ndelser:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtFileExtensions) +#: dialogs/filetypeconfigwidget.ui:159 +#, kde-format +msgid "" +"The wildcards mask allows to select files by filename. A typical mask uses " +"an asterisk and the file extension, for example *.txt; *.text. " +"The string is a semicolon-separated list of masks." +msgstr "" +"Jokertegn tillader dig at vælge filer efter filnavn. En typisk maske bruger " +"en stjerne og filendelsen, for eksempel *.txt; *.text. " +"Strengener en liste af masker adskilt af semikoloner." + +#. i18n: ectx: property (text), widget (QLabel, lblMimeTypes) +#: dialogs/filetypeconfigwidget.ui:166 +#, kde-format +msgid "MIME &types:" +msgstr "Mime&typer:" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtMimeTypes) +#: dialogs/filetypeconfigwidget.ui:181 +#, kde-format +msgid "" +"The mime type mask allows to select files by mimetype. The string is a " +"semicolon-separated list of mimetypes, for example text/plain; text/" +"english." +msgstr "" +"Mimetype-masken tillader dig at vælge filer efter mimetype. Strengen er en " +"liste af mimetyper adskilt af semikoloner, for eksempel text/plain; " +"text/english." + +#. i18n: ectx: property (whatsThis), widget (QToolButton, btnMimeTypes) +#: dialogs/filetypeconfigwidget.ui:188 +#, kde-format +msgid "Displays a wizard that helps you easily select mimetypes." +msgstr "Viser en guide der hjælper dig med at vælge mimetyper." + +#. i18n: ectx: property (text), widget (QLabel, lblPriority) +#: dialogs/filetypeconfigwidget.ui:197 +#, kde-format +msgid "P&riority:" +msgstr "Prio&ritet:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbPriority) +#: dialogs/filetypeconfigwidget.ui:207 +#, kde-format +msgid "" +"Sets priority for this file type. If more than one file type selects the " +"same file, the one with the highest priority will be used." +msgstr "" +"Sætter en prioritet for denne filtype. Hvis mere end en filtype vælger den " +"samme fil, vil den filtype med den højeste prioritet blive anvendt." + +#. i18n: ectx: property (text), widget (QLabel, lblMode) +#: dialogs/indentationconfigwidget.ui:43 +#, kde-format +msgid "Default indentation mode:" +msgstr "Standard indrykningstilstand:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbMode) +#: dialogs/indentationconfigwidget.ui:53 +#, kde-format +msgid "" +"This is a list of available indentation modes. The specified indentation " +"mode will be used for all new documents. Be aware that it is also possible " +"to set the indentation mode with document variables, modes or a .kateconfig " +"file." +msgstr "" +"Dette er en liste over tilgængelige indrykningstilstande. Den specificerede " +"indrykningstilstand vil blive brugt i alle nye dokumenter. Vær opmærksom på " +"at det også er muligt at sætte indrykningstilstanden med dokumentvariabler, " +"dokumenttilstande eller en .kateconfig-fil." + +#. i18n: ectx: property (title), widget (QGroupBox, gbIndentationMode) +#: dialogs/indentationconfigwidget.ui:75 +#, kde-format +msgid "Indent using" +msgstr "Indrykning med" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbIndentWidth) +#: dialogs/indentationconfigwidget.ui:81 +#, kde-format +msgid "" +"The indentation width is the number of spaces which is used to indent a " +"line. If the option Insert spaces instead of tabulators in the " +"section Editing is disabled, a Tab character is inserted if " +"the indentation is divisible by the tab width." +msgstr "" +"Indrykningsbredden er antallet af mellemrum som bruges til at indrykke en " +"linje. Hvis indstillingen Indsæt mellemrum i stedet for tabulatorer i " +"sektionen Redigering er deaktiveret indsættes tabulator-tegn " +"når indrykningen er delelig med tabulatorbredden." + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentWithSpaces) +#: dialogs/indentationconfigwidget.ui:97 +#, kde-format +msgid "&Spaces" +msgstr "&Mellemrum" + +#. i18n: ectx: property (text), widget (QLabel, lblIndentWidth) +#: dialogs/indentationconfigwidget.ui:104 +#, kde-format +msgid "&Indentation width:" +msgstr "&Indrykningsbredde:" + +#. i18n: ectx: property (text), widget (QLabel, lblTabWidth) +#: dialogs/indentationconfigwidget.ui:114 +#, kde-format +msgid "Tab wi&dth:" +msgstr "Tabulatorbre&dde:" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentWithTabs) +#: dialogs/indentationconfigwidget.ui:153 +#, kde-format +msgid "&Tabulators" +msgstr "&Tabulatorer" + +#. i18n: ectx: property (text), widget (QRadioButton, rbIndentMixed) +#: dialogs/indentationconfigwidget.ui:160 +#, kde-format +msgid "Tabulators &and Spaces" +msgstr "Tabulatorer &og mellemrum" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoDetectIndent) +#: dialogs/indentationconfigwidget.ui:167 +#, fuzzy, kde-format +#| msgid "A&utomatic end of line detection" +msgid "Automatically detect file indentation" +msgstr "A&utodetektion af linjeafslutning" + +#. i18n: ectx: property (title), widget (QGroupBox, gbProperties) +#: dialogs/indentationconfigwidget.ui:177 +#, kde-format +msgid "Indentation Properties" +msgstr "Indrykningsegenskaber" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkKeepExtraSpaces) +#: dialogs/indentationconfigwidget.ui:183 +#, kde-format +msgid "" +"If this option is disabled, changing the indentation level aligns a line to " +"a multiple of the width specified in Indentation width." +msgstr "" +"Hvis denne indstilling er deaktiveret, vil ændring af indrykningsniveauet " +"justere en linje i forhold til en multiplikator af bredden angivet i " +"Indrykningsbredde." + +#. i18n: ectx: property (text), widget (QCheckBox, chkKeepExtraSpaces) +#: dialogs/indentationconfigwidget.ui:186 +#, kde-format +msgid "&Keep extra spaces" +msgstr "&Behold ekstra mellemrum" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkIndentPaste) +#: dialogs/indentationconfigwidget.ui:193 +#, kde-format +msgid "" +"If this option is selected, pasted code from the clipboard is indented. " +"Triggering the undo-action removes the indentation." +msgstr "" +"Hvis denne indstilling er aktiveret, indrykkes kode som indsættes fra " +"udklipsholderen. Ved at bruge valget fortryd kan indrykningen fjernes." + +#. i18n: ectx: property (text), widget (QCheckBox, chkIndentPaste) +#: dialogs/indentationconfigwidget.ui:196 +#, kde-format +msgid "Adjust indentation of code &pasted from the clipboard" +msgstr "Tilpas indrykning af kode som in&dsættes fra udklipsholderen" + +#. i18n: ectx: property (title), widget (QGroupBox, gbKeys) +#: dialogs/indentationconfigwidget.ui:206 +#, kde-format +msgid "Indentation Actions" +msgstr "Indrykningshandlinger" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackspaceUnindents) +#: dialogs/indentationconfigwidget.ui:212 +#, kde-format +msgid "" +"If this option is selected, the Backspace key decreases the " +"indentation level if the cursor is located in the leading blank space of a " +"line." +msgstr "" +"Hvis denne indstilling er aktiveret, formindsker Backspace-tasten " +"indrykningsniveauet hvis markøren er placeret i den foranstillede blanke del " +"af en linje." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackspaceUnindents) +#: dialogs/indentationconfigwidget.ui:215 +#, kde-format +msgid "&Backspace key in leading blank space unindents" +msgstr "&Backspace-tast i foranstillede blanktegn af-indrykker" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/indentationconfigwidget.ui:225 +#, fuzzy, kde-format +#| msgid "" +#| "\n" +#| "

Tab key action (if no selection exists) Tab to align the current line in the current code block like in emacs, " +#| "make Tab a shortcut to the action Align.\">More ...

" +msgid "" +"\n" +"

Tab key action (if no selection exists) Tab " +"to align the current line in the current code block like in Emacs, make " +"Tab a shortcut to the action Format Indentation." +"\">More ...

" +msgstr "" +"\n" +"

Handling for tabulatortast (hvis ingen markering findes) Tabulator skal justere den aktuelle linje i den aktuelle " +"kodeblok som i Emacs, så gør Tabulator til en genvej til handlingen " +"Justér.\">Mere ...

" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabAdvances) +#: dialogs/indentationconfigwidget.ui:276 +#, kde-format +msgid "" +"If this option is selected, the Tab key always inserts white space so " +"that the next tab position is reached. If the option Insert spaces " +"instead of tabulators in the section Editing is enabled, spaces " +"are inserted; otherwise, a single tabulator is inserted." +msgstr "" +"Hvis denne indstilling er valgt, indsætter Tabulator-tasten altid " +"mellemrum således at næste tabulatorstop nås. Hvis indstillingen Indsæt " +"mellemrum i stedet for tabulatorer i sektionen Redigering er " +"aktiveret indsættes mellemrum. Ellers indsættes en enkelt tabulator." + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabAdvances) +#: dialogs/indentationconfigwidget.ui:279 +#, kde-format +msgid "Always advance to the &next tab position" +msgstr "Gå altid frem til &næste tabulatorposition" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabIndents) +#: dialogs/indentationconfigwidget.ui:286 +#, kde-format +msgid "" +"If this option is selected, the Tab key always indents the current " +"line by the number of character positions specified in Indentation width." +msgstr "" +"Hvis denne indstilling er valgt, indrykker Tabulator-tasten altid den " +"nuværende linje med antallet af tegnpositioner angivet i " +"Indrykningsbredde." + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabIndents) +#: dialogs/indentationconfigwidget.ui:289 +#, kde-format +msgid "Always increase indentation &level" +msgstr "Forøg altid indryknings&niveau" + +#. i18n: ectx: property (whatsThis), widget (QRadioButton, rbTabSmart) +#: dialogs/indentationconfigwidget.ui:296 +#, kde-format +msgid "" +"If this option is selected, the Tab key either indents the current " +"line or advances to the next tab position.

If the insertion point is at " +"or before the first non-space character in the line, or if there is a " +"selection, the current line is indented by the number of character positions " +"specified in Indentation width.

If the insertion point is located " +"after the first non-space character in the line and there is no selection, " +"white space is inserted so that the next tab position is reached: if the " +"option Insert spaces instead of tabulators in the section Editing is enabled, spaces are inserted; otherwise, a single tabulator is " +"inserted." +msgstr "" +"Hvis denne indstilling er valg, indrykker Tabulator-tasten enten den " +"nuværende linje eller går frem til næste tabulatorposition.

Hvis " +"indsættelsespunktet er ved eller før det første tegn som ikke er et " +"mellemrum i linjen, eller hvis der er en markering, indrykkes den nuværende " +"linje med antallet af tegnpositioner angivet i Indrykningsbredde.

" +"Hvis indsættelsespunktet er placeret efter det første tegn som ikke er et " +"mellemrum og der ikke er nogen markering, indsættes mellemrum således at den " +"næste tabulatorposition nås. Hvis indstillingen Indsæt mellemrum i stedet " +"for tabulatorer i sektionen Redigering er aktiveret, indsættes " +"mellemrum. Ellers indsætte en enkelt tabulator." + +#. i18n: ectx: property (text), widget (QRadioButton, rbTabSmart) +#: dialogs/indentationconfigwidget.ui:299 +#, kde-format +msgid "Increase indentation level if in l&eading blank space" +msgstr "Forøg indrykningsniveau hvis i &foranstillede mellemrum" + +#: dialogs/katedialogs.cpp:185 dialogs/katedialogs.cpp:187 +#, fuzzy, kde-format +#| msgid " character" +#| msgid_plural " characters" +msgid "%v character" +msgid_plural "%v characters" +msgstr[0] " tegn" +msgstr[1] " tegn" + +#: dialogs/katedialogs.cpp:211 +#, kde-format +msgid "Indentation" +msgstr "Indrykning" + +#: dialogs/katedialogs.cpp:295 +#, kde-format +msgid "Auto Completion" +msgstr "Auto-fuldførelse" + +#: dialogs/katedialogs.cpp:362 +#, kde-format +msgid "Spellcheck" +msgstr "Stavekontrol" + +#: dialogs/katedialogs.cpp:410 dialogs/katedialogs.cpp:417 +#, fuzzy, kde-format +#| msgctxt "@item:intable Text context" +#| msgid "Alert" +msgid "Alt" +msgstr "Advarsel" + +#: dialogs/katedialogs.cpp:411 dialogs/katedialogs.cpp:419 +#, kde-format +msgid "Ctrl" +msgstr "" + +#: dialogs/katedialogs.cpp:412 +#, kde-format +msgid "Meta" +msgstr "" + +#: dialogs/katedialogs.cpp:413 dialogs/katedialogs.cpp:421 +#, kde-format +msgid "Ctrl + Alt" +msgstr "" + +#: dialogs/katedialogs.cpp:414 +#, kde-format +msgid "Meta + Alt" +msgstr "" + +#: dialogs/katedialogs.cpp:415 +#, kde-format +msgid "Ctrl + Meta" +msgstr "" + +#: dialogs/katedialogs.cpp:418 +#, fuzzy, kde-format +#| msgid "Command" +msgid "Cmd" +msgstr "Kommando" + +#: dialogs/katedialogs.cpp:420 +#, kde-format +msgid "Cmd + Alt" +msgstr "" + +#: dialogs/katedialogs.cpp:422 +#, kde-format +msgid "Cmd + Ctrl" +msgstr "" + +#: dialogs/katedialogs.cpp:480 +#, kde-format +msgid "Text Navigation" +msgstr "Tekstnavigation" + +#: dialogs/katedialogs.cpp:582 +#, fuzzy, kde-format +#| msgid " character" +#| msgid_plural " characters" +msgctxt "Wrap words at (value is at 20 or larger)" +msgid "%v character" +msgid_plural "%v characters" +msgstr[0] " tegn" +msgstr[1] " tegn" + +#: dialogs/katedialogs.cpp:587 +#, kde-format +msgid "Feature is not active" +msgstr "Funktionen er ikke aktiv" + +#: dialogs/katedialogs.cpp:589 +#, kde-format +msgid "Disable Feature" +msgstr "Deaktivér funktion" + +#: dialogs/katedialogs.cpp:591 +#, kde-format +msgid "May be handy with Markdown" +msgstr "Kan være nyttigt med markdown" + +#: dialogs/katedialogs.cpp:593 +#, kde-format +msgid "Mirror characters, similar but not exactly like auto brackets" +msgstr "Spejl karakterer, minder om, men er ikke det samme som, autoklammer" + +#: dialogs/katedialogs.cpp:595 +#, kde-format +msgid "Non letter character" +msgstr "Tegn som ikke er bogstaver" + +#: dialogs/katedialogs.cpp:712 +#, kde-format +msgid "Editing" +msgstr "Redigering" + +#: dialogs/katedialogs.cpp:717 +#, kde-format +msgid "Editing Options" +msgstr "Redigeringsindstillinger" + +#: dialogs/katedialogs.cpp:751 +#, fuzzy, kde-format +#| msgctxt "Language" +#| msgid "Stata" +msgid "Statusbar" +msgstr "Stata" + +#: dialogs/katedialogs.cpp:753 +#, kde-format +msgid "Off" +msgstr "Fra" + +#: dialogs/katedialogs.cpp:754 +#, kde-format +msgid "Follow Line Numbers" +msgstr "Følg linjenumre" + +#: dialogs/katedialogs.cpp:945 dialogs/katedialogs.cpp:950 +#, kde-format +msgid "Appearance" +msgstr "Udseende" + +#: dialogs/katedialogs.cpp:986 +#, kde-format +msgid "" +"%1 backs up unsaved files to \"swap files.\" Swap files allow %1 to recover " +"your work in the case of a system crash. Disabling swap files may cause data " +"loss in case of a system crash." +msgstr "" + +#: dialogs/katedialogs.cpp:1027 +#, kde-format +msgid "Advanced" +msgstr "Avanceret" + +#: dialogs/katedialogs.cpp:1092 +#, kde-format +msgid "" +"You did not provide a backup suffix or prefix. Using default suffix: '~'" +msgstr "" +"Du angav ikke en endelse eller præfiks for backup-filen, bruger " +"standardendelse: \"~\"" + +#: dialogs/katedialogs.cpp:1092 +#, kde-format +msgid "No Backup Suffix or Prefix" +msgstr "Ingen filendelse eller præfiks til backup" + +#: dialogs/katedialogs.cpp:1227 +#, kde-format +msgid "Open/Save" +msgstr "Åbn/gem" + +#: dialogs/katedialogs.cpp:1232 +#, kde-format +msgid "File Opening & Saving" +msgstr "Åbning og gemning af filer" + +#: dialogs/katedialogs.cpp:1255 +#, kde-format +msgid "&Line:" +msgstr "&linje:" + +#: dialogs/katedialogs.cpp:1256 +#, kde-format +msgid "Go to line number from clipboard" +msgstr "Gå til linjenummer fra udklipsholderen" + +#: dialogs/katedialogs.cpp:1267 +#, kde-format +msgid "Go to" +msgstr "Gå til" + +#: dialogs/katedialogs.cpp:1347 +#, kde-format +msgid "No valid line number found in clipboard" +msgstr "Intet gyldigt linjenummer fundet i udklipsholderen" + +#: dialogs/katedialogs.cpp:1411 +#, kde-format +msgid "Dictionary:" +msgstr "Ordbog:" + +#: dialogs/katedialogs.cpp:1463 +#, kde-format +msgid "Enable Auto Reload" +msgstr "Aktivér autogenindlæsning" + +#: dialogs/katedialogs.cpp:1466 +#, kde-format +msgid "" +"Reloads and will automatically reload without warning about disk changes " +"from now until you close either the tab or window." +msgstr "" + +#: dialogs/katedialogs.cpp:1471 +#, kde-format +msgid "View &Difference" +msgstr "Vis &forskel" + +#: dialogs/katedialogs.cpp:1473 +#, fuzzy, kde-format +#| msgid "Shows a diff of the changes" +msgid "Shows a diff of the changes." +msgstr "Viser en diff over ændringerne" + +#: dialogs/katedialogs.cpp:1478 +#, kde-format +msgid "&Reload" +msgstr "&Genindlæs" + +#: dialogs/katedialogs.cpp:1480 +#, fuzzy, kde-format +#| msgid "Reload the file from disk. Unsaved changes will be lost." +msgid "Reloads the file from disk. Unsaved changes will be lost." +msgstr "Genindlæs filen fra disken. Ikke-gemte ændringer vil gå tabt." + +#: dialogs/katedialogs.cpp:1484 +#, kde-format +msgctxt "@action:button closes the opened file" +msgid "&Close File" +msgstr "&Luk fil" + +#: dialogs/katedialogs.cpp:1486 +#, fuzzy, kde-format +#| msgid "Close the file, discarding its content." +msgid "Closes the file, discarding its content." +msgstr "Luk filen og kassér indholdet." + +#: dialogs/katedialogs.cpp:1490 +#, fuzzy, kde-format +#| msgid "&Save As..." +msgctxt "@action" +msgid "&Save As…" +msgstr "&Gem som..." + +#: dialogs/katedialogs.cpp:1492 +#, kde-format +msgid "Lets you select a location and save the file again." +msgstr "Lader dig vælge en placering og gemme filen igen." + +#. i18n: ectx: property (text), widget (QPushButton, m_skipBtn) +#: dialogs/katedialogs.cpp:1497 spellcheck/spellcheckbar.ui:143 +#, kde-format +msgid "&Ignore" +msgstr "&Ignorér" + +#: dialogs/katedialogs.cpp:1498 +#, kde-format +msgid "Ignores the changes on disk without any action." +msgstr "Ignorerer ændringerne på disken uden handling." + +#: dialogs/katedialogs.cpp:1567 swapfile/kateswapdiffcreator.cpp:131 +#, kde-format +msgid "" +"The diff command failed. Please make sure that diff(1) is installed and in " +"your PATH." +msgstr "" +"Kørsel af diff-kommandoen mislykkedes. Sørg for at diff(1) er installeret og " +"i din søgesti (PATH)." + +#: dialogs/katedialogs.cpp:1569 swapfile/kateswapdiffcreator.cpp:89 +#: swapfile/kateswapdiffcreator.cpp:99 swapfile/kateswapdiffcreator.cpp:133 +#, kde-format +msgid "Error Creating Diff" +msgstr "Fejl ved oprettelse af diff" + +#: dialogs/katedialogs.cpp:1576 swapfile/kateswapdiffcreator.cpp:140 +#, kde-format +msgid "The files are identical." +msgstr "Filerne er identiske." + +#: dialogs/katedialogs.cpp:1576 swapfile/kateswapdiffcreator.cpp:140 +#, kde-format +msgid "Diff Output" +msgstr "Diff-output" + +#. i18n: ectx: property (title), widget (QGroupBox, gbCursorMovement) +#: dialogs/navigationconfigwidget.ui:29 +#, kde-format +msgid "Text Cursor Movement" +msgstr "Tekstmarkør-bevægelse" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkSmartHome) +#: dialogs/navigationconfigwidget.ui:35 +#, kde-format +msgid "" +"When selected, pressing the home key will cause the cursor to skip " +"whitespace and go to the start of a line's text. The same applies for the " +"end key." +msgstr "" +"Hvis aktiveret, vil tryk på Home-tasten få markøren til at ignorere blanke " +"tegn og gå til begyndelsen af en linjes tekst. Det samme gælder for End-" +"tasten" + +#. i18n: ectx: property (text), widget (QCheckBox, chkSmartHome) +#: dialogs/navigationconfigwidget.ui:38 +#, kde-format +msgid "Smart ho&me and smart end" +msgstr "Smart &home og smart end" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkPagingMovesCursor) +#: dialogs/navigationconfigwidget.ui:45 +#, kde-format +msgid "" +"Selects whether the PageUp and PageDown keys should alter the vertical " +"position of the cursor relative to the top of the view." +msgstr "" +"Bestemmer om PageUp- og PageDown-tasterne skal ændre den lodrette placering " +"af markøren relativt til toppen af tekstvinduet." + +#. i18n: ectx: property (text), widget (QCheckBox, chkPagingMovesCursor) +#: dialogs/navigationconfigwidget.ui:48 +#, kde-format +msgid "&PageUp/PageDown moves cursor" +msgstr "&PageUp/PageDown flytter markør" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkCamelCursor) +#: dialogs/navigationconfigwidget.ui:55 +#, fuzzy, kde-format +#| msgid "" +#| "Selects whether cursor jumps full words or breaks at camel case humps." +msgid "" +"Selects whether cursor stops at camel case humps and underscores within a " +"word." +msgstr "" +"Vælg om markøren springer hele ord eller stopper ved store bogstaver (camel " +"case)." + +#. i18n: ectx: property (text), widget (QCheckBox, chkCamelCursor) +#: dialogs/navigationconfigwidget.ui:58 +#, kde-format +msgid "" +"Stop at 'camelCase' and 'snake_case' subwords when moving the cursor by word" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:79 +#, kde-format +msgid "&Autocenter cursor:" +msgstr "&Autocentrér markør:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:89 +#, kde-format +msgid "" +"Sets the number of lines to maintain visible above and below the cursor when " +"possible." +msgstr "" +"Indstiller antaller af linjer der skal holdes synlige over og under markøren " +"om muligt." + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, spbSwapFileSync) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:92 dialogs/opensaveconfigadvwidget.ui:120 +#: dialogs/opensaveconfigadvwidget.ui:168 +#, kde-format +msgid "Disabled" +msgstr "Deaktiveret" + +#. i18n: ectx: property (suffix), widget (QSpinBox, sbAutoCenterCursor) +#: dialogs/navigationconfigwidget.ui:95 +#, kde-format +msgid " lines" +msgstr " linjer" + +#. i18n: ectx: property (title), widget (QGroupBox, cbNavigationMisc) +#: dialogs/navigationconfigwidget.ui:120 +#, kde-format +msgid "Misc" +msgstr "Diverse" + +#. i18n: ectx: property (text), widget (QLabel, lblTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:128 +#, kde-format +msgid "Text selection mode:" +msgstr "Tekstmarkeringstilstand:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:139 inputmode/katenormalinputmode.cpp:64 +#: mode/katemodemanager.cpp:162 +#, kde-format +msgid "Normal" +msgstr "Normal" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbTextSelectionMode) +#: dialogs/navigationconfigwidget.ui:144 +#, kde-format +msgid "Persistent" +msgstr "Persistent" + +#. i18n: ectx: property (text), widget (QCheckBox, chkScrollPastEnd) +#: dialogs/navigationconfigwidget.ui:167 +#, kde-format +msgid "Allow scrolling past the end of the document" +msgstr "Tillad rulning forbi dokumentets slutning" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackspaceRemoveComposed) +#: dialogs/navigationconfigwidget.ui:174 +#, kde-format +msgid "" +"When selected, composed characters are removed with their diacritics instead " +"of only removing the base character. This is useful for Indic locales." +msgstr "" +"Når markeret fjernes udvidede tegn med deres diakritiske tegn i stedet for " +"kun at fjerne basistegnet. Dette er nyttigt til indiske " +"lokalitetsindstillinger." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackspaceRemoveComposed) +#: dialogs/navigationconfigwidget.ui:177 +#, kde-format +msgid "Backspace key removes character’s base with its diacritics" +msgstr "Backspace-tasten fjerner basistegnet med dets diakritiske tegn" + +#. i18n: ectx: property (text), widget (QCheckBox, cbCycleBookmarks) +#: dialogs/navigationconfigwidget.ui:184 +#, fuzzy, kde-format +#| msgid "Go to the previous bookmark." +msgid "Allow to cycle through bookmarks" +msgstr "Gå til det forrige bogmærke." + +#. i18n: ectx: property (title), widget (QGroupBox, gbMulticursor) +#: dialogs/navigationconfigwidget.ui:194 +#, fuzzy, kde-format +#| msgid "From &cursor" +msgid "Multicursor" +msgstr "Fra &markør" + +#. i18n: ectx: property (text), widget (QLabel, lblMulticursormodifiers) +#: dialogs/navigationconfigwidget.ui:200 +#, kde-format +msgid "Multiple Cursor Modifiers" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoReloadVersionControl) +#: dialogs/opensaveconfigadvwidget.ui:34 +#, kde-format +msgid "Auto reload files in version control" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkAutoReloadOnExternalChanges) +#: dialogs/opensaveconfigadvwidget.ui:41 +#, kde-format +msgid "Auto reload files on external changes" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/opensaveconfigadvwidget.ui:48 +#, kde-format +msgid "Write a backup file on save for:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackupLocalFiles) +#: dialogs/opensaveconfigadvwidget.ui:55 +#, kde-format +msgid "" +"If this option is enabled, backups for local files will be created when " +"saving." +msgstr "" +"Hvis denne indstilling er aktiveret, vil der blive taget backup af lokale " +"filer når de gemmes." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackupLocalFiles) +#: dialogs/opensaveconfigadvwidget.ui:58 +#, kde-format +msgid "&Local files" +msgstr "&Lokale filer" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkBackupRemoteFiles) +#: dialogs/opensaveconfigadvwidget.ui:65 +#, kde-format +msgid "" +"If this option is enabled, backups for remote files will be created when " +"saving." +msgstr "" +"Hvis denne indstilling er aktiveret, vil der blive taget backup af eksterne " +"filer når de gemmes." + +#. i18n: ectx: property (text), widget (QCheckBox, chkBackupRemoteFiles) +#: dialogs/opensaveconfigadvwidget.ui:68 +#, kde-format +msgid "&Remote files" +msgstr "&Eksterne filer" + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/opensaveconfigadvwidget.ui:75 +#, kde-format +msgid "Prefix for backup files:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtBackupPrefix) +#: dialogs/opensaveconfigadvwidget.ui:85 +#, kde-format +msgid "Enter the prefix to prepend to the backup file names." +msgstr "Angiv det præfiks som backup-fillens navn skal starte med." + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/opensaveconfigadvwidget.ui:92 +#, kde-format +msgid "Suffix for backup files:" +msgstr "" + +#. i18n: ectx: property (whatsThis), widget (QLineEdit, edtBackupSuffix) +#: dialogs/opensaveconfigadvwidget.ui:102 +#, kde-format +msgid "Enter the suffix to append to the backup file names." +msgstr "Angiv den endelse der skal tilføjes til backup-filers navn." + +#. i18n: ectx: property (text), widget (QLabel, lblSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:109 +#, fuzzy, kde-format +#| msgid "Swap file:" +msgid "Swap file mode:" +msgstr "Swap-fil:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:125 +#, kde-format +msgid "Enabled, Store In Default Directory" +msgstr "" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbSwapFileMode) +#: dialogs/opensaveconfigadvwidget.ui:130 +#, kde-format +msgid "Enabled, Store In Custom Directory" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapDirectory) +#: dialogs/opensaveconfigadvwidget.ui:138 +#, fuzzy, kde-format +#| msgid "Swap file:" +msgid "Store swap files in:" +msgstr "Swap-fil:" + +#. i18n: ectx: property (text), widget (QLabel, lblSwapFileSync) +#: dialogs/opensaveconfigadvwidget.ui:158 +#, fuzzy, kde-format +#| msgid "Disable swap files syncing" +msgid "Save swap files every:" +msgstr "Deaktivér synkronisering af swap-filer" + +#. i18n: ectx: property (suffix), widget (QSpinBox, spbSwapFileSync) +#: dialogs/opensaveconfigadvwidget.ui:171 +#, kde-format +msgid "s" +msgstr "s" + +#. i18n: ectx: property (text), widget (QLabel, lblExplanatory) +#: dialogs/opensaveconfigadvwidget.ui:196 +#, kde-format +msgid "" +"This string is located in katedialogs.cpp in KateSaveConfigTab's constructor." +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkEditorConfig) +#: dialogs/opensaveconfigadvwidget.ui:209 +#, fuzzy, kde-format +#| msgid "Do not use config file" +msgid "Honor settings in .editorconfig file" +msgstr "Brug ikke konfigurationsfil" + +#. i18n: ectx: property (text), widget (QCheckBox, chkUseFirstLineAsDocName) +#: dialogs/opensaveconfigadvwidget.ui:229 +#, fuzzy, kde-format +#| msgid "Use this to close the current document" +msgid "Use first line of untitled documents for document name" +msgstr "Brug denne til at lukke aktive dokument" + +#. i18n: ectx: property (title), widget (QGroupBox, gbFileFormat) +#: dialogs/opensaveconfigwidget.ui:29 +#, kde-format +msgid "File Format" +msgstr "Filformat" + +#. i18n: ectx: property (text), widget (QLabel, lblEncoding) +#: dialogs/opensaveconfigwidget.ui:40 +#, kde-format +msgid "&Encoding:" +msgstr "&Tegnsæt:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncoding) +#: dialogs/opensaveconfigwidget.ui:50 +#, kde-format +msgid "" +"This defines the standard encoding to use to open/save files, if not changed " +"in the open/save dialog or by using a command line option." +msgstr "" +"Dette bestemmer standardtegnsættet der skal bruges til at åbne/gemme filer, " +"hvis det ikke ændres i åbn-/gem-dialogen eller ved brug af et " +"kommandolinjetilvalg." + +#. i18n: ectx: property (text), widget (QLabel, lblEncodingDetection) +#: dialogs/opensaveconfigwidget.ui:57 +#, kde-format +msgid "&Encoding detection:" +msgstr "D&etektering af tegnsæt:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncodingDetection) +#: dialogs/opensaveconfigwidget.ui:67 +#, kde-format +msgid "" +"if neither the encoding chosen as standard above, nor the encoding specified " +"in the open/save dialog, nor the encoding specified on command line match " +"the content of the file, this detection will be run." +msgstr "" +"Hvis hverken det tegnsæt der er valgt som standard ovenfor, eller tegnsættet " +"angivet i åbn-/gem-dialogen, eller tegnsættet angivet på kommandolinjen, " +"matcher indholdet af filen vil denne detektering blive kørt." + +#. i18n: ectx: property (text), widget (QLabel, lblEncodingDetection2) +#: dialogs/opensaveconfigwidget.ui:74 +#, kde-format +msgid "&Fallback encoding:" +msgstr "&Reservetegnsæt:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbEncodingFallback) +#: dialogs/opensaveconfigwidget.ui:84 +#, kde-format +msgid "" +"This defines the fallback encoding to try for opening files if neither the " +"encoding chosen as standard above, nor the encoding specified in the open/" +"save dialog, nor the encoding specified on command line match the content of " +"the file. Before this is used, an attempt will be made to determine the " +"encoding to use by looking for a byte order mark at start of file: if one is " +"found, the right Unicode encoding will be chosen; otherwise encoding " +"detection will run, if both fail the fallback encoding will be tried." +msgstr "" +"Dette bestemmer det reservetegnsæt der skal prøves til åbning af filer, hvis " +"hverken det tegnsæt der er valgt som standard ovenfor, eller tegnsættet " +"angivet i åbn-/gem-dialogen, eller tegnsættet angivet på kommandolinjen, " +"matcher indholdet af filen. Før dette bruges gøres et forsøg på at bestemme " +"tegnsættet ved at lede efter en byterækkefølge-markør i starten af filen. " +"Hvis der findes en, vil det korrekte unicode-tegnsæt blive valgt, ellers vil " +"tegnsætdetekteringen køre, hvis begge fejler vil reservetegnsættet blive " +"prøvet." + +#. i18n: ectx: property (text), widget (QLabel, lblEOL) +#: dialogs/opensaveconfigwidget.ui:91 +#, kde-format +msgid "E&nd of line:" +msgstr "&Linjeafslutning:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:102 +#, kde-format +msgid "UNIX" +msgstr "UNIX" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:107 +#, kde-format +msgid "DOS/Windows" +msgstr "DOS/Windows" + +#. i18n: ectx: property (text), item, widget (QComboBox, cmbEOL) +#: dialogs/opensaveconfigwidget.ui:112 +#, kde-format +msgid "Macintosh" +msgstr "Macintosh" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkDetectEOL) +#: dialogs/opensaveconfigwidget.ui:122 +#, kde-format +msgid "" +"If this option is enabled the editor will autodetect the end of line type. " +"The first found end of line type will be used for the whole file." +msgstr "" +"Hvis denne indstilling er aktiveret vil editoren automatisk vælge " +"linjeafslutningstype. Den først forekommende linjeafslutningstype vil blive " +"brugt i hele filen." + +#. i18n: ectx: property (text), widget (QCheckBox, chkDetectEOL) +#: dialogs/opensaveconfigwidget.ui:125 +#, kde-format +msgid "A&utomatic end of line detection" +msgstr "A&utodetektion af linjeafslutning" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkEnableBOM) +#: dialogs/opensaveconfigwidget.ui:132 +#, kde-format +msgid "" +"The byte order mark is a special sequence at the beginning of Unicode " +"encoded documents. It helps editors to open text documents with the correct " +"Unicode encoding. The byte order mark is not visible in the displayed " +"document." +msgstr "" +"Byterækkefølge-markøren er en særlig sekvens i begyndelsen af dokumenter med " +"Unicode-tegnsæt. Det hjælper editorer med at åbne tekstdokumenter med det " +"korrekte Unicode-tegnsæt. Byterækkefølge-markøren er ikke synlig i det viste " +"dokument." + +#. i18n: ectx: property (text), widget (QCheckBox, chkEnableBOM) +#: dialogs/opensaveconfigwidget.ui:135 +#, kde-format +msgid "Enable byte order mark (BOM)" +msgstr "Aktivér byterækkefølge-mærke (BOM)" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/opensaveconfigwidget.ui:142 +#, kde-format +msgid "Line length limit:" +msgstr "Grænse på linjelængde:" + +#. i18n: ectx: property (specialValueText), widget (QSpinBox, lineLengthLimit) +#: dialogs/opensaveconfigwidget.ui:152 +#, kde-format +msgid "Unlimited" +msgstr "Ubegrænset" + +#. i18n: ectx: property (title), widget (QGroupBox, gbCleanups) +#: dialogs/opensaveconfigwidget.ui:168 +#, kde-format +msgid "Automatic Cleanups on Save" +msgstr "Automatisk oprydning ved gem" + +#. i18n: ectx: property (whatsThis), widget (QLabel, lblRemoveTrailingSpaces) +#. i18n: ectx: property (whatsThis), widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:176 dialogs/opensaveconfigwidget.ui:189 +#, kde-format +msgid "" +"Depending on the choice, trailing spaces are removed when saving a document, " +"either in the entire document or only of modified lines." +msgstr "" +"Efterstillede mellemrum fjernes ved gemning afhængigt af valget. Enten i " +"hele dokumentet eller kun ved ændrede linjer." + +#. i18n: ectx: property (text), widget (QLabel, lblRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:179 +#, kde-format +msgid "Re&move trailing spaces:" +msgstr "&Fjern efterstillede mellemrum:" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#. i18n: ectx: property (specialValueText), widget (QSpinBox, spbAutoSaveInterval) +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/opensaveconfigwidget.ui:193 dialogs/opensaveconfigwidget.ui:270 +#: dialogs/textareaappearanceconfigwidget.ui:104 +#, kde-format +msgid "Never" +msgstr "Aldrig" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:198 +#, kde-format +msgid "On Modified Lines" +msgstr "Ved ændrede linjer" + +#. i18n: ectx: property (text), item, widget (QComboBox, cbRemoveTrailingSpaces) +#: dialogs/opensaveconfigwidget.ui:203 +#, kde-format +msgid "In Entire Document" +msgstr "I hele dokumentet" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkNewLineAtEof) +#: dialogs/opensaveconfigwidget.ui:226 +#, kde-format +msgid "" +"On save, a line break is appended to the document if not already present. " +"The line break is visible after reloading the file." +msgstr "" +"Der tilføjes et linjeskift til dokumentet ved gemning, hvis der ikke " +"allerede er et. Linjeskiftet er synligt efter genindlæsning af filen." + +#. i18n: ectx: property (text), widget (QCheckBox, chkNewLineAtEof) +#: dialogs/opensaveconfigwidget.ui:229 +#, kde-format +msgid "Append newline at end of file on save" +msgstr "Tilføj linjeskift nederst i filen ved gemning" + +#. i18n: ectx: property (title), widget (QGroupBox, gbAutoSave) +#: dialogs/opensaveconfigwidget.ui:239 +#, fuzzy, kde-format +#| msgid "Enable Auto Reload" +msgid "Enable Auto Save (local files only)" +msgstr "Aktivér autogenindlæsning" + +#. i18n: ectx: property (text), widget (QCheckBox, cbAutoSaveOnFocus) +#: dialogs/opensaveconfigwidget.ui:254 +#, kde-format +msgid "Auto save document when the active document is losing focus" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/opensaveconfigwidget.ui:263 +#, kde-format +msgid "Auto save interval:" +msgstr "" + +#. i18n: ectx: property (suffix), widget (QSpinBox, spbAutoSaveInterval) +#: dialogs/opensaveconfigwidget.ui:273 +#, kde-format +msgid " seconds" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowHighlightingMode) +#: dialogs/statusbarconfigwidget.ui:19 +#, fuzzy, kde-format +#| msgid "Syntax highlighting" +msgid "Show highlighting mode" +msgstr "Syntaksfremhævning" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowInputMode) +#: dialogs/statusbarconfigwidget.ui:26 +#, fuzzy, kde-format +#| msgid "Use Vi input mode" +msgid "Show input mode" +msgstr "Brug Vi-input-tilstand" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowActiveDictionary) +#: dialogs/statusbarconfigwidget.ui:33 +#, fuzzy, kde-format +#| msgid "Change dictionary" +msgid "Show active dictionary" +msgstr "Skift ordbog" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowTabSetting) +#: dialogs/statusbarconfigwidget.ui:40 +#, fuzzy, kde-format +#| msgid "Show tab indicators:" +msgid "Show tab setting" +msgstr "Vis tabulatorindikering:" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowLineColumn) +#: dialogs/statusbarconfigwidget.ui:47 +#, fuzzy, kde-format +#| msgid "Show line count" +msgid "Show line column" +msgstr "Vis antal linjer" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowEncoding) +#: dialogs/statusbarconfigwidget.ui:54 +#, fuzzy, kde-format +#| msgid "Broken Encoding" +msgid "Show File Encoding" +msgstr "Defekt tegnsæt" + +#. i18n: ectx: property (text), widget (QCheckBox, cbShowEOL) +#: dialogs/statusbarconfigwidget.ui:61 +#, kde-format +msgid "Show Line Ending Type" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: dialogs/textareaappearanceconfigwidget.ui:28 +#, kde-format +msgid "Editor font:" +msgstr "Editorskrifttype:" + +#. i18n: ectx: property (text), widget (QLabel, lblLineHeight) +#: dialogs/textareaappearanceconfigwidget.ui:48 +#, fuzzy, kde-format +#| msgid "Line length limit:" +msgid "&Line Height Multiplier:" +msgstr "Grænse på linjelængde:" + +#. i18n: ectx: property (toolTip), widget (QDoubleSpinBox, spbLineHeightMultiplier) +#: dialogs/textareaappearanceconfigwidget.ui:58 +#, kde-format +msgid "" +"This value will be multiplied with the font's default line height. A value " +"of 1.0 means that the default height will be used." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: dialogs/textareaappearanceconfigwidget.ui:93 +#, kde-format +msgid "Show whitespace indicators:" +msgstr "Vis indikering af blanktegn:" + +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/textareaappearanceconfigwidget.ui:109 +#, kde-format +msgid "At the end of a line" +msgstr "Ved linjens slutning" + +#. i18n: ectx: property (text), item, widget (QComboBox, spacesComboBox) +#: dialogs/textareaappearanceconfigwidget.ui:114 +#, kde-format +msgid "Always" +msgstr "Altid" + +#. i18n: ectx: property (text), widget (QLabel, lbMarkerDescription) +#: dialogs/textareaappearanceconfigwidget.ui:122 +#, fuzzy, kde-format +#| msgid "Whitespace indicator size:" +msgid "Whitespace indicator si&ze:" +msgstr "Størrelse på indikering af blanktegn:" + +#. i18n: ectx: property (whatsThis), widget (QSlider, sliSetMarkerSize) +#: dialogs/textareaappearanceconfigwidget.ui:138 +#, kde-format +msgid "Size of the visible highlight marker." +msgstr "Størrelse på den synlige fremhævningsmarkør." + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: dialogs/textareaappearanceconfigwidget.ui:166 +#, fuzzy, kde-format +#| msgid "Show tab indicators:" +msgid "Show &tab indicators:" +msgstr "Vis tabulatorindikering:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowTabs) +#: dialogs/textareaappearanceconfigwidget.ui:176 +#, kde-format +msgid "" +"The editor will display a symbol to indicate the presence of a tab in the " +"text." +msgstr "Et symbol som angiver et tabulatur-tegn i teksten vil blive vist." + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: dialogs/textareaappearanceconfigwidget.ui:202 +#, kde-format +msgid "Bracket matching:" +msgstr "Klamme-matchning:" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowWholeBracketExpression) +#: dialogs/textareaappearanceconfigwidget.ui:209 +#, kde-format +msgid "" +"If this is enabled, the range between the selected matching brackets will be " +"highlighted." +msgstr "" +"Hvis denne indstilling er aktiveret vil området mellem de markerede " +"modsvarende klammer blive fremhævet." + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowWholeBracketExpression) +#: dialogs/textareaappearanceconfigwidget.ui:212 +#, kde-format +msgid "Highlight range between selected brackets" +msgstr "Fremhæv område mellem markerede klammer" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:219 +#, kde-format +msgid "Show the matching open bracket and lines adjacent to it for context" +msgstr "Vis den matchende klamme-start og omkringliggende linjer for kontekst" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:222 +#, kde-format +msgid "" +"If this is enabled, a preview of the lines near a matching open bracket is " +"shown. This can help in quickly determining the context of a closing " +"bracket, especially in long function/class declarations and deeply nested if " +"blocks" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowBracketMatchPreview) +#: dialogs/textareaappearanceconfigwidget.ui:225 +#, fuzzy, kde-format +#| msgid "Show preview of folded code" +msgid "Show preview of matching open bracket" +msgstr "Forhåndsvis foldet kode" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:232 +#, kde-format +msgid "Flash matching brackets" +msgstr "Fremhæv sammenhørende klammer" + +#. i18n: ectx: property (whatsThis), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:235 +#, kde-format +msgid "" +"If this is enabled, matching brackets are animated for better visibility." +msgstr "" +"Hvis dette er aktiveret, bliver sammenhørende klammer animeret, så de bliver " +"mere synlige." + +#. i18n: ectx: property (text), widget (QCheckBox, chkAnimateBracketMatching) +#: dialogs/textareaappearanceconfigwidget.ui:238 +#, kde-format +msgid "Flash matching bracket when cursor moves to other bracket in pair" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_6) +#: dialogs/textareaappearanceconfigwidget.ui:261 +#, kde-format +msgid "Counts:" +msgstr "Tæller:" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowWordCount) +#: dialogs/textareaappearanceconfigwidget.ui:268 +#, kde-format +msgid "Show/hide word count in status bar" +msgstr "Vis/skjul antal ord i statuslinjen" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowWordCount) +#: dialogs/textareaappearanceconfigwidget.ui:271 view/katestatusbar.cpp:258 +#, kde-format +msgid "Show word count" +msgstr "Vis antal ord" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowLineCount) +#: dialogs/textareaappearanceconfigwidget.ui:278 +#, kde-format +msgid "Show/hide line count in status bar" +msgstr "Vis/skjul antal linjer i statuslinjen" + +#. i18n: ectx: property (text), widget (QCheckBox, chkShowLineCount) +#: dialogs/textareaappearanceconfigwidget.ui:281 view/katestatusbar.cpp:255 +#, kde-format +msgid "Show line count" +msgstr "Vis antal linjer" + +#. i18n: ectx: property (text), widget (QLabel, label_25) +#: dialogs/textareaappearanceconfigwidget.ui:304 +#, fuzzy, kde-format +#| msgid "Fold first line" +msgid "Fold first line:" +msgstr "Foldning af første linje" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkFoldFirstLine) +#: dialogs/textareaappearanceconfigwidget.ui:317 +#, kde-format +msgid "" +"When this setting is enabled, the editor view automatically folds\n" +"comment blocks that start on the first line of the document. This is\n" +"helpful to hide license headers which are commonly placed at the\n" +"beginning of a file." +msgstr "" +"Når denne indstilling er aktiveret vil editor-tekstvinduet automatisk\n" +"foldning af kommentarblokke som starter på dokumentets første linje. Dette\n" +"er nyttigt til at skjule licens-headers som ofte placeres i starten\n" +"af en fil." + +#. i18n: ectx: property (text), widget (QCheckBox, cbxWordWrap) +#: dialogs/textareaappearanceconfigwidget.ui:337 +#, kde-format +msgid "Dynamic Word Wrap:" +msgstr "Dynamisk ordombrydning:" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDynWrapAtStaticMarker) +#: dialogs/textareaappearanceconfigwidget.ui:344 +#, fuzzy, kde-format +#| msgid "Wrap dynamic at static word wrap marker" +msgid "Wrap dynamically at static word wrap marker" +msgstr "Ombryd dynamisk ved statisk ordombrydningsmærke" + +#. i18n: ectx: property (text), widget (QCheckBox, chkDynWrapAnywhere) +#: dialogs/textareaappearanceconfigwidget.ui:351 +#, kde-format +msgid "Disregard word boundaries for dynamic wrapping" +msgstr "Se bort fra ordgrænser ved dynamisk ombrydning" + +#. i18n: ectx: property (text), widget (QLabel, lblDynamicWordWrapIndicators) +#: dialogs/textareaappearanceconfigwidget.ui:358 +#, kde-format +msgid "D&ynamic word wrap indicators:" +msgstr "Indikering af d&ynamisk ordombrydning:" + +#. i18n: ectx: property (whatsThis), widget (QComboBox, cmbDynamicWordWrapIndicator) +#: dialogs/textareaappearanceconfigwidget.ui:368 +#, kde-format +msgid "Choose when the Dynamic Word Wrap Indicators should be displayed." +msgstr "Vælg hvornår dynamiske tekstombrydningsindikatorer skal vises." + +#. i18n: ectx: property (text), widget (QLabel, label_5) +#: dialogs/textareaappearanceconfigwidget.ui:391 +#, fuzzy, kde-format +#| msgid "Indent wrapped lines:" +msgid "I&ndent wrapped lines:" +msgstr "Indryk linjer der er ombrudte:" + +#. i18n: ectx: property (text), widget (QLabel, lblDynamicWordWrapIndicators_2) +#: dialogs/textareaappearanceconfigwidget.ui:408 +#, fuzzy, kde-format +#| msgid "Don't indent lines wider than:" +msgid "&Don't indent lines wider than:" +msgstr "Indryk ikke linjer som er bredere end:" + +#. i18n: ectx: property (whatsThis), widget (QSpinBox, sbDynamicWordWrapDepth) +#: dialogs/textareaappearanceconfigwidget.ui:424 +#, no-c-format, kde-format +msgid "" +"

Enables the start of dynamically wrapped lines to be aligned vertically " +"to the indentation level of the first line. This can help to make code and " +"markup more readable.

Additionally, this allows you to set a maximum " +"width of the screen, as a percentage, after which dynamically wrapped lines " +"will no longer be vertically aligned. For example, at 50%, lines whose " +"indentation levels are deeper than 50% of the width of the screen will not " +"have vertical alignment applied to subsequent wrapped lines.

" +msgstr "" +"

Starten af dynamisk ombrudte linjer bliver justeret lodret til " +"indrykningsniveauet for den første linje. Dette kan hjælpe til at gøre kode " +"og opmarkering mere læsbar.

Dertil kan du sætte en maksimal bredde for " +"skærmen som en procentdel, efter hvilken dynamisk ombrudte linjer ikke " +"længere vil blive justeret lodret. For eksempel ved 50%, vil linjer " +"efterfølgende en linje hvis indrykningsniveau er dybere end 50% af skærmens " +"bredde ikke blive justeret lodret.

" + +#. i18n: ectx: property (suffix), widget (QSpinBox, sbDynamicWordWrapDepth) +#: dialogs/textareaappearanceconfigwidget.ui:427 +#, no-c-format, kde-format +msgid "% of View Width" +msgstr "% af tekstvinduets bredde" + +#. i18n: ectx: property (text), widget (QLabel, label_24) +#: dialogs/textareaappearanceconfigwidget.ui:443 +#, fuzzy, kde-format +#| msgid "Show i&ndentation lines" +msgid "Show i&ndentation lines:" +msgstr "Vis i&ndrykningslinjer" + +#. i18n: ectx: property (toolTip), widget (QCheckBox, chkShowIndentationLines) +#: dialogs/textareaappearanceconfigwidget.ui:453 +#, kde-format +msgid "" +"If this is enabled, the editor will display vertical lines to help identify " +"indent lines." +msgstr "" +"Hvis denne indstilling er aktiveret, vil editoren vise en lodret linje der " +"hjælper med at identificere indrykningsniveauer." + +#: document/katebuffer.cpp:135 +#, kde-format +msgctxt "short translation, user created new file" +msgid "New file" +msgstr "Ny fil" + +#: document/katedocument.cpp:223 +#, kde-format +msgid "Auto Reload Document" +msgstr "Genindlæs dokument automatisk" + +#: document/katedocument.cpp:225 +#, kde-format +msgid "Automatic reload the document when it was changed on disk" +msgstr "Genindlæs automatisk dokumentet når det blev ændret på disken" + +#: document/katedocument.cpp:2307 +#, kde-format +msgid "" +"The file %1 could not be loaded, as it was not possible to read from it.
Check if you have read access to this file." +msgstr "" +"Filen %1 kunne ikke indlæses, da det ikke var muligt at læse fra den.
Kontrollér om du har læseadgang til denne fil." + +#: document/katedocument.cpp:2312 +#, kde-format +msgctxt "translators: you can also translate 'Try Again' with 'Reload'" +msgid "Try Again" +msgstr "Prøv igen" + +#: document/katedocument.cpp:2316 document/katedocument.cpp:6534 +#, kde-format +msgid "&Close" +msgstr "&Luk" + +#: document/katedocument.cpp:2317 document/katedocument.cpp:6535 +#, fuzzy, kde-format +#| msgid "Close message" +msgctxt "Close the message being displayed" +msgid "Close message" +msgstr "Luk besked" + +#: document/katedocument.cpp:2449 +#, kde-format +msgid "" +"The file %1 was opened with %2 encoding but contained invalid characters." +"
It is set to read-only mode, as saving might destroy its content.
Either reopen the file with the correct encoding chosen or enable the read-" +"write mode again in the tools menu to be able to edit it." +msgstr "" +"Filen %1 blev åbnet med tegnsættet %2 men indeholdt ugyldige tegn.
Den " +"er sat i skrivebeskyttet tilstand da indholdet kan blive ødelagt hvis den " +"gemmes.
Åbn filen igen med det korrekte tegnsæt valgt eller aktivér læs/" +"skriv-tilstand igen i menuen Værktøjer for at kunne redigere den." + +#: document/katedocument.cpp:2468 +#, kde-format +msgid "" +"The file %1 was opened and contained lines longer than the configured Line " +"Length Limit (%2 characters).
The longest of those lines was %3 " +"characters long
Those lines were wrapped and the document is set to read-" +"only mode, as saving will modify its content." +msgstr "" +"Filen %1 blev åbnet og indeholdt linjer der var længere end den " +"konfigurerede grænse for linjelængde (%2 tegn).
Den længste af de " +"linjer var %3 tegn lang
Disse linjer er blevet ombrudt og dokumentet er " +"sat til skrivebeskyttet tilstand, da gemning vil ændre indholdet." + +#: document/katedocument.cpp:2475 +#, kde-format +msgid "Temporarily raise limit and reload file" +msgstr "Hæv grænsen midlertidigt og genindlæs filen" + +#: document/katedocument.cpp:2478 +#, kde-format +msgid "Close" +msgstr "Luk" + +#: document/katedocument.cpp:2505 +#, kde-format +msgid "" +"Do you really want to save this unmodified file? You could overwrite changed " +"data in the file on disk." +msgstr "" +"Vil du virkelig at gemme denne ikke-ændrede fil? Du kunne overskrive ændrede " +"data i filen på disken." + +#: document/katedocument.cpp:2506 +#, kde-format +msgid "Trying to Save Unmodified File" +msgstr "Forsøger at gemme uændret fil" + +#: document/katedocument.cpp:2507 document/katedocument.cpp:2518 +#: document/katedocument.cpp:2534 +#, kde-format +msgid "Save Nevertheless" +msgstr "Gem alligevel" + +#: document/katedocument.cpp:2516 +#, kde-format +msgid "" +"Do you really want to save this file? Both your open file and the file on " +"disk were changed. There could be some data lost." +msgstr "" +"Vil du virkelig at gemme denne fil? Både din åbne fil og filen på disken er " +"ændret. Datatab kan forekomme." + +#: document/katedocument.cpp:2517 document/katedocument.cpp:2533 +#: document/katedocument.cpp:2853 syntax/katethemeconfig.cpp:1218 +#: syntax/katethemeconfig.cpp:1376 +#, kde-format +msgid "Possible Data Loss" +msgstr "Muligt datatab" + +#: document/katedocument.cpp:2531 +#, kde-format +msgid "" +"The selected encoding cannot encode every Unicode character in this " +"document. Do you really want to save it? There could be some data lost." +msgstr "" +"Det valgte tegnsæt indeholder ikke alle Unicode-tegn i dokumentet. Vil du " +"virkelig gemme det? Datatab kan forekomme." + +#: document/katedocument.cpp:2601 +#, kde-format +msgid "" +"The document could not be saved, as it was not possible to write to %1.\n" +"Check that you have write access to this file or that enough disk space is " +"available.\n" +"The original file may be lost or damaged. Don't quit the application until " +"the file is successfully written." +msgstr "" +"Dokumentet kunne ikke gemmes, da det ikke var muligt at skrive til %1.\n" +"Kontrollér at du har skriveadgang til denne fil og at der er plads nok på " +"disken.\n" +"Den oprindelige fil kan være gået tabt eller beskadiget. Afslut ikke " +"programmet før filen er gemt." + +#: document/katedocument.cpp:2722 +#, kde-format +msgid "" +"For file %1 no backup copy could be created before saving. If an error " +"occurs while saving, you might lose the data of this file. A reason could be " +"that the media you write to is full or the directory of the file is read-" +"only for you." +msgstr "" +"Backup af filen %1 kunne ikke oprettes. Hvis en fejl forekommer mens filen " +"gemmes kan du miste filens data. En grund kunne være at mediet du gemmer på " +"er fuldt eller at du ikke har skriveadgang til mappen." + +#: document/katedocument.cpp:2726 +#, kde-format +msgid "Failed to create backup copy." +msgstr "Kunne ikke oprette backup-kopi." + +#: document/katedocument.cpp:2727 +#, kde-format +msgid "Try to Save Nevertheless" +msgstr "Forøg at gemme alligevel" + +#: document/katedocument.cpp:2852 +#, kde-format +msgid "Do you really want to continue to close this file? Data loss may occur." +msgstr "" +"Vil du virkelig fortsætte med at lukke denne fil? Datatab kan forekomme." + +#: document/katedocument.cpp:2854 +#, kde-format +msgid "Close Nevertheless" +msgstr "Luk alligevel" + +#: document/katedocument.cpp:4641 +#, fuzzy, kde-format +#| msgid "Untitled" +msgid "Untitled (%1)" +msgstr "Unavngivet" + +#: document/katedocument.cpp:4643 +#, kde-format +msgid "Untitled" +msgstr "Unavngivet" + +#: document/katedocument.cpp:4820 document/katedocument.cpp:5051 +#: document/katedocument.cpp:5061 document/katedocument.cpp:5862 +#: document/katedocument.cpp:6049 +#, kde-format +msgid "Save File" +msgstr "Gem fil" + +#: document/katedocument.cpp:4823 +#, kde-format +msgid "Save failed" +msgstr "Kunne ikke gemme" + +#: document/katedocument.cpp:5072 +#, kde-format +msgid "Save Copy of File" +msgstr "Gem kopi af filen" + +#: document/katedocument.cpp:5084 +#, kde-format +msgid "" +"The document could not be saved, as it was not possible to write to %1.\n" +"\n" +"Check that you have write access to this file or that enough disk space is " +"available." +msgstr "" +"Dokumentet kunne ikke gemmes, da det ikke var muligt at skrive til %1.\n" +"\n" +"Kontrollér at du har skriveadgang til denne fil og at der er plads nok på " +"disken." + +#: document/katedocument.cpp:5376 +#, kde-format +msgid "" +"Using deprecated modeline 'remove-trailing-space'. Please replace with " +"'remove-trailing-spaces modified;', see https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" +msgstr "" +"Bruger forældet modelinje \"remove-trailing-space\". Erstat venligst med " +"\"remove-trailing-spaces modified;\". Se https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" + +#: document/katedocument.cpp:5382 +#, kde-format +msgid "" +"Using deprecated modeline 'replace-trailing-space-save'. Please replace with " +"'remove-trailing-spaces all;', see https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" +msgstr "" +"Bruger forældet modelinje \"replace-trailing-space-save\" Erstat venligst " +"med \"remove-trailing-spaces all;\". https://docs.kde.org/?" +"application=katepart&branch=stable5&path=config-variables.html#variable-" +"remove-trailing-spaces" + +#: document/katedocument.cpp:5696 +#, fuzzy, kde-format +#| msgid "The file '%1' was modified by another program." +msgid "The file '%1' was modified on disk." +msgstr "Filen \"%1\" er blevet ændret af et andet program." + +#: document/katedocument.cpp:5698 +#, fuzzy, kde-format +#| msgid "The file '%1' was deleted by another program." +msgid "The file '%1' was deleted or moved on disk." +msgstr "Filen \"%1\" blev slettet af et andet program." + +#: document/katedocument.cpp:6034 +#, kde-format +msgid "" +"The document \"%1\" has been modified.\n" +"Do you want to save your changes or discard them?" +msgstr "" +"Dokumentet \"%1\" er blevet ændret.\n" +"Vil du gemme dine ændringer eller kassere dem?" + +#: document/katedocument.cpp:6037 +#, kde-format +msgid "Close Document" +msgstr "Luk dokument" + +#: document/katedocument.cpp:6148 +#, kde-format +msgid "The file %2 is still loading." +msgstr "Filen %2 er stadig ved at blive indlæst." + +#: document/katedocument.cpp:6153 +#, kde-format +msgid "&Abort Loading" +msgstr "&Afbryd indlæsning" + +#: inputmode/katenormalinputmode.cpp:74 +#, kde-format +msgid "OVERWRITE" +msgstr "OVERSKRIV" + +#: inputmode/katenormalinputmode.cpp:74 +#, kde-format +msgid "INSERT" +msgstr "INDSÆT" + +#: inputmode/katenormalinputmodefactory.cpp:29 +#, kde-format +msgid "Normal Mode" +msgstr "Normal tilstand" + +#: inputmode/kateviinputmode.cpp:31 +#, fuzzy, kde-format +#| msgid "VI: INSERT MODE" +msgctxt "The INSERT mode of VI" +msgid "VI: INSERT" +msgstr "Vi: INDSÆTNINGSTILSTAND" + +#: inputmode/kateviinputmode.cpp:34 +#, fuzzy, kde-format +#| msgid "VI: NORMAL MODE" +msgctxt "The NORMAL mode of VI" +msgid "VI: NORMAL" +msgstr "Vi: NORMALTILSTAND" + +#: inputmode/kateviinputmode.cpp:37 +#, kde-format +msgid "VI: VISUAL" +msgstr "Vi: VISUEL" + +#: inputmode/kateviinputmode.cpp:40 +#, kde-format +msgid "VI: VISUAL BLOCK" +msgstr "VI: VISUEL BLOK" + +#: inputmode/kateviinputmode.cpp:43 +#, kde-format +msgid "VI: VISUAL LINE" +msgstr "Vi: VISUEL LINJE" + +#: inputmode/kateviinputmode.cpp:46 +#, kde-format +msgid "VI: REPLACE" +msgstr "VI: ERSTAT" + +#: inputmode/kateviinputmode.cpp:146 +#, kde-format +msgid "vi-mode" +msgstr "vi-tilstand" + +#: inputmode/kateviinputmode.cpp:159 +#, kde-format +msgid "recording" +msgstr "optagelse" + +#: inputmode/kateviinputmodefactory.cpp:38 utils/kateglobal.cpp:88 +#: vimode/config/configtab.cpp:237 +#, kde-format +msgid "Vi Input Mode" +msgstr "VI-input-tilstand" + +#: mode/katemodeconfigpage.cpp:46 +#, kde-format +msgid "" +msgstr "" + +#: mode/katemodeconfigpage.cpp:58 +#, kde-format +msgid "Use Default" +msgstr "Brug standard" + +#: mode/katemodeconfigpage.cpp:99 mode/katemodeconfigpage.cpp:241 +#, kde-format +msgid "Properties of %1" +msgstr "Egenskaber for %1" + +#: mode/katemodeconfigpage.cpp:178 +#, kde-format +msgid "New Filetype" +msgstr "Ny filtype" + +#: mode/katemodeconfigpage.cpp:293 +#, kde-format +msgid "" +"Select the MimeTypes you want for this file type.\n" +"Please note that this will automatically edit the associated file extensions " +"as well." +msgstr "" +"Vælg de mimetyper du ønsker for denne fil.\n" +"Bemærk at dette automatisk vil ændre de associerede filendelser." + +#: mode/katemodeconfigpage.cpp:295 +#, kde-format +msgid "Select Mime Types" +msgstr "Vælg mimetyper" + +#: mode/katemodeconfigpage.cpp:312 +#, kde-format +msgid "Modes && Filetypes" +msgstr "Tilstande og filtyper" + +#: mode/katemodemenulist.cpp:138 +#, fuzzy, kde-format +#| msgctxt "Placeholder in search bar" +#| msgid "Search..." +msgctxt "@info:placeholder" +msgid "Search…" +msgstr "Søg..." + +#: mode/katemodemenulist.cpp:140 +#, kde-format +msgctxt "ToolTip of the search bar of modes of syntax highlighting" +msgid "" +"Search for syntax highlighting modes by language name or file extension (for " +"example, C++ or .cpp)" +msgstr "" +"Søg efter syntaksfremhævning-tilstande efter sprognavn eller filendelse (f." +"eks. C++ eller .cpp)" + +#: mode/katemodemenulist.cpp:560 +#, kde-format +msgctxt "A search yielded no results" +msgid "No items matching your search" +msgstr "Ingen elementer matcher din søgning" + +#: mode/katemodemenulist.cpp:1087 +#, kde-format +msgctxt "" +"Title (in singular) of the best result in an item search. Please, that the " +"translation doesn't have more than 34 characters, since the menu where it's " +"displayed is small and fixed." +msgid "Best Search Match" +msgstr "Bedste søgeresultat" + +#: mode/katemodemenulist.cpp:1092 +#, kde-format +msgctxt "" +"Title (in plural) of the best results in an item search. Please, that the " +"translation doesn't have more than 34 characters, since the menu where it's " +"displayed is small and fixed." +msgid "Best Search Matches" +msgstr "Bedste søgeresultater" + +#: printing/printconfigwidgets.cpp:36 +#, kde-format +msgid "Te&xt Settings" +msgstr "Te&kstindstillinger" + +#: printing/printconfigwidgets.cpp:40 +#, kde-format +msgid "Print line &numbers" +msgstr "Udskriv linje&numre" + +#: printing/printconfigwidgets.cpp:43 +#, kde-format +msgid "Print &legend" +msgstr "Udskriv syntaksfork&laring" + +#: printing/printconfigwidgets.cpp:46 +#, kde-format +msgid "Don't print folded code" +msgstr "" + +#: printing/printconfigwidgets.cpp:54 +#, kde-format +msgid "" +"

If enabled, line numbers will be printed on the left side of the page(s)." +"

" +msgstr "" +"

Hvis aktiveret, vil linjenumre blive udskrevet på venstre side af siderne." +"

" + +#: printing/printconfigwidgets.cpp:56 +#, kde-format +msgid "" +"

Print a box displaying typographical conventions for the document type, " +"as defined by the syntax highlighting being used.

" +msgstr "" +"

Udskriv en boks som viser typografiske konventioner for dokumenttypen, " +"som defineret af den anvendte syntaksfremhævning.

" + +#: printing/printconfigwidgets.cpp:116 +#, kde-format +msgid "Hea&der && Footer" +msgstr "Si&dehoved og sidefod" + +#: printing/printconfigwidgets.cpp:123 +#, kde-format +msgid "Pr&int header" +msgstr "Udskr&iv sidehoved" + +#: printing/printconfigwidgets.cpp:125 +#, kde-format +msgid "Pri&nt footer" +msgstr "Udskri&v sidefod" + +#: printing/printconfigwidgets.cpp:131 +#, kde-format +msgid "Header/footer font:" +msgstr "Skrifttype for sidehoved/-fod:" + +#: printing/printconfigwidgets.cpp:137 +#, kde-format +msgid "Header Properties" +msgstr "Egenskaber for sidehoved" + +#: printing/printconfigwidgets.cpp:141 +#, kde-format +msgid "&Format:" +msgstr "&Format:" + +#: printing/printconfigwidgets.cpp:163 printing/printconfigwidgets.cpp:209 +#, kde-format +msgid "Colors:" +msgstr "Farver:" + +#: printing/printconfigwidgets.cpp:170 printing/printconfigwidgets.cpp:216 +#, kde-format +msgid "Foreground:" +msgstr "Forgrund:" + +#: printing/printconfigwidgets.cpp:175 +#, kde-format +msgid "Bac&kground" +msgstr "Ba&ggrund" + +#: printing/printconfigwidgets.cpp:181 +#, kde-format +msgid "Footer Properties" +msgstr "Egenskaber for sidefod" + +#: printing/printconfigwidgets.cpp:186 +#, kde-format +msgid "For&mat:" +msgstr "For&mat:" + +#: printing/printconfigwidgets.cpp:221 +#, kde-format +msgid "&Background" +msgstr "&Baggrund" + +#: printing/printconfigwidgets.cpp:250 +#, kde-format +msgid "

Format of the page header. The following tags are supported:

" +msgstr "

Sidehovedets format. Følgende mærker er understøttet:

" + +#: printing/printconfigwidgets.cpp:252 +#, kde-format +msgid "" +"
  • %u: current user name
  • %d: complete date/" +"time in short format
  • %D: complete date/time in long format
  • %h: current time
  • %y: current date in short " +"format
  • %Y: current date in long format
  • %f: " +"file name
  • %U: full URL of the document
  • %p: " +"page number
  • %P: total amount of pages

" +msgstr "" +"
  • %u: Aktuelt brugernavn
  • %d: Fuldstændig " +"dato/klokkeslæt i kort format
  • %D: Fuldstændig dato/" +"klokkeslæt i langt format
  • %h: Aktuelt tidspunkt
  • " +"%y: Aktuel dato i kort format
  • %Y: Aktuel dato i langt " +"format
  • %f: Filnavn
  • %U: Dokumentets fulde " +"URL
  • %p: sidetal
  • %P: antal sider i alt

" + +#: printing/printconfigwidgets.cpp:266 +#, kde-format +msgid "

Format of the page footer. The following tags are supported:

" +msgstr "

Sidefodens format. Følgende mærker er understøttet:

" + +#: printing/printconfigwidgets.cpp:352 +#, kde-format +msgid "Add Placeholder..." +msgstr "Tilføj pladsholder..." + +#: printing/printconfigwidgets.cpp:354 +#, kde-format +msgid "Current User Name" +msgstr "Navn på aktuel bruger" + +#: printing/printconfigwidgets.cpp:356 +#, kde-format +msgid "Complete Date/Time (short format)" +msgstr "Komplet dato/klokkeslæt (kort format)" + +#: printing/printconfigwidgets.cpp:358 +#, kde-format +msgid "Complete Date/Time (long format)" +msgstr "Komplet dato/klokkeslæt (langt format)" + +#: printing/printconfigwidgets.cpp:360 +#, kde-format +msgid "Current Time" +msgstr "Aktuelt tidspunkt" + +#: printing/printconfigwidgets.cpp:362 +#, kde-format +msgid "Current Date (short format)" +msgstr "Aktuel dato (kort format)" + +#: printing/printconfigwidgets.cpp:364 +#, kde-format +msgid "Current Date (long format)" +msgstr "Aktuel dato (langt format)" + +#: printing/printconfigwidgets.cpp:366 +#, kde-format +msgid "File Name" +msgstr "Filnavn" + +#: printing/printconfigwidgets.cpp:368 +#, kde-format +msgid "Full document URL" +msgstr "Fuld URL til dokument" + +#: printing/printconfigwidgets.cpp:370 +#, kde-format +msgid "Page Number" +msgstr "Sidetal" + +#: printing/printconfigwidgets.cpp:372 +#, kde-format +msgid "Total Amount of Pages" +msgstr "Antal sider i alt" + +#: printing/printconfigwidgets.cpp:478 +#, kde-format +msgid "L&ayout" +msgstr "L&ayout" + +#: printing/printconfigwidgets.cpp:484 +#, kde-format +msgid "&Color theme:" +msgstr "&Farvetema:" + +#: printing/printconfigwidgets.cpp:494 +#, fuzzy, kde-format +#| msgid "Font" +msgid "Font:" +msgstr "Skrifttype" + +#: printing/printconfigwidgets.cpp:498 +#, kde-format +msgid "Draw bac&kground color" +msgstr "Brug bag&grundsfarve" + +#: printing/printconfigwidgets.cpp:501 +#, kde-format +msgid "Draw &boxes" +msgstr "Tegn &rammer" + +#: printing/printconfigwidgets.cpp:505 +#, kde-format +msgid "Box Properties" +msgstr "Ramme-egenskaber" + +#: printing/printconfigwidgets.cpp:509 +#, kde-format +msgid "W&idth:" +msgstr "&Bredde:" + +#: printing/printconfigwidgets.cpp:517 +#, kde-format +msgid "&Margin:" +msgstr "&Margen:" + +#: printing/printconfigwidgets.cpp:525 +#, kde-format +msgid "Co&lor:" +msgstr "&Farve:" + +#: printing/printconfigwidgets.cpp:547 +#, kde-format +msgid "Select the color theme to use for the print." +msgstr "Vælg det farvetema der skal bruges til udskriften." + +#: printing/printconfigwidgets.cpp:549 +#, fuzzy, kde-format +#| msgid "" +#| "

If enabled, the background color of the editor will be used.

This may be useful if your color scheme is designed for a dark " +#| "background.

" +msgid "" +"

If enabled, the background color of the editor will be used.

This " +"may be useful if your color theme is designed for a dark background.

" +msgstr "" +"

Hvis aktiveret, vil editorens baggrundsfarve blive anvendt.

Dette " +"kan være nyttigt hvis dit farveskema er designet til en mørk baggrund.

" + +#: printing/printconfigwidgets.cpp:552 +#, kde-format +msgid "" +"

If enabled, a box as defined in the properties below will be drawn around " +"the contents of each page. The Header and Footer will be separated from the " +"contents with a line as well.

" +msgstr "" +"

Hvis aktiveret, vil en ramme som defineret i egenskaberne forneden blive " +"tegnet rundt om indholdet på hver side. Sidehoved og sidefod vil ligeledes " +"blive adskilt fra indholdet med en linje.

" + +#: printing/printconfigwidgets.cpp:555 +#, kde-format +msgid "The width of the box outline" +msgstr "Bredden af rammens linjer" + +#: printing/printconfigwidgets.cpp:556 +#, kde-format +msgid "The margin inside boxes, in pixels" +msgstr "Margenen inden i rammer i pixel" + +#: printing/printconfigwidgets.cpp:557 +#, kde-format +msgid "The line color to use for boxes" +msgstr "Linjefarve til rammer" + +#: printing/printpainter.cpp:269 +#, kde-format +msgid "(Selection of) " +msgstr "(Markering af) " + +#: printing/printpainter.cpp:522 +#, kde-format +msgid "Typographical Conventions for %1" +msgstr "Typografiske konventioner for %1" + +#: printing/printpainter.cpp:555 +#, kde-format +msgid "text" +msgstr "tekst" + +#: script/data/commands/emmet.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Expand Abbreviation" +msgstr "Udvid forkortelse" + +#: script/data/commands/emmet.js:10 script/data/commands/emmet.js:14 +#: script/data/commands/emmet.js:19 script/data/commands/emmet.js:23 +#: script/data/commands/emmet.js:27 script/data/commands/emmet.js:31 +#: script/data/commands/emmet.js:35 script/data/commands/emmet.js:39 +#: script/data/commands/emmet.js:43 script/data/commands/emmet.js:47 +#: script/data/commands/emmet.js:51 script/data/commands/emmet.js:55 +#: script/data/commands/emmet.js:59 script/data/commands/emmet.js:63 +#: script/data/commands/emmet.js:67 script/data/commands/emmet.js:71 +#: script/data/commands/emmet.js:75 script/data/commands/emmet.js:79 +#: script/data/commands/emmet.js:83 +#, kde-format +msgctxt "Script command category" +msgid "Emmet" +msgstr "Emmet" + +#: script/data/commands/emmet.js:13 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Wrap with tag" +msgctxt "Script command name" +msgid "Wrap with Tag" +msgstr "Ombryd med mærke" + +#: script/data/commands/emmet.js:18 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Move cursor to matching tag" +msgctxt "Script command name" +msgid "Move Cursor to Matching Tag" +msgstr "Flyt markør til matchende mærke" + +#: script/data/commands/emmet.js:22 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Select HTML/XML tag contents inwards" +msgctxt "Script command name" +msgid "Select HTML/XML Tag Contents Inwards" +msgstr "Markér HTML-/XML-mærkeindhold indad" + +#: script/data/commands/emmet.js:26 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Select HTML/XML tag contents outwards" +msgctxt "Script command name" +msgid "Select HTML/XML Tag Contents Outwards" +msgstr "Markér HTML-/XML-mærkeindhold udad" + +#: script/data/commands/emmet.js:30 +#, fuzzy, kde-format +#| msgid "Toggle Comment" +msgctxt "Script command name" +msgid "Toggle Comment" +msgstr "Slå kommentar til/fra" + +#: script/data/commands/emmet.js:34 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Go to next edit point" +msgctxt "Script command name" +msgid "Go to Next Edit Point" +msgstr "Gå til næste redigeringspunkt" + +#: script/data/commands/emmet.js:38 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Go to previous edit point" +msgctxt "Script command name" +msgid "Go to Previous Edit Point" +msgstr "Gå til forrige redigeringspunkt" + +#: script/data/commands/emmet.js:42 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Select next edit point" +msgctxt "Script command name" +msgid "Select Next Edit Point" +msgstr "Markér næste redigeringspunkt" + +#: script/data/commands/emmet.js:46 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Select previous edit point" +msgctxt "Script command name" +msgid "Select Previous Edit Point" +msgstr "Markér forrige redigeringspunkt" + +#: script/data/commands/emmet.js:50 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Delete tag under cursor" +msgctxt "Script command name" +msgid "Delete Tag Under Cursor" +msgstr "Slet mærke under markør" + +#: script/data/commands/emmet.js:54 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Split or join a tag" +msgctxt "Script command name" +msgid "Split or Join a Tag" +msgstr "Opdel eller flet et mærke" + +#: script/data/commands/emmet.js:58 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Evaluate a simple math expression" +msgctxt "Script command name" +msgid "Evaluate a Simple Math Expression" +msgstr "Evaluér et simpelt matematisk udtryk" + +#: script/data/commands/emmet.js:62 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Decrement number by 1" +msgctxt "Script command name" +msgid "Decrement Number by 1" +msgstr "Formindsk tal med 1" + +#: script/data/commands/emmet.js:66 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Decrement number by 10" +msgctxt "Script command name" +msgid "Decrement Number by 10" +msgstr "Formindsk tal med 10" + +#: script/data/commands/emmet.js:70 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Decrement number by 0.1" +msgctxt "Script command name" +msgid "Decrement Number by 0.1" +msgstr "Formindsk tal med 0.1" + +#: script/data/commands/emmet.js:74 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Increment number by 1" +msgctxt "Script command name" +msgid "Increment Number by 1" +msgstr "Forøg tal med 1" + +#: script/data/commands/emmet.js:78 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Increment number by 10" +msgctxt "Script command name" +msgid "Increment Number by 10" +msgstr "Forøg tal med 10" + +#: script/data/commands/emmet.js:82 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Increment number by 0.1" +msgctxt "Script command name" +msgid "Increment Number by 0.1" +msgstr "Forøg tal med 0.1" + +#: script/data/commands/emmet.js:96 +#, kde-format +msgid "" +"Expands the abbreviation using Emmet expressions; see http://code.google.com/" +"p/zen-coding/wiki/ZenHTMLSelectorsEn" +msgstr "" +"Udvider forkortelsen med Emmet-udtryk. Se http://code.google.com/p/zen-" +"coding/wiki/ZenHTMLSelectorsEn" + +#: script/data/commands/emmet.js:97 +#, kde-format +msgid "" +"Wraps the selected text in XML tags constructed from the provided Emmet " +"expression (defaults to div)." +msgstr "" +"Ombryder den markerede tekst i XML-opmærkning konstrueret ud fra det angivne " +"Emmet-udtryk (standard er div)." + +#: script/data/commands/emmet.js:98 +#, kde-format +msgid "Moves the caret to the current tag's pair" +msgstr "Flytter caret til den aktuelle opmærknings par" + +#: script/data/commands/emmet.js:99 +#, kde-format +msgid "" +"Select contents of HTML/XML tag, moving inward on continuous invocations" +msgstr "" +"Markér indhold af HTML-/XML-opmærkning, flytter indad ved fortsættende " +"invokationer" + +#: script/data/commands/emmet.js:100 +#, kde-format +msgid "" +"Select contents of HTML/XML tag, moving outwards on continuous invocations" +msgstr "" +"Markér indhold af HTML-/XML-opmærkning, flytter udad ved fortsættende " +"invokationer" + +#: script/data/commands/emmet.js:101 +#, kde-format +msgid "Move to the next edit point (tag or empty attribute)." +msgstr "Flyt til næste redigeringspunkt (opmærkning eller tom attribut)." + +#: script/data/commands/emmet.js:102 +#, kde-format +msgid "Move to the previous edit point (tag or empty attribute)." +msgstr "Flyt til forrige redigeringspunkt (opmærkning eller tom attribut)." + +#: script/data/commands/emmet.js:103 +#, kde-format +msgid "Select next edit point (tag or empty attribute)." +msgstr "Markér næste redigeringspunkt (opmærkning eller tom attribut)." + +#: script/data/commands/emmet.js:104 +#, kde-format +msgid "Select previous edit point (tag or empty attribute)." +msgstr "Markér forrige redigeringspunkt (opmærkning eller tom attribut)." + +#: script/data/commands/emmet.js:105 +#, kde-format +msgid "Toggle comment of current tag or CSS selector" +msgstr "Slå kommentar for aktuel opmærkning eller CSS-vælger til/fra" + +#: script/data/commands/emmet.js:106 +#, kde-format +msgid "Deletes tag under cursor" +msgstr "Sletter opmærkning under markør" + +#: script/data/commands/emmet.js:107 +#, kde-format +msgid "Splits or joins a tag" +msgstr "Opdel eller flet opmærkning" + +#: script/data/commands/emmet.js:108 +#, kde-format +msgid "Evaluates a simple math expression" +msgstr "Evaluerer et simpelt matematisk udtryk" + +#: script/data/commands/emmet.js:109 +#, kde-format +msgid "Decrement number under cursor by 1" +msgstr "Formindsk tal under markør med 1" + +#: script/data/commands/emmet.js:110 +#, kde-format +msgid "Decrement number under cursor by 10" +msgstr "Formindsk tal under markør med 10" + +#: script/data/commands/emmet.js:111 +#, kde-format +msgid "Decrement number under cursor by 0.1" +msgstr "Formindsk tal under markør med 0,1" + +#: script/data/commands/emmet.js:112 +#, kde-format +msgid "Increment number under cursor by 1" +msgstr "Forøg tal under markør med 1" + +#: script/data/commands/emmet.js:113 +#, kde-format +msgid "Increment number under cursor by 10" +msgstr "Forøg tal under markør med 10" + +#: script/data/commands/emmet.js:114 +#, kde-format +msgid "Increment number under cursor by 0.1" +msgstr "Forøg tal under markør med 0,1" + +#: script/data/commands/jumpMatchingIndent.js:9 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Move cursor to previous matching indent" +msgctxt "Script command name" +msgid "Move Cursor to Previous Matching Indent" +msgstr "Flyt markør til forrige matchende indrykning" + +#: script/data/commands/jumpMatchingIndent.js:11 +#: script/data/commands/jumpMatchingIndent.js:16 +#: script/data/commands/jumpMatchingIndent.js:21 +#: script/data/commands/jumpMatchingIndent.js:26 +#: script/data/commands/navigation.js:10 script/data/commands/navigation.js:14 +#, kde-format +msgctxt "Script command category" +msgid "Navigation" +msgstr "Navigation" + +#: script/data/commands/jumpMatchingIndent.js:14 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Move cursor to next matching indent" +msgctxt "Script command name" +msgid "Move Cursor to Next Matching Indent" +msgstr "Flyt markør til næste matchende indrykning" + +#: script/data/commands/jumpMatchingIndent.js:19 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Move cursor to next matching indent" +msgctxt "Script command name" +msgid "Move Cursor to Next Blank Line" +msgstr "Flyt markør til næste matchende indrykning" + +#: script/data/commands/jumpMatchingIndent.js:24 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Move cursor to previous matching indent" +msgctxt "Script command name" +msgid "Move Cursor to Previous Blank Line" +msgstr "Flyt markør til forrige matchende indrykning" + +#: script/data/commands/jumpMatchingIndent.js:80 +#, kde-format +msgid "Move cursor to previous matching indent" +msgstr "Flyt markør til forrige matchende indrykning" + +#: script/data/commands/jumpMatchingIndent.js:83 +#, kde-format +msgid "Move cursor to next matching indent" +msgstr "Flyt markør til næste matchende indrykning" + +#: script/data/commands/jumpMatchingIndent.js:85 +#, fuzzy, kde-format +#| msgid "Move cursor to next matching indent" +msgid "Move cursor to next blank line" +msgstr "Flyt markør til næste matchende indrykning" + +#: script/data/commands/jumpMatchingIndent.js:87 +#, fuzzy, kde-format +#| msgid "Move cursor to previous matching indent" +msgid "Move cursor to previous blank line" +msgstr "Flyt markør til forrige matchende indrykning" + +#: script/data/commands/navigation.js:9 +#, kde-format +msgctxt "Script command name" +msgid "Go to Next Paragraph" +msgstr "" + +#: script/data/commands/navigation.js:13 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Go to previous edit point" +msgctxt "Script command name" +msgid "Go to Previous Paragraph" +msgstr "Gå til forrige redigeringspunkt" + +#: script/data/commands/utils.js:9 +#, fuzzy, kde-format +#| msgid "Re&move trailing spaces:" +msgctxt "Script command name" +msgid "Remove Trailing Spaces" +msgstr "&Fjern efterstillede mellemrum:" + +#: script/data/commands/utils.js:10 script/data/commands/utils.js:14 +#: script/data/commands/utils.js:18 script/data/commands/utils.js:22 +#: script/data/commands/utils.js:27 script/data/commands/utils.js:32 +#: script/data/commands/utils.js:36 script/data/commands/utils.js:40 +#: script/data/commands/utils.js:44 script/data/commands/utils.js:48 +#: script/data/commands/utils.js:52 script/data/commands/utils.js:56 +#, kde-format +msgctxt "Script command category" +msgid "Editing" +msgstr "Redigering" + +#: script/data/commands/utils.js:13 +#, fuzzy, kde-format +#| msgid "Re&move trailing spaces:" +msgctxt "Script command name" +msgid "Remove Leading Spaces" +msgstr "&Fjern efterstillede mellemrum:" + +#: script/data/commands/utils.js:17 +#, fuzzy, kde-format +#| msgid "Re&move trailing spaces:" +msgctxt "Script command name" +msgid "Remove Trailing and Leading Spaces" +msgstr "&Fjern efterstillede mellemrum:" + +#: script/data/commands/utils.js:21 +#, fuzzy, kde-format +#| msgid "Join Lines" +msgctxt "Script command name" +msgid "Join Lines" +msgstr "Slå linjer sammen" + +#: script/data/commands/utils.js:25 +#, kde-format +msgctxt "Script command name" +msgid "Move Lines Down" +msgstr "Flyt linjer ned" + +#: script/data/commands/utils.js:30 +#, kde-format +msgctxt "Script command name" +msgid "Move Lines Up" +msgstr "Flyt linjer op" + +#: script/data/commands/utils.js:35 +#, kde-format +msgctxt "Script command name" +msgid "Duplicate Selected Lines Down" +msgstr "Duplikér markerede linjer nedad" + +#: script/data/commands/utils.js:39 +#, kde-format +msgctxt "Script command name" +msgid "Duplicate Selected Lines Up" +msgstr "Duplikér markerede linjer opad" + +#: script/data/commands/utils.js:43 +#, fuzzy, kde-format +#| msgctxt "Script command name" +#| msgid "Duplicate Selected Lines Up" +msgctxt "Script command name" +msgid "Duplicate selected text" +msgstr "Duplikér markerede linjer opad" + +#: script/data/commands/utils.js:47 +#, kde-format +msgctxt "Script command name" +msgid "URI-encode Selected Text" +msgstr "URI-indkod markeret tekst" + +#: script/data/commands/utils.js:51 +#, kde-format +msgctxt "Script command name" +msgid "URI-decode Selected Text" +msgstr "URI-dekod markeret tekst" + +#: script/data/commands/utils.js:55 +#, fuzzy, kde-format +#| msgid "Move cursor to next matching indent" +msgctxt "Script command name" +msgid "Remove Empty Lines" +msgstr "Flyt markør til næste matchende indrykning" + +#: script/data/commands/utils.js:410 +#, kde-format +msgid "Sort the selected text or whole document." +msgstr "Sortér den markerede tekst eller hele dokumentet." + +#: script/data/commands/utils.js:412 +#, kde-format +msgid "Move selected lines down." +msgstr "Flyt de markerede linjer nedad." + +#: script/data/commands/utils.js:414 +#, kde-format +msgid "Move selected lines up." +msgstr "Flyt de markerede linjer opad." + +#: script/data/commands/utils.js:416 +#, kde-format +msgid "Remove duplicate lines from the selected text or whole document." +msgstr "" +"Fjern duplikerede linjer fra den markerede tekst eller hele dokumentet." + +#: script/data/commands/utils.js:418 +#, kde-format +msgid "" +"Sort the selected text or whole document in natural order.
Here is an " +"example to show the difference to the normal sort method:
sort(a10, a1, " +"a2) => a1, a10, a2
natsort(a10, a1, a2) => a1, a2, a10" +msgstr "" +"Sortér den markerede tekst eller hele dokumentet i naturlig rækkefølge." +"
Her er et eksempel for at vise forskellen til den normale " +"sorteringsmetode:
sort(a10, a1, a2) => a1, a10, a2
natsort(a10, a1, " +"a2) => a1, a2, a10" + +#: script/data/commands/utils.js:420 +#, kde-format +msgid "Trims trailing whitespace from selection or whole document." +msgstr "Trimmer efterstillede blanktegn fra markeringen eller hele dokumentet." + +#: script/data/commands/utils.js:422 +#, kde-format +msgid "Trims leading whitespace from selection or whole document." +msgstr "Trimmer foranstillede blanktegn fra markeringen eller hele dokumentet." + +#: script/data/commands/utils.js:424 +#, kde-format +msgid "Trims leading and trailing whitespace from selection or whole document." +msgstr "" +"Trimmer foran- og efterstillede blanktegn fra markeringen eller hele " +"dokumentet." + +#: script/data/commands/utils.js:426 +#, kde-format +msgid "" +"Joins selected lines or whole document. Optionally pass a separator to put " +"between each line:
join ', ' will e.g. join lines and " +"separate them by a comma." +msgstr "" +"Sammenføjer de markerede linjer eller hele dokumentet. Det kan vælges at " +"indgive en adskiller mellem hver linje:
join ', ' vil f.eks. " +"sammenflette linjer og separere dem med et komma." + +#: script/data/commands/utils.js:428 +#, kde-format +msgid "Removes empty lines from selection or whole document." +msgstr "Fjerner tomme linjer fra markeringen eller hele dokumentet." + +#: script/data/commands/utils.js:430 +#, kde-format +msgid "" +"This command aligns lines in the selected block or whole document on the " +"column given by a regular expression given as an argument.

If you " +"give an empty pattern it will align on the first non-blank character by " +"default.
If the pattern has a capture it will indent on the captured " +"match.

Examples:
'alignon -' will insert " +"spaces before the first '-' of each lines to align them all on the same " +"column.
'alignon :\\s+(.)' will insert spaces before the " +"first non-blank character that occurs after a colon to align them all on the " +"same column." +msgstr "" + +#: script/data/commands/utils.js:434 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and replace them with the return value of that callback." +"
Example (join selected lines):
each 'function(lines){return " +"lines.join(\", \");}'
To save you some typing, you can also do " +"this to achieve the same:
each 'lines.join(\", \")'" +msgstr "" +"Med en JavaScript-funktion som argument, kaldes denne funktion for listen af " +"(markerede) linjer og de erstattes af returværdien for tilbagekaldet. " +"
Eksempel (sammenføj markerede linjer):
each 'function(lines)" +"{return lines.join(\", \");}'
For at spare lidt indtastning kan du " +"også opnå det samme med:
each 'lines.join(\", \")'" + +#: script/data/commands/utils.js:436 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and remove those where the callback returns false." +"
Example (see also rmblank):
filter 'function(l)" +"{return l.length > 0;}'
To save you some typing, you can also do " +"this to achieve the same:
filter 'line.length > 0'" +msgstr "" +"Med en JavaScript-funktion som argument, kaldes denne funktion for listen af " +"(markerede) linjer og fjern dem hvor tilbagekaldet returnerer falsk. " +"
Eksempel (se også rmblank):
filter 'function(l)" +"{return l.length > 0;}'
For at spare lidt indtastning kan du også " +"opnå det samme ved at gøre:
filter 'line.length > 0'" + +#: script/data/commands/utils.js:438 +#, kde-format +msgid "" +"Given a JavaScript function as argument, call that for the list of " +"(selected) lines and replace the line with the return value of the callback." +"
Example (see also ltrim):
map 'function(line)" +"{return line.replace(/^\\s+/, \"\");}'
To save you some typing, " +"you can also do this to achieve the same:
map 'line.replace(/^\\s" +"+/, \"\")'" +msgstr "" +"Med en JavaScript-funktion som argument, kaldes denne funktion for listen af " +"(markerede) linjer og erstatte linjen med tilbagekaldets returværdi. " +"
Eksempel (se også ltrim):
map 'function(line)" +"{return line.replace(/^\\s+/, \"\");}'
For at spare lidt " +"indtastning kan du også opnå det samme ved at gøre:
map 'line." +"replace(/^\\s+/, \"\")'" + +#: script/data/commands/utils.js:440 +#, kde-format +msgid "Duplicates the selected lines up." +msgstr "Duplikerer de markerede linjer opad." + +#: script/data/commands/utils.js:442 +#, kde-format +msgid "Duplicates the selected lines down." +msgstr "Duplikerer de markerede linjer nedad." + +#: script/data/commands/utils.js:446 +#, kde-format +msgid "" +"Encode special chars in a single line selection, so the result text can be " +"used as URI." +msgstr "" +"Indkod specialtegn i en enkeltlinjemarkering, så den resulterende tekst kan " +"bruges som URI." + +#: script/data/commands/utils.js:448 +#, kde-format +msgid "Reverse action of URI encode." +msgstr "Omvend handling af URI-indkodning." + +#: script/data/commands/utils.js:450 +#, kde-format +msgid "" +"Select text forward from current cursor position to the first occurrence of " +"the given argument after it (or the end of the current line by default)." +msgstr "" + +#: script/data/commands/utils.js:452 +#, kde-format +msgid "" +"Select text backward from current cursor position to the last occurrence of " +"the given argument before it (or the beginning of the current line by " +"default)." +msgstr "" + +#: script/data/indentation/ada.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "ada" +msgstr "ada" + +#: script/data/indentation/cmake.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "CMake" +msgstr "CMake" + +#: script/data/indentation/cppstyle.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "C++/boost Style" +msgstr "C++/boost-stil" + +#: script/data/indentation/cstyle.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "C Style" +msgstr "C-stil" + +#: script/data/indentation/haskell.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Haskell" +msgstr "Haskell" + +#: script/data/indentation/julia.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Julia" +msgstr "Julia" + +#: script/data/indentation/latex.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Latex" +msgstr "Latex" + +#: script/data/indentation/lilypond.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "LilyPond" +msgstr "LilyPond" + +#: script/data/indentation/lisp.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "LISP" +msgstr "LISP" + +#: script/data/indentation/pascal.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Pascal" +msgstr "Pascal" + +#: script/data/indentation/python.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Python" +msgstr "Python" + +#: script/data/indentation/r.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "R" +msgstr "R" + +#: script/data/indentation/replicode.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Replicode" +msgstr "Replicode" + +#: script/data/indentation/ruby.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "Ruby" +msgstr "Ruby" + +#: script/data/indentation/xml.js:2 +#, kde-format +msgctxt "Autoindent mode" +msgid "XML Style" +msgstr "XML-stil" + +#: script/katecommandlinescript.cpp:37 +#, kde-format +msgid "Function '%1' not found in script: %2" +msgstr "Funktionen \"%1\" blev ikke fundet i script: %2" + +#: script/katecommandlinescript.cpp:51 +#, kde-format +msgid "Error calling %1" +msgstr "Fejl ved kald af %1" + +#: script/katecommandlinescript.cpp:68 +#, kde-format +msgid "Bad quoting in call: %1. Please escape single quotes with a backslash." +msgstr "" +"Forkert citation i kald: %1. Escape venligst enkeltcitationsteng med omvendt " +"skråstreg." + +#: script/katecommandlinescript.cpp:76 utils/katecmds.cpp:217 +#: vimode/cmds.cpp:37 +#, kde-format +msgid "Could not access view" +msgstr "Kunne ikke tilgå tekstvindue" + +#: script/katecommandlinescript.cpp:118 +#, kde-format +msgid "Error calling 'help %1'" +msgstr "Fejl ved kald af \"help %1\"" + +#: script/katecommandlinescript.cpp:123 +#, kde-format +msgid "No help specified for command '%1' in script %2" +msgstr "Ingen hjælp angivet for kommandoen \"%1\" i scriptet %2" + +#: script/katescript.cpp:282 +#, fuzzy, kde-format +#| msgid "Error loading script %1" +msgid "Error loading script %1: %2" +msgstr "Fejl under indlæsning af scriptet %1" + +#: script/katescriptmanager.cpp:319 +#, kde-format +msgid "Reload all JavaScript files (indenters, command line scripts, etc)." +msgstr "" +"Genindlæs alle JavaScript-filer (indrykninger, kommandolinje-scripts, osv.)" + +#: script/katescriptview.cpp:214 +#, kde-format +msgid "Command not found: %1" +msgstr "Kommando ikke fundet: %1" + +#: search/katesearchbar.cpp:73 +#, kde-format +msgid "Add..." +msgstr "Tilføj..." + +#: search/katesearchbar.cpp:298 +#, kde-format +msgctxt "short translation" +msgid "1 replacement made" +msgid_plural "%1 replacements made" +msgstr[0] "1 erstatning foretaget" +msgstr[1] "%1 erstatninger foretaget" + +#: search/katesearchbar.cpp:300 +#, kde-format +msgctxt "short translation" +msgid "1 match found" +msgid_plural "%1 matches found" +msgstr[0] "1 fund" +msgstr[1] "%1 fund" + +#: search/katesearchbar.cpp:374 +#, kde-format +msgid "Reached top, continued from bottom" +msgstr "Nåede toppen, fortsatte fra bunden" + +#: search/katesearchbar.cpp:376 +#, kde-format +msgid "Reached bottom, continued from top" +msgstr "Nåede enden, fortsatte fra toppen" + +#: search/katesearchbar.cpp:381 +#, kde-format +msgid "Not found" +msgstr "Ikke fundet" + +#: search/katesearchbar.cpp:615 +#, kde-format +msgid "Bottom of file reached. Continue from top?" +msgstr "Bunden af filen er nået. Vil du fortsætte fra toppen?" + +#: search/katesearchbar.cpp:615 +#, kde-format +msgid "Top of file reached. Continue from bottom?" +msgstr "Toppen af filen er nået. Vil du fortsætte fra bunden?" + +#: search/katesearchbar.cpp:618 +#, kde-format +msgid "Continue search?" +msgstr "Fortsæt søgning?" + +#: search/katesearchbar.cpp:920 +#, kde-format +msgid "SearchHighLight" +msgstr "FremhævningsSøgning" + +#: search/katesearchbar.cpp:1136 search/katesearchbar.cpp:1755 +#, fuzzy, kde-format +#| msgid "Clear Dictionary Ranges" +msgid "Clear history" +msgstr "Ryd ordbogsområder" + +#: search/katesearchbar.cpp:1166 +#, kde-format +msgid "Beginning of line" +msgstr "Begyndelse af linje" + +#: search/katesearchbar.cpp:1167 +#, kde-format +msgid "End of line" +msgstr "Linjeafslutning" + +#: search/katesearchbar.cpp:1169 +#, fuzzy, kde-format +#| msgid "Any single character (excluding line breaks)" +msgid "Match any character excluding new line (by default)" +msgstr "Et hvilkensomhelst enkelt tegn (undtaget linjeskift)" + +#: search/katesearchbar.cpp:1170 +#, kde-format +msgid "One or more occurrences" +msgstr "En eller flere forekomster" + +#: search/katesearchbar.cpp:1171 +#, kde-format +msgid "Zero or more occurrences" +msgstr "Nul eller flere forekomster" + +#: search/katesearchbar.cpp:1172 +#, kde-format +msgid "Zero or one occurrences" +msgstr "Nul eller en forekomst" + +#: search/katesearchbar.cpp:1175 +#, kde-format +msgid " through occurrences" +msgstr " til forekomster" + +#: search/katesearchbar.cpp:1181 +#, kde-format +msgid "Group, capturing" +msgstr "Gruppe, reference" + +#: search/katesearchbar.cpp:1182 +#, kde-format +msgid "Or" +msgstr "Eller" + +#: search/katesearchbar.cpp:1183 +#, kde-format +msgid "Set of characters" +msgstr "Sæt af tegn" + +#: search/katesearchbar.cpp:1184 +#, kde-format +msgid "Negative set of characters" +msgstr "Negativt sæt af tegn" + +#: search/katesearchbar.cpp:1188 +#, kde-format +msgid "Whole match reference" +msgstr "Reference til fuld match" + +#: search/katesearchbar.cpp:1199 +#, kde-format +msgid "Reference" +msgstr "Reference" + +#: search/katesearchbar.cpp:1206 +#, kde-format +msgid "Line break" +msgstr "Linjeskift" + +#: search/katesearchbar.cpp:1207 +#, kde-format +msgid "Tab" +msgstr "Tabulator" + +#: search/katesearchbar.cpp:1210 +#, kde-format +msgid "Word boundary" +msgstr "Ordgrænse" + +#: search/katesearchbar.cpp:1211 +#, kde-format +msgid "Not word boundary" +msgstr "Ikke ordgrænse" + +#: search/katesearchbar.cpp:1212 +#, kde-format +msgid "Digit" +msgstr "Ciffer" + +#: search/katesearchbar.cpp:1213 +#, kde-format +msgid "Non-digit" +msgstr "Ikke-ciffer" + +#: search/katesearchbar.cpp:1214 +#, kde-format +msgid "Whitespace (excluding line breaks)" +msgstr "Mellemrum (undtagen linjeskift)" + +#: search/katesearchbar.cpp:1215 +#, kde-format +msgid "Non-whitespace" +msgstr "Ikke-blanktegn" + +#: search/katesearchbar.cpp:1216 +#, kde-format +msgid "Word character (alphanumerics plus '_')" +msgstr "Ordtegn (alfanumeriske tegn plus \"_\")" + +#: search/katesearchbar.cpp:1217 +#, kde-format +msgid "Non-word character" +msgstr "Tegn som ikke er ordkarakterer" + +#: search/katesearchbar.cpp:1220 +#, kde-format +msgid "Octal character 000 to 377 (2^8-1)" +msgstr "Oktal tegnrepresentation 000 til 377 (2^8-1)" + +#: search/katesearchbar.cpp:1221 +#, kde-format +msgid "Hex character 0000 to FFFF (2^16-1)" +msgstr "Hextegn 0000 til FFFF (2^16-1)" + +#: search/katesearchbar.cpp:1222 +#, kde-format +msgid "Backslash" +msgstr "Backslash" + +#: search/katesearchbar.cpp:1226 +#, kde-format +msgid "Group, non-capturing" +msgstr "Gruppe, uden reference" + +#: search/katesearchbar.cpp:1227 +#, kde-format +msgid "Positive Lookahead" +msgstr "Positivt fremadkig" + +#: search/katesearchbar.cpp:1228 +#, kde-format +msgid "Negative lookahead" +msgstr "Negativt fremadkig" + +#: search/katesearchbar.cpp:1232 +#, kde-format +msgid "Fixed-length positive lookbehind" +msgstr "" + +#: search/katesearchbar.cpp:1233 +#, kde-format +msgid "Fixed-length negative lookbehind" +msgstr "" + +#: search/katesearchbar.cpp:1238 +#, kde-format +msgid "Begin lowercase conversion" +msgstr "Påbegynd konvertering til små bogstaver" + +#: search/katesearchbar.cpp:1239 +#, kde-format +msgid "Begin uppercase conversion" +msgstr "Påbegynd konvertering til store bogstaver" + +#: search/katesearchbar.cpp:1240 +#, kde-format +msgid "End case conversion" +msgstr "Afslut konvertering af store/små bogstaver" + +#: search/katesearchbar.cpp:1241 +#, kde-format +msgid "Lowercase first character conversion" +msgstr "Konvertering af første bog til lille" + +#: search/katesearchbar.cpp:1242 +#, kde-format +msgid "Uppercase first character conversion" +msgstr "Konvertering af første bog til stort" + +#: search/katesearchbar.cpp:1243 +#, kde-format +msgid "Replacement counter (for Replace All)" +msgstr "Erstatningstæller (til Erstat alle)" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: search/searchbarincremental.ui:50 +#, kde-format +msgid "F&ind:" +msgstr "F&ind:" + +#. i18n: ectx: property (toolTip), widget (QComboBox, pattern) +#: search/searchbarincremental.ui:78 search/searchbarpower.ui:295 +#, kde-format +msgid "Text to search for" +msgstr "Tekst at søge efter" + +#. i18n: ectx: property (toolTip), widget (QToolButton, findNext) +#. i18n: ectx: property (toolTip), widget (QToolButton, next) +#: search/searchbarincremental.ui:91 search/searchbarpower.ui:175 +#, kde-format +msgid "Jump to next match" +msgstr "Gå til næste match" + +#. i18n: ectx: property (toolTip), widget (QToolButton, findPrev) +#. i18n: ectx: property (toolTip), widget (QToolButton, prev) +#: search/searchbarincremental.ui:101 search/searchbarpower.ui:185 +#, kde-format +msgid "Jump to previous match" +msgstr "Gå til forrige match" + +#. i18n: ectx: property (toolTip), widget (QToolButton, matchCase) +#: search/searchbarincremental.ui:111 search/searchbarpower.ui:136 +#, kde-format +msgid "Match case sensitive" +msgstr "Versalfølsom matchning" + +#. i18n: ectx: property (toolTip), widget (QToolButton, mutate) +#: search/searchbarincremental.ui:146 +#, kde-format +msgid "Switch to power search and replace bar" +msgstr "Skift til avanceret søg og erstat" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: search/searchbarpower.ui:50 +#, kde-format +msgid "Fin&d:" +msgstr "Fin&d:" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: search/searchbarpower.ui:63 +#, kde-format +msgid "Rep&lace:" +msgstr "E&rstat:" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: search/searchbarpower.ui:76 +#, kde-format +msgid "&Mode:" +msgstr "&Tilstand:" + +#. i18n: ectx: property (toolTip), widget (QComboBox, searchMode) +#: search/searchbarpower.ui:103 +#, kde-format +msgid "Search mode" +msgstr "Søgetilstand" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:113 +#, kde-format +msgid "Plain text" +msgstr "Klartekst" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:118 +#, kde-format +msgid "Whole words" +msgstr "Hele ord" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:123 +#, kde-format +msgid "Escape sequences" +msgstr "Undvigesekvenser" + +#. i18n: ectx: property (text), item, widget (QComboBox, searchMode) +#: search/searchbarpower.ui:128 +#, kde-format +msgid "Regular expression" +msgstr "Regulært udtryk" + +#. i18n: ectx: property (toolTip), widget (QToolButton, selectionOnly) +#: search/searchbarpower.ui:149 +#, kde-format +msgid "Search in the selection only" +msgstr "Søg kun i det markerede" + +#. i18n: ectx: property (toolTip), widget (QPushButton, replaceNext) +#: search/searchbarpower.ui:195 +#, kde-format +msgid "Replace next match" +msgstr "Erstat næste forekomst" + +#. i18n: ectx: property (text), widget (QPushButton, replaceNext) +#. i18n: ectx: property (text), widget (QPushButton, m_replaceBtn) +#: search/searchbarpower.ui:198 spellcheck/spellcheckbar.ui:130 +#, kde-format +msgid "&Replace" +msgstr "&Erstat" + +#. i18n: ectx: property (toolTip), widget (QPushButton, replaceAll) +#: search/searchbarpower.ui:224 +#, kde-format +msgid "Replace all matches" +msgstr "Erstat alle forekomster" + +#. i18n: ectx: property (text), widget (QPushButton, replaceAll) +#: search/searchbarpower.ui:227 +#, kde-format +msgid "Replace &All" +msgstr "Erstat &alle" + +#. i18n: ectx: property (text), widget (QPushButton, findAll) +#: search/searchbarpower.ui:234 +#, kde-format +msgid "&Find All" +msgstr "&Find alle" + +#. i18n: ectx: property (text), widget (QPushButton, cancel) +#: search/searchbarpower.ui:257 +#, kde-format +msgid "Cancel" +msgstr "Annullér" + +#. i18n: ectx: property (toolTip), widget (QToolButton, mutate) +#: search/searchbarpower.ui:268 +#, kde-format +msgid "Switch to incremental search bar" +msgstr "Skift til fortløbende søgelinje" + +#. i18n: ectx: property (toolTip), widget (QComboBox, replacement) +#: search/searchbarpower.ui:314 +#, kde-format +msgid "Text to replace with" +msgstr "Tekst der skal erstattes med" + +#: spellcheck/spellcheckbar.cpp:148 +#, kde-format +msgid "Spell check canceled." +msgstr "Stavekontrol annulleret." + +#: spellcheck/spellcheckbar.cpp:245 +#, fuzzy, kde-format +#| msgctxt "progress label" +#| msgid "Spell checking in progress..." +msgctxt "@info:progress" +msgid "Spell checking in progress…" +msgstr "Stavekontrol i gang..." + +#: spellcheck/spellcheckbar.cpp:246 spellcheck/spellcheckbar.cpp:435 +#, kde-format +msgctxt "@title:window" +msgid "Check Spelling" +msgstr "Stavekontrol" + +#: spellcheck/spellcheckbar.cpp:432 spellcheck/spellcheckbar.cpp:435 +#, kde-format +msgid "Spell check complete." +msgstr "Stavekontrol gennemført." + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel2) +#. i18n: ectx: property (whatsThis), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:30 spellcheck/spellcheckbar.ui:46 +#, kde-format +msgid "" +"

This word was considered to be an \"unknown word\" because it does " +"not match any entry in the dictionary currently in use. It may also be a " +"word in a foreign language.

\n" +"

If the word is not misspelled, you may add it to the dictionary by " +"clicking Add to Dictionary. If you do not want to add the unknown " +"word to the dictionary, but you want to leave it unchanged, click Ignore or Ignore All.

\n" +"

However, if the word is misspelled, you can try to find the correct " +"replacement in the list below. If you cannot find a replacement there, you " +"may type it in the text box below, and click Replace or Replace " +"All.

\n" +"
" +msgstr "" +"

Dette ord blev opfattet som et \"ukendt ord\" fordi det ikke matcher " +"nogen indgang i den ordbog du bruger. Det kan også være et ord fra et andet " +"sprog.

\n" +"

Hvis ordet ikke er stavet forkert, kan du tilføje det til ordbogen ved at " +"klikke på Tilføj til ordbog.Hvis du ikke ønsker at tilføje det " +"ukendte ord til ordbogen, men du ønsker at lade det være uændret, så klik på " +"Ignorér eller Ignorér alle.

\n" +"

Hvis ordet imidlertid er stavet forkert, kan du prøve at finde den " +"rigtige erstatning på listen nedenfor. Hvis du ikke kan finde en erstatning " +"der, kan du skrive den i tekstfeltet nedenfor, og klikke på Erstat " +"eller Erstat alle.

\n" +"
" + +#. i18n: ectx: property (text), widget (QLabel, textLabel2) +#: spellcheck/spellcheckbar.ui:33 +#, kde-format +msgid "Unknown word:" +msgstr "Ukendt ord:" + +#. i18n: ectx: property (toolTip), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:40 +#, kde-format +msgid "Unknown word" +msgstr "Ukendt ord" + +#. i18n: ectx: property (text), widget (QLabel, m_unknownWord) +#: spellcheck/spellcheckbar.ui:49 +#, kde-format +msgid "misspelled" +msgstr "forkert stavet" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_addBtn) +#: spellcheck/spellcheckbar.ui:72 +#, kde-format +msgid "" +"\n" +"

The unknown word was detected and considered unknown because it is not " +"included in the dictionary.
\n" +"Click here if you consider the unknown word not to be misspelled, and you " +"want to avoid wrongly detecting it again in the future. If you want to let " +"it remain as is, but not add it to the dictionary, then click Ignore " +"or Ignore All instead.

\n" +"
" +msgstr "" +"\n" +"

Det ukendte ord blev detekteret og opfattet som ukendt fordi det ikke er " +"inkluderet i ordbogen.
\n" +"Klik her hvis du mener det ukendte ord ikke er stavet forkert og du ønsker " +"at undgå, at detektere det forkert igen engang i fremtiden. Hvis du ønsker " +"at lade det forblive som det er, men ikke at tilføje det til ordbogen, så " +"klik på Ignorér eller Ignorér alle i stedet for.

\n" +"
" + +#. i18n: ectx: property (text), widget (QPushButton, m_addBtn) +#: spellcheck/spellcheckbar.ui:75 +#, kde-format +msgid "<< Add to Dictionary" +msgstr "<< Føj til ordbog" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel4) +#: spellcheck/spellcheckbar.ui:89 +#, kde-format +msgid "" +"\n" +"

If the unknown word is misspelled, you should type the correction for " +"your misspelled word here or select it from the list below.

\n" +"

You can then click Replace if you want to correct only this " +"occurrence of the word or Replace All if you want to correct all " +"occurrences.

\n" +"
" +msgstr "" +"\n" +"

Hvis det ukendte ord er stavet forkert, kan du skrive rettelsen her for " +"det forkert stavede ord eller vælge det på listen nedenfor.

\n" +"

Du kan så klikke på Erstat hvis du ønsker kun at rette denne " +"forekomst af ordet eller Erstat alle hvis du vil rette alle " +"forekomster.

\n" +"
" + +#. i18n: ectx: property (text), widget (QLabel, textLabel4) +#: spellcheck/spellcheckbar.ui:92 +#, kde-format +msgid "Replace with:" +msgstr "Erstat med:" + +#. i18n: ectx: property (text), widget (QPushButton, m_suggestBtn) +#: spellcheck/spellcheckbar.ui:118 +#, kde-format +msgid "S&uggest" +msgstr "&Forslag" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_replaceBtn) +#: spellcheck/spellcheckbar.ui:127 +#, kde-format +msgid "" +"\n" +"

Click here to replace this occurrence of the unknown text with the text " +"in the edit box above (to the left).

\n" +"
" +msgstr "" +"\n" +"

Klik her for at erstatte denne forekomst af den ukendte tekst med teksten " +"i redigeringsfeltet ovenfor (i venstre side).

\n" +"
" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_skipBtn) +#: spellcheck/spellcheckbar.ui:140 +#, kde-format +msgid "" +"\n" +"

Click here to let this occurrence of the unknown word remain as is.

\n" +"

This action is useful when the word is a name, an acronym, a foreign word " +"or any other unknown word that you want to use but not add to the dictionary." +"

\n" +"
" +msgstr "" +"\n" +"

Klik her for at lade denne forekomst af det ukendte ord forblive som den " +"er.

\n" +"

Denne handling er nyttig når ordet er et navn, en forkortelse, et " +"udenlandsk ord eller et vilkårligt andet ord du ønsker at bruge uden at " +"tilføje det til ordbogen.

\n" +"
" + +#. i18n: ectx: property (whatsThis), widget (QLabel, textLabel5) +#. i18n: ectx: property (whatsThis), widget (Sonnet::DictionaryComboBox, m_language) +#: spellcheck/spellcheckbar.ui:156 spellcheck/spellcheckbar.ui:174 +#, kde-format +msgid "" +"\n" +"

Select the language of the document you are proofing here.

\n" +"
" +msgstr "" +"\n" +"

Vælg sproget for det dokument du læser korrektur på her.

\n" +"
" + +#. i18n: ectx: property (text), widget (QLabel, textLabel5) +#: spellcheck/spellcheckbar.ui:159 +#, kde-format +msgid "&Language:" +msgstr "S&prog:" + +#. i18n: ectx: property (toolTip), widget (Sonnet::DictionaryComboBox, m_language) +#: spellcheck/spellcheckbar.ui:169 +#, kde-format +msgid "Language Selection" +msgstr "Sprogvalg" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_autoCorrect) +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_skipAllBtn) +#: spellcheck/spellcheckbar.ui:197 spellcheck/spellcheckbar.ui:222 +#, kde-format +msgid "" +"\n" +"

Click here to let all occurrences of the unknown word remain as they are." +"

\n" +"

This action is useful when the word is a name, an acronym, a foreign word " +"or any other unknown word that you want to use but not add to the dictionary." +"

\n" +"
" +msgstr "" +"\n" +"

Klik her for at lade alle forekomster af de ukendte ord forblive som de " +"er.

\n" +"

Denne handling er nyttig når ordet er et navn, en forkortelse, et " +"udenlandsk ord eller et vilkårligt andet ord du ønsker at bruge uden at " +"tilføje det til ordbogen.

\n" +"
" + +#. i18n: ectx: property (text), widget (QPushButton, m_autoCorrect) +#: spellcheck/spellcheckbar.ui:200 +#, kde-format +msgid "Autocorrect" +msgstr "Autokorrigér" + +#. i18n: ectx: property (whatsThis), widget (QPushButton, m_replaceAllBtn) +#: spellcheck/spellcheckbar.ui:209 +#, kde-format +msgid "" +"\n" +"

Click here to replace all occurrences of the unknown text with the text " +"in the edit box above (to the left).

\n" +"
" +msgstr "" +"\n" +"

Klik her for at erstatte alle forekomster af den ukendte tekst med " +"teksten i redigeringsfeltet ovenfor (til venstre).

\n" +"
" + +#. i18n: ectx: property (text), widget (QPushButton, m_replaceAllBtn) +#: spellcheck/spellcheckbar.ui:212 +#, kde-format +msgid "R&eplace All" +msgstr "&Erstat alle" + +#. i18n: ectx: property (text), widget (QPushButton, m_skipAllBtn) +#: spellcheck/spellcheckbar.ui:225 +#, kde-format +msgid "I&gnore All" +msgstr "I&gnorér alle" + +#: spellcheck/spellcheckdialog.cpp:51 +#, fuzzy, kde-format +#| msgid "Spelling (from cursor)..." +msgctxt "@action" +msgid "Spelling (from Cursor)…" +msgstr "Stavekontrol (fra markøren)..." + +#: spellcheck/spellcheckdialog.cpp:54 +#, kde-format +msgid "Check the document's spelling from the cursor and forward" +msgstr "Kontrollér dokumentets stavning fra markøren og fremad" + +#: spellcheck/spellingmenu.cpp:76 +#, kde-format +msgid "Ignore Word" +msgstr "Ignorér ord" + +#: spellcheck/spellingmenu.cpp:79 +#, kde-format +msgid "Add to Dictionary" +msgstr "Føj til ordbog" + +#: spellcheck/spellingmenu.cpp:172 +#, fuzzy, kde-format +#| msgid "Spelling" +msgid "Spelling '%1'" +msgstr "Stavekontrol" + +#: swapfile/kateswapdiffcreator.cpp:87 +#, fuzzy, kde-format +#| msgid "" +#| "The diff command could not be started. Please make sure that diff(1) is " +#| "installed and in your PATH." +msgid "" +"The diff command could not be found. Please make sure that diff(1) is " +"installed and in your PATH." +msgstr "" +"Diff-kommandoen kunne ikke startes. Sørg for at diff(1) er installeret og i " +"din søgesti (PATH)." + +#: swapfile/kateswapdiffcreator.cpp:98 +#, kde-format +msgid "The diff command '%1' could not be started." +msgstr "" + +#: swapfile/kateswapfile.cpp:642 +#, kde-format +msgid "The file was not closed properly." +msgstr "Filen blev ikke lukket korrekt." + +#: swapfile/kateswapfile.cpp:645 +#, kde-format +msgid "View Changes" +msgstr "Vis ændringer" + +#: swapfile/kateswapfile.cpp:646 +#, kde-format +msgid "Recover Data" +msgstr "Gendan data" + +#: swapfile/kateswapfile.cpp:647 +#, kde-format +msgid "Discard" +msgstr "Kassér" + +#: syntax/katecolortreewidget.cpp:34 syntax/katecolortreewidget.cpp:61 +#, fuzzy, kde-format +#| msgid "Use default color from the KDE color scheme" +msgid "Use default color from the color theme" +msgstr "Brug standardfarve fra KDE's farvetema" + +#: syntax/katehighlightmenu.cpp:39 +#, kde-format +msgid "None" +msgstr "Ingen" + +#: syntax/katestyletreewidget.cpp:135 +#, kde-format +msgctxt "@title:column Meaning of text in editor" +msgid "Context" +msgstr "Kontekst" + +#: syntax/katestyletreewidget.cpp:136 +#, kde-format +msgctxt "@title:column Text style" +msgid "Normal" +msgstr "Normal" + +#: syntax/katestyletreewidget.cpp:136 +#, kde-format +msgctxt "@title:column Text style" +msgid "Selected" +msgstr "Markeret" + +#: syntax/katestyletreewidget.cpp:136 +#, kde-format +msgctxt "@title:column Text style" +msgid "Background" +msgstr "Baggrund" + +#: syntax/katestyletreewidget.cpp:137 +#, kde-format +msgctxt "@title:column Text style" +msgid "Background Selected" +msgstr "Baggrund for markering" + +#: syntax/katestyletreewidget.cpp:139 +#, kde-format +msgid "Use Default Style" +msgstr "Brug standardstil" + +#: syntax/katestyletreewidget.cpp:238 +#, kde-format +msgid "&Bold" +msgstr "&Fed" + +#: syntax/katestyletreewidget.cpp:243 +#, kde-format +msgid "&Italic" +msgstr "&Kursiv" + +#: syntax/katestyletreewidget.cpp:248 +#, kde-format +msgid "&Underline" +msgstr "&Understreg" + +#: syntax/katestyletreewidget.cpp:253 +#, kde-format +msgid "S&trikeout" +msgstr "Gennems&treg" + +#: syntax/katestyletreewidget.cpp:260 +#, fuzzy, kde-format +#| msgid "Normal &Color..." +msgctxt "@action:inmenu" +msgid "Normal &Color…" +msgstr "Normal &farve..." + +#: syntax/katestyletreewidget.cpp:263 +#, fuzzy, kde-format +#| msgid "&Selected Color..." +msgctxt "@action:inmenu" +msgid "&Selected Color…" +msgstr "&Markeret farve..." + +#: syntax/katestyletreewidget.cpp:266 +#, fuzzy, kde-format +#| msgid "&Background Color..." +msgctxt "@action:inmenu" +msgid "&Background Color…" +msgstr "&Baggrundsfarve..." + +#: syntax/katestyletreewidget.cpp:269 +#, fuzzy, kde-format +#| msgid "S&elected Background Color..." +msgctxt "@action:inmenu" +msgid "S&elected Background Color…" +msgstr "&Markeret baggrundsfarve..." + +#: syntax/katestyletreewidget.cpp:275 +#, kde-format +msgid "Unset Normal Color" +msgstr "Fjern normal farve" + +#: syntax/katestyletreewidget.cpp:278 +#, kde-format +msgid "Unset Selected Color" +msgstr "Fjern valgt farve" + +#: syntax/katestyletreewidget.cpp:284 +#, kde-format +msgid "Unset Background Color" +msgstr "Nulstil baggrundsfarve" + +#: syntax/katestyletreewidget.cpp:289 +#, kde-format +msgid "Unset Selected Background Color" +msgstr "Nulstil markeret baggrundsfarve" + +#: syntax/katestyletreewidget.cpp:295 +#, kde-format +msgid "Use &Default Style" +msgstr "Brug &standardtypografi" + +#: syntax/katestyletreewidget.cpp:408 +#, kde-format +msgctxt "No text or background color set" +msgid "None set" +msgstr "Ingen valgt" + +#: syntax/katestyletreewidget.cpp:642 +#, kde-format +msgid "" +"\"Use Default Style\" will be automatically unset when you change any style " +"properties." +msgstr "" +"\"Brug standardtypografi\" vil automatisk blive deaktiveret når du ændrer en " +"typografi-indstilling." + +#: syntax/katestyletreewidget.cpp:643 +#, kde-format +msgid "Kate Styles" +msgstr "Kate-temaer" + +#: syntax/katethemeconfig.cpp:47 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Normal" +msgstr "Normal" + +#: syntax/katethemeconfig.cpp:49 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Keyword" +msgstr "Nøgleord" + +#: syntax/katethemeconfig.cpp:51 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Function" +msgstr "Funktion" + +#: syntax/katethemeconfig.cpp:53 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Variable" +msgstr "Variabel" + +#: syntax/katethemeconfig.cpp:55 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Control Flow" +msgstr "Control Flow" + +#: syntax/katethemeconfig.cpp:57 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Operator" +msgstr "Operatør" + +#: syntax/katethemeconfig.cpp:59 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Built-in" +msgstr "Indbygget" + +#: syntax/katethemeconfig.cpp:61 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Extension" +msgstr "Filendelse" + +#: syntax/katethemeconfig.cpp:63 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Preprocessor" +msgstr "Præprocesser" + +#: syntax/katethemeconfig.cpp:65 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Attribute" +msgstr "Attribut" + +#: syntax/katethemeconfig.cpp:68 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Character" +msgstr "Tegn" + +#: syntax/katethemeconfig.cpp:70 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Special Character" +msgstr "Specialtegn" + +#: syntax/katethemeconfig.cpp:72 +#, kde-format +msgctxt "@item:intable Text context" +msgid "String" +msgstr "Streng" + +#: syntax/katethemeconfig.cpp:74 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Verbatim String" +msgstr "Ordret streng" + +#: syntax/katethemeconfig.cpp:76 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Special String" +msgstr "Speciel streng" + +#: syntax/katethemeconfig.cpp:78 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Imports, Modules, Includes" +msgstr "Importer, moduler, inkluderingsfiler" + +#: syntax/katethemeconfig.cpp:81 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Data Type" +msgstr "Datatype" + +#: syntax/katethemeconfig.cpp:83 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Decimal/Value" +msgstr "Decimal/værdi" + +#: syntax/katethemeconfig.cpp:85 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Base-N Integer" +msgstr "Base-N heltal" + +#: syntax/katethemeconfig.cpp:87 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Floating Point" +msgstr "Decimaltal" + +#: syntax/katethemeconfig.cpp:89 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Constant" +msgstr "Konstant" + +#: syntax/katethemeconfig.cpp:92 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Comment" +msgstr "Kommentar" + +#: syntax/katethemeconfig.cpp:94 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Documentation" +msgstr "Dokumentation" + +#: syntax/katethemeconfig.cpp:96 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Annotation" +msgstr "Annotation" + +#: syntax/katethemeconfig.cpp:98 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Comment Variable" +msgstr "Kommentarvariabel" + +#: syntax/katethemeconfig.cpp:101 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Region Marker" +msgstr "Områdemærke" + +#: syntax/katethemeconfig.cpp:103 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Information" +msgstr "Information" + +#: syntax/katethemeconfig.cpp:105 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Warning" +msgstr "Advarsel" + +#: syntax/katethemeconfig.cpp:107 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Alert" +msgstr "Advarsel" + +#: syntax/katethemeconfig.cpp:110 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Others" +msgstr "Andre" + +#: syntax/katethemeconfig.cpp:113 +#, kde-format +msgctxt "@item:intable Text context" +msgid "Error" +msgstr "Fejl" + +#: syntax/katethemeconfig.cpp:162 +#, fuzzy, kde-format +#| msgid "Use Default" +msgid "Use Default Colors" +msgstr "Brug standard" + +#: syntax/katethemeconfig.cpp:182 +#, kde-format +msgid "Editor Background Colors" +msgstr "Baggrundsfarver for editor" + +#: syntax/katethemeconfig.cpp:184 +#, kde-format +msgid "Text Area" +msgstr "Tekstområde" + +#: syntax/katethemeconfig.cpp:186 +#, kde-format +msgid "

Sets the background color of the editing area.

" +msgstr "

Indstiller baggrundsfarven for redigeringsområdet.

" + +#: syntax/katethemeconfig.cpp:191 +#, kde-format +msgid "Selected Text" +msgstr "Markeret tekst" + +#: syntax/katethemeconfig.cpp:194 +#, kde-format +msgid "" +"

Sets the background color of the selection.

To set the text color " +"for selected text, use the "Configure Highlighting" dialog." +"

" +msgstr "" +"

Indstiller baggrundsfarven for markeringen.

For at sætte " +"tekstfarven for markeret tekst, brug dialogen "Indstil fremhævning".

" + +#: syntax/katethemeconfig.cpp:200 +#, kde-format +msgid "Current Line" +msgstr "Aktuel linje" + +#: syntax/katethemeconfig.cpp:202 +#, kde-format +msgid "" +"

Sets the background color of the currently active line, which means the " +"line where your cursor is positioned.

" +msgstr "" +"

Indstiller baggrundsfarven for den aktuelt aktive linje, dvs. den linje " +"hvor tekstmarkøren er.

" + +#: syntax/katethemeconfig.cpp:207 +#, kde-format +msgid "Search Highlight" +msgstr "Fremhævning af søgning" + +#: syntax/katethemeconfig.cpp:209 +#, kde-format +msgid "

Sets the background color of search results.

" +msgstr "

Angiver baggrundsfarven for søgeresultater.

" + +#: syntax/katethemeconfig.cpp:214 +#, kde-format +msgid "Replace Highlight" +msgstr "Fremhævning af erstatning" + +#: syntax/katethemeconfig.cpp:216 +#, kde-format +msgid "

Sets the background color of replaced text.

" +msgstr "

Angiver baggrundsfarven for erstattet tekst.

" + +#: syntax/katethemeconfig.cpp:223 +#, kde-format +msgid "Icon Border" +msgstr "Ikonkant" + +#: syntax/katethemeconfig.cpp:226 +#, kde-format +msgid "Background Area" +msgstr "Baggrundsområde" + +#: syntax/katethemeconfig.cpp:228 +#, kde-format +msgid "

Sets the background color of the icon border.

" +msgstr "

Angiver baggrundsfarven for ikonkanter.

" + +#: syntax/katethemeconfig.cpp:233 view/screenshotdialog.cpp:265 +#, kde-format +msgid "Line Numbers" +msgstr "Linjenumre" + +#: syntax/katethemeconfig.cpp:235 +#, kde-format +msgid "

This color will be used to draw the line numbers (if enabled).

" +msgstr "

Denne farve vil blive brugt til linjenumre (hvis aktiveret).

" + +#: syntax/katethemeconfig.cpp:240 +#, kde-format +msgid "Current Line Number" +msgstr "Aktuel linjenummer" + +#: syntax/katethemeconfig.cpp:242 +#, kde-format +msgid "" +"

This color will be used to draw the number of the current line (if " +"enabled).

" +msgstr "" +"

Denne farve vil blive brugt til linjenumre i den aktuelle fil (hvis " +"aktiveret).

" + +#: syntax/katethemeconfig.cpp:247 +#, kde-format +msgid "Separator" +msgstr "Separator" + +#: syntax/katethemeconfig.cpp:249 +#, kde-format +msgid "" +"

This color will be used to draw the line between line numbers and the " +"icon borders, if both are enabled.

" +msgstr "" +"

Denne farve vil blive brugt til at tegne linjen mellem linjenumre og " +"ikonkanterne, hvis begge er aktiveret.

" + +#: syntax/katethemeconfig.cpp:254 +#, kde-format +msgid "Word Wrap Marker" +msgstr "Tekstombrydningsmærke" + +#: syntax/katethemeconfig.cpp:257 +#, kde-format +msgid "" +"

Sets the color of Word Wrap-related markers:

Static Word Wrap
A vertical line which shows the column where text is going to be " +"wrapped
Dynamic Word Wrap
An arrow shown to the left of " +"visually-wrapped lines
" +msgstr "" +"

Indstiller farven på tekstombrydningsmærker:

Statisk " +"tekstombrydning
En lodret linje som viser kolonnen, hvor teksten " +"skal ombrydes
Dynamisk tekstombrydning
En pil vist ud for de " +"visuelt ombrudte linjer
" + +#: syntax/katethemeconfig.cpp:264 +#, kde-format +msgid "Code Folding" +msgstr "Tekstfoldning" + +#: syntax/katethemeconfig.cpp:266 +#, kde-format +msgid "

Sets the color of the code folding bar.

" +msgstr "

Angiver farven på tekstfoldningslinjen.

" + +#: syntax/katethemeconfig.cpp:271 +#, kde-format +msgid "Modified Lines" +msgstr "Ændrede linjer" + +#: syntax/katethemeconfig.cpp:273 +#, kde-format +msgid "" +"

Sets the color of the line modification marker for modified lines.

" +msgstr "

Angiver farven på linjeændringsmærke for ændrede linjer.

" + +#: syntax/katethemeconfig.cpp:278 +#, kde-format +msgid "Saved Lines" +msgstr "Gemte linjer" + +#: syntax/katethemeconfig.cpp:280 +#, kde-format +msgid "

Sets the color of the line modification marker for saved lines.

" +msgstr "

Angiver farven på linjeændringsmærke for gemte linjer.

" + +#: syntax/katethemeconfig.cpp:287 +#, kde-format +msgid "Text Decorations" +msgstr "Tekstdekorationer" + +#: syntax/katethemeconfig.cpp:290 +#, kde-format +msgid "Spelling Mistake Line" +msgstr "Linje med stavefejl" + +#: syntax/katethemeconfig.cpp:292 +#, kde-format +msgid "" +"

Sets the color of the line that is used to indicate spelling mistakes.

" +msgstr "

Sætter linjefarven der bruges til at indikere stavekontroller.

" + +#: syntax/katethemeconfig.cpp:297 +#, kde-format +msgid "Tab and Space Markers" +msgstr "Tabulator- og mellemrumsmærker" + +#: syntax/katethemeconfig.cpp:299 +#, kde-format +msgid "

Sets the color of the tabulator marks.

" +msgstr "

Indstiller farven på tabulatormærker.

" + +#: syntax/katethemeconfig.cpp:304 +#, kde-format +msgid "Indentation Line" +msgstr "Indrykningslinje" + +#: syntax/katethemeconfig.cpp:306 +#, kde-format +msgid "

Sets the color of the vertical indentation lines.

" +msgstr "

Angiver farven på de lodrette indrykningslinjer.

" + +#: syntax/katethemeconfig.cpp:311 +#, kde-format +msgid "Bracket Highlight" +msgstr "Parentesfremhævning" + +#: syntax/katethemeconfig.cpp:314 +#, kde-format +msgid "" +"

Sets the bracket matching color. This means, if you place the cursor e.g. " +"at a (, the matching ) will be highlighted with this color.

" +msgstr "" +"

Indstiller farven for modsvarende parenteser. Det betyder at hvis du f." +"eks. sætter markøren ved et (, så vil den modsvarende ) blive " +"fremhævet med denne farve.

" + +#: syntax/katethemeconfig.cpp:322 +#, kde-format +msgid "Marker Colors" +msgstr "Mærkefarver" + +#: syntax/katethemeconfig.cpp:324 view/kateviewhelpers.cpp:1536 +#, kde-format +msgid "Bookmark" +msgstr "Bogmærke" + +#: syntax/katethemeconfig.cpp:325 +#, kde-format +msgid "Active Breakpoint" +msgstr "Aktivt breakpoint" + +#: syntax/katethemeconfig.cpp:326 +#, kde-format +msgid "Reached Breakpoint" +msgstr "Aktuelt breakpoint" + +#: syntax/katethemeconfig.cpp:327 +#, kde-format +msgid "Disabled Breakpoint" +msgstr "Deaktiveret breakpoint" + +#: syntax/katethemeconfig.cpp:328 +#, kde-format +msgid "Execution" +msgstr "Kørsel" + +#: syntax/katethemeconfig.cpp:329 +#, kde-format +msgid "Warning" +msgstr "Advarsel" + +#: syntax/katethemeconfig.cpp:330 +#, kde-format +msgid "Error" +msgstr "Fejl" + +#: syntax/katethemeconfig.cpp:332 +#, kde-format +msgid "" +"

Sets the background color of mark type.

Note: The marker " +"color is displayed lightly because of transparency.

" +msgstr "" +"

Angiver baggrundsfarven for mærketypen.

Bemærk: Mærkefarven " +"vises lyst på grund af gennemsigtighed.

" + +#: syntax/katethemeconfig.cpp:344 +#, kde-format +msgid "Text Templates & Snippets" +msgstr "Tekstskabeloner og -stumper" + +#: syntax/katethemeconfig.cpp:349 +#, kde-format +msgid "Background" +msgstr "Baggrund" + +#: syntax/katethemeconfig.cpp:355 +#, kde-format +msgid "Editable Placeholder" +msgstr "Redigérbar pladsholder" + +#: syntax/katethemeconfig.cpp:361 +#, kde-format +msgid "Focused Editable Placeholder" +msgstr "Fokuseret redigérbar pladsholder" + +#: syntax/katethemeconfig.cpp:367 +#, kde-format +msgid "Not Editable Placeholder" +msgstr "Ikke-redigérbar pladsholder" + +#: syntax/katethemeconfig.cpp:501 +#, fuzzy, kde-format +#| msgid "" +#| "

This list displays the default styles for the current schema and " +#| "offers the means to edit them. The style name reflects the current style " +#| "settings.

To edit the colors, click the colored squares, or select " +#| "the color to edit from the popup menu.

You can unset the Background " +#| "and Selected Background colors from the popup menu when appropriate.

" +msgid "" +"

This list displays the default styles for the current color theme and " +"offers the means to edit them. The style name reflects the current style " +"settings.

To edit the colors, click the colored squares, or select the " +"color to edit from the popup menu.

You can unset the Background and " +"Selected Background colors from the popup menu when appropriate.

" +msgstr "" +"

Denne liste viser standardtypografierne for det nuværende farveskema og " +"giver mulighed redigere dem. Kontekst-navnets typografi viser aktuelle " +"indstilling.

For at redigere farverne skal du klikke på de farvede " +"firkanter eller vælge farven der skal redigeres fra popop-menuen.

Du " +"kan nulstille baggrunds- og markeret baggrunds-farverne fra popup-menuen når " +"det det passer dig.

" + +#: syntax/katethemeconfig.cpp:568 +#, kde-format +msgctxt "@item:intable" +msgid "Normal Text & Source Code" +msgstr "Almindelig tekst og kildekode" + +#: syntax/katethemeconfig.cpp:575 +#, kde-format +msgctxt "@item:intable" +msgid "Numbers, Types & Constants" +msgstr "Tal, typer og konstanter" + +#: syntax/katethemeconfig.cpp:582 +#, kde-format +msgctxt "@item:intable" +msgid "Strings & Characters" +msgstr "Strenge og tegn" + +#: syntax/katethemeconfig.cpp:589 +#, kde-format +msgctxt "@item:intable" +msgid "Comments & Documentation" +msgstr "Kommentarer og dokumentation" + +#: syntax/katethemeconfig.cpp:596 +#, kde-format +msgctxt "@item:intable" +msgid "Miscellaneous" +msgstr "Diverse" + +#: syntax/katethemeconfig.cpp:704 +#, kde-format +msgid "H&ighlight:" +msgstr "Syntaksf&remhævning:" + +#: syntax/katethemeconfig.cpp:746 +#, kde-format +msgid "" +"

This list displays the contexts of the current syntax highlight mode and " +"offers the means to edit them. The context name reflects the current style " +"settings.

To edit using the keyboard, press <SPACE> and choose a property from the popup menu.

To edit the colors, " +"click the colored squares, or select the color to edit from the popup menu.

You can unset the Background and Selected Background colors from the " +"context menu when appropriate.

" +msgstr "" +"

Denne liste viser kontekst-typografierne for den aktuelle " +"syntaksfremhævningstilstand og giver mulighed for at redigere dem. " +"Kontekstnavnets typografi viser den aktuelle indstilling.

For at " +"redigere ved brug af tastaturet, tryk på <MELLEMRUM> " +"og vælg en egenskab fra popop-menuen.

For at redigere en farve skal du " +"klikke på de farvede firkanter eller vælge farven der skal redigeres fra " +"popop-menuen.

Du kan nulstille baggrund- og markeret baggrunds-" +"farverne fra kontekstmenuen som det passer dig.

" + +#: syntax/katethemeconfig.cpp:1027 +#, fuzzy, kde-format +#| msgid "Default Text Styles" +msgid "Default Theme" +msgstr "Standardtypografier" + +#: syntax/katethemeconfig.cpp:1028 +#, fuzzy, kde-format +#| msgid "Choose Editor..." +msgid "Theme Editor" +msgstr "Vælg editor..." + +#: syntax/katethemeconfig.cpp:1046 +#, fuzzy, kde-format +#| msgid "Selected text:" +msgid "Select theme:" +msgstr "Markeret tekst:" + +#: syntax/katethemeconfig.cpp:1119 +#, kde-format +msgid "&Theme:" +msgstr "&Tema:" + +#: syntax/katethemeconfig.cpp:1128 +#, fuzzy, kde-format +#| msgid "&Copy..." +msgctxt "@action:button" +msgid "&Copy…" +msgstr "&Kopiér..." + +#: syntax/katethemeconfig.cpp:1136 +#, fuzzy, kde-format +#| msgid "Export..." +msgctxt "@action:button" +msgid "Export…" +msgstr "Eksportér..." + +#: syntax/katethemeconfig.cpp:1140 +#, fuzzy, kde-format +#| msgid "Import..." +msgctxt "@action:button" +msgid "Import…" +msgstr "Importér..." + +#: syntax/katethemeconfig.cpp:1147 +#, kde-format +msgid "Bundled read-only theme. To modify the theme, please copy it." +msgstr "" + +#: syntax/katethemeconfig.cpp:1160 +#, kde-format +msgid "Colors" +msgstr "Farver" + +#: syntax/katethemeconfig.cpp:1164 +#, kde-format +msgid "Default Text Styles" +msgstr "Standardtypografier" + +#: syntax/katethemeconfig.cpp:1168 +#, kde-format +msgid "Highlighting Text Styles" +msgstr "Typografier til syntaksfremhævning" + +#: syntax/katethemeconfig.cpp:1180 +#, fuzzy, kde-format +#| msgid "Exporting color schema: %1" +msgid "Exporting color theme: %1" +msgstr "Eksporterer farveskema: %1" + +#: syntax/katethemeconfig.cpp:1182 syntax/katethemeconfig.cpp:1203 +#, kde-format +msgid "Color theme" +msgstr "Farvetema" + +#: syntax/katethemeconfig.cpp:1203 +#, fuzzy, kde-format +#| msgid "Importing Color Schema" +msgid "Importing Color Theme" +msgstr "Importerer farveskema" + +#: syntax/katethemeconfig.cpp:1217 +#, fuzzy, kde-format +#| msgid "Do you really want to delete the snippet \"%1\"?" +msgid "" +"Importing will overwrite the existing theme file \"%1\". This can not be " +"undone." +msgstr "Vil du virkelig slette tekststumpen \"%1\"?" + +#: syntax/katethemeconfig.cpp:1219 +#, fuzzy, kde-format +#| msgid "Close Nevertheless" +msgid "Import Nevertheless" +msgstr "Luk alligevel" + +#: syntax/katethemeconfig.cpp:1308 +#, fuzzy, kde-format +#| msgid "Use KDE Color Scheme" +msgid "Follow System Color Scheme" +msgstr "Brug KDE's farvetema" + +#: syntax/katethemeconfig.cpp:1375 +#, fuzzy, kde-format +#| msgid "Do you really want to delete the snippet \"%1\"?" +msgid "Do you really want to delete the theme \"%1\"? This can not be undone." +msgstr "Vil du virkelig slette tekststumpen \"%1\"?" + +#: syntax/katethemeconfig.cpp:1377 +#, kde-format +msgid "Delete Nevertheless" +msgstr "Slet alligevel" + +#: syntax/katethemeconfig.cpp:1419 +#, kde-format +msgid "Copy theme" +msgstr "Kopiér tema" + +#: syntax/katethemeconfig.cpp:1420 +#, kde-format +msgid "Name for copy of color theme \"%1\":" +msgstr "" + +#: syntax/katethemeconfig.cpp:1432 +#, fuzzy, kde-format +#| msgid "" +#| "

The schema %1 already exists.

Please choose a different schema " +#| "name.

" +msgid "" +"

The theme \"%1\" already exists.

Please choose a different theme " +"name.

" +msgstr "

Skemaet %1 findes allerede.

Vælg et andet skemanavn.

" + +#: syntax/katethemeconfig.cpp:1433 +#, kde-format +msgid "Copy Theme" +msgstr "Kopiér tema" + +#: syntax/katethemeconfig.cpp:1486 syntax/katethemeconfig.cpp:1491 +#, kde-format +msgid "Color Themes" +msgstr "Kopiér temaer" + +#: utils/kateautoindent.cpp:88 +#, kde-format +msgctxt "Autoindent mode" +msgid "None" +msgstr "Ingen" + +#: utils/kateautoindent.cpp:92 +#, kde-format +msgctxt "Autoindent mode" +msgid "Normal" +msgstr "Normal" + +#: utils/katebookmarks.cpp:49 +#, fuzzy, kde-format +#| msgid "Set &Bookmark" +msgid "Toggle &Bookmark" +msgstr "Sæt &bogmærke" + +#: utils/katebookmarks.cpp:53 +#, kde-format +msgid "If a line has no bookmark then add one, otherwise remove it." +msgstr "Hvis en linje ikke har noget bogmærke, så sæt et, ellers fjern det." + +#: utils/katebookmarks.cpp:56 +#, kde-format +msgid "Clear &All Bookmarks" +msgstr "Ryd &alle bogmærker" + +#: utils/katebookmarks.cpp:59 +#, kde-format +msgid "Remove all bookmarks of the current document." +msgstr "Fjerner alle bogmærker i det aktuelle dokument." + +#: utils/katebookmarks.cpp:62 utils/katebookmarks.cpp:219 +#, kde-format +msgid "Next Bookmark" +msgstr "Næste bogmærke" + +#: utils/katebookmarks.cpp:66 +#, kde-format +msgid "Go to the next bookmark." +msgstr "Gå til det næste bogmærke." + +#: utils/katebookmarks.cpp:69 utils/katebookmarks.cpp:220 +#, kde-format +msgid "Previous Bookmark" +msgstr "Forrige bogmærke" + +#: utils/katebookmarks.cpp:73 +#, kde-format +msgid "Go to the previous bookmark." +msgstr "Gå til det forrige bogmærke." + +#: utils/katebookmarks.cpp:76 +#, kde-format +msgid "&Bookmarks" +msgstr "&Bogmærker" + +#: utils/katebookmarks.cpp:192 +#, kde-format +msgid "&Next: %1 - \"%2\"" +msgstr "&Næste: %1 - \"%2\"" + +#: utils/katebookmarks.cpp:198 +#, kde-format +msgid "&Previous: %1 - \"%2\"" +msgstr "&Forrige: %1 - \"%2\"" + +#: utils/katecmds.cpp:53 +#, kde-format +msgid "

indent

Indents the selected lines or the current line

" +msgstr "" +"

indent

Indrykker de markerede linjer eller den aktuelle linje

" + +#: utils/katecmds.cpp:58 +#, kde-format +msgid "

unindent

Unindents the selected lines or current line.

" +msgstr "" +"

unindent

Afindrykker de markerede linjer eller den aktuelle linje" + +#: utils/katecmds.cpp:63 +#, kde-format +msgid "" +"

cleanindent

Cleans up the indentation of the selected lines or " +"current line according to the indentation settings in the document.

" +msgstr "" +"

cleanindent

Rydder indrykningen af de markerede linjer eller den " +"aktuelle linje i henhold til dokumentets indrykningsindstillinger.

" + +#: utils/katecmds.cpp:68 +#, kde-format +msgid "" +"

comment

Inserts comment markers to make the selection or selected " +"lines or current line a comment according to the text format as defined by " +"the syntax highlight definition for the document.

" +msgstr "" +"

comment

Indsætter kommentarmarkører for at gøre markeringen, " +"markerede linjer eller den aktuelle linje til kommentarer i henhold til " +"tekstformatet, som defineret af dokumentets syntaksfremhævningsdefinition." + +#: utils/katecmds.cpp:74 +#, kde-format +msgid "" +"

uncomment

Removes comment markers from the selection or selected " +"lines or current line according to the text format as defined by the syntax " +"highlight definition for the document.

" +msgstr "" +"

uncomment

Fjerner kommentarmarkører fra markeringen, markerede " +"linjer eller den aktuelle linje i henhold til tekstformatet, som defineret " +"af dokumentets syntaksfremhævningsdefinition.

" + +#: utils/katecmds.cpp:80 +#, kde-format +msgid "" +"

goto line number

This command navigates to the specified " +"line number.

" +msgstr "" +"

goto linjenummer

Denne kommando går til det angivne " +"linjenummer.

" + +#: utils/katecmds.cpp:85 +#, kde-format +msgid "" +"

set-indent-pasted-text enable

If enabled, indentation of " +"text pasted from the clipboard is adjusted using the current indenter.

Possible true values: 1 on true
possible false values: 0 off false" +msgstr "" +"

set-show-indent aktivér

Hvis dette er aktiveret vil " +"indrykning af tekst der indsættes fra udklipsholderen blive justeret med den " +"aktuelle indrykker.

mulige sande værdier: 1 on true
mulige falske " +"værdier: 0 off false

" + +#: utils/katecmds.cpp:91 +#, kde-format +msgid "Deletes the current line." +msgstr "Sletter den aktuelle linje." + +#: utils/katecmds.cpp:95 +#, kde-format +msgid "" +"

set-tab-width width

Sets the tab width to the number " +"width

" +msgstr "" +"

set-tab-width bredde

Sætter tabulatorbredden til tallet " +"bredde

" + +#: utils/katecmds.cpp:100 +#, kde-format +msgid "" +"

set-replace-tab enable

If enabled, tabs are replaced with " +"spaces as you type.

Possible true values: 1 on true
possible false " +"values: 0 off false

" +msgstr "" +"

set-replace-tab enable

Tabulatorer erstattes med mellemrum " +"mens du skriver, hvis det er aktiveret.

Mulige sande værdier: 1 on " +"true
mulige falske værdier: 0 off false

" + +#: utils/katecmds.cpp:107 +#, kde-format +msgid "" +"

set-show-tabs enable

If enabled, TAB characters and trailing " +"whitespace will be visualized by a small dot.

Possible true values: 1 " +"on true
possible false values: 0 off false

" +msgstr "" +"

set-show-tabs enable

Tabulatortegn og efterstillede " +"blanktegn vil blive synliggjort med en lille prik, hvis det er aktiveret.

Mulige sande værdier: 1 on true
mulige falske værdier: 0 off false" + +#: utils/katecmds.cpp:114 +#, kde-format +msgid "" +"

set-remove-trailing-spaces mode

Removes the trailing spaces " +"in the document depending on the mode.

Possible values:" +"

  • none: never remove trailing spaces.
  • modified: " +"remove trailing spaces only of modified lines.
  • all: remove " +"trailing spaces in the entire document.

" +msgstr "" +"

set-remove-trailing-spaces tilstand

Fjerner de efterstillede " +"mellemrum i dokumentet afhængigt af tilstanden.

Mulige værdier:" +"