From fd53943b6d384c7b227ff64e510b8d50550281c5 Mon Sep 17 00:00:00 2001 From: Patrick Franz Date: Thu, 22 Dec 2022 20:02:36 +0000 Subject: [PATCH 1/1] Import kldap_22.12.0.orig.tar.xz [dgit import orig kldap_22.12.0.orig.tar.xz] --- .codespellrc | 4 + .codespellrc.license | 2 + .git-blame-ignore-revs | 4 + .gitignore | 28 + .gitlab-ci.yml | 10 + .kde-ci.yml | 13 + CMakeLists.txt | 142 + CMakePresets.json | 209 + CMakePresets.json.license | 2 + KF5LdapConfig.cmake.in | 7 + LICENSES/BSD-3-Clause.txt | 26 + LICENSES/CC0-1.0.txt | 119 + LICENSES/LGPL-2.0-or-later.txt | 446 + LICENSES/MIT.txt | 19 + README.md | 3 + README.md.license | 2 + autotests/CMakeLists.txt | 15 + ...dapclientsearchconfigreadconfigjobtest.cpp | 22 + .../ldapclientsearchconfigreadconfigjobtest.h | 19 + autotests/testkldap.cpp | 429 + autotests/testkldap.h | 41 + autotests/testurl.txt.tmpl | 1 + cmake/FindLdap.cmake | 99 + kioslave/CMakeLists.txt | 8 + kioslave/doc/CMakeLists.txt | 3 + kioslave/doc/ldap/CMakeLists.txt | 5 + kioslave/doc/ldap/index.docbook | 30 + kioslave/src/CMakeLists.txt | 17 + kioslave/src/Messages.sh | 5 + kioslave/src/kio_ldap.cpp | 791 ++ kioslave/src/kio_ldap.h | 47 + kioslave/src/ldap.json | 34 + metainfo.yaml | 16 + metainfo.yaml.license | 2 + po/af/kio_ldap.po | 79 + po/ar/kio_ldap.po | 67 + po/ar/libkldap5.po | 339 + po/be/kio_ldap.po | 68 + po/be/libkldap5.po | 334 + po/bg/kio_ldap.po | 66 + po/bg/libkldap5.po | 301 + po/bn/kio_ldap.po | 73 + po/br/kio_ldap.po | 64 + po/bs/kio_ldap.po | 69 + po/bs/libkldap5.po | 339 + po/ca/docs/kioslave5/ldap/index.docbook | 40 + po/ca/kio_ldap.po | 71 + po/ca/libkldap5.po | 312 + po/ca@valencia/kio_ldap.po | 71 + po/ca@valencia/libkldap5.po | 312 + po/cs/kio_ldap.po | 66 + po/cs/libkldap5.po | 307 + po/csb/kio_ldap.po | 66 + po/cy/kio_ldap.po | 72 + po/da/kio_ldap.po | 68 + po/da/libkldap5.po | 339 + po/de/docs/kioslave5/ldap/index.docbook | 54 + po/de/kio_ldap.po | 63 + po/de/libkldap5.po | 498 + po/el/kio_ldap.po | 67 + po/el/libkldap5.po | 344 + po/en_GB/kio_ldap.po | 76 + po/en_GB/libkldap5.po | 328 + po/eo/kio_ldap.po | 61 + po/eo/libkldap5.po | 322 + po/es/docs/kioslave5/ldap/index.docbook | 68 + po/es/kio_ldap.po | 70 + po/es/libkldap5.po | 334 + po/et/docs/kioslave5/ldap/index.docbook | 54 + po/et/kio_ldap.po | 78 + po/et/libkldap5.po | 344 + po/eu/kio_ldap.po | 72 + po/eu/libkldap5.po | 308 + po/fa/kio_ldap.po | 67 + po/fi/kio_ldap.po | 67 + po/fi/libkldap5.po | 332 + po/fr/docs/kioslave5/ldap/index.docbook | 42 + po/fr/kio_ldap.po | 72 + po/fr/libkldap5.po | 353 + po/fy/kio_ldap.po | 80 + po/ga/kio_ldap.po | 66 + po/ga/libkldap5.po | 341 + po/gl/docs/kioslave5/ldap/index.docbook | 54 + po/gl/kio_ldap.po | 67 + po/gl/libkldap5.po | 339 + po/he/kio_ldap.po | 79 + po/hi/kio_ldap.po | 66 + po/hi/libkldap5.po | 337 + po/hne/kio_ldap.po | 66 + po/hne/libkldap5.po | 334 + po/hu/kio_ldap.po | 62 + po/hu/libkldap5.po | 349 + po/ia/kio_ldap.po | 66 + po/ia/libkldap5.po | 330 + po/is/kio_ldap.po | 80 + po/it/docs/kioslave5/ldap/index.docbook | 54 + po/it/kio_ldap.po | 65 + po/it/libkldap5.po | 333 + po/ja/kio_ldap.po | 69 + po/ja/libkldap5.po | 310 + po/ka/kio_ldap.po | 67 + po/ka/libkldap5.po | 305 + po/kk/kio_ldap.po | 66 + po/kk/libkldap5.po | 334 + po/km/kio_ldap.po | 66 + po/km/libkldap5.po | 334 + po/kn/kio_ldap.po | 67 + po/ko/docs/kioslave5/ldap/index.docbook | 54 + po/ko/kio_ldap.po | 65 + po/ko/libkldap5.po | 325 + po/lt/kio_ldap.po | 67 + po/lt/libkldap5.po | 319 + po/lv/kio_ldap.po | 68 + po/lv/libkldap5.po | 339 + po/mk/kio_ldap.po | 79 + po/mr/kio_ldap.po | 62 + po/mr/libkldap5.po | 319 + po/ms/kio_ldap.po | 66 + po/nb/kio_ldap.po | 68 + po/nb/libkldap5.po | 306 + po/nds/kio_ldap.po | 65 + po/nds/libkldap5.po | 339 + po/ne/kio_ldap.po | 68 + po/nl/docs/kioslave5/ldap/index.docbook | 40 + po/nl/kio_ldap.po | 66 + po/nl/libkldap5.po | 503 + po/nn/kio_ldap.po | 70 + po/nn/libkldap5.po | 307 + po/pa/kio_ldap.po | 69 + po/pa/libkldap5.po | 336 + po/pl/kio_ldap.po | 67 + po/pl/libkldap5.po | 332 + po/pt/docs/kioslave5/ldap/index.docbook | 54 + po/pt/kio_ldap.po | 66 + po/pt/libkldap5.po | 307 + po/pt_BR/docs/kioslave5/ldap/index.docbook | 68 + po/pt_BR/kio_ldap.po | 67 + po/pt_BR/libkldap5.po | 329 + po/ro/kio_ldap.po | 66 + po/ro/libkldap5.po | 337 + po/ru/docs/kioslave5/ldap/index.docbook | 54 + po/ru/kio_ldap.po | 83 + po/ru/libkldap5.po | 8723 +++++++++++++++++ po/se/kio_ldap.po | 68 + po/se/libkldap5.po | 302 + po/sk/kio_ldap.po | 65 + po/sk/libkldap5.po | 331 + po/sl/kio_ldap.po | 68 + po/sl/libkldap5.po | 338 + po/sq/libkldap5.po | 325 + po/sr/docs/kioslave5/ldap/index.docbook | 56 + po/sr/kio_ldap.po | 69 + po/sr/libkldap5.po | 325 + po/sr@ijekavian/kio_ldap.po | 69 + po/sr@ijekavian/libkldap5.po | 325 + po/sr@ijekavianlatin/kio_ldap.po | 69 + po/sr@ijekavianlatin/libkldap5.po | 325 + po/sr@latin/docs/kioslave5/ldap/index.docbook | 56 + po/sr@latin/kio_ldap.po | 69 + po/sr@latin/libkldap5.po | 325 + po/sv/docs/kioslave5/ldap/index.docbook | 54 + po/sv/kio_ldap.po | 66 + po/sv/libkldap5.po | 497 + po/ta/kio_ldap.po | 69 + po/th/kio_ldap.po | 66 + po/th/libkldap5.po | 351 + po/tr/kio_ldap.po | 72 + po/tr/libkldap5.po | 346 + po/ug/kio_ldap.po | 64 + po/ug/libkldap5.po | 309 + po/uk/docs/kioslave5/ldap/index.docbook | 54 + po/uk/kio_ldap.po | 69 + po/uk/libkldap5.po | 506 + po/uz/kio_ldap.po | 64 + po/uz@cyrillic/kio_ldap.po | 64 + po/vi/kio_ldap.po | 66 + po/zh_CN/kio_ldap.po | 66 + po/zh_CN/libkldap5.po | 302 + po/zh_TW/kio_ldap.po | 67 + po/zh_TW/libkldap5.po | 323 + sanitizers.supp | 16 + src/CMakeLists.txt | 208 + src/Messages.sh | 5 + src/core/ber.cpp | 436 + src/core/ber.h | 114 + src/core/ldapconnection.cpp | 442 + src/core/ldapconnection.h | 123 + src/core/ldapcontrol.cpp | 136 + src/core/ldapcontrol.h | 101 + src/core/ldapdefs.h | 145 + src/core/ldapdn.cpp | 191 + src/core/ldapdn.h | 70 + src/core/ldapobject.cpp | 133 + src/core/ldapobject.h | 102 + src/core/ldapoperation.cpp | 1279 +++ src/core/ldapoperation.h | 273 + src/core/ldapsearch.cpp | 336 + src/core/ldapsearch.h | 132 + src/core/ldapserver.cpp | 426 + src/core/ldapserver.h | 315 + src/core/ldapurl.cpp | 275 + src/core/ldapurl.h | 167 + src/core/ldif.cpp | 429 + src/core/ldif.h | 174 + src/core/w32-ldap-help.h | 88 + src/kldap_config.h.cmake | 9 + src/widgets/addhostdialog.cpp | 179 + src/widgets/addhostdialog.h | 40 + src/widgets/ldapclient.cpp | 278 + src/widgets/ldapclient.h | 139 + src/widgets/ldapclientsearch.cpp | 426 + src/widgets/ldapclientsearch.h | 175 + src/widgets/ldapclientsearchconfig.cpp | 59 + src/widgets/ldapclientsearchconfig.h | 39 + .../ldapclientsearchconfigreadconfigjob.cpp | 192 + .../ldapclientsearchconfigreadconfigjob.h | 50 + .../ldapclientsearchconfigwriteconfigjob.cpp | 147 + .../ldapclientsearchconfigwriteconfigjob.h | 52 + src/widgets/ldapconfigurewidget.cpp | 325 + src/widgets/ldapconfigurewidget.h | 60 + src/widgets/ldapconfigwidget.cpp | 845 ++ src/widgets/ldapconfigwidget.h | 256 + .../ldapsearchclientreadconfigserverjob.cpp | 83 + .../ldapsearchclientreadconfigserverjob.h | 45 + src/widgets/ldapwidgetitem_p.cpp | 37 + src/widgets/ldapwidgetitem_p.h | 30 + .../ldapwidgetitemreadconfigserverjob.cpp | 72 + .../ldapwidgetitemreadconfigserverjob.h | 43 + tests/CMakeLists.txt | 8 + tests/testldapclient.cpp | 178 + tests/testldapclient.h | 44 + 231 files changed, 46143 insertions(+) create mode 100644 .codespellrc create mode 100644 .codespellrc.license create mode 100644 .git-blame-ignore-revs create mode 100644 .gitignore create mode 100644 .gitlab-ci.yml create mode 100644 .kde-ci.yml create mode 100644 CMakeLists.txt create mode 100644 CMakePresets.json create mode 100644 CMakePresets.json.license create mode 100644 KF5LdapConfig.cmake.in create mode 100644 LICENSES/BSD-3-Clause.txt create mode 100644 LICENSES/CC0-1.0.txt create mode 100644 LICENSES/LGPL-2.0-or-later.txt create mode 100644 LICENSES/MIT.txt create mode 100644 README.md create mode 100644 README.md.license create mode 100644 autotests/CMakeLists.txt create mode 100644 autotests/ldapclientsearchconfigreadconfigjobtest.cpp create mode 100644 autotests/ldapclientsearchconfigreadconfigjobtest.h create mode 100644 autotests/testkldap.cpp create mode 100644 autotests/testkldap.h create mode 100644 autotests/testurl.txt.tmpl create mode 100644 cmake/FindLdap.cmake create mode 100644 kioslave/CMakeLists.txt create mode 100644 kioslave/doc/CMakeLists.txt create mode 100644 kioslave/doc/ldap/CMakeLists.txt create mode 100644 kioslave/doc/ldap/index.docbook create mode 100644 kioslave/src/CMakeLists.txt create mode 100644 kioslave/src/Messages.sh create mode 100644 kioslave/src/kio_ldap.cpp create mode 100644 kioslave/src/kio_ldap.h create mode 100644 kioslave/src/ldap.json create mode 100644 metainfo.yaml create mode 100644 metainfo.yaml.license create mode 100644 po/af/kio_ldap.po create mode 100644 po/ar/kio_ldap.po create mode 100644 po/ar/libkldap5.po create mode 100644 po/be/kio_ldap.po create mode 100644 po/be/libkldap5.po create mode 100644 po/bg/kio_ldap.po create mode 100644 po/bg/libkldap5.po create mode 100644 po/bn/kio_ldap.po create mode 100644 po/br/kio_ldap.po create mode 100644 po/bs/kio_ldap.po create mode 100644 po/bs/libkldap5.po create mode 100644 po/ca/docs/kioslave5/ldap/index.docbook create mode 100644 po/ca/kio_ldap.po create mode 100644 po/ca/libkldap5.po create mode 100644 po/ca@valencia/kio_ldap.po create mode 100644 po/ca@valencia/libkldap5.po create mode 100644 po/cs/kio_ldap.po create mode 100644 po/cs/libkldap5.po create mode 100644 po/csb/kio_ldap.po create mode 100644 po/cy/kio_ldap.po create mode 100644 po/da/kio_ldap.po create mode 100644 po/da/libkldap5.po create mode 100644 po/de/docs/kioslave5/ldap/index.docbook create mode 100644 po/de/kio_ldap.po create mode 100644 po/de/libkldap5.po create mode 100644 po/el/kio_ldap.po create mode 100644 po/el/libkldap5.po create mode 100644 po/en_GB/kio_ldap.po create mode 100644 po/en_GB/libkldap5.po create mode 100644 po/eo/kio_ldap.po create mode 100644 po/eo/libkldap5.po create mode 100644 po/es/docs/kioslave5/ldap/index.docbook create mode 100644 po/es/kio_ldap.po create mode 100644 po/es/libkldap5.po create mode 100644 po/et/docs/kioslave5/ldap/index.docbook create mode 100644 po/et/kio_ldap.po create mode 100644 po/et/libkldap5.po create mode 100644 po/eu/kio_ldap.po create mode 100644 po/eu/libkldap5.po create mode 100644 po/fa/kio_ldap.po create mode 100644 po/fi/kio_ldap.po create mode 100644 po/fi/libkldap5.po create mode 100644 po/fr/docs/kioslave5/ldap/index.docbook create mode 100644 po/fr/kio_ldap.po create mode 100644 po/fr/libkldap5.po create mode 100644 po/fy/kio_ldap.po create mode 100644 po/ga/kio_ldap.po create mode 100644 po/ga/libkldap5.po create mode 100644 po/gl/docs/kioslave5/ldap/index.docbook create mode 100644 po/gl/kio_ldap.po create mode 100644 po/gl/libkldap5.po create mode 100644 po/he/kio_ldap.po create mode 100644 po/hi/kio_ldap.po create mode 100644 po/hi/libkldap5.po create mode 100644 po/hne/kio_ldap.po create mode 100644 po/hne/libkldap5.po create mode 100644 po/hu/kio_ldap.po create mode 100644 po/hu/libkldap5.po create mode 100644 po/ia/kio_ldap.po create mode 100644 po/ia/libkldap5.po create mode 100644 po/is/kio_ldap.po create mode 100644 po/it/docs/kioslave5/ldap/index.docbook create mode 100644 po/it/kio_ldap.po create mode 100644 po/it/libkldap5.po create mode 100644 po/ja/kio_ldap.po create mode 100644 po/ja/libkldap5.po create mode 100644 po/ka/kio_ldap.po create mode 100644 po/ka/libkldap5.po create mode 100644 po/kk/kio_ldap.po create mode 100644 po/kk/libkldap5.po create mode 100644 po/km/kio_ldap.po create mode 100644 po/km/libkldap5.po create mode 100644 po/kn/kio_ldap.po create mode 100644 po/ko/docs/kioslave5/ldap/index.docbook create mode 100644 po/ko/kio_ldap.po create mode 100644 po/ko/libkldap5.po create mode 100644 po/lt/kio_ldap.po create mode 100644 po/lt/libkldap5.po create mode 100644 po/lv/kio_ldap.po create mode 100644 po/lv/libkldap5.po create mode 100644 po/mk/kio_ldap.po create mode 100644 po/mr/kio_ldap.po create mode 100644 po/mr/libkldap5.po create mode 100644 po/ms/kio_ldap.po create mode 100644 po/nb/kio_ldap.po create mode 100644 po/nb/libkldap5.po create mode 100644 po/nds/kio_ldap.po create mode 100644 po/nds/libkldap5.po create mode 100644 po/ne/kio_ldap.po create mode 100644 po/nl/docs/kioslave5/ldap/index.docbook create mode 100644 po/nl/kio_ldap.po create mode 100644 po/nl/libkldap5.po create mode 100644 po/nn/kio_ldap.po create mode 100644 po/nn/libkldap5.po create mode 100644 po/pa/kio_ldap.po create mode 100644 po/pa/libkldap5.po create mode 100644 po/pl/kio_ldap.po create mode 100644 po/pl/libkldap5.po create mode 100644 po/pt/docs/kioslave5/ldap/index.docbook create mode 100644 po/pt/kio_ldap.po create mode 100644 po/pt/libkldap5.po create mode 100644 po/pt_BR/docs/kioslave5/ldap/index.docbook create mode 100644 po/pt_BR/kio_ldap.po create mode 100644 po/pt_BR/libkldap5.po create mode 100644 po/ro/kio_ldap.po create mode 100644 po/ro/libkldap5.po create mode 100644 po/ru/docs/kioslave5/ldap/index.docbook create mode 100644 po/ru/kio_ldap.po create mode 100644 po/ru/libkldap5.po create mode 100644 po/se/kio_ldap.po create mode 100644 po/se/libkldap5.po create mode 100644 po/sk/kio_ldap.po create mode 100644 po/sk/libkldap5.po create mode 100644 po/sl/kio_ldap.po create mode 100644 po/sl/libkldap5.po create mode 100644 po/sq/libkldap5.po create mode 100644 po/sr/docs/kioslave5/ldap/index.docbook create mode 100644 po/sr/kio_ldap.po create mode 100644 po/sr/libkldap5.po create mode 100644 po/sr@ijekavian/kio_ldap.po create mode 100644 po/sr@ijekavian/libkldap5.po create mode 100644 po/sr@ijekavianlatin/kio_ldap.po create mode 100644 po/sr@ijekavianlatin/libkldap5.po create mode 100644 po/sr@latin/docs/kioslave5/ldap/index.docbook create mode 100644 po/sr@latin/kio_ldap.po create mode 100644 po/sr@latin/libkldap5.po create mode 100644 po/sv/docs/kioslave5/ldap/index.docbook create mode 100644 po/sv/kio_ldap.po create mode 100644 po/sv/libkldap5.po create mode 100644 po/ta/kio_ldap.po create mode 100644 po/th/kio_ldap.po create mode 100644 po/th/libkldap5.po create mode 100644 po/tr/kio_ldap.po create mode 100644 po/tr/libkldap5.po create mode 100644 po/ug/kio_ldap.po create mode 100644 po/ug/libkldap5.po create mode 100644 po/uk/docs/kioslave5/ldap/index.docbook create mode 100644 po/uk/kio_ldap.po create mode 100644 po/uk/libkldap5.po create mode 100644 po/uz/kio_ldap.po create mode 100644 po/uz@cyrillic/kio_ldap.po create mode 100644 po/vi/kio_ldap.po create mode 100644 po/zh_CN/kio_ldap.po create mode 100644 po/zh_CN/libkldap5.po create mode 100644 po/zh_TW/kio_ldap.po create mode 100644 po/zh_TW/libkldap5.po create mode 100644 sanitizers.supp create mode 100644 src/CMakeLists.txt create mode 100644 src/Messages.sh create mode 100644 src/core/ber.cpp create mode 100644 src/core/ber.h create mode 100644 src/core/ldapconnection.cpp create mode 100644 src/core/ldapconnection.h create mode 100644 src/core/ldapcontrol.cpp create mode 100644 src/core/ldapcontrol.h create mode 100644 src/core/ldapdefs.h create mode 100644 src/core/ldapdn.cpp create mode 100644 src/core/ldapdn.h create mode 100644 src/core/ldapobject.cpp create mode 100644 src/core/ldapobject.h create mode 100644 src/core/ldapoperation.cpp create mode 100644 src/core/ldapoperation.h create mode 100644 src/core/ldapsearch.cpp create mode 100644 src/core/ldapsearch.h create mode 100644 src/core/ldapserver.cpp create mode 100644 src/core/ldapserver.h create mode 100644 src/core/ldapurl.cpp create mode 100644 src/core/ldapurl.h create mode 100644 src/core/ldif.cpp create mode 100644 src/core/ldif.h create mode 100644 src/core/w32-ldap-help.h create mode 100644 src/kldap_config.h.cmake create mode 100644 src/widgets/addhostdialog.cpp create mode 100644 src/widgets/addhostdialog.h create mode 100644 src/widgets/ldapclient.cpp create mode 100644 src/widgets/ldapclient.h create mode 100644 src/widgets/ldapclientsearch.cpp create mode 100644 src/widgets/ldapclientsearch.h create mode 100644 src/widgets/ldapclientsearchconfig.cpp create mode 100644 src/widgets/ldapclientsearchconfig.h create mode 100644 src/widgets/ldapclientsearchconfigreadconfigjob.cpp create mode 100644 src/widgets/ldapclientsearchconfigreadconfigjob.h create mode 100644 src/widgets/ldapclientsearchconfigwriteconfigjob.cpp create mode 100644 src/widgets/ldapclientsearchconfigwriteconfigjob.h create mode 100644 src/widgets/ldapconfigurewidget.cpp create mode 100644 src/widgets/ldapconfigurewidget.h create mode 100644 src/widgets/ldapconfigwidget.cpp create mode 100644 src/widgets/ldapconfigwidget.h create mode 100644 src/widgets/ldapsearchclientreadconfigserverjob.cpp create mode 100644 src/widgets/ldapsearchclientreadconfigserverjob.h create mode 100644 src/widgets/ldapwidgetitem_p.cpp create mode 100644 src/widgets/ldapwidgetitem_p.h create mode 100644 src/widgets/ldapwidgetitemreadconfigserverjob.cpp create mode 100644 src/widgets/ldapwidgetitemreadconfigserverjob.h create mode 100644 tests/CMakeLists.txt create mode 100644 tests/testldapclient.cpp create mode 100644 tests/testldapclient.h diff --git a/.codespellrc b/.codespellrc new file mode 100644 index 0000000..0be43c4 --- /dev/null +++ b/.codespellrc @@ -0,0 +1,4 @@ +[codespell] +skip = ./build*,.git,*.notifyrc,*.desktop,*.json,*.xml +interactive = 3 +ignore-words-list = accessort diff --git a/.codespellrc.license b/.codespellrc.license new file mode 100644 index 0000000..156f944 --- /dev/null +++ b/.codespellrc.license @@ -0,0 +1,2 @@ +# SPDX-FileCopyrightText: 2022 Laurent Montel +# SPDX-License-Identifier: CC0-1.0 diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs new file mode 100644 index 0000000..ca50442 --- /dev/null +++ b/.git-blame-ignore-revs @@ -0,0 +1,4 @@ +# SPDX-License-Identifier: CC0-1.0 +# SPDX-FileCopyrightText: none +# clang-format +9418ca074bd33a24bf8fc7f8a63bcd8af8858d48 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..01813d8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: CC0-1.0 +# SPDX-FileCopyrightText: none +# Ignore the following files +*~ +*.[oa] +*.diff +*.kate-swp +*.kdev4 +.kdev_include_paths +*.kdevelop.pcs +*.moc +*.moc.cpp +*.orig +*.user +.*.swp +.swp.* +Doxyfile +Makefile +/build*/ +.cmake/ +CMakeLists.txt.user* +*.unc-backup* +compile_commands.json +.clang-format +.clangd +.idea +/cmake-build* +.cache diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..8111af9 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: 2020-2022 Laurent Montel +# SPDX-License-Identifier: CC0-1.0 + +include: + - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/linux.yml + - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/freebsd.yml + - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/linux-qt6.yml + - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/windows.yml + - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/freebsd-qt6.yml + - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/windows-qt6.yml diff --git a/.kde-ci.yml b/.kde-ci.yml new file mode 100644 index 0000000..53f4e13 --- /dev/null +++ b/.kde-ci.yml @@ -0,0 +1,13 @@ +# SPDX-FileCopyrightText: None +# SPDX-License-Identifier: CC0-1.0 + +Dependencies: +- 'on': ['@all'] + 'require': + 'frameworks/extra-cmake-modules': '@latest' + 'frameworks/kio': '@stable' + 'frameworks/ki18n': '@stable' + 'frameworks/kdoctools': '@stable' + +Options: + require-passing-tests-on: [ 'Linux', 'FreeBSD', 'Windows' ] diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..d602d00 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,142 @@ +# SPDX-FileCopyrightText: none +# SPDX-License-Identifier: BSD-3-Clause +cmake_minimum_required(VERSION 3.16 FATAL_ERROR) +set(PIM_VERSION "5.22.0") + +project(KLdap VERSION ${PIM_VERSION}) + +# ECM setup +set(KF5_MIN_VERSION "5.99.0") + +find_package(ECM ${KF5_MIN_VERSION} CONFIG REQUIRED) +set(CMAKE_MODULE_PATH ${KLdap_SOURCE_DIR}/cmake ${ECM_MODULE_PATH}) + +include(KDEInstallDirs) +include(KDECMakeSettings) +include(KDECompilerSettings NO_POLICY_SCOPE) + +include(GenerateExportHeader) +include(ECMGenerateHeaders) +include(ECMGeneratePriFile) + +include(ECMSetupVersion) +include(FeatureSummary) +include(KDEGitCommitHooks) +include(KDEClangFormat) +file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h *.c) +kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES}) + +include(ECMQtDeclareLoggingCategory) +include(ECMDeprecationSettings) +include(ECMAddQch) + +set(KLDAP_LIB_VERSION ${PIM_VERSION}) + +find_package(KF5KIO ${KF5_MIN_VERSION} CONFIG REQUIRED) +find_package(KF5I18n ${KF5_MIN_VERSION} CONFIG REQUIRED) +find_package(KF5DocTools ${KF5_MIN_VERSION} CONFIG) + +find_package(Qt${QT_MAJOR_VERSION}Keychain CONFIG) +set_package_properties(Qt${QT_MAJOR_VERSION}Keychain PROPERTIES + DESCRIPTION "Provides support for secure credentials storage" + URL "https://github.com/frankosterfeld/qtkeychain" + TYPE REQUIRED) + +# tell what is missing without doctools +set_package_properties(KF5DocTools PROPERTIES DESCRIPTION "Provides tools to generate documentation in various format from DocBook files" + TYPE OPTIONAL + PURPOSE "Required to build documentation") + +ecm_setup_version(PROJECT VARIABLE_PREFIX KLDAP + VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kldap_version.h" + PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5LdapConfigVersion.cmake" + SOVERSION 5 +) + +option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF) +add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)") + + +option(USE_UNITY_CMAKE_SUPPORT "Use UNITY cmake support (speedup compile time)" OFF) +set(COMPILE_WITH_UNITY_CMAKE_SUPPORT OFF) +if (USE_UNITY_CMAKE_SUPPORT) + set(COMPILE_WITH_UNITY_CMAKE_SUPPORT ON) +endif() + +########### Find packages ########### +find_package(KF5WidgetsAddons ${KF5_MIN_VERSION} CONFIG REQUIRED) + +ecm_set_disabled_deprecation_versions(QT 5.15.2 KF 5.99.0) + + +find_package(Ldap) +set_package_properties(Ldap PROPERTIES + TYPE RECOMMENDED + PURPOSE "Needed to provide LDAP functionality in KDE" +) + +find_package(Sasl2) +set_package_properties(Sasl2 PROPERTIES TYPE REQUIRED) + +if (Ldap_FOUND) + set(LDAP_FOUND 1) +endif() + +add_definitions(-DTRANSLATION_DOMAIN=\"libkldap5\") + + +########### CMake Config Files ########### +set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5Ldap") + +configure_package_config_file( + "${CMAKE_CURRENT_SOURCE_DIR}/KF5LdapConfig.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/KF5LdapConfig.cmake" + INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} +) + +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/KF5LdapConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/KF5LdapConfigVersion.cmake" + DESTINATION "${CMAKECONFIG_INSTALL_DIR}" + COMPONENT Devel +) + +install(EXPORT KF5LdapTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE KF5LdapTargets.cmake NAMESPACE KF5::) + +install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/kldap_version.h + DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KLDAP + COMPONENT Devel +) + +########### Targets ########### +add_subdirectory(src) +add_subdirectory(kioslave) +if(BUILD_TESTING) + add_subdirectory(autotests) + add_subdirectory(tests) +endif() + +ecm_qt_install_logging_categories( + EXPORT KLDAP + FILE kldap.categories + DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR} + ) + +kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT) +ki18n_install(po) +if(KF5DocTools_FOUND) + #kdoctools_install(po) +endif() + +if (BUILD_QCH) + ecm_install_qch_export( + TARGETS KF5LDap_QCH + FILE KF5LDapQchTargets.cmake + DESTINATION "${CMAKECONFIG_INSTALL_DIR}" + COMPONENT Devel + ) + set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KF5LDapQchTargets.cmake\")") +endif() + +feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) diff --git a/CMakePresets.json b/CMakePresets.json new file mode 100644 index 0000000..d497720 --- /dev/null +++ b/CMakePresets.json @@ -0,0 +1,209 @@ +{ + "version": 3, + "configurePresets": [ + { + "name": "base", + "displayName": "base preset", + "generator": "Ninja", + "binaryDir": "${sourceDir}/build-${presetName}", + "installDir": "$env{KF5}", + "hidden": true + }, + { + "name": "dev", + "displayName": "Build as debug", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug", + "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" + }, + "inherits": [ + "base" + ] + + }, + { + "name": "coverage", + "displayName": "Build as debug", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug", + "BUILD_COVERAGE": "ON", + "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" + }, + "inherits": [ + "base" + ] + }, + { + "name": "dev-qt6", + "displayName": "Build against qt6", + "binaryDir": "${sourceDir}/build-qt6", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug", + "BUILD_WITH_QT6": "ON", + "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" + }, + "inherits": [ + "base" + ] + }, + { + "name": "dev-disable-deprecated", + "displayName": "Build as without deprecated methods", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug", + "CMAKE_EXPORT_COMPILE_COMMANDS": "ON", + "CMAKE_CXX_FLAGS_INIT": "-DQT_DISABLE_DEPRECATED_BEFORE=0x060000 -DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x060000" + }, + "inherits": [ + "base" + ] + }, + { + "name": "asan", + "displayName": "Build with Asan support.", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug", + "ECM_ENABLE_SANITIZERS" : "'address;undefined'", + "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" + }, + "inherits": [ + "base" + ] + }, + { + "name": "pch", + "displayName": "Build with PCH support.", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug", + "COMPILE_WITH_CMAKE_PCH_SUPPORT": "ON", + "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" + }, + "inherits": [ + "base" + ] + }, + { + "name": "dev-clang", + "displayName": "dev-clang", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug", + "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" + }, + "environment": { + "CXX": "clang++", + "CCACHE_DISABLE": "ON" + }, + "inherits": [ + "base" + ] + }, + { + "name": "unity", + "displayName": "Build with CMake unity support.", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug", + "USE_UNITY_CMAKE_SUPPORT": "ON", + "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" + }, + "inherits": [ + "base" + ] + }, + { + "name": "release", + "displayName": "Build as release mode.", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Release" + }, + "inherits": [ + "base" + ] + }, + { + "name": "profile", + "displayName": "profile", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "RelWithDebInfo", + "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" + }, + "inherits": [ + "base" + ] + }, + { + "name": "clazy", + "displayName": "clazy", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug" + }, + "environment": { + "CXX": "clazy", + "CCACHE_DISABLE": "ON" + }, + "inherits": [ + "base" + ] + } + + ], + "buildPresets": [ + { + "name": "dev", + "configurePreset": "dev" + }, + { + "name": "dev-qt6", + "configurePreset": "dev-qt6" + }, + { + "name": "dev-disable-deprecated", + "configurePreset": "dev-disable-deprecated" + }, + { + "name": "pch", + "configurePreset": "pch" + }, + { + "name": "release", + "configurePreset": "release" + }, + { + "name": "coverage", + "configurePreset": "coverage" + }, + { + "name": "dev-clang", + "configurePreset": "dev-clang" + }, + { + "name": "asan", + "configurePreset": "asan" + }, + { + "name": "unity", + "configurePreset": "unity" + }, + { + "name": "clazy", + "configurePreset": "clazy", + "environment": { + "CLAZY_CHECKS" : "level0,level1,detaching-member,ifndef-define-typo,isempty-vs-count,qrequiredresult-candidates,reserve-candidates,signal-with-return-value,unneeded-cast,function-args-by-ref,function-args-by-value,returning-void-expression,no-ctor-missing-parent-argument,isempty-vs-count,qhash-with-char-pointer-key,raw-environment-function,qproperty-type-mismatch,old-style-connect,qstring-allocations,container-inside-loop,heap-allocated-small-trivial-type,inefficient-qlist,qstring-varargs,level2,detaching-member,heap-allocated-small-trivial-type,isempty-vs-count,qstring-varargs,qvariant-template-instantiation,raw-environment-function,reserve-candidates,signal-with-return-value,thread-with-slots,no-ctor-missing-parent-argument,no-missing-typeinfo", + "CCACHE_DISABLE" : "ON" + } + } + ], + "testPresets": [ + { + "name": "dev", + "configurePreset": "dev", + "output": {"outputOnFailure": true}, + "execution": {"noTestsAction": "error", "stopOnFailure": false} + }, + { + "name": "asan", + "configurePreset": "asan", + "output": {"outputOnFailure": true}, + "execution": {"noTestsAction": "error", "stopOnFailure": true} + } + ] +} diff --git a/CMakePresets.json.license b/CMakePresets.json.license new file mode 100644 index 0000000..8a64d5a --- /dev/null +++ b/CMakePresets.json.license @@ -0,0 +1,2 @@ +# SPDX-FileCopyrightText: 2021-2022 Laurent Montel +# SPDX-License-Identifier: BSD-3-Clause diff --git a/KF5LdapConfig.cmake.in b/KF5LdapConfig.cmake.in new file mode 100644 index 0000000..9a215e5 --- /dev/null +++ b/KF5LdapConfig.cmake.in @@ -0,0 +1,7 @@ +# SPDX-FileCopyrightText: none +# SPDX-License-Identifier: BSD-3-Clause + + +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/KF5LdapTargets.cmake") diff --git a/LICENSES/BSD-3-Clause.txt b/LICENSES/BSD-3-Clause.txt new file mode 100644 index 0000000..0741db7 --- /dev/null +++ b/LICENSES/BSD-3-Clause.txt @@ -0,0 +1,26 @@ +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. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/LICENSES/CC0-1.0.txt b/LICENSES/CC0-1.0.txt new file mode 100644 index 0000000..a343ccd --- /dev/null +++ b/LICENSES/CC0-1.0.txt @@ -0,0 +1,119 @@ +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/LICENSES/LGPL-2.0-or-later.txt b/LICENSES/LGPL-2.0-or-later.txt new file mode 100644 index 0000000..5c96471 --- /dev/null +++ b/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/LICENSES/MIT.txt b/LICENSES/MIT.txt new file mode 100644 index 0000000..204b93d --- /dev/null +++ b/LICENSES/MIT.txt @@ -0,0 +1,19 @@ +MIT License Copyright (c) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS +OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..7496795 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# KLDAP # + +Allows LDAP accessing with a convenient Qt style C++ API. diff --git a/README.md.license b/README.md.license new file mode 100644 index 0000000..7776217 --- /dev/null +++ b/README.md.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2016 Daniel Vrátil +SPDX-License-Identifier: CC0-1.0 diff --git a/autotests/CMakeLists.txt b/autotests/CMakeLists.txt new file mode 100644 index 0000000..54bd283 --- /dev/null +++ b/autotests/CMakeLists.txt @@ -0,0 +1,15 @@ +# SPDX-FileCopyrightText: none +# SPDX-License-Identifier: BSD-3-Clause +include(ECMAddTests) + +find_package(Qt${QT_MAJOR_VERSION}Test CONFIG REQUIRED) + +if(Ldap_FOUND) + ecm_add_tests(testkldap.cpp NAME_PREFIX "kldap-" LINK_LIBRARIES KF5::Ldap Qt::Test) +endif() + +add_executable(ldapclientsearchconfigreadconfigjobtest ldapclientsearchconfigreadconfigjobtest.cpp) +add_test(NAME ldapclientsearchconfigreadconfigjobtest COMMAND ldapclientsearchconfigreadconfigjobtest) +ecm_mark_as_test(ldapclientsearchconfigreadconfigjobtest) +target_link_libraries(ldapclientsearchconfigreadconfigjobtest Qt::Test KF5::Ldap KF5::ConfigCore) + diff --git a/autotests/ldapclientsearchconfigreadconfigjobtest.cpp b/autotests/ldapclientsearchconfigreadconfigjobtest.cpp new file mode 100644 index 0000000..e96c994 --- /dev/null +++ b/autotests/ldapclientsearchconfigreadconfigjobtest.cpp @@ -0,0 +1,22 @@ +/* + * SPDX-FileCopyrightText: 2020-2022 Laurent Montel + * + * SPDX-License-Identifier: LGPL-2.0-or-later + */ + +#include "ldapclientsearchconfigreadconfigjobtest.h" +#include "widgets/ldapclientsearchconfigreadconfigjob.h" +#include +QTEST_MAIN(LdapClientSearchConfigReadConfigJobTest) +LdapClientSearchConfigReadConfigJobTest::LdapClientSearchConfigReadConfigJobTest(QObject *parent) + : QObject(parent) +{ +} + +void LdapClientSearchConfigReadConfigJobTest::shouldHaveDefaultValues() +{ + KLDAP::LdapClientSearchConfigReadConfigJob job; + QVERIFY(!job.active()); + QCOMPARE(job.serverIndex(), -1); + QVERIFY(!job.canStart()); +} diff --git a/autotests/ldapclientsearchconfigreadconfigjobtest.h b/autotests/ldapclientsearchconfigreadconfigjobtest.h new file mode 100644 index 0000000..af8c78f --- /dev/null +++ b/autotests/ldapclientsearchconfigreadconfigjobtest.h @@ -0,0 +1,19 @@ +/* + * SPDX-FileCopyrightText: 2020-2022 Laurent Montel + * + * SPDX-License-Identifier: LGPL-2.0-or-later + */ + +#pragma once + +#include + +class LdapClientSearchConfigReadConfigJobTest : public QObject +{ + Q_OBJECT +public: + explicit LdapClientSearchConfigReadConfigJobTest(QObject *parent = nullptr); + ~LdapClientSearchConfigReadConfigJobTest() override = default; +private Q_SLOTS: + void shouldHaveDefaultValues(); +}; diff --git a/autotests/testkldap.cpp b/autotests/testkldap.cpp new file mode 100644 index 0000000..9e73bea --- /dev/null +++ b/autotests/testkldap.cpp @@ -0,0 +1,429 @@ +/* + This file is part of libkdepim. + + SPDX-FileCopyrightText: 2004 Tobias Koenig + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "testkldap.h" + +#include "ber.h" +#include "ldapconnection.h" +#include "ldapdn.h" +#include "ldapoperation.h" +#include "ldapsearch.h" +#include "ldapserver.h" +#include "ldapurl.h" +#include "ldif.h" + +#include +#include +#include +QTEST_MAIN(KLdapTest) + +KLdapTest::KLdapTest(QObject *parent) + : QObject(parent) +{ +} + +void KLdapTest::initTestCase() +{ + /* + Read in the connection details of an LDAP server to use for testing. + You should copy the file testurl.txt.tmpl to testurl.txt and specify a url in this file. + The specified server should not be a production server in case we break anything here. + You have been warned! + */ + const QString filename(QStringLiteral("testurl.txt")); + QFile file(filename); + if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { + QTextStream stream(&file); + stream >> m_url; + file.close(); + } + + m_search = new LdapSearch; +} + +void KLdapTest::testBer() +{ + Ber ber1; + Ber ber2; + Ber ber3; + Ber ber4; + Ber ber5; + Ber ber6; + Ber ber7; + Ber bber; + + int ainteger; + QByteArray aoctetString1; + QByteArray aoctetString2; + QByteArray aoctetString3; + QList alist1; + QList alist2; + + int binteger; + QByteArray boctetString1; + QByteArray boctetString2; + QByteArray boctetString3; + QList blist1; + QList blist2; + + aoctetString1 = "KDE"; + aoctetString2 = "the"; + aoctetString3 = "next generation"; + + alist1.append(aoctetString1); + alist1.append(aoctetString2); + + alist2.append(aoctetString2); + alist2.append(aoctetString3); + alist2.append(aoctetString1); + + ainteger = 23543; + + ber1.printf(QStringLiteral("i"), ainteger); + ber2.printf(QStringLiteral("o"), &aoctetString1); + ber3.printf(QStringLiteral("O"), &aoctetString2); + ber4.printf(QStringLiteral("s"), &aoctetString3); + ber5.printf(QStringLiteral("{v}"), &alist1); + ber6.printf(QStringLiteral("{V}"), &alist2); + ber7.printf(QStringLiteral("oi{v}O"), &aoctetString1, ainteger, &alist2, &aoctetString2); + + // test integer: + bber = ber1; + bber.scanf(QStringLiteral("i"), &binteger); + QCOMPARE(ainteger, binteger); + + // test octet strings: + bber = ber2; + bber.scanf(QStringLiteral("o"), &boctetString1); + QCOMPARE(aoctetString1, boctetString1); + bber = ber3; + bber.scanf(QStringLiteral("o"), &boctetString2); + QCOMPARE(aoctetString2, boctetString2); + bber = ber4; + bber.scanf(QStringLiteral("o"), &boctetString3); + QCOMPARE(aoctetString3, boctetString3); + + // test sequence of octet strings: + bber = ber5; + bber.scanf(QStringLiteral("v"), &blist1); + QCOMPARE(alist1, blist1); + + bber = ber6; + bber.scanf(QStringLiteral("v"), &blist2); + QCOMPARE(alist2, blist2); + + // complex tests + boctetString1 = boctetString2 = boctetString3 = QByteArray(); + binteger = 0; + blist1.clear(); + blist2.clear(); + + bber = ber7; + bber.scanf(QStringLiteral("oivO"), &boctetString1, &binteger, &blist2, &boctetString2); + QCOMPARE(aoctetString1, boctetString1); + QCOMPARE(aoctetString2, boctetString2); + QCOMPARE(alist2, blist2); + QCOMPARE(ainteger, binteger); +} + +void KLdapTest::cleanupTestCase() +{ + delete m_search; +} + +void KLdapTest::testLdapUrl() +{ + // Test LdapUrl using some hardwired values so that we know what to compare to + LdapUrl url; + bool critical; + + url.setUrl( + QStringLiteral("ldap://cn=manager,dc=kde,dc=org:password@localhost:3999/" + "dc=kde,dc=org?cn,mail?sub?(objectClass=*)?x-dir=base")); + url.parseQuery(); + + QCOMPARE(url.userName(), QStringLiteral("cn=manager,dc=kde,dc=org")); + QCOMPARE(url.password(), QStringLiteral("password")); + QCOMPARE(url.dn(), LdapDN(QStringLiteral("dc=kde,dc=org"))); + QCOMPARE(url.scope(), LdapUrl::Sub); + QCOMPARE(url.attributes().at(0), QStringLiteral("cn")); + QCOMPARE(url.attributes().at(1), QStringLiteral("mail")); + QCOMPARE(url.filter(), QStringLiteral("(objectClass=*)")); + QCOMPARE(url.extension(QStringLiteral("x-dir"), critical), QStringLiteral("base")); + QCOMPARE(url.query(), QStringLiteral("?cn,mail?sub??x-dir=base")); + // For some reason the code removes the filter if it's (objectClass=*)... + QCOMPARE(url.toString(), + QStringLiteral("ldap://cn=manager,dc=kde,dc=org:password@localhost:3999/" + "dc=kde,dc=org??cn,mail?sub??x-dir=base")); + + // Now set a different filter + url.setFilter(QStringLiteral("(objectclass=person)")); + QCOMPARE(url.toDisplayString(), + QStringLiteral("ldap://cn=manager,dc=kde,dc=org@localhost:3999/" + "dc=kde,dc=org??cn,mail?sub?%28objectclass%3Dperson%29?x-dir=base")); + QCOMPARE(url.filter(), QStringLiteral("(objectclass=person)")); + + // And now a filter with non-ascii letters + url.setFilter(QStringLiteral("(givenName=Valérie *)")); + QCOMPARE(url.toDisplayString(), + QString::fromUtf8("ldap://cn=manager,dc=kde,dc=org@localhost:3999/" + "dc=kde,dc=org??cn,mail?sub?%28givenName%3DValérie %2A%29?x-dir=base")); + QCOMPARE(url.filter(), QStringLiteral("(givenName=Valérie *)")); + + // Test roundtrip via QUrl, as happens when sending it to kio_ldap + const QUrl qurl(url); + QCOMPARE(qurl.toDisplayString(), url.toDisplayString()); + + const LdapUrl kiourl(qurl); + QCOMPARE(kiourl.toString(), url.toString()); + QCOMPARE(kiourl.toDisplayString(), url.toDisplayString()); + QCOMPARE(kiourl.filter(), QStringLiteral("(givenName=Valérie *)")); +} + +void KLdapTest::testLdapConnection() +{ + // Try to connect using an LdapUrl (read in from testurl.txt). + LdapUrl url; + url.setUrl(m_url); + + LdapConnection conn; + conn.setUrl(url); + int ret; + if ((ret = conn.connect())) { + qDebug() << "Could not connect to LDAP server. Error was:" << conn.connectionError(); + } + QCOMPARE(ret, 0); + + LdapOperation op(conn); + // Now attempt to bind + if ((ret = op.bind_s())) { + qDebug() << "Could not bind to server. Error was:" << conn.ldapErrorString(); + } + QEXPECT_FAIL("", "Will fail since no server is available for testing", Abort); + QCOMPARE(ret, 0); +} + +void KLdapTest::testLdapSearch() +{ + // Lets try a search using the specified url + LdapUrl url; + url.setUrl(m_url); + url.parseQuery(); + connect(m_search, &LdapSearch::result, this, &KLdapTest::searchResult); + connect(m_search, &LdapSearch::data, this, &KLdapTest::searchData); + const bool success = m_search->search(url); + QCoreApplication::processEvents(); + + QEXPECT_FAIL("", "Will fail since no server is available for testing", Abort); + QCOMPARE(success, true); + + qDebug() << "Search found" << m_objects.size() << "matching entries"; +} + +void KLdapTest::searchResult(KLDAP::LdapSearch *search) +{ + qDebug(); + const int err = search->error(); + if (err) { + qDebug() << "Search returned the following error:" << search->errorString(); + } + QCOMPARE(err, 0); +} + +void KLdapTest::searchData(KLDAP::LdapSearch *search, const KLDAP::LdapObject &obj) +{ + Q_UNUSED(search) + // qDebug(); + // qDebug() << "Object:"; + // qDebug() << obj.toString(); + m_objects.append(obj); +} + +void KLdapTest::testLdapDN() +{ + const QString strDN(QStringLiteral("uid=Test\\+Person+ou=accounts\\,outgoing,dc=kde,dc=org")); + const LdapDN dn(strDN); + QCOMPARE(dn.isValid(), true); + QCOMPARE(dn.rdnString(), QStringLiteral("uid=Test\\+Person+ou=accounts\\,outgoing")); +} + +void KLdapTest::testLdapModel() +{ + // Use the user-supplied testing url + LdapUrl url; + url.setUrl(m_url); + + // Create a connection to use and bind with it + LdapConnection conn; + conn.setUrl(url); + int ret; + if ((ret = conn.connect())) { + qDebug() << "Could not connect to LDAP server. Error was:" << conn.connectionError(); + } + QCOMPARE(ret, 0); + + LdapOperation op(conn); + if ((ret = op.bind_s())) { + qDebug() << "Could not bind to server. Error was:" << conn.ldapErrorString(); + } + QEXPECT_FAIL("", "Will fail since no server is available for testing", Abort); + QCOMPARE(ret, 0); + + QCoreApplication::processEvents(); +} + +/* + void KLdapTest::testKLdap() + { + LdapUrl url; + bool critical; + + url.setUrl("ldap://cn=manager,dc=kde,dc=org:password@localhost:3999" + "/dc=kde,dc=org?cn,mail?sub?(objectClass=*)?x-dir=base"); + url.parseQuery(); + + QCOMPARE( url.user(), QStringLiteral("cn=manager,dc=kde,dc=org") ); + QCOMPARE( url.password(), QStringLiteral("password") ); + QCOMPARE( url.dn(), QStringLiteral("dc=kde,dc=org") ); + QCOMPARE( url.scope(), LdapUrl::Sub ); + QCOMPARE( url.attributes().at(0), QStringLiteral("cn") ); + QCOMPARE( url.attributes().at(1), QStringLiteral("mail") ); + QCOMPARE( url.filter(), QStringLiteral("(objectClass=*)") ); + QCOMPARE( url.extension(QStringLiteral("x-dir"), critical), QStringLiteral("base") ); + + url.setDn("ou=People,dc=kde,dc=org"); + QCOMPARE( url.dn(), QStringLiteral("ou=People,dc=kde,dc=org") ); + url.setDn("/ou=People,dc=kde,dc=org"); + QCOMPARE( url.dn(), QStringLiteral("ou=People,dc=kde,dc=org") ); + + LdapServer server; +// url.setUrl("ldaps://cn=manager,dc=kde,dc=org:passwor@localhost:3999/" + "dc=kde,dc=org????x-timelimt=5,x-sizelimit=6,x=pagesize=7,binddn=cn=apple,ou=berry"); +url.setUrl("ldaps://cn=manager,dc=kde,dc=org:password@localhost:3999/" + "dc=kde,dc=org??base??x-timelimit=5"); +url.parseQuery(); +server.setUrl( url ); +QCOMPARE( url.query(), QStringLiteral("??base??x-timelimit=5") ); +QCOMPARE( url.url(), server.url().url() ); + +LdapControl c1; +c1.setControl( QStringLiteral("1.2.3.4.5.6"), QByteArray("abcdefg"), true ); +//test copy constructor +LdapControl c2(c1); +QCOMPARE( c2.oid(), QStringLiteral("1.2.3.4.5.6") ); +QCOMPARE( c2.value(), QByteArray("abcdefg") ); +QCOMPARE( c2.critical(), true ); +//test assignment operator +LdapControl c3; +c3 = c1; +QCOMPARE( c3.oid(), QStringLiteral("1.2.3.4.5.6") ); +QCOMPARE( c3.value(), QByteArray("abcdefg") ); +QCOMPARE( c3.critical(), true ); +*/ +// test Ber functions +/* + QByteArray left1("bertest"), right1; + int left2 = 0, right2; + int left3 = 1, right3; + int left4 = 2, right4; + int left5 = 3, right5; + int left6 = 1, right6; + QList left7, right7; + left7.append( "abcdefghij" ); + left7.append( "123456789" ); + left7.append( "1234\0\0\056789" ); + + Ber ber; + ber.printf("{seeiib}", &left1, left2, left3, left4, left5, left6 ); + +// ber.printf("{ioOi{i}}", left3, &left1, &left2, left4, left4 ); +Ber ber2 = ber; + +unsigned int a; +int b; +a = ber2.skipTag( b ); +qDebug() << "next tag:" << a << "size:" << b; +a = ber2.skipTag( b ); +qDebug() << "next tag:" << a << "size:" << b; +a = ber2.skipTag( b ); +qDebug() << "next tag:" << a << "size:" << b; +a = ber2.skipTag( b ); +qDebug() << "next tag:" << a << "size:" << b; +a = ber2.skipTag( b ); +qDebug() << "next tag:" << a << "size:" << b; +a = ber2.skipTag( b ); +qDebug() << "next tag:" << a << "size:" << b; +a = ber2.skipTag( b ); +qDebug() << "next tag:" << a << "size:" << b; +a = ber2.skipTag( b ); +qDebug() << "next tag:" << a << "size:" << b; + +BerElement *_ber, *_ber2; +_ber = ber_alloc_t( LBER_USE_DER ); + +ber_len_t bl; +ber_printf( _ber, "{i}", 5 ); +qDebug() << "native"; +_ber2 = ber_dup( _ber ); +a = ber_skip_tag( _ber2, &bl ); +qDebug() << "next tag:" << a << "size:" << bl; +// ber_dump( _ber, 0 ); + +// ber2.scanf("{v}", &right5 ); + +// ber2.scanf("{inoOi{v}}", &right3, &right1, &right2, &right4, &right5 ); + +// QCOMPARE( left1, right1 ); +// QCOMPARE( left2, right2 ); +// QCOMPARE( left3, right3 ); +// QCOMPARE( left4, right4 ); +// QCOMPARE( left5, right5 ); +*/ +/* + url.setUrl("ldap://localhost/dc=gyurco,dc=localdomain"); + url.parseQuery(); + server.setUrl( url ); + LdapConnection conn( server ); + int result = conn.connect(); + qDebug() << "connect result" << result << conn.errorString(); + + LdapOperation op( conn ); + int msgid = op.search( "ou=People,dc=gyurco,dc=localdomain", LdapUrl::One, "", QStringList() ); + qDebug() << "search msgid" << msgid; + result = op.result( msgid ); + qDebug() << "error code" << conn.ldapErrorCode() << "str:" << conn.ldapErrorString(); + while ( result == LdapOperation::RES_SEARCH_ENTRY ) { + qDebug() << op.object().toString(); + result = op.result( msgid ); + } + qDebug() << "error code" << conn.ldapErrorCode() << "str:" << conn.ldapErrorString(); + + msgid = op.del( "ou=People,dc=gyurco,dc=localdomain" ); + qDebug() << "search msgid" << msgid; + result = op.result( msgid ); + qDebug() << "error code" << conn.ldapErrorCode() << "str:" << conn.ldapErrorString(); + + msgid = op.compare( "ou=People,dc=gyurco,dc=localdomain", "objectClass", QByteArray("top") ); + qDebug() << "search msgid" << msgid; + result = op.result( msgid ); + qDebug() << "error code" << conn.ldapErrorCode() << "str:" << conn.ldapErrorString(); + + msgid = op.compare( "ou=People,dc=gyurco,dc=localdomain", "objectClass", + QByteArray("inetOrgPerson") ); + qDebug() << "search msgid" << msgid; + result = op.result( msgid ); + qDebug() << "error code" << conn.ldapErrorCode() << "str:" << conn.ldapErrorString(); + + msgid = op.exop( "1.2.3.4.5.6.7.8", QByteArray("inetOrgPerson") ); + qDebug() << "search msgid" << msgid; + result = op.result( msgid ); + qDebug() << "error code" << conn.ldapErrorCode() << "str:" << conn.ldapErrorString(); +*/ +/* + } +*/ diff --git a/autotests/testkldap.h b/autotests/testkldap.h new file mode 100644 index 0000000..71207db --- /dev/null +++ b/autotests/testkldap.h @@ -0,0 +1,41 @@ +/* + SPDX-FileCopyrightText: 2006 Volker Krause + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#pragma once + +#include +#include +#include + +using namespace KLDAP; + +class KLdapTest : public QObject +{ + Q_OBJECT +public: + explicit KLdapTest(QObject *parent = nullptr); + ~KLdapTest() override = default; + +private Q_SLOTS: + // void testKLdap(); + + void initTestCase(); + void cleanupTestCase(); + + void testLdapUrl(); + void testBer(); + void testLdapConnection(); + void testLdapSearch(); + void testLdapDN(); + void testLdapModel(); + +private: + void searchResult(KLDAP::LdapSearch *search); + void searchData(KLDAP::LdapSearch *search, const KLDAP::LdapObject &obj); + QString m_url; + LdapSearch *m_search = nullptr; + LdapObjects m_objects; +}; diff --git a/autotests/testurl.txt.tmpl b/autotests/testurl.txt.tmpl new file mode 100644 index 0000000..2cdc6a8 --- /dev/null +++ b/autotests/testurl.txt.tmpl @@ -0,0 +1 @@ +ldap://cn=admin,dc=kde,dc=org:password@ldap.kde.org:389/ou=people,dc=kde,dc=org?cn,mail,loginShell?sub?(uid=*) diff --git a/cmake/FindLdap.cmake b/cmake/FindLdap.cmake new file mode 100644 index 0000000..5834aa8 --- /dev/null +++ b/cmake/FindLdap.cmake @@ -0,0 +1,99 @@ +#.rst: +# FindLdap +# -------- +# +# Try to find the LDAP client libraries. +# +# This will define the following variables: +# +# ``Ldap_FOUND`` +# True if libldap is available. +# +# ``Ldap_VERSION`` +# The version of libldap +# +# ``Ldap_INCLUDE_DIRS`` +# This should be passed to target_include_directories() if +# the target is not used for linking +# +# ``Ldap_LIBRARIES`` +# The LDAP libraries (libldap + liblber if available) +# This can be passed to target_link_libraries() instead of +# the ``Ldap::Ldap`` target +# +# If ``Ldap_FOUND`` is TRUE, the following imported target +# will be available: +# +# ``Ldap::Ldap`` +# The LDAP library +# +# Since pre-5.0.0. +# +# Imported target since 5.1.41 +# +#============================================================================= +# SPDX-FileCopyrightText: 2006 Szombathelyi György +# SPDX-FileCopyrightText: 2007-2022 Laurent Montel +# +# SPDX-License-Identifier: BSD-3-Clause +#============================================================================= + +find_path(Ldap_INCLUDE_DIRS NAMES ldap.h) + +if(APPLE) + find_library(Ldap_LIBRARIES NAMES LDAP + PATHS + /System/Library/Frameworks + /Library/Frameworks + ) +else() + find_library(Ldap_LIBRARY NAMES ldap) + find_library(Lber_LIBRARY NAMES lber) +endif() + +if(Ldap_LIBRARY AND Lber_LIBRARY) + set(Ldap_LIBRARIES ${Ldap_LIBRARY} ${Lber_LIBRARY}) +endif() + +if(EXISTS ${Ldap_INCLUDE_DIRS}/ldap_features.h) + file(READ ${Ldap_INCLUDE_DIRS}/ldap_features.h LDAP_FEATURES_H_CONTENT) + string(REGEX MATCH "#define LDAP_VENDOR_VERSION_MAJOR[ ]+[0-9]+" _LDAP_VERSION_MAJOR_MATCH ${LDAP_FEATURES_H_CONTENT}) + string(REGEX MATCH "#define LDAP_VENDOR_VERSION_MINOR[ ]+[0-9]+" _LDAP_VERSION_MINOR_MATCH ${LDAP_FEATURES_H_CONTENT}) + string(REGEX MATCH "#define LDAP_VENDOR_VERSION_PATCH[ ]+[0-9]+" _LDAP_VERSION_PATCH_MATCH ${LDAP_FEATURES_H_CONTENT}) + + string(REGEX REPLACE ".*_MAJOR[ ]+(.*)" "\\1" LDAP_VERSION_MAJOR ${_LDAP_VERSION_MAJOR_MATCH}) + string(REGEX REPLACE ".*_MINOR[ ]+(.*)" "\\1" LDAP_VERSION_MINOR ${_LDAP_VERSION_MINOR_MATCH}) + string(REGEX REPLACE ".*_PATCH[ ]+(.*)" "\\1" LDAP_VERSION_PATCH ${_LDAP_VERSION_PATCH_MATCH}) + + set(Ldap_VERSION "${LDAP_VERSION_MAJOR}.${LDAP_VERSION_MINOR}.${LDAP_VERSION_PATCH}") +endif() + +include(FindPackageHandleStandardArgs) + +find_package_handle_standard_args(Ldap + FOUND_VAR Ldap_FOUND + REQUIRED_VARS Ldap_LIBRARIES Ldap_INCLUDE_DIRS + VERSION_VAR Ldap_VERSION +) + +if(Ldap_FOUND AND NOT TARGET Lber::Lber) + add_library(Lber::Lber UNKNOWN IMPORTED) + set_target_properties(Lber::Lber PROPERTIES + IMPORTED_LOCATION "${Lber_LIBRARY}") +endif() + +if(Ldap_FOUND AND NOT TARGET Ldap::Ldap) + add_library(Ldap::Ldap UNKNOWN IMPORTED) + set_target_properties(Ldap::Ldap PROPERTIES + IMPORTED_LOCATION "${Ldap_LIBRARY}" + INTERFACE_INCLUDE_DIRECTORIES "${Ldap_INCLUDE_DIRS}" + INTERFACE_LINK_LIBRARIES Lber::Lber) +endif() + +mark_as_advanced(Ldap_INCLUDE_DIRS Ldap_LIBRARY Lber_LIBRARY Ldap_LIBRARIES) + +include(FeatureSummary) +set_package_properties(Ldap PROPERTIES + URL "https://www.openldap.org/" + DESCRIPTION "LDAP (Lightweight Directory Access Protocol) libraries." +) diff --git a/kioslave/CMakeLists.txt b/kioslave/CMakeLists.txt new file mode 100644 index 0000000..625fe54 --- /dev/null +++ b/kioslave/CMakeLists.txt @@ -0,0 +1,8 @@ +# SPDX-FileCopyrightText: none +# SPDX-License-Identifier: BSD-3-Clause +add_subdirectory(src) + +if (KF5DocTools_FOUND) + add_subdirectory(doc) +endif() + diff --git a/kioslave/doc/CMakeLists.txt b/kioslave/doc/CMakeLists.txt new file mode 100644 index 0000000..eb6d46a --- /dev/null +++ b/kioslave/doc/CMakeLists.txt @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: none +# SPDX-License-Identifier: BSD-3-Clause +add_subdirectory(ldap) diff --git a/kioslave/doc/ldap/CMakeLists.txt b/kioslave/doc/ldap/CMakeLists.txt new file mode 100644 index 0000000..7f7528a --- /dev/null +++ b/kioslave/doc/ldap/CMakeLists.txt @@ -0,0 +1,5 @@ +# SPDX-FileCopyrightText: none +# SPDX-License-Identifier: BSD-3-Clause +########### install files ############### +kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR kioslave5/ldap) + diff --git a/kioslave/doc/ldap/index.docbook b/kioslave/doc/ldap/index.docbook new file mode 100644 index 0000000..2cd0aac --- /dev/null +++ b/kioslave/doc/ldap/index.docbook @@ -0,0 +1,30 @@ + + + +]> + +
+ldap + + +&Lauri.Watts; &Lauri.Watts.mail; + + + + +ldap is the lightweight directory access +protocol. It provides access to an X.500 directory, or to a stand-alone +LDAP server. + +You can use the ldap kioslave as follows: + +ldap://host:port/ou=People,o=where,c=de??sub +for a subtree-query + +or +ldap://host:port/cn=MM,ou=People,o=where,c=de??base +for a complete branch. + +
diff --git a/kioslave/src/CMakeLists.txt b/kioslave/src/CMakeLists.txt new file mode 100644 index 0000000..e252edf --- /dev/null +++ b/kioslave/src/CMakeLists.txt @@ -0,0 +1,17 @@ +# SPDX-FileCopyrightText: none +# SPDX-License-Identifier: BSD-3-Clause +add_library(kio_ldap MODULE) +target_sources(kio_ldap PRIVATE kio_ldap.cpp kio_ldap.h) +ecm_qt_declare_logging_category(kio_ldap HEADER kldap_debug.h IDENTIFIER KLDAP_LOG CATEGORY_NAME org.kde.pim.kldap + DESCRIPTION "kioslave (kldap)" + OLD_CATEGORY_NAMES log_kldap + EXPORT KLDAP + ) + + +target_link_libraries(kio_ldap Qt::Network KF5::KIOCore KF5::I18n KF5::Ldap) +if (WIN32) + target_link_libraries(kio_ldap ws2_32) +endif() +set_target_properties(kio_ldap PROPERTIES OUTPUT_NAME "ldap") +install(TARGETS kio_ldap DESTINATION ${KDE_INSTALL_PLUGINDIR}/kf${QT_MAJOR_VERSION}/kio) diff --git a/kioslave/src/Messages.sh b/kioslave/src/Messages.sh new file mode 100644 index 0000000..cfb0767 --- /dev/null +++ b/kioslave/src/Messages.sh @@ -0,0 +1,5 @@ +#! /usr/bin/env bash + +# SPDX-License-Identifier: CC0-1.0 +# SPDX-FileCopyrightText: none +$XGETTEXT *.cpp -o $podir/kio_ldap.pot diff --git a/kioslave/src/kio_ldap.cpp b/kioslave/src/kio_ldap.cpp new file mode 100644 index 0000000..9184318 --- /dev/null +++ b/kioslave/src/kio_ldap.cpp @@ -0,0 +1,791 @@ +/* + SPDX-FileCopyrightText: 2004-2007 Szombathelyi György + + SPDX-License-Identifier: MIT + +*/ + +#include "kio_ldap.h" +#include "kldap_debug.h" + +#include + +#include +#include +#include + +#ifdef Q_OS_WIN +#include +#else +#include +#include +#endif +#include + +using namespace KIO; +using namespace KLDAP; + +// Pseudo plugin class to embed meta data +class KIOPluginForMetaData : public QObject +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "org.kde.kio.slave.ldap" FILE "ldap.json") +}; + +extern "C" { +int Q_DECL_EXPORT kdemain(int argc, char **argv); +} + +/** + * The main program. + */ +int kdemain(int argc, char **argv) +{ + QCoreApplication app(argc, argv); // needed for QSocketNotifier + app.setApplicationName(QStringLiteral("kio_ldap")); + + qCDebug(KLDAP_LOG) << "Starting kio_ldap instance"; + + if (argc != 4) { + qCritical() << "Usage kio_ldap protocol pool app"; + return -1; + } + + // let the protocol class do its work + LDAPProtocol slave(argv[1], argv[2], argv[3]); + slave.dispatchLoop(); + + qCDebug(KLDAP_LOG) << "Done"; + return 0; +} + +/** + * Initialize the ldap slave + */ +LDAPProtocol::LDAPProtocol(const QByteArray &protocol, const QByteArray &pool, const QByteArray &app) + : SlaveBase(protocol, pool, app) +{ + mConnected = false; + mOp.setConnection(mConn); + qCDebug(KLDAP_LOG) << "LDAPProtocol::LDAPProtocol (" << protocol << ")"; +} + +LDAPProtocol::~LDAPProtocol() +{ + closeConnection(); +} + +void LDAPProtocol::LDAPErr(int err) +{ + QString extramsg; + if (mConnected) { + if (err == KLDAP_SUCCESS) { + err = mConn.ldapErrorCode(); + } + if (err != KLDAP_SUCCESS) { + extramsg = i18n("\nAdditional info: ") + mConn.ldapErrorString(); + } + } + if (err == KLDAP_SUCCESS) { + return; + } + + qDebug() << "error code: " << err << " msg: " << LdapConnection::errorString(err) << extramsg << "'"; + QString msg; + msg = mServer.url().toDisplayString(); + if (!extramsg.isEmpty()) { + msg += extramsg; + } + + /* FIXME: No need to close on all errors */ + closeConnection(); + + switch (err) { + /* FIXME: is it worth mapping the following error codes to kio errors? + + LDAP_OPERATIONS_ERROR + LDAP_STRONG_AUTH_REQUIRED + LDAP_PROTOCOL_ERROR + LDAP_TIMELIMIT_EXCEEDED + LDAP_SIZELIMIT_EXCEEDED + LDAP_COMPARE_FALSE + LDAP_COMPARE_TRUE + LDAP_PARTIAL_RESULTS + LDAP_NO_SUCH_ATTRIBUTE + LDAP_UNDEFINED_TYPE + LDAP_INAPPROPRIATE_MATCHING + LDAP_CONSTRAINT_VIOLATION + LDAP_INVALID_SYNTAX + LDAP_NO_SUCH_OBJECT + LDAP_ALIAS_PROBLEM + LDAP_INVALID_DN_SYNTAX + LDAP_IS_LEAF + LDAP_ALIAS_DEREF_PROBLEM + LDAP_INAPPROPRIATE_AUTH + LDAP_BUSY + LDAP_UNAVAILABLE + LDAP_UNWILLING_TO_PERFORM + LDAP_LOOP_DETECT + LDAP_NAMING_VIOLATION + LDAP_OBJECT_CLASS_VIOLATION + LDAP_NOT_ALLOWED_ON_NONLEAF + LDAP_NOT_ALLOWED_ON_RDN + LDAP_NO_OBJECT_CLASS_MODS + LDAP_OTHER + LDAP_LOCAL_ERROR + LDAP_ENCODING_ERROR + LDAP_DECODING_ERROR + LDAP_FILTER_ERROR + */ + case KLDAP_AUTH_UNKNOWN: + case KLDAP_INVALID_CREDENTIALS: + case KLDAP_STRONG_AUTH_NOT_SUPPORTED: + error(ERR_CANNOT_AUTHENTICATE, msg); + break; + case KLDAP_ALREADY_EXISTS: + error(ERR_FILE_ALREADY_EXIST, msg); + break; + case KLDAP_INSUFFICIENT_ACCESS: + error(ERR_ACCESS_DENIED, msg); + break; + case KLDAP_CONNECT_ERROR: + case KLDAP_SERVER_DOWN: + error(ERR_CANNOT_CONNECT, msg); + break; + case KLDAP_TIMEOUT: + error(ERR_SERVER_TIMEOUT, msg); + break; + case KLDAP_PARAM_ERROR: + error(ERR_INTERNAL, msg); + break; + case KLDAP_NO_MEMORY: + error(ERR_OUT_OF_MEMORY, msg); + break; + + default: + error(KIO::ERR_WORKER_DEFINED, + i18n("LDAP server returned the error: %1 %2\nThe LDAP URL was: %3", LdapConnection::errorString(err), extramsg, mServer.url().toDisplayString())); + } +} + +void LDAPProtocol::controlsFromMetaData(LdapControls &serverctrls, LdapControls &clientctrls) +{ + QString oid; + bool critical; + QByteArray value; + int i = 0; + while (hasMetaData(QStringLiteral("SERVER_CTRL%1").arg(i))) { + QByteArray val = metaData(QStringLiteral("SERVER_CTRL%1").arg(i)).toUtf8(); + Ldif::splitControl(val, oid, critical, value); + qCDebug(KLDAP_LOG) << "server ctrl #" << i << " value: " << val << " oid: " << oid << " critical: " << critical + << " value: " << QString::fromUtf8(value.constData(), value.size()); + LdapControl ctrl(oid, val, critical); + serverctrls.append(ctrl); + i++; + } + i = 0; + while (hasMetaData(QStringLiteral("CLIENT_CTRL%1").arg(i))) { + QByteArray val = metaData(QStringLiteral("CLIENT_CTRL%1").arg(i)).toUtf8(); + Ldif::splitControl(val, oid, critical, value); + qCDebug(KLDAP_LOG) << "client ctrl #" << i << " value: " << val << " oid: " << oid << " critical: " << critical + << " value: " << QString::fromUtf8(value.constData(), value.size()); + LdapControl ctrl(oid, val, critical); + clientctrls.append(ctrl); + i++; + } +} + +void LDAPProtocol::LDAPEntry2UDSEntry(const LdapDN &dn, UDSEntry &entry, const LdapUrl &usrc, bool dir) +{ + int pos; + entry.clear(); + QString name = dn.toString(); + if ((pos = name.indexOf(QLatin1Char(','))) > 0) { + name.truncate(pos); + } + if ((pos = name.indexOf(QLatin1Char('='))) > 0) { + name.remove(0, pos + 1); + } + name.replace(QLatin1Char(' '), QLatin1String("_")); + if (!dir) { + name += QLatin1String(".ldif"); + } + entry.fastInsert(KIO::UDSEntry::UDS_NAME, name); + + // the file type + entry.fastInsert(KIO::UDSEntry::UDS_FILE_TYPE, dir ? S_IFDIR : S_IFREG); + + // the mimetype + if (!dir) { + entry.fastInsert(KIO::UDSEntry::UDS_MIME_TYPE, QStringLiteral("text/plain")); + } + + entry.fastInsert(KIO::UDSEntry::UDS_ACCESS, dir ? 0500 : 0400); + + // the url + LdapUrl url = usrc; + url.setPath(QLatin1Char('/') + dn.toString()); + url.setScope(dir ? LdapUrl::One : LdapUrl::Base); + entry.fastInsert(KIO::UDSEntry::UDS_URL, url.toDisplayString()); +} + +void LDAPProtocol::changeCheck(const LdapUrl &url) +{ + LdapServer server; + server.setUrl(url); + + if (mConnected) { + if (server.host() != mServer.host() || server.port() != mServer.port() || server.baseDn() != mServer.baseDn() || server.user() != mServer.user() + || server.bindDn() != mServer.bindDn() || server.realm() != mServer.realm() || server.password() != mServer.password() + || server.timeLimit() != mServer.timeLimit() || server.sizeLimit() != mServer.sizeLimit() || server.version() != mServer.version() + || server.security() != mServer.security() || server.auth() != mServer.auth() || server.mech() != mServer.mech()) { + closeConnection(); + mServer = server; + openConnection(); + } + } else { + mServer = server; + openConnection(); + } +} + +void LDAPProtocol::setHost(const QString &host, quint16 port, const QString &user, const QString &password) +{ + if (mServer.host() != host || mServer.port() != port || mServer.user() != user || mServer.password() != password) { + closeConnection(); + } + + mServer.host() = host; + if (port > 0) { + mServer.setPort(port); + } else { + struct servent *pse; + if ((pse = getservbyname(mProtocol.constData(), "tcp")) == nullptr) { + if (mProtocol == "ldaps") { + mServer.setPort(636); + } else { + mServer.setPort(389); + } + } else { + mServer.setPort(ntohs(pse->s_port)); + } + } + mServer.setUser(user); + mServer.setPassword(password); + + qCDebug(KLDAP_LOG) << "setHost: " << host << " port: " << port << " user: " << user << " pass: [protected]"; +} + +void LDAPProtocol::openConnection() +{ + if (mConnected) { + return; + } + + mConn.setServer(mServer); + if (mConn.connect() != 0) { + error(ERR_CANNOT_CONNECT, mConn.connectionError()); + return; + } + + mConnected = true; + + AuthInfo info; + info.url.setScheme(QLatin1String(mProtocol)); + info.url.setHost(mServer.host()); + info.url.setPort(mServer.port()); + info.url.setUserName(mServer.user()); + info.caption = i18n("LDAP Login"); + info.comment = QString::fromLatin1(mProtocol) + QLatin1String("://") + mServer.host() + QLatin1Char(':') + QString::number(mServer.port()); + info.commentLabel = i18n("site:"); + info.username = mServer.auth() == LdapServer::SASL ? mServer.user() : mServer.bindDn(); + info.password = mServer.password(); + info.keepPassword = true; + bool cached = checkCachedAuthentication(info); + + bool firstauth = true; + + while (true) { + int retval = mOp.bind_s(); + if (retval == 0) { + qCDebug(KLDAP_LOG) << "connected!"; + connected(); + return; + } + if (retval == KLDAP_INVALID_CREDENTIALS || retval == KLDAP_INSUFFICIENT_ACCESS || retval == KLDAP_INAPPROPRIATE_AUTH + || retval == KLDAP_UNWILLING_TO_PERFORM) { + if (firstauth && cached) { + if (mServer.auth() == LdapServer::SASL) { + mServer.setUser(info.username); + } else { + mServer.setBindDn(info.username); + } + mServer.setPassword(info.password); + mConn.setServer(mServer); + cached = false; + } else { + const int errorCode = firstauth ? openPasswordDialogV2(info) : openPasswordDialogV2(info, i18n("Invalid authorization information.")); + if (!errorCode) { + if (info.keepPassword) { // user asked password be save/remembered + cacheAuthentication(info); + } + } else { + if (errorCode == ERR_USER_CANCELED) { + error(ERR_USER_CANCELED, i18n("LDAP connection canceled.")); + } else { + error(errorCode, QString()); + } + closeConnection(); + return; + } + if (mServer.auth() == LdapServer::SASL) { + mServer.setUser(info.username); + } else { + mServer.setBindDn(info.username); + } + mServer.setPassword(info.password); + firstauth = false; + mConn.setServer(mServer); + } + } else { + LDAPErr(retval); + closeConnection(); + return; + } + } +} + +void LDAPProtocol::closeConnection() +{ + if (mConnected) { + mConn.close(); + } + mConnected = false; + + qCDebug(KLDAP_LOG) << "connection closed!"; +} + +/** + * Get the information contained in the URL. + */ +void LDAPProtocol::get(const QUrl &_url) +{ + qCDebug(KLDAP_LOG) << "get(" << _url << ")"; + + LdapUrl usrc(_url); + + changeCheck(usrc); + if (!mConnected) { + return; + } + + LdapControls serverctrls; + LdapControls clientctrls; + controlsFromMetaData(serverctrls, clientctrls); + if (mServer.pageSize()) { + LdapControls ctrls = serverctrls; + ctrls.append(LdapControl::createPageControl(mServer.pageSize())); + qCDebug(KLDAP_LOG) << "page size: " << mServer.pageSize(); + mOp.setServerControls(ctrls); + } else { + mOp.setServerControls(serverctrls); + } + mOp.setClientControls(clientctrls); + int ret; + int id; + if ((id = mOp.search(usrc.dn(), usrc.scope(), usrc.filter(), usrc.attributes())) == -1) { + LDAPErr(); + return; + } + + // tell the mimetype + mimeType(QStringLiteral("text/plain")); + // collect the result + // QByteArray result; + filesize_t processed_size = 0; + + while (true) { + ret = mOp.waitForResult(id, -1); + if (ret == -1 || mConn.ldapErrorCode() != KLDAP_SUCCESS) { + LDAPErr(); + return; + } + qCDebug(KLDAP_LOG) << " ldap_result: " << ret; + if (ret == LdapOperation::RES_SEARCH_RESULT) { + if (mServer.pageSize()) { + QByteArray cookie; + int estsize = -1; + for (int i = 0; i < mOp.controls().count(); ++i) { + qCDebug(KLDAP_LOG) << " control oid: " << mOp.controls().at(i).oid(); + estsize = mOp.controls().at(i).parsePageControl(cookie); + if (estsize != -1) { + break; + } + } + qCDebug(KLDAP_LOG) << " estimated size: " << estsize; + if (estsize != -1 && !cookie.isEmpty()) { + LdapControls ctrls{serverctrls}; // clazy:exclude=container-inside-loop + qCDebug(KLDAP_LOG) << "page size: " << mServer.pageSize() << " estimated size: " << estsize; + ctrls.append(LdapControl::createPageControl(mServer.pageSize(), cookie)); + mOp.setServerControls(ctrls); + if ((id = mOp.search(usrc.dn(), usrc.scope(), usrc.filter(), usrc.attributes())) == -1) { + LDAPErr(); + return; + } + continue; + } + } + break; + } + if (ret != LdapOperation::RES_SEARCH_ENTRY) { + continue; + } + + QByteArray entry = mOp.object().toString().toUtf8() + '\n'; + processed_size += entry.size(); + data(entry); + processedSize(processed_size); + } + + totalSize(processed_size); + + // tell we are finished + data(QByteArray()); + finished(); +} + +/** + * Test if the url contains a directory or a file. + */ +void LDAPProtocol::stat(const QUrl &_url) +{ + qCDebug(KLDAP_LOG) << "stat(" << _url << ")"; + + QStringList att; + QStringList saveatt; + LdapUrl usrc(_url); + int ret; + int id; + + changeCheck(usrc); + if (!mConnected) { + return; + } + + // look how many entries match + saveatt = usrc.attributes(); + att.append(QStringLiteral("dn")); + + if ((id = mOp.search(usrc.dn(), usrc.scope(), usrc.filter(), att)) == -1) { + LDAPErr(); + return; + } + + qCDebug(KLDAP_LOG) << "stat() getting result"; + do { + ret = mOp.waitForResult(id, -1); + if (ret == -1 || mConn.ldapErrorCode() != KLDAP_SUCCESS) { + LDAPErr(); + return; + } + if (ret == LdapOperation::RES_SEARCH_RESULT) { + error(ERR_DOES_NOT_EXIST, _url.toDisplayString()); + return; + } + } while (ret != LdapOperation::RES_SEARCH_ENTRY); + + mOp.abandon(id); + + usrc.setAttributes(saveatt); + + UDSEntry uds; + bool critical; + LDAPEntry2UDSEntry(usrc.dn(), uds, usrc, usrc.extension(QStringLiteral("x-dir"), critical) != QLatin1String("base")); + + statEntry(uds); + // we are done + finished(); +} + +/** + * Deletes one entry; + */ +void LDAPProtocol::del(const QUrl &_url, bool) +{ + qCDebug(KLDAP_LOG) << "del(" << _url << ")"; + + LdapUrl usrc(_url); + int id; + int ret; + + changeCheck(usrc); + if (!mConnected) { + return; + } + + LdapControls serverctrls; + LdapControls clientctrls; + controlsFromMetaData(serverctrls, clientctrls); + mOp.setServerControls(serverctrls); + mOp.setClientControls(clientctrls); + + qCDebug(KLDAP_LOG) << " del: " << usrc.dn().toString().toUtf8(); + + if ((id = mOp.del(usrc.dn())) == -1) { + LDAPErr(); + return; + } + ret = mOp.waitForResult(id, -1); + if (ret == -1 || mConn.ldapErrorCode() != KLDAP_SUCCESS) { + LDAPErr(); + return; + } + + finished(); +} + +void LDAPProtocol::put(const QUrl &_url, int, KIO::JobFlags flags) +{ + qCDebug(KLDAP_LOG) << "put(" << _url << ")"; + + LdapUrl usrc(_url); + + changeCheck(usrc); + if (!mConnected) { + return; + } + + LdapControls serverctrls; + LdapControls clientctrls; + controlsFromMetaData(serverctrls, clientctrls); + mOp.setServerControls(serverctrls); + mOp.setClientControls(clientctrls); + + LdapObject addObject; + LdapOperation::ModOps modops; + QByteArray buffer; + int result = 0; + Ldif::ParseValue ret; + Ldif ldif; + ret = Ldif::MoreData; + int ldaperr; + + do { + if (ret == Ldif::MoreData) { + dataReq(); // Request for data + result = readData(buffer); + ldif.setLdif(buffer); + } + if (result < 0) { + // error + return; + } + if (result == 0) { + qCDebug(KLDAP_LOG) << "EOF!"; + ldif.endLdif(); + } + do { + ret = ldif.nextItem(); + qCDebug(KLDAP_LOG) << "nextitem: " << ret; + + switch (ret) { + case Ldif::None: + case Ldif::NewEntry: + case Ldif::MoreData: + break; + case Ldif::EndEntry: + ldaperr = KLDAP_SUCCESS; + switch (ldif.entryType()) { + case Ldif::Entry_None: + error(ERR_INTERNAL, i18n("The Ldif parser failed.")); + return; + case Ldif::Entry_Del: + qCDebug(KLDAP_LOG) << "kio_ldap_del"; + ldaperr = mOp.del_s(ldif.dn()); + break; + case Ldif::Entry_Modrdn: + qCDebug(KLDAP_LOG) << "kio_ldap_modrdn olddn:" << ldif.dn().toString() << " newRdn: " << ldif.newRdn() + << " newSuperior: " << ldif.newSuperior() << " deloldrdn: " << ldif.delOldRdn(); + ldaperr = mOp.rename_s(ldif.dn(), ldif.newRdn(), ldif.newSuperior(), ldif.delOldRdn()); + break; + case Ldif::Entry_Mod: + qCDebug(KLDAP_LOG) << "kio_ldap_mod"; + ldaperr = mOp.modify_s(ldif.dn(), modops); + modops.clear(); + break; + case Ldif::Entry_Add: + qCDebug(KLDAP_LOG) << "kio_ldap_add " << ldif.dn().toString(); + addObject.setDn(ldif.dn()); + ldaperr = mOp.add_s(addObject); + if (ldaperr == KLDAP_ALREADY_EXISTS && (flags & KIO::Overwrite)) { + qCDebug(KLDAP_LOG) << ldif.dn().toString() << " already exists, delete first"; + ldaperr = mOp.del_s(ldif.dn()); + if (ldaperr == KLDAP_SUCCESS) { + ldaperr = mOp.add_s(addObject); + } + } + addObject.clear(); + break; + } + if (ldaperr != KLDAP_SUCCESS) { + qCDebug(KLDAP_LOG) << "put ldap error: " << ldaperr; + LDAPErr(ldaperr); + return; + } + break; + case Ldif::Item: + switch (ldif.entryType()) { + case Ldif::Entry_Mod: { + LdapOperation::ModOp op; + op.type = LdapOperation::Mod_None; + switch (ldif.modType()) { + case Ldif::Mod_None: + op.type = LdapOperation::Mod_None; + break; + case Ldif::Mod_Add: + op.type = LdapOperation::Mod_Add; + break; + case Ldif::Mod_Replace: + op.type = LdapOperation::Mod_Replace; + break; + case Ldif::Mod_Del: + op.type = LdapOperation::Mod_Del; + break; + } + op.attr = ldif.attr(); + if (!ldif.value().isNull()) { + op.values.append(ldif.value()); + } + modops.append(op); + break; + } + case Ldif::Entry_Add: + if (!ldif.value().isEmpty()) { + addObject.addValue(ldif.attr(), ldif.value()); + } + break; + default: + error(ERR_INTERNAL, i18n("The Ldif parser failed.")); + return; + } + break; + case Ldif::Control: { + LdapControl control; + control.setControl(ldif.oid(), ldif.value(), ldif.isCritical()); + serverctrls.append(control); + mOp.setServerControls(serverctrls); + break; + } + case Ldif::Err: + error(KIO::ERR_WORKER_DEFINED, i18n("Invalid Ldif file in line %1.", ldif.lineNumber())); + return; + } + } while (ret != Ldif::MoreData); + } while (result > 0); + + finished(); +} + +/** + * List the contents of a directory. + */ +void LDAPProtocol::listDir(const QUrl &_url) +{ + QStringList att; + QStringList saveatt; + LdapUrl usrc(_url); + LdapUrl usrc2; + bool critical = true; + bool isSub = (usrc.extension(QStringLiteral("x-dir"), critical) == QLatin1String("sub")); + + qCDebug(KLDAP_LOG) << "listDir(" << _url << ")"; + + changeCheck(usrc); + if (!mConnected) { + return; + } + usrc2 = usrc; + + saveatt = usrc.attributes(); + // look up the entries + if (isSub) { + att.append(QStringLiteral("dn")); + usrc.setAttributes(att); + } + if (_url.query().isEmpty()) { + usrc.setScope(LdapUrl::One); + } + int id; + + if ((id = mOp.search(usrc.dn(), usrc.scope(), usrc.filter(), usrc.attributes())) == -1) { + LDAPErr(); + return; + } + + usrc.setAttributes(QStringList() << QLatin1String("")); + usrc.setExtension(QStringLiteral("x-dir"), QStringLiteral("base")); + // publish the results + UDSEntry uds; + + int ret; + int ret2; + int id2; + unsigned long total = 0; + + while (true) { + ret = mOp.waitForResult(id, -1); + if (ret == -1 || mConn.ldapErrorCode() != KLDAP_SUCCESS) { + LDAPErr(); + return; + } + if (ret == LdapOperation::RES_SEARCH_RESULT) { + break; + } + if (ret != LdapOperation::RES_SEARCH_ENTRY) { + continue; + } + qCDebug(KLDAP_LOG) << " ldap_result: " << ret; + + total++; + uds.clear(); + + LDAPEntry2UDSEntry(mOp.object().dn(), uds, usrc); + listEntry(uds); + // processedSize( total ); + qCDebug(KLDAP_LOG) << " total: " << total << " " << usrc.toDisplayString(); + + // publish the sub-directories (if dirmode==sub) + if (isSub) { + LdapDN dn = mOp.object().dn(); + usrc2.setDn(dn); + usrc2.setScope(LdapUrl::One); + usrc2.setAttributes(saveatt); + usrc2.setFilter(usrc.filter()); + qCDebug(KLDAP_LOG) << "search2 " << dn.toString(); + if ((id2 = mOp.search(dn, LdapUrl::One, QString(), att)) != -1) { + while (true) { + qCDebug(KLDAP_LOG) << " next result "; + ret2 = mOp.waitForResult(id2, -1); + if (ret2 == -1 || ret2 == LdapOperation::RES_SEARCH_RESULT) { + break; + } + if (ret2 == LdapOperation::RES_SEARCH_ENTRY) { + LDAPEntry2UDSEntry(dn, uds, usrc2, true); + listEntry(uds); + total++; + mOp.abandon(id2); + break; + } + } + } + } + } + + // totalSize( total ); + + uds.clear(); + // we are done + finished(); +} + +#include "kio_ldap.moc" diff --git a/kioslave/src/kio_ldap.h b/kioslave/src/kio_ldap.h new file mode 100644 index 0000000..c4e422e --- /dev/null +++ b/kioslave/src/kio_ldap.h @@ -0,0 +1,47 @@ +/* + SPDX-FileCopyrightText: 2004-2007 Szombathelyi György + + SPDX-License-Identifier: MIT +*/ + +#pragma once + +#include +#include + +#include +#include +#include +#include +#include +#include + +class LDAPProtocol : public KIO::SlaveBase +{ +public: + LDAPProtocol(const QByteArray &protocol, const QByteArray &pool, const QByteArray &app); + ~LDAPProtocol() override; + + void setHost(const QString &host, quint16 port, const QString &user, const QString &pass) override; + + void openConnection() override; + void closeConnection() override; + + void get(const QUrl &url) override; + void stat(const QUrl &url) override; + void listDir(const QUrl &url) override; + void del(const QUrl &url, bool isfile) override; + void put(const QUrl &url, int permissions, KIO::JobFlags flags) override; + +private: + KLDAP::LdapConnection mConn; + KLDAP::LdapOperation mOp; + KLDAP::LdapServer mServer; + bool mConnected; + + void controlsFromMetaData(KLDAP::LdapControls &serverctrls, KLDAP::LdapControls &clientctrls); + void LDAPEntry2UDSEntry(const KLDAP::LdapDN &dn, KIO::UDSEntry &entry, const KLDAP::LdapUrl &usrc, bool dir = false); + + void LDAPErr(int err = KLDAP_SUCCESS); + void changeCheck(const KLDAP::LdapUrl &url); +}; diff --git a/kioslave/src/ldap.json b/kioslave/src/ldap.json new file mode 100644 index 0000000..2c53b24 --- /dev/null +++ b/kioslave/src/ldap.json @@ -0,0 +1,34 @@ +{ + "KDE-KIO-Protocols": { + "ldap": { + "Icon": "office-address-book", + "X-DocPath": "kioslave5/ldap/index.html", + "deleting": true, + "determineMimetypeFromExtension": false, + "input": "none", + "listing": [ + "Name" + ], + "output": "filesystem", + "protocol": "ldap", + "reading": true, + "source": true, + "writing": true + }, + "ldaps": { + "Icon": "office-address-book", + "X-DocPath": "kioslave5/ldap/index.html", + "deleting": true, + "determineMimetypeFromExtension": false, + "input": "none", + "listing": [ + "Name" + ], + "output": "filesystem", + "protocol": "ldaps", + "reading": true, + "source": true, + "writing": true + } + } +} diff --git a/metainfo.yaml b/metainfo.yaml new file mode 100644 index 0000000..4908f95 --- /dev/null +++ b/metainfo.yaml @@ -0,0 +1,16 @@ +maintainer: mlaurent +description: LDAP support library +tier: 3 +type: functional +platforms: + - name: All +portingAid: false +deprecated: false +release: false +libraries: + - qmake: Ldap + cmake: "KF5::Ldap" +cmakename: KF5Ldap + +public_lib: true +group: kdepim diff --git a/metainfo.yaml.license b/metainfo.yaml.license new file mode 100644 index 0000000..f24ebfe --- /dev/null +++ b/metainfo.yaml.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: none +SPDX-License-Identifier: CC0-1.0 diff --git a/po/af/kio_ldap.po b/po/af/kio_ldap.po new file mode 100644 index 0000000..c95f0b4 --- /dev/null +++ b/po/af/kio_ldap.po @@ -0,0 +1,79 @@ +# UTF-8 test:äëïöü +# Copyright (C) 2001, 2005 Free Software Foundation, Inc. +# Juanita Franz , 2005. +# Kobus Venter , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap stable\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2005-11-24 08:45+0200\n" +"Last-Translator: Kobus Venter \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" +"X-Generator: KBabel 1.10\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Adisionele inligting" + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP bediener het die volgende fout terug gestuur: %1 %2\n" +"Die LDAP URL was: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP aanmeld" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "webruimte:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Ongeldige magtiging informasie." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "" + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, fuzzy, kde-format +msgid "The Ldif parser failed." +msgstr "Die LDIF lettergreepmaking het misluk" + +#: kio_ldap.cpp:680 +#, fuzzy, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Ongeldige LDIF lêer in lyn %1." + +#~ msgid "Cannot set LDAP protocol version %1" +#~ msgstr "Kan nie instel LDAP protokol uitgawe %1" + +#~ msgid "Cannot set size limit." +#~ msgstr "Kan nie grote beperking instel nie" + +#~ msgid "Cannot set time limit." +#~ msgstr "Kan nie tyd beperking instel nie." + +#~ msgid "SASL authentication not compiled into the ldap ioslave." +#~ msgstr "SASL egtheid nie kompileer in die 1dap ioslave nie." diff --git a/po/ar/kio_ldap.po b/po/ar/kio_ldap.po new file mode 100644 index 0000000..f49da19 --- /dev/null +++ b/po/ar/kio_ldap.po @@ -0,0 +1,67 @@ +# translation of kio_ldap.po to +# محمد سعد Mohamed SAAD , 2006. +# Youssef Chahibi , 2007. +# Safa Alfulaij , 2018. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2018-01-31 00:40+0300\n" +"Last-Translator: Safa Alfulaij \n" +"Language-Team: Arabic \n" +"Language: ar\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"X-Generator: Lokalize 2.0\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"المعلومات الإضافيّة: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"لقد أرجع خادوم IDAP الخطأ: %1 ‏%2\n" +"كان مسار LDAP هو: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "الولوج إلى LDAP" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "الموقع:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "معلومات الاستيثاق غير صالحة." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "أُلغي الاتّصال بِ‍ LDAP" + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "فشل محلّل Ldif." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "ملفّ Ldif غير صالح في سطر %1." diff --git a/po/ar/libkldap5.po b/po/ar/libkldap5.po new file mode 100644 index 0000000..de1b01b --- /dev/null +++ b/po/ar/libkldap5.po @@ -0,0 +1,339 @@ +# translation of libkldap.po to +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# Youssef Chahibi , 2007. +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2007-10-14 15:58+0000\n" +"Last-Translator: Youssef Chahibi \n" +"Language-Team: \n" +"Language: ar\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"X-Generator: KBabel 1.11.4\n" + +#: core/ldapconnection.cpp:124 +#, fuzzy, kde-format +msgid "No LDAP Support..." +msgstr "لا LDAP دعم." + +#: core/ldapconnection.cpp:239 +#, fuzzy, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "أداة تعريف خطأ اتصال." + +#: core/ldapconnection.cpp:246 +#, fuzzy, kde-format +msgid "Cannot set protocol version to %1." +msgstr "" +"لا يستطيع set مراسم\n" +"ميفاق النسخة إلى." + +#: core/ldapconnection.cpp:257 +#, fuzzy, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "غير قادر على تعيين حدّ للوقت." +msgstr[1] "غير قادر على تعيين حدّ للوقت." +msgstr[2] "غير قادر على تعيين حدّ للوقت." +msgstr[3] "غير قادر على تعيين حدّ للوقت." +msgstr[4] "غير قادر على تعيين حدّ للوقت." +msgstr[5] "غير قادر على تعيين حدّ للوقت." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "" + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:308 +#, fuzzy, kde-format +msgid "Could not initialize new TLS context." +msgstr "" +"لا يستطيع يهيئ\n" +"يُبدِء التشغيلئ SASL عميل." + +#: core/ldapconnection.cpp:325 +#, fuzzy, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "TLS دعم ليس متوفّر بوصة LDAP عميل." + +#: core/ldapconnection.cpp:335 +#, fuzzy, kde-format +msgid "Cannot set size limit." +msgstr "غير قادر على تعيين حدّ للحجم." + +#: core/ldapconnection.cpp:345 +#, fuzzy, kde-format +msgid "Cannot set time limit." +msgstr "غير قادر على تعيين حدّ للوقت." + +#: core/ldapconnection.cpp:353 +#, fuzzy, kde-format +msgid "Cannot initialize the SASL client." +msgstr "" +"لا يستطيع يهيئ\n" +"يُبدِء التشغيلئ SASL عميل." + +#: core/ldapconnection.cpp:430 +#, fuzzy, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "LDAP دعم ليس بوصة رجاء مع أو متوافق عميل أو إلى التوزيعة." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "" + +#: widgets/addhostdialog.cpp:64 +#, fuzzy, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "المضيف:" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:97 +#, fuzzy, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "المضيف:" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:315 +#, fuzzy, kde-format +msgid "&Add Host..." +msgstr "المضيف:" + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:90 +#, fuzzy, kde-format +msgid "User:" +msgstr "المستخدم:" + +#: widgets/ldapconfigwidget.cpp:97 +#, fuzzy, kde-format +msgid "Bind DN:" +msgstr "" +"يربط :: يوثق :: يقيّد :: يعوق عن الحركة :: يُلزِم :: يحْزم :: يعْصب :: يضمّد :: " +"يجعله متماسكاً :: يَعقِل :: يُجلّد :: يقي :: يُمتّن :: يتماسك :: يصبح صلباً :: " +"رِباط :: رَبْط :: ارتباط :: مأزق DN:" + +#: widgets/ldapconfigwidget.cpp:104 +#, fuzzy, kde-format +msgid "Realm:" +msgstr "المملكة:" + +#: widgets/ldapconfigwidget.cpp:112 +#, fuzzy, kde-format +msgid "Password:" +msgstr "كلمة المرور:" + +#: widgets/ldapconfigwidget.cpp:119 +#, fuzzy, kde-format +msgid "Host:" +msgstr "المضيف:" + +#: widgets/ldapconfigwidget.cpp:128 +#, fuzzy, kde-format +msgid "Port:" +msgstr "المنفذ:" + +#: widgets/ldapconfigwidget.cpp:136 +#, fuzzy, kde-format +msgid "LDAP version:" +msgstr "إصدارة LDAP :" + +#: widgets/ldapconfigwidget.cpp:144 +#, fuzzy, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "افتراضي" + +#: widgets/ldapconfigwidget.cpp:145 +#, fuzzy, kde-format +msgid "Size limit:" +msgstr "حدّ الحجم:" + +#: widgets/ldapconfigwidget.cpp:153 +#, fuzzy, kde-format +msgid " sec" +msgstr " ثانية" + +#: widgets/ldapconfigwidget.cpp:154 +#, fuzzy, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "افتراضي" + +#: widgets/ldapconfigwidget.cpp:155 +#, fuzzy, kde-format +msgid "Time limit:" +msgstr "حد الوقت:" + +#: widgets/ldapconfigwidget.cpp:163 +#, fuzzy, kde-format +msgid "No paging" +msgstr "لا انتقال صفحات الذاكرة من وإلى القرص الثابت" + +#: widgets/ldapconfigwidget.cpp:164 +#, fuzzy, kde-format +msgid "Page size:" +msgstr "حجم الصفحة:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, fuzzy, kde-format +msgid "Query Server" +msgstr "استعلام الخادِم" + +#: widgets/ldapconfigwidget.cpp:185 +#, fuzzy, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, fuzzy, kde-format +msgid "Filter:" +msgstr "المرشح:" + +#: widgets/ldapconfigwidget.cpp:201 +#, fuzzy, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "لا" + +#: widgets/ldapconfigwidget.cpp:204 +#, fuzzy, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, fuzzy, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, fuzzy, kde-format +msgid "Security:" +msgstr "الأمن" + +#: widgets/ldapconfigwidget.cpp:232 +#, fuzzy, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "مجهول" + +#: widgets/ldapconfigwidget.cpp:235 +#, fuzzy, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "بسيط" + +#: widgets/ldapconfigwidget.cpp:238 +#, fuzzy, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, fuzzy, kde-format +msgid "Authentication:" +msgstr "التّوثيق" + +#: widgets/ldapconfigwidget.cpp:259 +#, fuzzy, kde-format +msgid "SASL mechanism:" +msgstr "آلية SASL:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:309 +#, fuzzy, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "استعلام LDAP " + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "" + +#, fuzzy +#~ msgid "LDAP Servers" +#~ msgstr "إصدارة LDAP :" + +#, fuzzy +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "SASL دعم هو ليس متوفّر رجاء مع سيروس SASL أو متوافق عميل أو إلى التوزيعة." + +#, fuzzy +#~ msgid "LDAP Operations error" +#~ msgstr "LDAP عمليات خطأ" + +#, fuzzy +#~ msgid "LDAP Server Settings" +#~ msgstr "إصدارة LDAP :" + +#, fuzzy +#~ msgid "User ID" +#~ msgstr "المستخدم:" diff --git a/po/be/kio_ldap.po b/po/be/kio_ldap.po new file mode 100644 index 0000000..68fb337 --- /dev/null +++ b/po/be/kio_ldap.po @@ -0,0 +1,68 @@ +# translation of kio_ldap.po to Belarusian +# +# Darafei Praliaskouski , 2006. +# Darafei Praliaskouski , 2007. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2007-08-10 14:11+0000\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" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Іншыя звесткі: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP-сервер вярнуў наступную памылку: %1 %2\n" +"LDAP URL быў: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP уваход" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "пляцоўка:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Несапраўдныя аўтарызацыйныя звесткі." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "Злучэнне LDAP скасавана." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Разбор Ldif схібіў." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Недапушчальны Ldif файл у радку %1." diff --git a/po/be/libkldap5.po b/po/be/libkldap5.po new file mode 100644 index 0000000..8238c4c --- /dev/null +++ b/po/be/libkldap5.po @@ -0,0 +1,334 @@ +# translation of libkldap.po to Belarusian +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Darafei Praliaskouski , 2007. +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2007-05-25 12:24+0300\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" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "" + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "" + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "" + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "" + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "" + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "" + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "" + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "" + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "" + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "" + +#: widgets/addhostdialog.cpp:64 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Add Host" +msgstr "Вузел:" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:97 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Edit Host" +msgstr "Вузел:" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:315 +#, fuzzy, kde-format +#| msgid "Host:" +msgid "&Add Host..." +msgstr "Вузел:" + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Карыстальнік:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Пароль:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Вузел:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Порт:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "Версія LDAP:" + +#: widgets/ldapconfigwidget.cpp:144 +#, fuzzy, kde-format +#| msgid "Default" +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Прадвызначаны" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Абмежаванні памераў:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " сек" + +#: widgets/ldapconfigwidget.cpp:154 +#, fuzzy, kde-format +#| msgid "Default" +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Прадвызначаны" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Абмежаванні часу:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Не дзяліць на старонкі" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Памер старонкі:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Запытаць сервер" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Фільтр:" + +#: widgets/ldapconfigwidget.cpp:201 +#, fuzzy, kde-format +#| msgid "No" +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Не" + +#: widgets/ldapconfigwidget.cpp:204 +#, fuzzy, kde-format +#| msgid "TLS" +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, fuzzy, kde-format +#| msgid "SSL" +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, fuzzy, kde-format +#| msgid "Security" +msgid "Security:" +msgstr "Бяспека" + +#: widgets/ldapconfigwidget.cpp:232 +#, fuzzy, kde-format +#| msgid "Anonymous" +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Ананімна" + +#: widgets/ldapconfigwidget.cpp:235 +#, fuzzy, kde-format +#| msgid "Simple" +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Простая" + +#: widgets/ldapconfigwidget.cpp:238 +#, fuzzy, kde-format +#| msgid "SASL" +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, fuzzy, kde-format +#| msgid "Authentication" +msgid "Authentication:" +msgstr "Ідэнтыфікацыя" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "Механізм SASL:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:309 +#, fuzzy, kde-format +#| msgid "LDAP Query" +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "Запыт LDAP" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Servers" +#~ msgstr "Версія LDAP:" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Server Settings" +#~ msgstr "Версія LDAP:" + +#, fuzzy +#~| msgid "User:" +#~ msgid "User ID" +#~ msgstr "Карыстальнік:" diff --git a/po/bg/kio_ldap.po b/po/bg/kio_ldap.po new file mode 100644 index 0000000..6c0080a --- /dev/null +++ b/po/bg/kio_ldap.po @@ -0,0 +1,66 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Zlatko Popov , 2007. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2007-06-03 16:50+0000\n" +"Last-Translator: Zlatko Popov \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: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Допълнителна информация: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"Сървърът LDAP върна следната грешка: %1 %2\n" +"Адресът бе: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "Включване в LDAP" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "страна:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Невалидна информация за оторизация." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "Връзката с LDAP е отменена." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Грешка при граматичен анализ на LDIF." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Невалиден файл LDIF, грешка на ред %1." diff --git a/po/bg/libkldap5.po b/po/bg/libkldap5.po new file mode 100644 index 0000000..a1dac74 --- /dev/null +++ b/po/bg/libkldap5.po @@ -0,0 +1,301 @@ +# Bulgarian translations for kldap package. +# Copyright (C) 2022 This file is copyright: +# This file is distributed under the same license as the kldap package. +# Automatically generated, 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: kldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2022-01-11 00:44+0000\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "" + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "" + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "" + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "" +msgstr[1] "" + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "" + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "" + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "" + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "" + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "" + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "" + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "" + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "" diff --git a/po/bn/kio_ldap.po b/po/bn/kio_ldap.po new file mode 100644 index 0000000..c4cee03 --- /dev/null +++ b/po/bn/kio_ldap.po @@ -0,0 +1,73 @@ +# translation of kio_ldap.po to Bengali +# Deepayan Sarkar , 2004. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2004-07-30 12:25-0500\n" +"Last-Translator: Khandakar Mujahidul Islam \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" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" + +#: kio_ldap.cpp:167 +#, fuzzy, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "LDAP সার্ভার নিম্নলিখিত ভুল ফেরত পাঠাচ্ছে: %1" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP লগ-ইন" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "সাইট:" + +#: kio_ldap.cpp:327 +#, fuzzy, kde-format +msgid "Invalid authorization information." +msgstr "অবৈধ প্রাপ্তাধিকার তথ্য।" + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "" + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, fuzzy, kde-format +msgid "The Ldif parser failed." +msgstr "LDIF পার্সার ব্যর্থ।" + +#: kio_ldap.cpp:680 +#, fuzzy, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "%1 লাইনে অবৈধ LDIF ফাইল।" + +#~ msgid "Cannot set LDAP protocol version %1" +#~ msgstr "LDAP প্রোটোকল সংস্করণ %1 এর মান নির্ধারণ করতে পারছে না" + +#~ msgid "Cannot set size limit." +#~ msgstr "আকৃতি সীমা নির্ধারণ করতে পারছে না।" + +#~ msgid "Cannot set time limit." +#~ msgstr "সময়সীমা নির্ধারণ করতে পারছে না।" + +#, fuzzy +#~ msgid "SASL authentication not compiled into the ldap ioslave." +#~ msgstr "SASL এর পরিচয় প্রমাণ প্রক্রিয়া ldap ioslave এর ভেতর কম্পাইলকৃত নয়।" diff --git a/po/br/kio_ldap.po b/po/br/kio_ldap.po new file mode 100644 index 0000000..df61d23 --- /dev/null +++ b/po/br/kio_ldap.po @@ -0,0 +1,64 @@ +# KDE breton translation +# Thierry Vignaud , 2004-2005 +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2004-07-08 17:18+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" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Titouroù ouzhpenn : " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "lec'hienn :" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "" + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "" + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "" + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "" + +#~ msgid "Cannot set time limit." +#~ msgstr "Ne m'eus ket lakaat ar vevenn pad." diff --git a/po/bs/kio_ldap.po b/po/bs/kio_ldap.po new file mode 100644 index 0000000..c250bc1 --- /dev/null +++ b/po/bs/kio_ldap.po @@ -0,0 +1,69 @@ +# Bosnian translation for kdepimlibs +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the kdepimlibs package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: kdepimlibs\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2012-09-03 14:47+0000\n" +"Last-Translator: Samir Ribić \n" +"Language-Team: Bosnian \n" +"Language: bs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-12-21 01:36+0000\n" +"X-Generator: Launchpad (build 16378)\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" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Dodatne informacije: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP server je vratio sljedeću grešku: %1 %2\n" +"LDAP URL je bio: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP prijava" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "sajt:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Neispravne informacije o identitetu." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "LDAP konekcija otkazana." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Ldif parser nije uspio." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Nevažeća Ldif datoteka u liniji %1." diff --git a/po/bs/libkldap5.po b/po/bs/libkldap5.po new file mode 100644 index 0000000..23ec2ef --- /dev/null +++ b/po/bs/libkldap5.po @@ -0,0 +1,339 @@ +# Bosnian translation for kdepimlibs +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the kdepimlibs package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: kdepimlibs\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2012-09-03 15:44+0000\n" +"Last-Translator: Launchpad Translations Administrators \n" +"Language-Team: Bosnian \n" +"Language: bs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"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-Launchpad-Export-Date: 2012-12-21 01:40+0000\n" +"X-Generator: Launchpad (build 16378)\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "Nema podrške za LDAP..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Došlo je do greške prilikom inicijaliziranja konekcije." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Ne može se postavit verzija protokola na %1." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Ne mogu postaviti istek vremena na %1 sekundu" +msgstr[1] "Ne mogu postaviti istek vremena na %1 sekunde" +msgstr[2] "Ne mogu postaviti istek vremena na %1 sekundi" + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "" + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:308 +#, fuzzy, kde-format +#| msgid "Cannot initialize the SASL client." +msgid "Could not initialize new TLS context." +msgstr "Ne može se inicijalizirati SASL klijent." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "TLS podrška nije dostupna u LDAP klijent bibliotekama." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Ne mogu podesiti ograničenje na veličinu." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Ne mogu podesiti ograničenje vremena." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Ne može se inicijalizirati SASL klijent." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"Podrška za LDAP nije ukompajlirana. Molimo rekompajlirajte libkldap " +"koristeći OpenLDAP (ili kompatibilnu) klijent biblioteku ili se obratite " +"izdavaču distribucije." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "Ne mogu pristupiti serveru. Molimo podesite." + +#: widgets/addhostdialog.cpp:64 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Add Host" +msgstr "Računar:" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Korisnik" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "Vezani DN:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Svijet:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Lozinka" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Računar:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Port:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "Verzija LDAPa:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Podrazumjevano" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Ograničenje veličine:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " s" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Podrazumjevano" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Vremensko ograničenje:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Bez straničenja" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Veličina stranice:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Server za upite" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Filter:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "nema" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, fuzzy, kde-format +#| msgid "Security" +msgid "Security:" +msgstr "Sigurnost" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anonimno" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Jednostavno" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, fuzzy, kde-format +#| msgid "Authentication" +msgid "Authentication:" +msgstr "Provjera identiteta" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "SASL mehanizam:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:309 +#, fuzzy, kde-format +#| msgid "LDAP Query" +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "LDAP upit" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Servers" +#~ msgstr "Verzija LDAPa:" + +#~ msgid "Attribute" +#~ msgstr "Osobina" + +#~ msgid "Value" +#~ msgstr "Vrijednost" + +#~ msgid "Distinguished Name" +#~ msgstr "Istaknuto ime." + +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "SASL podrška nedostupna. Molimo rekompajlirajte libkldap koristeći Cyrus-" +#~ "SASL (ili kompatibilnu) klijent biblioteku, ili se javite Vašem pakeru " +#~ "distribucije." + +#~ msgid "LDAP Operations error" +#~ msgstr "Greška sa LDAP Operacijama" diff --git a/po/ca/docs/kioslave5/ldap/index.docbook b/po/ca/docs/kioslave5/ldap/index.docbook new file mode 100644 index 0000000..52524cd --- /dev/null +++ b/po/ca/docs/kioslave5/ldap/index.docbook @@ -0,0 +1,40 @@ + + + +]> + +
+ldap + + +&Lauri.Watts; &Lauri.Watts.mail; +&traductor.Antoni.Bella; + + + +ldap és un lleuger protocol per accedir als directoris. Proporciona accés a un directori X.500 o a un servidor LDAP autònom. + +Podeu utilitzar el kioslave ldap del següent mode: + +ldap://màquina:port/ou=Gent,o=on,c=de??sub per a una petició subarbrada. + +o ldap://màquina:port/cn=MM,ou=Gent,o=on,c=de??base per obtenir una branca completa. + +
diff --git a/po/ca/kio_ldap.po b/po/ca/kio_ldap.po new file mode 100644 index 0000000..ff85fe4 --- /dev/null +++ b/po/ca/kio_ldap.po @@ -0,0 +1,71 @@ +# Translation of kio_ldap.po to Catalan +# Copyright (C) 2004-2007 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. +# +# Sebastià Pla i Sanz , 2004. +# Albert Astals Cid , 2005. +# Josep M. Ferrer , 2007. +msgid "" +msgstr "" +"Project-Id-Version: kldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2007-06-02 11:53+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: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Accelerator-Marker: &\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Informació addicional: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"El servidor LDAP ha retornat l'error: %1 %2\n" +"L'URL de l'LDAP era: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "Connexió LDAP" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "lloc:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Informació d'autorització no vàlida." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "S'ha cancel·lat la connexió LDAP." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Ha fallat l'analitzador LDIF." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Fitxer LDIF no vàlid a la línia %1." diff --git a/po/ca/libkldap5.po b/po/ca/libkldap5.po new file mode 100644 index 0000000..ba60aa6 --- /dev/null +++ b/po/ca/libkldap5.po @@ -0,0 +1,312 @@ +# Translation of libkldap5.po to Catalan +# Copyright (C) 2007-2021 This_file_is_part_of_KDE +# This file is distributed under the license LGPL version 2.1 or +# version 3 or later versions approved by the membership of KDE e.V. +# +# Josep M. Ferrer , 2007, 2008, 2009, 2016, 2020. +# Manuel Tortosa Moreno , 2010. +# Antoni Bella Pérez , 2014, 2017, 2018, 2019, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: kldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2021-07-28 15:08+0200\n" +"Last-Translator: Antoni Bella Pérez \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 21.07.80\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Accelerator-Marker: &\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "No admet el LDAP..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "S'ha detectat un error durant la fase d'inicialització de la connexió." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "No s'ha pogut establir la versió del protocol a %1." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "No s'ha pogut establir el temps d'espera a %1 segon." +msgstr[1] "No s'ha pogut establir el temps d'espera a %1 segons." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "No s'ha pogut establir el fitxer del certificat de la CA." + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "El mode de certificat requerit pel TLS no és vàlid." + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "No s'ha pogut establir el mode de certificat requerit pel TLS." + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "No s'ha pogut inicialitzar el nou context TLS." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "" +"La implementació del TLS no està disponible a les biblioteques del client " +"LDAP." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "No s'ha pogut establir el límit d'ocupació." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "No s'ha pogut establir el límit de temps." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "No s'ha pogut inicialitzar el client SASL." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"No està compilada la implementació per a LDAP. Torneu a compilar la " +"«libkldap» amb les biblioteques del client OpenLDAP (o compatible), o " +"reclameu als empaquetadors de la vostra distribució." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "No s'ha pogut accedir al servidor. Si us plau, torneu a configurar-lo." + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "Afegeix una màquina" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" +"La contrasenya LDAP s'emmagatzema com a text, voleu desar-la al KWallet?" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "Desa la contrasenya de text a la Cartera" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "Edita la màquina" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "Voleu eliminar l'arranjament per a la màquina «%1»?" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "Elimina la màquina" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "Marqueu tots els servidors que s'haurien d'utilitzar:" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "&Afegeix una màquina..." + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "&Edita la màquina..." + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "E&limina la màquina" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Usuari:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "DN d'enllaç:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Domini:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Contrasenya:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Màquina:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Port:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "Versió de LDAP:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Valor per defecte" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Límit d'ocupació:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " s" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Valor per defecte" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Límit de temps:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Sense paginació" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Mida de la pàgina:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Servidor de consultes" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Filtre:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "No" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "Seguretat:" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anònim" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Senzilla" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "Autenticació:" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "Mecanisme SASL:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "Comprova el servidor" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "Consulta LDAP" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Error desconegut en connectar %1" diff --git a/po/ca@valencia/kio_ldap.po b/po/ca@valencia/kio_ldap.po new file mode 100644 index 0000000..da84c38 --- /dev/null +++ b/po/ca@valencia/kio_ldap.po @@ -0,0 +1,71 @@ +# Translation of kio_ldap.po to Catalan (Valencian) +# Copyright (C) 2004-2007 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. +# +# Sebastià Pla i Sanz , 2004. +# Albert Astals Cid , 2005. +# Josep M. Ferrer , 2007. +msgid "" +msgstr "" +"Project-Id-Version: kldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2007-06-02 11:53+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: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Accelerator-Marker: &\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Informació addicional: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"El servidor LDAP ha retornat l'error: %1 %2\n" +"L'URL de l'LDAP era: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "Connexió LDAP" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "lloc:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Informació d'autorització no vàlida." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "S'ha cancel·lat la connexió LDAP." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "No s'ha pogut executar l'analitzador LDIF." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Fitxer LDIF no vàlid en la línia %1." diff --git a/po/ca@valencia/libkldap5.po b/po/ca@valencia/libkldap5.po new file mode 100644 index 0000000..2e3dba6 --- /dev/null +++ b/po/ca@valencia/libkldap5.po @@ -0,0 +1,312 @@ +# Translation of libkldap5.po to Catalan (Valencian) +# Copyright (C) 2007-2021 This_file_is_part_of_KDE +# This file is distributed under the license LGPL version 2.1 or +# version 3 or later versions approved by the membership of KDE e.V. +# +# Josep M. Ferrer , 2007, 2008, 2009, 2016, 2020. +# Manuel Tortosa Moreno , 2010. +# Antoni Bella Pérez , 2014, 2017, 2018, 2019, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: kldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2021-07-28 15:08+0200\n" +"Last-Translator: Antoni Bella Pérez \n" +"Language-Team: Catalan \n" +"Language: ca@valencia\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 21.07.80\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Accelerator-Marker: &\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "No admet LDAP..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "S'ha detectat un error durant la fase d'inicialització de la connexió." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "No s'ha pogut establir la versió del protocol a %1." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "No s'ha pogut establir el temps d'espera a %1 segon." +msgstr[1] "No s'ha pogut establir el temps d'espera a %1 segons." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "No s'ha pogut establir el fitxer del certificat de la CA." + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "El mode de certificat requerit per TLS no és vàlid." + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "No s'ha pogut establir el mode de certificat requerit per TLS." + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "No s'ha pogut restablir el nou context TLS." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "" +"La implementació de TLS no està disponible en les biblioteques del client " +"LDAP." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "No s'ha pogut establir el límit d'ocupació." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "No s'ha pogut establir el límit de temps." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "No s'ha pogut restablir el client SASL." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"No està compilada la implementació per a LDAP. Torneu a compilar la " +"«libkldap» amb les biblioteques del client OpenLDAP (o compatible), o " +"reclameu als empaquetadors de la vostra distribució." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "No s'ha pogut accedir al servidor. Torneu a configurar-lo." + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "Afig una màquina" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" +"La contrasenya LDAP s'emmagatzema com a text, voleu guardar-la en KWallet?" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "Guarda la contrasenya de text en la Cartera" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "Edita la màquina" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "Voleu eliminar la configuració per a la màquina «%1»?" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "Elimina la màquina" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "Marqueu tots els servidors que s'haurien d'utilitzar:" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "Afi&g una màquina..." + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "&Edita la màquina..." + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "E&limina la màquina" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Usuari:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "DN d'enllaç:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Domini:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Contrasenya:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Màquina:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Port:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "Versió de LDAP:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Valor predeterminat" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Límit d'ocupació:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " s" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Valor predeterminat" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Límit de temps:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Sense paginació" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Mida de la pàgina:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Servidor de consultes" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Filtre:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "No" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "Seguretat:" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anònim" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Senzilla" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "Autenticació:" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "Mecanisme SASL:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "Comprova el servidor" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "Consulta LDAP" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "S'ha produït un error desconegut en connectar %1" diff --git a/po/cs/kio_ldap.po b/po/cs/kio_ldap.po new file mode 100644 index 0000000..c33bd55 --- /dev/null +++ b/po/cs/kio_ldap.po @@ -0,0 +1,66 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2007-10-08 13:36+0200\n" +"Last-Translator: Lukáš Tinkl \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" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Další informace: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP server navrátil tuto chybu: %1 %2\n" +"LDAP URL bylo: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP přihlášení" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "server:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Neplatné autorizační informace." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "LDAP spojení zrušeno." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Analýza LDIF selhala." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Neplatný LDIF soubor na řádku %1." diff --git a/po/cs/libkldap5.po b/po/cs/libkldap5.po new file mode 100644 index 0000000..c773360 --- /dev/null +++ b/po/cs/libkldap5.po @@ -0,0 +1,307 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Vít Pelčák , 2011, 2017, 2018, 2020. +# Tomáš Chvátal , 2013. +# Vit Pelcak , 2021. +# +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2021-07-23 18:11+0200\n" +"Last-Translator: Vit Pelcak \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +"X-Generator: Lokalize 21.04.3\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "Žádná podpora LDAP..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Nastala chyba během inicializační fáze." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Nelze nastavit verzi protokolu na %1." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Nelze nastavit omezení času na %1 sekundu." +msgstr[1] "Nelze nastavit omezení času na %1 sekundy." +msgstr[2] "Nelze nastavit omezení času na %1 sekund." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "Nelze nastavit soubor CA certifikátu." + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "Neplatný režim vyžadující certifikát TLS." + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "Nelze nastavit režim vyžadující certifikát TLS." + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "Nelze inicializovat nový kontext TLS." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "Podpora pro TLS není dostupná v LDAP knihovně." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Nelze nastavit omezení velikosti." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Nelze nastavit omezení času." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Nelze inicializovat SASL klienta." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"Není zakompilována podpora pro LDAP. Prosím zkompilujte znovu libkldap s " +"klientskými knihovnami OpenLDAP (nebo kompatibilními) nebo si stěžujte " +"tvůrcům balíčků své distribuce." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "Nelze se připojit na server, prosím nastavte jej znovu." + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "Přidat hostitele" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "Heslo LDAP je uloženo v čistém textu. Chcete jej uložit v KWallet?" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "Uložit heslo v čistém textu ve Wallet" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "Upravit hostitele" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "Chcete odstranit nastavení pro hostitele \"%1\"?" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "Odstranit hostitele" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "Zvolte všechny servery, které se mají použít:" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "Přid&at hostitele..." + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "Upravit hostit&ele..." + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "Odst&ranit hostitele" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Uživatel:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "Svázat DN:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Doména:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Heslo:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Hostitel:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Port:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "LDAP verze:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Výchozí" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Limit velikosti:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " sek" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Výchozí" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Časový limit:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Bez stránkování" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Velikost stránky:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Dotaz na server" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Filtr:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Ne" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "Zabezpečení:" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anonymní" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Jednoduchá" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "Ověření:" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "SASL mechanismus:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "Zkontrolovat server" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "LDAP dotaz" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Neznámá chyba při připojování k %1" diff --git a/po/csb/kio_ldap.po b/po/csb/kio_ldap.po new file mode 100644 index 0000000..69084a7 --- /dev/null +++ b/po/csb/kio_ldap.po @@ -0,0 +1,66 @@ +# translation of kio_ldap.po to Kashubian +# +# Michôł Òstrowsczi , 2006. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2007-02-18 19:15+0100\n" +"Last-Translator: Michôł Òstrowsczi \n" +"Language-Team: Kashubian\n" +"Language: csb\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=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2)\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Dodôwne info: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"Serwera LDAP zwarcëł felã: %1 %2\n" +"Brëkòwóny URL LDAP: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "Logòwanié LDAP" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "serwera:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Zmiłkòwe pòdôwczi aùtorizacëji." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "Pòłączenié LDAP òprzëstóné" + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Analizatora syntaksë Ldif zakùńczëł sã z felą." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Zmiłkòwi lopk Ldif w rézë %1." diff --git a/po/cy/kio_ldap.po b/po/cy/kio_ldap.po new file mode 100644 index 0000000..afd15d1 --- /dev/null +++ b/po/cy/kio_ldap.po @@ -0,0 +1,72 @@ +# translation of kio_ldap.po to Cymraeg +# KD at KGyfieithu , 2004. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2004-07-04 12:02+0100\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" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" + +#: kio_ldap.cpp:167 +#, fuzzy, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "Dychwelodd y gweinydd LDAP y gwall dilynnol: %1" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "Mewngofnodi LDAP" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "safle:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Gwybodaeth ddilysiant annilys." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "" + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, fuzzy, kde-format +msgid "The Ldif parser failed." +msgstr "Methodd y dadansoddydd LDIF." + +#: kio_ldap.cpp:680 +#, fuzzy, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Ffeil LDIF annilys yn llinell %1." + +#~ msgid "Cannot set LDAP protocol version %1" +#~ msgstr "Methu gosod protocol LDAP fersiwn %1" + +#~ msgid "Cannot set size limit." +#~ msgstr "Methu gosod cyfwng maint" + +#~ msgid "Cannot set time limit." +#~ msgstr "Methu gosod cyfwng amser" + +#~ msgid "SASL authentication not compiled into the ldap ioslave." +#~ msgstr "Ni chrynhowyd dilysiant SASL i mewn i'r ioslave ldap." diff --git a/po/da/kio_ldap.po b/po/da/kio_ldap.po new file mode 100644 index 0000000..31e4fd0 --- /dev/null +++ b/po/da/kio_ldap.po @@ -0,0 +1,68 @@ +# translation of kio_ldap.po to dansk +# Danish translation of kio_ldap +# Copyright (C). +# +# Erik Kjær Pedersen , 2004, 2005. +# Keld Simonsen , 2008. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2008-01-15 10:11+0100\n" +"Last-Translator: Keld Simonsen \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: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Yderligere info: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP server returnerede følgende fejl: %1 %2\n" +"LDAP-URL var: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP Login" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "sted:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Ugyldig godkendelsesinformation." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "LDAP-forbindelse afbrudt." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Ldif fortolkningen milsykkedes." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Ugyldig Ldif-fil i linje %1." diff --git a/po/da/libkldap5.po b/po/da/libkldap5.po new file mode 100644 index 0000000..392ec0d --- /dev/null +++ b/po/da/libkldap5.po @@ -0,0 +1,339 @@ +# translation of libkldap.po to +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Martin Schlander , 2008, 2009, 2014, 2020, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2022-02-08 19:54+0100\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" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "Ingen LDAP-understøttelse..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "En fejl opstod under forbindelsens initialiseringsfase." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Kan ikke sætte protokolversion til %1." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Kan ikke sætte tidsudløb til %1 sekund." +msgstr[1] "Kan ikke sætte tidsudløb til %1 sekunder." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "Kunne ikke sætte CA-certifikatfil." + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "Ugyldig TLS kræv-certifikat-tilstand." + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "Kunne ikke sætte TLS kræv-certifikat-tilstand." + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "Kunne ikke initialisere ny TLS-kontekst." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "TLS-understøttelse er ikke tilgængelig i LDAP-klientbibliotekerne." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Kan ikke sætte størrelsesgrænse." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Kan ikke sætte tidsgrænse." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Kan ikke initialisere SASL-klienten." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"LDAP-understøttelse er ikke oversat ind. Genoversæt venligst likldap med " +"OpenLDAP (eller kompatible) klientbiblioteker, eller klag til de " +"pakkeansvarlige hos din distribution." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "Kan ikke tilgå serveren. Omkonfigurér den." + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "Tilføj vært" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "LDAP-adgangskoden gemmes som klartekst, vil du gemme det i KWallet?" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "Gem klartekst-adgangskode i tegnebogen" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "Redigér vært" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "Vil du fjerne indstillingen for værten \"%1\"?" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "Fjern vært" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "Markér alle servere der skal bruges:" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "&Tilføj vært..." + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "R&edigér vært..." + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "&Fjern vært" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Bruger:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "Bind DN:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Område:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Adgangskode:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Vært:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Port:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "LDAP-version:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Standard" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Størrelsesgrænse:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " sek." + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Standard" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Tidsgrænse:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Ingen side" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Sidestørrelse:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Forespørg server" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Filter:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Nej" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "Sikkerhed:" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anonym" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Simpel" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "Autentificering:" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "SASL-mekanisme:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "Tjek server" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "LDAP-forespørgsel" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Ukendt fejl ved forbindelse til %1" + +#~ msgid "LDAP Servers" +#~ msgstr "LDAP-servere" + +#~ msgid "Attribute" +#~ msgstr "Attribut" + +#~ msgid "Value" +#~ msgstr "Værdi" + +#~ msgid "Distinguished Name" +#~ msgstr "Distingveret navn" + +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "SASL-understøttelse er ikke tilgængelig. Genoversæt venligst libkldap med " +#~ "Cyrus-SASL (eller kompatible) klientbiblioteker, eller klag til de " +#~ "pakkeansvarlige hos din distribution." + +#~ msgid "LDAP Operations error" +#~ msgstr "LDAP-operationsfejl" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Server Settings" +#~ msgstr "LDAP-version:" + +#, fuzzy +#~| msgid "User:" +#~ msgid "User ID" +#~ msgstr "Bruger:" diff --git a/po/de/docs/kioslave5/ldap/index.docbook b/po/de/docs/kioslave5/ldap/index.docbook new file mode 100644 index 0000000..9cc5cdb --- /dev/null +++ b/po/de/docs/kioslave5/ldap/index.docbook @@ -0,0 +1,54 @@ + + + +]> + +
+ldap + + +&Lauri.Watts; &Lauri.Watts.mail; +MarcoWegner
mail@marcowegner.de
Übersetzer
+
+
+ +ldap ist das Lightweight Directory Access Protocol. Es bietet Zugriff auf X.500-Verzeichnisse oder LDAP-Server. + +Sie können das ldap-Modul folgendermaßen nutzen: + +ldap://host:port/ou=People,o=where,c=de??sub für eine Suche in Unterverzeichnissen + +oder ldap://host:port/cn=MM,ou=People,o=where,c=de??base für einen kompletten Zweig. + +
diff --git a/po/de/kio_ldap.po b/po/de/kio_ldap.po new file mode 100644 index 0000000..aba2448 --- /dev/null +++ b/po/de/kio_ldap.po @@ -0,0 +1,63 @@ +# Thomas Diehl , 2004. +# Thomas Reitelbach , 2005, 2006, 2007. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2008-12-05 22:33+0100\n" +"Last-Translator: Thomas Reitelbach \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Weitere Informationen: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"Der LDAP-Server gibt folgende Fehlermeldung aus: %1 %2\n" +"Die LDAP-Adresse ist: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP-Anmeldung" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "Server:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Ungültige Autorisierungs-Information" + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "LDAP-Verbindung abgebrochen." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Fehler des LDIF-Parsers" + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Ungültige LDIF-Datei in Zeile %1." diff --git a/po/de/libkldap5.po b/po/de/libkldap5.po new file mode 100644 index 0000000..850baac --- /dev/null +++ b/po/de/libkldap5.po @@ -0,0 +1,498 @@ +# Stephan Johach , 2007. +# Burkhard Lück , 2009, 2017, 2018, 2020, 2021. +# Thomas Reitelbach , 2009. +# Frederik Schwarzer , 2010, 2014. +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2021-08-25 15:54+0200\n" +"Last-Translator: Burkhard Lück \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 19.12.3\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "Keine LDAP-Unterstützung ..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Bei Aufbau der Verbindung ist ein Fehler aufgetreten." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Die Protokollversion kann nicht auf %1 gesetzt werden." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Das Zeitlimit kann nicht auf %1 Sekunde gesetzt werden." +msgstr[1] "Das Zeitlimit kann nicht auf %1 Sekunden gesetzt werden." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "Die CA-Zertifikatsdatei kann nicht festgelegt werden." + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "Ungültiger Modus „TLS erfordert ein Zertifikat“." + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "Modus „TLS erfordert ein Zertifikat“ kann nicht festgelegt werden." + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "Neuer TLS-Kontext kann nicht initialisiert werden." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "" +"In den LDAP-Bibliotheken des Clients ist keine Unterstützung für TLS " +"vorhanden." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Maximale Größe kann nicht gesetzt werden." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Zeitlimit kann nicht gesetzt werden." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Der SASL-Client kann nicht initialisiert werden." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"Bei der Kompilierung wurde keine Unterstützung für LDAP vorgesehen. Bitte " +"kompilieren Sie libkldap mit den Client-Bibliotheken von OpenLDAP (oder " +"kompatiblen) oder erkundigen Sie sich beim Ersteller der installierten " +"Pakete." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "" +"Kein Zugriff auf den Server möglich. Bitte korrigieren Sie die Einstellungen." + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "Rechner hinzufügen" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" +"Das LDAP-Passwort wird als Klartext gespeichert, möchten Sie es in KWallet " +"speichern?" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "Klartext-Passwort im Passwortspeicher speichern" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "Rechner bearbeiten" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "Möchten Sie die Einstellungen für den Rechner „%1“ entfernen?" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "Rechner entfernen" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "Alle Rechner auswählen, die verwendet werden sollen:" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "Rechner &hinzufügen ..." + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "&Rechner bearbeiten ..." + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "Rechner &entfernen" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Benutzer:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "Bind-DN:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Bereich:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Passwort:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Rechner:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Port:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "LDAP-Version:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Voreinstellung" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Max. Größe:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " s" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Voreinstellung" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Zeitlimit:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Kein Paging" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Seitengröße:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Server abfragen" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Filter:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Keine" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "Sicherheit:" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anonym" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Einfach" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "Authentifizierung:" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "SASL-Mechanismus:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "Server überprüfen" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "LDAP-Abfrage" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Unbekannter Fehler beim Verbinden mit %1" + +#~ msgid "LDAP Servers" +#~ msgstr "LDAP-Server" + +#~ msgid "Attribute" +#~ msgstr "Attribut" + +#~ msgid "Value" +#~ msgstr "Wert" + +#~ msgid "Distinguished Name" +#~ msgstr "Distinguished Name" + +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "Unterstützung für SASL ist nicht verfügbar. Bitte kompilieren Sie " +#~ "libkldap mit den Client-Bibliotheken von Cyrus-SASL (oder kompatiblen) " +#~ "oder erkundigen Sie sich beim Ersteller der installierten Pakete." + +#~ msgid "LDAP Operations error" +#~ msgstr "LDAP-Fehler" + +#~ msgid "kcmldap" +#~ msgstr "kcmldap" + +#~ msgid "LDAP Server Settings" +#~ msgstr "LDAP-Server-Einstellungen" + +#~ msgid "(c) 2009 - 2010 Tobias Koenig" +#~ msgstr "© 2009–2010 Tobias Koenig" + +#~ msgid "Tobias Koenig" +#~ msgstr "Tobias Koenig" + +#~ msgctxt "@item LDAP search key" +#~ msgid "Title" +#~ msgstr "Titel " + +#~ msgid "Full Name" +#~ msgstr "Vollständiger Name" + +#~ msgctxt "@item LDAP search key" +#~ msgid "Email" +#~ msgstr "E-Mail-Adresse" + +#~ msgid "Home Number" +#~ msgstr "Telefonnummer (privat)" + +#~ msgid "Work Number" +#~ msgstr "Telefonnummer (dienstlich)" + +#~ msgid "Mobile Number" +#~ msgstr "Telefonnummer (mobil)" + +#~ msgid "Fax Number" +#~ msgstr "Faxnummer" + +#~ msgid "Pager" +#~ msgstr "Pager" + +#~ msgid "Street" +#~ msgstr "Straße" + +#~ msgctxt "@item LDAP search key" +#~ msgid "State" +#~ msgstr "Bundesland" + +#~ msgid "Country" +#~ msgstr "Land" + +#~ msgid "City" +#~ msgstr "Stadt" + +#~ msgid "Organization" +#~ msgstr "Organisation" + +#~ msgid "Company" +#~ msgstr "Firma" + +#~ msgid "Department" +#~ msgstr "Abteilung" + +#~ msgid "Zip Code" +#~ msgstr "Postleitzahl" + +#~ msgid "Postal Address" +#~ msgstr "Postanschrift" + +#~ msgid "Description" +#~ msgstr "Beschreibung" + +#~ msgid "User ID" +#~ msgstr "Benutzerkennung" + +#~ msgctxt "Search attribute: Name of contact" +#~ msgid "Name" +#~ msgstr "Name" + +#~ msgctxt "Search attribute: Email of the contact" +#~ msgid "Email" +#~ msgstr "E-Mail-Adresse" + +#~ msgctxt "@title:column Column containing email addresses" +#~ msgid "Email" +#~ msgstr "E-Mail-Adresse" + +#~ msgctxt "" +#~ "@title:column Column containing the residential state of the address" +#~ msgid "State" +#~ msgstr "Bundesland" + +#~ msgctxt "@title:column Column containing title of the person" +#~ msgid "Title" +#~ msgstr "Titel " + +#~ msgid "Import Contacts from LDAP" +#~ msgstr "Kontakte aus LDAP importieren" + +#~ msgid "Search for Addresses in Directory" +#~ msgstr "Nach Adressen im Verzeichnis suchen" + +#~ msgid "Search for:" +#~ msgstr "Suchen nach:" + +#~ msgctxt "@item:inlistbox Name of the contact" +#~ msgid "Name" +#~ msgstr "Name" + +#~ msgctxt "@item:inlistbox email address of the contact" +#~ msgid "Email" +#~ msgstr "E-Mail-Adresse" + +#~ msgctxt "@item:inlistbox" +#~ msgid "Home Number" +#~ msgstr "Telefonnummer (privat)" + +#~ msgctxt "@item:inlistbox" +#~ msgid "Work Number" +#~ msgstr "Telefonnummer (dienstlich)" + +#~ msgid "Stop" +#~ msgstr "Anhalten" + +#~ msgctxt "@action:button Start searching" +#~ msgid "&Search" +#~ msgstr "&Suchen" + +#~ msgid "Recursive search" +#~ msgstr "Rekursive Suche" + +#~ msgid "Contains" +#~ msgstr "Enthält" + +#~ msgid "Starts With" +#~ msgstr "Beginnt mit" + +#~ msgid "Select All" +#~ msgstr "Alle auswählen" + +#~ msgid "Unselect All" +#~ msgstr "Auswahl aufheben" + +#~ msgid "Add Selected" +#~ msgstr "Ausgewählte hinzufügen" + +#~ msgid "Configure LDAP Servers..." +#~ msgstr "LDAP-Server einrichten ..." + +#~ msgid "You must select an LDAP server before searching." +#~ msgstr "Sie müssen vor der Suche einen LDAP-Server auswählen." + +#~ msgctxt "arguments are host name, datetime" +#~ msgid "Imported from LDAP directory %1 on %2" +#~ msgstr "Importiert aus LDAP-Verzeichnis %1 am %2" + +#~ msgctxt "NAME OF TRANSLATORS" +#~ msgid "Your names" +#~ msgstr "Frederik Schwarzer" + +#~ msgctxt "EMAIL OF TRANSLATORS" +#~ msgid "Your emails" +#~ msgstr "schwarzer@kde.org" + +#~ msgid "Cannot start TLS." +#~ msgstr "TLS kann nicht gestartet werden." diff --git a/po/el/kio_ldap.po b/po/el/kio_ldap.po new file mode 100644 index 0000000..3aa5e2d --- /dev/null +++ b/po/el/kio_ldap.po @@ -0,0 +1,67 @@ +# translation of kio_ldap.po to greek +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Toussis Manolis , 2007, 2008. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2008-11-15 09:22+0200\n" +"Last-Translator: Toussis Manolis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 0.2\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Επιπλέον πληροφορίες: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"H URL του εξυπηρετητής LDAP επέστρεψε το ακόλουθο σφάλμα: %1 %2\n" +"H URL του εξυπηρετητή LDAP ήταν: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "Σύνδεση LDAP" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "τοποθεσία:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Μη έγκυρες πληροφορίες εξουσιοδότησης." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "Η σύνδεση LDAP ακυρώθηκε." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "O μεταφραστής LDIF απέτυχε." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Μη έγκυρο αρχείο LDIF στη γραμμή %1." diff --git a/po/el/libkldap5.po b/po/el/libkldap5.po new file mode 100644 index 0000000..e3674e7 --- /dev/null +++ b/po/el/libkldap5.po @@ -0,0 +1,344 @@ +# translation of libkldap.po to Greek +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Spiros Georgaras , 2007, 2008. +# Toussis Manolis , 2007, 2009. +# Dimitris Kardarakos , 2014. +# Stelios , 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2021-07-29 08:41+0300\n" +"Last-Translator: Stelios \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 20.04.2\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "Δεν υπάρχει υποστήριξη LDAP..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Παρουσιάστηκε σφάλμα κατά την αρχικοποίηση της σύνδεσης." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Αδύνατος ο ορισμός της έκδοσης του πρωτοκόλλου σε %1." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Αδύνατος ο ορισμός χρονικού ορίου σε %1 δευτερόλεπτο." +msgstr[1] "Αδύνατος ο ορισμός χρονικού ορίου σε %1 δευτερόλεπτα." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "Αδυναμία ρύθμισης αρχείου CA πιστοποιητικού." + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "Μη έγκυρο TLS απαιτεί λειτουργία πιστοποιητικού." + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "Αδυναμία ρύθμισης TLS απαιτεί λειτουργία πιστοποιητικού." + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "Αδυναμία αρχικοποίησης νέου TLS περιεχομένου." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "Μη διαθέσιμη υποστήριξη TLS στις βιβλιοθήκες πελάτη LDAP." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Αδύνατος ο ορισμός ορίου μεγέθους." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Αδύνατος ο ορισμός χρονικού ορίου." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Αδυναμία αρχικοποίησης πελάτη SASL." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"Δεν υπάρχει υποστήριξη LDAP. Παρακαλώ κάντε compile το libkldap με τις " +"βιβλιοθήκες OpenLDAP (ή συμβατές), ή ενημερώστε τη διανομή σας." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "" +"Αδυναμία πρόσβασης στον εξυπηρετητή. Παρακαλώ επαναλάβετε τη ρύθμισή του." + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "Προσθήκη υπολογιστή" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" +"Ο κωδικός πρόσβασης του LDAP έχει αποθηκευθεί ως απλό κείμενο, θέλετε να το " +"αποθηκεύσετε στο kwallet;" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "Να αποθηκευθεί το απλό κείμενο του κωδικού πρόσβασης στο πορτοφόλι" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "Επεξεργασία υπολογιστή" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "Θέλετε να διαγράψετε τη ρύθμιση για τον υπολογιστή «%1»;" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "Διαγραφή υπολογιστή" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "Να επιλεγούν όλοι οι εξυπηρετητές που θα χρησιμοποιηθούν:" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "&Προσθήκη υπολογιστή..." + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "&Επεξεργασία υπολογιατή..." + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "Διαγ&ραφή υπολογιστή" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Χρήστης:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "Σύνδεση DN:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Περιοχή:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Κωδικός πρόσβασης:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Υπολογιστής:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Θύρα:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "Έκδοση LDAP:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Προκαθορισμένο" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Όριο μεγέθους:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " δευτ" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Προκαθορισμένο" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Χρονικό όριο:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Χωρίς σελιδοποίηση" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Μέγεθος σελίδας:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Αίτηση Εξυπηρετητή" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Φίλτρο:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Όχι" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "Ασφάλεια:" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Ανώνυμη" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Απλή" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "Ταυτοποίηση:" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "Μηχανισμός SASL:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "Επιλογή εξυπηρετητή" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "Ερώτημα LDAP" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Άγνωστο σφάλμα κατά τη σύνδεση στο %1" + +#~ msgid "LDAP Servers" +#~ msgstr "LDAP εξυπηρετητές" + +#~ msgid "Attribute" +#~ msgstr "Ιδιότητα" + +#~ msgid "Value" +#~ msgstr "Τιμή" + +#~ msgid "Distinguished Name" +#~ msgstr "Διακριτό όνομα" + +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "Μη διαθέσιμη υποστήριξη SASL. Παρακαλώ κάντε μεταγλώττιση το libkldap με " +#~ "τις βιβλιοθήκες Cyrus-SASL (ή συμβατές), ή ζητήστε εξηγήσεις από τη " +#~ "διανομή σας." + +#~ msgid "LDAP Operations error" +#~ msgstr "Σφάλμα λειτουργίας LDAP" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Server Settings" +#~ msgstr "Έκδοση LDAP:" + +#, fuzzy +#~| msgid "User:" +#~ msgid "User ID" +#~ msgstr "Χρήστης:" diff --git a/po/en_GB/kio_ldap.po b/po/en_GB/kio_ldap.po new file mode 100644 index 0000000..cb1bc0b --- /dev/null +++ b/po/en_GB/kio_ldap.po @@ -0,0 +1,76 @@ +# translation of kio_ldap.po to British English +# Malcolm Hunter , 2004, 2005. +# Andrew Coles , 2004, 2009. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2009-03-08 16:45+0000\n" +"Last-Translator: Andrew Coles \n" +"Language-Team: British English \n" +"Language: en_GB\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Additional info: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP Login" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "site:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Invalid authorisation information." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "LDAP connection cancelled." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "The Ldif parser failed." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Invalid Ldif file in line %1." + +#~ msgid "Cannot set LDAP protocol version %1" +#~ msgstr "Cannot set LDAP protocol version %1" + +#~ msgid "Cannot set size limit." +#~ msgstr "Cannot set size limit." + +#~ msgid "Cannot set time limit." +#~ msgstr "Cannot set time limit." + +#~ msgid "SASL authentication not compiled into the ldap ioslave." +#~ msgstr "SASL authentication not compiled into the ldap ioslave." diff --git a/po/en_GB/libkldap5.po b/po/en_GB/libkldap5.po new file mode 100644 index 0000000..a5da8bc --- /dev/null +++ b/po/en_GB/libkldap5.po @@ -0,0 +1,328 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Steve Allewell , 2014, 2017, 2018, 2019, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2021-07-31 16:36+0100\n" +"Last-Translator: Steve Allewell \n" +"Language-Team: British English \n" +"Language: en_GB\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 21.04.3\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "No LDAP Support..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "An error occurred during the connection initialisation phase." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Cannot set protocol version to %1." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Cannot set timeout to %1 second." +msgstr[1] "Cannot set timeout to %1 seconds." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "Could not set CA certificate file." + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "Invalid TLS require certificate mode." + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "Could not set TLS require certificate mode." + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "Could not initialise new TLS context." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "TLS support not available in the LDAP client libraries." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Cannot set size limit." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Cannot set time limit." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Cannot initialise the SASL client." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "Cannot access to server. Please reconfigure it." + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "Add Host" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "Store clear text password in Wallet" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "Edit Host" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "Do you want to remove setting for host \"%1\"?" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "Remove Host" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "Tick all servers that should be used:" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "&Add Host..." + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "&Edit Host..." + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "&Remove Host" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "User:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "Bind DN:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Realm:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Password:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Host:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Port:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "LDAP version:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Default" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Size limit:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " sec" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Default" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Time limit:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "No paging" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Page size:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Query Server" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Filter:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "No" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "Security:" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anonymous" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Simple" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "Authentication:" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "SASL mechanism:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "Check server" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "LDAP Query" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Unknown error connecting %1" + +#~ msgid "LDAP Servers" +#~ msgstr "LDAP Servers" + +#~ msgid "Attribute" +#~ msgstr "Attribute" + +#~ msgid "Value" +#~ msgstr "Value" + +#~ msgid "Distinguished Name" +#~ msgstr "Distinguished Name" + +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." + +#~ msgid "LDAP Operations error" +#~ msgstr "LDAP Operations error" diff --git a/po/eo/kio_ldap.po b/po/eo/kio_ldap.po new file mode 100644 index 0000000..9e4c2f9 --- /dev/null +++ b/po/eo/kio_ldap.po @@ -0,0 +1,61 @@ +# Translation of kio_ldap into esperanto. +# Axel Rousseau , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2009-11-15 12:06+0100\n" +"Last-Translator: Axel Rousseau \n" +"Language-Team: esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: pology\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "retejo:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "" + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "" + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "" + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "" diff --git a/po/eo/libkldap5.po b/po/eo/libkldap5.po new file mode 100644 index 0000000..d0cc959 --- /dev/null +++ b/po/eo/libkldap5.po @@ -0,0 +1,322 @@ +# Translation of libkldap into esperanto. +# Axel Rousseau , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2009-11-15 12:06+0100\n" +"Last-Translator: Axel Rousseau \n" +"Language-Team: esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: pology\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "" + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "" + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "" + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "" +msgstr[1] "" + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "" + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "" + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "" + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "" + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "" + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "" + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "" + +#: widgets/addhostdialog.cpp:64 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Add Host" +msgstr "Gastigo:" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:97 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Edit Host" +msgstr "Gastigo:" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:315 +#, fuzzy, kde-format +#| msgid "Host:" +msgid "&Add Host..." +msgstr "Gastigo:" + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Uzanto:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Pasvorto:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Gastigo:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Pordo:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " s" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Tempolimo:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Paĝgrando" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Filtrilo:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, fuzzy, kde-format +#| msgid "Security" +msgid "Security:" +msgstr "Sekureco" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, fuzzy, kde-format +#| msgid "Authentication" +msgid "Authentication:" +msgstr "Aŭtentigo" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:309 +#, fuzzy, kde-format +#| msgid "LDAP Query" +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "LDAP Query" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "" + +#, fuzzy +#~| msgid "LDAP Query" +#~ msgid "LDAP Servers" +#~ msgstr "LDAP Query" + +#~ msgid "Attribute" +#~ msgstr "Atributo" + +#~ msgid "Value" +#~ msgstr "Valoro" + +#, fuzzy +#~| msgid "User:" +#~ msgid "User ID" +#~ msgstr "Uzanto:" diff --git a/po/es/docs/kioslave5/ldap/index.docbook b/po/es/docs/kioslave5/ldap/index.docbook new file mode 100644 index 0000000..57750a1 --- /dev/null +++ b/po/es/docs/kioslave5/ldap/index.docbook @@ -0,0 +1,68 @@ + + + +]> + +
+ldap + + +&Lauri.Watts; &Lauri.Watts.mail; + Marcos Fouces Lago
mfouces@yahoo.es
Traductor
JavierViñal
fjvinal@gmail.com
Traductor
+
+
+ +ldap es un protocolo ligero de acceso a directorios. Proporciona acceso a un directorio X.500, o a un servidor LDAP. + +Puede utilizar el ioslave ldap del siguiente modo: + +ldap://maquina:puerto/ou=People,o=where,c=de??sub para una petición de un subárbol + +o ldap://maquina:puerto/cn=MM,ou=People,o=where,c=de??base para obtener una rama completa. + +
diff --git a/po/es/kio_ldap.po b/po/es/kio_ldap.po new file mode 100644 index 0000000..a654724 --- /dev/null +++ b/po/es/kio_ldap.po @@ -0,0 +1,70 @@ +# translation of kio_ldap.po to Spanish +# Translation of kio_ldap to Spanish +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Enrique Matias Sanchez (aka Quique) , 2007. +# Jaime Robles , 2007. +# Javier Vinal , 2011, 2016. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2016-01-07 13:29+0100\n" +"Last-Translator: Javier Vinal \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 2.0\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Información adicional: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"El servidor LDAP devolvió el error: %1 %2\n" +"El URL de LDAP era: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "Inicio de sesión LDAP" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "sitio:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Información de autorización no válida." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "La conexión LDAP fue cancelada." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "El analizador de LDIF ha fallado." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Archivo LDIF no válido en la línea %1." diff --git a/po/es/libkldap5.po b/po/es/libkldap5.po new file mode 100644 index 0000000..6ad2817 --- /dev/null +++ b/po/es/libkldap5.po @@ -0,0 +1,334 @@ +# translation of libkldap.po to Español +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Santiago Fernández Sancho , 2007, 2008. +# Dario Andres Rodriguez , 2008, 2009. +# Adrián Martínez , 2010. +# Javier Vinal , 2011, 2012, 2013, 2014, 2016, 2017, 2018. +# Eloy Cuadra , 2019, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2021-07-28 23:54+0200\n" +"Last-Translator: Eloy Cuadra \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 21.07.80\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "Sin reconocimiento de LDAP..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Se produjo un error durante la fase de inicialización de la conexión." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "No se puede cambiar la versión del protocolo a %1." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "No se puede establecer el tiempo de espera a %1 segundo." +msgstr[1] "No se puede establecer el tiempo de espera %1 segundos." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "No se ha podido establecer el archivo de certificado de la CA." + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "TLS inválido exige modo de certificado." + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "No se ha podido establecer el modo de certificado exigido TLS." + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "No se ha podido inicializar el nuevo contexto TLS." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "" +"No está disponible el reconocimiento de TLS en las bibliotecas del cliente " +"LDAP." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "No se puede establecer el límite de tamaño." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "No se puede establecer el límite de tamaño." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "No se puede inicializar el cliente SASL." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"No se compiló el reconocimiento de LDAP. Por favor, vuelva a compilar " +"libkldap con las bibliotecas cliente de OpenLDAP (o compatible), o consulte " +"a los empaquetadores de su distribución." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "No se puede acceder al servidor. Por favor, reconfigúrelo." + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "Añadir servidor" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" +"La contraseña LDAP se guarda como texto sin cifrar. ¿Desea guardarla en " +"KWallet?" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "Guardar contraseñas sin cifrar en la cartera" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "Editar servidor" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "¿Desea eliminar las preferencias del servidor «%1»?" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "Eliminar servidor" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "Marque todos los servidores que se van a usar:" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "&Añadir servidor..." + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "&Editar servidor..." + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "E&liminar servidor" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Usuario:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "DN de enlace:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Dominio:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Contraseña:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Servidor:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Puerto:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "Versión LDAP:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Predeterminado" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Límite de tamaño:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " seg" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Predeterminado" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Límite de tiempo:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Sin paginación" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Tamaño de página:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Servidor de consultas" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Filtro:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "No" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "Seguridad:" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anónimo" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Sencillo" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "Autenticación:" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "Mecanismo SASL:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "Comprobar el servidor" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "Petición LDAP" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Error desconocido conectando a %1" + +#~ msgid "LDAP Servers" +#~ msgstr "Servidores LDAP" + +#~ msgid "Attribute" +#~ msgstr "Atributo" + +#~ msgid "Value" +#~ msgstr "Valor" + +#~ msgid "Distinguished Name" +#~ msgstr "Nombre ilustre" + +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "No se compiló el reconocimiento de SASL. Vuelva a compilar libkldap con " +#~ "las bibliotecas cliente de Cyrus-SASL (o compatible), o consulte a los " +#~ "empaquetadores de su distribución." diff --git a/po/et/docs/kioslave5/ldap/index.docbook b/po/et/docs/kioslave5/ldap/index.docbook new file mode 100644 index 0000000..f201e82 --- /dev/null +++ b/po/et/docs/kioslave5/ldap/index.docbook @@ -0,0 +1,54 @@ + + + +]> + +
+ldap + + +&Lauri.Watts; &Lauri.Watts.mail; +MarekLaane
bald@online.ee
Tõlge eesti keelde
+
+
+ +ldap tähendab lihtsustatud kataloogisirvimise protokoll (inglise keeles lightweight directory access protocol). See võimaldab ligipääsu X.500 kataloogile või autonoomsele LDAP serverile. + +KIO moodulit ldap saab kasutada nii: + +ldap://masin:port/ou=People,o=where,c=de??sub alampuu päringuks + +või ldap://masin:port/cn=MM,ou=People,o=where,c=de??base kogu haru päringuks. + +
diff --git a/po/et/kio_ldap.po b/po/et/kio_ldap.po new file mode 100644 index 0000000..c2d3cf5 --- /dev/null +++ b/po/et/kio_ldap.po @@ -0,0 +1,78 @@ +# translation of kio_ldap.po to Estonian +# Copyright (C) 2004 Free Software Foundation, Inc. +# Marek Laane , 2004-2005,2007. +# +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2007-11-19 00:02+0200\n" +"Last-Translator: Marek Laane \n" +"Language-Team: Estonian \n" +"Language: et\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.3\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Lisainfo: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP server tagastas järgmise vea: %1 %2\n" +"LDAP URL oli: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP sisselogimine" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "sait:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Vigane autentimisinfo." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "LDAB ühendus katkestatud" + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Ldif parsija jäi jänni." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Vigane Ldif-fail real %1." + +#~ msgid "Cannot set LDAP protocol version %1" +#~ msgstr "Ei õnnestunud määrata LDAP protokolli versiooni %1" + +#~ msgid "Cannot set size limit." +#~ msgstr "Ei õnnestunud määrata suuruselimiiti." + +#~ msgid "Cannot set time limit." +#~ msgstr "Ei õnnestunud määrata ajalimiiti." + +#~ msgid "SASL authentication not compiled into the ldap ioslave." +#~ msgstr "SASL autentimine ei ole LDAP IO moodulisse kompileeritud." diff --git a/po/et/libkldap5.po b/po/et/libkldap5.po new file mode 100644 index 0000000..f76e08e --- /dev/null +++ b/po/et/libkldap5.po @@ -0,0 +1,344 @@ +# translation of libkldap.po to Estonian +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Marek Laane , 2007-2008, 2009, 2014, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2020-06-13 19:41+0300\n" +"Last-Translator: Marek Laane \n" +"Language-Team: Estonian \n" +"Language: et\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 19.12.3\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "LDAP-i toetus puudub..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Ühenduse initsialiseerimise ajal tekkis viga." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Protokollile versiooni %1 määramine nurjus." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Aegumise määramine %1 sekundile nurjus." +msgstr[1] "Aegumise määramine %1 sekundile nurjus." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "SK sertifikaadifaili määramine nurjus." + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "Vigane TLS päringu sertifikaadi režiim." + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "TLS päringu sertifikaadi režiimi määramine nurjus." + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "Uue TLS konteksti initsialiseerimine nurjus." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "TLS-i toetus pole LDAP-i kliendi teekides saadaval." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Suuruselimiidi määramine nurjus." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Ajalimiidi määramine nurjus." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "SASL kliendi initsialiseerimine nurjus." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"LDAP-i toetus pole saadaval... Palun kompileeri libkldap OpenLDAP-i või " +"sellega ühilduva kliendi teekidega või kurda muret oma distributsiooni " +"pakendajatele." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "Ligipääs serverile puudub. Palun muuda seadistusi." + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "Masina lisamine" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" +"LDAP-i parool on salvestatud lihttekstina, kas soovid salvestada selle KDE " +"turvalaekasse?" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, fuzzy, kde-format +#| msgid "Store clear text password in KWallet" +msgid "Store clear text password in Wallet" +msgstr "Lihttekstis parooli salvestamine KDE turvalaekasse" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "Masina muutmine" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "Kas eemaldada masina \"%1\" seadistus?" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "Masina eemaldamine" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "Kõigi kasutatavate serverite kontroll:" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "&Lisa masin ..." + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "&Muuda masinat ..." + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "&Eemalda masin" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Kasutaja:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "Bind DN:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Tsoon:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Parool:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Masin:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Port:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "LDAP versioon:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Vaikimisi" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Suuruselimiit:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " sek" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Vaikimisi" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Ajalimiit:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Ei saalita" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Saale suurus:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Serveri päring" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Filter:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Puudub" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, fuzzy, kde-format +#| msgid "Security" +msgid "Security:" +msgstr "Turvalisus" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anonüümne" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Lihtne" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, fuzzy, kde-format +#| msgid "Authentication" +msgid "Authentication:" +msgstr "Autentimine" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "SASL mehhanism:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "Serveri kontroll" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "LDAP-i päring" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Tundmatu tõrge ühendumisel serveriga %1" + +#~ msgid "LDAP Servers" +#~ msgstr "LDAP-serverid" + +#~ msgid "Attribute" +#~ msgstr "Atribuut" + +#~ msgid "Value" +#~ msgstr "Väärtus" + +#~ msgid "Distinguished Name" +#~ msgstr "Eraldusnimi" + +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "SASL-i toetus pole saadaval. Palun kompileeri libkldap Cyrus-SASL-i või " +#~ "sellega ühilduva kliendi teekidega või kurda muret oma distributsiooni " +#~ "pakendajatele." + +#~ msgid "LDAP Operations error" +#~ msgstr "LDAP-i toimingute viga" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Server Settings" +#~ msgstr "LDAP versioon:" + +#, fuzzy +#~| msgid "User:" +#~ msgid "User ID" +#~ msgstr "Kasutaja:" diff --git a/po/eu/kio_ldap.po b/po/eu/kio_ldap.po new file mode 100644 index 0000000..cc7e5b4 --- /dev/null +++ b/po/eu/kio_ldap.po @@ -0,0 +1,72 @@ +# Translation for kio_ldap.po to Euskara/Basque (eu). +# Copyright (C) 2004-2022 This file is copyright: +# This file is distributed under the same license as the original file. +# KDE euskaratzeko proiektuko arduraduna . +# +# Translators: +# Marcos , 2004. +# Juan Irigoien , 2004. +# marcos , 2006. +# Iñigo Salvador Azurmendi , 2022. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2022-09-11 08:05+0200\n" +"Last-Translator: Iñigo Salvador Azurmendi \n" +"Language-Team: Basque \n" +"Language: eu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 22.08.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Informazio gehigarria: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP zerbitzariak errore hau eman du: %1 %2\n" +"LDAP URLa hau zen: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP saio-hasiera" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "lekua:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Baimentze informazio baliogabea." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "LDAP konexioa bertan behera utzi da." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "LDIF analizatzaileak huts egin du." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "LDIF fitxategi baliogabea %1 lerroan." diff --git a/po/eu/libkldap5.po b/po/eu/libkldap5.po new file mode 100644 index 0000000..7107982 --- /dev/null +++ b/po/eu/libkldap5.po @@ -0,0 +1,308 @@ +# Translation for libkldap5.po to Euskara/Basque (eu). +# Copyright (C) 2022 This file is copyright: +# This file is distributed under the same license as the kldap package. +# KDE euskaratzeko proiektuko arduraduna . +# +# Translators: +# Iñigo Salvador Azurmendi , 2022. +msgid "" +msgstr "" +"Project-Id-Version: kldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2022-09-11 08:25+0200\n" +"Last-Translator: Iñigo Salvador Azurmendi \n" +"Language-Team: Basque \n" +"Language: eu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 22.08.0\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "LDAP euskarririk ez..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Errore bat gertatu da konexioa hasieratzeko fasean." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Ezin da protokoloaren bertsioa %1(e)an ezarri." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Denbora-muga ezin da segundo %1 ezarri." +msgstr[1] "Denbora-muga ezin da %1 segundo ezarri." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "Ezin du CA ziurtagiri fitxategia ezarri." + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "TLSek ziurtagiri modua behar du baliogabea." + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "Ezin du ezarri TLSek ziurtagiri modua behar du." + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "Ezin du hasieratu TLS testuinguru berria." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "TLS euskarria ez dago erabilgarri LDAP bezero liburutegietan." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Ezin du ezarri neurri-muga." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Ezin du ezarri denbora-muga." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Ezin du hasieratu SASL bezeroa." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"LDAP euskarria ez dago barnean konpilatuta. Mesedez, konpilatu berriz " +"«libkldap» OpenLDAP bezero liburutegiak (edo bateragarriak) erabili, edo " +"kexatu zure banaketaren paketatzaileei." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "Ezin du zerbitzaria atzitu. Mesedez, birkonfigura ezazu." + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "Gehitu ostalaria" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" +"LDAP pasahitza testu argi gisa gordeta dago, KWallet-en gorde nahi duzu?" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "Gorde zorroan testu-argiko pasahitza" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "Editatu ostalaria" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "\"%1\" ostalariaren ezarpena kendu nahi duzu?" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "Kendu ostalaria" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "Egiaztatu erabili beharreko zerbitzari guztiak:" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "&Gehitu ostalaria..." + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "&Editatu ostalaria..." + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "&Kendu ostalaria" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Erabiltzailea:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "Lotura DN:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Esparrua:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Pasahitza:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Ostalaria:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Ataka:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "LDAP bertsioa:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Lehenetsia" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Neurriaren muga:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " seg" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Lehenetsia" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Denbora-muga:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Orrikatzerik ez" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Orri-neurria:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Itaun zerbitzaria" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Iragazkia:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Ez" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "Segurtasuna:" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anonimoa" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Erraza" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "Autentifikazioa:" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "SASL mekanismoa:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "Egiaztatu zerbitzaria" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "LDAP itauna" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Errore ezezaguna %1(e)kin konektatzean" diff --git a/po/fa/kio_ldap.po b/po/fa/kio_ldap.po new file mode 100644 index 0000000..ca72532 --- /dev/null +++ b/po/fa/kio_ldap.po @@ -0,0 +1,67 @@ +# translation of kio_ldap.po to Persian +# Nazanin Kazemi , 2006, 2007. +# MaryamSadat Razavi , 2006. +# Tahereh Dadkhahfar , 2006. +# Nasim Daniarzadeh , 2006. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2007-06-13 15:37+0330\n" +"Last-Translator: Nazanin Kazemi \n" +"Language-Team: Persian \n" +"Language: fa\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=1; plural=0;\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"اطلاعات اضافی: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"کارساز LDAP خطای: %1 %2 را بازگرداند\n" +"نشانی وب LDAP عبارت بود از: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "ورود LDAP" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "پایگاه:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "اطلاعات احراز هویت نامعتبر." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "اتصال LDAP لغو شد." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "خرابی در تجزیه‌کننده Ldif." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "پرونده Ldif نامعتبر در خط %1." diff --git a/po/fi/kio_ldap.po b/po/fi/kio_ldap.po new file mode 100644 index 0000000..3413088 --- /dev/null +++ b/po/fi/kio_ldap.po @@ -0,0 +1,67 @@ +# translation of kio_ldap.po to +# Ilpo Kantonen , 2004, 2005. +# Mikko Piippo , 2007. +# KDE Finnish translation sprint participants: +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2013-01-20 20:04:10+0000\n" +"Last-Translator: Mikko Piippo \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-POT-Import-Date: 2012-12-01 22:25:17+0000\n" +"X-Generator: MediaWiki 1.21alpha (963ddae); Translate 2012-11-08\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Lisätiedot: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP-palvelin palautti virheen: %1 %2\n" +"LDAP URL oli: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP Sisäänkirjautuminen" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "kohde:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Virheelliset kirjautumistiedot." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "LDAP-yhteys peruttu." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "LDIF-jäsentäjä epäonnistui." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Virheellinen LDIF-tiedosto rivillä %1." diff --git a/po/fi/libkldap5.po b/po/fi/libkldap5.po new file mode 100644 index 0000000..9564b38 --- /dev/null +++ b/po/fi/libkldap5.po @@ -0,0 +1,332 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# Tommi Nieminen , 2010, 2015, 2017, 2018, 2020, 2021. +# Lasse Liehu , 2013, 2014. +# +# KDE Finnish translation sprint participants: +# Author: Artnay +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2021-08-22 21:01+0300\n" +"Last-Translator: Tommi Nieminen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-POT-Import-Date: 2012-12-01 22:25:20+0000\n" +"X-Generator: Lokalize 20.04.2\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "Ei LDAP-tukea…" + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Sattui virhe alustettaessa yhteyttä." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Yhteyskäytännön versioksi ei voi asettaa %1." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Aikakatkaisua ei voi asettaa %1 sekuntiin." +msgstr[1] "Aikakatkaisua ei voi asettaa %1 sekuntiin." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "CA-varmennetiedostoa ei voitu asettaa." + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "Virheellinen TLS:n vaatima varmennetila." + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "TLS:n vaatimaa varmennetilaa ei voitu asettaa." + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "Uutta TLS-kontekstia ei voitu alustaa." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "TLS-tukea ei ole saatavilla LDAP-asiakaskirjastoissa." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Kokorajoitusta ei voi asettaa." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Aikarajoitusta ei voi asettaa." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "SASL-asiakasta ei voi alustaa." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"LDAP-tukea ei ole käännetty. Käännä libkldap uudelleen OpenLDAP- tai " +"yhteensopivalla asiakaskirjastolla tai valita jakelusi paketoijille." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "Palvelimeen ei saa yhteyttä: määritä sen asetukset uudelleen." + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "Lisää palvelin" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" +"LDAP-salasana tallennetaan salaamattomana tekstinä: haluatko tallentaa sen " +"lompakkoon?" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "Tallenna salasana salaamattomana lompakkoon" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "Muokkaa palvelinta" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "Haluatko poistaa asetuksen palvelimelta ”%1”?" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "Poista palvelin" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "Valitse kaikki palvelimet, joita tulisi käyttää:" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "L&isää palvelin…" + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "&Muokkaa palvelinta…" + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "P&oista palvelin" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Käyttäjä:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "Bind DN:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Alue:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Salasana:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Palvelin:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Portti:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "LDAP-versio:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Oletus" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Kokorajoitus:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " s" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Oletus" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Aikarajoitus:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Ei sivutusta" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Sivutuksen koko:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Kysy palvelimelta" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Suodatin:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Ei" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "Salaus:" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Nimetön" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Yksinkertainen" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "Todennus:" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "SASL-mekanismi:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "Tarkista palvelin" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "LDAP-kysely" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Tuntematon virhe yhdistettäessä palvelimeen %1" + +#~ msgid "LDAP Servers" +#~ msgstr "LDAP-palvelimet" + +#~ msgid "Attribute" +#~ msgstr "Määrite" + +#~ msgid "Value" +#~ msgstr "Arvo" + +#~ msgid "Distinguished Name" +#~ msgstr "DN-nimi" + +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "SASL-tukea ei ole saatavilla. Käännä libkldap uudelleen Cyrus-SASL- tai " +#~ "yhteensopivalla asiakaskirjastolla tai valita jakelusi paketoijille." + +#~ msgid "LDAP Operations error" +#~ msgstr "LDAP-toimenpiteen virhe" diff --git a/po/fr/docs/kioslave5/ldap/index.docbook b/po/fr/docs/kioslave5/ldap/index.docbook new file mode 100644 index 0000000..e619b79 --- /dev/null +++ b/po/fr/docs/kioslave5/ldap/index.docbook @@ -0,0 +1,42 @@ + + + +]> + +
+ldap + + +&Lauri.Watts; &Lauri.Watts.mail; +&traducteurEquipeKDE; + + + +ldap est le protocole allégé d'accès à des annuaires (en anglais lightweight directory access protocol). Il permet d'accéder à un annuaire X.500, ou à un serveur LDAP autonome. + +Vous pouvez utiliser le module d'entrée / sortie ldap comme suit : + +ldap://host:port/ou=People,o=where,c=de??sub pour une requête de sous-arbre + +ou ldap://host:port/cn=MM,ou=People,o=where,c=de??base pour une branche complète. + +
diff --git a/po/fr/kio_ldap.po b/po/fr/kio_ldap.po new file mode 100644 index 0000000..1741427 --- /dev/null +++ b/po/fr/kio_ldap.po @@ -0,0 +1,72 @@ +# translation of kio_ldap.po to +# translation of kio_ldap.po to Français +# traduction de kio_ldap.po en Français +# Matthieu Robin , 2004. +# Nicolas Ternisien , 2005. +# Sébastien Renard , 2007. +# xavier , 2013. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2013-06-06 14:21+0200\n" +"Last-Translator: xavier \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Lokalize 1.5\n" +"X-Environment: kde\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Informations supplémentaires : " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"Le serveur « LDAP » a retourné l'erreur suivante : %1 %2\n" +"L'URL « LDAP » était : %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "Connexion « LDAP »" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "site :" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Informations d'identification non valables." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "Connexion « LDAP » annulée." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Échec de l'analyseur « LDIF »." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Fichier « LDIF » non valable à la ligne %1." diff --git a/po/fr/libkldap5.po b/po/fr/libkldap5.po new file mode 100644 index 0000000..ca24146 --- /dev/null +++ b/po/fr/libkldap5.po @@ -0,0 +1,353 @@ +# translation of libkldap.po to Francais +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# Johann Schaeffer , 2007, 2008. +# Sébastien Renard , 2008. +# Mickael Sibelle , 2008. +# xavier , 2012, 2013, 2020, 2021. +# Vincent Pinon , 2017, 2018. +# Simon Depiets , 2018, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2021-07-29 18:04+0200\n" +"Last-Translator: Xavier Besnard \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Lokalize 21.07.80\n" +"X-Environment: kde\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "Aucune prise en charge du « LDAP »..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "" +"Une erreur s'est produite pendant la phase d'initialisation de connexion." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Impossible de définir la version du protocole à %1." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Impossible de régler le temps d'attente limite à %1 seconde." +msgstr[1] "Impossible de régler le temps d'attente limite à %1 secondes." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "Impossible de définir le fichier de certificat CA." + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "Mode de certificat exigé par TLS non valable." + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "Impossible de définir le mode de certificat exigé par TLS." + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "Impossible d'initialiser un nouveau contexte TLS." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "" +"L'option « TLS » n'est pas disponible dans les bibliothèques du client LDAP." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Impossible de régler la taille limite." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Impossible de régler le temps limite." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Impossible d'initialiser le client « SASL »." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"La gestion du LDAP n'a pas été compilée avec cette application. Veuillez re-" +"compiler « libkldap » avec les bibliothèques du client « OpenLDAP » (ou " +"compatible) ou reporter ce souci aux responsables de paquets de votre " +"distribution." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "Impossible d'accéder au serveur. Veuillez le reconfigurer." + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "Ajouter un hôte" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" +"Le mot de passe « LDAP » est enregistré comme texte en clair. Voulez-vous " +"l'enregistrer dans « kwallet » ?" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "Enregistrer le mot de passe comme texte en clair dans le portefeuille" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "Modifier un hôte" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "Voulez-vous vraiment supprimer les paramètres pour l'hôte « %1 » ?" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "Supprimer un hôte" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "Vérifier tous les serveurs devant être utilisés :" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "&Ajouter un hôte..." + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "Modifi&er un hôte..." + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "Supp&rimer un hôte" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Utilisateur :" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "Nom de domaine de connexion :" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Domaine :" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Mot de passe :" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Hôte :" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr " Port :" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "Version LDAP :" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Par défaut" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Taille limite :" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " seconde" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Par défaut" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Temps limite :" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Aucune pagination" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Taille de la page :" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Interroger un serveur" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "Nom de domaine :" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Filtre :" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Non" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "Chiffrement « TLS »" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "Sécurité :" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anonyme" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Simple" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "Authentification :" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "Mécanisme « SASL » :" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "Vérifier le serveur" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "Requête LDAP" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Erreur inconnue lors de la connexion %1" + +#~ msgid "LDAP Servers" +#~ msgstr "Serveurs LDAP" + +#~ msgid "Attribute" +#~ msgstr "Attribut" + +#~ msgid "Value" +#~ msgstr "Valeur" + +#~ msgid "Distinguished Name" +#~ msgstr "Nom distinctif" + +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "La prise en charge de « SASL » est indisponible. Veuillez re-compiler " +#~ "« libkldap » avec les bibliothèques du client « Cyrus-SASL » (ou " +#~ "compatible) ou reporter ce souci aux responsables de paquets de votre " +#~ "distribution." + +#~ msgid "LDAP Operations error" +#~ msgstr "Erreur d'opérations LDAP" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Server Settings" +#~ msgstr "Version LDAP :" + +#, fuzzy +#~| msgid "User:" +#~ msgid "User ID" +#~ msgstr "Utilisateur :" diff --git a/po/fy/kio_ldap.po b/po/fy/kio_ldap.po new file mode 100644 index 0000000..eb6d8e8 --- /dev/null +++ b/po/fy/kio_ldap.po @@ -0,0 +1,80 @@ +# translation of kio_ldap.po to Dutch +# translation of kio_ldap.po to +# +# Rinse de Vries , 2005, 2006. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2006-01-30 09:07+0100\n" +"Last-Translator: Berend Ytsma \n" +"Language-Team: Dutch \n" +"Language: fy\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.1\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Oanfoljende ynformaasje:" + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"De LDAP-tjinner kaam mei de folgjende flater: %1 %2\n" +"De LDAP URL wie: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP-oanmelde" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "side:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Unjildige autorisaasje-ynformaasje." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "" + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, fuzzy, kde-format +#| msgid "The LDIF parser failed." +msgid "The Ldif parser failed." +msgstr "De LDIF-ûntleding is mislearre." + +#: kio_ldap.cpp:680 +#, fuzzy, kde-format +#| msgid "Invalid LDIF file in line %1." +msgid "Invalid Ldif file in line %1." +msgstr "Unjildige LDIF-triem op rigel %1." + +#~ msgid "Cannot set LDAP protocol version %1" +#~ msgstr "LDAP-protokol ferzje %1 kin net ynsteld wurde" + +#~ msgid "Cannot set size limit." +#~ msgstr "It gruttelimyt kinnet ynsteld wurde." + +#~ msgid "Cannot set time limit." +#~ msgstr "It tiidslimyt kinnet ynsteld wurde." + +#~ msgid "SASL authentication not compiled into the ldap ioslave." +#~ msgstr "De io-slave ldap befettet gjin SASL-ferifikaasje." diff --git a/po/ga/kio_ldap.po b/po/ga/kio_ldap.po new file mode 100644 index 0000000..5ec4682 --- /dev/null +++ b/po/ga/kio_ldap.po @@ -0,0 +1,66 @@ +# Irish translation of kio_ldap +# Copyright (C) 2009 This_file_is_part_of_KDE +# This file is distributed under the same license as the kio_ldap package. +# Kevin Scannell , 2009. +msgid "" +msgstr "" +"Project-Id-Version: kdepimlibs/kio_ldap.po\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2007-09-11 07:48-0500\n" +"Last-Translator: Kevin Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n < 11 ? " +"3 : 4\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Eolas breise: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"D'aischur an freastalaí LDAP an earráid seo: %1 %2\n" +"Seo é an URL LDAP: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "Logáil Isteach LDAP" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "suíomh:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Eolas neamhbhailí údaraithe." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "Cealaíodh an ceangal LDAP." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Theip an parsálaí Ldif." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Comhad neamhbhailí Ldif: líne %1." diff --git a/po/ga/libkldap5.po b/po/ga/libkldap5.po new file mode 100644 index 0000000..65f0ceb --- /dev/null +++ b/po/ga/libkldap5.po @@ -0,0 +1,341 @@ +# Irish translation of libkldap +# Copyright (C) 2009 This_file_is_part_of_KDE +# This file is distributed under the same license as the libkldap package. +# Kevin Scannell , 2009. +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2007-04-15 19:05-0500\n" +"Last-Translator: Kevin Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n < 11 ? " +"3 : 4\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "Gan tacaíocht LDAP..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Tharla earráid le linn túsú an cheangail." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Ní féidir leagan an phrótacail a shocrú mar %1." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Ní féidir teorainn ama a shocrú mar %1 soicind." +msgstr[1] "Ní féidir teorainn ama a shocrú mar %1 shoicind." +msgstr[2] "Ní féidir teorainn ama a shocrú mar %1 shoicind." +msgstr[3] "Ní féidir teorainn ama a shocrú mar %1 soicind." +msgstr[4] "Ní féidir teorainn ama a shocrú mar %1 soicind." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "" + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:308 +#, fuzzy, kde-format +#| msgid "Cannot initialize the SASL client." +msgid "Could not initialize new TLS context." +msgstr "Ní féidir an cliant SASL a thúsú." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "Níl tacaíocht TLS ar fáil sna leabharlanna cliaint LDAP." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Ní féidir teorainn méide a shocrú." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Ní féidir teorainn ama a shocrú." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Ní féidir an cliant SASL a thúsú." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"Níl tacaíocht LDAP ar fáil...Ba chóir duit libkldap a thiomsú arís leis na " +"leabharlanna cliaint OpenLDAP (nó ceann comhoiriúnach), nó gearán a dhéanamh " +"le pacáisteoirí do dháileadh." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "Ní féidir an freastalaí a rochtain. Cumraigh é arís." + +#: widgets/addhostdialog.cpp:64 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Add Host" +msgstr "Óstríomhaire:" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Úsáideoir:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "DN ceangail:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Flaitheas:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Focal Faire:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Óstríomhaire:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Port:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "Leagan LDAP:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Réamhshocrú" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Uasmhéid:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " s" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Réamhshocrú" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Teorainn ama:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Gan leathanaigh" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Méid an leathanaigh:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Freastalaí na nIarratas" + +# translated below +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "AA:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Scagaire:" + +# "None" +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Gan Slándáil" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, fuzzy, kde-format +#| msgid "Security" +msgid "Security:" +msgstr "Slándáil" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Gan ainm" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Simplí" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, fuzzy, kde-format +#| msgid "Authentication" +msgid "Authentication:" +msgstr "Fíordheimhniú" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "Sásra SASL:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:309 +#, fuzzy, kde-format +#| msgid "LDAP Query" +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "Iarratas LDAP" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Servers" +#~ msgstr "Leagan LDAP:" + +#~ msgid "Attribute" +#~ msgstr "Aitreabúid" + +#~ msgid "Value" +#~ msgstr "Luach" + +# acronym above +#~ msgid "Distinguished Name" +#~ msgstr "Ainm Aitheanta" + +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "Níl tacaíocht SASL ar fáil. Ba chóir duit libkldap a thiomsú arís leis na " +#~ "leabharlanna cliaint Cyrus-SASL (nó ceann comhoiriúnach), nó gearán a " +#~ "dhéanamh le pacáisteoirí do dháileadh." + +#~ msgid "LDAP Operations error" +#~ msgstr "Earráid oibríochta LDAP" diff --git a/po/gl/docs/kioslave5/ldap/index.docbook b/po/gl/docs/kioslave5/ldap/index.docbook new file mode 100644 index 0000000..c3da1d1 --- /dev/null +++ b/po/gl/docs/kioslave5/ldap/index.docbook @@ -0,0 +1,54 @@ + + + +]> + +
+ldap + + +&Lauri.Watts; &Lauri.Watts.mail; +MarceVillarino
mvillarino@users.sourceforge.net
Tradutor do proxecto Trasno
+
+
+ +ldap é o lightweight directory access protocol. Fornece acceso a un directorio X.500, ou a un servidor LDAP independente. + +Pode empregar o kioslave ldap como segue: + +ldap://servidor:porto/ou=People,o=where,c=de??sub para pesquisar nunha sub-árbore + +ou ldap://servidor:porto/cn=MM,ou=People,o=where,c=de??base para unha galla completa. + +
diff --git a/po/gl/kio_ldap.po b/po/gl/kio_ldap.po new file mode 100644 index 0000000..6d27c3f --- /dev/null +++ b/po/gl/kio_ldap.po @@ -0,0 +1,67 @@ +# translation of kio_ldap.po to galician +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# mvillarino , 2007, 2008. +# Adrián Chaves (Gallaecio) , 2017, 2018. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2018-04-28 20:43+0100\n" +"Last-Translator: Adrian Chaves \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Información adicional: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"O servidor LDAP devolveu o seguinte erro: %1 %2\n" +"O URL de LDAP era: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "Acceso con LDAP" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "sitio:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Información de autorización incorrecta." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "Cancelouse a conexión LDAP." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "O procesador de LDIF fallou." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Ficheiro LDIF incorrecto na liña %1." diff --git a/po/gl/libkldap5.po b/po/gl/libkldap5.po new file mode 100644 index 0000000..10a9da3 --- /dev/null +++ b/po/gl/libkldap5.po @@ -0,0 +1,339 @@ +# translation of libkldap.po to galician +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# mvillarino , 2007, 2008. +# marce villarino , 2009. +# Adrián Chaves Fernández , 2015, 2017. +# Adrián Chaves (Gallaecio) , 2017, 2018. +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2018-04-22 11:09+0100\n" +"Last-Translator: Adrian Chaves \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "Non hai compatibilidade con LDAP…" + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Produciuse un erro durante a fase de inicialización da conexión." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Non se pode estabelecer a versión do protocolo como %1." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Non se pode estabelecer o límite de tempo en %1 segundo." +msgstr[1] "Non se pode estabelecer o límite de tempo en %1 segundos." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "" +"Non se puido definir o ficheiro de certificado de autoridade de " +"certificación." + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "Modo de requisito de certificado TLS incorrecto." + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "Non se puido estabelecer o modo de requisito de certificado TLS." + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "Non se puido inicializar o novo contexto de TLS." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "As bibliotecas LDAP do cliente non teñen compatibilidade con TLS." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Non se pode estabelecer o límite de tamaño." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Non se pode estabelecer o límite de tempo." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Non se pode inicializar o cliente de SASL." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"Non ten compatibilidade con LDAP compilada nas bibliotecas. Compile de novo " +"libkldap coas bibliotecas cliente de OpenLDAP (ou compatíbeis), ou " +"protéstalle aos empaquetadores da túa distribución." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "Non se pode acceder ao servidor. Por favor, reconfigúreo." + +#: widgets/addhostdialog.cpp:64 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Add Host" +msgstr "Servidor:" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Usuario:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "Nome de dominio vinculado:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Área de identificación compartida:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Contrasinal:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Servidor:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Porto:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "Versión de LDAP:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Predeterminado" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Límite de tamaño:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " s" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Predeterminado" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Límite de tempo:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Sen paxinación" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Tamaño da páxina:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Preguntar ao servidor" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "Nome distintivo:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Filtro:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Ningunha" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, fuzzy, kde-format +#| msgid "Security" +msgid "Security:" +msgstr "Seguridade" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anónimo" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Simple" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, fuzzy, kde-format +#| msgid "Authentication" +msgid "Authentication:" +msgstr "Autenticación" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "Mecanismo de SASL:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "Comprobar o servidor" + +#: widgets/ldapconfigwidget.cpp:309 +#, fuzzy, kde-format +#| msgid "LDAP Query" +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "Consulta LDAP" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Erro descoñecido ao conectar a %1" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Servers" +#~ msgstr "Versión de LDAP:" + +#~ msgid "Attribute" +#~ msgstr "Atributo" + +#~ msgid "Value" +#~ msgstr "Valor" + +#~ msgid "Distinguished Name" +#~ msgstr "Nome distintivo" + +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "A compatibilidade con SASL non está dispoñíbel. Por favor, compile de " +#~ "novo libkldap coas bibliotecas cliente de Cyrus-SASL (ou compatíbeis), ou " +#~ "protéstelles aos empaquetadores da súa distribución." + +#~ msgid "LDAP Operations error" +#~ msgstr "Erro na operación de LDAP" diff --git a/po/he/kio_ldap.po b/po/he/kio_ldap.po new file mode 100644 index 0000000..12ebe83 --- /dev/null +++ b/po/he/kio_ldap.po @@ -0,0 +1,79 @@ +# Translation of kio_ldap.po to Hebrew +# translation of kio_ldap.po to hebrew +# translation of kdialog.po to hebrew +# KDE Hebrew Localization Project +# +# In addition to the copyright owners of the program +# which this translation accompanies, this translation is +# Copyright (C) 2002 Meni Livne +# +# This translation is subject to the same Open Source +# license as the program which it accompanies. +# +# Diego Iastrubni , 2005. +# galion , 2005. +# tahmar1900 , 2006. +# Meni Livne , 2007. +# Elkana Bardugo , 2017. #zanata +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2017-05-16 07:05-0400\n" +"Last-Translator: Copied by Zanata \n" +"Language-Team: Hebrew \n" +"Language: he\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Zanata 3.9.6\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"מידע נוסף: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"שרת ה־LDAP החזיר את השגיאה: %1 %2 \n" +"כתובת ה־LDAP הייתה: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "כניסת LDAP" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "אתר:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "מידע זיהוי לא תקף." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "החיבור ל־LDAP בוטל." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "מפרק ה־Ldif נכשל." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "‏Ldif לא תקף בשורה %1." diff --git a/po/hi/kio_ldap.po b/po/hi/kio_ldap.po new file mode 100644 index 0000000..73b8a0d --- /dev/null +++ b/po/hi/kio_ldap.po @@ -0,0 +1,66 @@ +# translation of kio_ldap.po to Hindi +# +# G Karunakar , 2007. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2007-08-18 15:30+0530\n" +"Last-Translator: G Karunakar \n" +"Language-Team: Hindi \n" +"Language: hi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Hindi\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"अतिरिक्त जानकारी:" + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"एलडीएपी सर्वर ने निम्न त्रुटि लौटाया: %1 %2\n" +"एलडीएपी यूआरएल था: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "एलडीएपी लॉगइन" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "साइटः" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "अवैध प्रमाणीकरण जानकारी" + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "एलडीएपी कनेक्शन असफल" + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "एलडीआईएफ़ पारसर विफल" + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "पंक्ति %1 में अवैध एलडीआईएफ फ़ाइल है." diff --git a/po/hi/libkldap5.po b/po/hi/libkldap5.po new file mode 100644 index 0000000..ce83746 --- /dev/null +++ b/po/hi/libkldap5.po @@ -0,0 +1,337 @@ +# translation of libkldap.po to Hindi +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Ravishankar Shrivastava , 2008. +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2008-01-28 12:57+0530\n" +"Last-Translator: Ravishankar Shrivastava \n" +"Language-Team: Hindi \n" +"Language: hi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "कोई एलडीएपी समर्थन नहीं...." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "कनेक्शन को चालू करने के दौरान एक त्रुटि हुई." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "प्रोटोकॉल संस्करण %1 सेट नहीं किया जा सका." + +#: core/ldapconnection.cpp:257 +#, fuzzy, kde-format +#| msgid "Cannot set time limit." +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "समय सीमा नियत नहीं कर सका." +msgstr[1] "समय सीमा नियत नहीं कर सका." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "" + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:308 +#, fuzzy, kde-format +#| msgid "Cannot initialize the SASL client." +msgid "Could not initialize new TLS context." +msgstr "एसएएसएल क्लाएंट प्रारंभ नहीं किया जा सका." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "एलडीएपी क्लाएंट लाइब्रेरी में टीएलएस समर्थन उपलब्ध नहीं है." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "आकार सीमा नियत नहीं कर सका." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "समय सीमा नियत नहीं कर सका." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "एसएएसएल क्लाएंट प्रारंभ नहीं किया जा सका." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "" + +#: widgets/addhostdialog.cpp:64 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Add Host" +msgstr "होस्टः" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:97 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Edit Host" +msgstr "होस्टः" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:315 +#, fuzzy, kde-format +#| msgid "Host:" +msgid "&Add Host..." +msgstr "होस्टः" + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "उपयोक्ता:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "बाइंड डीएन:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "रीयल्म:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "पासवर्ड: " + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "होस्टः" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "पोर्टः" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "एलडीएपी संस्करण:" + +#: widgets/ldapconfigwidget.cpp:144 +#, fuzzy, kde-format +#| msgid "Default" +msgctxt "default ldap size limit" +msgid "Default" +msgstr "डिफ़ॉल्ट" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "आकार सीमा:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr "सेक." + +#: widgets/ldapconfigwidget.cpp:154 +#, fuzzy, kde-format +#| msgid "Default" +msgctxt "default ldap time limit" +msgid "Default" +msgstr "डिफ़ॉल्ट" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "समय सीमा:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "पेजिंग नहीं" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "पृष्ठ आकार:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "क्वैरी सर्वर" + +#: widgets/ldapconfigwidget.cpp:185 +#, fuzzy, kde-format +#| msgid "DN:" +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "डीएन:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "फ़िल्टर:" + +#: widgets/ldapconfigwidget.cpp:201 +#, fuzzy, kde-format +#| msgid "No" +msgctxt "@option:radio set no security" +msgid "No" +msgstr "नहीं" + +#: widgets/ldapconfigwidget.cpp:204 +#, fuzzy, kde-format +#| msgid "TLS" +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "टीएलएस" + +#: widgets/ldapconfigwidget.cpp:207 +#, fuzzy, kde-format +#| msgid "SSL" +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "एसएसएल" + +#: widgets/ldapconfigwidget.cpp:222 +#, fuzzy, kde-format +#| msgid "Security" +msgid "Security:" +msgstr "सुरक्षा" + +#: widgets/ldapconfigwidget.cpp:232 +#, fuzzy, kde-format +#| msgid "Anonymous" +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "अज्ञातनाम" + +#: widgets/ldapconfigwidget.cpp:235 +#, fuzzy, kde-format +#| msgid "Simple" +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "साधारण" + +#: widgets/ldapconfigwidget.cpp:238 +#, fuzzy, kde-format +#| msgid "SASL" +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "एसएसएल" + +#: widgets/ldapconfigwidget.cpp:241 +#, fuzzy, kde-format +#| msgid "Authentication" +msgid "Authentication:" +msgstr "प्रमाणीकरण" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "एसएएसएल मेकेनिज़्म" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:309 +#, fuzzy, kde-format +#| msgid "LDAP Query" +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "एलडीएपी क्वेरी" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Servers" +#~ msgstr "एलडीएपी संस्करण:" + +#~ msgid "LDAP Operations error" +#~ msgstr "एलडीएपी ऑपरेशन त्रुटि" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Server Settings" +#~ msgstr "एलडीएपी संस्करण:" + +#, fuzzy +#~| msgid "User:" +#~ msgid "User ID" +#~ msgstr "उपयोक्ता:" diff --git a/po/hne/kio_ldap.po b/po/hne/kio_ldap.po new file mode 100644 index 0000000..37fa166 --- /dev/null +++ b/po/hne/kio_ldap.po @@ -0,0 +1,66 @@ +# translation of kio_ldap.po to Hindi +# +# G Karunakar , 2007. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2007-08-18 15:30+0530\n" +"Last-Translator: G Karunakar \n" +"Language-Team: Hindi \n" +"Language: hne\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Hindi\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"अतिरिक्त जानकारी:" + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"एलडीएपी सर्वर हर नीचे वाले गलती लहुटाइस: %1 %2\n" +"एलडीएपी यूआरएल था: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "एलडीएपी लागइन" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "साइटः" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "अवैध प्रमानीकरन जानकारी" + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "एलडीएपी कनेक्सन फेल" + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "एलडीआईएफ पारसर विफल" + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "लकीर %1 मं अवैध एलडीआईएफ फाइल हे." diff --git a/po/hne/libkldap5.po b/po/hne/libkldap5.po new file mode 100644 index 0000000..411598e --- /dev/null +++ b/po/hne/libkldap5.po @@ -0,0 +1,334 @@ +# translation of libkldap.po to Hindi +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Ravishankar Shrivastava , 2008. +# Ravishankar Shrivastava , 2009. +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2009-02-28 22:20+0530\n" +"Last-Translator: Ravishankar Shrivastava \n" +"Language-Team: Hindi \n" +"Language: hne\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 0.2\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "कोई एलडीएपी समर्थन नइ...." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "कनेक्सन ल चालू करे के समय एक गलती होइस." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "प्रोटोकाल संस्करन %1 सेट नइ कर सकिस." + +#: core/ldapconnection.cpp:257 +#, fuzzy, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "टाइमआउट %1 सेकन्ड सेट नइ कर सकिस." +msgstr[1] "टाइमआउट %1 सेकन्ड सेट नइ कर सकिस." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "" + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:308 +#, fuzzy, kde-format +#| msgid "Cannot initialize the SASL client." +msgid "Could not initialize new TLS context." +msgstr "एसएएसएल क्लायंट चालू नइ कर सकिस." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "एलडीएपी क्लायंट लाइब्रेरी मं टीएलएस समर्थन नइ मिलत हे." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "आकार सीमा सेट नइ कर सकिस." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "समय सीमा सेट नइ कर सकिस." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "एसएएसएल क्लायंट चालू नइ कर सकिस." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "" + +#: widgets/addhostdialog.cpp:64 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Add Host" +msgstr "होस्टः" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:97 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Edit Host" +msgstr "होस्टः" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:315 +#, fuzzy, kde-format +#| msgid "Host:" +msgid "&Add Host..." +msgstr "होस्टः" + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "कमइया:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "बाइंड डीएन:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "रीयल्म:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "पासवर्ड: " + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "होस्टः" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "पोर्टः" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "एलडीएपी संस्करन:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "डिफाल्ट" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "आकार सीमा:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr "सेक." + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "डिफाल्ट" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "समय सीमा:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "पेजिंग नइ" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "पेज आकार:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "क्वैरी सर्वर" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "डीएन:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "फिल्टर:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "नइ" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "टीएलएस" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "एसएसएल" + +#: widgets/ldapconfigwidget.cpp:222 +#, fuzzy, kde-format +#| msgid "Security" +msgid "Security:" +msgstr "सुरक्छा" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "अग्यातनाम" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "सादा" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "एसएसएल" + +#: widgets/ldapconfigwidget.cpp:241 +#, fuzzy, kde-format +#| msgid "Authentication" +msgid "Authentication:" +msgstr "प्रमानीकरन" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "एसएएसएल मेकेनिज्म" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:309 +#, fuzzy, kde-format +#| msgid "LDAP Query" +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "एलडीएपी क्वेरी" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Servers" +#~ msgstr "एलडीएपी संस्करन:" + +#~ msgid "Attribute" +#~ msgstr "गुन" + +#~ msgid "Value" +#~ msgstr "मान" + +#~ msgid "LDAP Operations error" +#~ msgstr "एलडीएपी आपरेसन गलती" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Server Settings" +#~ msgstr "एलडीएपी संस्करन:" + +#, fuzzy +#~| msgid "User:" +#~ msgid "User ID" +#~ msgstr "कमइया:" diff --git a/po/hu/kio_ldap.po b/po/hu/kio_ldap.po new file mode 100644 index 0000000..4c43486 --- /dev/null +++ b/po/hu/kio_ldap.po @@ -0,0 +1,62 @@ +# Kristóf Kiszel , 2010. +msgid "" +msgstr "" +"Project-Id-Version: KDE 4.0\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2010-12-15 23:18+0100\n" +"Last-Translator: Kristóf Kiszel \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"További információ: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"Az LDAP-kiszolgáló hibát jelzett: %1 %2\n" +"LDAP URL: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP-bejelentkezés" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "Alapcím:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Érvénytelenek a felhasználóazonosítási adatok." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "Az LDAP-kapcsolat megszakadt." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Az LDIF-feldolgozó hibát jelzett." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Hiba az LDIF-fájl %1. sorában." diff --git a/po/hu/libkldap5.po b/po/hu/libkldap5.po new file mode 100644 index 0000000..d69c81d --- /dev/null +++ b/po/hu/libkldap5.po @@ -0,0 +1,349 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Tamas Szanto , 2007. +# Balázs Úr , 2014. +msgid "" +msgstr "" +"Project-Id-Version: KDE 4.3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2014-06-14 15:51+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.5\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "Nincs LDAP-támogatás..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Hiba történt a kapcsolat inicializálása közben." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Nem sikerült beállítani a protokoll verziószámát erre: %1." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Nem sikerült beállítani a várakozási időt %1 másodpercre." +msgstr[1] "Nem sikerült beállítani a várakozási időt %1 másodpercre." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "" + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:308 +#, fuzzy, kde-format +#| msgid "Cannot initialize the SASL client." +msgid "Could not initialize new TLS context." +msgstr "Nem sikerült inicializálni az SASL-klienst." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "Nincs TLS-támogatás az LDAP kliens programkönyvtárában." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Nem sikerült beállítani a méretkorlátot." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Nem sikerült beállítani az időkorlátot." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Nem sikerült inicializálni az SASL-klienst." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"Nincs befordítva az LDAP-támogatás. Fordítsa újra a libkldap-ot az OpenLDAP " +"(vagy ezzel kompatibilis más) kliens programkönyvtárral, vagy kérjen " +"segítséget a disztribúció csomagkészítőitől." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "" +"Nem sikerült elérni a kiszolgálót. Ha szükséges, módosítson a beállításokon." + +#: widgets/addhostdialog.cpp:64 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Add Host" +msgstr "Gépnév:" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:97 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Edit Host" +msgstr "Gépnév:" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:315 +#, fuzzy, kde-format +#| msgid "Host:" +msgid "&Add Host..." +msgstr "Gépnév:" + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Felhasználónév:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "Csatlakozási DN:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Tartomány:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Jelszó:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Gépnév:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Port:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "LDAP verzió:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Alapértelmezés" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Méretkorlát:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " s" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Alapértelmezés" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Időkorlát:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Nincs lapozás" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Lapméret:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Lekérdezés" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Szűrő:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Nincs" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, fuzzy, kde-format +#| msgid "Security" +msgid "Security:" +msgstr "Biztonság" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anonymous" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Egyszerű" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, fuzzy, kde-format +#| msgid "Authentication" +msgid "Authentication:" +msgstr "Felhasználóazonosítás" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "SASL-mechanizmus:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:309 +#, fuzzy, kde-format +#| msgid "LDAP Query" +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "LDAP lekérdezés" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Ismeretlen hiba csatlakozáskor: %1" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Servers" +#~ msgstr "LDAP verzió:" + +#~ msgid "Attribute" +#~ msgstr "Attribútum" + +#~ msgid "Value" +#~ msgstr "Érték" + +#~ msgid "Distinguished Name" +#~ msgstr "Azonosító név (DN)" + +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "Nincs SASL-támogatás. Fordítsa újra a libkldap-ot a Cyrus-SASL (vagy " +#~ "ezzel kompatibilis más) kliens programkönyvtárral, vagy kérjen segítséget " +#~ "a disztribúció csomagkészítőitől." + +#~ msgid "LDAP Operations error" +#~ msgstr "Hiba egy LDAP-műveletben" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Server Settings" +#~ msgstr "LDAP verzió:" + +#, fuzzy +#~| msgid "User:" +#~ msgid "User ID" +#~ msgstr "Felhasználónév:" diff --git a/po/ia/kio_ldap.po b/po/ia/kio_ldap.po new file mode 100644 index 0000000..6ff84ef --- /dev/null +++ b/po/ia/kio_ldap.po @@ -0,0 +1,66 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# g.sora , 2011, 2012. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2012-05-14 14:16+0200\n" +"Last-Translator: Giovanni Sora \n" +"Language-Team: Interlingua \n" +"Language: ia\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.2\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Information additional: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"Servitor LDAP retornava le error: %1 %2\n" +"Le URL de LDAP esseva: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "Accesso de identification LDAP" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "sito:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Information de authorization invalide" + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "Connexion LDAP cancellate." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Le analysator Ldif falleva." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Invalide file de Ldif in linea %1." diff --git a/po/ia/libkldap5.po b/po/ia/libkldap5.po new file mode 100644 index 0000000..b0eedd0 --- /dev/null +++ b/po/ia/libkldap5.po @@ -0,0 +1,330 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# g.sora , 2011, 2012, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2021-07-29 22:39+0200\n" +"Last-Translator: giovanni \n" +"Language-Team: Interlingua \n" +"Language: ia\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 21.04.3\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "Nulle supporto LDAP..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Un error ha occurrite durante le phase de initialization de connexion." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Non pote fixar version de protocollo a %1." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Non pote fixar tempore limite a %1 secunda." +msgstr[1] "Non pote fixar tempore limite a %1 secundas." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "Non pote fixar file certificar CA." + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "InvalideTLS require modo de certificato" + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "Non pote fixar TLS require modo de certificato." + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "Non pote initialisar nove contexto TLS." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "Supporto TLS non es disponibile in le librerias cliente de LDAP." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Non pote fixar limite de grandor." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Non pote fixar limite de tempore." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Non pote initializar le cliente SASL." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"Supporto LDAP non es compilate intra. Pro favor compila de nove libkldap " +"con le librerias cliente OpenLDAP (o compatibile), o querela tu " +"impacchettator de distribution." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "Non pote acceder a servitor. Pro favor tu reconfigura lo." + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "Adde hospite" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" +"Contrasigno de LDAP es immagazinate como texto clar, tu vole immagazinar lo " +"in le portafolio kwallet?" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "Immagazina contrasigno de texto clar in Wallet" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "Modifica hospite" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "Tu vole remover preferntias pro hospite \"%1\"?" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "Remove hospite" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "Marca tote servitores que on deberea usar:" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "&Adde hospite..." + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "&Modifica hospite..." + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "&Remove hospite" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Usator:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "Ligamine (Bind) DN:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Regno:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Contrasigno:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Hospite:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Porto:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "Version de LDAP:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Predefinite" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Limite de grandor:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " sec" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Predefinite" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Limite de tempore:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Nulle pagination" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Dimension de Pagina:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Servitor de requesta" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Filtro:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "No" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "Securitate:" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anonyme" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Simple" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "Authentication:" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "Mechanismo SASL:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "Verifica servitor" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "Requesta LDAP" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Error incognite connectente a : %1" + +#~ msgid "LDAP Servers" +#~ msgstr "Servitores LDAP" + +#~ msgid "Attribute" +#~ msgstr "Attributo" + +#~ msgid "Value" +#~ msgstr "Valor" + +#~ msgid "Distinguished Name" +#~ msgstr "Nomine distinguite" + +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "Supporto SASL non es disponibile. Pro favor compila de nove libkldap con " +#~ "le librerias cliente Cyrus-SASL (o compatibile), o querela tu " +#~ "impacchettator de distribution." + +#~ msgid "LDAP Operations error" +#~ msgstr "Error de operationes LDAP" diff --git a/po/is/kio_ldap.po b/po/is/kio_ldap.po new file mode 100644 index 0000000..28ce76d --- /dev/null +++ b/po/is/kio_ldap.po @@ -0,0 +1,80 @@ +# translation of kio_ldap.po to Icelandic +# Íslensk þýðing kio_ldap.po +# Richard Allen , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2005-12-03 13:32+0100\n" +"Last-Translator: Arnar Leosson \n" +"Language-Team: Icelandic \n" +"Language: is\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11\n" +"Plural-Forms: Plural-Forms: nplurals=2; plural=n != 1;\n" +"\n" +"\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Viðbótarupplýsingar: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP þjónninn skilaði eftirfarandi villu: %1 %2\n" +"LDAP slóðin var: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP auðkenni" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "staðsetning:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Ógildar auðkenniupplýsingar." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "" + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, fuzzy, kde-format +msgid "The Ldif parser failed." +msgstr "LDIF þáttarinn brást." + +#: kio_ldap.cpp:680 +#, fuzzy, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Ógild LDIF skrá í línu %1." + +#~ msgid "Cannot set LDAP protocol version %1" +#~ msgstr "Get ekki sett á LDAP samskiptamáta %1" + +#~ msgid "Cannot set size limit." +#~ msgstr "Get ekki sett stærðartakmörkun." + +#~ msgid "Cannot set time limit." +#~ msgstr "Get ekki sett tímatakmörkun." + +#~ msgid "SASL authentication not compiled into the ldap ioslave." +#~ msgstr "SASL auðkenning er ekki þýdd inn í ldap ioslave forritið." diff --git a/po/it/docs/kioslave5/ldap/index.docbook b/po/it/docs/kioslave5/ldap/index.docbook new file mode 100644 index 0000000..606d937 --- /dev/null +++ b/po/it/docs/kioslave5/ldap/index.docbook @@ -0,0 +1,54 @@ + + + +]> + +
+ldap + + +&Lauri.Watts; &Lauri.Watts.mail; +Luciano Montanaro
mikelima@cirulla.net
Traduzione del documento
+
+
+ +L'ldap è il Lightweight Directory Access Protocol. Fornisce accesso a directory X.500 o ad un server LDAP indipendente. + +Il kioslave ldap si usa come segue: + +ldap://host:port/ou=People,o=where,c=de??sub per una ricerca su sottoalbero + +oppure ldap://host:port/cn=MM,ou=People,o=where,c=de??base per un ramo completo. + +
diff --git a/po/it/kio_ldap.po b/po/it/kio_ldap.po new file mode 100644 index 0000000..7c8e0a1 --- /dev/null +++ b/po/it/kio_ldap.po @@ -0,0 +1,65 @@ +# translation of kio_ldap.po to Italian +# Andrea RIZZI , 2004. +# Andrea Rizzi , 2005. +# Nicola Ruggero , 2008. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2008-01-01 17:26+0100\n" +"Last-Translator: Nicola Ruggero \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Informazioni aggiuntive: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"Il server LDAP ha dato il seguente errore: %1%2\n" +"L'URL LDAP era: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "Accesso LDAP" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "sito:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Informazioni di autorizzazione non valide." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "Connessione LDAP annullata." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "L'analizzatore LDIF non ha funzionato." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "File LDIF non valido alla riga %1." diff --git a/po/it/libkldap5.po b/po/it/libkldap5.po new file mode 100644 index 0000000..9e994ac --- /dev/null +++ b/po/it/libkldap5.po @@ -0,0 +1,333 @@ +# translation of libkldap.po to Italian +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# Federico Zenith , 2007. +# Luigi Toscano , 2014, 2017, 2018, 2019, 2020, 2021. +# +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2021-07-30 23:47+0200\n" +"Last-Translator: Luigi Toscano \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.12.0\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "Senza supporto LDAP..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "" +"Si è verificato un errore durante la fase di inizializzazione della " +"connessione." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Impossibile impostare il protocollo alla versione %1." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Impossibile impostare la scadenza a %1 secondo." +msgstr[1] "Impossibile impostare la scadenza a %1 secondi." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "Impossibile impostare il file del certificato della CA." + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "Modalità «TLS richiede un certificato» non valida." + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "Impossibile impostare la modalità «TLS richiede un certificato»." + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "Impossibile inizializzare un nuovo contesto TLS." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "Supporto TLS non disponibile nelle librerie del client LDAP." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Impossibile impostare un limite di dimensione." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Impossibile impostare un limite di tempo." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Impossibile inizializzare il client SASL." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"Supporto LDAP non compilato. Ricompila libkldap con le librerie del client " +"OpenLDAP (o compatibili), o segnala il problema ai responsabili del " +"pacchetto della tua distribuzione." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "" +"Impossibile accedere al server; è necessario riconfigurarne i parametri." + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "Aggiungi host" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "La password LDAP è memorizzata in chiaro, vuoi salvarla in kwallet?" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "Memorizza la password in chiaro nel portafogli" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "Modifica host" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "Vuoi rimuovere le impostazioni per l'host «%1»?" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "Rimuovi host" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "Controlla tutti i server che devono essere usati:" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "&Aggiungi host..." + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "&Modifica host..." + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "&Rimuovi host" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Utente:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "Autentica ND:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Reame:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Password:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Host:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Porta:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "Versione di LDAP:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Predefinito" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Limite di dimensione:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " sec" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Predefinito" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Scadenza:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Senza paginazione" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Dimensione della pagina:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Interroga server" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "ND:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Filtro:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "No" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "Sicurezza:" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anonimo" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Semplice" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "Autenticazione:" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "Meccanismo SASL:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "Verifica server" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "Interrogazione LDAP" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Errore sconosciuto nella connessione a %1" + +#~ msgid "LDAP Servers" +#~ msgstr "Server LDAP" + +#~ msgid "Attribute" +#~ msgstr "Attributo" + +#~ msgid "Value" +#~ msgstr "Valore" + +#~ msgid "Distinguished Name" +#~ msgstr "Nome distinto" + +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "Supporto SASL non disponibile. Ricompila libkldap con le librerie del " +#~ "client Cyrus-SASL (o compatibili), o segnala il problema ai responsabili " +#~ "del pacchetto della tua distribuzione." + +#~ msgid "LDAP Operations error" +#~ msgstr "Errore di operazione di LDAP" diff --git a/po/ja/kio_ldap.po b/po/ja/kio_ldap.po new file mode 100644 index 0000000..2390f73 --- /dev/null +++ b/po/ja/kio_ldap.po @@ -0,0 +1,69 @@ +# translation of kio_ldap.po to Japanese +# Copyright (C) 2004-2007 This_file_is_part_of_KDE +# This file is distributed under the same license as the kdepimlibs package. +# Kenshi Muto , 2004. +# Shinichi Tsunoda , 2005. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2007-09-11 17:00+0900\n" +"Last-Translator: Yukiko Bando \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.10.2\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"追加情報: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP サーバが以下のエラーを返しました: %1 %2\n" +"LDAP URL: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP ログイン" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "サイト:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "無効な認証情報です。" + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "LDAP 接続がキャンセルされました。" + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Ldif パーサが失敗しました。" + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "%1 行目が無効な Ldif ファイルです。" diff --git a/po/ja/libkldap5.po b/po/ja/libkldap5.po new file mode 100644 index 0000000..4d3080a --- /dev/null +++ b/po/ja/libkldap5.po @@ -0,0 +1,310 @@ +# Translation of libkldap into Japanese. +# This file is distributed under the same license as the kdepimlibs package. +# Yukiko Bando , 2007, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2010-01-27 01:06+0900\n" +"Last-Translator: Yukiko Bando \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "LDAP サポートがありません..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "接続初期化フェーズでエラーが発生しました。" + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "プロトコルのバージョンを %1 に設定できません。" + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "タイムアウトを %1 秒に設定できません。" +msgstr[1] "タイムアウトを %1 秒に設定できません。" + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "" + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:308 +#, fuzzy, kde-format +#| msgid "Cannot initialize the SASL client." +msgid "Could not initialize new TLS context." +msgstr "SASL クライアントを初期化できません。" + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "LDAP クライアントライブラリに TLS サポートがありません。" + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "サイズ制限を設定できません。" + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "時間制限を設定できません。" + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "SASL クライアントを初期化できません。" + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"LDAP サポートがコンパイルされていません。OpenLDAP (または互換の) クライアント" +"ライブラリ付きで libkldap をコンパイルし直すか、お使いのディストリビューショ" +"ンのパッケージ作成者に問題を報告してください。" + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "サーバにアクセスできません。設定をやり直してください。" + +#: widgets/addhostdialog.cpp:64 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Add Host" +msgstr "ホスト:" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "ユーザ:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "バインド DN:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "レルム:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "パスワード:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "ホスト:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "ポート:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "LDAP バージョン:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "標準" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "サイズ制限:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " 秒" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "標準" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "時間制限:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "ページングなし" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "ページサイズ:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "クエリサーバ" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "フィルタ:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "なし" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, fuzzy, kde-format +#| msgid "Security" +msgid "Security:" +msgstr "セキュリティ" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "匿名" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "シンプル" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, fuzzy, kde-format +#| msgid "Authentication" +msgid "Authentication:" +msgstr "認証方式" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "SASL メカニズム:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:309 +#, fuzzy, kde-format +#| msgid "LDAP Query" +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "LDAP クエリ" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "" diff --git a/po/ka/kio_ldap.po b/po/ka/kio_ldap.po new file mode 100644 index 0000000..2b23b34 --- /dev/null +++ b/po/ka/kio_ldap.po @@ -0,0 +1,67 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the kldap package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: kldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2022-08-24 12:43+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian \n" +"Language: ka\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: Poedit 3.1.1\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"დამატებითი ინფორმაცია: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP სერვერმა შეცდომა დააბრუნა: %1 %2\n" +"LDAP-ის URL: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP-ში შესვლა" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "საიტი:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "ავტორიზაციის არასწორი ინფორმაცია." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "LDAP-თან შეერთება გაუქმებულია." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Ldif-ის დამმუშავებლის შეცდომა." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "შეცდომა Ldif ფაილის %1-ე ხაზზე." diff --git a/po/ka/libkldap5.po b/po/ka/libkldap5.po new file mode 100644 index 0000000..082dcf8 --- /dev/null +++ b/po/ka/libkldap5.po @@ -0,0 +1,305 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the kldap package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: kldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2022-09-12 20:33+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian \n" +"Language: ka\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: Poedit 3.1.1\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "LDAP-ის მხარდაჭერის გარეშე..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "შეერთების ინიციალიზაციის ფაზის შეცდომა." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "პროტოკოლის ვერსიის დაყენების შეცდომა: %1." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "ვადის %1 წამზე დაყენების შეცდომა." +msgstr[1] "ვადის %1 წამზე დაყენების შეცდომა." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "CA სერტიფიკატის აფილის დაყენების შეცდომა." + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "TLS-ის მიერ სერტიფიკატის მოთხოვნის რეჟიმი არასწორია." + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "TLS-ის მიერ სერტიფიკატის მოთხოვნის რეჟიმის დაყენების შეცდომა." + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "ახალი TLS კონტექსტის ინიციალიზაციის შეცდომა." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "LDAP-ის კლიენტის ბიბლიოთეკებში TLS-ის მხარდაჭერა არ არსებობს." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "ზომის ზღვრის დაყენება შეუძლებელია." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "დროის ზღვრის დაყენება შეუძლებელია." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "SASL კლიენტის ინიციალიზაციის შეცდომა." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"LDAP-ის მხარდაჭერა აგებული არაა. ააგეთ libkldap OpenLDAP(ან თავსებადი)-ის " +"კლიენტის ბიბლიოთეკებით ან პაკეტების მომწოდებელს მიწერეთ." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "სერვერთან წვდომის შეცდომა. საჭიროა მისი თავიდან მორგება." + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "ჰოსტის დამატება" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" +"LDAP პაროლი შენახულია როგორც უბრალო ტექსტი. გნებავთ მისი kwallet-ში შენახვა?" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "პაროლის საფულეში დაუშიფრავად შენახვა" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "ჰოსტის ჩასწორება" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "გნებავთ ჰოსტის (%1) პარამეტრების წაშლა?" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "ჰოსტის წაშლა" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "მონიშნეთ ყველა სერვერი, რომლის გამოყენებაც გნებავთ:" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "&ჰოსტის დამატება..." + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "&ჰოსტის ჩასწორება..." + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "&ჰოსტის წაშლა" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "მომხმარებელი:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "მისამაგრებელი DN:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "რეალმი:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "პაროლი:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "ჰოსტი:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "პორტი:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "LDAP-ის ვერსია:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "ნაგულისხმები" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "ზომის ლიმიტი:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " წმ" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "ნაგულისხმები" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "დროის ლიმიტი:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "პეიჯინგის გარეშე" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "გვერდის ზომა:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "მოთხოვნა სერვერიდან" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "ფილტრი:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "არა" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "უსაფრთხოება:" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "ანონიმურად" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "მარტივი" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "ავთენტიფიკაცია:" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "SASL-ის მექანიზმი:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "სერვერის შემოწმება" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "LDAP მოთხოვნა" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "%1-სთან შეერთების უცნობი შეცდომა" diff --git a/po/kk/kio_ldap.po b/po/kk/kio_ldap.po new file mode 100644 index 0000000..36c5f59 --- /dev/null +++ b/po/kk/kio_ldap.po @@ -0,0 +1,66 @@ +# translation of kio_ldap.po to Kazakh +# +# Sairan Kikkarin , 2005, 2007. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2007-09-19 11:24+0600\n" +"Last-Translator: Sairan Kikkarin \n" +"Language-Team: Kazakh\n" +"Language: kk\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=1; plural=0;\n" +"\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Қосымша мәлімет: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP сервер қайтарған қате: %1 %2\n" +"LDAP URL адресі: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP жүйеге кіру" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "сайт:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Мәлімет шындылық тексерістен өтпеді." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "LDAP қосылым үзілді." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Ldif талдау жаңылысы." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Ldif файлының %1-жолында қате." diff --git a/po/kk/libkldap5.po b/po/kk/libkldap5.po new file mode 100644 index 0000000..9a11af7 --- /dev/null +++ b/po/kk/libkldap5.po @@ -0,0 +1,334 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Sairan Kikkarin , 2011, 2012. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2012-02-29 03:21+0600\n" +"Last-Translator: Sairan Kikkarin \n" +"Language-Team: Kazakh \n" +"Language: kk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Lokalize 1.2\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "LDAP қолдауы жоқ..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Қосылуды бастау кезде бір қате орын алды." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Протоколдың нұсқасы %1 деп орнатымады.." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "%1 секундтық күту уақыты орнатылмады." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "" + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:308 +#, fuzzy, kde-format +#| msgid "Cannot initialize the SASL client." +msgid "Could not initialize new TLS context." +msgstr "SASL клиенті бастау күйіне келмеді." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "LDAP клиенттік жинақ файлдары TLS протоколын қолдамайды." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Өлшемінің шегі орнатылмады." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Уақыт шегі орнатылмады." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "SASL клиенті бастау күйіне келмеді." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"LDAP қолдауысыз жинақталған файл. libkldap-ты OpenLDAP (немесе үйлесімді) " +"клиенттік жинақ файлдарымен бірге қайта компиляциялап жинқтаңыз, не " +"дистрибутивіңіздің жабдықтаушыңызға шағымданыңыз." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "Серверімен қатынас жоқ. Оны қайта баптап көріңіз." + +#: widgets/addhostdialog.cpp:64 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Add Host" +msgstr "Хосты:" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Пайдаланушы:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "DN байланысы:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Аумағы:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Паролі:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Хосты:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Порты:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "LDAP нұсқасы:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Әдетті" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Өлшемінің шегі:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " сек" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Әдетті" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Уақыт шегі:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Парақтаусыз" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Парақ өлшемі:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Серверге сұрау салу" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Сүзгісі:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Жоқ" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, fuzzy, kde-format +#| msgid "Security" +msgid "Security:" +msgstr "Қауіпсіздігі" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Анонимды" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Қарапайым" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, fuzzy, kde-format +#| msgid "Authentication" +msgid "Authentication:" +msgstr "Аутентификация" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "SASL тетігі:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:309 +#, fuzzy, kde-format +#| msgid "LDAP Query" +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "LDAP сұранысы" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Servers" +#~ msgstr "LDAP нұсқасы:" + +#~ msgid "Attribute" +#~ msgstr "Атрибуты" + +#~ msgid "Value" +#~ msgstr "Мәні" + +#~ msgid "Distinguished Name" +#~ msgstr "Айырымды атау (DN)" + +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "LDAP қолдауы жоқ. libkldap-ты Cyrus-SASL (немесе үйлесімді) клиенттік " +#~ "жинақ файлдарымен бірге қайта компиляциялап жинқтаңыз, не " +#~ "дистрибутивіңіздің жабдықтаушыңызға шағымданыңыз." + +#~ msgid "LDAP Operations error" +#~ msgstr "LDAP амалдар қатесі" diff --git a/po/km/kio_ldap.po b/po/km/kio_ldap.po new file mode 100644 index 0000000..b510c16 --- /dev/null +++ b/po/km/kio_ldap.po @@ -0,0 +1,66 @@ +# translation of kio_ldap.po to Khmer +# Khoem Sokhem , 2005, 2007, 2008. +# Sokun , 2007. +# Auk Piseth , 2007. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2008-01-24 10:13+0700\n" +"Last-Translator: Khoem Sokhem \n" +"Language-Team: Khmer \n" +"Language: km\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=1; plural=0;\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"ព័ត៌មាន​បន្ថែម ៖ " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"ម៉ាស៊ីន​បម្រើ LDAP បាន​ត្រឡប់​កំហុស ៖ %1 %2\n" +"URL របស់ LDAP គឺ ៖ %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "ការ​ចូល LDAP" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "តំបន់​បណ្ដាញ ៖" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "ព័ត៌មាន​អំពី​ការ​អនុញ្ញាត​មិន​ត្រឹមត្រូវ ។" + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "ការ​តភ្ជាប់ LDAP ត្រូវ​បាន​បោះបង់ ។" + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "ឧបករណ៍​ញែក Ldif បាន​បរាជ័យ ។" + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "ឯកសារ Ldif មិន​ត្រឹម​ត្រូវ​នៅ​បន្ទាត់ %1 ។" diff --git a/po/km/libkldap5.po b/po/km/libkldap5.po new file mode 100644 index 0000000..d60cfb8 --- /dev/null +++ b/po/km/libkldap5.po @@ -0,0 +1,334 @@ +# translation of libkldap.po to Khmer +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Khoem Sokhem , 2008, 2009, 2010. +# Morn Met, 2010. +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2010-12-13 09:23+0700\n" +"Last-Translator: Khoem Sokhem \n" +"Language-Team: Khmer \n" +"Language: km\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=1; plural=0;\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "គ្មាន​ការ​គាំទ្រ LDAP...​" + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "កំហុស​មួយ​បាន​កើត​ឡើងខណៈពេល​​​ដំណាក់កាល​​ចាប់ផ្ដើម​កា​រតភ្ជាប់ ។" + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "មិន​អាច​កំណត់​កំណែ​ពិធីការ​ទៅ %1 បាន​ឡើយ​ ។" + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "មិន​អាចកំណត់​ពេល​សម្រាក​ទៅ %1 វិនាទី ។" + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "" + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:308 +#, fuzzy, kde-format +#| msgid "Cannot initialize the SASL client." +msgid "Could not initialize new TLS context." +msgstr "មិន​អាច​ចាប់ផ្ដើម​​ម៉ាស៊ីន​ភ្ញៀវ SASL ។" + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "មិន​មាន​ការ​គាំទ្រ TLS នៅ​ក្នុង​បណ្ណាល័យ​ម៉ាស៊ីន​ភ្ញៀវ LDAP ។" + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "មិន​អាច​កំណត់​ដែន​កំណត់​​របស់​ទំហំ ។" + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "មិន​អាច​កំណត់​ម៉ោង​កំណត់​បាន​ឡើយ​ ។" + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "មិន​អាច​ចាប់ផ្ដើម​​ម៉ាស៊ីន​ភ្ញៀវ SASL ។" + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"ការ​គាំទ្រ LDAP មិន​បាន​ចងក្រង​នៅ ។ សូម​ចងក្រង​ libkldap ដោយ​បណ្ណាល័យ​ម៉ាស៊ីន​ភ្ញៀវ OpenLDAP (ឬ​" +"ឆបគ្នា) ឬ​តវ៉ា​ទៅ​​អ្នកគ្រប់គ្រង​កញ្ចប់​ចែកចាយ​របស់​អ្នក ។" + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "មិន​អាច​ចូលដំណើរការ​ទៅកាន់​ម៉ាស៊ីន​បម្រើ​បានទេ ។ សូម​កំណត់​រចនាសម្ព័ន្ធ​វា​ម្ដង​ទៀត ។" + +#: widgets/addhostdialog.cpp:64 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Add Host" +msgstr "ម៉ាស៊ីន ៖" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "អ្នក​ប្រើ ៖" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "Bind DN ៖" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Realm ៖" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "ពាក្យ​សម្ងាត់ ៖" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "ម៉ាស៊ីន ៖" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "ច្រក ៖" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "កំណែ LDAP ៖" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "លំនាំដើម" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "ដែន​កំណត់​ទំហំ ៖" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " វិ." + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "លំនាំដើម" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "ដែន​កំណត់​​ពេលវេលា ៖" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "គ្មាន​ភេយីង" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "ទំហំ​ទំព័រ ៖" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "ម៉ាស៊ីន​បម្រើ​សំណួរ" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN ៖" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "តម្រង ៖" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "ទេ" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, fuzzy, kde-format +#| msgid "Security" +msgid "Security:" +msgstr "សុវត្ថិភាព" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "អនាមិក" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "សាមញ្ញ" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, fuzzy, kde-format +#| msgid "Authentication" +msgid "Authentication:" +msgstr "ការ​ផ្ទៀងផ្ទាត់ភាព​ត្រឹមត្រូវ" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "យន្តការ SASL ៖" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:309 +#, fuzzy, kde-format +#| msgid "LDAP Query" +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "សំណួរ LDAP" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Servers" +#~ msgstr "កំណែ LDAP ៖" + +#~ msgid "Attribute" +#~ msgstr "គុណលក្ខណៈ" + +#~ msgid "Value" +#~ msgstr "តម្លៃ" + +#~ msgid "Distinguished Name" +#~ msgstr "ឈ្មោះ​ដែល​ចំណាំ" + +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "មិនមាន​ការ​គាំទ្រ SASL ទេ ។ សូម​ចងក្រង libkldap ឡើង​វិញ ដែល​មាន Cyrus-SASL (ឬ​ឆបគ្នា) " +#~ "បណ្ណាល័យ​ម៉ាស៊ីន​ភ្ញៀវ ឬ​​ប្ដឹង​ទៅ​អ្នក​កាន់កាប់កញ្ចប់​ចែកចាយ​របស់​អ្នក ។" + +#~ msgid "LDAP Operations error" +#~ msgstr "កំហុស​ក្នុង​កា​រប្រតិបត្តិ LDAP" diff --git a/po/kn/kio_ldap.po b/po/kn/kio_ldap.po new file mode 100644 index 0000000..6833868 --- /dev/null +++ b/po/kn/kio_ldap.po @@ -0,0 +1,67 @@ +# translation of kio_ldap.po to Kannada +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Umesh Rudrapatna , 2007. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2007-07-09 11:34+0530\n" +"Last-Translator: Umesh Rudrapatna \n" +"Language-Team: Kannada \n" +"Language: kn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: KBabel 1.11.1\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"ಹೆಚ್ಚುವರಿ ಮಾಹಿತಿ: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP ಪರಿಚಾರಕವು (server) ಈ ದೋಷ ಹಿಂದಿರುಗಿಸಿತು: %1 %2\n" +"LDAP ನ URL ಇದಾಗಿತ್ತು: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP ಪ್ರವೇಶಪದ (Login)" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "ತಾಣ (site):" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "ಅಮಾನ್ಯವಾದ ದೃಢೀಕರಣ (authorization) ಮಾಹಿತಿ." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "LDAP ಸಂಪರ್ಕವನ್ನು ರದ್ದುಗೊಳಿಸಲಾಗಿದೆ." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Ldif ಪದಚ್ಛೇದಕ (parser) ವಿಫಲವಾಯಿತು." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "%1 ಸಾಲಿನಲ್ಲಿ ಅಮಾನ್ಯ Ldif ಕಡತವನ್ನು ನಿರ್ದೇಶಿಸಲಾಗಿದೆ." diff --git a/po/ko/docs/kioslave5/ldap/index.docbook b/po/ko/docs/kioslave5/ldap/index.docbook new file mode 100644 index 0000000..ccbf7f7 --- /dev/null +++ b/po/ko/docs/kioslave5/ldap/index.docbook @@ -0,0 +1,54 @@ + + + +]> + +
+LDAP + + +&Lauri.Watts; &Lauri.Watts.mail; +박신조
kde@peremen.name
한국어 번역
+
+
+ +LDAP(Lightweight Directory Access Protocol)은 디렉터리 서비스용 프로토콜입니다. X.500 디렉터리에 접근하거나 단독 LDAP 서버에 접근할 수 있습니다. + +다음과 같이 LDAP KIO 슬레이브를 사용할 수 있습니다: + +하위 트리 질의: ldap://host:port/ou=People,o=where,c=de??sub + +완전한 브랜치 질의: ldap://host:port/cn=MM,ou=People,o=where,c=de??base + +
diff --git a/po/ko/kio_ldap.po b/po/ko/kio_ldap.po new file mode 100644 index 0000000..f89a12a --- /dev/null +++ b/po/ko/kio_ldap.po @@ -0,0 +1,65 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Shinjo Park , 2014. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2014-03-03 00:26+0900\n" +"Last-Translator: Shinjo Park \n" +"Language-Team: Korean \n" +"Language: ko\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"추가 정보: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP 서버에서 오류를 반환했습니다: %1 %2\n" +"LDAP URL: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP 로그인" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "사이트:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "인증 정보가 잘못되었습니다." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "LDAP 연결이 취소되었습니다." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "LDIF 파서가 실패했습니다." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "%1줄에 잘못된 LDIF 파일이 있습니다." diff --git a/po/ko/libkldap5.po b/po/ko/libkldap5.po new file mode 100644 index 0000000..c906af3 --- /dev/null +++ b/po/ko/libkldap5.po @@ -0,0 +1,325 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# Shinjo Park , 2015, 2017, 2018, 2020, 2021. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2021-07-31 15:54+0200\n" +"Last-Translator: Shinjo Park \n" +"Language-Team: Korean \n" +"Language: ko\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Lokalize 20.12.3\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "LDAP 지원 없음..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "연결 초기화 중 오류가 발생했습니다." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "프로토콜 버전을 %1(으)로 설정할 수 없습니다." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "시간 제한을 %1초로 설정할 수 없습니다." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "CA 인증서 파일을 설정할 수 없습니다." + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "잘못된 TLS 인증서 요청 모드입니다." + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "TLS 인증서 요청 모드를 설정할 수 없습니다." + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "새 TLS 콘텍스트를 초기화할 수 없습니다." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "LDAP 클라이언트 라이브러리에서 TLS를 사용할 수 없습니다." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "크기 제한을 설정할 수 없습니다." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "시간 제한을 설정할 수 없습니다." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "SASL 클라이언트를 초기화할 수 없습니다." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"LDAP 지원을 사용할 수 없습니다. libkldap을 OpenLDAP 및 호환되는 클라이언트 라" +"이브러리와 같이 컴파일하거나, 배포판 패키지 관리자에게 문의하십시오." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "서버에 접근할 수 없습니다. 다시 설정하십시오." + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "호스트 추가" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "LDAP 암호가 평문으로 저장되어 있습니다. KWallet에 저장하시겠습니까?" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "지갑에 평문으로 암호 저장" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "호스트 편집" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "호스트 \"%1\"의 설정을 삭제하시겠습니까?" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "호스트 삭제" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "사용될 모든 서버 확인:" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "호스트 추가(&A)..." + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "호스트 편집(&E)..." + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "호스트 삭제(&R)" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "사용자:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "바인드 DN:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "영역:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "암호:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "호스트:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "포트:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "LDAP 버전:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "기본값" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "크기 제한:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " 초" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "기본값" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "시간 제한:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "페이징 없음" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "페이지 크기:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "질의 보내기" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "필터:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "아니요" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "보안:" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "익명" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "간단함" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "인증:" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "SASL 방식:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "서버 확인" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "LDAP 질의" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "%1에 연결 중 알 수 없는 오류" + +#~ msgid "LDAP Servers" +#~ msgstr "LDAP 서버" + +#~ msgid "Attribute" +#~ msgstr "속성" + +#~ msgid "Value" +#~ msgstr "값" + +#~ msgid "Distinguished Name" +#~ msgstr "구분되는 이름" + +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "SASL 지원을 사용할 수 없습니다. libkldap을 Cyrus-SASL 및 호환되는 클라이언" +#~ "트 라이브러리와 함께 컴파일하거나, 배포판 패키지 관리자에게 문의하십시오." + +#~ msgid "LDAP Operations error" +#~ msgstr "LDAP 작업 오류" diff --git a/po/lt/kio_ldap.po b/po/lt/kio_ldap.po new file mode 100644 index 0000000..84c1abd --- /dev/null +++ b/po/lt/kio_ldap.po @@ -0,0 +1,67 @@ +# translation of kio_ldap.po to Lithuanian +# Donatas Glodenis , 2005. +# Tomas Straupis , 2011. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2011-06-23 14:28+0300\n" +"Last-Translator: Tomas Straupis \n" +"Language-Team: Lithuanian \n" +"Language: lt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n%10>=2 && (n%100<10 || n" +"%100>=20) ? 1 : n%10==0 || (n%100>10 && n%100<20) ? 2 : 3);\n" +"(n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.2\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Papildoma info:" + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP serveris grąžino šią klaidą: %1 %2\n" +"LDAP URL buvo: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP registravimasis" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "sritis:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Neteisinga autorizacijos informacija." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "LDAP jungtis nutraukta." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Ldif tikrintojas nesuveikė." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Neteisingas LDIF failas eilutėje %1." diff --git a/po/lt/libkldap5.po b/po/lt/libkldap5.po new file mode 100644 index 0000000..f795cfc --- /dev/null +++ b/po/lt/libkldap5.po @@ -0,0 +1,319 @@ +# translation of libkldap.po to Lithuanian +# This file is distributed under the same license as the libkldap package. +# Donatas Glodenis , 2007. +# Remigijus Jarmalavičius , 2011. +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2011-09-25 13:12+0300\n" +"Last-Translator: Remigijus Jarmalavičius \n" +"Language-Team: Lithuanian \n" +"Language: lt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n%10>=2 && (n%100<10 || n" +"%100>=20) ? 1 : n%10==0 || (n%100>10 && n%100<20) ? 2 : 3);\n" +"X-Generator: Lokalize 1.2\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "Nėra LDAP palaikymo..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "" + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "" + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "" + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "" + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "" + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Nepavyksta nustatyti dydžio limito." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Nepavyksta nustatyti laiko limito." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "" + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "" + +#: widgets/addhostdialog.cpp:64 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Add Host" +msgstr "Mazgas:" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Naudotojas:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "Prisijungimo DN:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Sritis:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Slaptažodis:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Mazgas:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Prievadas:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "LDAP versija:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Numatytas" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Dydžio limitas:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " sek." + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Numatytas" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Laiko limitas:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Be puslapiavimo" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Puslapio dydis:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Siųsti užklausą serveriui" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Filtras:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Ne" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, fuzzy, kde-format +#| msgid "Security" +msgid "Security:" +msgstr "Saugumas" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anonimiškas" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Paprastas" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, fuzzy, kde-format +#| msgid "Authentication" +msgid "Authentication:" +msgstr "Patvirtinimas" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "SASL mechanizmas:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:309 +#, fuzzy, kde-format +#| msgid "LDAP Query" +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "LDAP užklausa" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Servers" +#~ msgstr "LDAP versija:" + +#~ msgid "Attribute" +#~ msgstr "Atributas" + +#~ msgid "Value" +#~ msgstr "Vertė" diff --git a/po/lv/kio_ldap.po b/po/lv/kio_ldap.po new file mode 100644 index 0000000..550a6ef --- /dev/null +++ b/po/lv/kio_ldap.po @@ -0,0 +1,68 @@ +# translation of kio_ldap.po to Latvian +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Viesturs Zarins , 2007. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2007-12-29 19:11+0200\n" +"Last-Translator: Viesturs Zarins \n" +"Language-Team: Latvian \n" +"Language: lv\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=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Papildus informācija: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP serveris atgrieza kļūdu: %1 %2\n" +"LDAP URL bija: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP pieteikšanās" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "vietne:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Nederīga autorizācijas informācija" + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "LDAP pieslēgšanās atcelta." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Ldif analizators cieta neveiksmi." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Nederīga Ldif rinda failā %1." diff --git a/po/lv/libkldap5.po b/po/lv/libkldap5.po new file mode 100644 index 0000000..a93e4fb --- /dev/null +++ b/po/lv/libkldap5.po @@ -0,0 +1,339 @@ +# translation of libkldap.po to Latvian +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Viesturs Zarins , 2007, 2008. +# Viesturs Zariņš , 2009. +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2009-06-01 20:03+0300\n" +"Last-Translator: Viesturs Zariņš \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "Nav LDAP atbalsta..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Gadījās kļūda savienojuma inicializācijas fāzē." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Nizdevās uzstādīt protokola versiju uz %1." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Neizdevās iestatīt noildzi uz %1 sekundi." +msgstr[1] "Neizdevās iestatīt noildzi uz %1 sekundēm." +msgstr[2] "Neizdevās iestatīt noildzi uz %1 sekundēm." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "" + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:308 +#, fuzzy, kde-format +#| msgid "Cannot initialize the SASL client." +msgid "Could not initialize new TLS context." +msgstr "Neizdodas inicializēt SASL klientu." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "Nav pieejams TLS atbalsts LDAP klienta bibliotēkās." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Neizdodas iestatīt izmēra ierobežojumu." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Neizdodas izstādīt laika ierobežojumu." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Neizdodas inicializēt SASL klientu." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"LDAP atbalsts nav iekompilēts. Lūdzu pāromilējiet libkldap ar OpenLDAP (vai " +"savietojamu) klienta bibliotēku, vai sūdzieties jūsu distribūcijas " +"pakotājiem." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "Neizdevās piekļūt serverim. Lūdzu konfigurējiet to." + +#: widgets/addhostdialog.cpp:64 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Add Host" +msgstr "Serveris:" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Lietotājs:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "Piesaistīt DN:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Realms:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Parole:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Serveris:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Ports:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "LDAP versija:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Noklusētais" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Izmēra ierobežojums:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " sek" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Noklusētais" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Laika ierobežojums:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Bez lapošanas" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Lapas izmērs:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Apjautāt serveri" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Filtrs:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Nav" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, fuzzy, kde-format +#| msgid "Security" +msgid "Security:" +msgstr "Drošība" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anonīms" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Vienkārša" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, fuzzy, kde-format +#| msgid "Authentication" +msgid "Authentication:" +msgstr "Autentificēšana" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "SASL mehānisms:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:309 +#, fuzzy, kde-format +#| msgid "LDAP Query" +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "LDAP pieprasījums" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Servers" +#~ msgstr "LDAP versija:" + +#~ msgid "Attribute" +#~ msgstr "Attribūts" + +#~ msgid "Value" +#~ msgstr "Vērtība" + +#~ msgid "Distinguished Name" +#~ msgstr "Identifikācijas nosaukums" + +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "SASL atbalsts nav pieejams. Lūdzu pārkompilējiet libkldap ar Cyrus-SASL " +#~ "(vai savietojamu) klienta bibliotēku, vai sūdzieties jūsu distribūcijas " +#~ "pakotājiem." + +#~ msgid "LDAP Operations error" +#~ msgstr "LDAP operācijas kļūda" diff --git a/po/mk/kio_ldap.po b/po/mk/kio_ldap.po new file mode 100644 index 0000000..bb942b4 --- /dev/null +++ b/po/mk/kio_ldap.po @@ -0,0 +1,79 @@ +# Copyright (C) 2006, 2007 Free Software Foundation, Inc. +# translation of kio_ldap.po to Macedonian +# Bozidar Proevski , 2004, 2005. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2005-12-16 11:58+0100\n" +"Last-Translator: Bozidar Proevski \n" +"Language-Team: Macedonian \n" +"Language: mk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.9.1\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=n%10==1 ? 0 : n%10==2 ? 1 : " +"2;\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Додатни информации: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP серверот ја врати следната грешка: %1 %2\n" +"URL на LDAP беше: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP најава" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "страна:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Невалидна информација за авторизација." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "" + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, fuzzy, kde-format +msgid "The Ldif parser failed." +msgstr "LDIF анализаторот не успеа." + +#: kio_ldap.cpp:680 +#, fuzzy, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Невалидна LDIF датотека во линија %1." + +#~ msgid "Cannot set LDAP protocol version %1" +#~ msgstr "Не можам да ја поставам верзијата %1 на LDAP протоколот" + +#~ msgid "Cannot set size limit." +#~ msgstr "Не можам да поставам ограничување на големината." + +#~ msgid "Cannot set time limit." +#~ msgstr "Не можам да поставам ограничување на времето." + +#~ msgid "SASL authentication not compiled into the ldap ioslave." +#~ msgstr "" +#~ "Проверката за автентичност со SASL не е компајлирана во ldap ioslave." diff --git a/po/mr/kio_ldap.po b/po/mr/kio_ldap.po new file mode 100644 index 0000000..9507cd0 --- /dev/null +++ b/po/mr/kio_ldap.po @@ -0,0 +1,62 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Chetan Khona , 2013. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2013-03-13 15:24+0530\n" +"Last-Translator: Chetan Khona \n" +"Language-Team: Marathi \n" +"Language: mr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"X-Generator: Lokalize 1.5\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "एलडीएपी प्रवेश" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "साइट :" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "अवैध प्रमाणीकरण माहिती." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "" + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "" + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "" diff --git a/po/mr/libkldap5.po b/po/mr/libkldap5.po new file mode 100644 index 0000000..5e1d73a --- /dev/null +++ b/po/mr/libkldap5.po @@ -0,0 +1,319 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Chetan Khona , 2013. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2013-03-13 15:17+0530\n" +"Last-Translator: Chetan Khona \n" +"Language-Team: Marathi \n" +"Language: mr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"X-Generator: Lokalize 1.5\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "" + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "" + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "" + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "" +msgstr[1] "" + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "" + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "" + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "" + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "" + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "" + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "" + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "" + +#: widgets/addhostdialog.cpp:64 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Add Host" +msgstr "यजमान :" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "वापरकर्ता:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "बाइंड डीएन :" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "रीयल्म :" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "गुप्तशब्द :" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "यजमान :" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "पोर्ट :" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "एलडीएपी आवृत्ती :" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "मूलभूत" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "आकार मर्यादा :" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " सेकंद" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "मूलभूत" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "वेळ मर्यादा :" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "पेजिंग नाही" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "पान आकार :" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "प्रश्न सर्व्हर" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "गाळणी :" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "नाही" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "टीएलएस" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, fuzzy, kde-format +#| msgid "Security" +msgid "Security:" +msgstr "सुरक्षा" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "निनावी" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "साधी" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "एसएएसएल" + +#: widgets/ldapconfigwidget.cpp:241 +#, fuzzy, kde-format +#| msgid "Authentication" +msgid "Authentication:" +msgstr "अधिप्रमाणन" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "एसएएसएल मेकेनिज़्म :" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:309 +#, fuzzy, kde-format +#| msgid "LDAP Query" +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "एलडीएपी प्रश्न" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Servers" +#~ msgstr "एलडीएपी आवृत्ती :" + +#~ msgid "Attribute" +#~ msgstr "विशेषता" + +#~ msgid "Value" +#~ msgstr "मूल्य" + +#~ msgid "LDAP Operations error" +#~ msgstr "एलडीएपी ऑपरेशन त्रुटि" diff --git a/po/ms/kio_ldap.po b/po/ms/kio_ldap.po new file mode 100644 index 0000000..4be433d --- /dev/null +++ b/po/ms/kio_ldap.po @@ -0,0 +1,66 @@ +# kio_ldap Bahasa Melayu (Malay) (ms) +# Muhammad Najmi bin Ahmad Zabidi , 2004. +# Sharuzzaman Ahmat Raslan , 2010. +# translation of kio_ldap.po to Malay +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2010-11-05 08:28+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=1;\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Maklumat tambahan:" + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"Pelayan LDAP memulangkan ralat: %1 %2\n" +"URL LDAP adalah: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "Log masuk LDAP" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "tapak:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Maklumat pengesahan tidak sah." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "Sambungan LDAP dibatalkan." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Penghurai LDIF gagal." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Fail LDIF tidak sah di dalam baris %1." diff --git a/po/nb/kio_ldap.po b/po/nb/kio_ldap.po new file mode 100644 index 0000000..4885a61 --- /dev/null +++ b/po/nb/kio_ldap.po @@ -0,0 +1,68 @@ +# Translation of kio_ldap to Norwegian Bokmål +# +# Nils Kristian Tomren , 2007. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2007-10-07 15:46+0200\n" +"Last-Translator: MagicPO 0.3 (automated)\n" +"Language-Team: Norwegian Bokmål \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: MagicPO 0.3\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Environment: kde\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Ekstra informasjon:" + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP-tjeneren gav feilen: %1 %2\n" +"LDAP-stien var: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP innlogging" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "side:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Ugyldig autentiseringsinformasjon" + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "LDAP-tilkobling avbrutt." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Ldiffortolkeren feilet." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Ugyldig Ldif-fil på linje %1." diff --git a/po/nb/libkldap5.po b/po/nb/libkldap5.po new file mode 100644 index 0000000..77f4e7d --- /dev/null +++ b/po/nb/libkldap5.po @@ -0,0 +1,306 @@ +# Translation of libkldap5 to Norwegian Bokmål +# +# Bjørn Steensrud , 2007, 2008, 2009, 2010, 2014. +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2014-09-23 22:05+0200\n" +"Last-Translator: Bjørn Steensrud \n" +"Language-Team: Norwegian Bokmål \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Environment: kde\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "Ingen LDAP-støtte" + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Det oppsto en feil mens tilkoblingen ble klargjort." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Klarte ikke sette protokollversjon til %1." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Klarte ikke sette tidsgrense til %1 sekund." +msgstr[1] "Klarte ikke sette tidsgrense til %1 sekunder." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "" + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "" + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "TLS-støtte finnes ikke i LDAP klientbibliotekene." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Kan ikke sette størrelsesgrense." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Kan ikke sette tidsgrense." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Kan ikke klargjøre SASL-klienten." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"LDAP-støtte er ikke kompilert inn. Rekompiler libkldap med klientbiblioteker " +"fra OpenLDAP (eller kompatible), eller klag til den som pakker " +"distribusjonen." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "Får ikke tilgang til tjeneren. Endre oppsettet på den." + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Bruker:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "Bind DN:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Område:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Passord:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Vert:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Port:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "LDAP-versjon:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Standard" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Størrelsesgrense:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " sek" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Standard" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Tidsgrense:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Ingen sideveksling" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Sidestørrelse:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Spør tjener" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Filter:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Ingen" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anonym" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Enkel" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "SASL-mekanisme:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Ukjent feil ved kobling til %1" diff --git a/po/nds/kio_ldap.po b/po/nds/kio_ldap.po new file mode 100644 index 0000000..6a19242 --- /dev/null +++ b/po/nds/kio_ldap.po @@ -0,0 +1,65 @@ +# Translation of kio_ldap.po to Low Saxon +# +# Sönke Dibbern , 2005, 2006, 2007. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2007-03-25 23:59+0200\n" +"Last-Translator: Sönke Dibbern \n" +"Language-Team: Low Saxon \n" +"Language: nds\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Mehr Informatschonen: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"De LDAP-Server geev dissen Fehler torüch: %1 %2\n" +"De LDAP-URL weer: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP-Anmellen" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "Server:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Anmell-Informatschonen gellt nich" + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "LDAP-Verbinnen afbraken." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "De LDIF-Inleser hett keen Spood hatt." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "LDIF-Datei gellt nich, Reeg %1" diff --git a/po/nds/libkldap5.po b/po/nds/libkldap5.po new file mode 100644 index 0000000..12129ca --- /dev/null +++ b/po/nds/libkldap5.po @@ -0,0 +1,339 @@ +# Translation of libkldap.po to Low Saxon +# translation of libkldap.po to Low Saxon +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# Sönke Dibbern , 2007, 2008, 2009, 2014. +# Manfred Wiese , 2009, 2010, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2014-06-05 16:27+0200\n" +"Last-Translator: Sönke Dibbern \n" +"Language-Team: Low Saxon \n" +"Language: nds\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.4\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "LDAP warrt nich ünnerstütt..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Dat geev en Fehler bi't Torechtmaken vun't Tokoppeln." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Protokoll-Verschoon lett sik nich op %1 setten." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Tietgrenz lett sik nich op een Sekunn fastleggen." +msgstr[1] "Tietgrenz lett sik nich op %1 Sekunnen fastleggen." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "" + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:308 +#, fuzzy, kde-format +#| msgid "Cannot initialize the SASL client." +msgid "Could not initialize new TLS context." +msgstr "De SASL-Client lett sik nich torechtmaken." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "De LDAP-Clientbibliotheken ünnerstütt keen TLS." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Gröttgrenz lett sik nich fastleggen." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Tietgrenz lett sik nich fastleggen." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "De SASL-Client lett sik nich torechtmaken." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"Keen Ünnerstütten för LDAP inbuut. Kompileer \"libkldap\" bitte nochmaal mit " +"de Client-Bibliotheken vun OpenLDAP (oder mit anner, kompatibel " +"Bibliotheken), oder snack dor de Paketmakers vun Dien Distributschoon op an." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "Keen Togriep op Server. Bitte nieg instellen." + +#: widgets/addhostdialog.cpp:64 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Add Host" +msgstr "Reekner:" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Bruker:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "Anbinn-DN:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Rebeet:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Passwoort:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Reekner:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Port:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "LDAP-Verschoon:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Standard" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Gröttgrenz:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " s" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Standard" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Tietgrenz:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Nich opspleten" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Siedengrött:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Anfraag-Server" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Filter:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Keen" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, fuzzy, kde-format +#| msgid "Security" +msgid "Security:" +msgstr "Sekerheit" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anonüm" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Eenfach" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, fuzzy, kde-format +#| msgid "Authentication" +msgid "Authentication:" +msgstr "Identiteetprööv" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "SASL-Metood:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:309 +#, fuzzy, kde-format +#| msgid "LDAP Query" +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "LDAP-Anfraag" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Nich begäng Fehler bi't Tokoppeln na %1" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Servers" +#~ msgstr "LDAP-Verschoon:" + +#~ msgid "Attribute" +#~ msgstr "Attribut" + +#~ msgid "Value" +#~ msgstr "Weert" + +#~ msgid "Distinguished Name" +#~ msgstr "Kennnaam (DN)" + +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "Dat gifft keen Ünnerstütten för SASL. Kompileer \"libkldap\" bitte " +#~ "nochmaal mit de Client-Bibliotheken vun Cyrus-SASL (oder mit anner, " +#~ "kompatibel Bibliotheken), oder snack dor de Paketmakers vun Dien " +#~ "Distributschoon op an." + +#~ msgid "LDAP Operations error" +#~ msgstr "LDAP-Akschoonfehler" diff --git a/po/ne/kio_ldap.po b/po/ne/kio_ldap.po new file mode 100644 index 0000000..40954e5 --- /dev/null +++ b/po/ne/kio_ldap.po @@ -0,0 +1,68 @@ +# translation of kio_ldap.po to Nepali +# Nabin Gautam , 2006, 2007. +# Ishwor sharma , 2006. +# Mahesh Subedi , 2007. +# shyam krishna bal , 2007. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2007-08-20 10:54+0545\n" +"Last-Translator: Nabin Gautam \n" +"Language-Team: Nepali \n" +"Language: ne\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n !=1\n" +"\n" +"X-Generator: KBabel 1.11.4\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"अतिरिक्त सूचना: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP सर्भरले %1 %2 त्रुटि फर्कायो\n" +"LDAP यूआरएल: %3 थियो" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP लगइन" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "साइट:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "अवैध प्रमाणीकरण सूचना" + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "LDAP जडान रद्द गरियो ।" + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Ldif पद वर्णक असफल भयो ।" + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "%1 रेखामा LDIF फाइल अवैध छ ।" diff --git a/po/nl/docs/kioslave5/ldap/index.docbook b/po/nl/docs/kioslave5/ldap/index.docbook new file mode 100644 index 0000000..140b729 --- /dev/null +++ b/po/nl/docs/kioslave5/ldap/index.docbook @@ -0,0 +1,40 @@ + + + +]> + +
+ldap + + +&Lauri.Watts; &Lauri.Watts.mail; +&Otto.Bruggeman;&Rinse.Devries; + + + +ldap is het lichtgewicht directory acces protocol. Het biedt toegang tot een X.500-directory of naar een alleenstaande LDAP-server. + +U kunt deze io-slave als volgt gebruiken: + +ldap://host:poort/ou=People,o=waar,c=de??sub voor een zoekopdracht in een sub-boomstructuur + +of ldap://host:poort/cn=MM,ou=People,o=waar,c=de??basis voor een complete boomstructuur. + +
diff --git a/po/nl/kio_ldap.po b/po/nl/kio_ldap.po new file mode 100644 index 0000000..cb9abdf --- /dev/null +++ b/po/nl/kio_ldap.po @@ -0,0 +1,66 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Freek de Kruijf , 2016. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2016-04-04 12:51+0200\n" +"Last-Translator: Freek de Kruijf \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 1.5\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Aanvullende informatie: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"De LDAP-server gaf de volgende foutmelding: %1 %2\n" +"Het URL-adres van LDAP was: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP-login" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "site:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Ongeldige autorisatie-informatie." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "LDAP-verbinding geannuleerd." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "De LDIF-ontleding is mislukt." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Ongeldig LDIF-bestand op regel %1." diff --git a/po/nl/libkldap5.po b/po/nl/libkldap5.po new file mode 100644 index 0000000..acacaf0 --- /dev/null +++ b/po/nl/libkldap5.po @@ -0,0 +1,503 @@ +# translation of libkldap.po to Nederlands +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Bram Schoenmakers , 2007. +# Rinse de Vries , 2007. +# Antoon Tolboom , 2008. +# Freek de Kruijf , 2010, 2014, 2017, 2018, 2019, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2021-07-28 17:00+0200\n" +"Last-Translator: Freek de Kruijf \n" +"Language-Team: \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 21.04.3\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "Geen LDAP-ondersteuning..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Er deed zich een fout voor bij het opzetten van de verbinding." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Kan de protocolversie niet instellen op %1." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Kan de tijdslimiet niet instellen op %1 seconde." +msgstr[1] "Kan de tijdslimiet niet instellen op %1 seconden." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "Kon CA certificaatbestand niet instellen." + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "Ongeldige TLS vereiste certificaatmodus." + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "Kon TLS vereiste certificaatmodus niet instellen." + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "Kon nieuwe TLS-context niet initialiseren." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "" +"TLS-ondersteuning is niet beschikbaar in de LDAP-bibliotheken op de client." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Kan de maximale grootte niet instellen." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Kan de tijdslimiet niet instellen." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Kan de SASL-client niet initialiseren." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"LDAP-ondersteuning is niet meegecompileerd. Compileer libkldap opnieuw met " +"de OpenLDAP clientbibliotheken (of die daarmee compatibel zijn), of meld dit " +"aan uw distributie." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "Kan de server niet benaderen. Doe een herconfiguratie." + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "Host toevoegen" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" +"LDAP-wachtwoord is opgeslagen als leesbare tekst, wilt u het opslaan in " +"kwallet?" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "Wachtwoord in leesbare tekst opslaan in portefeuille" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "Host bewerken" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "Wilt u de instellingen voor host \"%1\" verwijderen?" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "Host verwijderen" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "Selecteer alle servers die zouden moeten worden gebruikt:" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "Host toevoege&n..." + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "Host b&ewerken..." + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "Host ve&rwijderen" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Gebruiker:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "Bind DN:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Domein:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Wachtwoord:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Hostnaam:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Poort:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "LDAP-versie:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Standaard" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Maximale grootte:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " sec" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Standaard" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Tijdslimiet:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Geen paging" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Pagegrootte:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Queryserver" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Filter:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Nee" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "Beveiliging:" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anoniem" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Eenvoudig" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "Authenticatie:" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "SASL-mechanisme:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "Server controleren" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "LDAP-query" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Onbekende fout bij verbinden met %1" + +#~ msgid "LDAP Servers" +#~ msgstr "LDAP-servers" + +#~ msgid "Attribute" +#~ msgstr "Attribuut" + +#~ msgid "Value" +#~ msgstr "Waarde" + +#~ msgid "Distinguished Name" +#~ msgstr "Unieke naam" + +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "SASL-ondersteuning is niet meegecompileerd. Compileer libkldap opnieuw " +#~ "met de Cyrus-SASL clientbibliotheken (of die daarmee compatibel zijn), of " +#~ "meld dit aan uw distributeur." + +#~ msgid "LDAP Operations error" +#~ msgstr "LDAP afhandelingsfout" + +#~ msgid "kcmldap" +#~ msgstr "kcmldap" + +#~ msgid "LDAP Server Settings" +#~ msgstr "LDAP-serverinstellingen" + +#~ msgid "(c) 2009 - 2010 Tobias Koenig" +#~ msgstr "(c) 2009 - 2010 Tobias Koenig" + +#~ msgid "Tobias Koenig" +#~ msgstr "Tobias Koenig" + +#~ msgctxt "@item LDAP search key" +#~ msgid "Title" +#~ msgstr "Titel" + +#~ msgid "Full Name" +#~ msgstr "Volledige naam" + +#~ msgctxt "@item LDAP search key" +#~ msgid "Email" +#~ msgstr "E-mail" + +#~ msgid "Home Number" +#~ msgstr "Telefoon privé" + +#~ msgid "Work Number" +#~ msgstr "Telefoon werk" + +#~ msgid "Mobile Number" +#~ msgstr "Mobiele telefoon" + +#~ msgid "Fax Number" +#~ msgstr "Faxnummer" + +#~ msgid "Pager" +#~ msgstr "Semafoon" + +#~ msgid "Street" +#~ msgstr "Straat" + +#~ msgctxt "@item LDAP search key" +#~ msgid "State" +#~ msgstr "Staat" + +#~ msgid "Country" +#~ msgstr "Land" + +#~ msgid "City" +#~ msgstr "Stad" + +#~ msgid "Organization" +#~ msgstr "Organisatie" + +#~ msgid "Company" +#~ msgstr "Bedrijf" + +#~ msgid "Department" +#~ msgstr "Afdeling" + +#~ msgid "Zip Code" +#~ msgstr "Postcode" + +#~ msgid "Postal Address" +#~ msgstr "Postadres" + +#~ msgid "Description" +#~ msgstr "Beschrijving" + +#~ msgid "User ID" +#~ msgstr "Gebruikers-id" + +#~ msgctxt "Search attribute: Name of contact" +#~ msgid "Name" +#~ msgstr "Naam" + +#~ msgctxt "Search attribute: Email of the contact" +#~ msgid "Email" +#~ msgstr "E-mail" + +#~ msgctxt "@title:column Column containing email addresses" +#~ msgid "Email" +#~ msgstr "E-mail" + +#~ msgctxt "" +#~ "@title:column Column containing the residential state of the address" +#~ msgid "State" +#~ msgstr "Staat" + +#~ msgctxt "@title:column Column containing title of the person" +#~ msgid "Title" +#~ msgstr "Titel" + +#~ msgid "Import Contacts from LDAP" +#~ msgstr "Contactpersonen uit LDAP importeren" + +#~ msgid "Search for Addresses in Directory" +#~ msgstr "Zoeken naar adressen in map" + +#~ msgid "Search for:" +#~ msgstr "Zoeken naar:" + +#~ msgctxt "In LDAP attribute" +#~ msgid "in" +#~ msgstr "in" + +#~ msgctxt "@item:inlistbox Name of the contact" +#~ msgid "Name" +#~ msgstr "Naam" + +#~ msgctxt "@item:inlistbox email address of the contact" +#~ msgid "Email" +#~ msgstr "E-mail" + +#~ msgctxt "@item:inlistbox" +#~ msgid "Home Number" +#~ msgstr "Telefoon privé" + +#~ msgctxt "@item:inlistbox" +#~ msgid "Work Number" +#~ msgstr "Telefoon werk" + +#~ msgid "Stop" +#~ msgstr "Stoppen" + +#~ msgctxt "@action:button Start searching" +#~ msgid "&Search" +#~ msgstr "&Zoeken" + +#~ msgid "Recursive search" +#~ msgstr "Recursieve zoekactie" + +#~ msgid "Contains" +#~ msgstr "Bevat" + +#~ msgid "Starts With" +#~ msgstr "Begint met" + +#~ msgid "Select All" +#~ msgstr "Alles selecteren" + +#~ msgid "Unselect All" +#~ msgstr "Alles deselecteren" + +#~ msgid "Add Selected" +#~ msgstr "Selectie toevoegen" + +#~ msgid "Configure LDAP Servers..." +#~ msgstr "LDAP-servers instellen..." + +#~ msgid "You must select an LDAP server before searching." +#~ msgstr "U moet een LDAP-server selecteren alvorens te gaan zoeken." + +#~ msgctxt "arguments are host name, datetime" +#~ msgid "Imported from LDAP directory %1 on %2" +#~ msgstr "Geïmporteerd van LDAP-map %1 op %2" + +#~ msgid "Configure the Address Book LDAP Settings" +#~ msgstr "De LDAP-instellingen voor uw adresboek configureren" + +#~ msgctxt "NAME OF TRANSLATORS" +#~ msgid "Your names" +#~ msgstr "Freek de Kruijf" + +#~ msgctxt "EMAIL OF TRANSLATORS" +#~ msgid "Your emails" +#~ msgstr "freekdekruijf@kde.nl" diff --git a/po/nn/kio_ldap.po b/po/nn/kio_ldap.po new file mode 100644 index 0000000..41c3828 --- /dev/null +++ b/po/nn/kio_ldap.po @@ -0,0 +1,70 @@ +# Translation of kio_ldap to Norwegian Nynorsk +# +# Gaute Hvoslef Kvalnes , 2004, 2005. +# Eirik U. Birkeland , 2008. +# Karl Ove Hufthammer , 2008. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2008-08-03 19:24+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Environment: kde\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Meir informasjon: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP-tenaren returnerte feilen: %1 %2\n" +"LDAP-adressa var: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP-brukarnamn" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "stad:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Ugyldige autorisasjonsopplysningar." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "LDAP-tilkoplinga vart avbroten." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "LDIF-tolkaren mislukkast." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Ugyldig LDIF-fil i linje %1." diff --git a/po/nn/libkldap5.po b/po/nn/libkldap5.po new file mode 100644 index 0000000..843c615 --- /dev/null +++ b/po/nn/libkldap5.po @@ -0,0 +1,307 @@ +# Translation of libkldap5 to Norwegian Nynorsk +# +# Karl Ove Hufthammer , 2008, 2020, 2022. +# Eirik U. Birkeland , 2008, 2009, 2010. +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2022-06-19 14:02+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 22.04.2\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Environment: kde\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "Inga støtte for LDAP …" + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Det oppstod ein feil under oppstart av tilkoplinga." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Klarar ikkje velja protokollversjon %1." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Klarar ikkje setja tidsgrensa til %1 sekund." +msgstr[1] "Klarar ikkje setja tidsgrensa til %1 sekund." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "Klarte ikkje velja sertifikatfil for sertifiseringsinstans." + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "Ugyldig kravmodus for TLS-sertifikat." + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "Klarte ikkje definera kravmodus for TLS-sertifikat." + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "Klarte ikkje gjera klar ny TLS-kontekst." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "TLS-støtte er ikkje tilgjengeleg i LDAP-klientbiblioteka." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Klarar ikkje velja storleiksgrense." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Klarar ikkje velja tidsgrense." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Klarar ikkje starta SASL-klienten." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"LDAP-støtte er ikkje innkompilert. Kompiler libkldap på nytt med " +"klientbiblioteka OpenLDAP (eller tilsvarande), eller klag til dei som har " +"pakka distribusjonen." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "Får ikkje tilgang til tenaren. Prøv å setja han opp på nytt." + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "Legg til vert" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "LDAP-passordet vert lagra som reintekst. Vil du lagra det i KWallet?" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "Lagra reintekst-passord i lommebok" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "Rediger vert" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "Ønskjer du å fjerna innstillingane for verten «%1»?" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "Fjern vert" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "Kryss av for alle tenarane som skal brukast:" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "&Legg til vert …" + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "&Rediger vert …" + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "&Fjern vert" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Brukar:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "Bind-DN:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Område:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Passord:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Vert:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Port:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "LDAP-versjon:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Standard" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Storleiksgrense:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " s" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Standard" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Tidsgrense:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Inga paginering" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Sidestorleik:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Spør tenar" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Filter:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Nei" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "Tryggleik:" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anonym" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Enkel" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "Autentisering:" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "SASL-mekanisme:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "Kontroller tenar" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "LDAP-spørjing" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Ukjend feil ved kopling til %1" diff --git a/po/pa/kio_ldap.po b/po/pa/kio_ldap.po new file mode 100644 index 0000000..b472d0d --- /dev/null +++ b/po/pa/kio_ldap.po @@ -0,0 +1,69 @@ +# translation of kio_ldap.po to Punjabi +# Amanpreet Singh Alam , 2004, 2005. +# Amanpreet Singh Brar , 2005. +# AP S Alam , 2007. +# A S Alam , 2007. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2007-08-06 21:07+0530\n" +"Last-Translator: A S Alam \n" +"Language-Team: Punjabi \n" +"Language: pa\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"\n" +"\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"ਹੋਰ ਜਾਣਕਾਰੀ: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP ਸਰਵਰ ਨੇ ਇਹ ਗਲਤੀ ਭੇਜੀ ਹੈ: %1 %2\n" +"LDAP URL ਸੀ: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP ਲਾਗਇਨ" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "ਸਾਇਟ:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "ਗਲਤ ਪਰਮਾਣਕਤਾ ਜਾਣਕਾਰੀ ਹੈ।" + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "LDAP ਕੁਨੈਕਸ਼ਨ ਰੱਦ ਕੀਤਾ ਗਿਆ।" + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Ldif ਪਾਰਸਰ ਅਸਫ਼ਲ ਹੈ।" + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "%1 ਲਾਇਨ ਵਿੱਚ ਗਲਤ Ldif ਫਾਇਲ ਹੈ।" diff --git a/po/pa/libkldap5.po b/po/pa/libkldap5.po new file mode 100644 index 0000000..9ec95f7 --- /dev/null +++ b/po/pa/libkldap5.po @@ -0,0 +1,336 @@ +# translation of libkldap.po to Punjabi +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# A S Alam , 2007, 2009. +# ASB , 2007. +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2009-01-20 09:03+0530\n" +"Last-Translator: A S Alam \n" +"Language-Team: Punjabi \n" +"Language: pa\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "ਕੋਈ LDAP ਸਹਿਯੋਗ ਨਹੀਂ..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "" + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "" + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "" +msgstr[1] "" + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "" + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "" + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "" + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "" + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "" + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "" + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "" + +#: widgets/addhostdialog.cpp:64 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Add Host" +msgstr "ਹੋਸਟ:" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:97 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Edit Host" +msgstr "ਹੋਸਟ:" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:315 +#, fuzzy, kde-format +#| msgid "Host:" +msgid "&Add Host..." +msgstr "ਹੋਸਟ:" + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "ਯੂਜ਼ਰ:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "Bind DN:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "ਰੀਲੇਅ:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "ਪਾਸਵਰਡ:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "ਹੋਸਟ:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "ਪੋਰਟ:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "LDAP ਵਰਜਨ:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "ਡਿਫਾਲਟ" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "ਆਕਾਰ ਲਿਮਟ:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " ਸਕਿੰਟ" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "ਡਿਫਾਲਟ" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "ਸਮਾਂ ਲਿਮਟ:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "ਪੇਜ਼ਿੰਗ ਨਹੀਂ" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "ਸਫ਼ਾ ਆਕਾਰ:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "ਕਿਊਰੀ ਸਰਵਰ" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "ਫਿਲਟਰ:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "ਨਹੀਂ" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, fuzzy, kde-format +#| msgid "Security" +msgid "Security:" +msgstr "ਸੁਰੱਖਿਆ" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "ਅਗਿਆਤ" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "ਸੈਂਪਲ" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, fuzzy, kde-format +#| msgid "Authentication" +msgid "Authentication:" +msgstr "ਪਰਮਾਣਕਿਤਾ" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "SASL ਢੰਗ:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:309 +#, fuzzy, kde-format +#| msgid "LDAP Query" +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "LDAP ਕਿਊਰੀ" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Servers" +#~ msgstr "LDAP ਵਰਜਨ:" + +#~ msgid "Attribute" +#~ msgstr "ਗੁਣ" + +#~ msgid "Value" +#~ msgstr "ਮੁੱਲ" + +#~ msgid "Distinguished Name" +#~ msgstr "ਹੋਸਟਹੋਸਟਹੋਸਟਹੋਸਟਹੋਸਟ" + +#~ msgid "LDAP Operations error" +#~ msgstr "LDAP ਓਪਰੇਸ਼ਨ ਗਲਤੀ" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Server Settings" +#~ msgstr "LDAP ਵਰਜਨ:" + +#, fuzzy +#~| msgid "User:" +#~ msgid "User ID" +#~ msgstr "ਯੂਜ਼ਰ:" diff --git a/po/pl/kio_ldap.po b/po/pl/kio_ldap.po new file mode 100644 index 0000000..dc54ee2 --- /dev/null +++ b/po/pl/kio_ldap.po @@ -0,0 +1,67 @@ +# translation of kio_ldap.po to +# Krzysztof Lichota , 2004, 2005. +# Marta Rybczyńska , 2007. +# Łukasz Wojniłowicz , 2019. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2019-01-20 07:31+0100\n" +"Last-Translator: Łukasz Wojniłowicz \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 19.03.70\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Dodatkowe informacje: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"Serwer LDAP zwrócił błąd: %1 %2\n" +"Użyty URL LDAP: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "Logowanie LDAP" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "serwer:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Błędne dane autoryzacji." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "Porzucono połączenie LDAP." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Analizator składni Ldif zakończył pracę z błędem." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Błędny plik Ldif w wierszu %1." diff --git a/po/pl/libkldap5.po b/po/pl/libkldap5.po new file mode 100644 index 0000000..843de58 --- /dev/null +++ b/po/pl/libkldap5.po @@ -0,0 +1,332 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Łukasz Wojniłowicz , 2014, 2017, 2018, 2021. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2021-08-08 09:01+0200\n" +"Last-Translator: Łukasz Wojniłowicz \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 20.12.1\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "Brak obsługi LDAP..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Podczas fazy inicjacji połączenia nastąpił błąd." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Nie można ustawić wersji protokołu na %1." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Nie można ustawić ograniczenia czasowego na %1 sekundę." +msgstr[1] "Nie można ustawić ograniczenia czasowego na %1 sekundy." +msgstr[2] "Nie można ustawić ograniczenia czasowego na %1 sekund." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "Nie można ustawić pliku certyfikatu CA." + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "Nieprawidłowy tryb TLS żądania certyfikatu." + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "Nie można ustawić trybu TLS żądania certyfikatu." + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "Nie można zainicjować nowego kontekstu TLS." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "Obsługa TLS jest niedostępna w bibliotekach klienta LDAP." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Nie można ustawić ograniczenia rozmiaru." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Nie można ustawić ograniczenia czasowego." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Nie można zainicjować klienta SASL." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"Obsługa LDAP nie została wkompilowana. Proszę ponownie skompilować z " +"bibliotekami klienta OpenLDAP (lub zgodnymi) lub zgłosić problem autorom " +"swojej dystrybucji." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "Nie można uzyskać dostępu do serwera. Proszę ustawić go ponownie." + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "Dodaj gospodarza" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" +"Hasło LDAP jest przechowywane jako zwykły tekst, czy zapisać je zamiast tego " +"w portfelu?" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "Przechowuj hasło jako zwykły tekst w Portfelu" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "Zmień gospodarza" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "Czy usunąć ustawienia dla gospodarza \"%1\"?" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "Usuń gospodarza" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "Sprawdź wszystkie serwery, które powinny być użyte:" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "Dod&aj gospodarza..." + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "Zmi&eń gospodarza..." + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "Usuń gospoda&rza" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Użytkownik:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "Powiązane DN:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Dziedzina:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Hasło:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Gospodarz:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Port:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "Wersja LDAP:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Domyślny" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Ograniczenie rozmiaru:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " sek." + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Domyślne" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Ograniczenie czasowe:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Bez stronicowania" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Rozmiar strony:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Serwer zapytań" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Filtr:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Nie" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "Bezpieczeństwo:" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anonimowe" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Proste" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "Uwierzytelnianie:" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "Mechanizm SASL:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "Sprawdź serwer" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "Zapytanie LDAP" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Nieznany błąd przy łączeniu do %1" + +#~ msgid "LDAP Servers" +#~ msgstr "Serwery LDAP" + +#~ msgid "Attribute" +#~ msgstr "Atrybut" + +#~ msgid "Value" +#~ msgstr "Wartość" + +#~ msgid "Distinguished Name" +#~ msgstr "Wyróżniona nazwa (DN)" + +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "Brak obsługi SASL. Proszę ponownie skomplikować libkldap z bibliotekami " +#~ "klienta Cyrus-SASL (lub zgodnymi) lub zgłosić problem autorom swojej " +#~ "dystrybucji." + +#~ msgid "LDAP Operations error" +#~ msgstr "Błąd operacji LDAP" diff --git a/po/pt/docs/kioslave5/ldap/index.docbook b/po/pt/docs/kioslave5/ldap/index.docbook new file mode 100644 index 0000000..b0b7365 --- /dev/null +++ b/po/pt/docs/kioslave5/ldap/index.docbook @@ -0,0 +1,54 @@ + + + +]> + +
+ldap + + +&Lauri.Watts; &Lauri.Watts.mail; +JoséPires
zepires@gmail.com
Tradução
+
+
+ +O LDAP é o protocolo simples de acesso a directórios. Providencia o acesso a um directório de X.500 ou a um servidor de LDAP autónomo. + +Poderá usar o 'kioslave' de LDAP da seguinte maneira: + +ldap://maquina:porto/ou=Pessoas,o=onde,c=de??sub para uma pesquisa na sub-árvore. + +ou ldap://maquina:porto/cn=MM,ou=Pessoas,o=onde,c=de??base para um ramo completo. + +
diff --git a/po/pt/kio_ldap.po b/po/pt/kio_ldap.po new file mode 100644 index 0000000..c111f1e --- /dev/null +++ b/po/pt/kio_ldap.po @@ -0,0 +1,66 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2016-04-04 11:45+0000\n" +"Last-Translator: José Nuno Coelho Pires \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Informação adicional: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"O servidor LDAP devolveu o seguinte erro: %1 %2\n" +"O URL de LDAP era: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "Ligação LDAP" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "máquina:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Informação de autorização inválida." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "A ligação de LDAP foi cancelada." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "O processador de LDIF falhou." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "O ficheiro LDIF tem dados inválidos na linha %1." diff --git a/po/pt/libkldap5.po b/po/pt/libkldap5.po new file mode 100644 index 0000000..fe7249b --- /dev/null +++ b/po/pt/libkldap5.po @@ -0,0 +1,307 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2021-07-24 20:14+0100\n" +"Last-Translator: José Nuno Coelho Pires \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-POFile-SpellExtra: DN OpenLDAP libkldap Cyrus Koenig Pager kcmldap AC\n" +"X-POFile-SpellExtra: KWallet\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "Sem Suporte para LDAP..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Ocorreu um erro na fase de inicialização da ligação." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Não é possível configurar a versão do protocolo como %1." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Não foi possível modificar o tempo-limite para %1 segundo." +msgstr[1] "Não foi possível modificar o tempo-limite para %1 segundos." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "Não foi possível definir o ficheiro do certificado da AC." + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "O modo do pedido de certificado TLS é inválido." + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "Não foi possível definir o modo de pedido de certificado TLS." + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "Não foi possível inicializar um novo contexto de TLS." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "O suporte de TLS não está disponível nas bibliotecas-clientes do LDAP." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Não foi possível colocar limite de tamanho." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Não foi possível colocar limite de tempo." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Não é possível inicializar o cliente de SASL." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"O suporte para LDAP não foi integrado na compilação. Compile de novo a " +"libkldap com as bibliotecas-clientes do OpenLDAP (ou compatível), ou peça-o " +"aos criadores de pacotes da sua distribuição." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "Não é possível aceder ao servidor. Reconfigure-o, por favor." + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "Adicionar uma Máquina" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" +"A senha de LDAP é guardada em texto simples; deseja guardá-la no KWallet?" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "Guardar a senha em texto simples no KWallet" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "Editar a Máquina" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "Deseja remover a definição da máquina \"%1\"?" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "Remover a Máquina" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "Assinale todos os servidores que deverá usar:" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "&Adicionar uma Máquina..." + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "&Editar a Máquina..." + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "&Remover a Máquina" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Utilizador:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "DN de ligação:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Reino:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Senha:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Máquina:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Porto:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "Versão LDAP:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Predefinição" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Limite de tamanho:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " s" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Predefinição" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Limite de tempo:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Sem paginação" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Tamanho da página:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Procurar no Servidor" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Filtro:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Não" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "Segurança:" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anónimo" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Simples" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "Autenticação:" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "Mecanismo SASL:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "Verificar o servidor" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "Pesquisa LDAP" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Ocorreu um erro desconhecido ao ligar-se a %1" diff --git a/po/pt_BR/docs/kioslave5/ldap/index.docbook b/po/pt_BR/docs/kioslave5/ldap/index.docbook new file mode 100644 index 0000000..00895b0 --- /dev/null +++ b/po/pt_BR/docs/kioslave5/ldap/index.docbook @@ -0,0 +1,68 @@ + + + +]> + +
+ldap + + +&Lauri.Watts; &Lauri.Watts.mail; +Lisiane Sztoltz
lisiane@conectiva.com.br
Tradução
André MarceloAlvarenga
andrealvarenga@gmx.net
Revisão da tradução
+
+
+ +O ldap é um protocolo de acesso a serviço de diretório, e fornece acesso a um diretório X.500, ou a um servidor LDAP independente. + +Você pode usar o kioslave do ldap da seguinte forma: + +ldap://máquina:porta/ou=People,o=onde,c=br??sub para uma consulta pela subárvore + +ou ldap://máquina:porta/cn=MM,ou=People,o=onde,c=br??base para uma ramificação completa. + +
diff --git a/po/pt_BR/kio_ldap.po b/po/pt_BR/kio_ldap.po new file mode 100644 index 0000000..94407dc --- /dev/null +++ b/po/pt_BR/kio_ldap.po @@ -0,0 +1,67 @@ +# Translation of kio_ldap.po to Brazilian Portuguese +# Copyright (C) 2016 This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# André Marcelo Alvarenga , 2016. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2016-04-04 23:22-0300\n" +"Last-Translator: André Marcelo Alvarenga \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Lokalize 2.0\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Informações adicionais: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"O servidor LDAP retornou o seguinte erro: %1 %2\n" +"A URL do LDAP era o seguinte: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "Login do LDAP" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "site:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Informações de autorização inválidas." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "Conexão LDAP cancelada." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "O analisador de Ldif falhou." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Arquivo Ldif inválido na linha %1." diff --git a/po/pt_BR/libkldap5.po b/po/pt_BR/libkldap5.po new file mode 100644 index 0000000..689ad68 --- /dev/null +++ b/po/pt_BR/libkldap5.po @@ -0,0 +1,329 @@ +# Translation of libkldap5.po to Brazilian Portuguese +# Copyright (C) 2007-2018 This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Diniz Bortolotto , 2007. +# André Marcelo Alvarenga , 2008, 2009, 2010, 2014, 2018. +# Luiz Fernando Ranghetti , 2010, 2019, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: libkldap5\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2021-08-04 10:44-0300\n" +"Last-Translator: Luiz Fernando Ranghetti \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Lokalize 21.04.3\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "Sem suporte ao LDAP..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Ocorreu um erro durante a fase de inicialização da conexão." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Não foi possível definir a versão do protocolo para %1." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Não foi possível definir o tempo de espera para %1 segundo." +msgstr[1] "Não foi possível definir o tempo de espera para %1 segundos." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "Não foi possível definir o arquivo de certificado da AC." + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "O modo da requisição de certificado TLS é inválido." + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "Não foi possível definir o modo de requisição de certificado TLS." + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "Não foi possível inicializar um novo contexto de TLS." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "O suporte ao TLS não está disponível nas bibliotecas do cliente LDAP." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Não foi possível definir o limite de tamanho." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Não foi possível definir o limite de tempo." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Não foi possível inicializar o cliente SASL." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"O suporte ao LDAP não foi incluído na compilação. Por favor, recompile a " +"libkldap com as bibliotecas do cliente OpenLDAP (ou compatível), ou solicite " +"aos criadores dos pacotes da sua distribuição." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "Não foi possível acessar o servidor. Reconfigure-o." + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "Adicionar máquina" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" +"A senha LDAP está armazenada em texto simples. Deseja armazená-la no KWallet?" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "Armazenar a senha em texto simples na carteira" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "Editar máquina" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "Deseja remover a configuração da máquina \"%1\"?" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "Remover máquina" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "Selecione todos os servidores que devem ser usados:" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "&Adicionar máquina..." + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "&Editar máquina..." + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "&Remover máquina" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Usuário:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "Associar ND:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Domínio:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Senha:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Máquina:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Porta:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "Versão LDAP:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Padrão" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Limite de tamanho:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " s" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Padrão" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Limite de tempo:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Sem paginação" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Tamanho da página:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Procurar no servidor" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "ND:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Filtro:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Não" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "Segurança:" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anônimo" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Simples" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "Autenticação:" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "Mecanismo SASL:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "Verificar servidor" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "Consulta LDAP" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Ocorreu um erro desconhecido ao conectar-se em %1" + +#~ msgid "LDAP Servers" +#~ msgstr "Servidores LDAP" + +#~ msgid "Attribute" +#~ msgstr "Atributo" + +#~ msgid "Value" +#~ msgstr "Valor" + +#~ msgid "Distinguished Name" +#~ msgstr "Nome distinto" + +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "O suporte a SASL não está disponível. Por favor, recompile a libkldap com " +#~ "as bibliotecas do cliente Cyrus-SASL (ou compatível), ou solicite aos " +#~ "criadores dos pacotes da sua distribuição." diff --git a/po/ro/kio_ldap.po b/po/ro/kio_ldap.po new file mode 100644 index 0000000..1350dcf --- /dev/null +++ b/po/ro/kio_ldap.po @@ -0,0 +1,66 @@ +# Traducerea kio_ldap.po în Română +# Claudiu Costin , 2004. +# Sergiu Bivol , 2008. +# translation of kio_ldap.po to Romanian +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2008-03-14 16:09+0200\n" +"Last-Translator: Sergiu Bivol \n" +"Language-Team: Română \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2;\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Informație sulimentară:" + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"Serverul LDAP a returnat următoarea eroare: %1 %2\n" +"URL-ul LDAP a fost: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "Autentificare LDAP" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "sit:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Informații de autorizare eronate." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "Conexiune LDAP revocată." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Analizorul LDIF a eșuat." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Fișier LDIF eronat la linia %1." diff --git a/po/ro/libkldap5.po b/po/ro/libkldap5.po new file mode 100644 index 0000000..67a70b8 --- /dev/null +++ b/po/ro/libkldap5.po @@ -0,0 +1,337 @@ +# translation of libkldap to Romanian +# Copyright (C) 2008 This_file_is_part_of_KDE +# This file is distributed under the same license as the libkldap package. +# Laurenţiu Buzdugan , 2008". +# Sergiu Bivol , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2009-01-05 10:56+0200\n" +"Last-Translator: Sergiu Bivol \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2;\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "Niciun suport LDAP..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "" + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Imposibil de stabilit versiunea protocolului la %1." + +#: core/ldapconnection.cpp:257 +#, fuzzy, kde-format +#| msgid "Cannot set timeout to %1 seconds." +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Imposibil de stabilit temporizarea la %1 secunde." +msgstr[1] "Imposibil de stabilit temporizarea la %1 secunde." +msgstr[2] "Imposibil de stabilit temporizarea la %1 secunde." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "" + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:308 +#, fuzzy, kde-format +#| msgid "Cannot initialize the SASL client." +msgid "Could not initialize new TLS context." +msgstr "Imposibil de inițializat clientul SASL." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "" +"Suportul pentru TLS nu este disponibil în bibliotecile clientului LDAP." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Imposibil de stabilit limita de dimensiune." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Imposibil de stabilit limita de timp." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Imposibil de inițializat clientul SASL." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "" + +#: widgets/addhostdialog.cpp:64 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Add Host" +msgstr "Gazdă:" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:97 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Edit Host" +msgstr "Gazdă:" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:315 +#, fuzzy, kde-format +#| msgid "Host:" +msgid "&Add Host..." +msgstr "Gazdă:" + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Utilizator:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Domeniu:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Parolă:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Gazdă:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Port:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "Versiune LDAP:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Implicită" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Limită dimensiune:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " sec" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Implicită" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Limită de timp:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Fără paginare" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Dimensiune pagină:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Interoghează serverul" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Filtru:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Fără" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, fuzzy, kde-format +#| msgid "Security" +msgid "Security:" +msgstr "Securitate" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anonim" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Simplă" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, fuzzy, kde-format +#| msgid "Authentication" +msgid "Authentication:" +msgstr "Autentificare" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "Mecanism SASL:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:309 +#, fuzzy, kde-format +#| msgid "LDAP Query" +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "Interogare LDAP" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Servers" +#~ msgstr "Versiune LDAP:" + +#~ msgid "Attribute" +#~ msgstr "Atribut" + +#~ msgid "Value" +#~ msgstr "Valoare" + +#~ msgid "LDAP Operations error" +#~ msgstr "Eroare operații LDAP" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Server Settings" +#~ msgstr "Versiune LDAP:" + +#, fuzzy +#~| msgid "User:" +#~ msgid "User ID" +#~ msgstr "Utilizator:" diff --git a/po/ru/docs/kioslave5/ldap/index.docbook b/po/ru/docs/kioslave5/ldap/index.docbook new file mode 100644 index 0000000..c4263d1 --- /dev/null +++ b/po/ru/docs/kioslave5/ldap/index.docbook @@ -0,0 +1,54 @@ + + + +]> + +
+ldap + + +&Lauri.Watts; &Lauri.Watts.mail; +
+
+
+ +ldap — это простой протокол доступа к каталогам (lightweight directory access protocol). Он предоставляет доступ к каталогу X.500 или серверу LDAP. + +Вы можете использовать этот протокол так: + +ldap://host:port/ou=People,o=where,c=de??sub (запрос поддерева) + +или так: ldap://host:port/cn=MM,ou=People,o=where,c=de??base (полная ветвь). + +
diff --git a/po/ru/kio_ldap.po b/po/ru/kio_ldap.po new file mode 100644 index 0000000..718ac9f --- /dev/null +++ b/po/ru/kio_ldap.po @@ -0,0 +1,83 @@ +# translation of kio_ldap.po into Russian +# +# Gregory Mokhin , 2005. +# Andrey Cherepanov , 2009. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2009-03-24 19:01+0300\n" +"Last-Translator: Andrey Cherepanov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 0.3\n" +"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Environment: kde\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Дополнительная информация: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"Ошибка сервера LDAP: %1 %2\n" +"URL LDAP: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "Вход в LDAP" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "сайт:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Неверные данные для идентификации." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "Подключение к LDAP прервано." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Ошибка обработки файла LDIF." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Неверный файл LDIF указан в строке %1." + +#~ msgid "Cannot set LDAP protocol version %1" +#~ msgstr "Не удаётся задать версию протокола LDAP %1" + +#~ msgid "Cannot set size limit." +#~ msgstr "Не удаётся задать предельный размер." + +#~ msgid "Cannot set time limit." +#~ msgstr "Не удаётся задать лимит времени." + +#~ msgid "SASL authentication not compiled into the ldap ioslave." +#~ msgstr "" +#~ "Идентификация с помощью SASL не была включена при сборке ldap ioslave." diff --git a/po/ru/libkldap5.po b/po/ru/libkldap5.po new file mode 100644 index 0000000..0d2a739 --- /dev/null +++ b/po/ru/libkldap5.po @@ -0,0 +1,8723 @@ +# KDE3 - kdelibs/kdelibs.po Russian translation. +# Copyright (C) 2005, KDE Russian translation team. +# +# Denis Perchine , 2000. +# Gregory Mokhin , 2000, 2004, 2005. +# Albert R. Valiev , 2002. +# Leonid Kanter , 2002-2004, 2005. +# Nick Shafff , 2004. +# Andrey Cherepanov , 2005-2007. +# Nick Shaforostoff , 2006. +# Andrey Cherepanov , 2009. +# Alexander Potashev , 2011, 2014. +# Alexander Yavorsky , 2018, 2020, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: kdelibs\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2022-10-02 14:59+0300\n" +"Last-Translator: Alexander Yavorsky \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 21.08.3\n" +"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Environment: kde\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "Нет поддержки LDAP..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Ошибка при установлении подключения." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Невозможно установить версию протокола %1." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Невозможно установить время ожидания в %1 секунду." +msgstr[1] "Невозможно установить время ожидания в %1 секунды." +msgstr[2] "Невозможно установить время ожидания в %1 секунд." +msgstr[3] "Невозможно установить время ожидания в 1 секунду." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "Не удалось установить файл сертификата удостоверяющего центра." + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "Неверный режим TLS, требуемый сертификатом." + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "Не удалось установить требуемый сертификатом режим TLS." + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "Не удалось инициализировать новый контекст TLS." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "Нет поддержки TLS в клиентских библиотеках LDAP." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Невозможно установить лимит размера." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Невозможно установить лимит времени." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Невозможно запустить клиент SASL." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"Нет поддержки LDAP. Соберите libkldap с библиотеками клиента OpenLDAP (или " +"совместимыми) или попросите сделать это поставщика вашего дистрибутива." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "Не удалось получить доступ к серверу, настройте его." + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "Добавление сервера" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" +"Пароль LDAP сохраняется в открытом виде, хотите хранить его в безопасном " +"бумажнике KWallet?" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "Сохранение открытого пароля в бумажнике KDE" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "Изменение конфигурации сервера" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "Удалить конфигурацию для сервера «%1»?" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "Удаление сервера" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "Выберите все серверы, которые должны быть использованы:" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "&Добавить сервер..." + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "&Изменить сервер..." + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "&Удалить сервер" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Пользователь:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Роль:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Пароль:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Адрес сервера:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Порт:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "Версия LDAP:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "По умолчанию" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Размер:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " с" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "По умолчанию" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Время:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Нет страничного обмена" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Размер страницы:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Получить с сервера" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Фильтр:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Нет" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "Защита:" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Анонимно" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Простая" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "Аутентификация:" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "Механизм SASL:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "Проверьте сервер" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "Запрос LDAP" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Неизвестная ошибка при подключении к %1" + +#~ msgid "LDAP Servers" +#~ msgstr "Серверы LDAP" + +#~ msgid "Attribute" +#~ msgstr "Атрибут" + +#~ msgid "Value" +#~ msgstr "Значение" + +#~ msgid "Distinguished Name" +#~ msgstr "DN" + +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "Нет поддержки SASL. Соберите libkldap с библиотеками клиента Cyrus-SASL " +#~ "(или совместимыми) или попросите сделать это поставщика вашего " +#~ "дистрибутива." + +#~ msgid "LDAP Operations error" +#~ msgstr "Ошибка операции с LDAP" + +#, fuzzy +#~| msgid "&Save Settings" +#~ msgid "LDAP Server Settings" +#~ msgstr "&Сохранить параметры" + +#, fuzzy +#~| msgid "(c) 2003 Tobias Koenig" +#~ msgid "(c) 2009 - 2010 Tobias Koenig" +#~ msgstr "(c) 2003 Tobias Koenig" + +#, fuzzy +#~| msgid "(c) 2003 Tobias Koenig" +#~ msgid "Tobias Koenig" +#~ msgstr "(c) 2003 Tobias Koenig" + +#, fuzzy +#~| msgid "Title:" +#~ msgctxt "@item LDAP search key" +#~ msgid "Title" +#~ msgstr "Заголовок:" + +#, fuzzy +#~| msgid "Family Name" +#~ msgid "Full Name" +#~ msgstr "Фамилия" + +#, fuzzy +#~| msgid "Email" +#~ msgctxt "@item LDAP search key" +#~ msgid "Email" +#~ msgstr "E-mail" + +#, fuzzy +#~| msgid "Telephone Number" +#~ msgid "Home Number" +#~ msgstr "Номер телефона" + +#, fuzzy +#~| msgid "of November" +#~ msgid "Work Number" +#~ msgstr "ноября" + +#, fuzzy +#~| msgid "Middle Name" +#~ msgid "Mobile Number" +#~ msgstr "Отчество" + +#~ msgid "Pager" +#~ msgstr "Пейджер" + +#~ msgid "Street" +#~ msgstr "Улица" + +#, fuzzy +#~| msgid "State" +#~ msgctxt "@item LDAP search key" +#~ msgid "State" +#~ msgstr "Состояние" + +#~ msgid "Country" +#~ msgstr "Страна" + +#~ msgid "City" +#~ msgstr "Город" + +#~ msgid "Organization" +#~ msgstr "Организация" + +#, fuzzy +#~| msgid "Copy" +#~ msgid "Company" +#~ msgstr "Копировать" + +#~ msgid "Department" +#~ msgstr "Отдел" + +#, fuzzy +#~| msgid "Zipcode" +#~ msgid "Zip Code" +#~ msgstr "Индекс" + +#, fuzzy +#~| msgid "Email Address" +#~ msgid "Postal Address" +#~ msgstr "Адрес электронной почты" + +#, fuzzy +#~| msgid "Description:" +#~ msgid "Description" +#~ msgstr "Описание:" + +#, fuzzy +#~| msgid "User:" +#~ msgid "User ID" +#~ msgstr "Пользователь:" + +#, fuzzy +#~| msgid "Name" +#~ msgctxt "Search attribute: Name of contact" +#~ msgid "Name" +#~ msgstr "Имя" + +#, fuzzy +#~| msgid "Email" +#~ msgctxt "Search attribute: Email of the contact" +#~ msgid "Email" +#~ msgstr "E-mail" + +#, fuzzy +#~| msgid "Email" +#~ msgctxt "@title:column Column containing email addresses" +#~ msgid "Email" +#~ msgstr "E-mail" + +#, fuzzy +#~| msgid "State" +#~ msgctxt "" +#~ "@title:column Column containing the residential state of the address" +#~ msgid "State" +#~ msgstr "Состояние" + +#, fuzzy +#~| msgid "Title:" +#~ msgctxt "@title:column Column containing title of the person" +#~ msgid "Title" +#~ msgstr "Заголовок:" + +#, fuzzy +#~| msgid "&Search:" +#~ msgid "Search for:" +#~ msgstr "&Поиск:" + +#, fuzzy +#~| msgid "Win" +#~ msgctxt "In LDAP attribute" +#~ msgid "in" +#~ msgstr "Win" + +#, fuzzy +#~| msgid "Name" +#~ msgctxt "@item:inlistbox Name of the contact" +#~ msgid "Name" +#~ msgstr "Имя" + +#, fuzzy +#~| msgid "Email" +#~ msgctxt "@item:inlistbox email address of the contact" +#~ msgid "Email" +#~ msgstr "E-mail" + +#, fuzzy +#~| msgid "Telephone Number" +#~ msgctxt "@item:inlistbox" +#~ msgid "Home Number" +#~ msgstr "Номер телефона" + +#, fuzzy +#~| msgid "of November" +#~ msgctxt "@item:inlistbox" +#~ msgid "Work Number" +#~ msgstr "ноября" + +#~ msgid "Stop" +#~ msgstr "Стоп" + +#, fuzzy +#~| msgid "&Search" +#~ msgctxt "@action:button Start searching" +#~ msgid "&Search" +#~ msgstr "&Поиск" + +#, fuzzy +#~| msgid "Recursive search for domains" +#~ msgid "Recursive search" +#~ msgstr "Рекурсивный поиск доменов" + +#, fuzzy +#~| msgid "Contents" +#~ msgid "Contains" +#~ msgstr "Содержание" + +#~ msgid "Select All" +#~ msgstr "Выделить все" + +#, fuzzy +#~| msgid "Select All" +#~ msgid "Unselect All" +#~ msgstr "Выделить все" + +#, fuzzy +#~| msgid "Selected" +#~ msgid "Add Selected" +#~ msgstr "Выделено" + +#, fuzzy +#~| msgid "Configure S&hortcuts..." +#~ msgid "Configure LDAP Servers..." +#~ msgstr "&Комбинации клавиш..." + +#~ msgid "Editor Chooser" +#~ msgstr "Редактор по умолчанию" + +#~ msgid "" +#~ "Please choose the default text editing component that you wish to use in " +#~ "this application. If you choose System Default, the application " +#~ "will honor your changes in the Control Center. All other choices will " +#~ "override that setting." +#~ msgstr "" +#~ "Выберите основной компонент редактирования текста, который вы хотите " +#~ "использовать с этим приложением. Если вы выберете По умолчанию, " +#~ "приложение будет соблюдать выбор, сделанный вами в Центре управления. Все " +#~ "остальные варианты будут более приоритетны, чем установленный в Центре " +#~ "управления параметр." + +#~ msgid "&Certificate" +#~ msgstr "С&ертификат" + +#~ msgid "Alternate shortcut:" +#~ msgstr "Альтернативная комбинация:" + +#~ msgid "Primary shortcut:" +#~ msgstr "Основная комбинация:" + +#~ msgid "" +#~ "The currently set shortcut or the shortcut you are entering will show up " +#~ "here." +#~ msgstr "Здесь отображается текущая или вводимая вами комбинация." + +#~ msgid "x" +#~ msgstr "x" + +#~ msgid "Clear shortcut" +#~ msgstr "Очистить комбинацию" + +#~ msgid "Multi-key mode" +#~ msgstr "Многоклавишный режим" + +#~ msgid "Enable the entry of multi-key shortcuts" +#~ msgstr "Разрешить ввод многоклавишных комбинаций" + +#~ msgid "" +#~ "Select this checkbox to enable the entry of multi-key shortcuts. A multi-" +#~ "key shortcut consists of a sequence of up to 4 keys. For example, you " +#~ "could assign \"Ctrl+F,B\" to Font-Bold and \"Ctrl+F,U\" to Font-Underline." +#~ msgstr "" +#~ "Установите этот параметр, чтобы включить поддержку многоклавишных " +#~ "комбинаций. Многоклавишная комбинация может включать последовательность " +#~ "до 4 клавиш. Например, можно назначить \"Ctrl+F,B\" для включения курсива " +#~ "или \"Ctrl+F,U\" - для подчёркивания." + +#~ msgid "&File" +#~ msgstr "&Файл" + +#~ msgid "&Game" +#~ msgstr "&Игра" + +#~ msgid "&Edit" +#~ msgstr "&Правка" + +#~ msgid "" +#~ "_: Menu title\n" +#~ "&Move" +#~ msgstr "&Ход" + +#~ msgid "&View" +#~ msgstr "&Вид" + +#~ msgid "&Go" +#~ msgstr "Пе&рейти" + +#~ msgid "&Bookmarks" +#~ msgstr "&Закладки" + +#~ msgid "&Tools" +#~ msgstr "С&ервис" + +#~ msgid "&Settings" +#~ msgstr "&Настройка" + +#~ msgid "Main Toolbar" +#~ msgstr "Основная панель инструментов" + +#~ msgid "Shortcut:" +#~ msgstr "Комбинация:" + +#~ msgid "Alt+Tab" +#~ msgstr "Alt+Tab" + +#~ msgid "Unknown word:" +#~ msgstr "Неизвестное слово:" + +#~ 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 don't 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" +#~ "
" + +#~ msgid "misspelled" +#~ msgstr "ошибочно" + +#~ msgid "Unknown word" +#~ msgstr "Неизвестное слово" + +#~ msgid "&Language:" +#~ msgstr "&Язык:" + +#~ msgid "" +#~ "\n" +#~ "

Select the language of the document you are proofing here.

\n" +#~ "
" +#~ msgstr "" +#~ "\n" +#~ "

Выберите язык проверяемого документа.

\n" +#~ "
" + +#~ msgid "... the misspelled word shown in context ..." +#~ msgstr "...ошибочное слово показано в контексте ..." + +#~ msgid "Text excerpt showing the unknown word in its context." +#~ msgstr "Отрывок текста со словом, содержащим ошибку." + +#~ msgid "" +#~ "\n" +#~ "

Here you can see a text excerpt showing the unknown word in its " +#~ "context. If this information is not sufficient to choose the best " +#~ "replacement for the unknown word, you can click on the document you are " +#~ "proofing, read a larger part of the text and then return here to continue " +#~ "proofing.

\n" +#~ "
" +#~ msgstr "" +#~ "\n" +#~ "

Здесь отображается контекст слова, содержащего ошибку. Если этого " +#~ "отрывка недостаточно, щёлкните по документу, прочтите большую часть " +#~ "текста и вернитесь в проверку орфографии.

\n" +#~ "
" + +#~ msgid "<< Add to Dictionary" +#~ msgstr "<< Добавить в словарь" + +#~ msgid "" +#~ "\n" +#~ "

The unknown word was detected and considered unknown because it is not " +#~ "included in the dictionary.
\n" +#~ "Click here if you consider that the unknown word is not 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" +#~ "
" + +#~ msgid "R&eplace All" +#~ msgstr "Зам&енить все" + +#~ 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" +#~ "
" + +#~ msgid "Suggested Words" +#~ msgstr "Предлагаемые слова" + +#~ msgid "Suggestion List" +#~ msgstr "Предлагаемые варианты" + +#~ msgid "" +#~ "\n" +#~ "

If the unknown word is misspelled, you should check if the correction " +#~ "for it is available and if it is, click on it. If none of the words in " +#~ "this list is a good replacement you may type the correct word in the edit " +#~ "box above.

\n" +#~ "

To correct this word click Replace if you want to correct only " +#~ "this occurrence or Replace All if you want to correct all " +#~ "occurrences.

\n" +#~ "
" +#~ msgstr "" +#~ "\n" +#~ "

Если слово содержит ошибку, проверьте наличие правильного варианта в " +#~ "предлагаемом списке. Если его там не будет, вы можете ввести правильный " +#~ "вариант вручную.

\n" +#~ "

Чтобы исправить это слово только в этом месте нажмите Заменить, " +#~ "а чтобы исправить его во всём документе, воспользуйтесь Заменить все.

\n" +#~ "
" + +#~ msgid "&Replace" +#~ msgstr "&Заменить" + +#~ 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" +#~ "
" + +#~ msgid "Replace &with:" +#~ msgstr "Заменить &на:" + +#~ 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" +#~ "
" + +#~ msgid "&Ignore" +#~ msgstr "&Игнорировать" + +#~ 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" +#~ "
" + +#~ msgid "I&gnore All" +#~ msgstr "Игнорировать вез&де" + +#~ 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" +#~ "
" + +#~ msgid "S&uggest" +#~ msgstr "В&ариант" + +#~ msgid "English" +#~ msgstr "Английский" + +#~ msgid "Language Selection" +#~ msgstr "Выбор языка" + +#~ msgid "Frame" +#~ msgstr "Фрейм" + +#~ msgid "JavaScript Errors" +#~ msgstr "Ошибки JavaScript" + +#~ msgid "" +#~ "This dialog provides you with notification and details of scripting " +#~ "errors that occur on web pages. In many cases it is due to an error in " +#~ "the web site as designed by its author. In other cases it is the result " +#~ "of a programming error in Konqueror. If you suspect the former, please " +#~ "contact the webmaster of the site in question. Conversely if you suspect " +#~ "an error in Konqueror, please file a bug report at http://bugs.kde.org/. " +#~ "A test case which illustrates the problem will be appreciated." +#~ msgstr "" +#~ "В этом диалоге показаны ошибки скриптов на веб-страницах. Чаще всего они " +#~ "обусловлены ошибками при создании веб-страниц, но иногда - ошибками в " +#~ "Konqueror. В первом случае известите об ошибке веб-мастера сайта, если " +#~ "же это всё-таки ошибка в Konqueror, отправьте сообщение об ошибке на " +#~ "http://bugs.kde.org/. Пример, иллюстрирующий ошибку, поможет её " +#~ "устранить." + +#~ msgid "C&lear" +#~ msgstr "О&чистить" + +#~ msgid "Document Information" +#~ msgstr "Сведения о документе" + +#~ msgid "General" +#~ msgstr "Общие" + +#~ msgid "URL:" +#~ msgstr "Ссылка:" + +#~ msgid "Last modified:" +#~ msgstr "Последнее изменение:" + +#~ msgid "Document encoding:" +#~ msgstr "Кодировка документа:" + +#~ msgid "HTTP Headers" +#~ msgstr "Заголовки HTTP" + +#~ msgid "Property" +#~ msgstr "Параметр" + +#~ msgid "" +#~ "This is the default language that the spell checker will use. The drop " +#~ "down box will list all of the dictionaries of your existing languages." +#~ msgstr "" +#~ "Язык, используемы при проверки орфографии. Вы можете быбрать другой язык " +#~ "из выпадающего списка." + +#~ msgid "Options" +#~ msgstr "Параметры" + +#~ msgid "Enable &background spellchecking" +#~ msgstr "Включить &фоновую проверку орфографии" + +#~ msgid "" +#~ "If checked, the \"spell as you type\" mode is active and all misspelled " +#~ "words are immediately highlighted." +#~ msgstr "" +#~ "При включении этого параметра по мере набора вводимые слова будут " +#~ "проверяться автоматически и при ошибке выделяться красным." + +#~ msgid "Skip all &uppercase words" +#~ msgstr "Пропускать &слова в верхнем регистре" + +#~ msgid "" +#~ "If checked, words that consist of only uppercase letters are not spell " +#~ "checked. This is useful if you have a lot of acronyms, such as KDE for " +#~ "example." +#~ msgstr "" +#~ "При включении этого параметра не будет проверяться орфография слов в " +#~ "верхнем регистре (к примеру, KDE)." + +#~ msgid "S&kip run-together words" +#~ msgstr "Пропускать слова, &написанные слитно" + +#~ msgid "" +#~ "If checked, concatenated words made of existing words are not spell " +#~ "checked. This is useful in some languages." +#~ msgstr "" +#~ "При включении этого параметра слитные слова, полученные из правильно " +#~ "написанных простых слов, не будут показываться как ошибочные. Это " +#~ "актуально для некоторых языков." + +#~ msgid "Default language:" +#~ msgstr "Язык по умолчанию:" + +#~ msgid "Ignore These Words" +#~ msgstr "Игнорировать следующие слова" + +#~ msgid "" +#~ "To add a word you want to ignore, type it in the top edit field and click " +#~ "Add. To remove a word, highlight it in the list and click Remove." +#~ msgstr "" +#~ "Для добавления игнорируемого слова, укажите его в верхнем поле ввода и " +#~ "нажмите кнопку 'Добавить'. Для удаления слова, выберите его в списке и " +#~ "нажмите на кнопку 'Удалить'." + +#~ msgid "Autocorrect" +#~ msgstr "Автокоррекция" + +#~ msgid "Additional domains for browsing" +#~ msgstr "Дополнительные домены для обзора" + +#~ msgid "List of 'wide-area' (non link-local) domains that should be browsed." +#~ msgstr "" +#~ "Список внешних (не локальных) доменов, которые будут просматриваться." + +#~ msgid "Browse local network" +#~ msgstr "Обзор локальной сети" + +#~ msgid "" +#~ "If true .local domain will be browsed. It is always link-local, using " +#~ "multicast DNS." +#~ msgstr "Если флажок включен, будут просмотрены локальные домены." + +#~ msgid "Removed in KDE 3.5.0" +#~ msgstr "Удалено в KDE 3.5.0" + +#~ msgid "" +#~ "Select publishing in LAN (multicast) or WAN (unicast, needs configured " +#~ "DNS server)" +#~ msgstr "" +#~ "Поиск ресурсов в локальной сети (multicast) или внешней сети (unicast, " +#~ "требует настроенного сервера DNS)" + +#~ msgid "" +#~ "Specifies if publishing should be by default link-local using multicast " +#~ "DNS (LAN) or 'wide-area' using normal DNS server (WAN)." +#~ msgstr "Осуществлять поиск в локальной сети или внешней сети." + +#~ msgid "Name of default publishing domain for WAN" +#~ msgstr "Имя домена для ресурсов внешней сети" + +#~ msgid "" +#~ "Domain name for publishing using 'wide-area' (normal DNS) ZeroConf. This " +#~ "must match domain specified in /etc/mdnsd.conf. This value is used only " +#~ "if PublishType is set to WAN.\n" +#~ msgstr "" +#~ "Имя домена для поиска ресурсов ZeroConf во внешней сети. Имя этого домена " +#~ "вы можете найти в файле /etc/mdnsd.conf. Этот параметр используется если " +#~ "PublishType установлен в WAN.\n" + +#~ msgid "" +#~ "_: NAME OF TRANSLATORS\n" +#~ "Your names" +#~ msgstr "Григорий Мохин" + +#~ msgid "" +#~ "_: EMAIL OF TRANSLATORS\n" +#~ "Your emails" +#~ msgstr "mok@kde.ru" + +#~ msgid "Configure" +#~ msgstr "Настройка" + +#~ msgid "&Configure" +#~ msgstr "&Настроить" + +#~ msgid "Configuration" +#~ msgstr "Настройка" + +#~ msgid "Modify" +#~ msgstr "Изменить" + +#~ msgid "&Modify" +#~ msgstr "&Изменить" + +#~ msgid "Align" +#~ msgstr "Выравнивание" + +#~ msgid "Page" +#~ msgstr "Страница" + +#~ msgid "Border" +#~ msgstr "Рамка" + +#~ msgid "Orientation" +#~ msgstr "Ориентация" + +#~ msgid "Width" +#~ msgstr "Ширина" + +#~ msgid "&Width" +#~ msgstr "&Ширина" + +#~ msgid "Height" +#~ msgstr "Высота" + +#~ msgid "&Height" +#~ msgstr "&Высота" + +#~ msgid "Horizontal" +#~ msgstr "Горизонтально" + +#~ msgid "Vertical" +#~ msgstr "Вертикально" + +#~ msgid "Right" +#~ msgstr "Справа" + +#~ msgid "Left" +#~ msgstr "Слева" + +#~ msgid "Center" +#~ msgstr "По центру" + +#~ msgid "Top" +#~ msgstr "Сверху" + +#~ msgid "Bottom" +#~ msgstr "Снизу" + +#~ msgid "&Bottom" +#~ msgstr "В&низу" + +#~ msgid "Move" +#~ msgstr "Переместить" + +#~ msgid "Delete All" +#~ msgstr "Удалить все" + +#~ msgid "Clear All" +#~ msgstr "Очистить все" + +#~ msgid "Export" +#~ msgstr "Экспорт" + +#~ msgid "Import" +#~ msgstr "Импорт" + +#~ msgid "Zoom" +#~ msgstr "Масштаб" + +#~ msgid "&Zoom" +#~ msgstr "&Масштаб" + +#~ msgid "Error" +#~ msgstr "Ошибка" + +#~ msgid "Malformed URL" +#~ msgstr "Недопустимый URL" + +#~ msgid "Charset:" +#~ msgstr "Кодировка:" + +#~ msgid "Warning" +#~ msgstr "Предупреждение" + +#~ msgid "Save a file" +#~ msgstr "Сохранить файл" + +#~ msgid "About" +#~ msgstr "О программе" + +#~ msgid "&About" +#~ msgstr "&О программе" + +#~ msgid "A&bout" +#~ msgstr "&Примечания" + +#~ msgid "Untitled" +#~ msgstr "Безымянный" + +#~ msgid "&OK" +#~ msgstr "&ОК" + +#~ msgid "On" +#~ msgstr "Вкл" + +#~ msgid "Off" +#~ msgstr "Выкл" + +#~ msgid "&Apply" +#~ msgstr "&Применить" + +#~ msgid "File" +#~ msgstr "Файл" + +#~ msgid "&Discard" +#~ msgstr "От&клонить" + +#~ msgid "Discard" +#~ msgstr "Отклонить" + +#~ msgid "&Options" +#~ msgstr "П&араметры" + +#~ msgid "View" +#~ msgstr "Вид" + +#~ msgid "E&xit" +#~ msgstr "В&ыход" + +#~ msgid "Quit" +#~ msgstr "Выход" + +#~ msgid "&Quit" +#~ msgstr "В&ыход" + +#~ msgid "Reload" +#~ msgstr "Обновить" + +#~ msgid "Back" +#~ msgstr "Назад" + +#~ msgid "&New Window..." +#~ msgstr "&Новое окно..." + +#~ msgid "New &Window..." +#~ msgstr "&Новое окно..." + +#~ msgid "&New Window" +#~ msgstr "&Новое окно" + +#~ msgid "New Game" +#~ msgstr "Новая игра" + +#~ msgid "&New Game" +#~ msgstr "&Новая игра" + +#~ msgid "Open" +#~ msgstr "Открыть" + +#~ msgid "Open a File" +#~ msgstr "Открыть файл" + +#~ msgid "Open..." +#~ msgstr "Открыть..." + +#~ msgid "&Open..." +#~ msgstr "&Открыть..." + +#~ msgid "&Cut" +#~ msgstr "Вы&резать" + +#~ msgid "C&ut" +#~ msgstr "Вы&резать" + +#~ msgid "Font" +#~ msgstr "Шрифт" + +#~ msgid "&Foreground Color" +#~ msgstr "Цвет &текста" + +#~ msgid "&Background Color" +#~ msgstr "Цвет &фона" + +#~ msgid "Save" +#~ msgstr "Сохранить" + +#~ msgid "&Save" +#~ msgstr "&Сохранить" + +#~ msgid "Save As" +#~ msgstr "Сохранить как" + +#~ msgid "Save As..." +#~ msgstr "Сохранить как..." + +#~ msgid "S&ave As..." +#~ msgstr "Сохранить &как..." + +#~ msgid "&Print..." +#~ msgstr "Пе&чать..." + +#~ msgid "Sorry" +#~ msgstr "Ошибка" + +#~ msgid "Remove" +#~ msgstr "Удалить" + +#~ msgid "Add" +#~ msgstr "Добавить" + +#~ msgid "Change" +#~ msgstr "Изменить" + +#~ msgid "&Delete" +#~ msgstr "&Удалить" + +#~ msgid "Italic" +#~ msgstr "Курсив" + +#~ msgid "Roman" +#~ msgstr "Прямой" + +#~ msgid "Information" +#~ msgstr "Сведения" + +#~ msgid "Portrait" +#~ msgstr "Книга" + +#~ msgid "Landscape" +#~ msgstr "Альбом" + +#~ msgid "locally connected" +#~ msgstr "локальное соединение" + +#~ msgid "Browse..." +#~ msgstr "Обзор..." + +#~ msgid "&Remove" +#~ msgstr "&Удалить" + +#~ msgid "&Properties..." +#~ msgstr "&Свойства..." + +#~ msgid "Properties" +#~ msgstr "Свойства" + +#~ msgid "&Start" +#~ msgstr "З&апуск" + +#~ msgid "St&op" +#~ msgstr "С&топ" + +#~ msgid "Miscellaneous" +#~ msgstr "Разное" + +#~ msgid "Font Size" +#~ msgstr "Размер шрифта" + +#~ msgid "Fonts" +#~ msgstr "Шрифты" + +#~ msgid "&Fonts" +#~ msgstr "&Шрифты" + +#~ msgid "&Reload" +#~ msgstr "&Обновить" + +#~ msgid "Files" +#~ msgstr "Файлы" + +#~ msgid "Continue" +#~ msgstr "Продолжить" + +#~ msgid "Restore" +#~ msgstr "Восстановить" + +#~ msgid "Appearance" +#~ msgstr "Внешний вид" + +#~ msgid "Print" +#~ msgstr "Печать" + +#~ msgid "Monday" +#~ msgstr "Понедельник" + +#~ msgid "Tuesday" +#~ msgstr "Вторник" + +#~ msgid "Wednesday" +#~ msgstr "Среда" + +#~ msgid "Thursday" +#~ msgstr "Четверг" + +#~ msgid "Friday" +#~ msgstr "Пятница" + +#~ msgid "Saturday" +#~ msgstr "Суббота" + +#~ msgid "Sunday" +#~ msgstr "Воскресенье" + +#~ msgid "&Update" +#~ msgstr "&Обновить" + +#~ msgid "Highscore" +#~ msgstr "Рекорды" + +#~ msgid "&New View" +#~ msgstr "&Новый вид" + +#~ msgid "&Insert" +#~ msgstr "&Вставка" + +#~ msgid "" +#~ "_: Opposite to Previous\n" +#~ "&Next" +#~ msgstr "&Далее" + +#~ msgid "&Previous" +#~ msgstr "&Предыдущий" + +#~ msgid "Replace" +#~ msgstr "Заменить" + +#~ msgid "&Replace..." +#~ msgstr "&Заменить..." + +#~ msgid "&Defaults" +#~ msgstr "По &умолчанию" + +#~ msgid "&Contents" +#~ msgstr "&Содержание" + +#~ msgid "Open Recent" +#~ msgstr "Последние файлы" + +#~ msgid "Open &Recent" +#~ msgstr "По&следние файлы" + +#~ msgid "&Find..." +#~ msgstr "&Найти..." + +#~ msgid "Find &Next" +#~ msgstr "П&родолжить поиск" + +#~ msgid "Bookmarks" +#~ msgstr "Закладки" + +#~ msgid "&Add Bookmark" +#~ msgstr "Добавить &закладку" + +#~ msgid "&Edit Bookmarks..." +#~ msgstr "Р&едактировать закладки..." + +#~ msgid "&Spelling..." +#~ msgstr "Проверка &орфографии..." + +#~ msgid "Show &Menubar" +#~ msgstr "Показать &меню" + +#~ msgid "Show &Toolbar" +#~ msgstr "Показать панель &инструментов" + +#~ msgid "Show &Statusbar" +#~ msgstr "Показывать &строку состояния" + +#~ msgid "Configure &Key Bindings..." +#~ msgstr "Настроить &комбинации клавиш..." + +#~ msgid "&Preferences..." +#~ msgstr "&Настройка..." + +#~ msgid "Do not show this message again" +#~ msgstr "Не показывать больше это сообщение" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Prior" +#~ msgstr "Prior" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Next" +#~ msgstr "Next" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Shift" +#~ msgstr "Shift" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Control" +#~ msgstr "Ctrl" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Meta" +#~ msgstr "Meta" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Alt" +#~ msgstr "Alt" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "ParenLeft" +#~ msgstr "Скобка ([)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "ParenRight" +#~ msgstr "Скобка (])" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Asterisk" +#~ msgstr "Звёздочка (*)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Plus" +#~ msgstr "Плюс (+)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Comma" +#~ msgstr "Запятая (,)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Minus" +#~ msgstr "Минус (-)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Period" +#~ msgstr "Точка (.)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Slash" +#~ msgstr "Косая черта (/)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Colon" +#~ msgstr "Двоеточие (:)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Semicolon" +#~ msgstr "Точка с запятой (;)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Less" +#~ msgstr "Меньше (<)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Equal" +#~ msgstr "Равно (=)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Greater" +#~ msgstr "Больше (>)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Question" +#~ msgstr "Вопрос. знак (?)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "BracketLeft" +#~ msgstr "Левая скобка (" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Backslash" +#~ msgstr "Обратная косая черта (\\)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "BracketRight" +#~ msgstr "Правая скобка )" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "AsciiCircum" +#~ msgstr "Собачка (@)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Underscore" +#~ msgstr "Подчёркивание (_)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "QuoteLeft" +#~ msgstr "Левая одинарная кавычка" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "BraceLeft" +#~ msgstr "Скобка ({)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "BraceRight" +#~ msgstr "Скобка (})" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "AsciiTilde" +#~ msgstr "Тильда (~)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Apostrophe" +#~ msgstr "Апостроф (')" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Ampersand" +#~ msgstr "Амперсанд" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Exclam" +#~ msgstr "Восклиц. знак (!)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Dollar" +#~ msgstr "Доллар ($)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Percent" +#~ msgstr "Процент" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "NumberSign" +#~ msgstr "Решётка (#)" + +#~ msgid "" +#~ "_: font style\n" +#~ "Demi-bold" +#~ msgstr "Полужирный" + +#~ msgid "" +#~ "_: font style\n" +#~ "Light" +#~ msgstr "Светлый" + +#~ msgid "" +#~ "_: font style\n" +#~ "Light Italic" +#~ msgstr "Светлый курсив" + +#~ msgid "" +#~ "_: font style\n" +#~ "Demi-bold Italic" +#~ msgstr "Полужирный курсив" + +#~ msgid "" +#~ "_: font style\n" +#~ "Oblique" +#~ msgstr "Наклонный" + +#~ msgid "" +#~ "_: font style\n" +#~ "Book" +#~ msgstr "Книжный" + +#~ msgid "" +#~ "_: font style\n" +#~ "Book Oblique" +#~ msgstr "Книжный наклонный" + +#~ msgid "" +#~ "_: window operation\n" +#~ "Sticky" +#~ msgstr "Прикрепить" + +#~ msgid "" +#~ "_: window operation\n" +#~ "Un-Sticky" +#~ msgstr "Открепить" + +#~ msgid "No default value" +#~ msgstr "Нет значения по умолчанию" + +#~ msgid "Evaluation error" +#~ msgstr "Ошибка вычисления" + +#~ msgid "Range error" +#~ msgstr "Ошибка границ" + +#~ msgid "Reference error" +#~ msgstr "Ошибка ссылки" + +#~ msgid "Syntax error" +#~ msgstr "Синтаксическая ошибка" + +#~ msgid "Type error" +#~ msgstr "Ошибка типа" + +#~ msgid "URI error" +#~ msgstr "Ошибка URI" + +#~ msgid "Undefined value" +#~ msgstr "Неопределённое значение" + +#~ msgid "Null value" +#~ msgstr "Нулевое значение" + +#~ msgid "Invalid reference base" +#~ msgstr "Неверная база ссылок" + +#~ msgid "Can't find variable: " +#~ msgstr "Не удалось найти переменную: " + +#~ msgid "Base is not an object" +#~ msgstr "Основа не является объектом" + +#~ msgid "Syntax error in parameter list" +#~ msgstr "Синтаксическая ошибка в списке параметров" + +#~ msgid "System Default (%1)" +#~ msgstr "По умолчанию (%1)" + +#~ msgid "Unable to get KScript Runner for type \"%1\"." +#~ msgstr "Не удаётся получить KScript Runner для типа \"%1\"" + +#~ msgid "KScript Error" +#~ msgstr "Ошибка KScript" + +#~ msgid "Unable find script \"%1\"." +#~ msgstr "Невозможно найти скрипт \"%1\"." + +#~ msgid "KDE Scripts" +#~ msgstr "Скрипты KDE" + +#~ msgid "Video Toolbar" +#~ msgstr "Панель инструментов Видео" + +#~ msgid "Fullscreen &Mode" +#~ msgstr "&Полноэкранный режим" + +#~ msgid "&Half Size" +#~ msgstr "&Половинный размер" + +#~ msgid "&Normal Size" +#~ msgstr "&Обычный размер" + +#~ msgid "&Double Size" +#~ msgstr "&Двойной размер" + +#~ msgid "Unable to load resource '%1'" +#~ msgstr "Ошибка чтения из источника '%1'" + +#~ msgid "X509" +#~ msgstr "X509" + +#~ msgid "PGP" +#~ msgstr "PGP" + +#~ msgid "Custom" +#~ msgstr "Прочее" + +#~ msgid "Unknown type" +#~ msgstr "Неизвестный тип" + +#~ msgid "Unknown Field" +#~ msgstr "Неизвестное поле" + +#~ msgid "All" +#~ msgstr "Все" + +#~ msgid "Frequent" +#~ msgstr "Часто используемые" + +#~ msgid "" +#~ "_: street/postal\n" +#~ "Address" +#~ msgstr "Почтовый адрес" + +#~ msgid "Personal" +#~ msgstr "Персональные" + +#~ msgid "Undefined" +#~ msgstr "Не определено" + +#~ msgid "Disable automatic startup on login" +#~ msgstr "Отключить автоматический запуск при входе в систему" + +#~ msgid "Override existing entries" +#~ msgstr "Переписать существующие записи" + +#~ msgid "" +#~ "Address book file %1 not found! Make sure the old address book is " +#~ "located there and you have read permission for this file." +#~ msgstr "" +#~ "Файл адресной книги %1 не найден. Проверьте, расположена ли по " +#~ "указанному пути старая адресная книга и есть ли права доступа к ней." + +#~ msgid "Kab to Kabc Converter" +#~ msgstr "Перенос из Kab в Kabc" + +#~ msgid "Loading resource '%1' failed!" +#~ msgstr "Сбой загрузки ресурса '%1'!" + +#~ msgid "Saving resource '%1' failed!" +#~ msgstr "Сбой сохранения ресурса '%1'!" + +#~ msgid "Resource Selection" +#~ msgstr "Выбор ресурса" + +#~ msgid "Resources" +#~ msgstr "Ресурсы" + +#~ msgid "Public" +#~ msgstr "Публичный" + +#~ msgid "Private" +#~ msgstr "Личный" + +#~ msgid "Confidential" +#~ msgstr "Конфиденциальный" + +#~ msgid "Error in libkabc" +#~ msgstr "Ошибка в libkabc" + +#~ msgid "List of Emails" +#~ msgstr "Список почтовых адресов" + +#~ msgid "LockNull: All locks succeed but no actual locking is done." +#~ msgstr "" +#~ "LockNull: Все операции блокировки выполнены успешно, но никаких " +#~ "блокировок не установлено." + +#~ msgid "LockNull: All locks fail." +#~ msgstr "LockNull: Блокировки не выполнены." + +#~ msgid "" +#~ "_: Preferred phone\n" +#~ "Preferred" +#~ msgstr "Основной телефон" + +#~ msgid "" +#~ "_: Home phone\n" +#~ "Home" +#~ msgstr "Домашний телефон" + +#~ msgid "" +#~ "_: Work phone\n" +#~ "Work" +#~ msgstr "Телефон" + +#~ msgid "Messenger" +#~ msgstr "Система сообщений" + +#~ msgid "Preferred Number" +#~ msgstr "Основной номер" + +#~ msgid "Voice" +#~ msgstr "Голосовой" + +#~ msgid "Fax" +#~ msgstr "Факс" + +#~ msgid "" +#~ "_: Mobile Phone\n" +#~ "Mobile" +#~ msgstr "Мобильный" + +#~ msgid "Video" +#~ msgstr "Видео" + +#~ msgid "Mailbox" +#~ msgstr "А/Я" + +#~ msgid "Modem" +#~ msgstr "Модем" + +#~ msgid "" +#~ "_: Car Phone\n" +#~ "Car" +#~ msgstr "В автомобиле" + +#~ msgid "ISDN" +#~ msgstr "ISDN" + +#~ msgid "PCS" +#~ msgstr "PCS" + +#~ msgid "Home Fax" +#~ msgstr "Домашний факс" + +#~ msgid "Work Fax" +#~ msgstr "Факс" + +#~ msgid "Other" +#~ msgstr "Прочее" + +#~ msgid "Configure Distribution Lists" +#~ msgstr "Настройка списков рассылки" + +#~ msgid "Select Email Address" +#~ msgstr "Выбор адресов E-Mail" + +#~ msgid "Email Addresses" +#~ msgstr "Адреса электронной почты" + +#~ msgid "New List..." +#~ msgstr "Новый список..." + +#~ msgid "Rename List..." +#~ msgstr "Переименовать список..." + +#~ msgid "Available addresses:" +#~ msgstr "Доступные адреса:" + +#~ msgid "Preferred Email" +#~ msgstr "Основной адрес" + +#~ msgid "Add Entry" +#~ msgstr "Добавить запись" + +#~ msgid "Use Preferred" +#~ msgstr "Использовать предпочтительный" + +#~ msgid "Change Email..." +#~ msgstr "Изменить e-mail..." + +#~ msgid "Remove Entry" +#~ msgstr "Удалить запись" + +#~ msgid "New Distribution List" +#~ msgstr "Новый список рассылки" + +#~ msgid "Please enter &name:" +#~ msgstr "Введите &имя:" + +#~ msgid "Distribution List" +#~ msgstr "Список рассылки" + +#~ msgid "Please change &name:" +#~ msgstr "Измените &имя:" + +#~ msgid "Delete distribution list '%1'?" +#~ msgstr "Удалить список рассылки '%1'?" + +#~ msgid "Selected addressees:" +#~ msgstr "Выбранные адресаты:" + +#~ msgid "Selected addresses in '%1':" +#~ msgstr "Выбранные адреса в '%1':" + +#~ msgid "Dr." +#~ msgstr "Д-р" + +#~ msgid "Miss" +#~ msgstr "Г-жа" + +#~ msgid "Mr." +#~ msgstr "Г-н" + +#~ msgid "Mrs." +#~ msgstr "Г-жа" + +#~ msgid "Ms." +#~ msgstr "Г-жа" + +#~ msgid "Prof." +#~ msgstr "Проф." + +#~ msgid "I" +#~ msgstr "I" + +#~ msgid "II" +#~ msgstr "II" + +#~ msgid "III" +#~ msgstr "III" + +#~ msgid "Jr." +#~ msgstr "Мл." + +#~ msgid "Sr." +#~ msgstr "Ст." + +#~ msgid "Post Office Box" +#~ msgstr "А/Я" + +#~ msgid "Extended Address Information" +#~ msgstr "Расширенная информация об адресе" + +#~ msgid "Locality" +#~ msgstr "Населённый пункт" + +#~ msgid "Region" +#~ msgstr "Область" + +#~ msgid "Postal Code" +#~ msgstr "Почтовый индекс" + +#~ msgid "Delivery Label" +#~ msgstr "Наклейка на конверт" + +#~ msgid "" +#~ "_: Preferred address\n" +#~ "Preferred" +#~ msgstr "Основной адрес" + +#~ msgid "Domestic" +#~ msgstr "Внутренний" + +#~ msgid "International" +#~ msgstr "Международный" + +#~ msgid "Postal" +#~ msgstr "Почтовый" + +#~ msgid "Parcel" +#~ msgstr "Для посылок" + +#~ msgid "" +#~ "_: Home Address\n" +#~ "Home" +#~ msgstr "Домашний адрес" + +#~ msgid "" +#~ "_: Work Address\n" +#~ "Work" +#~ msgstr "Служебный адрес" + +#~ msgid "Preferred Address" +#~ msgstr "Основной адрес" + +#~ msgid "Unable to open lock file." +#~ msgstr "Не удаётся открыть файл блокировки." + +#~ msgid "" +#~ "The address book '%1' is locked by application '%2'.\n" +#~ "If you believe this is incorrect, just remove the lock file from '%3'" +#~ msgstr "" +#~ "Адресная книга '%1' заблокирована приложением '%2'.\n" +#~ "Если вы считаете, что это ошибка, удалите файл блокировки '%3'" + +#~ msgid "Unlock failed. Lock file is owned by other process: %1 (%2)" +#~ msgstr "" +#~ "Ошибка разблокирования. Файл блокировки принадлежит другому процессу: %1 " +#~ "(%2)" + +#~ msgid "Unable to save to resource '%1'. It is locked." +#~ msgstr "Не удаётся сохранить в ресурс '%1', потому что он заблокирован." + +#~ msgid "Select Addressee" +#~ msgstr "Выбор адресата" + +#~ msgid "Unselect" +#~ msgstr "Отменить выделение" + +#~ msgid "New List" +#~ msgstr "Новый список" + +#~ msgid "Change Email" +#~ msgstr "Изменить e-mail" + +#~ msgid "Please enter name:" +#~ msgstr "Введите имя:" + +#~ msgid "vCard" +#~ msgstr "vCard" + +#~ msgid "vCard Format" +#~ msgstr "Формат vCard" + +#~ msgid "No description available." +#~ msgstr "Описание недоступно." + +#~ msgid "Unique Identifier" +#~ msgstr "Уникальный идентификатор" + +#~ msgid "Formatted Name" +#~ msgstr "Полное имя" + +#~ msgid "Given Name" +#~ msgstr "Имя" + +#~ msgid "Additional Names" +#~ msgstr "Дополнительные имена" + +#~ msgid "Honorific Prefixes" +#~ msgstr "Почтительное обращение (в начале)" + +#~ msgid "Honorific Suffixes" +#~ msgstr "Почтительное обращение (в конце)" + +#~ msgid "Nick Name" +#~ msgstr "Ник" + +#~ msgid "Birthday" +#~ msgstr "День рождения" + +#~ msgid "Home Address Street" +#~ msgstr "Домашний адрес: улица" + +#~ msgid "Home Address City" +#~ msgstr "Домашний адрес: город" + +#~ msgid "Home Address State" +#~ msgstr "Домашний адрес: область/край" + +#~ msgid "Home Address Zip Code" +#~ msgstr "Домашний адрес: индекс" + +#~ msgid "Home Address Country" +#~ msgstr "Домашний адрес: страна" + +#~ msgid "Home Address Label" +#~ msgstr "Домашний адрес: наклейка" + +#~ msgid "Business Address Street" +#~ msgstr "Служебный адрес: улица" + +#~ msgid "Business Address City" +#~ msgstr "Служебный адрес: город" + +#~ msgid "Business Address State" +#~ msgstr "Служебный адрес: область/край" + +#~ msgid "Business Address Zip Code" +#~ msgstr "Служебный адрес: индекс" + +#~ msgid "Business Address Country" +#~ msgstr "Служебный адрес: страна" + +#~ msgid "Business Address Label" +#~ msgstr "Служебный адрес: наклейка" + +#~ msgid "Home Phone" +#~ msgstr "Домашний телефон" + +#~ msgid "Business Phone" +#~ msgstr "Телефон" + +#~ msgid "Mobile Phone" +#~ msgstr "Мобильный телефон" + +#~ msgid "Business Fax" +#~ msgstr "Факс" + +#~ msgid "Car Phone" +#~ msgstr "Телефон в автомобиле" + +#~ msgid "Mail Client" +#~ msgstr "Почтовый клиент" + +#~ msgid "Time Zone" +#~ msgstr "Часовой пояс" + +#~ msgid "Geographic Position" +#~ msgstr "Географическое расположение" + +#~ msgid "" +#~ "_: person\n" +#~ "Title" +#~ msgstr "Обращение" + +#~ msgid "" +#~ "_: person in organization\n" +#~ "Role" +#~ msgstr "Должность" + +#~ msgid "Note" +#~ msgstr "Заметка" + +#~ msgid "Product Identifier" +#~ msgstr "Идентификатор продукта" + +#~ msgid "Revision Date" +#~ msgstr "Дата изменения" + +#~ msgid "Sort String" +#~ msgstr "Сортировка" + +#~ msgid "Homepage" +#~ msgstr "Веб-сайт" + +#~ msgid "Security Class" +#~ msgstr "Класс безопасности" + +#~ msgid "Logo" +#~ msgstr "Логотип" + +#~ msgid "Photo" +#~ msgstr "Фото" + +#~ msgid "Sound" +#~ msgstr "Звук" + +#~ msgid "Agent" +#~ msgstr "Сотрудник" + +#~ msgid "TestWritevCard" +#~ msgstr "TestWritevCard" + +#~ msgid "vCard 2.1" +#~ msgstr "vCard 2.1" + +#~ msgid "Input file" +#~ msgstr "Файл ввода" + +#~ msgid "Output data in UTF-8 instead of local encoding" +#~ msgstr "Выводить данные в UTF-8 вместо кодировки локали" + +#~ msgid "" +#~ "Print menu-id of the menu that contains\n" +#~ "the application" +#~ msgstr "" +#~ "Вывести идентификатор меню, которое\n" +#~ "содержит приложение" + +#~ msgid "" +#~ "Print menu name (caption) of the menu that\n" +#~ "contains the application" +#~ msgstr "" +#~ "Вывести имя меню, которое содержит\n" +#~ "приложение" + +#~ msgid "Highlight the entry in the menu" +#~ msgstr "Подсвечивать элемент меню" + +#~ msgid "Do not check if sycoca database is up to date" +#~ msgstr "Не проверять актуальность базы данных sysoca" + +#~ msgid "The id of the menu entry to locate" +#~ msgstr "Идентификатор элемента меню, который необходимо найти" + +#~ msgid "Menu item '%1' could not be highlighted." +#~ msgstr "Элемент меню '%1' не может быть подчеркнут." + +#~ msgid "" +#~ "KDE Menu query tool.\n" +#~ "This tool can be used to find in which menu a specific application is " +#~ "shown.\n" +#~ "The --highlight option can be used to visually indicate to the user " +#~ "where\n" +#~ "in the KDE menu a specific application is located." +#~ msgstr "" +#~ "Утилита запроса меню среды KDE.\n" +#~ "Эта утилита может быть использована для определения, в каком меню " +#~ "содержится конкретное приложение.\n" +#~ "Параметр --highlight может быть использован для визуальной индикации " +#~ "меню, содержащего конкретное приложение." + +#~ msgid "kde-menu" +#~ msgstr "kde-menu" + +#~ msgid "Author" +#~ msgstr "Автор" + +#~ msgid "You must specify an application-id such as 'kde-konsole.desktop'" +#~ msgstr "Вы должны указать application-id, например 'kde-konsole.desktop'" + +#~ msgid "" +#~ "You must specify at least one of --print-menu-id, --print-menu-name or --" +#~ "highlight" +#~ msgstr "" +#~ "Вы должны указать хотя бы один параметр из --print-menu-id, --print-menu-" +#~ "name или --highlight" + +#~ msgid "No menu item '%1'." +#~ msgstr "Нет элемента меню '%1'." + +#~ msgid "Menu item '%1' not found in menu." +#~ msgstr "Элемент '%1' не найден в меню." + +#~ msgid "Old hostname" +#~ msgstr "Старое имя узла" + +#~ msgid "New hostname" +#~ msgstr "Новое имя узла" + +#~ msgid "Error: HOME environment variable not set.\n" +#~ msgstr "Ошибка: не задана переменная окружения HOME.\n" + +#~ msgid "Error: DISPLAY environment variable not set.\n" +#~ msgstr "Ошибка: не задана переменная окружения DISPLAY.\n" + +#~ msgid "KDontChangeTheHostName" +#~ msgstr "KDontChangeTheHostName" + +#~ msgid "Informs KDE about a change in hostname" +#~ msgstr "Сообщает KDE об изменении имени узла" + +#~ msgid "Check Sycoca database only once" +#~ msgstr "Проверять базу данных Sycoca только один раз" + +#~ msgid "KDE Daemon" +#~ msgstr "Служба KDE" + +#~ msgid "KDE Daemon - triggers Sycoca database updates when needed" +#~ msgstr "" +#~ "Служба KDE - запускает обновление базы данных Sycoca по необходимости" + +#~ msgid "" +#~ "Error creating database '%1'.\n" +#~ "Check that the permissions are correct on the directory and the disk is " +#~ "not full.\n" +#~ msgstr "" +#~ "Ошибка создания базы данных '%1'.\n" +#~ "Проверьте права доступа к каталогу и свободное место на диске.\n" + +#~ msgid "KBuildSycoca" +#~ msgstr "KBuildSycoca" + +#~ msgid "" +#~ "Error writing database '%1'.\n" +#~ "Check that the permissions are correct on the directory and the disk is " +#~ "not full.\n" +#~ msgstr "" +#~ "Ошибка записи в базу данных '%1'.\n" +#~ "Проверьте права доступа к каталогу и свободное место на диске.\n" + +#~ msgid "Do not signal applications to update" +#~ msgstr "Не посылать сигнал приложениям для обновления" + +#~ msgid "Disable incremental update, re-read everything" +#~ msgstr "Отключить инкрементное обновление, перечитать все" + +#~ msgid "Check file timestamps" +#~ msgstr "Проверять время изменения файлов" + +#~ msgid "Disable checking files (dangerous)" +#~ msgstr "Отключить проверку файлов (опасно)" + +#~ msgid "Create global database" +#~ msgstr "Создать глобальную базу" + +#~ msgid "Perform menu generation test run only" +#~ msgstr "Выполнить только тест генерации меню" + +#~ msgid "Track menu id for debug purposes" +#~ msgstr "Отслеживать идентификатор меню для отладки" + +#~ msgid "Silent - work without windows and stderr" +#~ msgstr "\"Тихий\" режим - работать без окон и stderr" + +#~ msgid "Show progress information (even if 'silent' mode is on)" +#~ msgstr "Показывать ход выполнения (даже в тихом режиме)" + +#~ msgid "Rebuilds the system configuration cache." +#~ msgstr "Повторное создание кэша системной конфигурации." + +#~ msgid "Reloading KDE configuration, please wait..." +#~ msgstr "Обновление конфигурации KDE, подождите..." + +#~ msgid "KDE Configuration Manager" +#~ msgstr "Администратор настройки KDE" + +#~ msgid "Do you want to reload KDE configuration?" +#~ msgstr "Обновить конфигурацию KDE?" + +#~ msgid "Do Not Reload" +#~ msgstr "Не обновлять" + +#~ msgid "Configuration information reloaded successfully." +#~ msgstr "Конфигурация успешно обновлена." + +#~ msgid "Tool &Views" +#~ msgstr "&Инструментарий" + +#~ msgid "MDI Mode" +#~ msgstr "Режим MDI" + +#~ msgid "&Toplevel Mode" +#~ msgstr "&Отдельные окна" + +#~ msgid "C&hildframe Mode" +#~ msgstr "&Дочерние окна" + +#~ msgid "Ta&b Page Mode" +#~ msgstr "&Вкладки" + +#~ msgid "I&DEAl Mode" +#~ msgstr "I&DEAl" + +#~ msgid "Tool &Docks" +#~ msgstr "&Фиксация" + +#~ msgid "Switch Top Dock" +#~ msgstr "Вверху" + +#~ msgid "Switch Left Dock" +#~ msgstr "Слева" + +#~ msgid "Switch Right Dock" +#~ msgstr "Справа" + +#~ msgid "Switch Bottom Dock" +#~ msgstr "Внизу" + +#~ msgid "Previous Tool View" +#~ msgstr "Предыдущее отображение" + +#~ msgid "Next Tool View" +#~ msgstr "Следующее отображение" + +#~ msgid "Show %1" +#~ msgstr "Показать %1" + +#~ msgid "Hide %1" +#~ msgstr "Скрыть %1" + +#~ msgid "Window" +#~ msgstr "Окно" + +#~ msgid "Undock" +#~ msgstr "Отстыковать" + +#~ msgid "Dock" +#~ msgstr "Пристыковать" + +#~ msgid "Operations" +#~ msgstr "Операции" + +#~ msgid "Close &All" +#~ msgstr "Очистить &все" + +#~ msgid "&Minimize All" +#~ msgstr "С&вернуть все" + +#~ msgid "&MDI Mode" +#~ msgstr "Режим &MDI" + +#~ msgid "&Tile" +#~ msgstr "В&выстроить окна" + +#~ msgid "Ca&scade Windows" +#~ msgstr "Расположить окна &каскадом" + +#~ msgid "Cascade &Maximized" +#~ msgstr "Развернуть к&аскадом" + +#~ msgid "Expand &Vertically" +#~ msgstr "Развернуть &вертикально" + +#~ msgid "Expand &Horizontally" +#~ msgstr "Развернуть &горизонтально" + +#~ msgid "Tile &Non-Overlapped" +#~ msgstr "Выстроить &без перекрытия" + +#~ msgid "Tile Overla&pped" +#~ msgstr "Выстроить с &перекрытием" + +#~ msgid "Tile V&ertically" +#~ msgstr "Выстроить в&ертикально" + +#~ msgid "&Dock/Undock" +#~ msgstr "&Пристыковать/Отстыковать" + +#~ msgid "Unnamed" +#~ msgstr "Без имени" + +#~ msgid "R&esize" +#~ msgstr "Изм&енить размер" + +#~ msgid "M&inimize" +#~ msgstr "С&вернуть" + +#~ msgid "M&aximize" +#~ msgstr "Р&азвернуть" + +#~ msgid "&Maximize" +#~ msgstr "&Развернуть" + +#~ msgid "&Minimize" +#~ msgstr "&Свернуть" + +#~ msgid "M&ove" +#~ msgstr "&Переместить" + +#~ msgid "&Resize" +#~ msgstr "Изменить &размер" + +#~ msgid "&Undock" +#~ msgstr "&Отстыковать" + +#~ msgid "" +#~ "_: Switch between overlap and side by side mode\n" +#~ "Overlap" +#~ msgstr "Перекрытие" + +#~ msgid "The library %1 does not offer an %2 function." +#~ msgstr "Библиотека %1 не предоставляет функции %2." + +#~ msgid "The library %1 does not offer a KDE compatible factory." +#~ msgstr "Библиотека %1 не предоставляет фабрику, совместимую с KDE." + +#~ msgid "Library files for \"%1\" not found in paths." +#~ msgstr "Файлы библиотек для \"%1\" не найдены в путях поиска." + +#~ msgid "" +#~ "_: Dear Translator! Translate this string to the string 'LTR' in left-to-" +#~ "right languages (as english) or to 'RTL' in right-to-left languages (such " +#~ "as Hebrew and Arabic) to get proper widget layout." +#~ msgstr "LTR" + +#~ msgid "" +#~ "There was an error setting up inter-process communications for KDE. The " +#~ "message returned by the system was:\n" +#~ "\n" +#~ msgstr "" +#~ "Ошибка установки межпроцессного взаимодействия для KDE.\n" +#~ "Сообщение системы:\n" +#~ "\n" + +#~ msgid "" +#~ "\n" +#~ "\n" +#~ "Please check that the \"dcopserver\" program is running!" +#~ msgstr "" +#~ "\n" +#~ "\n" +#~ "Проверьте, запущена ли программа \"dcopserver\"." + +#~ msgid "DCOP communications error (%1)" +#~ msgstr "Ошибка связи по протоколу DCOP (%1)" + +#~ msgid "Use the X-server display 'displayname'" +#~ msgstr "Использовать дисплей X-сервера 'displayname'" + +#~ msgid "Use the QWS display 'displayname'" +#~ msgstr "Использовать QWS дисплей 'displayname'" + +#~ msgid "Restore the application for the given 'sessionId'" +#~ msgstr "Восстановить сеанс приложения по ключу 'sessionId'" + +#~ msgid "" +#~ "Causes the application to install a private color\n" +#~ "map on an 8-bit display" +#~ msgstr "" +#~ "В случае 8-битного дисплея приложение\n" +#~ "будет использовать собственную таблицу\n" +#~ "цветов" + +#~ msgid "" +#~ "Limits the number of colors allocated in the color\n" +#~ "cube on an 8-bit display, if the application is\n" +#~ "using the QApplication::ManyColor color\n" +#~ "specification" +#~ msgstr "" +#~ "Ограничить количество используемых \n" +#~ "цветов на 8-битном дисплее. Этот параметр \n" +#~ "работает только для приложений, \n" +#~ "использующих режим\n" +#~ "QApplication::ManyColor." + +#~ msgid "tells Qt to never grab the mouse or the keyboard" +#~ msgstr "Запрещает Qt перехватывать мышь или клавиатуру" + +#~ msgid "" +#~ "running under a debugger can cause an implicit\n" +#~ "-nograb, use -dograb to override" +#~ msgstr "" +#~ "при запуске в отладчике применять\n" +#~ "-nograb. Используйте -dograb, чтобы явно включить этот режим" + +#~ msgid "switches to synchronous mode for debugging" +#~ msgstr "включает синхронный режим для отладки" + +#~ msgid "defines the application font" +#~ msgstr "определяет шрифт приложения" + +#~ msgid "" +#~ "sets the default background color and an\n" +#~ "application palette (light and dark shades are\n" +#~ "calculated)" +#~ msgstr "" +#~ "задаёт цвет фона по умолчанию и палитру\n" +#~ "приложения (светлые и тёмные тени\n" +#~ "вычисляются)." + +#~ msgid "sets the default foreground color" +#~ msgstr "определяет цвет текста по умолчанию" + +#~ msgid "sets the default button color" +#~ msgstr "определяет цвет кнопок по умолчанию" + +#~ msgid "sets the application name" +#~ msgstr "определяет имя приложения" + +#~ msgid "sets the application title (caption)" +#~ msgstr "устанавливает заголовок приложения" + +#~ msgid "" +#~ "forces the application to use a TrueColor visual on\n" +#~ "an 8-bit display" +#~ msgstr "" +#~ "Приложение будет работать с 8-битным\n" +#~ "дисплеем как с полноцветным устройством." + +#~ msgid "" +#~ "sets XIM (X Input Method) input style. Possible\n" +#~ "values are onthespot, overthespot, offthespot and\n" +#~ "root" +#~ msgstr "" +#~ "Устанавливает тип ввода XIM (X Input Method).\n" +#~ "Возможные значения: onthespot, overthespot, offthespot и \n" +#~ "root." + +#~ msgid "disable XIM" +#~ msgstr "запретить XIM" + +#~ msgid "forces the application to run as QWS Server" +#~ msgstr "Заставляет приложение работать как QWS сервер" + +#~ msgid "mirrors the whole layout of widgets" +#~ msgstr "отразить расположение виджетов" + +#~ msgid "Use 'caption' as name in the titlebar" +#~ msgstr "Использовать имя 'caption' в заголовке" + +#~ msgid "Use 'icon' as the application icon" +#~ msgstr "Использовать 'icon' как значок приложения" + +#~ msgid "Use 'icon' as the icon in the titlebar" +#~ msgstr "Использовать 'icon' как значок заголовка окна" + +#~ msgid "Use alternative configuration file" +#~ msgstr "Использовать альтернативный файл конфигурации" + +#~ msgid "Use the DCOP Server specified by 'server'" +#~ msgstr "Использовать сервер DCOP 'server'" + +#~ msgid "Disable crash handler, to get core dumps" +#~ msgstr "" +#~ "Отключить обработчик сбоев. Это позволит в случае сбоя получить core dump." + +#~ msgid "Waits for a WM_NET compatible windowmanager" +#~ msgstr "Ожидать инициализации WM_NET-совместимого оконного менеджера" + +#~ msgid "sets the application GUI style" +#~ msgstr "устанавливает стиль графического интерфейса приложения" + +#~ msgid "" +#~ "sets the client geometry of the main widget - see man X for the argument " +#~ "format" +#~ msgstr "" +#~ "устанавливает положение и размер главного окна приложения - формат " +#~ "аргумента см. в man X " + +#~ msgid "The style %1 was not found\n" +#~ msgstr "Стиль %1 не найден\n" + +#~ msgid "modified" +#~ msgstr "изменён" + +#~ msgid "Could not Launch Help Center" +#~ msgstr "Не удаётся запустить Центр справки" + +#~ msgid "" +#~ "Could not launch the KDE Help Center:\n" +#~ "\n" +#~ "%1" +#~ msgstr "" +#~ "Не удаётся запустить Центр справки КДЕ:\n" +#~ "\n" +#~ "%1" + +#~ msgid "Could not Launch Mail Client" +#~ msgstr "Не удаётся запустить почтовый клиент" + +#~ msgid "" +#~ "Could not launch the mail client:\n" +#~ "\n" +#~ "%1" +#~ msgstr "" +#~ "Не удаётся запустить почтовый клиент:\n" +#~ "\n" +#~ "%1" + +#~ msgid "Could not Launch Browser" +#~ msgstr "Не удаётся запустить браузер" + +#~ msgid "" +#~ "Could not launch the browser:\n" +#~ "\n" +#~ "%1" +#~ msgstr "" +#~ "Не удаётся запустить браузер:\n" +#~ "\n" +#~ "%1" + +#~ msgid "Could not register with DCOP.\n" +#~ msgstr "Ошибка регистрации на сервере DCOP.\n" + +#~ msgid "KLauncher could not be reached via DCOP.\n" +#~ msgstr "DCOP сервер не обеспечивает доступа к KLauncher.\n" + +#~ msgid "Desktop %1" +#~ msgstr "Рабочий стол %1" + +#~ msgid "Will not save configuration.\n" +#~ msgstr "Конфигурация не будет сохранена.\n" + +#~ msgid "Configuration file \"%1\" not writable.\n" +#~ msgstr "Нет доступа для записи в файл конфигурации \"%1\".\n" + +#~ msgid "Please contact your system administrator." +#~ msgstr "Свяжитесь с вашим системным администратором." + +#~ msgid "Unknown option '%1'." +#~ msgstr "Неизвестный параметр '%1'." + +#~ msgid "'%1' missing." +#~ msgstr "Отсутствует '%1'." + +#~ msgid "" +#~ "_: the 2nd argument is a list of name+address, one on each line\n" +#~ "%1 was written by\n" +#~ "%2" +#~ msgstr "" +#~ "автор(ы) %1:\n" +#~ "%2" + +#~ msgid "" +#~ "This application was written by somebody who wants to remain anonymous." +#~ msgstr "Автор программы пожелал остаться неизвестным." + +#~ msgid "Please use http://bugs.kde.org to report bugs.\n" +#~ msgstr "Используйте http://bugs.kde.org для сообщений об ошибках.\n" + +#~ msgid "Please report bugs to %1.\n" +#~ msgstr "Используйте %1 для сообщений об ошибках.\n" + +#~ msgid "Unexpected argument '%1'." +#~ msgstr "Непредвиденный аргумент '%1'." + +#~ msgid "Use --help to get a list of available command line options." +#~ msgstr "" +#~ "Используйте --help для вывода списка доступных параметров командной " +#~ "строки." + +#~ msgid "" +#~ "\n" +#~ "%1:\n" +#~ msgstr "" +#~ "\n" +#~ "%1:\n" + +#~ msgid "[options] " +#~ msgstr "[параметры]" + +#~ msgid "[%1-options]" +#~ msgstr "[параметры %1]" + +#~ msgid "Usage: %1 %2\n" +#~ msgstr "Применение: %1 %2\n" + +#~ msgid "Generic options" +#~ msgstr "Общие параметры" + +#~ msgid "Show help about options" +#~ msgstr "Показать справку о параметрах" + +#~ msgid "Show %1 specific options" +#~ msgstr "Показать специфические параметры %1" + +#~ msgid "Show all options" +#~ msgstr "Показать все параметры" + +#~ msgid "Show author information" +#~ msgstr "Показать сведения об авторе" + +#~ msgid "Show version information" +#~ msgstr "Показать сведения о версии" + +#~ msgid "Show license information" +#~ msgstr "Показать сведения о лицензии" + +#~ msgid "End of options" +#~ msgstr "Конец параметров" + +#~ msgid "%1 options" +#~ msgstr "параметры %1" + +#~ msgid "" +#~ "\n" +#~ "Options:\n" +#~ msgstr "" +#~ "\n" +#~ "Параметры:\n" + +#~ msgid "" +#~ "\n" +#~ "Arguments:\n" +#~ msgstr "" +#~ "\n" +#~ "Аргументы:\n" + +#~ msgid "The files/URLs opened by the application will be deleted after use" +#~ msgstr "" +#~ "Файлы или URL, открытые приложением, будут удалены после использования" + +#~ msgid "" +#~ msgstr "<неизв. сокет>" + +#~ msgid "" +#~ msgstr "<нет>" + +#~ msgid "" +#~ "_: 1: hostname, 2: port number\n" +#~ "%1 port %2" +#~ msgstr "порт %2 на %1" + +#~ msgid "" +#~ msgstr "<пустой Unix-сокет>" + +#~ msgid "Dr. Klash' Accelerator Diagnosis" +#~ msgstr "Диагностика акселераторов имени от Dr. Klash" + +#~ msgid "&Disable automatic checking" +#~ msgstr "&Отключить автоматическую проверку" + +#~ msgid "

Accelerators changed

" +#~ msgstr "

Акселераторы изменены

" + +#~ msgid "

Accelerators removed

" +#~ msgstr "

Акселераторы удалены

" + +#~ msgid "

Accelerators added (just for your info)

" +#~ msgstr "

Акселераторы добавлены

" + +#~ msgid "New" +#~ msgstr "Создать" + +#~ msgid "Paste Selection" +#~ msgstr "Вставить выделение" + +#~ msgid "Deselect" +#~ msgstr "Отменить выделение" + +#~ msgid "Delete Word Backwards" +#~ msgstr "Удалить слово перед курсором" + +#~ msgid "Delete Word Forward" +#~ msgstr "Удалить слово за курсором" + +#~ msgid "Find" +#~ msgstr "Найти" + +#~ msgid "Find Next" +#~ msgstr "Найти далее" + +#~ msgid "Find Prev" +#~ msgstr "Найти ранее" + +#~ msgid "Navigation" +#~ msgstr "Переход" + +#~ msgid "" +#~ "_: Opposite to End\n" +#~ "Home" +#~ msgstr "Начало" + +#~ msgid "End" +#~ msgstr "В конец" + +#~ msgid "Beginning of Line" +#~ msgstr "Начало строки" + +#~ msgid "End of Line" +#~ msgstr "Конец строки" + +#~ msgid "Prior" +#~ msgstr "Предыдущий" + +#~ msgid "" +#~ "_: Opposite to Prior\n" +#~ "Next" +#~ msgstr "Следующий" + +#~ msgid "Go to Line" +#~ msgstr "Перейти к строке" + +#~ msgid "Add Bookmark" +#~ msgstr "Добавить закладку" + +#~ msgid "Zoom In" +#~ msgstr "Увеличить" + +#~ msgid "Zoom Out" +#~ msgstr "Уменьшить" + +#~ msgid "Up" +#~ msgstr "Вверх" + +#~ msgid "Forward" +#~ msgstr "Вперёд" + +#~ msgid "Popup Menu Context" +#~ msgstr "Показать контекстное меню" + +#~ msgid "Show Menu Bar" +#~ msgstr "Показать меню" + +#~ msgid "Backward Word" +#~ msgstr "На слово назад" + +#~ msgid "Forward Word" +#~ msgstr "На слово вперёд" + +#~ msgid "Activate Next Tab" +#~ msgstr "Активировать следующую вкладку" + +#~ msgid "Activate Previous Tab" +#~ msgstr "Активировать предыдущую вкладку" + +#~ msgid "Full Screen Mode" +#~ msgstr "Полноэкранный режим" + +#~ msgid "What's This" +#~ msgstr "Что это" + +#~ msgid "Text Completion" +#~ msgstr "Завершение текста" + +#~ msgid "Previous Completion Match" +#~ msgstr "Предыдущий вариант завершения" + +#~ msgid "Next Completion Match" +#~ msgstr "Следующий вариант завершения" + +#~ msgid "Substring Completion" +#~ msgstr "Завершение строки" + +#~ msgid "Previous Item in List" +#~ msgstr "Предыдущий элемент в списке" + +#~ msgid "Next Item in List" +#~ msgstr "Следующий элемент в списке" + +#~ msgid "Muharram" +#~ msgstr "Мухаррам" + +#~ msgid "Safar" +#~ msgstr "Сафар" + +#~ msgid "R. Awal" +#~ msgstr "Раби-уль-авваль" + +#~ msgid "R. Thaani" +#~ msgstr "Раби-уль-ахир" + +#~ msgid "J. Awal" +#~ msgstr "Джумад-уль-авваль" + +#~ msgid "J. Thaani" +#~ msgstr "Джумад-уль-ахир" + +#~ msgid "Rajab" +#~ msgstr "Раджаб" + +#~ msgid "Sha`ban" +#~ msgstr "Ша'бан" + +#~ msgid "Ramadan" +#~ msgstr "Рамадан" + +#~ msgid "Shawwal" +#~ msgstr "Шавваль" + +#~ msgid "Qi`dah" +#~ msgstr "Зуль-ка'да" + +#~ msgid "Hijjah" +#~ msgstr "Зуль-хиджжа" + +#~ msgid "Rabi` al-Awal" +#~ msgstr "Раби-уль-авваль" + +#~ msgid "Rabi` al-Thaani" +#~ msgstr "Раби-уль-ахир" + +#~ msgid "Jumaada al-Awal" +#~ msgstr "Джумад-уль-авваль" + +#~ msgid "Jumaada al-Thaani" +#~ msgstr "Джумад-уль-ахир" + +#~ msgid "Thu al-Qi`dah" +#~ msgstr "Зуль-ка'да" + +#~ msgid "Thu al-Hijjah" +#~ msgstr "Зуль-хиджжа" + +#~ msgid "of Muharram" +#~ msgstr "Мухаррама" + +#~ msgid "of Safar" +#~ msgstr "Сафара" + +#~ msgid "of R. Awal" +#~ msgstr "of R. Awal" + +#~ msgid "of R. Thaani" +#~ msgstr "of R. Thaani" + +#~ msgid "of J. Awal" +#~ msgstr "of J. Awal" + +#~ msgid "of J. Thaani" +#~ msgstr "of J. Thaani" + +#~ msgid "of Rajab" +#~ msgstr "Раджаба" + +#~ msgid "of Sha`ban" +#~ msgstr "Ша'бана" + +#~ msgid "of Ramadan" +#~ msgstr "Рамадана" + +#~ msgid "of Shawwal" +#~ msgstr "Шавваля" + +#~ msgid "of Qi`dah" +#~ msgstr "of Qi`dah" + +#~ msgid "of Hijjah" +#~ msgstr "Хиджжа" + +#~ msgid "of Rabi` al-Awal" +#~ msgstr "Раби-уль-авваля" + +#~ msgid "of Rabi` al-Thaani" +#~ msgstr "of Rabi` al-Thaani" + +#~ msgid "of Jumaada al-Awal" +#~ msgstr "of Jumaada al-Awal" + +#~ msgid "of Jumaada al-Thaani" +#~ msgstr "of Jumaada al-Thaani" + +#~ msgid "of Thu al-Qi`dah" +#~ msgstr "of Thu al-Qi`dah" + +#~ msgid "of Thu al-Hijjah" +#~ msgstr "of Thu al-Hijjah" + +#~ msgid "Ith" +#~ msgstr "Ith" + +#~ msgid "Thl" +#~ msgstr "Thl" + +#~ msgid "Arb" +#~ msgstr "Арб" + +#~ msgid "Kha" +#~ msgstr "Kha" + +#~ msgid "Jum" +#~ msgstr "Jum" + +#~ msgid "Sab" +#~ msgstr "Sab" + +#~ msgid "Ahd" +#~ msgstr "Ahd" + +#~ msgid "Yaum al-Ithnain" +#~ msgstr "Yaum al-Ithnain" + +#~ msgid "Yau al-Thulatha" +#~ msgstr "Yau al-Thulatha" + +#~ msgid "Yaum al-Arbi'a" +#~ msgstr "Yaum al-Arbi'a" + +#~ msgid "Yaum al-Khamees" +#~ msgstr "Yaum al-Khamees" + +#~ msgid "Yaum al-Jumma" +#~ msgstr "Yaum al-Jumma" + +#~ msgid "Yaum al-Sabt" +#~ msgstr "Yaum al-Sabt" + +#~ msgid "Yaum al-Ahad" +#~ msgstr "Yaum al-Ahad" + +#~ msgid "" +#~ "_: Dear translator, please do not translate this string in any form, but " +#~ "pick the _right_ value out of NoPlural/TwoForms/French... If not sure " +#~ "what to do mail thd@kde.org and coolo@kde.org, they will tell you. Better " +#~ "leave that out if unsure, the programs will crash!!\n" +#~ "Definition of PluralForm - to be set by the translator of kdelibs.po" +#~ msgstr "Russian" + +#~ msgid "" +#~ "_: January\n" +#~ "Jan" +#~ msgstr "Янв" + +#~ msgid "" +#~ "_: February\n" +#~ "Feb" +#~ msgstr "Фев" + +#~ msgid "" +#~ "_: March\n" +#~ "Mar" +#~ msgstr "Мар" + +#~ msgid "" +#~ "_: April\n" +#~ "Apr" +#~ msgstr "Апр" + +#~ msgid "" +#~ "_: May short\n" +#~ "May" +#~ msgstr "Май" + +#~ msgid "" +#~ "_: June\n" +#~ "Jun" +#~ msgstr "Июн" + +#~ msgid "" +#~ "_: July\n" +#~ "Jul" +#~ msgstr "Июл" + +#~ msgid "" +#~ "_: August\n" +#~ "Aug" +#~ msgstr "Авг" + +#~ msgid "" +#~ "_: September\n" +#~ "Sep" +#~ msgstr "Сен" + +#~ msgid "" +#~ "_: October\n" +#~ "Oct" +#~ msgstr "Окт" + +#~ msgid "" +#~ "_: November\n" +#~ "Nov" +#~ msgstr "Ноя" + +#~ msgid "" +#~ "_: December\n" +#~ "Dec" +#~ msgstr "Дек" + +#~ msgid "January" +#~ msgstr "Январь" + +#~ msgid "February" +#~ msgstr "Февраль" + +#~ msgid "March" +#~ msgstr "Март" + +#~ msgid "April" +#~ msgstr "Апрель" + +#~ msgid "" +#~ "_: May long\n" +#~ "May" +#~ msgstr "Май" + +#~ msgid "June" +#~ msgstr "Июнь" + +#~ msgid "July" +#~ msgstr "Июль" + +#~ msgid "August" +#~ msgstr "Август" + +#~ msgid "September" +#~ msgstr "Сентябрь" + +#~ msgid "October" +#~ msgstr "Октябрь" + +#~ msgid "November" +#~ msgstr "Ноябрь" + +#~ msgid "December" +#~ msgstr "Декабрь" + +#~ msgid "" +#~ "_: of January\n" +#~ "of Jan" +#~ msgstr "янв" + +#~ msgid "" +#~ "_: of February\n" +#~ "of Feb" +#~ msgstr "фев" + +#~ msgid "" +#~ "_: of March\n" +#~ "of Mar" +#~ msgstr "мар" + +#~ msgid "" +#~ "_: of April\n" +#~ "of Apr" +#~ msgstr "апр" + +#~ msgid "" +#~ "_: of May short\n" +#~ "of May" +#~ msgstr "мая" + +#~ msgid "" +#~ "_: of June\n" +#~ "of Jun" +#~ msgstr "июн" + +#~ msgid "" +#~ "_: of July\n" +#~ "of Jul" +#~ msgstr "июл" + +#~ msgid "" +#~ "_: of August\n" +#~ "of Aug" +#~ msgstr "авг" + +#~ msgid "" +#~ "_: of September\n" +#~ "of Sep" +#~ msgstr "сен" + +#~ msgid "" +#~ "_: of October\n" +#~ "of Oct" +#~ msgstr "окт" + +#~ msgid "" +#~ "_: of November\n" +#~ "of Nov" +#~ msgstr "ноя" + +#~ msgid "" +#~ "_: of December\n" +#~ "of Dec" +#~ msgstr "дек" + +#~ msgid "of January" +#~ msgstr "января" + +#~ msgid "of February" +#~ msgstr "февраля" + +#~ msgid "of March" +#~ msgstr "марта" + +#~ msgid "of April" +#~ msgstr "апреля" + +#~ msgid "" +#~ "_: of May long\n" +#~ "of May" +#~ msgstr "мая" + +#~ msgid "of June" +#~ msgstr "июня" + +#~ msgid "of July" +#~ msgstr "июля" + +#~ msgid "of August" +#~ msgstr "августа" + +#~ msgid "of September" +#~ msgstr "сентября" + +#~ msgid "of October" +#~ msgstr "октября" + +#~ msgid "of December" +#~ msgstr "декабря" + +#~ msgid "pm" +#~ msgstr "pm" + +#~ msgid "am" +#~ msgstr "am" + +#~ msgid "" +#~ "_: concatenation of dates and time\n" +#~ "%1 %2" +#~ msgstr "%1 %2" + +#~ msgid "&Next" +#~ msgstr "&Далее" + +#~ msgid "no error" +#~ msgstr "нет ошибки" + +#~ msgid "address family for nodename not supported" +#~ msgstr "семейство адресов для не поддерживается для данного nodename" + +#~ msgid "temporary failure in name resolution" +#~ msgstr "временный сбой разрешения имён" + +#~ msgid "invalid value for 'ai_flags'" +#~ msgstr "неверное значение для 'ai_flags'" + +#~ msgid "non-recoverable failure in name resolution" +#~ msgstr "фатальный сбой разрешения имён" + +#~ msgid "'ai_family' not supported" +#~ msgstr "семейство 'ai_family' не поддерживается" + +#~ msgid "memory allocation failure" +#~ msgstr "ошибка выделения памяти" + +#~ msgid "no address associated with nodename" +#~ msgstr "с данным узлом (nodename) не связан никакой адрес" + +#~ msgid "name or service not known" +#~ msgstr "неизвестное имя или сервис" + +#~ msgid "servname not supported for ai_socktype" +#~ msgstr "servname не поддерживается для типа ai_socktype" + +#~ msgid "'ai_socktype' not supported" +#~ msgstr "тип 'ai_socktype' не поддерживается" + +#~ msgid "system error" +#~ msgstr "системная ошибка" + +#~ msgid "Far" +#~ msgstr "Фар" + +#~ msgid "Ord" +#~ msgstr "Орд" + +#~ msgid "Kho" +#~ msgstr "Хо" + +#~ msgid "Tir" +#~ msgstr "Тир" + +#~ msgid "Mor" +#~ msgstr "Мор" + +#~ msgid "Sha" +#~ msgstr "Ша" + +#~ msgid "Meh" +#~ msgstr "Meh" + +#~ msgid "Aba" +#~ msgstr "Аба" + +#~ msgid "Aza" +#~ msgstr "Аза" + +#~ msgid "Dei" +#~ msgstr "Dei" + +#~ msgid "Bah" +#~ msgstr "Bah" + +#~ msgid "Esf" +#~ msgstr "Esf" + +#~ msgid "Farvardin" +#~ msgstr "Farvardin" + +#~ msgid "Ordibehesht" +#~ msgstr "Ordibehesht" + +#~ msgid "Khordad" +#~ msgstr "Хордад" + +#~ msgid "Mordad" +#~ msgstr "Мордад" + +#~ msgid "Shahrivar" +#~ msgstr "Шахривар" + +#~ msgid "Mehr" +#~ msgstr "Мер" + +#~ msgid "Aban" +#~ msgstr "Абан" + +#~ msgid "Azar" +#~ msgstr "Азар" + +#~ msgid "Bahman" +#~ msgstr "Бахман" + +#~ msgid "Esfand" +#~ msgstr "Эсфанд" + +#~ msgid "2sh" +#~ msgstr "2sh" + +#~ msgid "3sh" +#~ msgstr "3sh" + +#~ msgid "4sh" +#~ msgstr "4sh" + +#~ msgid "5sh" +#~ msgstr "5sh" + +#~ msgid "Jom" +#~ msgstr "Йом" + +#~ msgid "shn" +#~ msgstr "shn" + +#~ msgid "1sh" +#~ msgstr "1sh" + +#~ msgid "Do shanbe" +#~ msgstr "Do shanbe" + +#~ msgid "Se shanbe" +#~ msgstr "Se shanbe" + +#~ msgid "Chahar shanbe" +#~ msgstr "Chahar shanbe" + +#~ msgid "Panj shanbe" +#~ msgstr "Panj shanbe" + +#~ msgid "Jumee" +#~ msgstr "Jumee" + +#~ msgid "Shanbe" +#~ msgstr "Shanbe" + +#~ msgid "Yek-shanbe" +#~ msgstr "Yek-shanbe" + +#~ msgid "Backspace" +#~ msgstr "Backspace" + +#~ msgid "SysReq" +#~ msgstr "SysReq" + +#~ msgid "CapsLock" +#~ msgstr "CapsLock" + +#~ msgid "NumLock" +#~ msgstr "NumLock" + +#~ msgid "ScrollLock" +#~ msgstr "ScrollLock" + +#~ msgid "PageUp" +#~ msgstr "PageUp" + +#~ msgid "PageDown" +#~ msgstr "PageDown" + +#~ msgid "Again" +#~ msgstr "Снова" + +#~ msgid "Props" +#~ msgstr "Свойства" + +#~ msgid "Front" +#~ msgstr "Фронт" + +#~ msgid "Arabic" +#~ msgstr "Арабская" + +#~ msgid "Baltic" +#~ msgstr "Прибалтика" + +#~ msgid "Central European" +#~ msgstr "Центральная Европа" + +#~ msgid "Chinese Simplified" +#~ msgstr "Китайская (КНР)" + +#~ msgid "Chinese Traditional" +#~ msgstr "Китайская (Тайвань)" + +#~ msgid "Cyrillic" +#~ msgstr "Кириллица" + +#~ msgid "Greek" +#~ msgstr "Греческая" + +#~ msgid "Hebrew" +#~ msgstr "Иврит" + +#~ msgid "Japanese" +#~ msgstr "Японская" + +#~ msgid "Korean" +#~ msgstr "Корейская" + +#~ msgid "Thai" +#~ msgstr "Тайская" + +#~ msgid "Turkish" +#~ msgstr "Турецкая" + +#~ msgid "Western European" +#~ msgstr "Западная Европа" + +#~ msgid "Tamil" +#~ msgstr "Тамильская" + +#~ msgid "Unicode" +#~ msgstr "Юникод" + +#~ msgid "Northern Saami" +#~ msgstr "Северное Саами" + +#~ msgid "Vietnamese" +#~ msgstr "Вьетнамская" + +#~ msgid "South-Eastern Europe" +#~ msgstr "Юго-восточная Европа" + +#~ msgid "" +#~ "_: Descriptive Encoding Name\n" +#~ "%1 ( %2 )" +#~ msgstr "%1 (%2)" + +#~ msgid "Trash" +#~ msgstr "Корзина" + +#~ msgid "" +#~ "You reached the end of the list\n" +#~ "of matching items.\n" +#~ msgstr "" +#~ "Достигнут конец списка\n" +#~ "совпадающих элементов.\n" + +#~ msgid "" +#~ "The completion is ambiguous, more than one\n" +#~ "match is available.\n" +#~ msgstr "" +#~ "Завершение неоднозначно, существует более\n" +#~ "одного варианта.\n" + +#~ msgid "There is no matching item available.\n" +#~ msgstr "Нет совпадающих элементов.\n" + +#~ msgid "Tishrey" +#~ msgstr "Тишрей" + +#~ msgid "Heshvan" +#~ msgstr "Хешван" + +#~ msgid "Kislev" +#~ msgstr "Кислев" + +#~ msgid "Tevet" +#~ msgstr "Тевет" + +#~ msgid "Shvat" +#~ msgstr "Шват" + +#~ msgid "Adar" +#~ msgstr "Адар" + +#~ msgid "Nisan" +#~ msgstr "Нисан" + +#~ msgid "Iyar" +#~ msgstr "Ияр" + +#~ msgid "Sivan" +#~ msgstr "Сиван" + +#~ msgid "Tamuz" +#~ msgstr "Тамуз" + +#~ msgid "Av" +#~ msgstr "Ав" + +#~ msgid "Elul" +#~ msgstr "Элул" + +#~ msgid "Adar I" +#~ msgstr "Адар I" + +#~ msgid "Adar II" +#~ msgstr "Адар II" + +#~ msgid "" +#~ "No licensing terms for this program have been specified.\n" +#~ "Please check the documentation or the source for any\n" +#~ "licensing terms.\n" +#~ msgstr "" +#~ "Лицензия в данной программе не указана.\n" +#~ "Возможно, она указана в документации или в исходных текстах этой " +#~ "программы.\n" + +#~ msgid "This program is distributed under the terms of the %1." +#~ msgstr "Программа распространяется на условиях %1." + +#~ msgid "" +#~ "_: Monday\n" +#~ "Mon" +#~ msgstr "Пн" + +#~ msgid "" +#~ "_: Tuesday\n" +#~ "Tue" +#~ msgstr "Вт" + +#~ msgid "" +#~ "_: Wednesday\n" +#~ "Wed" +#~ msgstr "Ср" + +#~ msgid "" +#~ "_: Thursday\n" +#~ "Thu" +#~ msgstr "Чт" + +#~ msgid "" +#~ "_: Friday\n" +#~ "Fri" +#~ msgstr "Пт" + +#~ msgid "" +#~ "_: Saturday\n" +#~ "Sat" +#~ msgstr "Сб" + +#~ msgid "" +#~ "_: Sunday\n" +#~ "Sun" +#~ msgstr "Вс" + +#~ msgid "NEC SOCKS client" +#~ msgstr "Клиент NEC SOCKS" + +#~ msgid "Dante SOCKS client" +#~ msgstr "Клиент Dante SOCKS" + +#~ msgid "Directory to generate files in" +#~ msgstr "Каталог для генерации файлов" + +#~ msgid "Input kcfg XML file" +#~ msgstr "Входной файл XML компилятора kcfg" + +#~ msgid "Code generation options file" +#~ msgstr "Файл параметров генерации кода" + +#~ msgid "KDE .kcfg compiler" +#~ msgstr "Компилятор .kcfg среды KDE" + +#~ msgid "KConfig Compiler" +#~ msgstr "Компилятор KConfig" + +#~ msgid "requested family not supported for this host name" +#~ msgstr "Для указанного имени сервера требуемое семейство не поддерживается" + +#~ msgid "invalid flags" +#~ msgstr "неверные флаги" + +#~ msgid "requested family not supported" +#~ msgstr "запрошенное семейство не поддерживается" + +#~ msgid "requested service not supported for this socket type" +#~ msgstr "запрошенный сервис не поддерживается этим типом сокета" + +#~ msgid "requested socket type not supported" +#~ msgstr "запрошенный тип сокета не поддерживается" + +#~ msgid "unknown error" +#~ msgstr "неизвестная ошибка" + +#~ msgid "" +#~ "_: 1: the i18n'ed system error code, from errno\n" +#~ "system error: %1" +#~ msgstr "системная ошибка: %1" + +#~ msgid "request was canceled" +#~ msgstr "запрос отменён" + +#~ msgid "" +#~ "_: Socket error code NoError\n" +#~ "no error" +#~ msgstr "нет ошибки" + +#~ msgid "" +#~ "_: Socket error code LookupFailure\n" +#~ "name lookup has failed" +#~ msgstr "ошибка разрешения имени" + +#~ msgid "" +#~ "_: Socket error code AddressInUse\n" +#~ "address already in use" +#~ msgstr "адрес уже используется" + +#~ msgid "" +#~ "_: Socket error code AlreadyBound\n" +#~ "socket is already bound" +#~ msgstr "сокет уже связан с адресом и портом" + +#~ msgid "" +#~ "_: Socket error code AlreadyCreated\n" +#~ "socket is already created" +#~ msgstr "сокет уже создан" + +#~ msgid "" +#~ "_: Socket error code NotBound\n" +#~ "socket is not bound" +#~ msgstr "сокет свободен" + +#~ msgid "" +#~ "_: Socket error code NotCreated\n" +#~ "socket has not been created" +#~ msgstr "сокет не создан" + +#~ msgid "" +#~ "_: Socket error code WouldBlock\n" +#~ "operation would block" +#~ msgstr "операция привела бы к блокировке" + +#~ msgid "" +#~ "_: Socket error code ConnectionRefused\n" +#~ "connection actively refused" +#~ msgstr "соединение отвергнуто" + +#~ msgid "" +#~ "_: Socket error code ConnectionTimedOut\n" +#~ "connection timed out" +#~ msgstr "время ожидания соединения истекло" + +#~ msgid "" +#~ "_: Socket error code InProgress\n" +#~ "operation is already in progress" +#~ msgstr "операция уже выполняется" + +#~ msgid "" +#~ "_: Socket error code NetFailure\n" +#~ "network failure occurred" +#~ msgstr "сбой сети" + +#~ msgid "" +#~ "_: Socket error code NotSupported\n" +#~ "operation is not supported" +#~ msgstr "операция не поддерживается" + +#~ msgid "" +#~ "_: Socket error code Timeout\n" +#~ "timed operation timed out" +#~ msgstr "истекло время ожидания операции" + +#~ msgid "" +#~ "_: Socket error code UnknownError\n" +#~ "an unknown/unexpected error has happened" +#~ msgstr "неизвестная или непредвиденная ошибка" + +#~ msgid "" +#~ "_: Socket error code RemotelyDisconnected\n" +#~ "remote host closed connection" +#~ msgstr "Удаленный узел закрыл соединение" + +#~ msgid "" +#~ "_: 1: the unknown socket address family number\n" +#~ "Unknown family %1" +#~ msgstr "Неизвестное семейство %1" + +#~ msgid "Share Hot New Stuff" +#~ msgstr "Опубликовать" + +#~ msgid "Name:" +#~ msgstr "Имя:" + +#~ msgid "Author:" +#~ msgstr "Автор:" + +#~ msgid "Email:" +#~ msgstr "E-mail:" + +#~ msgid "Version:" +#~ msgstr "Версия:" + +#~ msgid "Release:" +#~ msgstr "Выпуск:" + +#~ msgid "License:" +#~ msgstr "Лицензия:" + +#~ msgid "GPL" +#~ msgstr "GPL" + +#~ msgid "LGPL" +#~ msgstr "LGPL" + +#~ msgid "BSD" +#~ msgstr "BSD" + +#~ msgid "Language:" +#~ msgstr "Язык:" + +#~ msgid "Preview URL:" +#~ msgstr "URL для просмотра:" + +#~ msgid "Summary:" +#~ msgstr "Сводка:" + +#~ msgid "Please put in a name." +#~ msgstr "Введите имя." + +#~ msgid "Old upload information found, fill out fields?" +#~ msgstr "Обнаружены параметры прежнего опубликования. Использовать их?" + +#~ msgid "Fill Out" +#~ msgstr "Да" + +#~ msgid "Do Not Fill Out" +#~ msgstr "Нет" + +#~ msgid "The file '%1' already exists. Do you want to overwrite it?" +#~ msgstr "Файл с именем '%1' уже существует. Заменить его?" + +#~ msgid "Overwrite" +#~ msgstr "Заменить" + +#~ msgid "Error parsing providers list." +#~ msgstr "Ошибка обработки списка поставщиков." + +#~ msgid "Get Hot New Stuff" +#~ msgstr "Получить" + +#~ msgid "Welcome" +#~ msgstr "Приветствие" + +#~ msgid "Highest Rated" +#~ msgstr "Наивысший рейтинг" + +#~ msgid "Most Downloads" +#~ msgstr "Наиболее популярные" + +#~ msgid "Latest" +#~ msgstr "Последние" + +#~ msgid "Version" +#~ msgstr "Версия" + +#~ msgid "Rating" +#~ msgstr "Рейтинг" + +#~ msgid "Downloads" +#~ msgstr "Скачать" + +#~ msgid "Release Date" +#~ msgstr "Дата выпуска" + +#~ msgid "Install" +#~ msgstr "Установить" + +#~ msgid "Details" +#~ msgstr "Сведения" + +#~ msgid "" +#~ "Name: %1\n" +#~ "Author: %2\n" +#~ "License: %3\n" +#~ "Version: %4\n" +#~ "Release: %5\n" +#~ "Rating: %6\n" +#~ "Downloads: %7\n" +#~ "Release date: %8\n" +#~ "Summary: %9\n" +#~ msgstr "" +#~ "Имя: %1\n" +#~ "Автор: %2\n" +#~ "Лицензия: %3\n" +#~ "Версия: %4\n" +#~ "Выпуск: %5\n" +#~ "Рейтинг: %6\n" +#~ "Загрузки: %7\n" +#~ "Дата выпуска: %8\n" +#~ "Сведения: %9\n" + +#~ msgid "" +#~ "Preview: %1\n" +#~ "Payload: %2\n" +#~ msgstr "" +#~ "Ознакомление: %1\n" +#~ "Коммерческая информация: %2\n" + +#~ msgid "Installation successful." +#~ msgstr "Установка выполнена успешно." + +#~ msgid "Installation" +#~ msgstr "Установка" + +#~ msgid "Installation failed." +#~ msgstr "Установка не выполнена." + +#~ msgid "Preview not available." +#~ msgstr "Образец недоступен." + +#~ msgid "Download New %1" +#~ msgstr "Загрузить обновление %1" + +#~ msgid "Successfully installed hot new stuff." +#~ msgstr "Успешная установка." + +#~ msgid "Failed to install hot new stuff." +#~ msgstr "Ошибка установки." + +#~ msgid "Unable to create file to upload." +#~ msgstr "Не удалось создать файл для загрузки." + +#~ msgid "The files to be uploaded have been created at:\n" +#~ msgstr "Файлы для загрузки успешно созданы в:\n" + +#~ msgid "Data file: %1\n" +#~ msgstr "Файл данных: %1\n" + +#~ msgid "Preview image: %1\n" +#~ msgstr "Миниатюра: %1\n" + +#~ msgid "Content information: %1\n" +#~ msgstr "Содержимое: %1\n" + +#~ msgid "Those files can now be uploaded.\n" +#~ msgstr "Эти файлы сейчас могут быть переданы.\n" + +#~ msgid "Beware that any people might have access to them at any time." +#~ msgstr "Учтите, что любые люди получат доступ к этим файлам в любое время." + +#~ msgid "Upload Files" +#~ msgstr "Передать файлы" + +#~ msgid "Please upload the files manually." +#~ msgstr "Передайте файлы вручную." + +#~ msgid "Upload Info" +#~ msgstr "Информация о передаче" + +#~ msgid "&Upload" +#~ msgstr "&Передать" + +#~ msgid "Successfully uploaded new stuff." +#~ msgstr "Файлы успешно переданы." + +#~ msgid "Download New Stuff" +#~ msgstr "Загрузить новые материалы" + +#~ msgid "" +#~ "There was an error with the downloaded resource tarball file. Possible " +#~ "causes are damaged archive or invalid directory structure in the archive." +#~ msgstr "" +#~ "С загруженным файлом ресурсов произошла ошибка. Возможные причины - " +#~ "поврежденный архив или неверная структура каталогов в архиве." + +#~ msgid "Resource Installation Error" +#~ msgstr "Ошибка установки ресурса" + +#~ msgid "No keys were found." +#~ msgstr "Ключи не найдены" + +#~ msgid "The validation failed for unknown reason." +#~ msgstr "Сбой проверки целостности по неизвестной причине." + +#~ msgid "The MD5SUM check failed, the archive might be broken." +#~ msgstr "Сбой проверки MD5SUM, архив может быть поврежден." + +#~ msgid "The signature is bad, the archive might be broken or altered." +#~ msgstr "Подпись неверна, архив может быть испорчен или изменен." + +#~ msgid "The signature is valid, but untrusted." +#~ msgstr "Подпись верная, но ненадежная." + +#~ msgid "The signature is unknown." +#~ msgstr "Подпись неизвестна." + +#~ msgid "" +#~ "The resource was signed with key 0x%1, belonging to %2 <" +#~ "%3>." +#~ msgstr "" +#~ "Ресурс был подписан ключом 0x%1, принадлежащим %2 <%3>." + +#~ msgid "" +#~ "There is a problem with the resource file you have downloaded. The " +#~ "errors are :%1
%2

Installation of the resource is not " +#~ "recommended.

Do you want to proceed with the installation?
" +#~ msgstr "" +#~ "С загруженным вами файлом ресурсов имеются следующие проблемы :%1
%2

Установка ресурса не рекомендуется." +#~ "

Продолжить установку?
" + +#~ msgid "Problematic Resource File" +#~ msgstr "Проблематичный файл ресурса" + +#~ msgid "%1

Press OK to install it.
" +#~ msgstr "%1

Нажмите OK, чтобы установить его.
" + +#~ msgid "Valid Resource" +#~ msgstr "Действительный ресурс" + +#~ msgid "The signing failed for unknown reason." +#~ msgstr "Сбой подписывания по неизвестной причине." + +#~ msgid "" +#~ "There are no keys usable for signing or you did not entered the correct " +#~ "passphrase.\n" +#~ "Proceed without signing the resource?" +#~ msgstr "" +#~ "Нет ключей, пригодных для подписывания, или вы не ввели верную ключевую " +#~ "фразу.\n" +#~ "Продолжить без подписывания ресурса?" + +#~ msgid "" +#~ "Cannot start gpg and retrieve the available keys. Make sure " +#~ "that gpg is installed, otherwise verification of downloaded " +#~ "resources will not be possible." +#~ msgstr "" +#~ "Не удаётся запустить gpg и получить все доступные ключи. " +#~ "Убедитесь, что программа gpg установлена, иначе верификация " +#~ "загруженных ресурсов будет невозможна." + +#~ msgid "" +#~ "Enter passphrase for key 0x%1, belonging to
%2<%3>" +#~ ":
" +#~ msgstr "" +#~ "Введите ключевую фразу для ключа 0x%1, принадлежащего
" +#~ "%2<%3>:
" + +#~ msgid "" +#~ "Cannot start gpg and check the validity of the file. Make sure " +#~ "that gpg is installed, otherwise verification of downloaded " +#~ "resources will not be possible." +#~ msgstr "" +#~ "Не удаётся запустить gpg и проверить целостность файла. " +#~ "Убедитесь, что программа gpg установлена, иначе верификация " +#~ "загруженных ресурсов будет невозможна." + +#~ msgid "Select Signing Key" +#~ msgstr "Выберите ключ для подписи" + +#~ msgid "Key used for signing:" +#~ msgstr "Ключ, использовавшийся для подписи:" + +#~ msgid "" +#~ "Cannot start gpg and sign the file. Make sure that gpg " +#~ "is installed, otherwise signing of the resources will not be possible." +#~ msgstr "" +#~ "Не удаётся запустить gpg и подписать файл. Убедитесь, что " +#~ "gpg установлена, иначе подписывание ресурсов будет невозможно." + +#~ msgid "Get hot new stuff:" +#~ msgstr "Получить новые материалы:" + +#~ msgid "Display only media of this type" +#~ msgstr "Показывать материалы указанного типа" + +#~ msgid "Provider list to use" +#~ msgstr "Список используемых провайдеров" + +#~ msgid "Hot New Stuff Providers" +#~ msgstr "Поставщики материалов" + +#~ msgid "Please select one of the providers listed below:" +#~ msgstr "Выберите поставщика из списка:" + +#~ msgid "No provider selected." +#~ msgstr "Поставщик не выбран." + +#~ msgid "Clear Search" +#~ msgstr "Очистить поиск" + +#~ msgid "" +#~ "Search interactively for shortcut names (e.g. Copy) or combination of " +#~ "keys (e.g. Ctrl+C) by typing them here." +#~ msgstr "" +#~ "Интерактивный поиск имён комбинаций клавиш (например, Копировать) или " +#~ "самих комбинаций (например, Ctrl+C). Введите их в поле." + +#~ msgid "" +#~ "Here you can see a list of key bindings, i.e. associations between " +#~ "actions (e.g. 'Copy') shown in the left column and keys or combination of " +#~ "keys (e.g. Ctrl+V) shown in the right column." +#~ msgstr "" +#~ "Здесь показан список комбинаций клавиш, т.е. соответствий между " +#~ "действиями (например, 'Копировать'), приведёнными в левой колонке, и " +#~ "клавиш или их сочетаний (например, CTRL-V), приведённых в правой колонке." + +#~ msgid "Action" +#~ msgstr "Действие" + +#~ msgid "Shortcut" +#~ msgstr "Комбинация клавиш" + +#~ msgid "Alternate" +#~ msgstr "Альтернативно" + +#~ msgid "Shortcut for Selected Action" +#~ msgstr "Клавиша для выбранного действия" + +#~ msgid "" +#~ "_: no key\n" +#~ "&None" +#~ msgstr "&Нет" + +#~ msgid "The selected action will not be associated with any key." +#~ msgstr "Данное действие не будет связано ни с одной клавишей." + +#~ msgid "" +#~ "_: default key\n" +#~ "De&fault" +#~ msgstr "По &умолчанию" + +#~ msgid "" +#~ "This will bind the default key to the selected action. Usually a " +#~ "reasonable choice." +#~ msgstr "" +#~ "Данное действие будет связано с клавишей, установленной для него по " +#~ "умолчанию. Как правило, это разумный выбор." + +#~ msgid "C&ustom" +#~ msgstr "По выбор&у" + +#~ msgid "" +#~ "If this option is selected you can create a customized key binding for " +#~ "the selected action using the buttons below." +#~ msgstr "" +#~ "Если выбран этот вариант, вы можете назначить клавишу для выделенного " +#~ "действия, используя кнопки внизу окна." + +#~ msgid "" +#~ "Use this button to choose a new shortcut key. Once you click it, you can " +#~ "press the key-combination which you would like to be assigned to the " +#~ "currently selected action." +#~ msgstr "" +#~ "Используйте эту кнопку для выбора новой горячей клавиши. Нажав её, " +#~ "выберите сочетание клавиш для выделенного действия." + +#~ msgid "Shortcuts" +#~ msgstr "Комбинации клавиш" + +#~ msgid "Default key:" +#~ msgstr "Клавиша по умолчанию:" + +#~ msgid "None" +#~ msgstr "Нет" + +#~ msgid "" +#~ "In order to use the '%1' key as a shortcut, it must be combined with the " +#~ "Win, Alt, Ctrl, and/or Shift keys." +#~ msgstr "" +#~ "Клавиша '%1' может работать как акселератор только вместе с клавишами " +#~ "Win, Alt, Ctrl и/или Shift." + +#~ msgid "Invalid Shortcut Key" +#~ msgstr "Неверная комбинация клавиш" + +#~ msgid "" +#~ "The '%1' key combination has already been allocated to the \"%2\" " +#~ "action.\n" +#~ "Please choose a unique key combination." +#~ msgstr "" +#~ "Сочетание клавиш %1 уже связано с действием \"%2\".\n" +#~ "Выберите уникальное сочетание клавиш." + +#~ msgid "Conflict with Standard Application Shortcut" +#~ msgstr "Конфликт со стандартной клавишей приложения" + +#~ msgid "" +#~ "The '%1' key combination has already been allocated to the standard " +#~ "action \"%2\".\n" +#~ "Do you want to reassign it from that action to the current one?" +#~ msgstr "" +#~ "Комбинация клавиш '%1' уже связана со стандартным действием \"%2\".\n" +#~ "Связать комбинацию с новым действием?" + +#~ msgid "Conflict with Global Shortcut" +#~ msgstr "Конфликт с глобальной комбинацией" + +#~ msgid "" +#~ "The '%1' key combination has already been allocated to the global action " +#~ "\"%2\".\n" +#~ "Do you want to reassign it from that action to the current one?" +#~ msgstr "" +#~ "Комбинация клавиш '%1' уже связана с глобальным действием \"%2\".\n" +#~ "Связать комбинацию с новым действием?" + +#~ msgid "Key Conflict" +#~ msgstr "Конфликт клавиш" + +#~ msgid "" +#~ "The '%1' key combination has already been allocated to the \"%2\" " +#~ "action.\n" +#~ "Do you want to reassign it from that action to the current one?" +#~ msgstr "" +#~ "Комбинация клавиш %1 уже связана с действием \"%2\".\n" +#~ "Связать комбинацию с новым действием?" + +#~ msgid "Reassign" +#~ msgstr "Связать с новым" + +#~ msgid "Configure Shortcuts" +#~ msgstr "Настройка комбинаций клавиш" + +#~ msgid "Close this tab" +#~ msgstr "Закрыть эту вкладку" + +#~ msgid "Select Region of Image" +#~ msgstr "Выбор области изображения" + +#~ msgid "Please click and drag on the image to select the region of interest:" +#~ msgstr "" +#~ "Нажмите кнопку мыши и перемещайте указатель, чтобы выбрать интересующую " +#~ "область:" + +#~ msgid "Switch application language" +#~ msgstr "Изменить язык приложения" + +#~ msgid "Please choose language which should be used for this application" +#~ msgstr "" +#~ "Выберите язык интерфейса, который вы хотите использовать в этом приложении" + +#~ msgid "Add fallback language" +#~ msgstr "Язык по умолчанию" + +#~ msgid "" +#~ "Adds one more language which will be used if other translations do not " +#~ "contain proper translation" +#~ msgstr "" +#~ "Установить один или несколько языков, которые будут использоваться, если " +#~ "нет перевода на основном языке" + +#~ msgid "" +#~ "Language for this application has been changed. The change will take " +#~ "effect upon next start of application" +#~ msgstr "" +#~ "Язык интерфейса приложения изменён. Это изменение вступит в силу при " +#~ "следующем запуске приложения" + +#~ msgid "Application language changed" +#~ msgstr "Изменён язык интерфейса" + +#~ msgid "Primary language:" +#~ msgstr "Основной язык:" + +#~ msgid "Fallback language:" +#~ msgstr "Язык по умолчанию:" + +#~ msgid "" +#~ "This is main application language which will be used first before any " +#~ "other languages" +#~ msgstr "Это основной язык интерфейса приложения" + +#~ msgid "" +#~ "This is language which will be used if any previous languages does not " +#~ "contain proper translation" +#~ msgstr "" +#~ "Это язык, который будет использоваться, если нет перевода на основном " +#~ "языке" + +#~ msgid "Create &root/affix combinations not in dictionary" +#~ msgstr "Соз&давать сочетания корней/аффиксов не в словаре" + +#~ msgid "Consider run-together &words as spelling errors" +#~ msgstr "С&читать ошибкой написанные вместе слова" + +#~ msgid "&Dictionary:" +#~ msgstr "С&ловарь:" + +#~ msgid "&Encoding:" +#~ msgstr "&Кодировка:" + +#~ msgid "International Ispell" +#~ msgstr "Международный Ispell" + +#~ msgid "Aspell" +#~ msgstr "Aspell" + +#~ msgid "Hspell" +#~ msgstr "Hspell" + +#~ msgid "Zemberek" +#~ msgstr "Zemberek" + +#~ msgid "&Client:" +#~ msgstr "Кл&иент:" + +#~ msgid "Spanish" +#~ msgstr "Испанский" + +#~ msgid "Danish" +#~ msgstr "Датский" + +#~ msgid "German" +#~ msgstr "Немецкий" + +#~ msgid "German (new spelling)" +#~ msgstr "Немецкий (новое произношение)" + +#~ msgid "Brazilian Portuguese" +#~ msgstr "Португальский (Бразилия)" + +#~ msgid "Portuguese" +#~ msgstr "Португальский" + +#~ msgid "Esperanto" +#~ msgstr "Эсперанто" + +#~ msgid "Norwegian" +#~ msgstr "Норвежский" + +#~ msgid "Polish" +#~ msgstr "Польский" + +#~ msgid "Russian" +#~ msgstr "Русский" + +#~ msgid "Slovenian" +#~ msgstr "Словенский" + +#~ msgid "Slovak" +#~ msgstr "Словацкий" + +#~ msgid "Czech" +#~ msgstr "Чешский" + +#~ msgid "Swedish" +#~ msgstr "Шведский" + +#~ msgid "Swiss German" +#~ msgstr "Швейцарский немецкий" + +#~ msgid "Ukrainian" +#~ msgstr "Украинский" + +#~ msgid "Lithuanian" +#~ msgstr "Литовский" + +#~ msgid "French" +#~ msgstr "Французский" + +#~ msgid "Belarusian" +#~ msgstr "Белорусский" + +#~ msgid "Hungarian" +#~ msgstr "Венгерский" + +#~ msgid "" +#~ "_: Unknown ispell dictionary\n" +#~ "Unknown" +#~ msgstr "Неизвестный" + +#~ msgid "ISpell Default" +#~ msgstr "ISpell по умолчанию" + +#~ msgid "" +#~ "_: default spelling dictionary\n" +#~ "Default - %1 [%2]" +#~ msgstr "По умолчанию - %1 [%2]" + +#~ msgid "ASpell Default" +#~ msgstr "ASpell по умолчанию" + +#~ msgid "" +#~ "_: default spelling dictionary\n" +#~ "Default - %1" +#~ msgstr "По умолчанию - %1" + +#~ msgid "Choose..." +#~ msgstr "Выбрать..." + +#~ msgid "Click to select a font" +#~ msgstr "Нажмите, чтобы выбрать шрифт" + +#~ msgid "Preview of the selected font" +#~ msgstr "Образец выбранного шрифта" + +#~ msgid "" +#~ "This is a preview of the selected font. You can change it by clicking the " +#~ "\"Choose...\" button." +#~ msgstr "" +#~ "Это образец выбранного шрифта. Его можно сменить, нажав кнопку " +#~ "\"Выбрать...\"." + +#~ msgid "Preview of the \"%1\" font" +#~ msgstr "Образец шрифта \"%1\"" + +#~ msgid "" +#~ "This is a preview of the \"%1\" font. You can change it by clicking the " +#~ "\"Choose...\" button." +#~ msgstr "" +#~ "Это образец шрифта \"%1\". Вы можете сменить его, нажав кнопку " +#~ "\"Выбрать...\"." + +#~ msgid "??" +#~ msgstr "??" + +#~ msgid "" +#~ "No information available.\n" +#~ "The supplied KAboutData object does not exist." +#~ msgstr "" +#~ "К сожалению, информация отсутствует.\n" +#~ "Программа не предоставила объекта KAboutData." + +#~ msgid "A&uthor" +#~ msgstr "А&втор" + +#~ msgid "A&uthors" +#~ msgstr "&Авторы" + +#~ msgid "" +#~ "Please use http://bugs.kde.org to " +#~ "report bugs.\n" +#~ msgstr "" +#~ "Используйте http://bugs.kde.org для " +#~ "сообщения об ошибках.\n" + +#~ msgid "Please report bugs to %2.\n" +#~ msgstr "" +#~ "Используйте %2 для сообщения об ошибках.\n" + +#~ msgid "&Thanks To" +#~ msgstr "&Благодарности" + +#~ msgid "T&ranslation" +#~ msgstr "&Перевод" + +#~ msgid "&License Agreement" +#~ msgstr "&Лицензия" + +#~ msgid "Here you can choose the font to be used." +#~ msgstr "Здесь можно выбрать шрифт." + +#~ msgid "Requested Font" +#~ msgstr "Запрошенный шрифт" + +#~ msgid "Change font family?" +#~ msgstr "Изменить гарнитуру шрифта?" + +#~ msgid "Enable this checkbox to change the font family settings." +#~ msgstr "Поставьте галочку, чтобы изменить гарнитуру шрифта." + +#~ msgid "Font:" +#~ msgstr "Шрифт:" + +#~ msgid "Font style" +#~ msgstr "Стиль шрифта" + +#~ msgid "Change font style?" +#~ msgstr "Изменить стиль шрифта?" + +#~ msgid "Enable this checkbox to change the font style settings." +#~ msgstr "Поставьте галочку, чтобы изменить стиль шрифта." + +#~ msgid "Font style:" +#~ msgstr "Стиль шрифта:" + +#~ msgid "Size" +#~ msgstr "Размер" + +#~ msgid "Change font size?" +#~ msgstr "Изменить размер шрифта?" + +#~ msgid "Enable this checkbox to change the font size settings." +#~ msgstr "Включите этот параметр, чтобы изменить размеры шрифтов" + +#~ msgid "Size:" +#~ msgstr "Размер:" + +#~ msgid "Here you can choose the font family to be used." +#~ msgstr "Здесь можно выбрать гарнитуру шрифта." + +#~ msgid "Here you can choose the font style to be used." +#~ msgstr "Здесь можно выбрать стиль шрифта." + +#~ msgid "Regular" +#~ msgstr "Обычный" + +#~ msgid "Bold" +#~ msgstr "Жирный" + +#~ msgid "Bold Italic" +#~ msgstr "Жирный курсив" + +#~ msgid "Relative" +#~ msgstr "Относительный" + +#~ msgid "Font size
fixed or relative
to environment" +#~ msgstr "" +#~ "Размер шрифта
фиксированный или относительный
для " +#~ "окружения" + +#~ msgid "" +#~ "Here you can switch between fixed font size and font size to be " +#~ "calculated dynamically and adjusted to changing environment (e.g. widget " +#~ "dimensions, paper size)." +#~ msgstr "" +#~ "Здесь можно переключиться между фиксированным размером шрифта и размером, " +#~ "вычисляемым динамически и зависящим от изменяющегося окружения (размер " +#~ "элементов окна, бумаги и т.д.)." + +#~ msgid "Here you can choose the font size to be used." +#~ msgstr "Здесь можно выбрать размер шрифта." + +#~ msgid "The Quick Brown Fox Jumps Over The Lazy Dog" +#~ msgstr "" +#~ "Широкая электрификация южных губерний даст мощный толчок подъёму " +#~ "сельского хозяйства" + +#~ msgid "" +#~ "This sample text illustrates the current settings. You may edit it to " +#~ "test special characters." +#~ msgstr "" +#~ "Этот текст иллюстрирует текущие параметры. Измените его, чтобы проверить " +#~ "корректность отображения специальных символов." + +#~ msgid "Actual Font" +#~ msgstr "Доступный шрифт" + +#~ msgid "&Available:" +#~ msgstr "&Доступные:" + +#~ msgid "&Selected:" +#~ msgstr "&Выбранные:" + +#~ msgid "" +#~ "_: Character\n" +#~ "%2
Unicode code point: U+" +#~ "%3
(In decimal: %4)
(Character: %5)
" +#~ msgstr "" +#~ "%2
Юникод: U+" +#~ "%3
(десятичный: %4)
(Символ: %5)
" + +#~ msgid "Table:" +#~ msgstr "Таблица:" + +#~ msgid "&Unicode code point:" +#~ msgstr "Код &Юникода:" + +#~ msgid "Question" +#~ msgstr "Вопрос" + +#~ msgid "Do not ask again" +#~ msgstr "Не задавать больше этот вопрос" + +#~ msgid "About %1" +#~ msgstr "О программе %1" + +#~ msgid "Manual" +#~ msgstr "Ручное" + +#~ msgid "Automatic" +#~ msgstr "Автоматическое" + +#~ msgid "Dropdown List" +#~ msgstr "Выпадающий список" + +#~ msgid "Short Automatic" +#~ msgstr "Полуавтоматическое" + +#~ msgid "Dropdown List && Automatic" +#~ msgstr "Выпадающий список и автоматическое" + +#~ msgid "" +#~ "The K Desktop Environment is written and maintained by the KDE " +#~ "Team, a world-wide network of software engineers committed to Free Software " +#~ "development.

No single group, company or organization controls the " +#~ "KDE source code. Everyone is welcome to contribute to KDE.

Visit " +#~ "http://www.kde.org for more " +#~ "information on the KDE project. " +#~ msgstr "" +#~ "Среда KDE написана и развивается командой KDE, мировым сообществом " +#~ "программистов, посвящающих себя разработке свободного программного обеспечения." +#~ "

Не существует группы или организации, держащей под контролем " +#~ "исходные тексты KDE. Мы будем рады каждому, кто захочет внести свой вклад " +#~ "в развитие KDE.

Для того чтобы больше узнать о проекте KDE, " +#~ "зайдите на сайт http://www.kde.org/. " + +#~ msgid "" +#~ "You do not have to be a software developer to be a member of the KDE " +#~ "team. You can join the national teams that translate program interfaces. " +#~ "You can provide graphics, themes, sounds, and improved documentation. You " +#~ "decide!

Visit http://www.kde." +#~ "org/jobs/ for information on some projects in which you can " +#~ "participate.

If you need more information or documentation, then a " +#~ "visit to http://developer.kde.org will provide you with what you need." +#~ msgstr "" +#~ "Для того чтобы включиться в разработку KDE, не обязательно быть " +#~ "программистом. Вы можете помочь в переводе KDE на родной язык, создавать " +#~ "графику, стили, звуки, улучшать документацию - то есть тем, чем вы сами " +#~ "хотите заниматься.

Список проектов, в которых вы могли бы принять " +#~ "участие, приведён на сайте
http://" +#~ "www.kde.org/jobs/. Вполне возможно, какой-то из них вас заинтересует." +#~ "

Более подробные сведения и документацию можно найти на сайте http://developer.kde.org/." + +#~ msgid "" +#~ "KDE is available free of charge, but making it is not free.

Thus, " +#~ "the KDE team formed the KDE e.V., a non-profit organization legally " +#~ "founded in Tuebingen, Germany. The KDE e.V. represents the KDE project in " +#~ "legal and financial matters. See http://www.kde-ev.org for information on the KDE e.V.

The " +#~ "KDE team does need financial support. Most of the money is used to " +#~ "reimburse members and others on expenses they experienced when " +#~ "contributing to KDE. You are encouraged to support KDE through a " +#~ "financial donation, using one of the ways described at http://www.kde.org/support/.

Thank you " +#~ "very much in advance for your support." +#~ msgstr "" +#~ "Среда KDE распространяется бесплатно, но её создание требует затрат." +#~ "

Поэтому команда KDE основала Ассоциацию KDE, некоммерческую " +#~ "организацию, которая зарегистрирована в Тюбингене, Германия. Ассоциация " +#~ "KDE представляет проект KDE в правовом и финансовом аспектах. Посетите http://www.kde.org/kde-ev/ для " +#~ "получения более подробной информации об Ассоциации KDE.

Команда " +#~ "KDE нуждается в финансовой поддержке. Большая часть средств используется " +#~ "для возмещения расходов участников проекта, которые они несут при " +#~ "разработке KDE. Вы можете поддержать KDE финансовым пожертвованием, " +#~ "которое может быть внесено одним из способов, описанных на
http://www.kde.org/support/." +#~ "

Заранее благодарим за поддержку!" + +#~ msgid "K Desktop Environment. Release %1" +#~ msgstr "Среда KDE. Версия %1" + +#~ msgid "" +#~ "_: About KDE\n" +#~ "&About" +#~ msgstr "О среде &KDE" + +#~ msgid "&Report Bugs or Wishes" +#~ msgstr "&Сообщить об ошибках или пожеланиях" + +#~ msgid "&Join the KDE Team" +#~ msgstr "&Вступить в команду KDE" + +#~ msgid "&Support KDE" +#~ msgstr "&Поддержать KDE" + +#~ msgid "&Yes" +#~ msgstr "&Да" + +#~ msgid "&No" +#~ msgstr "&Нет" + +#~ msgid "Discard changes" +#~ msgstr "Сбросить изменения" + +#~ msgid "" +#~ "Pressing this button will discard all recent changes made in this dialog" +#~ msgstr "Нажатие этой клавиши отменит все изменения в текущем окне" + +#~ msgid "Save data" +#~ msgstr "Сохранить данные" + +#~ msgid "&Do Not Save" +#~ msgstr "&Не сохранять" + +#~ msgid "Don't save data" +#~ msgstr "Не сохранять данные" + +#~ msgid "Save &As..." +#~ msgstr "Сохранить &как..." + +#~ msgid "Save file with another name" +#~ msgstr "Сохранить файл с другим именем" + +#~ msgid "Apply changes" +#~ msgstr "Применить изменения" + +#~ msgid "" +#~ "When clicking Apply, the settings will be handed over to the " +#~ "program, but the dialog will not be closed.\n" +#~ "Use this to try different settings." +#~ msgstr "" +#~ "При нажатии кнопки Применить параметры будут переданы в программу, " +#~ "но диалог не будет закрыт.\n" +#~ "Благодаря этому вы можете попробовать различные варианты настройки." + +#~ msgid "Administrator &Mode..." +#~ msgstr "&Режим администратора..." + +#~ msgid "Enter Administrator Mode" +#~ msgstr "Вход с правами администратора" + +#~ msgid "" +#~ "When clicking Administrator Mode you will be prompted for the " +#~ "administrator (root) password in order to make changes which require root " +#~ "privileges." +#~ msgstr "" +#~ "При нажатии кнопки Режим администратора будет запрошен пароль " +#~ "администратора (root), поскольку действия нужно будет выполнять с правами " +#~ "администратора." + +#~ msgid "Clear input" +#~ msgstr "Очистить ввод" + +#~ msgid "Clear the input in the edit field" +#~ msgstr "Очистить ввод в строке редактирования" + +#~ msgid "" +#~ "_: show help\n" +#~ "&Help" +#~ msgstr "&Справка" + +#~ msgid "Show help" +#~ msgstr "Показать справку" + +#~ msgid "Close the current window or document" +#~ msgstr "Закрыть текущее окно или документ" + +#~ msgid "Reset all items to their default values" +#~ msgstr "Восстановить значения по умолчанию" + +#~ msgid "" +#~ "_: go back\n" +#~ "&Back" +#~ msgstr "&Назад" + +#~ msgid "Go back one step" +#~ msgstr "Вернуться на шаг назад" + +#~ msgid "" +#~ "_: go forward\n" +#~ "&Forward" +#~ msgstr "&Вперёд" + +#~ msgid "Go forward one step" +#~ msgstr "Перейти на шаг вперёд" + +#~ msgid "Opens the print dialog to print the current document" +#~ msgstr "Открывает диалог печати для печати текущего документа" + +#~ msgid "C&ontinue" +#~ msgstr "Пр&одолжить" + +#~ msgid "Continue operation" +#~ msgstr "Продолжить действие" + +#~ msgid "Delete item(s)" +#~ msgstr "Удалить элементы" + +#~ msgid "Open file" +#~ msgstr "Открыть файл" + +#~ msgid "Quit application" +#~ msgstr "Выйти из приложения" + +#~ msgid "&Reset" +#~ msgstr "Сб&рос" + +#~ msgid "Reset configuration" +#~ msgstr "Сбросить конфигурацию" + +#~ msgid "" +#~ "_: Verb\n" +#~ "&Insert" +#~ msgstr "&Вставить" + +#~ msgid "Confi&gure..." +#~ msgstr "&Настроить..." + +#~ msgid "&Find" +#~ msgstr "&Поиск" + +#~ msgid "Test" +#~ msgstr "Проверить" + +#~ msgid "&Overwrite" +#~ msgstr "&Заменить" + +#~ msgid "Empty Page" +#~ msgstr "Пустая вкладка" + +#~ msgid "As-you-type spell checking enabled." +#~ msgstr "Проверка орфографии на лету включена." + +#~ msgid "As-you-type spell checking disabled." +#~ msgstr "Проверка орфографии на лету выключена." + +#~ msgid "Incremental Spellcheck" +#~ msgstr "Проверка орфографии на лету" + +#~ msgid "Too many misspelled words. As-you-type spell checking disabled." +#~ msgstr "" +#~ "Слишком много ошибочных слов. Проверка орфографии на лету выключена." + +#~ msgid "No text!" +#~ msgstr "Нет текста!" + +#~ msgid "Editing disabled" +#~ msgstr "Редактирование выключено" + +#~ msgid "Editing enabled" +#~ msgstr "Редактирование включено" + +#~ msgid "Show Toolbar" +#~ msgstr "Показать панель инструментов" + +#~ msgid "Hide Toolbar" +#~ msgstr "Скрыть панель инструментов" + +#~ msgid "Toolbars" +#~ msgstr "Панели инструментов" + +#~ msgid "Week %1" +#~ msgstr "Неделя %1" + +#~ msgid "Next year" +#~ msgstr "Следующий год" + +#~ msgid "Previous year" +#~ msgstr "Предыдущий год" + +#~ msgid "Next month" +#~ msgstr "Следующий месяц" + +#~ msgid "Previous month" +#~ msgstr "Предыдущий месяц" + +#~ msgid "Select a week" +#~ msgstr "Выберите неделю" + +#~ msgid "Select a month" +#~ msgstr "Выберите месяц" + +#~ msgid "Select a year" +#~ msgstr "Выберите год" + +#~ msgid "Select the current day" +#~ msgstr "Выбрать текущий день" + +#~ msgid "" +#~ "Not Defined
There is no \"What's This?\" help assigned to this " +#~ "widget. If you want to help us to describe the widget, you are welcome " +#~ "to send us your own \"What's This?\" help for it." +#~ msgstr "" +#~ "Нет данных
Справка для этого элемента отсутствует. Вы можете " +#~ "помочь в написании этой справки и
отправить " +#~ "нам текст справки \"Что это?\" для данного элемента." + +#~ msgid "Configure Shortcut" +#~ msgstr "Настройка комбинаций клавиш" + +#~ msgid "Advanced" +#~ msgstr "Дополнительно" + +#~ msgid "--- line separator ---" +#~ msgstr "--- разделитель строк ---" + +#~ msgid "--- separator ---" +#~ msgstr "--- разделитель ---" + +#~ msgid "Configure Toolbars" +#~ msgstr "Настроить панели инструментов" + +#~ msgid "" +#~ "Do you really want to reset all toolbars of this application to their " +#~ "default? The changes will be applied immediately." +#~ msgstr "" +#~ "Восстановить панели инструментов по умолчанию? Изменения вступят в силу " +#~ "немедленно." + +#~ msgid "Reset Toolbars" +#~ msgstr "Восстановить панели инструментов" + +#~ msgid "Reset" +#~ msgstr "Восстановить" + +#~ msgid "&Toolbar:" +#~ msgstr "&Панель инструментов:" + +#~ msgid "A&vailable actions:" +#~ msgstr "&Доступные действия:" + +#~ msgid "Curr&ent actions:" +#~ msgstr "&Текущие действия:" + +#~ msgid "Change &Icon..." +#~ msgstr "Изменить &значок..." + +#~ msgid "" +#~ "This element will be replaced with all the elements of an embedded " +#~ "component." +#~ msgstr "" +#~ "Данный элемент будет полностью замещён элементами встроенного компонента." + +#~ msgid "" +#~ msgstr "<Точка вставки>" + +#~ msgid "" +#~ msgstr "<Точка вставки %1>" + +#~ msgid "" +#~ "This is a dynamic list of actions. You can move it, but if you remove it " +#~ "you won't be able to re-add it." +#~ msgstr "" +#~ "Этот элемент соответствует изменяемому в процессе работы набору " +#~ "инструментов. Его можно перемещать, однако если его удалить, то заново " +#~ "восстановить его будет невозможно." + +#~ msgid "ActionList: %1" +#~ msgstr "Набор инструментов: %1" + +#~ msgid "" +#~ "_: palette name\n" +#~ "* Recent Colors *" +#~ msgstr "* Последние цвета *" + +#~ msgid "" +#~ "_: palette name\n" +#~ "* Custom Colors *" +#~ msgstr "* Собственные цвета *" + +#~ msgid "" +#~ "_: palette name\n" +#~ "Forty Colors" +#~ msgstr "Сорок цветов" + +#~ msgid "" +#~ "_: palette name\n" +#~ "Rainbow Colors" +#~ msgstr "Радужные цвета" + +#~ msgid "" +#~ "_: palette name\n" +#~ "Royal Colors" +#~ msgstr "Цвета ройял" + +#~ msgid "" +#~ "_: palette name\n" +#~ "Web Colors" +#~ msgstr "Цвета Web" + +#~ msgid "Named Colors" +#~ msgstr "Именованные цвета" + +#~ msgid "" +#~ "Unable to read X11 RGB color strings. The following file location(s) were " +#~ "examined:\n" +#~ msgstr "" +#~ "Не удаётся прочитать имена цветов X11 ни из одного из следующих мест:\n" + +#~ msgid "Select Color" +#~ msgstr "Выберите цвет" + +#~ msgid "H:" +#~ msgstr "H:" + +#~ msgid "S:" +#~ msgstr "S:" + +#~ msgid "V:" +#~ msgstr "V:" + +#~ msgid "R:" +#~ msgstr "R:" + +#~ msgid "G:" +#~ msgstr "G:" + +#~ msgid "B:" +#~ msgstr "B:" + +#~ msgid "&Add to Custom Colors" +#~ msgstr "&Добавить в собственные цвета" + +#~ msgid "HTML:" +#~ msgstr "HTML:" + +#~ msgid "Default color" +#~ msgstr "Цвет по умолчанию" + +#~ msgid "-default-" +#~ msgstr "-по умолчанию-" + +#~ msgid "-unnamed-" +#~ msgstr "-безымянный-" + +#~ msgid "" +#~ "_: beginning (of line)\n" +#~ "&Home" +#~ msgstr "В &начало строки" + +#~ msgid "Show Menubar

Shows the menubar again after it has been hidden" +#~ msgstr "Показать меню

Показать меню снова после того, как оно было скрыто" + +#~ msgid "Hide &Menubar" +#~ msgstr "Скрыть &меню" + +#~ msgid "" +#~ "Hide Menubar

Hide the menubar. You can usually get it back using the " +#~ "right mouse button inside the window itself." +#~ msgstr "" +#~ "Скрыть меню

Скрыть панель меню. Обычно его можно вернуть, нажав правую " +#~ "кнопку внутри окна." + +#~ msgid "Show St&atusbar" +#~ msgstr "Показывать строку &состояния" + +#~ msgid "" +#~ "Show Statusbar

Shows the statusbar, which is the bar at the bottom of " +#~ "the window used for status information." +#~ msgstr "" +#~ "Показывать строку состояния

Строка состояния - это полоса в нижней " +#~ "части окна, в которой выводится информация и состоянии приложения." + +#~ msgid "Hide St&atusbar" +#~ msgstr "Скрыть строку &состояния" + +#~ msgid "" +#~ "Hide Statusbar

Hides the statusbar, which is the bar at the bottom of " +#~ "the window used for status information." +#~ msgstr "" +#~ "Скрыть строку состояния

Строка состояния - это полоса в нижней части " +#~ "окна, в которой выводится информация и состоянии приложения." + +#~ msgid "&Password:" +#~ msgstr "&Пароль:" + +#~ msgid "&Keep password" +#~ msgstr "Сохранить паро&ль" + +#~ msgid "&Verify:" +#~ msgstr "&Проверка:" + +#~ msgid "Password strength meter:" +#~ msgstr "Датчик надёжности пароля:" + +#~ msgid "" +#~ "The password strength meter gives an indication of the security of the " +#~ "password you have entered. To improve the strength of the password, " +#~ "try:\n" +#~ " - using a longer password;\n" +#~ " - using a mixture of upper- and lower-case letters;\n" +#~ " - using numbers or symbols, such as #, as well as letters." +#~ msgstr "" +#~ "Датчик показывает защищённость или надёжность введённого пароля. Пароль " +#~ "будет более надёжным, если:\n" +#~ " - он имеет достаточную длину;\n" +#~ " - в него входят как прописные, так и строчные буквы;\n" +#~ " - в него входят помимо букв числа и специальные символы, такие как #." + +#~ msgid "Passwords do not match" +#~ msgstr "Пароли не совпадают" + +#~ msgid "You entered two different passwords. Please try again." +#~ msgstr "Введённые пароли не совпадают. Попробуйте ещё раз." + +#~ msgid "" +#~ "The password you have entered has a low strength. To improve the strength " +#~ "of the password, try:\n" +#~ " - using a longer password;\n" +#~ " - using a mixture of upper- and lower-case letters;\n" +#~ " - using numbers or symbols as well as letters.\n" +#~ "\n" +#~ "Would you like to use this password anyway?" +#~ msgstr "" +#~ "Введён слабый пароль. Пароль будет более надёжным, если:\n" +#~ " - он имеет достаточную длину;\n" +#~ " - в него входят как прописные, так и строчные буквы;\n" +#~ " - в него входят помимо букв числа и специальные символы.\n" +#~ "\n" +#~ "Использовать введённый пароль?" + +#~ msgid "Low Password Strength" +#~ msgstr "Слабый пароль" + +#~ msgid "Password is empty" +#~ msgstr "Пустой пароль" + +#~ msgid "" +#~ "_n: Password must be at least 1 character long\n" +#~ "Password must be at least %n characters long" +#~ msgstr "" +#~ "Пароль должен быть не короче %n символа\n" +#~ "Пароль должен быть не короче %n символов\n" +#~ "Пароль должен быть не короче %n символов" + +#~ msgid "Passwords match" +#~ msgstr "Пароли совпадают" + +#~ msgid "Check Spelling" +#~ msgstr "Проверить орфографию" + +#~ msgid "&Finished" +#~ msgstr "&Готово" + +#~ msgid "Clear &History" +#~ msgstr "Очистить &хронологию" + +#~ msgid "No further item in the history." +#~ msgstr "Нет более элементов в списке." + +#~ msgid "&Browse..." +#~ msgstr "&Обзор..." + +#~ msgid "&Try" +#~ msgstr "&Попробовать" + +#~ msgid "" +#~ "If you press the OK button, all changes\n" +#~ "you made will be used to proceed." +#~ msgstr "" +#~ "При нажатии кнопки OK будут \n" +#~ "применены все внесённые изменения." + +#~ msgid "Accept settings" +#~ msgstr "Применить" + +#~ msgid "" +#~ "When clicking Apply, the settings will be\n" +#~ "handed over to the program, but the dialog\n" +#~ "will not be closed. Use this to try different settings. " +#~ msgstr "" +#~ "При нажатии кнопки Применить параметры будут\n" +#~ "переданы в программу, но диалог не будет закрыт.\n" +#~ "Благодаря этому вы можете попробовать различные варианты настройки." + +#~ msgid "Apply settings" +#~ msgstr "Сохранить параметры" + +#~ msgid "&Details" +#~ msgstr "&Подробности" + +#~ msgid "Get help..." +#~ msgstr "Справка..." + +#~ msgid "&Add" +#~ msgstr "Доб&авить" + +#~ msgid "Move &Up" +#~ msgstr "Переместить вв&ерх" + +#~ msgid "Move &Down" +#~ msgstr "Переместить &вниз" + +#~ msgid "Submit Bug Report" +#~ msgstr "Отправить отчёт об ошибке" + +#~ msgid "" +#~ "Your email address. If incorrect, use the Configure Email button to " +#~ "change it" +#~ msgstr "" +#~ "Ваш электронный адрес. Если он неверен, нажмите кнопку \"Настройка " +#~ "электронной почты\" и измените его." + +#~ msgid "From:" +#~ msgstr "Отправитель: " + +#~ msgid "Configure Email..." +#~ msgstr "Параметры электронной почты..." + +#~ msgid "The email address this bug report is sent to." +#~ msgstr "Почтовый адрес для отправления сообщения об ошибке." + +#~ msgid "To:" +#~ msgstr "Кому:" + +#~ msgid "&Send" +#~ msgstr "&Отправить" + +#~ msgid "Send bug report." +#~ msgstr "Отправить сообщение об ошибке." + +#~ msgid "Send this bug report to %1." +#~ msgstr "Отправить это сообщение об ошибке на %1." + +#~ msgid "" +#~ "The application for which you wish to submit a bug report - if incorrect, " +#~ "please use the Report Bug menu item of the correct application" +#~ msgstr "" +#~ "Приложение, содержащее описываемую ошибку. Если здесь указано не то " +#~ "приложение, используйте пункт меню \"Отправить сообщение об ошибке\" " +#~ "нужного приложения" + +#~ msgid "Application: " +#~ msgstr "Приложение: " + +#~ msgid "" +#~ "The version of this application - please make sure that no newer version " +#~ "is available before sending a bug report" +#~ msgstr "" +#~ "Версия программы. Прежде чем отправлять сообщение об ошибке, проверьте, " +#~ "не вышла ли более свежая версия." + +#~ msgid "no version set (programmer error!)" +#~ msgstr "нет данных о версии (ошибка программиста!)" + +#~ msgid "OS:" +#~ msgstr "ОС:" + +#~ msgid "Compiler:" +#~ msgstr "Компилятор:" + +#~ msgid "Se&verity" +#~ msgstr "Степень &важности" + +#~ msgid "Critical" +#~ msgstr "Критическая ошибка" + +#~ msgid "Grave" +#~ msgstr "Опасная ошибка" + +#~ msgid "" +#~ "_: normal severity\n" +#~ "Normal" +#~ msgstr "Обычная ошибка" + +#~ msgid "Wishlist" +#~ msgstr "Пожелание" + +#~ msgid "Translation" +#~ msgstr "Ошибка в переводе" + +#~ msgid "S&ubject: " +#~ msgstr "&Тема: " + +#~ msgid "" +#~ "Enter the text (in English if possible) that you wish to submit for the " +#~ "bug report.\n" +#~ "If you press \"Send\", a mail message will be sent to the maintainer of " +#~ "this program.\n" +#~ msgstr "" +#~ "Введите текст (желательно по-английски), который описывает ошибку.\n" +#~ "Если вы нажмёте \"Отправить\", сообщение будет отправлено к " +#~ "ответственному за разработку этой программы.\n" + +#~ msgid "" +#~ "To submit a bug report, click on the button below.\n" +#~ "This will open a web browser window on http://bugs.kde.org where you will " +#~ "find a form to fill in.\n" +#~ "The information displayed above will be transferred to that server." +#~ msgstr "" +#~ "Для того чтобы отправить сообщение об ошибке, щёлкните на ссылке.\n" +#~ "Откроется окно http://bugs.kde.org, где можно будет заполнить форму.\n" +#~ "Информация будет отправлена на сервер учёта ошибок." + +#~ msgid "&Launch Bug Report Wizard" +#~ msgstr "&Запустить мастер сообщения об ошибке" + +#~ msgid "" +#~ "_: unknown program name\n" +#~ "unknown" +#~ msgstr "неизв." + +#~ msgid "" +#~ "You must specify both a subject and a description before the report can " +#~ "be sent." +#~ msgstr "Перед отправкой отчёта необходимо указать тему и описание ошибки." + +#~ msgid "" +#~ "

You chose the severity Critical. Please note that this severity " +#~ "is intended only for bugs that

  • break unrelated software on the " +#~ "system (or the whole system)
  • cause serious data loss
  • introduce a security hole on the system where the affected package " +#~ "is installed
\n" +#~ "

Does the bug you are reporting cause any of the above damage? If it " +#~ "does not, please select a lower severity. Thank you!

" +#~ msgstr "" +#~ "

Выбран уровень ошибки Критическая. Этот уровень подразумевает, " +#~ "что ошибка

  • может вызвать сбой в работе других программ или " +#~ "системы в целом
  • привести к порче и утрате данных
  • нарушить " +#~ "безопасность системы, если установлен данный пакет
\n" +#~ "

Является ли ошибка, о которой вы хотите сообщить, настолько серьёзной? " +#~ "Если нет, выберите другой, менее высокий уровень ошибки.

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

You chose the severity Grave. Please note that this severity is " +#~ "intended only for bugs that

  • make the package in question " +#~ "unusable or mostly so
  • cause data loss
  • introduce a " +#~ "security hole allowing access to the accounts of users who use the " +#~ "affected package
\n" +#~ "

Does the bug you are reporting cause any of the above damage? If it " +#~ "does not, please select a lower severity. Thank you!

" +#~ msgstr "" +#~ "

Вы выбрали уровень ошибки Опасная. Этот уровень подразумевает, " +#~ "что ошибка

  • может вызвать неисправимый сбой в работе данного " +#~ "пакета
  • привести к утрате данных
  • нарушить безопасность " +#~ "системы и открыть доступ к файлам пользователей, установивших данный " +#~ "пакет
\n" +#~ "

Является ли ошибка, о которой вы хотите сообщить, настолько серьёзной? " +#~ "Если нет, выберите другой, менее высокий уровень ошибки.

" + +#~ msgid "" +#~ "Unable to send the bug report.\n" +#~ "Please submit a bug report manually...\n" +#~ "See http://bugs.kde.org/ for instructions." +#~ msgstr "" +#~ "Не удалось отправить сообщение об ошибке.\n" +#~ "Попробуйте отправить его вручную.\n" +#~ "На сайте http://bugs.kde.org/ сказано\n" +#~ ", как это сделать." + +#~ msgid "Bug report sent, thank you for your input." +#~ msgstr "Сообщение об ошибке отправлено, спасибо." + +#~ msgid "" +#~ "Close and discard\n" +#~ "edited message?" +#~ msgstr "" +#~ "Закрыть и отменить\n" +#~ "введённое сообщение?" + +#~ msgid "Close Message" +#~ msgstr "Закрыть сообщение" + +#~ msgid "Custom..." +#~ msgstr "Пользовательский..." + +#~ msgid "Are you sure you want to quit %1?" +#~ msgstr "Вы действительно хотите выйти из %1'?" + +#~ msgid "Confirm Quit From System Tray" +#~ msgstr "Подтвердите выход из области уведомления" + +#~ msgid "Image Operations" +#~ msgstr "Операции с изображением" + +#~ msgid "&Rotate Clockwise" +#~ msgstr "&Повернуть по часовой стрелке" + +#~ msgid "Rotate &Counterclockwise" +#~ msgstr "П&овернуть против часовой стрелки" + +#~ msgid "" +#~ "_: Freeze the window geometry\n" +#~ "Freeze" +#~ msgstr "Зафиксировать" + +#~ msgid "" +#~ "_: Dock this window\n" +#~ "Dock" +#~ msgstr "Встроить" + +#~ msgid "Detach" +#~ msgstr "Отделить" + +#~ msgid "&Back" +#~ msgstr "&Назад" + +#~ msgid "" +#~ "_: Opposite to Back\n" +#~ "&Next" +#~ msgstr "&Вперед" + +#~ msgid "%1 &Handbook" +#~ msgstr "&Руководство пользователя %1" + +#~ msgid "What's &This" +#~ msgstr "Что &это" + +#~ msgid "&Report Bug..." +#~ msgstr "Сооб&щить об ошибке..." + +#~ msgid "Switch application &language..." +#~ msgstr "Изменить &язык приложения..." + +#~ msgid "&About %1" +#~ msgstr "&О программе %1" + +#~ msgid "About &KDE" +#~ msgstr "О &KDE" + +#~ msgid "Exit F&ull Screen Mode" +#~ msgstr "&Выйти из полноэкранного режима" + +#~ msgid "F&ull Screen Mode" +#~ msgstr "&Полноэкранный режим" + +#~ msgid "Search Columns" +#~ msgstr "Столбцы для поиска" + +#~ msgid "All Visible Columns" +#~ msgstr "Все показанные столбцы" + +#~ msgid "" +#~ "_: Column number %1\n" +#~ "Column No. %1" +#~ msgstr "Столбец № %1" + +#~ msgid "S&earch:" +#~ msgstr "&Поиск:" + +#~ msgid "Tip of the Day" +#~ msgstr "Совет дня" + +#~ msgid "Did you know...?\n" +#~ msgstr "Знаете ли вы...?\n" + +#~ msgid "&Show tips on startup" +#~ msgstr "&Показывать советы при запуске" + +#~ msgid "Toolbar Menu" +#~ msgstr "Меню панели инструментов" + +#~ msgid "" +#~ "_: toolbar position string\n" +#~ "Top" +#~ msgstr "Вверху" + +#~ msgid "" +#~ "_: toolbar position string\n" +#~ "Left" +#~ msgstr "Слева" + +#~ msgid "" +#~ "_: toolbar position string\n" +#~ "Right" +#~ msgstr "Справа" + +#~ msgid "" +#~ "_: toolbar position string\n" +#~ "Bottom" +#~ msgstr "Внизу" + +#~ msgid "" +#~ "_: toolbar position string\n" +#~ "Floating" +#~ msgstr "Плавающая" + +#~ msgid "" +#~ "_: min toolbar\n" +#~ "Flat" +#~ msgstr "Свернуть" + +#~ msgid "Icons Only" +#~ msgstr "Только значки" + +#~ msgid "Text Only" +#~ msgstr "Только подписи" + +#~ msgid "Text Alongside Icons" +#~ msgstr "Подписи сбоку от значков" + +#~ msgid "Text Under Icons" +#~ msgstr "Подписи под значками" + +#~ msgid "Small (%1x%2)" +#~ msgstr "Малые (%1x%2)" + +#~ msgid "Medium (%1x%2)" +#~ msgstr "Средние (%1x%2)" + +#~ msgid "Large (%1x%2)" +#~ msgstr "Большие (%1x%2)" + +#~ msgid "Huge (%1x%2)" +#~ msgstr "Очень большие (%1x%2)" + +#~ msgid "Text Position" +#~ msgstr "Положение текста" + +#~ msgid "Icon Size" +#~ msgstr "Размер значков" + +#~ msgid "Task" +#~ msgstr "Задача" + +#~ msgid "%1 %2 (Using KDE %3)" +#~ msgstr "%1 %2 (в составе KDE %3)" + +#~ msgid "%1 %2, %3" +#~ msgstr "%1 %2, %3" + +#~ msgid "Other Contributors:" +#~ msgstr "Другие участники:" + +#~ msgid "(No logo available)" +#~ msgstr "(Логотип отсутствует)" + +#~ msgid "Image missing" +#~ msgstr "Изображение отсутствует" + +#~ msgid "Area" +#~ msgstr "Регион" + +#~ msgid "Comment" +#~ msgstr "Комментарий" + +#~ msgid "" +#~ "End of document reached.\n" +#~ "Continue from the beginning?" +#~ msgstr "" +#~ "Достигнут конец документа.\n" +#~ "Продолжить с начала?" + +#~ msgid "" +#~ "Beginning of document reached.\n" +#~ "Continue from the end?" +#~ msgstr "" +#~ "Достигнуто начало документа.\n" +#~ "Продолжить с конца?" + +#~ msgid "Find:" +#~ msgstr "Поиск:" + +#~ msgid "Case &sensitive" +#~ msgstr "С &учётом регистра" + +#~ msgid "Find &backwards" +#~ msgstr "Ис&кать назад" + +#~ msgid "Replace &All" +#~ msgstr "Заменить &все" + +#~ msgid "Replace with:" +#~ msgstr "Заменить на:" + +#~ msgid "Go to line:" +#~ msgstr "Перейти к строке:" + +#~ msgid "Unclutter Windows" +#~ msgstr "Показать все окна" + +#~ msgid "Cascade Windows" +#~ msgstr "Расположить окна каскадом" + +#~ msgid "On All Desktops" +#~ msgstr "На все рабочие столы" + +#~ msgid "No Windows" +#~ msgstr "Нет окон" + +#~ msgid "Check Spelling..." +#~ msgstr "Проверить орфографию..." + +#~ msgid "Auto Spell Check" +#~ msgstr "Автоматическая проверка орфографии" + +#~ msgid "Allow Tabulations" +#~ msgstr "Разрешить табуляцию" + +#~ msgid "Spell Checking" +#~ msgstr "Проверка орфографии" + +#~ msgid "You have to restart the dialog for changes to take effect" +#~ msgstr "Чтобы изменения вступили в силу, необходимо перезапустить диалог" + +#~ msgid "Spell Checker" +#~ msgstr "Проверка орфографии" + +#~ msgid "&Undo: %1" +#~ msgstr "&Отменить: %1" + +#~ msgid "&Redo: %1" +#~ msgstr "&Повторить: %1" + +#~ msgid "Undo: %1" +#~ msgstr "Отменить: %1" + +#~ msgid "Redo: %1" +#~ msgstr "Повторить: %1" + +#~ msgid "%1 (%2 - %3x%4 Pixels)" +#~ msgstr "%1 (%2 - %3x%4 пиксел)" + +#~ msgid "%1 - %2x%3 Pixels" +#~ msgstr "%1 - %2x%3 пиксел" + +#~ msgid "%1 (%2x%3 Pixels)" +#~ msgstr "%1 (%2x%3 пиксел)" + +#~ msgid "Image - %1x%2 Pixels" +#~ msgstr "Изображение - %1x%2 пикселов" + +#~ msgid "Done." +#~ msgstr "Готово." + +#~ msgid "&Copy Text" +#~ msgstr "&Копировать текст" + +#~ msgid "Search for '%1' with %2" +#~ msgstr "Поиск '%1' в %2" + +#~ msgid "Search for '%1' with" +#~ msgstr "Поиск '%1' в" + +#~ msgid "Open '%1'" +#~ msgstr "Открыть '%1'" + +#~ msgid "Stop Animations" +#~ msgstr "Остановить анимацию" + +#~ msgid "Copy Email Address" +#~ msgstr "Скопировать электронный адрес" + +#~ msgid "&Save Link As..." +#~ msgstr "Сохранить сс&ылку как..." + +#~ msgid "Copy &Link Address" +#~ msgstr "С&копировать ссылку" + +#~ msgid "Open in New &Window" +#~ msgstr "Открыть в новом &окне" + +#~ msgid "Open in &This Window" +#~ msgstr "Открыть в текущем &окне" + +#~ msgid "Open in &New Tab" +#~ msgstr "Открыть в новой в&кладке" + +#~ msgid "Reload Frame" +#~ msgstr "Обновить фрейм" + +#~ msgid "Block IFrame..." +#~ msgstr "Заблокировать IFrame..." + +#~ msgid "View Frame Source" +#~ msgstr "Просмотреть исходный текст фрейма" + +#~ msgid "View Frame Information" +#~ msgstr "Сведения о фрейме" + +#~ msgid "Print Frame..." +#~ msgstr "Печать фрейма..." + +#~ msgid "Save &Frame As..." +#~ msgstr "Сохранить &фрейм как..." + +#~ msgid "Save Image As..." +#~ msgstr "Сохранить изображение как..." + +#~ msgid "Send Image..." +#~ msgstr "Отправить изображение..." + +#~ msgid "Copy Image" +#~ msgstr "Скопировать изображение" + +#~ msgid "Copy Image Location" +#~ msgstr "Скопировать ссылку на изображение" + +#~ msgid "View Image (%1)" +#~ msgstr "Просмотр изображения (%1)" + +#~ msgid "Block Image..." +#~ msgstr "Заблокировать изображение..." + +#~ msgid "Block Images From %1" +#~ msgstr "Заблокировать изображения от %1" + +#~ msgid "Save Link As" +#~ msgstr "Сохранить конечный документ как" + +#~ msgid "Save Image As" +#~ msgstr "Сохранить изображение как" + +#~ msgid "Add URL to Filter" +#~ msgstr "Добавить URL в фильтр" + +#~ msgid "Enter the URL:" +#~ msgstr "Введите адрес:" + +#~ msgid "" +#~ "A file named \"%1\" already exists. Are you sure you want to overwrite it?" +#~ msgstr "Файл с именем \"%1\" уже существует. Заменить его?" + +#~ msgid "Overwrite File?" +#~ msgstr "Заменить файл?" + +#~ msgid "The Download Manager (%1) could not be found in your $PATH " +#~ msgstr "Не удаётся найти программу менеджера загрузки (%1) в пути $PATH." + +#~ msgid "" +#~ "Try to reinstall it \n" +#~ "\n" +#~ "The integration with Konqueror will be disabled!" +#~ msgstr "" +#~ "Попробуйте переустановить её.\n" +#~ "\n" +#~ "Интеграция с Konqueror будет выключена!" + +#~ msgid "Default Font Size (100%)" +#~ msgstr "Размер шрифта по умолчанию (100%)" + +#~ msgid "%1%" +#~ msgstr "%1%" + +#~ msgid "" +#~ "

'Print images'

If this checkbox is enabled, " +#~ "images contained in the HTML page will be printed. Printing may take " +#~ "longer and use more ink or toner.

If this checkbox is disabled, " +#~ "only the text of the HTML page will be printed, without the included " +#~ "images. Printing will be faster and use less ink or toner.

" +#~ msgstr "" +#~ "

'Печать изображений'

Если этот флажок " +#~ "включен, изображения на веб-странице будут распечатаны вместе с текстом." +#~ "Однако печататься страница с ними будет больше и будет использовано " +#~ "больше чернил или тонера.

Если флажок выключен, будет распечатан " +#~ "только текст веб-страницы. В этом случае печать закончиться быстрее и вы " +#~ "потратите меньше чернил или тонера.

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

'Print header'

If this checkbox is enabled, " +#~ "the printout of the HTML document will contain a header line at the top " +#~ "of each page. This header contains the current date, the location URL of " +#~ "the printed page and the page number.

If this checkbox is disabled, " +#~ "the printout of the HTML document will not contain such a header line. " +#~ msgstr "" +#~ "

'Печатать заголовок'

Если этот параметр " +#~ "включен, на каждой странице распечатки документа в формате HTML будет " +#~ "заголовок, содержащий текущую дату, адрес (URL) этой страницы и номер " +#~ "страницы.

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

'Printerfriendly mode'

If this checkbox is " +#~ "enabled, the printout of the HTML document will be black and white only, " +#~ "and all colored background will be converted into white. Printout will be " +#~ "faster and use less ink or toner.

If this checkbox is disabled, the " +#~ "printout of the HTML document will happen in the original color settings " +#~ "as you see in your application. This may result in areas of full-page " +#~ "color (or grayscale, if you use a black+white printer). Printout will " +#~ "possibly happen slower and will certainly use much more toner or ink.

" +#~ "
" +#~ msgstr "" +#~ "

'Дружественный для принтера режим'

Если " +#~ "этот параметр включен, распечатка документа в формате HTML будет только " +#~ "черно-белой, любой цветной фон будет преобразован в белый. Печать будет " +#~ "быстре и будет использоваться меньше чернил или тонера.

Если этот " +#~ "параметр выключен, распечатка документа в формате HTML будет иметь такие " +#~ "же цвета, как вы видите в приложении. Результатом может быть полностью " +#~ "цветная страница (или с градациями серого, если принтер черно-белый). " +#~ "Печать будет идти медленнее и использовать намного больше тонера или " +#~ "чернил.

" + +#~ msgid "HTML Settings" +#~ msgstr "Настройка HTML" + +#~ msgid "Printer friendly mode (black text, no background)" +#~ msgstr "Режим для принтера (чёрный текст, без фона)" + +#~ msgid "Print images" +#~ msgstr "Печатать изображения" + +#~ msgid "Print header" +#~ msgstr "Печатать заголовок" + +#~ msgid "View Do&cument Source" +#~ msgstr "Просмотреть исходный текст до&кумента" + +#~ msgid "View Document Information" +#~ msgstr "Просмотреть сведения о документе" + +#~ msgid "Save &Background Image As..." +#~ msgstr "Сохранить фоновое &изображение как..." + +#~ msgid "Security..." +#~ msgstr "Безопасность..." + +#~ msgid "" +#~ "Security Settings

Shows the certificate of the displayed page. Only " +#~ "pages that have been transmitted using a secure, encrypted connection " +#~ "have a certificate.

Hint: If the image shows a closed lock, the page " +#~ "has been transmitted over a secure connection." +#~ msgstr "" +#~ "Параметры безопасности

Показывает параметры безопасности. Только " +#~ "страницы, которые были переданы по безопасному, зашифрованному " +#~ "соединению, имеют сертификат.

Подсказка: если изображён закрытый " +#~ "замок, страница была передана через безопасное соединение." + +#~ msgid "Print Rendering Tree to STDOUT" +#~ msgstr "Вывести дерево прорисовки на STDOUT" + +#~ msgid "Print DOM Tree to STDOUT" +#~ msgstr "Вывести дерево DOM на STDOUT" + +#~ msgid "Stop Animated Images" +#~ msgstr "Остановить анимацию рисунков" + +#~ msgid "Set &Encoding" +#~ msgstr "&Кодировка..." + +#~ msgid "Semi-Automatic" +#~ msgstr "Полуавтоматическое" + +#~ msgid "Automatic Detection" +#~ msgstr "Автоматическое определение" + +#~ msgid "" +#~ "_: short for Manual Detection\n" +#~ "Manual" +#~ msgstr "Вручную" + +#~ msgid "Use S&tylesheet" +#~ msgstr "Использовать таблицу &стилей" + +#~ msgid "Enlarge Font" +#~ msgstr "Увеличить шрифт" + +#~ msgid "" +#~ "Enlarge Font

Make the font in this window bigger. Click and hold down " +#~ "the mouse button for a menu with all available font sizes." +#~ msgstr "" +#~ "Увеличить шрифт

Увеличить шрифт в этом окне. Нажмите и удерживайте " +#~ "кнопку мыши для отображения меню с доступными размерами шрифта." + +#~ msgid "Shrink Font" +#~ msgstr "Уменьшить шрифт" + +#~ msgid "" +#~ "Shrink Font

Make the font in this window smaller. Click and hold down " +#~ "the mouse button for a menu with all available font sizes." +#~ msgstr "" +#~ "Уменьшить шрифт

Уменьшить шрифт в этом окне. Нажмите и удерживайте " +#~ "кнопку мыши для отображения меню с доступными размерами шрифта." + +#~ msgid "" +#~ "Find text

Shows a dialog that allows you to find text on the displayed " +#~ "page." +#~ msgstr "Найти текст

Диалог поиска текста в текущей странице." + +#~ msgid "" +#~ "Find next

Find the next occurrence of the text that you have found " +#~ "using the Find Text function" +#~ msgstr "" +#~ "Найти далее

Поиск следующего вхождения текста, указанного в поле " +#~ "Найти текст" + +#~ msgid "" +#~ "Find previous

Find the previous occurrence of the text that you have " +#~ "found using the Find Text function" +#~ msgstr "" +#~ "Найти предыдущее

Поиск предыдущего вхождения текста, указанного в поле " +#~ "Найти текст" + +#~ msgid "Find Text as You Type" +#~ msgstr "Поиск текста по мере набора" + +#~ msgid "Find Links as You Type" +#~ msgstr "Поиск ссылок по мере набора" + +#~ msgid "" +#~ "Print Frame

Some pages have several frames. To print only a single " +#~ "frame, click on it and then use this function." +#~ msgstr "" +#~ "Печать фрейма

Некоторые страницы могут содержать несколько фреймов. " +#~ "Чтобы напечатать только один фрейм, нажмите на нем и используйте эту " +#~ "функцию." + +#~ msgid "Toggle Caret Mode" +#~ msgstr "Переключи&ть режим вставки/замены" + +#~ msgid "The fake user-agent '%1' is in use." +#~ msgstr "Используется подложный идентификатор браузера '%1'." + +#~ msgid "This web page contains coding errors." +#~ msgstr "Эта веб-страница содержит ошибки кодирования." + +#~ msgid "&Hide Errors" +#~ msgstr "&Скрыть ошибки" + +#~ msgid "&Disable Error Reporting" +#~ msgstr "&Запретить сообщения об ошибках" + +#~ msgid "Error: %1: %2" +#~ msgstr "Ошибка: %1: %2" + +#~ msgid "Error: node %1: %2" +#~ msgstr "Ошибка: узел %1: %2" + +#~ msgid "Display Images on Page" +#~ msgstr "Показать изображения на странице" + +#~ msgid "Session is secured with %1 bit %2." +#~ msgstr "Сеанс защищён %2 %1 бит." + +#~ msgid "Session is not secured." +#~ msgstr "Сеанс не защищён." + +#~ msgid "Error while loading %1" +#~ msgstr "Ошибка загрузки '%1'" + +#~ msgid "An error occurred while loading %1:" +#~ msgstr "Ошибка при загрузке %1:" + +#~ msgid "Error: " +#~ msgstr "Ошибка:" + +#~ msgid "The requested operation could not be completed" +#~ msgstr "Запрошенная операция не может быть завершена" + +#~ msgid "Technical Reason: " +#~ msgstr "Техническая причина: " + +#~ msgid "Details of the Request:" +#~ msgstr "Подробности запроса:" + +#~ msgid "URL: %1" +#~ msgstr "URL: %1" + +#~ msgid "Date and Time: %1" +#~ msgstr "Дата и время: %1" + +#~ msgid "Additional Information: %1" +#~ msgstr "Дополнительная информация: %1" + +#~ msgid "Possible Causes:" +#~ msgstr "Возможные последствия:" + +#~ msgid "Possible Solutions:" +#~ msgstr "Возможные решения:" + +#~ msgid "Page loaded." +#~ msgstr "Страница загружена." + +#~ msgid "" +#~ "_n: %n Image of %1 loaded.\n" +#~ "%n Images of %1 loaded." +#~ msgstr "" +#~ "Загружено изображений: %n из %1\n" +#~ "Загружено изображений: %n из %1\n" +#~ "Загружено изображений: %n из %1" + +#~ msgid " (In new window)" +#~ msgstr " (В новом окне)" + +#~ msgid "Symbolic Link" +#~ msgstr "Символическая ссылка" + +#~ msgid "%1 (Link)" +#~ msgstr "%1 (Ссылка)" + +#~ msgid "%2 (%1 bytes)" +#~ msgstr "%2 (%1 байт)" + +#~ msgid "%2 (%1 K)" +#~ msgstr "%2 (%1 К)" + +#~ msgid " (In other frame)" +#~ msgstr " (В другом фрейме)" + +#~ msgid "Email to: " +#~ msgstr "Написать письмо: " + +#~ msgid " - Subject: " +#~ msgstr " - Тема: " + +#~ msgid " - CC: " +#~ msgstr " - Копия: " + +#~ msgid " - BCC: " +#~ msgstr " - BCC: " + +#~ msgid "" +#~ "This untrusted page links to
%1.
Do you want to follow " +#~ "the link?" +#~ msgstr "" +#~ "Данная непроверенная страница содержит ссылку
%1." +#~ "
Перейти по ссылке?" + +#~ msgid "Follow" +#~ msgstr "Перейти" + +#~ msgid "Frame Information" +#~ msgstr "Сведения о фрейме" + +#~ msgid " [Properties]" +#~ msgstr " [Свойства]" + +#~ msgid "Save Background Image As" +#~ msgstr "Сохранить фоновое изображение как" + +#~ msgid "Save Frame As" +#~ msgstr "Сохранить фрейм как" + +#~ msgid "&Find in Frame..." +#~ msgstr "&Поиск во фрейме..." + +#~ msgid "" +#~ "Warning: This is a secure form but it is attempting to send your data " +#~ "back unencrypted.\n" +#~ "A third party may be able to intercept and view this information.\n" +#~ "Are you sure you wish to continue?" +#~ msgstr "" +#~ "Внимание: это защищённая форма, но она пытается вернуть ваши данные назад " +#~ "в незашифрованном виде.\n" +#~ "Третья сторона может перехватить и просмотреть эту информацию.\n" +#~ "Продолжить?" + +#~ msgid "Network Transmission" +#~ msgstr "Передача по сети" + +#~ msgid "&Send Unencrypted" +#~ msgstr "&Отправить незашифрованным" + +#~ msgid "" +#~ "Warning: Your data is about to be transmitted across the network " +#~ "unencrypted.\n" +#~ "Are you sure you wish to continue?" +#~ msgstr "" +#~ "Внимание: Ваши данные будут передаваться по сети в незащищённом виде.\n" +#~ "Продолжить?" + +#~ msgid "" +#~ "This site is attempting to submit form data via email.\n" +#~ "Do you want to continue?" +#~ msgstr "" +#~ "Попытка передачи данных формы на сайт по электронной почте.\n" +#~ "Действительно хотите продолжить?" + +#~ msgid "&Send Email" +#~ msgstr "&Отправить e-mail" + +#~ msgid "" +#~ "The form will be submitted to
%1
on your local " +#~ "filesystem.
Do you want to submit the form?" +#~ msgstr "" +#~ "Форма будет передана файлу
%1
локальной файловой " +#~ "системы.
Отправить форму?" + +#~ msgid "Submit" +#~ msgstr "Отправить" + +#~ msgid "" +#~ "This site attempted to attach a file from your computer in the form " +#~ "submission. The attachment was removed for your protection." +#~ msgstr "" +#~ "Попытка присоединения локального файла к данным формы для отправки на " +#~ "сайт. Ради вашей безопасности приложенный файл был удалён." + +#~ msgid "KDE" +#~ msgstr "KDE" + +#~ msgid "(%1/s)" +#~ msgstr "(%1/с)" + +#~ msgid "Security Warning" +#~ msgstr "Предупреждение системы безопасности" + +#~ msgid "Access by untrusted page to
%1
denied." +#~ msgstr "Доступ с ненадежной страницы к
%1
запрещен." + +#~ msgid "Security Alert" +#~ msgstr "Извещение системы безопасности" + +#~ msgid "The wallet '%1' is open and being used for form data and passwords." +#~ msgstr "Бумажник '%1' открыт и используется для ввода данных и паролей." + +#~ msgid "&Close Wallet" +#~ msgstr "&Закрыть бумажник" + +#~ msgid "JavaScript &Debugger" +#~ msgstr "Отла&дчик JavaScript" + +#~ msgid "This page was prevented from opening a new window via JavaScript." +#~ msgstr "Сайт пытается открыть новое окно с использованием Javascript." + +#~ msgid "Popup Window Blocked" +#~ msgstr "Заблокировано всплывающее окно" + +#~ msgid "" +#~ "This page has attempted to open a popup window but was blocked.\n" +#~ "You can click on this icon in the status bar to control this behavior\n" +#~ "or to open the popup." +#~ msgstr "" +#~ "Заблокировано всплывающее окно, которое пыталась открыть страница.\n" +#~ "Этой функцией можно управлять, щёлкая на строке состояния,\n" +#~ "чтобы разрешить или запретить всплывающее окно." + +#~ msgid "" +#~ "_n: &Show Blocked Popup Window\n" +#~ "Show %n Blocked Popup Windows" +#~ msgstr "" +#~ "Показать %n всплывающее окно\n" +#~ "Показать %n всплывающих окна\n" +#~ "Показать %n всплывающих окон" + +#~ msgid "Show Blocked Window Passive Popup &Notification" +#~ msgstr "&Уведомлять о заблокированных всплывающих окнах" + +#~ msgid "&Configure JavaScript New Window Policies..." +#~ msgstr "&Настроить правила для новых окон JavaScript..." + +#~ msgid "Find stopped." +#~ msgstr "Поиск остановлен." + +#~ msgid "Starting -- find links as you type" +#~ msgstr "Поиск ссылок по мере набора..." + +#~ msgid "Starting -- find text as you type" +#~ msgstr "Поиск текста по мере набора..." + +#~ msgid "Link found: \"%1\"." +#~ msgstr "Найдена ссылка: \"%1\"." + +#~ msgid "Link not found: \"%1\"." +#~ msgstr "Ссылка не найдена: \"%1\"." + +#~ msgid "Text found: \"%1\"." +#~ msgstr "Найден текст: \"%1\"." + +#~ msgid "Text not found: \"%1\"." +#~ msgstr "Текст не найден: \"%1\"." + +#~ msgid "Access Keys activated" +#~ msgstr "Включено использование ключей доступа" + +#~ msgid "Print %1" +#~ msgstr "Печать %1" + +#~ msgid "KHTML" +#~ msgstr "KHTML" + +#~ msgid "Embeddable HTML component" +#~ msgstr "Встраиваемый компонент для отображения HTML" + +#~ msgid "the document is not in the correct file format" +#~ msgstr "документ содержит данные некорректного формата" + +#~ msgid "fatal parsing error: %1 in line %2, column %3" +#~ msgstr "критическая ошибка обработки: %1 в строке %2, позиция %3" + +#~ msgid "XML parsing error" +#~ msgstr "ошибка при разборе XML" + +#~ msgid "Basic Page Style" +#~ msgstr "Основной стиль страницы" + +#~ msgid "JavaScript Error" +#~ msgstr "Ошибка JavaScript" + +#~ msgid "&Do not show this message again" +#~ msgstr "&Не выводить больше это сообщение" + +#~ msgid "JavaScript Debugger" +#~ msgstr "Отладчик JavaScript" + +#~ msgid "Call stack" +#~ msgstr "Стек вызова" + +#~ msgid "JavaScript console" +#~ msgstr "Консоль JavaScript" + +#~ msgid "" +#~ "_: Next breakpoint\n" +#~ "&Next" +#~ msgstr "&След." + +#~ msgid "&Step" +#~ msgstr "&Шаг" + +#~ msgid "&Continue" +#~ msgstr "Пр&одолжить" + +#~ msgid "&Break at Next Statement" +#~ msgstr "П&рерывание на следующем операторе" + +#~ msgid "" +#~ "_: Next breakpoint\n" +#~ "Next" +#~ msgstr "След." + +#~ msgid "Step" +#~ msgstr "Шаг" + +#~ msgid "Parse error at %1 line %2" +#~ msgstr "Ошибка разбора %1 строка %2" + +#~ msgid "" +#~ "An error occurred while attempting to run a script on this page.\n" +#~ "\n" +#~ "%1" +#~ msgstr "" +#~ "Произошла ошибка при попытке выполнить скрипт на этой странице.\n" +#~ "\n" +#~ "%1" + +#~ msgid "" +#~ "An error occurred while attempting to run a script on this page.\n" +#~ "\n" +#~ "%1 line %2:\n" +#~ "%3" +#~ msgstr "" +#~ "Произошла ошибка при попытке выполнить скрипт на этой странице.\n" +#~ "\n" +#~ "%1 строка %2:\n" +#~ "%3" + +#~ msgid "Confirmation: JavaScript Popup" +#~ msgstr "Подтверждение: Всплывающее окно Javascript" + +#~ msgid "" +#~ "This site is requesting to open up a new browser window via JavaScript.\n" +#~ "Do you want to allow this?" +#~ msgstr "" +#~ "Этот сайт пытается открыть новое окно с использованием Javascript.\n" +#~ "Разрешить открыть окно?" + +#~ msgid "" +#~ "This site is requesting to open

%1

in a new browser window via " +#~ "JavaScript.
Do you want to allow this?
" +#~ msgstr "" +#~ "Этот сайт пытается открыть

%1

в новом окне браузера с помощью " +#~ "JavaScript.
Разрешить?
" + +#~ msgid "Allow" +#~ msgstr "Разрешить" + +#~ msgid "Do Not Allow" +#~ msgstr "Запретить" + +#~ msgid "Close window?" +#~ msgstr "Закрыть окно?" + +#~ msgid "Confirmation Required" +#~ msgstr "Требуется подтверждение" + +#~ msgid "" +#~ "Do you want a bookmark pointing to the location \"%1\" to be added to " +#~ "your collection?" +#~ msgstr "Добавить закладку на адрес \"%1\" в вашу коллекцию?" + +#~ msgid "" +#~ "Do you want a bookmark pointing to the location \"%1\" titled \"%2\" to " +#~ "be added to your collection?" +#~ msgstr "" +#~ "Добавить закладку на адрес \"%1\" с заголовком \"%2\" в вашу коллекцию?" + +#~ msgid "JavaScript Attempted Bookmark Insert" +#~ msgstr "JavaScript пытается добавить закладку" + +#~ msgid "Disallow" +#~ msgstr "Запретить" + +#~ msgid "" +#~ "A script on this page is causing KHTML to freeze. If it continues to run, " +#~ "other applications may become less responsive.\n" +#~ "Do you want to abort the script?" +#~ msgstr "" +#~ "Скрипт на этой странице привёл к перегрузке KHTML. Если он продолжит " +#~ "работать, другие приложения будут отзываться медленнее.\n" +#~ "Прервать работу скрипта?" + +#~ msgid "JavaScript" +#~ msgstr "JavaScript" + +#~ msgid "&Abort" +#~ msgstr "&Прервать" + +#~ msgid "" +#~ "This site is submitting a form which will open up a new browser window " +#~ "via JavaScript.\n" +#~ "Do you want to allow the form to be submitted?" +#~ msgstr "" +#~ "Этот сайт пытается отправить форму, что приведёт к открытию нового окна " +#~ "браузера (через JavaScript).\n" +#~ "Разрешить это?" + +#~ msgid "" +#~ "This site is submitting a form which will open

%1

in a new " +#~ "browser window via JavaScript.
Do you want to allow the form to be " +#~ "submitted?
" +#~ msgstr "" +#~ "Этот сайт пытается отправить форму, что приведёт к открытию

%1

" +#~ "в новом окне браузера (через JavaScript).
Разрешить это?
" + +#~ msgid "This is a searchable index. Enter search keywords: " +#~ msgstr "Это индекс с возможностью поиска. Введите ключевые слова: " + +#~ msgid "" +#~ "The following files will not be uploaded because they could not be " +#~ "found.\n" +#~ "Do you want to continue?" +#~ msgstr "" +#~ "Указанные файлы не могут быть загружены, поскольку они не найдены.\n" +#~ "Продолжить?" + +#~ msgid "Submit Confirmation" +#~ msgstr "Подтверждение отправления" + +#~ msgid "&Submit Anyway" +#~ msgstr "&Отправить" + +#~ msgid "" +#~ "You're about to transfer the following files from your local computer to " +#~ "the Internet.\n" +#~ "Do you really want to continue?" +#~ msgstr "" +#~ "Вы собираетесь передать следующие файлы со своего компьютера в Интернет.\n" +#~ "Продолжить?" + +#~ msgid "Send Confirmation" +#~ msgstr "Отправить подтверждение" + +#~ msgid "&Send Files" +#~ msgstr "&Отправить файлы" + +#~ msgid "Save Login Information" +#~ msgstr "Сохранить данные регистрации" + +#~ msgid "Store" +#~ msgstr "Сохранить" + +#~ msgid "Ne&ver for This Site" +#~ msgstr "&Никогда для этого сайта" + +#~ msgid "Do Not Store" +#~ msgstr "Не сохранять" + +#~ msgid "" +#~ "Konqueror has the ability to store the password in an encrypted wallet. " +#~ "When the wallet is unlocked, it can then automatically restore the login " +#~ "information next time you submit this form. Do you want to store the " +#~ "information now?" +#~ msgstr "" +#~ "Konqueror может сохранять пароль в зашифрованном бумажнике. Когда " +#~ "бумажник разблокирован, он может автоматически восстановить " +#~ "регистрационную информацию при следующей отправке формы. Сохранить " +#~ "информацию сейчас?" + +#~ msgid "" +#~ "Konqueror has the ability to store the password in an encrypted wallet. " +#~ "When the wallet is unlocked, it can then automatically restore the login " +#~ "information next time you visit %1. Do you want to store the information " +#~ "now?" +#~ msgstr "" +#~ "Konqueror может сохранять пароль в зашифрованном бумажнике. Когда " +#~ "бумажник разблокирован, он может автоматически восстановить " +#~ "регистрационную информацию при следующем посещении %1. Сохранить " +#~ "информацию сейчас?" + +#~ msgid "Applet Parameters" +#~ msgstr "Параметры аплета" + +#~ msgid "Parameter" +#~ msgstr "Параметр" + +#~ msgid "Class" +#~ msgstr "Класс" + +#~ msgid "Base URL" +#~ msgstr "Базовый URL" + +#~ msgid "Archives" +#~ msgstr "Архивы" + +#~ msgid "KDE Java Applet Plugin" +#~ msgstr "Модуль аплета Java среды KDE" + +#~ msgid "Initializing Applet \"%1\"..." +#~ msgstr "Запускается аплет \"%1\"..." + +#~ msgid "Starting Applet \"%1\"..." +#~ msgstr "Запускается аплет \"%1\"..." + +#~ msgid "Applet \"%1\" started" +#~ msgstr "Аплет \"%1\" запущен" + +#~ msgid "Applet \"%1\" stopped" +#~ msgstr "Аплет \"%1\" остановлен" + +#~ msgid "Loading Applet" +#~ msgstr "Загрузка аплета" + +#~ msgid "Error: java executable not found" +#~ msgstr "Ошибка: не найдена программа java" + +#~ msgid "Signed by (validation: " +#~ msgstr "Подписано (подлинность: " + +#~ msgid "Certificate (validation: " +#~ msgstr "Сертификат (подлинность: " + +#~ msgid "Ok" +#~ msgstr "Ok" + +#~ msgid "NoCARoot" +#~ msgstr "NoCARoot" + +#~ msgid "InvalidPurpose" +#~ msgstr "InvalidPurpose" + +#~ msgid "PathLengthExceeded" +#~ msgstr "PathLengthExceeded" + +#~ msgid "InvalidCA" +#~ msgstr "InvalidCA" + +#~ msgid "Expired" +#~ msgstr "срок действия истёк" + +#~ msgid "SelfSigned" +#~ msgstr "самоподписанный" + +#~ msgid "ErrorReadingRoot" +#~ msgstr "ErrorReadingRoot" + +#~ msgid "Revoked" +#~ msgstr "отозван" + +#~ msgid "Untrusted" +#~ msgstr "нет доверия" + +#~ msgid "SignatureFailed" +#~ msgstr "ошибка подписи" + +#~ msgid "Rejected" +#~ msgstr "отклонён" + +#~ msgid "PrivateKeyFailed" +#~ msgstr "ошибка частного ключа" + +#~ msgid "InvalidHost" +#~ msgstr "ошибка в имени сервера" + +#~ msgid "Unknown" +#~ msgstr "неизвестна" + +#~ msgid "Do you grant Java applet with certificate(s):" +#~ msgstr "Запустить аплеты Java с сертификатами:" + +#~ msgid "the following permission" +#~ msgstr "следующие права" + +#~ msgid "&Reject All" +#~ msgstr "&Отклонить все" + +#~ msgid "&Grant All" +#~ msgstr "&Принять все" + +#~ msgid "No handler found for %1!" +#~ msgstr "Не найден обработчик для %1!" + +#~ msgid "KMultiPart" +#~ msgstr "KMultiPart" + +#~ msgid "Embeddable component for multipart/mixed" +#~ msgstr "Встраиваемый компонент для multipart/mixed" + +#~ msgid "" +#~ "No plugin found for '%1'.\n" +#~ "Do you want to download one from %2?" +#~ msgstr "" +#~ "Не обнаружено дополнение для '%1'.\n" +#~ "Загрузить его с адреса %2?" + +#~ msgid "Missing Plugin" +#~ msgstr "Отсутствует модуль" + +#~ msgid "Download" +#~ msgstr "Загрузить" + +#~ msgid "Do Not Download" +#~ msgstr "Не загружать" + +#~ msgid "" +#~ "Unable to start new process.\n" +#~ "The system may have reached the maximum number of open files possible or " +#~ "the maximum number of open files that you are allowed to use has been " +#~ "reached." +#~ msgstr "" +#~ "Невозможно запустить процесс.\n" +#~ "Возможно, превышен предел количества открытых файлов в системе или для " +#~ "пользователя." + +#~ msgid "" +#~ "Unable to create new process.\n" +#~ "The system may have reached the maximum number of processes possible or " +#~ "the maximum number of processes that you are allowed to use has been " +#~ "reached." +#~ msgstr "" +#~ "Невозможно создать процесс.\n" +#~ "Возможно, превышен предел количества открытых файлов в системе или для " +#~ "пользователя." + +#~ msgid "Could not find '%1' executable." +#~ msgstr "Не удалось найти программу '%1'." + +#~ msgid "" +#~ "Could not open library '%1'.\n" +#~ "%2" +#~ msgstr "" +#~ "Не удалось открыть библиотеку '%1'.\n" +#~ "%2" + +#~ msgid "" +#~ "Could not find 'kdemain' in '%1'.\n" +#~ "%2" +#~ msgstr "" +#~ "Не удалось найти 'kdemain' в '%1'.\n" +#~ "%2" + +#~ msgid "" +#~ "klauncher: This program is not supposed to be started manually.\n" +#~ "klauncher: It is started automatically by kdeinit.\n" +#~ msgstr "" +#~ "klauncher: Эта программа не должна запускаться вручную.\n" +#~ "klauncher: Она запускается автоматически из kdeinit.\n" + +#~ msgid "KDEInit could not launch '%1'." +#~ msgstr "KDEInit не может запустить '%1'." + +#~ msgid "Could not find service '%1'." +#~ msgstr "Не удаётся найти службу '%1'." + +#~ msgid "Service '%1' is malformatted." +#~ msgstr "Служба '%1' имеет неверный формат." + +#~ msgid "Launching %1" +#~ msgstr "Запускается %1" + +#~ msgid "Unknown protocol '%1'.\n" +#~ msgstr "Неизвестный протокол '%1'.\n" + +#~ msgid "Error loading '%1'.\n" +#~ msgstr "Ошибка загрузки '%1':\n" + +#~ msgid "Keep output results from scripts" +#~ msgstr "Сохранять коды выхода из скриптов" + +#~ msgid "Check whether config file itself requires updating" +#~ msgstr "Проверять, требует ли обновления сам файл конфигурации" + +#~ msgid "File to read update instructions from" +#~ msgstr "Читать инструкции по обновлению из файла" + +#~ msgid "Only local files are supported." +#~ msgstr "Поддерживаются только локальные файлы." + +#~ msgid "KConf Update" +#~ msgstr "KConf Update" + +#~ msgid "KDE Tool for updating user configuration files" +#~ msgstr "Утилита KDE для обновления файлов настроек пользователей" + +#~ msgid "KSpell2 Configuration" +#~ msgstr "Настройка KSpell2" + +#~ msgid "Builds Qt widget plugins from an ini style description file." +#~ msgstr "Строит модули виджетов Qt из файла описания стилей." + +#~ msgid "Output file" +#~ msgstr "Файл вывода" + +#~ msgid "Name of the plugin class to generate" +#~ msgstr "Имя создаваемого класса модулей" + +#~ msgid "Default widget group name to display in designer" +#~ msgstr "Имя группы виджетов по умолчанию для отображения в дизайнере" + +#~ msgid "Embed pixmaps from a source directory" +#~ msgstr "Внедрить рисунки из каталога исходного кода" + +#~ msgid "makekdewidgets" +#~ msgstr "makekdewidgets" + +#~ msgid "Web style plugin" +#~ msgstr "Модуль стиля Web" + +#~ msgid "KDE LegacyStyle plugin" +#~ msgstr "Модуль устаревших тем KDE" + +#~ msgid "KDE Tool to build a cache list of all pixmap themes installed" +#~ msgstr "Средство KDE для кэширования списка всех установленных тем pixmap." + +#~ msgid "KInstalltheme" +#~ msgstr "KInstalltheme" + +#~ msgid "" +#~ "A command-line application that can be used to run KUnitTest modules." +#~ msgstr "Утилита командной строки для запуска модулей KUnitTest." + +#~ msgid "Only run modules whose filenames match the regexp." +#~ msgstr "Запустить только модули, совпадающие с регулярным выражением." + +#~ msgid "" +#~ "Only run tests modules which are found in the folder. Use the query " +#~ "option to select modules." +#~ msgstr "" +#~ "Запустить модули тестов из папки. Измените параметры запроса для выбора " +#~ "модулей." + +#~ msgid "" +#~ "Disables debug capturing. You typically use this option when you use the " +#~ "GUI." +#~ msgstr "" +#~ "Отключить отладку захвата. Обычно применяется при использовании " +#~ "графического интерфейса." + +#~ msgid "KUnitTest ModRunner" +#~ msgstr "KUnitTest ModRunner" + +#~ msgid "Do you want to search the Internet for %1?" +#~ msgstr "Выполнить поиск %1 в Интернете?" + +#~ msgid "Internet Search" +#~ msgstr "Поиск в Интернет" + +#~ msgid "" +#~ "The document \"%1\" has been modified.\n" +#~ "Do you want to save your changes or discard them?" +#~ msgstr "" +#~ "Документ \"%1\" был изменён.\n" +#~ "Сохранить изменения или отклонить их?" + +#~ msgid "Close Document" +#~ msgstr "Закрыть документ" + +#~ msgid "Do you really want to execute '%1'? " +#~ msgstr "Вы действительно хотите выполнить '%1'?" + +#~ msgid "Execute File?" +#~ msgstr "Выполнить файл?" + +#~ msgid "Execute" +#~ msgstr "Выполнить" + +#~ msgid "" +#~ "Open '%2'?\n" +#~ "Type: %1" +#~ msgstr "" +#~ "Открыть '%2'?\n" +#~ "Тип: %1" + +#~ msgid "" +#~ "Open '%3'?\n" +#~ "Name: %2\n" +#~ "Type: %1" +#~ msgstr "" +#~ "Открыть '%3'?\n" +#~ "Имя: %2\n" +#~ "Тип: %1" + +#~ msgid "&Open with '%1'" +#~ msgstr "&Открыть в '%1'" + +#~ msgid "&Open With..." +#~ msgstr "&Открыть с помощью..." + +#~ msgid "&Open" +#~ msgstr "&Открыть" + +#~ msgid "Find Text" +#~ msgstr "Найти текст" + +#~ msgid "Replace Text" +#~ msgstr "Заменить текст" + +#~ msgid "&Text to find:" +#~ msgstr "Искать &текст:" + +#~ msgid "Regular e&xpression" +#~ msgstr "&Регулярное выражение" + +#~ msgid "Replace With" +#~ msgstr "Заменить на" + +#~ msgid "Replace&ment text:" +#~ msgstr "Текст для за&мены:" + +#~ msgid "Use p&laceholders" +#~ msgstr "&Использовать заполнители" + +#~ msgid "Insert Place&holder" +#~ msgstr "Вставить &заполнитель" + +#~ msgid "C&ase sensitive" +#~ msgstr "С &учётом регистра" + +#~ msgid "&Whole words only" +#~ msgstr "&Только полные слова" + +#~ msgid "From c&ursor" +#~ msgstr "От к&урсора" + +#~ msgid "&Selected text" +#~ msgstr "&Выделенный текст" + +#~ msgid "&Prompt on replace" +#~ msgstr "&Спрашивать при замене" + +#~ msgid "Start replace" +#~ msgstr "Начать замену" + +#~ msgid "" +#~ "If you press the Replace button, the text you entered above is " +#~ "searched for within the document and any occurrence is replaced with the " +#~ "replacement text." +#~ msgstr "" +#~ "Если вы нажмёте копку Заменить, будет произведён поиск " +#~ "введённого вами выражения, а затем замена каждого из найденных совпадений " +#~ "на текст замены " + +#~ msgid "Start searching" +#~ msgstr "Начать поиск" + +#~ msgid "" +#~ "If you press the Find button, the text you entered above is " +#~ "searched for within the document." +#~ msgstr "" +#~ "Если вы нажмёте кнопку Найти, будет выполнен поиск введённого " +#~ "вами текста по всему документу." + +#~ msgid "" +#~ "Enter a pattern to search for, or select a previous pattern from the list." +#~ msgstr "" +#~ "Введите шаблон для поиска, или выберите предыдущий шаблон из списка." + +#~ msgid "If enabled, search for a regular expression." +#~ msgstr "Если включено, искать регулярное выражение." + +#~ msgid "Click here to edit your regular expression using a graphical editor." +#~ msgstr "" +#~ "Нажмите, чтобы изменить ваше регулярное выражение при помощи графического " +#~ "редактора." + +#~ msgid "Enter a replacement string, or select a previous one from the list." +#~ msgstr "Введите строку для замены, или выберите предыдущую из списка." + +#~ msgid "" +#~ "If enabled, any occurrence of \\N, where " +#~ "N is a integer number, will be replaced with the " +#~ "corresponding capture (\"parenthesized substring\") from the pattern." +#~ "

To include (a literal \\N in your replacement, put " +#~ "an extra backslash in front of it, like \\\\N." +#~ msgstr "" +#~ "Если включено, любое вхождение кода \\N, где " +#~ "N - целое число, будет заменено соответствующим " +#~ "захватом (\"строкой в круглых скобках\") из шаблона.

Чтобы включить " +#~ "\\N в замену в символьном виде, поместите перед ним " +#~ "дополнительный символ backslash, например \\\\N." + +#~ msgid "Click for a menu of available captures." +#~ msgstr "Нажмите для вызова меню доступных захватов." + +#~ msgid "Require word boundaries in both ends of a match to succeed." +#~ msgstr "Соответствие должно с обеих сторон заканчиваться словами." + +#~ msgid "" +#~ "Start searching at the current cursor location rather than at the top." +#~ msgstr "Начать поиск от позиции курсора, а не с начала документа." + +#~ msgid "Only search within the current selection." +#~ msgstr "Искать только в выделенном фрагменте." + +#~ msgid "" +#~ "Perform a case sensitive search: entering the pattern 'Joe' will not " +#~ "match 'joe' or 'JOE', only 'Joe'." +#~ msgstr "" +#~ "Искать с учётом регистра. В этом случае при поиске строки 'Joe' не будут " +#~ "найдены слова 'joe' или 'JOE', только 'Joe'." + +#~ msgid "Search backwards." +#~ msgstr "Искать назад." + +#~ msgid "Ask before replacing each match found." +#~ msgstr "Спрашивать при каждой замене." + +#~ msgid "Any Character" +#~ msgstr "Любой символ" + +#~ msgid "Start of Line" +#~ msgstr "Начало строки" + +#~ msgid "Set of Characters" +#~ msgstr "Набор символов" + +#~ msgid "Repeats, Zero or More Times" +#~ msgstr "Повторы, ноль или более раз" + +#~ msgid "Repeats, One or More Times" +#~ msgstr "Повторы, один или более раз" + +#~ msgid "Optional" +#~ msgstr "Дополнительно" + +#~ msgid "Escape" +#~ msgstr "Escape" + +#~ msgid "TAB" +#~ msgstr "Табуляция" + +#~ msgid "Newline" +#~ msgstr "Перевод строки" + +#~ msgid "Carriage Return" +#~ msgstr "Возврат каретки" + +#~ msgid "White Space" +#~ msgstr "Пустое пространство" + +#~ msgid "Digit" +#~ msgstr "Цифра" + +#~ msgid "Complete Match" +#~ msgstr "Полное соответствие" + +#~ msgid "Captured Text (%1)" +#~ msgstr "Захваченный текст (%1)" + +#~ msgid "You must enter some text to search for." +#~ msgstr "Необходимо ввести текст для поиска." + +#~ msgid "Invalid regular expression." +#~ msgstr "Неверное регулярное выражение" + +#~ msgid "" +#~ "There was an error when loading the module '%1'.

The desktop " +#~ "file (%2) as well as the library (%3) was found but yet the module could " +#~ "not be loaded properly. Most likely the factory declaration was wrong, or " +#~ "the create_* function was missing.
" +#~ msgstr "" +#~ "При загрузке модуля '%1' произошла ошибка.

Файл .desktop (%2), " +#~ "так же как и библиотека (%3) были найдены, но модуль все равно не может " +#~ "быть загружен. Наиболее вероятная причина - неверный параметр factory " +#~ "declaration, или отсутствие функции create_*.
" + +#~ msgid "The specified library %1 could not be found." +#~ msgstr "Библиотека %1 не найдена." + +#~ msgid "The module %1 could not be found." +#~ msgstr "Модуль %1 не найден." + +#~ msgid "" +#~ "

The diagnostics is:
The desktop file %1 could not be found." +#~ msgstr "

Диагностика:
Не удаётся найти десктоп-файл %1." + +#~ msgid "The module %1 could not be loaded." +#~ msgstr "Не удалось загрузить модуль %1." + +#~ msgid "The module %1 is not a valid configuration module." +#~ msgstr "Модуль %1 не является правильным модулем настройки KDE." + +#~ msgid "" +#~ "

The diagnostics is:
The desktop file %1 does not specify a " +#~ "library." +#~ msgstr "" +#~ "

Диагностика:
файл .desktop %1 не определяет библиотеку." + +#~ msgid "There was an error loading the module." +#~ msgstr "При загрузке модуля произошла ошибка." + +#~ msgid "" +#~ "

The diagnostics is:
%1

Possible reasons:

  • An error " +#~ "occurred during your last KDE upgrade leaving an orphaned control " +#~ "module
  • You have old third party modules lying around.

Check " +#~ "these points carefully and try to remove the module mentioned in the " +#~ "error message. If this fails, consider contacting your distributor or " +#~ "packager.

" +#~ msgstr "" +#~ "

Диагностика:
%1

Возможные причины:

  • Ошибка при " +#~ "последнем обновлении KDE, в результате которой остался модуль управления " +#~ "от предыдущей версии
  • У вас установлены сторонние модули управления.

    Внимательно проверьте эти пункты и удалите перечисленные в них " +#~ "модули. Если ошибка повторяется - обратитесь к сборщику пакетов.

    " + +#~ msgid "&All" +#~ msgstr "&Все" + +#~ msgid "&Skip" +#~ msgstr "Пропу&стить" + +#~ msgid "Replace '%1' with '%2'?" +#~ msgstr "Заменить '%1' на '%2'?" + +#~ msgid "No text was replaced." +#~ msgstr "Замена текста не была произведена." + +#~ msgid "" +#~ "_n: 1 replacement done.\n" +#~ "%n replacements done." +#~ msgstr "" +#~ "Сделана %n замена.\n" +#~ "Сделаны %n замены.\n" +#~ "Сделано %n замен." + +#~ msgid "Beginning of document reached." +#~ msgstr "Достигнуто начало документа." + +#~ msgid "End of document reached." +#~ msgstr "Достигнут конец документа." + +#~ msgid "Do you want to restart search at the beginning?" +#~ msgstr "Продолжить поиск с начала?" + +#~ msgid "Restart" +#~ msgstr "Перезапустить" + +#~ msgid "" +#~ "
    Description:%1
    Author:%2
    Version:%3
    License:%4
    " +#~ msgstr "" +#~ "
    Описание:%1
    Автор:" +#~ "%2
    Версия:%3
    Лицензия:%4
    " + +#~ msgid "(This plugin is not configurable)" +#~ msgstr "(этот модуль не предоставляет возможность настройки)" + +#~ msgid "" +#~ "Your replacement string is referencing a capture greater than '\\%1', " +#~ msgstr "Строка замены ссылается на захват, больший чем '\\%1', " + +#~ msgid "" +#~ "_n: but your pattern only defines 1 capture.\n" +#~ "but your pattern only defines %n captures." +#~ msgstr "" +#~ "но ваш шаблон определяет только %n захват\n" +#~ "но ваш шаблон определяет только %n захвата\n" +#~ "но ваш шаблон определяет только %n захват." + +#~ msgid "but your pattern defines no captures." +#~ msgstr "но ваш шаблон не определяет захватов." + +#~ msgid "" +#~ "\n" +#~ "Please correct." +#~ msgstr "" +#~ "\n" +#~ "Исправьте, пожалуйста" + +#~ msgid "Find next occurrence of '%1'?" +#~ msgstr "Найти следующее вхождение '%1'?" + +#~ msgid "" +#~ "_n: 1 match found.\n" +#~ "%n matches found." +#~ msgstr "" +#~ "Найдено %n совпадение.\n" +#~ "Найдено %n совпадения.\n" +#~ "Найдено %n совпадений." + +#~ msgid "No matches found for '%1'." +#~ msgstr "Не найдено совпадений для '%1'." + +#~ msgid "No matches found for '%1'." +#~ msgstr "Нет совпадений для '%1'." + +#~ msgid "Continue from the end?" +#~ msgstr "Продолжить с конца?" + +#~ msgid "Continue from the beginning?" +#~ msgstr "Продолжить с начала?" + +#~ msgid "" +#~ "Changes in this section requires root access.
    Click the " +#~ "\"Administrator Mode\" button to allow modifications." +#~ msgstr "" +#~ "Вносить изменения в этот модуль может только администратор.
    Для этого нажмите кнопку \"Режим администратора\"." + +#~ msgid "" +#~ "This section requires special permissions, probably for system-wide " +#~ "changes; therefore, it is required that you provide the root password to " +#~ "be able to change the module's properties. If you do not provide the " +#~ "password, the module will be disabled." +#~ msgstr "" +#~ "Этот раздел требует специальных прав доступа, возможно, для общесистемных " +#~ "изменений. Поэтому необходимо ввести пароль администратора (root) для " +#~ "изменения свойств этого модуля. Если вы не введете пароль администратора, " +#~ "этот модуль будет заблокирован." + +#~ msgid "" +#~ "_: Argument is application name\n" +#~ "This configuration section is already opened in %1" +#~ msgstr "Этот модуль настройки уже открыт в %1" + +#~ msgid "Loading..." +#~ msgstr "Загрузка..." + +#~ msgid "Select Components" +#~ msgstr "Выберите компоненты" + +#~ msgid "Select Components..." +#~ msgstr "Выберите компоненты..." + +#~ msgid "resource" +#~ msgstr "ресурс" + +#~ msgid "There is no resource available!" +#~ msgstr "Нет доступных ресурсов!" + +#~ msgid "kcmkresources" +#~ msgstr "kcmkresources" + +#~ msgid "KDE Resources configuration module" +#~ msgstr "Модуль настройки ресурсов KDE" + +#~ msgid "Resource Configuration" +#~ msgstr "Настройка ресурса" + +#~ msgid "General Settings" +#~ msgstr "Общие параметры" + +#~ msgid "Read-only" +#~ msgstr "Только для чтения" + +#~ msgid "%1 Resource Settings" +#~ msgstr "Параметры ресурса %1" + +#~ msgid "Please enter a resource name." +#~ msgstr "Введите имя ресурса." + +#~ msgid "Type" +#~ msgstr "Тип" + +#~ msgid "Standard" +#~ msgstr "Стандартный" + +#~ msgid "&Use as Standard" +#~ msgstr "&Использовать как стандартный" + +#~ msgid "There is no standard resource! Please select one." +#~ msgstr "Не выбран стандартный ресурс! Выберите стандартный ресурс." + +#~ msgid "Please select type of the new resource:" +#~ msgstr "Выберите тип нового ресурса:" + +#~ msgid "Unable to create resource of type '%1'." +#~ msgstr "Не удалось создать ресурс типа '%1'." + +#~ msgid "" +#~ "You cannot remove your standard resource! Please select a new standard " +#~ "resource first." +#~ msgstr "" +#~ "Нельзя удалить стандартный ресурс! Сначала выберите новый стандартный " +#~ "ресурс." + +#~ msgid "You cannot use a read-only resource as standard!" +#~ msgstr "" +#~ "Нельзя использовать доступный только для чтения ресурс как стандартный!" + +#~ msgid "You cannot use an inactive resource as standard!" +#~ msgstr "Нельзя использовать неактивный ресурс как стандартный!" + +#~ msgid "" +#~ "You cannot deactivate the standard resource. Choose another standard " +#~ "resource first." +#~ msgstr "" +#~ "Нельзя удалить этот стандартный ресурс. Сначала выберите новый " +#~ "стандартный ресурс." + +#~ msgid "" +#~ "There is no valid standard resource! Please select one which is neither " +#~ "read-only nor inactive." +#~ msgstr "" +#~ "Не выбран действительный стандартный ресурс! Выберите ресурс, который не " +#~ "является неактивным и доступен для записи." + +#~ msgid "Headline" +#~ msgstr "Заголовок" + +#~ msgid "Position" +#~ msgstr "Должность" + +#~ msgid "Sub-Department" +#~ msgstr "Отделение" + +#~ msgid "" +#~ "_: As in addresses\n" +#~ "State" +#~ msgstr "Область/Штат" + +#~ msgid "Rank" +#~ msgstr "Звание" + +#~ msgid "Name Prefix" +#~ msgstr "Титул к имени" + +#~ msgid "First Name" +#~ msgstr "Имя" + +#~ msgid "Last Name" +#~ msgstr "Фамилия" + +#~ msgid "Talk Addresses" +#~ msgstr "Адреса для чата" + +#~ msgid "Keywords" +#~ msgstr "Ключевые слова" + +#~ msgid "URLs" +#~ msgstr "URL" + +#~ msgid "User Field 1" +#~ msgstr "Пользовательские 1" + +#~ msgid "User Field 2" +#~ msgstr "Пользовательские 2" + +#~ msgid "User Field 3" +#~ msgstr "Пользовательские 3" + +#~ msgid "User Field 4" +#~ msgstr "Пользовательские 4" + +#~ msgid "Categories" +#~ msgstr "Категории" + +#~ msgid "Out of Memory" +#~ msgstr "Недостаточно памяти" + +#~ msgid "" +#~ "Your local kab configuration file \"%1\" could not be created. kab will " +#~ "probably not work correctly without it.\n" +#~ "Make sure you have not removed write permission from your local KDE " +#~ "directory (usually ~/.kde)." +#~ msgstr "" +#~ "Не удалось создать локальный файл конфигурации для kab \"%1\". Скорее " +#~ "всего, kab не будет правильно работать без него.\n" +#~ "Проверьте, есть ли у вас права на запись в ваш локальный каталог KDE " +#~ "(обычно это - ~/.kde)." + +#~ msgid "" +#~ "Your standard kab database file \"%1\" could not be created. kab will " +#~ "probably not work correctly without it.\n" +#~ "Make sure you have not removed write permission from your local KDE " +#~ "directory (usually ~/.kde)." +#~ msgstr "" +#~ "Не удалось создать стандартный файл базы данных \"%1\" для kab. Скорее " +#~ "всего, kab не будет правильно работать без него.\n" +#~ "Проверьте, есть ли у вас права на запись в ваш локальный каталог KDE " +#~ "(обычно это - ~/.kde)." + +#~ msgid "" +#~ "kab has created your standard addressbook in\n" +#~ "\"%1\"" +#~ msgstr "" +#~ "Создана адресная книг kab в\n" +#~ "\"%1\"" + +#~ msgid "Cannot create backup file (permission denied)." +#~ msgstr "Не удалось создать резервную копию файла (доступ запрещён)." + +#~ msgid "File Error" +#~ msgstr "Ошибка файла" + +#~ msgid "Cannot open backup file for writing (permission denied)." +#~ msgstr "" +#~ "Не удаётся открыть резервную копию файла для записи (доступ запрещён)." + +#~ msgid "" +#~ "Critical error:\n" +#~ "Permissions changed in local directory!" +#~ msgstr "" +#~ "Критическая ошибка:\n" +#~ "Изменились права доступа к локальному каталогу!" + +#~ msgid "File reloaded." +#~ msgstr "Файл прочитан заново." + +#~ msgid "" +#~ "The currently loaded file \"%1\" cannot be reloaded. kab may close or " +#~ "save it.\n" +#~ "Save it if you accidentally deleted your data file.\n" +#~ "Close it if you intended to do so.\n" +#~ "Your file will be closed by default." +#~ msgstr "" +#~ "Загруженный файл \"%1\" не может быть обновлён. kab может закрыть или " +#~ "сохранить его.\n" +#~ "Сохраните, если он был случайно удалён.\n" +#~ "Закройте, если вы собирались это сделать.\n" +#~ "По умолчанию файл будет закрыт." + +#~ msgid "(Safety copy on file error)" +#~ msgstr "(Резервная копия на случай ошибок)" + +#~ msgid "Cannot save the file; will close it now." +#~ msgstr "Не удаётся сохранить файл. Он будет закрыт." + +#~ msgid "File opened." +#~ msgstr "Файл открыт." + +#~ msgid "Could not load the file." +#~ msgstr "Не удаётся загрузить файл." + +#~ msgid "No such file." +#~ msgstr "Такого файла не существует." + +#~ msgid "The file \"%1\" cannot be found. Create a new one?" +#~ msgstr "Не удаётся найти файл \"%1\". Создать новый?" + +#~ msgid "No Such File" +#~ msgstr "Файл не найден" + +#~ msgid "Create" +#~ msgstr "Создать" + +#~ msgid "New file." +#~ msgstr "Новый файл." + +#~ msgid "Canceled." +#~ msgstr "Отменено." + +#~ msgid "(Internal error in kab)" +#~ msgstr "(Внутренняя ошибка kab)" + +#~ msgid "(empty entry)" +#~ msgstr "(пустая запись)" + +#~ msgid "Cannot reload configuration file!" +#~ msgstr "Не удаётся повторно прочитать файл конфигурации." + +#~ msgid "Configuration file reloaded." +#~ msgstr "Файл конфигурации считан заново." + +#~ msgid "File saved." +#~ msgstr "Файл сохранен." + +#~ msgid "Permission denied." +#~ msgstr "Доступ запрещён." + +#~ msgid "File closed." +#~ msgstr "Файл закрыт." + +#~ msgid "" +#~ "The file you wanted to change could not be locked.\n" +#~ "It is probably in use by another application or read-only." +#~ msgstr "" +#~ "Не удаётся заблокировать файл. Он либо используется \n" +#~ "другим приложением, либо доступен только для чтения." + +#~ msgid "" +#~ "Cannot find kab's template file.\n" +#~ "You cannot create new files." +#~ msgstr "" +#~ "Не удаётся найти файл шаблона kab.\n" +#~ "Вы не сможете создавать новых файлы." + +#~ msgid "" +#~ "Cannot read kab's template file.\n" +#~ "You cannot create new files." +#~ msgstr "" +#~ "Не удаётся прочитать файл шаблона kab.\n" +#~ "Вы не сможете создавать новые файлы." + +#~ msgid "Format Error" +#~ msgstr "Ошибка формата" + +#~ msgid "" +#~ "Cannot create the file\n" +#~ "\"" +#~ msgstr "" +#~ "Не удаётся создать файл\n" +#~ "\"" + +#~ msgid "" +#~ "Cannot find kab's configuration template file.\n" +#~ "kab cannot be configured." +#~ msgstr "" +#~ "Не удаётся найти файл шаблона конфигурации kab.\n" +#~ "Настроить kab невозможно." + +#~ msgid "" +#~ "Cannot read kab's configuration template file.\n" +#~ "kab cannot be configured." +#~ msgstr "" +#~ "Не удаётся прочитать файл шаблона конфигурации kab.\n" +#~ "Настроить kab невозможно." + +#~ msgid "Could not create the new configuration file." +#~ msgstr "Не удаётся создать новый файл конфигурации" + +#~ msgid "" +#~ "Cannot load kab's local configuration file.\n" +#~ "There may be a formatting error.\n" +#~ "kab cannot be configured." +#~ msgstr "" +#~ "Ошибка загрузки локального файла конфигурации kab;\n" +#~ "возможно, ошибка формата.\n" +#~ "Настроить kab невозможно." + +#~ msgid "" +#~ "Cannot find kab's local configuration file.\n" +#~ "kab cannot be configured." +#~ msgstr "" +#~ "Не удаётся найти локальный файл конфигурации kab;\n" +#~ "Настроить kab невозможно." + +#~ msgid "fixed" +#~ msgstr "стационарный" + +#~ msgid "mobile" +#~ msgstr "сотовый" + +#~ msgid "fax" +#~ msgstr "факс" + +#~ msgid "modem" +#~ msgstr "модем" + +#~ msgid "general" +#~ msgstr "обычный" + +#~ msgid "Business" +#~ msgstr "Работа" + +#~ msgid "Dates" +#~ msgstr "Даты" + +#~ msgid "Your new entry could not be added." +#~ msgstr "Не удалось добавить новый элемент." + +#~ msgid "URL to open" +#~ msgstr "Открыть URL" + +#~ msgid "KIOTest" +#~ msgstr "KIOTest" + +#~ msgid "0.1" +#~ msgstr "0.1" + +#~ msgid "KConvertTest" +#~ msgstr "KConvertTest" + +#~ msgid "Display error message (default)" +#~ msgstr "Показывать сообщения об ошибках (по умолчанию)" + +#~ msgid "Display warning message" +#~ msgstr "Показывать предупреждения" + +#~ msgid "Display informational message" +#~ msgstr "Показывать информационные сообщения" + +#~ msgid "Message string to be displayed" +#~ msgstr "Строка сообщения" + +#~ msgid "artsmessage" +#~ msgstr "Сообщение aRts" + +#~ msgid "Utility to display aRts error messages" +#~ msgstr "Утилита для вывода сообщений aRts об ошибках" + +#~ msgid "Informational" +#~ msgstr "Информационное" + +#~ msgid "Certificates" +#~ msgstr "Сертификаты" + +#~ msgid "Signers" +#~ msgstr "Подписанты" + +#~ msgid "Client" +#~ msgstr "Клиент" + +#~ msgid "Import &All" +#~ msgstr "Импортировать &все" + +#~ msgid "KDE Secure Certificate Import" +#~ msgstr "Импорт защищённого сертификата KDE" + +#~ msgid "Chain:" +#~ msgstr "Цепочка:" + +#~ msgid "Subject:" +#~ msgstr "Тема:" + +#~ msgid "Issued by:" +#~ msgstr "Выпущен:" + +#~ msgid "File:" +#~ msgstr "Файл:" + +#~ msgid "File format:" +#~ msgstr "Формат файла:" + +#~ msgid "State:" +#~ msgstr "Состояние:" + +#~ msgid "Valid from:" +#~ msgstr "Годен с:" + +#~ msgid "Valid until:" +#~ msgstr "Годен до:" + +#~ msgid "Serial number:" +#~ msgstr "Серийный номер:" + +#~ msgid "MD5 digest:" +#~ msgstr "Отпечаток MD5:" + +#~ msgid "Signature:" +#~ msgstr "Подпись:" + +#~ msgid "Signature" +#~ msgstr "Подпись" + +#~ msgid "Public key:" +#~ msgstr "Открытый ключ:" + +#~ msgid "Public Key" +#~ msgstr "Открытый ключ" + +#~ msgid "&Crypto Manager..." +#~ msgstr "Администратор &сертификатов..." + +#~ msgid "&Import" +#~ msgstr "&Импорт" + +#~ msgid "&Save..." +#~ msgstr "&Сохранить..." + +#~ msgid "&Done" +#~ msgstr "&Готово" + +#~ msgid "Save failed." +#~ msgstr "Сохранение не выполнено." + +#~ msgid "Certificate Import" +#~ msgstr "Импорт сертификата" + +#~ msgid "You do not seem to have compiled KDE with SSL support." +#~ msgstr "Скорее всего, KDE собрана без поддержки SSL." + +#~ msgid "Certificate file is empty." +#~ msgstr "Файл сертификата пуст." + +#~ msgid "Certificate Password" +#~ msgstr "Пароль сертификата" + +#~ msgid "The certificate file could not be loaded. Try a different password?" +#~ msgstr "Файл сертификата не может быть загружен. Попробовать другой пароль?" + +#~ msgid "Try Different" +#~ msgstr "Указать другой" + +#~ msgid "This file cannot be opened." +#~ msgstr "Этот файл не может быть открыт." + +#~ msgid "I do not know how to handle this type of file." +#~ msgstr "Неизвестно, как обработать этот тип файла." + +#~ msgid "0 - Site Certificate" +#~ msgstr "0 - Сертификат сайта" + +#~ msgid "" +#~ "A certificate with that name already exists. Are you sure that you wish " +#~ "to replace it?" +#~ msgstr "Сертификат с таким именем уже существует. Заменить его?" + +#~ msgid "" +#~ "Certificate has been successfully imported into KDE.\n" +#~ "You can manage your certificate settings from the KDE Control Center." +#~ msgstr "" +#~ "Сертификат был успешно импортирован.\n" +#~ "Сертификатами можно управлять в Центре управления KDE." + +#~ msgid "" +#~ "Certificates have been successfully imported into KDE.\n" +#~ "You can manage your certificate settings from the KDE Control Center." +#~ msgstr "" +#~ "Сертификаты были успешно импортированы.\n" +#~ "Сертификатами можно управлять в Центре управления KDE." + +#~ msgid "KDE Certificate Part" +#~ msgstr "Модуль сертификатов KDE" + +#~ msgid "Accept" +#~ msgstr "Принять" + +#~ msgid "Reject" +#~ msgstr "Отклонить" + +#~ msgid "Filter error" +#~ msgstr "Ошибка фильтра" + +#~ msgid "Already open." +#~ msgstr "Файл уже открыт." + +#~ msgid "Error opening file." +#~ msgstr "Ошибка открытия файла." + +#~ msgid "Not a wallet file." +#~ msgstr "Это не файл бумажника." + +#~ msgid "Unsupported file format revision." +#~ msgstr "Неподдерживаемая версия формата файла." + +#~ msgid "Unknown encryption scheme." +#~ msgstr "Неизвестная схема шифрования." + +#~ msgid "Corrupt file?" +#~ msgstr "Повреждённый файл?" + +#~ msgid "Error validating wallet integrity. Possibly corrupted." +#~ msgstr "" +#~ "Ошибка проверки целостности бумажника. Вероятно, бумажник повреждён." + +#~ msgid "Read error - possibly incorrect password." +#~ msgstr "Ошибка чтения - неверный пароль." + +#~ msgid "&New" +#~ msgstr "Созд&ать" + +#~ msgid "Re&vert" +#~ msgstr "&Восстановить" + +#~ msgid "Print Previe&w..." +#~ msgstr "Пред&варительный просмотр..." + +#~ msgid "&Mail..." +#~ msgstr "Отправить по &почте..." + +#~ msgid "Re&do" +#~ msgstr "&Повторить" + +#~ msgid "Select &All" +#~ msgstr "Вы&делить все" + +#~ msgid "Dese&lect" +#~ msgstr "Отме&нить выделение" + +#~ msgid "Find Pre&vious" +#~ msgstr "Найти пред&ыдущее" + +#~ msgid "&Actual Size" +#~ msgstr "&Фактический размер" + +#~ msgid "&Fit to Page" +#~ msgstr "&Вместить страницу целиком" + +#~ msgid "Fit to Page &Width" +#~ msgstr "По &ширине страницы" + +#~ msgid "Fit to Page &Height" +#~ msgstr "По &высоте страницы" + +#~ msgid "Zoom &In" +#~ msgstr "У&величить" + +#~ msgid "Zoom &Out" +#~ msgstr "У&меньшить" + +#~ msgid "&Zoom..." +#~ msgstr "&Масштаб..." + +#~ msgid "&Redisplay" +#~ msgstr "Обно&вить изображение" + +#~ msgid "&Up" +#~ msgstr "Ввер&х" + +#~ msgid "&Previous Page" +#~ msgstr "&Предыдущая страница" + +#~ msgid "&Next Page" +#~ msgstr "&Следующая страница" + +#~ msgid "&Go To..." +#~ msgstr "&Перейти..." + +#~ msgid "&Go to Page..." +#~ msgstr "Перейти на ст&раницу..." + +#~ msgid "&Go to Line..." +#~ msgstr "&Перейти на строку..." + +#~ msgid "&First Page" +#~ msgstr "Перв&ая страница" + +#~ msgid "&Last Page" +#~ msgstr "Последня&я страница" + +#~ msgid "&Edit Bookmarks" +#~ msgstr "&Изменить закладки" + +#~ msgid "&Configure %1..." +#~ msgstr "&Настроить %1..." + +#~ msgid "Configure Tool&bars..." +#~ msgstr "Панели &инструментов..." + +#~ msgid "Configure &Notifications..." +#~ msgstr "&Уведомления..." + +#~ msgid "What's &This?" +#~ msgstr "Что &это?" + +#~ msgid "Tip of the &Day" +#~ msgstr "Совет &дня" + +#~ msgid "A little program to output installation paths" +#~ msgstr "Программа вывода путей установки" + +#~ msgid "expand ${prefix} and ${exec_prefix} in output" +#~ msgstr "развернуть ${prefix} и ${exec_prefix} в выводе" + +#~ msgid "Compiled in prefix for KDE libraries" +#~ msgstr "Встроенный prefix для библиотек KDE" + +#~ msgid "Compiled in exec_prefix for KDE libraries" +#~ msgstr "Встроенный exec_prefix для библиотек KDE" + +#~ msgid "Compiled in library path suffix" +#~ msgstr "Встроенный путь к библиотекам" + +#~ msgid "Prefix in $HOME used to write files" +#~ msgstr "Каталог в $HOME для записи файлов" + +#~ msgid "Compiled in version string for KDE libraries" +#~ msgstr "Встроенная строка - версия библиотек KDE" + +#~ msgid "Available KDE resource types" +#~ msgstr "Доступные типы ресурсов KDE" + +#~ msgid "Search path for resource type" +#~ msgstr "Путь поиска типов ресурсов" + +#~ msgid "User path: desktop|autostart|trash|document" +#~ msgstr "Пользовательский путь: desktop|autostart|trash|document" + +#~ msgid "Prefix to install resource files to" +#~ msgstr "Каталог установки файлов ресурсов" + +#~ msgid "Applications menu (.desktop files)" +#~ msgstr "Меню приложений (файлы .desktop)" + +#~ msgid "CGIs to run from kdehelp" +#~ msgstr "CGI, вызываемые из kdehelp" + +#~ msgid "Configuration files" +#~ msgstr "Файлы конфигурации" + +#~ msgid "Where applications store data" +#~ msgstr "Хранилище данных приложений" + +#~ msgid "Executables in $prefix/bin" +#~ msgstr "Исполняемые файлы из $prefix/bin" + +#~ msgid "HTML documentation" +#~ msgstr "Документация HTML" + +#~ msgid "Icons" +#~ msgstr "Значки" + +#~ msgid "Configuration description files" +#~ msgstr "Файлы описания конфигурации" + +#~ msgid "Libraries" +#~ msgstr "Библиотеки" + +#~ msgid "Includes/Headers" +#~ msgstr "Заголовки" + +#~ msgid "Translation files for KLocale" +#~ msgstr "Файлы перевода для KLocale" + +#~ msgid "Mime types" +#~ msgstr "Типы MIME" + +#~ msgid "Loadable modules" +#~ msgstr "Загружаемые модули" + +#~ msgid "Qt plugins" +#~ msgstr "Модули Qt" + +#~ msgid "Services" +#~ msgstr "Службы" + +#~ msgid "Service types" +#~ msgstr "Типы служб" + +#~ msgid "Application sounds" +#~ msgstr "Звуковые файлы приложений" + +#~ msgid "Templates" +#~ msgstr "Шаблоны" + +#~ msgid "Wallpapers" +#~ msgstr "Обои" + +#~ msgid "XDG Application menu (.desktop files)" +#~ msgstr "Меню приложений XDG (файлы .desktop)" + +#~ msgid "XDG Menu descriptions (.directory files)" +#~ msgstr "Описание меню XDG (файлы .directory)" + +#~ msgid "XDG Menu layout (.menu files)" +#~ msgstr "Порядок меню XDG (файлы .menu)" + +#~ msgid "Temporary files (specific for both current host and current user)" +#~ msgstr "" +#~ "Временные файлы (для конкретного компьютера и текущего пользователя)" + +#~ msgid "UNIX Sockets (specific for both current host and current user)" +#~ msgstr "Сокеты UNIX (для конкретного компьютера и текущего пользователя)" + +#~ msgid "%1 - unknown type\n" +#~ msgstr "%1 - неизвестный тип\n" + +#~ msgid "%1 - unknown type of userpath\n" +#~ msgstr "%1 - неизвестный тип или путь\n" + +#~ msgid "Undo" +#~ msgstr "Отменить действие" + +#~ msgid "Redo" +#~ msgstr "Повторить" + +#~ msgid "Cut" +#~ msgstr "Вырезать" + +#~ msgid "Paste" +#~ msgstr "Вставить" + +#~ msgid "Paste special..." +#~ msgstr "Специальная вставка..." + +#~ msgid "Clear" +#~ msgstr "Очистить" + +#~ msgid "Help" +#~ msgstr "Справка" + +#~ msgid "What's This?" +#~ msgstr "Что это?" + +#~ msgid "&Font" +#~ msgstr "&Шрифт" + +#~ msgid "Font st&yle" +#~ msgstr "&Стиль шрифта" + +#~ msgid "&Size" +#~ msgstr "&Размер" + +#~ msgid "Effects" +#~ msgstr "Эффекты" + +#~ msgid "Stri&keout" +#~ msgstr "П&еречёркивание" + +#~ msgid "&Underline" +#~ msgstr "Под&чёркивание" + +#~ msgid "Sample" +#~ msgstr "Образец" + +#~ msgid "Scr&ipt" +#~ msgstr "Рукоп&исный" + +#~ msgid "OK" +#~ msgstr "ОК" + +#~ msgid "Apply" +#~ msgstr "Применить" + +#~ msgid "Cancel" +#~ msgstr "Отмена" + +#~ msgid "Close" +#~ msgstr "Закрыть" + +#~ msgid "Select Font" +#~ msgstr "Выбор шрифта" + +#~ msgid "" +#~ "_: QMessageBox\n" +#~ "OK" +#~ msgstr "ОК" + +#~ msgid "" +#~ "_: QMessageBox\n" +#~ "Cancel" +#~ msgstr "Отмена" + +#~ msgid "" +#~ "_: QMessageBox\n" +#~ "&Yes" +#~ msgstr "&Да" + +#~ msgid "" +#~ "_: QMessageBox\n" +#~ "&No" +#~ msgstr "&Нет" + +#~ msgid "" +#~ "_: QMessageBox\n" +#~ "&Abort" +#~ msgstr "&Прервать" + +#~ msgid "" +#~ "_: QMessageBox\n" +#~ "&Retry" +#~ msgstr "Повто&рить" + +#~ msgid "" +#~ "_: QMessageBox\n" +#~ "&Ignore" +#~ msgstr "&Игнорировать" + +#~ msgid "" +#~ "_: QMessageBox\n" +#~ "Yes to &All" +#~ msgstr "&Да для всех" + +#~ msgid "" +#~ "_: QMessageBox\n" +#~ "N&o to All" +#~ msgstr "&Нет для всех" + +#~ msgid "" +#~ "

    About Qt

    This program uses Qt version %1.

    Qt is a C++ " +#~ "toolkit for multiplatform GUI & application development.

    Qt " +#~ "provides single-source portability across MS Windows, Mac " +#~ "OS X, Linux, and all major commercial Unix variants.
    Qt is also " +#~ "available for embedded devices.

    Qt is a Trolltech product. See " +#~ "http://www.trolltech.com/qt/ for more information.

    " +#~ msgstr "" +#~ "

    О библиотеке Qt

    Эта программа использует Qt %1

    .

    Qt - это " +#~ "инструментарий для кросс-платформенной разработки приложений с " +#~ "графическим интерфейсом на C++.

    Qt обеспечивает совместимость на " +#~ "уровне исходных текстов между MS Windows, Mac OS X, Linux и " +#~ "многими коммерческими версиями Unix.
    Qt также доступна для " +#~ "встраиваемых устройств.

    Qt - это продукт фирмы TrollTech. Более " +#~ "подробно об этом см. http://www.trolltech.com/qt/.

    " + +#~ msgid "About Qt" +#~ msgstr "О Qt" + +#~ msgid "Defaults" +#~ msgstr "По умолчанию" + +#~ msgid "&Cancel" +#~ msgstr "О&тмена" + +#~ msgid "< &Back" +#~ msgstr "< &Назад" + +#~ msgid "&Next >" +#~ msgstr "&Далее >" + +#~ msgid "&Finish" +#~ msgstr "&Готово" + +#~ msgid "&Help" +#~ msgstr "&Справка" + +#~ msgid "%1, %2 not defined" +#~ msgstr "%1, %2 не определены" + +#~ msgid "Ambiguous \"%1\" not handled" +#~ msgstr "Неоднозначный \"%1\" не обрабатывается" + +#~ msgid "" +#~ "_: QT_LAYOUT_DIRECTION\n" +#~ "Translate this string to the string 'LTR' in left-to-right languages or " +#~ "to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get " +#~ "proper widget layout." +#~ msgstr "LTR" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Latin" +#~ msgstr "Латинский" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Greek" +#~ msgstr "Греческий" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Cyrillic" +#~ msgstr "Кириллица" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Armenian" +#~ msgstr "Армянский" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Georgian" +#~ msgstr "Грузинский" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Runic" +#~ msgstr "Рунический" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Ogham" +#~ msgstr "Огамический" + +#~ msgid "" +#~ "_: QFont\n" +#~ "SpacingModifiers" +#~ msgstr "SpacingModifiers" + +#~ msgid "" +#~ "_: QFont\n" +#~ "CombiningMarks" +#~ msgstr "CombiningMarks" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Hebrew" +#~ msgstr "Иврит" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Arabic" +#~ msgstr "Арабский" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Syriac" +#~ msgstr "Сириак" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Thaana" +#~ msgstr "Thaana" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Devanagari" +#~ msgstr "Деванагари" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Bengali" +#~ msgstr "Бенгальский" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Gurmukhi" +#~ msgstr "Гурмукхи" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Gujarati" +#~ msgstr "Гуджарати" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Oriya" +#~ msgstr "Ория" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Tamil" +#~ msgstr "Тамильский" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Telugu" +#~ msgstr "Телугу" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Kannada" +#~ msgstr "Каннада" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Malayalam" +#~ msgstr "Малайский" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Sinhala" +#~ msgstr "Синхала" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Thai" +#~ msgstr "Тайский" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Lao" +#~ msgstr "Лао" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Tibetan" +#~ msgstr "Тибетский" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Myanmar" +#~ msgstr "Мьянма" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Khmer" +#~ msgstr "Кхмерский" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Han" +#~ msgstr "Хан" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Hiragana" +#~ msgstr "Хирагана" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Katakana" +#~ msgstr "Катакана" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Hangul" +#~ msgstr "Хангыль" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Bopomofo" +#~ msgstr "Бопомофо" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Yi" +#~ msgstr "И" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Ethiopic" +#~ msgstr "Эфиопский" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Cherokee" +#~ msgstr "Чероки" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Canadian Aboriginal" +#~ msgstr "Язык аборигенов Канады" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Mongolian" +#~ msgstr "Монгольский" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Currency Symbols" +#~ msgstr "Символы валюты" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Letterlike Symbols" +#~ msgstr "Буквоподобные символы" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Number Forms" +#~ msgstr "Числовые формы" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Mathematical Operators" +#~ msgstr "Математические операторы" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Technical Symbols" +#~ msgstr "Технические символы" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Geometric Symbols" +#~ msgstr "Геометрические символы" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Miscellaneous Symbols" +#~ msgstr "Прочие символы" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Enclosed and Square" +#~ msgstr "Заполняющие знаки" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Braille" +#~ msgstr "Брайль" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Unicode" +#~ msgstr "Юникод" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Tagalog" +#~ msgstr "Тагалог" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Hanunoo" +#~ msgstr "Хануну" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Buhid" +#~ msgstr "Бухид" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Tagbanwa" +#~ msgstr "Тагбанва" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Katakana Half-Width Forms" +#~ msgstr "Катакана (формы половинной ширины)" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Han (Japanese)" +#~ msgstr "Хан (Японский)" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Han (Simplified Chinese)" +#~ msgstr "Хан (Упрощенный китайский)" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Han (Traditional Chinese)" +#~ msgstr "Хан (Традиционный китайский)" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Han (Korean)" +#~ msgstr "Хан (Корейский)" + +#~ msgid "" +#~ "_: QFont\n" +#~ "Unknown Script" +#~ msgstr "Неизвестный скрипт" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Space" +#~ msgstr "Space" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Esc" +#~ msgstr "Esc" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Tab" +#~ msgstr "Tab" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Backtab" +#~ msgstr "Backtab" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Backspace" +#~ msgstr "Backspace" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Return" +#~ msgstr "Return" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Enter" +#~ msgstr "Enter" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Ins" +#~ msgstr "Ins" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Del" +#~ msgstr "Del" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Pause" +#~ msgstr "Pause" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Print" +#~ msgstr "Print" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "SysReq" +#~ msgstr "SysReq" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Home" +#~ msgstr "Home" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "End" +#~ msgstr "End" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Left" +#~ msgstr "Влево" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Up" +#~ msgstr "Вверх" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Right" +#~ msgstr "Вправо" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Down" +#~ msgstr "Вниз" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "PgUp" +#~ msgstr "PgUp" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "PgDown" +#~ msgstr "PgDown" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "CapsLock" +#~ msgstr "CapsLock" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "NumLock" +#~ msgstr "NumLock" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "ScrollLock" +#~ msgstr "ScrollLock" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Menu" +#~ msgstr "Меню" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Help" +#~ msgstr "Справка" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Back" +#~ msgstr "Назад" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Forward" +#~ msgstr "Вперёд" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Stop" +#~ msgstr "Стоп" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Refresh" +#~ msgstr "Обновить" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Volume Down" +#~ msgstr "Уменьшить громкость" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Volume Mute" +#~ msgstr "Отключить звук" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Volume Up" +#~ msgstr "Увеличить громкость" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Bass Boost" +#~ msgstr "Включить усиление НЧ" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Bass Up" +#~ msgstr "Увеличить тембр НЧ" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Bass Down" +#~ msgstr "Уменьшить тембр НЧ" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Treble Up" +#~ msgstr "Увеличить тембр ВЧ" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Treble Down" +#~ msgstr "Уменьшить тембр ВЧ" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Media Play" +#~ msgstr "Воспроизведение" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Media Stop" +#~ msgstr "Останов" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Media Previous" +#~ msgstr "Пред. дорожка" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Media Next" +#~ msgstr "След. дорожка" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Media Record" +#~ msgstr "Запись" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Favorites" +#~ msgstr "Предпочтения" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Search" +#~ msgstr "Поиск" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Standby" +#~ msgstr "Ждущий режим" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Open URL" +#~ msgstr "Открыть URL" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Launch Mail" +#~ msgstr "Запустить почтовый клиент" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Launch Media" +#~ msgstr "Запустить мультимедийный проигрыватель" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Launch (0)" +#~ msgstr "Запустить (0)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Launch (1)" +#~ msgstr "Запустить (1)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Launch (2)" +#~ msgstr "Запустить (2)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Launch (3)" +#~ msgstr "Запустить (3)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Launch (4)" +#~ msgstr "Запустить (4)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Launch (5)" +#~ msgstr "Запустить (5)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Launch (6)" +#~ msgstr "Запустить (6)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Launch (7)" +#~ msgstr "Запустить (7)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Launch (8)" +#~ msgstr "Запустить (8)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Launch (9)" +#~ msgstr "Запустить (9)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Launch (A)" +#~ msgstr "Запустить (A)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Launch (B)" +#~ msgstr "Запустить (B)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Launch (C)" +#~ msgstr "Запустить (C)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Launch (D)" +#~ msgstr "Запустить (D)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Launch (E)" +#~ msgstr "Запустить (E)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Launch (F)" +#~ msgstr "Запустить (F)" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Print Screen" +#~ msgstr "Print Screen" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Page Up" +#~ msgstr "Page Up" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Page Down" +#~ msgstr "Page Down" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Caps Lock" +#~ msgstr "Caps Lock" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Num Lock" +#~ msgstr "Num Lock" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Number Lock" +#~ msgstr "Num Lock" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Scroll Lock" +#~ msgstr "Scroll Lock" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Insert" +#~ msgstr "Ins" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Delete" +#~ msgstr "Del" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "Escape" +#~ msgstr "Esc" + +#~ msgid "" +#~ "_: QAccel\n" +#~ "System Request" +#~ msgstr "Системный запрос" + +#~ msgid "Ctrl" +#~ msgstr "Ctrl" + +#~ msgid "Shift" +#~ msgstr "Shift" + +#~ msgid "Alt" +#~ msgstr "Alt" + +#~ msgid "Meta" +#~ msgstr "Meta" + +#~ msgid "+" +#~ msgstr "+" + +#~ msgid "F%1" +#~ msgstr "F%1" + +#~ msgid "Operation stopped by the user" +#~ msgstr "Действие прекращено пользователем" + +#~ msgid "True" +#~ msgstr "Истинно" + +#~ msgid "False" +#~ msgstr "Ложно" + +#~ msgid "Insert" +#~ msgstr "Вставить" + +#~ msgid "Update" +#~ msgstr "Обновить" + +#~ msgid "Delete" +#~ msgstr "Удалить" + +#~ msgid "" +#~ "_: QFile\n" +#~ "Unknown error" +#~ msgstr "Неизвестная ошибка" + +#~ msgid "" +#~ "_: QFile\n" +#~ "Could not read from the file" +#~ msgstr "Не удаётся прочитать файл" + +#~ msgid "" +#~ "_: QFile\n" +#~ "Could not write to the file" +#~ msgstr "Не удаётся записать файл" + +#~ msgid "&Undo" +#~ msgstr "О&тменить действие" + +#~ msgid "&Redo" +#~ msgstr "&Повторить отменённое действие" + +#~ msgid "Cu&t" +#~ msgstr "Вы&резать" + +#~ msgid "&Copy" +#~ msgstr "&Копировать" + +#~ msgid "&Paste" +#~ msgstr "&Вставить" + +#~ msgid "Line up" +#~ msgstr "На строку вверх" + +#~ msgid "Customize..." +#~ msgstr "Дополнительно..." + +#~ msgid "System Menu" +#~ msgstr "Системное меню" + +#~ msgid "Shade" +#~ msgstr "Свернуть в заголовок" + +#~ msgid "Unshade" +#~ msgstr "Развернуть из заголовка" + +#~ msgid "Normalize" +#~ msgstr "Нормализовать" + +#~ msgid "Minimize" +#~ msgstr "Свернуть" + +#~ msgid "Maximize" +#~ msgstr "Развернуть" + +#~ msgid "More..." +#~ msgstr "Дополнительно..." + +#~ msgid "What's this?" +#~ msgstr "Что это?" + +#~ msgid "Yes to All" +#~ msgstr "Да для всех" + +#~ msgid "OK to All" +#~ msgstr "OK для всех" + +#~ msgid "No to All" +#~ msgstr "Нет для всех" + +#~ msgid "Cancel All" +#~ msgstr "Отменить все" + +#~ msgid " to All" +#~ msgstr " всем" + +#~ msgid "Yes" +#~ msgstr "Да" + +#~ msgid "Ignore" +#~ msgstr "Игнорировать" + +#~ msgid "Retry" +#~ msgstr "Повторить" + +#~ msgid "Abort" +#~ msgstr "Прервать" + +#~ msgid "&Restore" +#~ msgstr "Восст&ановить" + +#~ msgid "&Move" +#~ msgstr "&Переместить" + +#~ msgid "Mi&nimize" +#~ msgstr "Свер&нуть" + +#~ msgid "Ma&ximize" +#~ msgstr "Ра&звернуть" + +#~ msgid "&Close" +#~ msgstr "&Закрыть" + +#~ msgid "Stay on &Top" +#~ msgstr "Всегда &наверху" + +#~ msgid "Sh&ade" +#~ msgstr "&В заголовок" + +#~ msgid "%1 - [%2]" +#~ msgstr "%1 - [%2]" + +#~ msgid "Restore Down" +#~ msgstr "Вернуть обратно" + +#~ msgid "&Unshade" +#~ msgstr "&Развернуть из заголовка" + +#~ msgid "" +#~ "_: QXml\n" +#~ "no error occurred" +#~ msgstr "ошибок не обнаружено" + +#~ msgid "" +#~ "_: QXml\n" +#~ "error triggered by consumer" +#~ msgstr "ошибка, вызванная пользователем" + +#~ msgid "" +#~ "_: QXml\n" +#~ "unexpected end of file" +#~ msgstr "неожиданный конец файла" + +#~ msgid "" +#~ "_: QXml\n" +#~ "more than one document type definition" +#~ msgstr "более одного файла определения типа документа" + +#~ msgid "" +#~ "_: QXml\n" +#~ "error occurred while parsing element" +#~ msgstr "ошибка при анализе элемента" + +#~ msgid "" +#~ "_: QXml\n" +#~ "tag mismatch" +#~ msgstr "несоответствие тегов" + +#~ msgid "" +#~ "_: QXml\n" +#~ "error occurred while parsing content" +#~ msgstr "ошибка при лексическом анализе содержания" + +#~ msgid "" +#~ "_: QXml\n" +#~ "unexpected character" +#~ msgstr "недопустимый символ" + +#~ msgid "" +#~ "_: QXml\n" +#~ "invalid name for processing instruction" +#~ msgstr "недопустимое имя инструкции обработки" + +#~ msgid "" +#~ "_: QXml\n" +#~ "version expected while reading the XML declaration" +#~ msgstr "в прологе XML требуется указывать версию" + +#~ msgid "" +#~ "_: QXml\n" +#~ "wrong value for standalone declaration" +#~ msgstr "недопустимое значение для декларации standalone" + +#~ msgid "" +#~ "_: QXml\n" +#~ "encoding declaration or standalone declaration expected while reading the " +#~ "XML declaration" +#~ msgstr "" +#~ "в прологе XML требуется указывать декларацию кодировки или standalone" + +#~ msgid "" +#~ "_: QXml\n" +#~ "standalone declaration expected while reading the XML declaration" +#~ msgstr "в прологе XML требуется указывать декларацию standalone" + +#~ msgid "" +#~ "_: QXml\n" +#~ "error occurred while parsing document type definition" +#~ msgstr "ошибка при лексическом анализе файла определения типа документа" + +#~ msgid "" +#~ "_: QXml\n" +#~ "letter is expected" +#~ msgstr "требуется буквенное значение" + +#~ msgid "" +#~ "_: QXml\n" +#~ "error occurred while parsing comment" +#~ msgstr "ошибка при лексическом анализе комментария" + +#~ msgid "" +#~ "_: QXml\n" +#~ "error occurred while parsing reference" +#~ msgstr "ошибка при лексическом анализе ссылки" + +#~ msgid "" +#~ "_: QXml\n" +#~ "internal general entity reference not allowed in DTD" +#~ msgstr "" +#~ "В DTD не разрешаются ссылки на внутренние обобщённые сущности (internal " +#~ "general entity)" + +#~ msgid "" +#~ "_: QXml\n" +#~ "external parsed general entity reference not allowed in attribute value" +#~ msgstr "" +#~ "В значениях атрибутов не разрешаются ссылки на внешние анализируемые " +#~ "обобщённые сущности (external parsed general entity)" + +#~ msgid "" +#~ "_: QXml\n" +#~ "external parsed general entity reference not allowed in DTD" +#~ msgstr "" +#~ "В DTD не разрешаются ссылки на внешние анализируемые обобщённые сущности " +#~ "(external parsed general entity)" + +#~ msgid "" +#~ "_: QXml\n" +#~ "unparsed entity reference in wrong context" +#~ msgstr "ссылка на не-анализируемую сущность в ошибочном контексте" + +#~ msgid "" +#~ "_: QXml\n" +#~ "recursive entities" +#~ msgstr "рекурсивные сущности" + +#~ msgid "" +#~ "_: QXml\n" +#~ "error in the text declaration of an external entity" +#~ msgstr "ошибка в текстовой декларации внешней сущности" diff --git a/po/se/kio_ldap.po b/po/se/kio_ldap.po new file mode 100644 index 0000000..14ab38b --- /dev/null +++ b/po/se/kio_ldap.po @@ -0,0 +1,68 @@ +# Translation of kio_ldap to Northern Sami +# +# Børre Gaup , 2005. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2005-10-28 15:47+0200\n" +"Last-Translator: Børre Gaup \n" +"Language-Team: Northern Sami \n" +"Language: se\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.10.2\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Environment: kde\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Lasi dieđud: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP-bálvá muitala dán meattáhusa birra: %1 %2\n" +"LDAP-čujuhus lei: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP-geavaheaddjenamma" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "báiki:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Gustohis " + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "" + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "" + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "" diff --git a/po/se/libkldap5.po b/po/se/libkldap5.po new file mode 100644 index 0000000..00a413e --- /dev/null +++ b/po/se/libkldap5.po @@ -0,0 +1,302 @@ +# Translation of libkldap5 to Northern Sami +# +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2007-09-11 22:44+0200\n" +"Last-Translator: Northern Sami translation team \n" +"Language-Team: Northern Sami \n" +"Language: se\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Environment: kde\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "" + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "" + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "" + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "" + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "" + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "" + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "" + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "" + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "" + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "" + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "" + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "" diff --git a/po/sk/kio_ldap.po b/po/sk/kio_ldap.po new file mode 100644 index 0000000..0e6ad63 --- /dev/null +++ b/po/sk/kio_ldap.po @@ -0,0 +1,65 @@ +# translation of kio_ldap.po to Slovak +# Stanislav Visnovsky , 2004. +# Richard Fric , 2006, 2009. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2012-04-18 10:58+0100\n" +"Last-Translator: Roman Paholík \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.1\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Dodatočné informácie: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"Server LDAP vrátil túto chybu: %1 %2\n" +"LDAP URL bolo: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "Prihlásenie LDAP" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "server:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Neplatná informácie prihlásenia." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "LDAP pripojenie zrušené." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Parser Ldif zlyhal." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Neplatný Ldif súbor v riadku %1." diff --git a/po/sk/libkldap5.po b/po/sk/libkldap5.po new file mode 100644 index 0000000..f7535a3 --- /dev/null +++ b/po/sk/libkldap5.po @@ -0,0 +1,331 @@ +# translation of libkldap5.po to Slovak +# Roman Paholík , 2014, 2017, 2022. +# Matej Mrenica , 2019. +msgid "" +msgstr "" +"Project-Id-Version: libkldap5\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2022-04-18 17:37+0200\n" +"Last-Translator: Roman Paholik \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 21.12.3\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "LDAP nie je podporované ..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Vyskytla sa chyba počas inicializácie spojenia." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Nie je možné nastaviť verziu protokolu na %1." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Nie je možné nastaviť časový limit na %1 sekundu." +msgstr[1] "Nie je možné nastaviť časový limit na %1 sekundy." +msgstr[2] "Nie je možné nastaviť časový limit na %1 sekúnd." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "Súbor certifikátu CA sa nepodarilo nastaviť." + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "Neplatný TLS vyžaduje režim certifikátov." + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "" +"Nepodarilo sa nastaviť protokol TLS, ktorý vyžaduje režim certifikátov." + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "Nepodarilo sa inicializovať nový kontext TLS." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "Nie je dostupná podpora TLS v klientských knižniciach LDAP." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Nie je možné nastaviť veľkostný limit." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Nie je možné nastaviť časový limit." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Nie je možné inicializovať SASL klienta." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"Podpora LDAP nie je zakompilovaná. Prosím prekompilujte libkldap s OpenLDAP " +"(alebo kompatibilnými) klientskými knižnicami, alebo to ohláste baličom " +"vašej distribúcie." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "Nemôžem pristupovať na server. Prosím, prekonfigurujte ho." + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "Pridať hostiteľa" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "LDAP heslo je uložené ako čistý text, chcete ho uložiť v KWallete?" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "Uložiť čistý text hesla v KWallete" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "Upraviť hostiteľa" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "Chcete odstrániť nastavenie pre hostiteľa \"%1\"?" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "Odstrániť hostiteľa" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "Skontrolovať všetky servery, ktoré sa majú použiť:" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "Pridať hostiteľa..." + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "Upraviť hostiteľa..." + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "Odstrániť hostiteľa" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Užívateľ:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "Bind DN:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Realm:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Heslo:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Hostiteľ:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Port:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "LDAP verzia:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Predvolené" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Veľkostný limit:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " sek" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Predvolené" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Časový limit:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Nestránkované" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Veľkosť stránky:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Query Server" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Filter:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Nie" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "Zabezpečenie:" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anonymný" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Jednoduchý" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "Overenie:" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "SASL mechanismus:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "Skontrolovať server" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "LDAP dopyt" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Neznáma chyba pripojenia %1" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Servers" +#~ msgstr "LDAP verzia:" + +#~ msgid "Attribute" +#~ msgstr "Atribút" + +#~ msgid "Value" +#~ msgstr "Hodnota" + +#~ msgid "Distinguished Name" +#~ msgstr "Význačný názov" + +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "Podpora SASL nie je dostupná. Prosím prekompilujte libkldap s Cyrus-SASL " +#~ "(alebo kompatibilnými) klientskými knižnicami, alebo to ohláste baličom " +#~ "vašej distribúcie." + +#~ msgid "LDAP Operations error" +#~ msgstr "Chyba operácie LDAP" diff --git a/po/sl/kio_ldap.po b/po/sl/kio_ldap.po new file mode 100644 index 0000000..dfaa5a0 --- /dev/null +++ b/po/sl/kio_ldap.po @@ -0,0 +1,68 @@ +# translation of kio_ldap.po to Slovenian +# Translation of kio_ldap.po to Slovenian +# Gregor Rakar , 2004, 2005. +# Andrej Vernekar , 2007. +# Andrej Mernik , 2014. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2014-08-29 12:46+0200\n" +"Last-Translator: Andrej Mernik \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" +"%100==4 ? 3 : 0);\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Dodatni podatki: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"Strežnik LDAP je vrnil napako: %1 %2\n" +"URL za LDAP je bil: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "Prijava LDAP" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "mesto:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Neveljavni pooblastitveni podatki." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "Povezava LDAP je preklicana." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Razčlenjevalnik Ldif ni uspel." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Neveljavna datoteka Ldif v vrstici %1." diff --git a/po/sl/libkldap5.po b/po/sl/libkldap5.po new file mode 100644 index 0000000..3fbac2f --- /dev/null +++ b/po/sl/libkldap5.po @@ -0,0 +1,338 @@ +# translation of libkldap.po to Slovenian +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Andrej Vernekar , 2007, 2008. +# Jure Repinc , 2012. +# Andrej Mernik , 2014, 2018. +# Matjaž Jeran , 2019, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2022-11-18 11:10+0100\n" +"Last-Translator: Matjaž Jeran \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" +"%100==4 ? 3 : 0);\n" +"Translator: Andrej Mernik \n" +"X-Generator: Poedit 3.1.1\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "Ni podpore za LDAP..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Med začetnim nastavljanjem povezave je prišlo do napake." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Različice protokola ni mogoče nastaviti na %1." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Časovne omejitve ni mogoče nastaviti na %1 sekundo." +msgstr[1] "Časovne omejitve ni mogoče nastaviti na %1 sekundi." +msgstr[2] "Časovne omejitve ni mogoče nastaviti na %1 sekunde." +msgstr[3] "Časovne omejitve ni mogoče nastaviti na %1 sekund." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "Ni bilo mogoče nastaviti datoteko potrdil CA." + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "Neveljaven TLS zahteva način delovanja s potrdilom." + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "Ni bilo mogoče nastaviti TSL, ki zahteva delovanje s potrdilom." + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "Ni bilo mogoče postaviti začetnega konteksta TLS." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "V knjižnicah odjemalca LDAP ni podpore za TLS." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Ni mogoče nastaviti omejitve velikosti." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Ni mogoče nastaviti časovne omejitve." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Začetna nastavitev odjemalca SASL ni uspela." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"Podpora za LDAP ni na voljo. Pritožite se izdelovalcem paketov za vašo " +"distribucijo ali znova prevedite izvorno kodo libkldap s knjižnicami " +"odjemalca OpenLDAP (ali združljivimi)." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "Do strežnika ni mogoče dostopati. Preverite nastavitve." + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "Dodaj gostitelja" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" +"Geslo LDAP je shranjeno kot odprto besedilo, ali ga želite shraniti v " +"kwallet?" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "Shrani odprto besedilo gesla v listnico" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "Uredi gostitelja" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "Ali želite odstraniti nastavitev za gostitelja \"%1\"?" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "Odstrani gostitelja" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "Preverite vse strežnike, ki bi jih bilo treba uporabiti:" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "Dodaj gostitelja..." + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "uredi gostitelja..." + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "Odstrani gostitelja" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Uporabnik:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "Razločevalno ime Bind:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Področje:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Geslo:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Gostitelj:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Vrata:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "Različica LDAP:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Privzeta" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Omejitev velikosti:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " sek" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Privzeta" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Časovna omejitev:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Brez strani" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Velikost strani:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Poizvedovalni strežnik" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "Razločevalno ime:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Filter:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Brez" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "Varnost:" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anonimno" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Preprosto" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "Preverjanje pristnosti:" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "Mehanizem SASL:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "Preveri strežnik" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "Poizvedba LDAP" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Neznana napaka med povezovanjem s %1" + +#~ msgid "LDAP Servers" +#~ msgstr "Strežniki LDAP" + +#~ msgid "Attribute" +#~ msgstr "Atribut" + +#~ msgid "Value" +#~ msgstr "Vrednost" + +#~ msgid "Distinguished Name" +#~ msgstr "Razločevalno ime" + +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "Podpora za SASL ni na voljo. Pritožite se izdelovalcem paketov za vašo " +#~ "distribucijo ali znova prevedite izvorno kodo libkldap s knjižnicami " +#~ "odjemalca Cyrus-SASL (ali združljivimi)." + +#~ msgid "LDAP Operations error" +#~ msgstr "Napaka opravil LDAP" diff --git a/po/sq/libkldap5.po b/po/sq/libkldap5.po new file mode 100644 index 0000000..08c3fb3 --- /dev/null +++ b/po/sq/libkldap5.po @@ -0,0 +1,325 @@ +# Albanian translation for kdepimlibs +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the kdepimlibs package. +# FIRST AUTHOR , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: kdepimlibs\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2010-05-30 13:28+0000\n" +"Last-Translator: Launchpad Translations Administrators \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Launchpad-Export-Date: 2011-04-21 23:53+0000\n" +"X-Generator: Launchpad (build 12883)\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "Nuk ka mbështetje LDAP..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "" + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "" + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "" +msgstr[1] "" + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "" + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "" + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "" + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "" + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "" + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "" + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "" + +#: widgets/addhostdialog.cpp:64 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Add Host" +msgstr "Hosti:" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Përdoruesi:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "Bind DN:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Lidhja:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Fjalëkalimi:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Hosti:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Porti:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "Versioni LDAP:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "I Parazgjedhur" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Kufiri i Përmasës:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " sek" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "I Parazgjedhur" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Kufiri Kohor:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Pa faqosje" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Madhësia e faqes:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Query Server" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Filtri:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Jo" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, fuzzy, kde-format +#| msgid "Security" +msgid "Security:" +msgstr "Siguria" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anonim" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "I thjeshtë" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, fuzzy, kde-format +#| msgid "Authentication" +msgid "Authentication:" +msgstr "Identifikimi" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "Mekanizmi SASL:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:309 +#, fuzzy, kde-format +#| msgid "LDAP Query" +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "LDAP Query" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Servers" +#~ msgstr "Versioni LDAP:" + +#~ msgid "Attribute" +#~ msgstr "Veçoritë" + +#~ msgid "Value" +#~ msgstr "Vlera" + +#~ msgid "Distinguished Name" +#~ msgstr "Emër i Dalluar" + +#~ msgid "LDAP Operations error" +#~ msgstr "Gabim në veprimet e LDAP" diff --git a/po/sr/docs/kioslave5/ldap/index.docbook b/po/sr/docs/kioslave5/ldap/index.docbook new file mode 100644 index 0000000..bc48617 --- /dev/null +++ b/po/sr/docs/kioslave5/ldap/index.docbook @@ -0,0 +1,56 @@ + + + +]> + +
    +ЛДАП + + +Лори Вотс &Lauri.Watts.mail; +ДраганПантелић
    falcon-10@gmx.de
    превод
    +
    +
    + +ЛДАП је лагани протокол за приступ именицима. Обезбеђује приступ Икс500 именицима и самосталним ЛДАП серверима. + +У/И захват ЛДАП‑а можете користити овако: + +ldap://domacin:port/ou=People,o=where,c=de??sub за упит подстабла + +или ldap://domacin:port/cn=MM,ou=People,o=where,c=de??base за потпуну грану. + +
    diff --git a/po/sr/kio_ldap.po b/po/sr/kio_ldap.po new file mode 100644 index 0000000..24e35e3 --- /dev/null +++ b/po/sr/kio_ldap.po @@ -0,0 +1,69 @@ +# Translation of kio_ldap.po to Serbian. +# Chusslove Illich , 2004, 2005, 2007. +# Dalibor Djuric , 2009. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2019-08-06 03:04+0200\n" +"PO-Revision-Date: 2009-12-14 00:24+0100\n" +"Last-Translator: Dalibor Djuric \n" +"Language-Team: Serbian \n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" +"X-Environment: kde\n" + +#: kio_ldap.cpp:95 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Додатни подаци: " + +#: kio_ldap.cpp:177 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"ЛДАП сервер јавља грешку: %1 %2\n" +"УРЛ ЛДАП‑а: %3" + +#: kio_ldap.cpp:324 +#, kde-format +msgid "LDAP Login" +msgstr "ЛДАП пријава" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "site:" +msgstr "сајт:" + +# >! authorization -> authentication +#: kio_ldap.cpp:359 +#, kde-format +msgid "Invalid authorization information." +msgstr "Неисправни подаци за аутентификацију." + +#: kio_ldap.cpp:366 +#, kde-format +msgid "LDAP connection canceled." +msgstr "ЛДАП веза отказана." + +#: kio_ldap.cpp:626 kio_ldap.cpp:698 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Неуспело рашчлањивање ЛДИФ‑а." + +#: kio_ldap.cpp:712 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Неисправан ЛДИФ у реду %1." diff --git a/po/sr/libkldap5.po b/po/sr/libkldap5.po new file mode 100644 index 0000000..5b34506 --- /dev/null +++ b/po/sr/libkldap5.po @@ -0,0 +1,325 @@ +# Translation of libkldap5.po into Serbian. +# Chusslove Illich , 2007, 2009, 2010, 2014, 2017. +# Dalibor Djuric , 2009. +msgid "" +msgstr "" +"Project-Id-Version: libkldap5\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2020-06-13 02:15+0200\n" +"PO-Revision-Date: 2017-10-06 17:14+0200\n" +"Last-Translator: Chusslove Illich \n" +"Language-Team: Serbian \n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" +"X-Environment: kde\n" + +#: core/ldapconnection.cpp:140 +#, kde-format +msgid "No LDAP Support..." +msgstr "Нема подршке за ЛДАП..." + +#: core/ldapconnection.cpp:255 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Грешка у фази припремања везе." + +#: core/ldapconnection.cpp:262 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Не могу да поставим верзију протокола на %1." + +#: core/ldapconnection.cpp:273 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Не могу да поставим прековреме на %1 секунду." +msgstr[1] "Не могу да поставим прековреме на %1 секунде." +msgstr[2] "Не могу да поставим прековреме на %1 секунди." +msgstr[3] "Не могу да поставим прековреме на %1 секунду." + +#: core/ldapconnection.cpp:287 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "" + +#: core/ldapconnection.cpp:312 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:317 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:326 +#, fuzzy, kde-format +#| msgid "Cannot initialize the SASL client." +msgid "Could not initialize new TLS context." +msgstr "Не могу да припремим САСЛ клијент." + +#: core/ldapconnection.cpp:343 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "Нема подршке за ТЛС у клијентским библиотекама ЛДАП клијента." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot set size limit." +msgstr "Не могу да поставим ограничење величине." + +#: core/ldapconnection.cpp:363 +#, kde-format +msgid "Cannot set time limit." +msgstr "Не могу да поставим ограничење времена." + +#: core/ldapconnection.cpp:372 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Не могу да припремим САСЛ клијент." + +#: core/ldapconnection.cpp:449 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"Подршка за ЛДАП није уграђена. Изградите поново „libkldap“ са клијентским " +"библиотекама ОпенЛДАП‑а (или сагласним), или се пожалите пакетарима своје " +"дистрибуције." + +#: core/ldapsearch.cpp:240 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "Не могу да приступим серверу. Подесите га поново." + +#: widgets/addhostdialog.cpp:77 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Add Host" +msgstr "Домаћин:" + +#: widgets/ldapclientsearchconfig.cpp:121 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" + +#: widgets/ldapclientsearchconfig.cpp:122 +#, kde-format +msgid "Store clear text password in KWallet" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:144 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:160 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:160 +#, kde-format +msgid "Remove Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:296 +#, fuzzy, kde-format +#| msgid "LDAP version:" +msgid "LDAP Servers" +msgstr "Верзија ЛДАП‑а:" + +#: widgets/ldapconfigurewidget.cpp:303 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:337 +#, kde-format +msgid "&Add Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:340 +#, kde-format +msgid "&Edit Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:344 +#, kde-format +msgid "&Remove Host" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "User:" +msgstr "Корисник:" + +#: widgets/ldapconfigwidget.cpp:122 +#, kde-format +msgid "Bind DN:" +msgstr "ДН свезе:" + +#: widgets/ldapconfigwidget.cpp:132 +#, kde-format +msgid "Realm:" +msgstr "Царство:" + +#: widgets/ldapconfigwidget.cpp:142 +#, kde-format +msgid "Password:" +msgstr "Лозинка:" + +#: widgets/ldapconfigwidget.cpp:152 +#, kde-format +msgid "Host:" +msgstr "Домаћин:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "Port:" +msgstr "Порт:" + +#: widgets/ldapconfigwidget.cpp:176 +#, kde-format +msgid "LDAP version:" +msgstr "Верзија ЛДАП‑а:" + +#: widgets/ldapconfigwidget.cpp:191 +#, kde-format +msgid "Size limit:" +msgstr "Ограничење величине:" + +# >> @item:inlistbox ... +#: widgets/ldapconfigwidget.cpp:197 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "подразумевано" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgid "Time limit:" +msgstr "Ограничење времена:" + +#: widgets/ldapconfigwidget.cpp:210 +#, kde-format +msgid " sec" +msgstr " сек." + +# >> @item:inlistbox ... +#: widgets/ldapconfigwidget.cpp:211 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "подразумевано" + +#: widgets/ldapconfigwidget.cpp:220 +#, kde-format +msgid "Page size:" +msgstr "Величина странице:" + +# >> @item:inlistbox Page size +#: widgets/ldapconfigwidget.cpp:226 +#, kde-format +msgid "No paging" +msgstr "без страничења" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "ДН:" + +# >> @action:button Send query to the server +#: widgets/ldapconfigwidget.cpp:240 widgets/ldapconfigwidget.cpp:326 +#, kde-format +msgid "Query Server" +msgstr "Упитај сервер" + +#: widgets/ldapconfigwidget.cpp:254 +#, kde-format +msgid "Filter:" +msgstr "Филтер:" + +# >> @title:group +#: widgets/ldapconfigwidget.cpp:264 +#, kde-format +msgid "Security" +msgstr "Безбедност" + +#: widgets/ldapconfigwidget.cpp:267 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "никаква" + +#: widgets/ldapconfigwidget.cpp:270 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "ТЛС" + +#: widgets/ldapconfigwidget.cpp:273 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "ССЛ" + +# >> @title:group +#: widgets/ldapconfigwidget.cpp:294 +#, kde-format +msgid "Authentication" +msgstr "Аутентификација" + +#: widgets/ldapconfigwidget.cpp:301 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "анонимна" + +#: widgets/ldapconfigwidget.cpp:305 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "једноставна" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "САСЛ" + +#: widgets/ldapconfigwidget.cpp:315 +#, kde-format +msgid "SASL mechanism:" +msgstr "Механизам САСЛ‑а:" + +# >> @title:window +#: widgets/ldapconfigwidget.cpp:377 +#, kde-format +msgid "Check server" +msgstr "Провера сервера" + +# >> @title:window +#: widgets/ldapconfigwidget.cpp:383 +#, fuzzy, kde-format +#| msgid "LDAP Query" +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "ЛДАП упит" + +#: widgets/ldapconfigwidget.cpp:397 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Непозната грешка при повезивању са %1" diff --git a/po/sr@ijekavian/kio_ldap.po b/po/sr@ijekavian/kio_ldap.po new file mode 100644 index 0000000..838f688 --- /dev/null +++ b/po/sr@ijekavian/kio_ldap.po @@ -0,0 +1,69 @@ +# Translation of kio_ldap.po to Serbian. +# Chusslove Illich , 2004, 2005, 2007. +# Dalibor Djuric , 2009. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2019-08-06 03:04+0200\n" +"PO-Revision-Date: 2009-12-14 00:24+0100\n" +"Last-Translator: Dalibor Djuric \n" +"Language-Team: Serbian \n" +"Language: sr@ijekavian\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" +"X-Environment: kde\n" + +#: kio_ldap.cpp:95 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Додатни подаци: " + +#: kio_ldap.cpp:177 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"ЛДАП сервер јавља грешку: %1 %2\n" +"УРЛ ЛДАП‑а: %3" + +#: kio_ldap.cpp:324 +#, kde-format +msgid "LDAP Login" +msgstr "ЛДАП пријава" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "site:" +msgstr "сајт:" + +# >! authorization -> authentication +#: kio_ldap.cpp:359 +#, kde-format +msgid "Invalid authorization information." +msgstr "Неисправни подаци за аутентификацију." + +#: kio_ldap.cpp:366 +#, kde-format +msgid "LDAP connection canceled." +msgstr "ЛДАП веза отказана." + +#: kio_ldap.cpp:626 kio_ldap.cpp:698 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Неуспјело рашчлањивање ЛДИФ‑а." + +#: kio_ldap.cpp:712 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Неисправан ЛДИФ у реду %1." diff --git a/po/sr@ijekavian/libkldap5.po b/po/sr@ijekavian/libkldap5.po new file mode 100644 index 0000000..6d67c15 --- /dev/null +++ b/po/sr@ijekavian/libkldap5.po @@ -0,0 +1,325 @@ +# Translation of libkldap5.po into Serbian. +# Chusslove Illich , 2007, 2009, 2010, 2014, 2017. +# Dalibor Djuric , 2009. +msgid "" +msgstr "" +"Project-Id-Version: libkldap5\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2020-06-13 02:15+0200\n" +"PO-Revision-Date: 2017-10-06 17:14+0200\n" +"Last-Translator: Chusslove Illich \n" +"Language-Team: Serbian \n" +"Language: sr@ijekavian\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" +"X-Environment: kde\n" + +#: core/ldapconnection.cpp:140 +#, kde-format +msgid "No LDAP Support..." +msgstr "Нема подршке за ЛДАП..." + +#: core/ldapconnection.cpp:255 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Грешка у фази припремања везе." + +#: core/ldapconnection.cpp:262 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Не могу да поставим верзију протокола на %1." + +#: core/ldapconnection.cpp:273 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Не могу да поставим прековријеме на %1 секунду." +msgstr[1] "Не могу да поставим прековријеме на %1 секунде." +msgstr[2] "Не могу да поставим прековријеме на %1 секунди." +msgstr[3] "Не могу да поставим прековријеме на %1 секунду." + +#: core/ldapconnection.cpp:287 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "" + +#: core/ldapconnection.cpp:312 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:317 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:326 +#, fuzzy, kde-format +#| msgid "Cannot initialize the SASL client." +msgid "Could not initialize new TLS context." +msgstr "Не могу да припремим САСЛ клијент." + +#: core/ldapconnection.cpp:343 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "Нема подршке за ТЛС у клијентским библиотекама ЛДАП клијента." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot set size limit." +msgstr "Не могу да поставим ограничење величине." + +#: core/ldapconnection.cpp:363 +#, kde-format +msgid "Cannot set time limit." +msgstr "Не могу да поставим ограничење времена." + +#: core/ldapconnection.cpp:372 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Не могу да припремим САСЛ клијент." + +#: core/ldapconnection.cpp:449 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"Подршка за ЛДАП није уграђена. Изградите поново „libkldap“ са клијентским " +"библиотекама ОпенЛДАП‑а (или сагласним), или се пожалите пакетарима своје " +"дистрибуције." + +#: core/ldapsearch.cpp:240 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "Не могу да приступим серверу. Подесите га поново." + +#: widgets/addhostdialog.cpp:77 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Add Host" +msgstr "Домаћин:" + +#: widgets/ldapclientsearchconfig.cpp:121 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" + +#: widgets/ldapclientsearchconfig.cpp:122 +#, kde-format +msgid "Store clear text password in KWallet" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:144 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:160 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:160 +#, kde-format +msgid "Remove Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:296 +#, fuzzy, kde-format +#| msgid "LDAP version:" +msgid "LDAP Servers" +msgstr "Верзија ЛДАП‑а:" + +#: widgets/ldapconfigurewidget.cpp:303 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:337 +#, kde-format +msgid "&Add Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:340 +#, kde-format +msgid "&Edit Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:344 +#, kde-format +msgid "&Remove Host" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "User:" +msgstr "Корисник:" + +#: widgets/ldapconfigwidget.cpp:122 +#, kde-format +msgid "Bind DN:" +msgstr "ДН свезе:" + +#: widgets/ldapconfigwidget.cpp:132 +#, kde-format +msgid "Realm:" +msgstr "Царство:" + +#: widgets/ldapconfigwidget.cpp:142 +#, kde-format +msgid "Password:" +msgstr "Лозинка:" + +#: widgets/ldapconfigwidget.cpp:152 +#, kde-format +msgid "Host:" +msgstr "Домаћин:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "Port:" +msgstr "Порт:" + +#: widgets/ldapconfigwidget.cpp:176 +#, kde-format +msgid "LDAP version:" +msgstr "Верзија ЛДАП‑а:" + +#: widgets/ldapconfigwidget.cpp:191 +#, kde-format +msgid "Size limit:" +msgstr "Ограничење величине:" + +# >> @item:inlistbox ... +#: widgets/ldapconfigwidget.cpp:197 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "подразумијевано" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgid "Time limit:" +msgstr "Ограничење времена:" + +#: widgets/ldapconfigwidget.cpp:210 +#, kde-format +msgid " sec" +msgstr " сек." + +# >> @item:inlistbox ... +#: widgets/ldapconfigwidget.cpp:211 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "подразумијевано" + +#: widgets/ldapconfigwidget.cpp:220 +#, kde-format +msgid "Page size:" +msgstr "Величина странице:" + +# >> @item:inlistbox Page size +#: widgets/ldapconfigwidget.cpp:226 +#, kde-format +msgid "No paging" +msgstr "без страничења" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "ДН:" + +# >> @action:button Send query to the server +#: widgets/ldapconfigwidget.cpp:240 widgets/ldapconfigwidget.cpp:326 +#, kde-format +msgid "Query Server" +msgstr "Упитај сервер" + +#: widgets/ldapconfigwidget.cpp:254 +#, kde-format +msgid "Filter:" +msgstr "Филтер:" + +# >> @title:group +#: widgets/ldapconfigwidget.cpp:264 +#, kde-format +msgid "Security" +msgstr "Безбједност" + +#: widgets/ldapconfigwidget.cpp:267 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "никаква" + +#: widgets/ldapconfigwidget.cpp:270 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "ТЛС" + +#: widgets/ldapconfigwidget.cpp:273 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "ССЛ" + +# >> @title:group +#: widgets/ldapconfigwidget.cpp:294 +#, kde-format +msgid "Authentication" +msgstr "Аутентификација" + +#: widgets/ldapconfigwidget.cpp:301 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "анонимна" + +#: widgets/ldapconfigwidget.cpp:305 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "једноставна" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "САСЛ" + +#: widgets/ldapconfigwidget.cpp:315 +#, kde-format +msgid "SASL mechanism:" +msgstr "Механизам САСЛ‑а:" + +# >> @title:window +#: widgets/ldapconfigwidget.cpp:377 +#, kde-format +msgid "Check server" +msgstr "Провера сервера" + +# >> @title:window +#: widgets/ldapconfigwidget.cpp:383 +#, fuzzy, kde-format +#| msgid "LDAP Query" +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "ЛДАП упит" + +#: widgets/ldapconfigwidget.cpp:397 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Непозната грешка при повезивању са %1" diff --git a/po/sr@ijekavianlatin/kio_ldap.po b/po/sr@ijekavianlatin/kio_ldap.po new file mode 100644 index 0000000..d6dd0c9 --- /dev/null +++ b/po/sr@ijekavianlatin/kio_ldap.po @@ -0,0 +1,69 @@ +# Translation of kio_ldap.po to Serbian. +# Chusslove Illich , 2004, 2005, 2007. +# Dalibor Djuric , 2009. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2019-08-06 03:04+0200\n" +"PO-Revision-Date: 2009-12-14 00:24+0100\n" +"Last-Translator: Dalibor Djuric \n" +"Language-Team: Serbian \n" +"Language: sr@ijekavianlatin\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" +"X-Environment: kde\n" + +#: kio_ldap.cpp:95 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Dodatni podaci: " + +#: kio_ldap.cpp:177 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP server javlja grešku: %1 %2\n" +"URL LDAP‑a: %3" + +#: kio_ldap.cpp:324 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP prijava" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "site:" +msgstr "sajt:" + +# >! authorization -> authentication +#: kio_ldap.cpp:359 +#, kde-format +msgid "Invalid authorization information." +msgstr "Neispravni podaci za autentifikaciju." + +#: kio_ldap.cpp:366 +#, kde-format +msgid "LDAP connection canceled." +msgstr "LDAP veza otkazana." + +#: kio_ldap.cpp:626 kio_ldap.cpp:698 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Neuspjelo raščlanjivanje LDIF‑a." + +#: kio_ldap.cpp:712 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Neispravan LDIF u redu %1." diff --git a/po/sr@ijekavianlatin/libkldap5.po b/po/sr@ijekavianlatin/libkldap5.po new file mode 100644 index 0000000..04b3011 --- /dev/null +++ b/po/sr@ijekavianlatin/libkldap5.po @@ -0,0 +1,325 @@ +# Translation of libkldap5.po into Serbian. +# Chusslove Illich , 2007, 2009, 2010, 2014, 2017. +# Dalibor Djuric , 2009. +msgid "" +msgstr "" +"Project-Id-Version: libkldap5\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2020-06-13 02:15+0200\n" +"PO-Revision-Date: 2017-10-06 17:14+0200\n" +"Last-Translator: Chusslove Illich \n" +"Language-Team: Serbian \n" +"Language: sr@ijekavianlatin\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" +"X-Environment: kde\n" + +#: core/ldapconnection.cpp:140 +#, kde-format +msgid "No LDAP Support..." +msgstr "Nema podrške za LDAP..." + +#: core/ldapconnection.cpp:255 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Greška u fazi pripremanja veze." + +#: core/ldapconnection.cpp:262 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Ne mogu da postavim verziju protokola na %1." + +#: core/ldapconnection.cpp:273 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Ne mogu da postavim prekovrijeme na %1 sekundu." +msgstr[1] "Ne mogu da postavim prekovrijeme na %1 sekunde." +msgstr[2] "Ne mogu da postavim prekovrijeme na %1 sekundi." +msgstr[3] "Ne mogu da postavim prekovrijeme na %1 sekundu." + +#: core/ldapconnection.cpp:287 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "" + +#: core/ldapconnection.cpp:312 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:317 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:326 +#, fuzzy, kde-format +#| msgid "Cannot initialize the SASL client." +msgid "Could not initialize new TLS context." +msgstr "Ne mogu da pripremim SASL klijent." + +#: core/ldapconnection.cpp:343 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "Nema podrške za TLS u klijentskim bibliotekama LDAP klijenta." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot set size limit." +msgstr "Ne mogu da postavim ograničenje veličine." + +#: core/ldapconnection.cpp:363 +#, kde-format +msgid "Cannot set time limit." +msgstr "Ne mogu da postavim ograničenje vremena." + +#: core/ldapconnection.cpp:372 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Ne mogu da pripremim SASL klijent." + +#: core/ldapconnection.cpp:449 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"Podrška za LDAP nije ugrađena. Izgradite ponovo „libkldap“ sa klijentskim " +"bibliotekama OpenLDAP‑a (ili saglasnim), ili se požalite paketarima svoje " +"distribucije." + +#: core/ldapsearch.cpp:240 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "Ne mogu da pristupim serveru. Podesite ga ponovo." + +#: widgets/addhostdialog.cpp:77 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Add Host" +msgstr "Domaćin:" + +#: widgets/ldapclientsearchconfig.cpp:121 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" + +#: widgets/ldapclientsearchconfig.cpp:122 +#, kde-format +msgid "Store clear text password in KWallet" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:144 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:160 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:160 +#, kde-format +msgid "Remove Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:296 +#, fuzzy, kde-format +#| msgid "LDAP version:" +msgid "LDAP Servers" +msgstr "Verzija LDAP‑a:" + +#: widgets/ldapconfigurewidget.cpp:303 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:337 +#, kde-format +msgid "&Add Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:340 +#, kde-format +msgid "&Edit Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:344 +#, kde-format +msgid "&Remove Host" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "User:" +msgstr "Korisnik:" + +#: widgets/ldapconfigwidget.cpp:122 +#, kde-format +msgid "Bind DN:" +msgstr "DN sveze:" + +#: widgets/ldapconfigwidget.cpp:132 +#, kde-format +msgid "Realm:" +msgstr "Carstvo:" + +#: widgets/ldapconfigwidget.cpp:142 +#, kde-format +msgid "Password:" +msgstr "Lozinka:" + +#: widgets/ldapconfigwidget.cpp:152 +#, kde-format +msgid "Host:" +msgstr "Domaćin:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "Port:" +msgstr "Port:" + +#: widgets/ldapconfigwidget.cpp:176 +#, kde-format +msgid "LDAP version:" +msgstr "Verzija LDAP‑a:" + +#: widgets/ldapconfigwidget.cpp:191 +#, kde-format +msgid "Size limit:" +msgstr "Ograničenje veličine:" + +# >> @item:inlistbox ... +#: widgets/ldapconfigwidget.cpp:197 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "podrazumijevano" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgid "Time limit:" +msgstr "Ograničenje vremena:" + +#: widgets/ldapconfigwidget.cpp:210 +#, kde-format +msgid " sec" +msgstr " sek." + +# >> @item:inlistbox ... +#: widgets/ldapconfigwidget.cpp:211 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "podrazumijevano" + +#: widgets/ldapconfigwidget.cpp:220 +#, kde-format +msgid "Page size:" +msgstr "Veličina stranice:" + +# >> @item:inlistbox Page size +#: widgets/ldapconfigwidget.cpp:226 +#, kde-format +msgid "No paging" +msgstr "bez straničenja" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +# >> @action:button Send query to the server +#: widgets/ldapconfigwidget.cpp:240 widgets/ldapconfigwidget.cpp:326 +#, kde-format +msgid "Query Server" +msgstr "Upitaj server" + +#: widgets/ldapconfigwidget.cpp:254 +#, kde-format +msgid "Filter:" +msgstr "Filter:" + +# >> @title:group +#: widgets/ldapconfigwidget.cpp:264 +#, kde-format +msgid "Security" +msgstr "Bezbjednost" + +#: widgets/ldapconfigwidget.cpp:267 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "nikakva" + +#: widgets/ldapconfigwidget.cpp:270 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:273 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +# >> @title:group +#: widgets/ldapconfigwidget.cpp:294 +#, kde-format +msgid "Authentication" +msgstr "Autentifikacija" + +#: widgets/ldapconfigwidget.cpp:301 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "anonimna" + +#: widgets/ldapconfigwidget.cpp:305 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "jednostavna" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:315 +#, kde-format +msgid "SASL mechanism:" +msgstr "Mehanizam SASL‑a:" + +# >> @title:window +#: widgets/ldapconfigwidget.cpp:377 +#, kde-format +msgid "Check server" +msgstr "Provera servera" + +# >> @title:window +#: widgets/ldapconfigwidget.cpp:383 +#, fuzzy, kde-format +#| msgid "LDAP Query" +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "LDAP upit" + +#: widgets/ldapconfigwidget.cpp:397 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Nepoznata greška pri povezivanju sa %1" diff --git a/po/sr@latin/docs/kioslave5/ldap/index.docbook b/po/sr@latin/docs/kioslave5/ldap/index.docbook new file mode 100644 index 0000000..68536d9 --- /dev/null +++ b/po/sr@latin/docs/kioslave5/ldap/index.docbook @@ -0,0 +1,56 @@ + + + +]> + +
    +LDAP + + +Lori Vots &Lauri.Watts.mail; +DraganPantelić
    falcon-10@gmx.de
    prevod
    +
    +
    + +LDAP je lagani protokol za pristup imenicima. Obezbeđuje pristup X500 imenicima i samostalnim LDAP serverima. + +U/I zahvat LDAP‑a možete koristiti ovako: + +ldap://domacin:port/ou=People,o=where,c=de??sub za upit podstabla + +ili ldap://domacin:port/cn=MM,ou=People,o=where,c=de??base za potpunu granu. + +
    diff --git a/po/sr@latin/kio_ldap.po b/po/sr@latin/kio_ldap.po new file mode 100644 index 0000000..3d2e63b --- /dev/null +++ b/po/sr@latin/kio_ldap.po @@ -0,0 +1,69 @@ +# Translation of kio_ldap.po to Serbian. +# Chusslove Illich , 2004, 2005, 2007. +# Dalibor Djuric , 2009. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2019-08-06 03:04+0200\n" +"PO-Revision-Date: 2009-12-14 00:24+0100\n" +"Last-Translator: Dalibor Djuric \n" +"Language-Team: Serbian \n" +"Language: sr@latin\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" +"X-Environment: kde\n" + +#: kio_ldap.cpp:95 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Dodatni podaci: " + +#: kio_ldap.cpp:177 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP server javlja grešku: %1 %2\n" +"URL LDAP‑a: %3" + +#: kio_ldap.cpp:324 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP prijava" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "site:" +msgstr "sajt:" + +# >! authorization -> authentication +#: kio_ldap.cpp:359 +#, kde-format +msgid "Invalid authorization information." +msgstr "Neispravni podaci za autentifikaciju." + +#: kio_ldap.cpp:366 +#, kde-format +msgid "LDAP connection canceled." +msgstr "LDAP veza otkazana." + +#: kio_ldap.cpp:626 kio_ldap.cpp:698 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Neuspelo raščlanjivanje LDIF‑a." + +#: kio_ldap.cpp:712 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Neispravan LDIF u redu %1." diff --git a/po/sr@latin/libkldap5.po b/po/sr@latin/libkldap5.po new file mode 100644 index 0000000..5a77e83 --- /dev/null +++ b/po/sr@latin/libkldap5.po @@ -0,0 +1,325 @@ +# Translation of libkldap5.po into Serbian. +# Chusslove Illich , 2007, 2009, 2010, 2014, 2017. +# Dalibor Djuric , 2009. +msgid "" +msgstr "" +"Project-Id-Version: libkldap5\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2020-06-13 02:15+0200\n" +"PO-Revision-Date: 2017-10-06 17:14+0200\n" +"Last-Translator: Chusslove Illich \n" +"Language-Team: Serbian \n" +"Language: sr@latin\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" +"X-Environment: kde\n" + +#: core/ldapconnection.cpp:140 +#, kde-format +msgid "No LDAP Support..." +msgstr "Nema podrške za LDAP..." + +#: core/ldapconnection.cpp:255 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Greška u fazi pripremanja veze." + +#: core/ldapconnection.cpp:262 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Ne mogu da postavim verziju protokola na %1." + +#: core/ldapconnection.cpp:273 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Ne mogu da postavim prekovreme na %1 sekundu." +msgstr[1] "Ne mogu da postavim prekovreme na %1 sekunde." +msgstr[2] "Ne mogu da postavim prekovreme na %1 sekundi." +msgstr[3] "Ne mogu da postavim prekovreme na %1 sekundu." + +#: core/ldapconnection.cpp:287 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "" + +#: core/ldapconnection.cpp:312 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:317 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:326 +#, fuzzy, kde-format +#| msgid "Cannot initialize the SASL client." +msgid "Could not initialize new TLS context." +msgstr "Ne mogu da pripremim SASL klijent." + +#: core/ldapconnection.cpp:343 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "Nema podrške za TLS u klijentskim bibliotekama LDAP klijenta." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot set size limit." +msgstr "Ne mogu da postavim ograničenje veličine." + +#: core/ldapconnection.cpp:363 +#, kde-format +msgid "Cannot set time limit." +msgstr "Ne mogu da postavim ograničenje vremena." + +#: core/ldapconnection.cpp:372 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Ne mogu da pripremim SASL klijent." + +#: core/ldapconnection.cpp:449 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"Podrška za LDAP nije ugrađena. Izgradite ponovo „libkldap“ sa klijentskim " +"bibliotekama OpenLDAP‑a (ili saglasnim), ili se požalite paketarima svoje " +"distribucije." + +#: core/ldapsearch.cpp:240 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "Ne mogu da pristupim serveru. Podesite ga ponovo." + +#: widgets/addhostdialog.cpp:77 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Add Host" +msgstr "Domaćin:" + +#: widgets/ldapclientsearchconfig.cpp:121 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" + +#: widgets/ldapclientsearchconfig.cpp:122 +#, kde-format +msgid "Store clear text password in KWallet" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:144 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:160 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:160 +#, kde-format +msgid "Remove Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:296 +#, fuzzy, kde-format +#| msgid "LDAP version:" +msgid "LDAP Servers" +msgstr "Verzija LDAP‑a:" + +#: widgets/ldapconfigurewidget.cpp:303 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:337 +#, kde-format +msgid "&Add Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:340 +#, kde-format +msgid "&Edit Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:344 +#, kde-format +msgid "&Remove Host" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "User:" +msgstr "Korisnik:" + +#: widgets/ldapconfigwidget.cpp:122 +#, kde-format +msgid "Bind DN:" +msgstr "DN sveze:" + +#: widgets/ldapconfigwidget.cpp:132 +#, kde-format +msgid "Realm:" +msgstr "Carstvo:" + +#: widgets/ldapconfigwidget.cpp:142 +#, kde-format +msgid "Password:" +msgstr "Lozinka:" + +#: widgets/ldapconfigwidget.cpp:152 +#, kde-format +msgid "Host:" +msgstr "Domaćin:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "Port:" +msgstr "Port:" + +#: widgets/ldapconfigwidget.cpp:176 +#, kde-format +msgid "LDAP version:" +msgstr "Verzija LDAP‑a:" + +#: widgets/ldapconfigwidget.cpp:191 +#, kde-format +msgid "Size limit:" +msgstr "Ograničenje veličine:" + +# >> @item:inlistbox ... +#: widgets/ldapconfigwidget.cpp:197 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "podrazumevano" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgid "Time limit:" +msgstr "Ograničenje vremena:" + +#: widgets/ldapconfigwidget.cpp:210 +#, kde-format +msgid " sec" +msgstr " sek." + +# >> @item:inlistbox ... +#: widgets/ldapconfigwidget.cpp:211 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "podrazumevano" + +#: widgets/ldapconfigwidget.cpp:220 +#, kde-format +msgid "Page size:" +msgstr "Veličina stranice:" + +# >> @item:inlistbox Page size +#: widgets/ldapconfigwidget.cpp:226 +#, kde-format +msgid "No paging" +msgstr "bez straničenja" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +# >> @action:button Send query to the server +#: widgets/ldapconfigwidget.cpp:240 widgets/ldapconfigwidget.cpp:326 +#, kde-format +msgid "Query Server" +msgstr "Upitaj server" + +#: widgets/ldapconfigwidget.cpp:254 +#, kde-format +msgid "Filter:" +msgstr "Filter:" + +# >> @title:group +#: widgets/ldapconfigwidget.cpp:264 +#, kde-format +msgid "Security" +msgstr "Bezbednost" + +#: widgets/ldapconfigwidget.cpp:267 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "nikakva" + +#: widgets/ldapconfigwidget.cpp:270 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:273 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +# >> @title:group +#: widgets/ldapconfigwidget.cpp:294 +#, kde-format +msgid "Authentication" +msgstr "Autentifikacija" + +#: widgets/ldapconfigwidget.cpp:301 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "anonimna" + +#: widgets/ldapconfigwidget.cpp:305 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "jednostavna" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:315 +#, kde-format +msgid "SASL mechanism:" +msgstr "Mehanizam SASL‑a:" + +# >> @title:window +#: widgets/ldapconfigwidget.cpp:377 +#, kde-format +msgid "Check server" +msgstr "Provera servera" + +# >> @title:window +#: widgets/ldapconfigwidget.cpp:383 +#, fuzzy, kde-format +#| msgid "LDAP Query" +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "LDAP upit" + +#: widgets/ldapconfigwidget.cpp:397 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Nepoznata greška pri povezivanju sa %1" diff --git a/po/sv/docs/kioslave5/ldap/index.docbook b/po/sv/docs/kioslave5/ldap/index.docbook new file mode 100644 index 0000000..9f1293c --- /dev/null +++ b/po/sv/docs/kioslave5/ldap/index.docbook @@ -0,0 +1,54 @@ + + + +]> + +
    +ldap + + +&Lauri.Watts; &Lauri.Watts.mail; + Stefan Asserhäll
    stefan.asserhall@bredband.net
    Översättare
    +
    +
    + +ldap är det lättviktiga katalogåtkomstprotokollet. Det ger möjlighet att komma åt en X.500-katalog, eller en ensam LDAP-server. + +Du kan använda I/O-slaven ldap som följer: + +ldap://värddator:port/ou=People,o=where,c=de??sub får en delträdsförfrågan + +eller ldap://värddator:port/cn=MM,ou=People,o=where,c=de??bas får en fullständig gren. + +
    diff --git a/po/sv/kio_ldap.po b/po/sv/kio_ldap.po new file mode 100644 index 0000000..5c192bf --- /dev/null +++ b/po/sv/kio_ldap.po @@ -0,0 +1,66 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Stefan Asserhäll , 2016. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2016-04-04 20:11+0100\n" +"Last-Translator: Stefan Asserhäll \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Ytterligare information: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP-servern returnerade följande fel: %1 %2\n" +"LDAP-webbadressen var: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP-inloggning" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "plats:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Felaktigt information för behörighetskontroll." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "LDAP-anslutning avbruten." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "LDIF-tolken misslyckades." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Felaktig LDIF-fil på rad %1." diff --git a/po/sv/libkldap5.po b/po/sv/libkldap5.po new file mode 100644 index 0000000..f03312f --- /dev/null +++ b/po/sv/libkldap5.po @@ -0,0 +1,497 @@ +# translation of libkldap.po to Swedish +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Stefan Asserhäll , 2007, 2008, 2009, 2010, 2014, 2017, 2018, 2019, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2021-07-28 20:15+0200\n" +"Last-Translator: Stefan Asserhäll \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 20.08.1\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "Inget stöd för LDAP..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Ett fel uppstod under initieringsfasen vid anslutning." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Kan inte ställa in protokollversion till %1." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Kan inte ställa in tidsgräns till %1 sekund." +msgstr[1] "Kan inte ställa in tidsgräns till %1 sekunder." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "Kunde inte ställa in certifikatutfärdarens certifikatfil." + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "Ogiltigt certifikatläge för att kräva TLS." + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "Kunde inte ställa in certifikatläge för att kräva TLS." + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "Kan inte initiera nytt TLS-sammanhang." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "TLS-stöd är inte tillgängligt i LDAP-klientbiblioteken." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Kan inte ställa in storleksgräns." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Kan inte ställa in tidsgräns." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Kan inte initiera SASL-klienten." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"Stöd för LDAP är ingår inte. Kompilera om libkldap med klientbiblioteket " +"OpenLDAP (eller motsvarande), eller klaga hos din distributions " +"paketansvariga." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "Kan inte komma åt servern. Ändra dess inställning." + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "Lägg till värddator" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "LDAP-lösenordet lagras som vanlig text. Vill du lagra det i plånboken?" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "Lagra klartextlösenord i plånboken" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "Redigera värddator" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "Vill du ta bort inställningen för värddatorn \"%1\"?" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "Ta bort värddator" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "Markera alla servrar som ska användas:" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "&Lägg till värddator..." + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "&Redigera värddator..." + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "Ta bo&rt värddator" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Användare:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "Särskiljande bindningsnamn:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Rike:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Lösenord:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Värddator:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Port:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "LDAP-version:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Förval" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Storleksgräns:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " sek" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Förval" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Tidsgräns:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Ingen sidhantering" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Sidstorlek:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Fråga server" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "Särskiljande namn:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Filter:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Nej" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "Säkerhet:" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anonym" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Enkel" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "Behörighetskontroll:" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "SASL-mekanism:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "Kontrollera server" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "LDAP-förfrågan" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Okänt fel vid anslutning till %1" + +#~ msgid "LDAP Servers" +#~ msgstr "LDAP-servrar" + +#~ msgid "Attribute" +#~ msgstr "Egenskap" + +#~ msgid "Value" +#~ msgstr "Värde" + +#~ msgid "Distinguished Name" +#~ msgstr "Särskiljande namn" + +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "Stöd för SASL är ingår inte. Kompilera om libkldap med klientbiblioteket " +#~ "Cyrus-SASL (eller motsvarande), eller klaga hos din distributions " +#~ "paketansvariga." + +#~ msgid "LDAP Operations error" +#~ msgstr "Fel vid användning av LDAP" + +#~ msgid "kcmldap" +#~ msgstr "IM-LDAP" + +#~ msgid "LDAP Server Settings" +#~ msgstr "LDAP-serverinställningar" + +#~ msgid "(c) 2009 - 2010 Tobias Koenig" +#~ msgstr "© 2009 - 2010 Tobias Koenig" + +#~ msgid "Tobias Koenig" +#~ msgstr "Tobias Koenig" + +#~ msgctxt "@item LDAP search key" +#~ msgid "Title" +#~ msgstr "Titel" + +#~ msgid "Full Name" +#~ msgstr "Fullständigt namn" + +#~ msgctxt "@item LDAP search key" +#~ msgid "Email" +#~ msgstr "E-post" + +#~ msgid "Home Number" +#~ msgstr "Hemnummer" + +#~ msgid "Work Number" +#~ msgstr "Arbetsnummer" + +#~ msgid "Mobile Number" +#~ msgstr "Mobilnummer" + +#~ msgid "Fax Number" +#~ msgstr "Telefaxnummer" + +#~ msgid "Pager" +#~ msgstr "Personsökare" + +#~ msgid "Street" +#~ msgstr "Gatuadress" + +#~ msgctxt "@item LDAP search key" +#~ msgid "State" +#~ msgstr "Stat" + +#~ msgid "Country" +#~ msgstr "Land" + +#~ msgid "City" +#~ msgstr "Stad" + +#~ msgid "Organization" +#~ msgstr "Organisation" + +#~ msgid "Company" +#~ msgstr "Företag" + +#~ msgid "Department" +#~ msgstr "Avdelning" + +#~ msgid "Zip Code" +#~ msgstr "Postnummer" + +#~ msgid "Postal Address" +#~ msgstr "Postadress" + +#~ msgid "Description" +#~ msgstr "Beskrivning" + +#~ msgid "User ID" +#~ msgstr "Användar-id" + +#~ msgctxt "Search attribute: Name of contact" +#~ msgid "Name" +#~ msgstr "Namn" + +#~ msgctxt "Search attribute: Email of the contact" +#~ msgid "Email" +#~ msgstr "E-post" + +#~ msgctxt "@title:column Column containing email addresses" +#~ msgid "Email" +#~ msgstr "E-post" + +#~ msgctxt "" +#~ "@title:column Column containing the residential state of the address" +#~ msgid "State" +#~ msgstr "Stat" + +#~ msgctxt "@title:column Column containing title of the person" +#~ msgid "Title" +#~ msgstr "Titel" + +#~ msgid "Import Contacts from LDAP" +#~ msgstr "Importerar kontakter från LDAP" + +#~ msgid "Search for Addresses in Directory" +#~ msgstr "Sök efter adresser i katalog" + +#~ msgid "Search for:" +#~ msgstr "Sök efter:" + +#~ msgctxt "In LDAP attribute" +#~ msgid "in" +#~ msgstr "i" + +#~ msgctxt "@item:inlistbox Name of the contact" +#~ msgid "Name" +#~ msgstr "Namn" + +#~ msgctxt "@item:inlistbox email address of the contact" +#~ msgid "Email" +#~ msgstr "E-post" + +#~ msgctxt "@item:inlistbox" +#~ msgid "Home Number" +#~ msgstr "Hemnummer" + +#~ msgctxt "@item:inlistbox" +#~ msgid "Work Number" +#~ msgstr "Jobbnummer" + +#~ msgid "Stop" +#~ msgstr "Stoppa" + +#~ msgctxt "@action:button Start searching" +#~ msgid "&Search" +#~ msgstr "&Sök" + +#~ msgid "Recursive search" +#~ msgstr "Rekursiv sökning" + +#~ msgid "Contains" +#~ msgstr "Innehåller" + +#~ msgid "Starts With" +#~ msgstr "Börjar med" + +#~ msgid "Select All" +#~ msgstr "Markera alla" + +#~ msgid "Unselect All" +#~ msgstr "Avmarkera alla" + +#~ msgid "Add Selected" +#~ msgstr "Lägg till markerad" + +#~ msgid "Configure LDAP Servers..." +#~ msgstr "Anpassa LDAP-servrar..." + +#~ msgid "You must select an LDAP server before searching." +#~ msgstr "Du måste välja en LDAP-server innan sökning." + +#~ msgctxt "arguments are host name, datetime" +#~ msgid "Imported from LDAP directory %1 on %2" +#~ msgstr "Importerat från LDAP-katalogen %1 %2" + +#~ msgid "Configure the Address Book LDAP Settings" +#~ msgstr "Anpassa adressbokens LDAP-inställningar" + +#~ msgctxt "NAME OF TRANSLATORS" +#~ msgid "Your names" +#~ msgstr "Stefan Asserhäll" + +#~ msgctxt "EMAIL OF TRANSLATORS" +#~ msgid "Your emails" +#~ msgstr "stefan.asserhall@bredband.net" diff --git a/po/ta/kio_ldap.po b/po/ta/kio_ldap.po new file mode 100644 index 0000000..770eeed --- /dev/null +++ b/po/ta/kio_ldap.po @@ -0,0 +1,69 @@ +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2004-08-09 04:17-0800\n" +"Last-Translator: Tamil PC \n" +"Language-Team: KDE \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" + +#: kio_ldap.cpp:167 +#, fuzzy, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "LDAP சேவகன் மேற்காணும் பிழையை வழங்கியது: %1" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP புகுபதிகை" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "தளம்:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "செல்லுபடியாகாத உறுதிபடுத்துதல் தகவல்." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "" + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, fuzzy, kde-format +msgid "The Ldif parser failed." +msgstr "LDIF பகுப்பான் தோல்வியுற்றது." + +#: kio_ldap.cpp:680 +#, fuzzy, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Invalid %1 கோட்டில் LDIF கோப்பு செல்லுபடியாகாது." + +#~ msgid "Cannot set LDAP protocol version %1" +#~ msgstr "LDAP நெறிமுறை பதிப்பு %1 யை அமைக்க முடியாது" + +#~ msgid "Cannot set size limit." +#~ msgstr "அளவு விளிம்பை அமைக்க முடியாது." + +#~ msgid "Cannot set time limit." +#~ msgstr "நேர விளிம்பை அமைக்க முடியாது." + +#~ msgid "SASL authentication not compiled into the ldap ioslave." +#~ msgstr "SASL உறுதிபடுத்துதலை ldap ioslave தொகுப்பிக்க முடியாது." diff --git a/po/th/kio_ldap.po b/po/th/kio_ldap.po new file mode 100644 index 0000000..eccb5ad --- /dev/null +++ b/po/th/kio_ldap.po @@ -0,0 +1,66 @@ +# translation of kio_ldap.po to Thai +# +# Thanomsub Noppaburana , 2005. +# Sahachart Anukulkitch , 2007. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2007-06-03 00:27+1000\n" +"Last-Translator: Sahachart Anukulkitch \n" +"Language-Team: Thai \n" +"Language: th\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=1; plural=0;\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"ข้อมูลเพิ่มเติม: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"เซิร์ฟเวอร์ LDAP คืนค่าความผิดพลาด: %1 %2\n" +"ตำแหน่ง URL ของ LDAP คือ: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "ล็อกอินผ่าน LDAP" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "ไซต์:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "ข้อมูลการอนุญาตใช้ไม่ได้" + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "การเชื่อมต่อกับ LDAP ยกเลิก" + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "ตัววิเคราะห์ Ldif ทำงานล้มเหลว" + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "แฟ้ม Ldif ไม่ถูกต้องในบรรทัดที่ %1" diff --git a/po/th/libkldap5.po b/po/th/libkldap5.po new file mode 100644 index 0000000..e7df71d --- /dev/null +++ b/po/th/libkldap5.po @@ -0,0 +1,351 @@ +# translation of libkldap.po to Thai +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Thanomsub Noppaburana , 2008. +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2008-03-22 15:27+0700\n" +"Last-Translator: Thanomsub Noppaburana \n" +"Language-Team: Thai \n" +"Language: th\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=1; plural=0;\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "ไม่รองรับการใช้ LDAP..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "เกิดข้อผิดพลาดขึ้นระหว่างทำการเริ่มทำการเชื่อมต่อ" + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "ไม่สามารถตั้งค่ารุ่นของโพรโตคอลเป็นรุ่น %1 ได้" + +#: core/ldapconnection.cpp:257 +#, fuzzy, kde-format +#| msgid "Cannot set timeout to %1 seconds." +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "ไม่สามารถตั้งค่าหมดเวลาเป็น %1 วินาทีได้" + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "" + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:308 +#, fuzzy, kde-format +#| msgid "Cannot initialize the SASL client." +msgid "Could not initialize new TLS context." +msgstr "ไม่สามารถเริ่มการทำงานของไคลเอนต์ SASL ได้" + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "ไลบรารีของไคลเอนต์ LDAP ไม่รองรับการทำงานกับการเข้ารหัสแบบ TLS" + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "ไม่สามารถตั้งค่าขนาดจำกัดได้" + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "ไม่สามารถตั้งค่าเวลาจำกัดได้" + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "ไม่สามารถเริ่มการทำงานของไคลเอนต์ SASL ได้" + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"ไม่รองรับการทำงานกับ LDAP ตั้งแต่คอมไพล์แล้ว โปรดทำการคอมไพล์ไลบรารี libkldap ร่วมกับ " +"OpenLDAP (หรือเทียบเท่ากัน) ก่อน หรือไม่ก็แจ้งไปยังผู้สร้างแพ็กเกจของคุณ" + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "" + +#: widgets/addhostdialog.cpp:64 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Add Host" +msgstr "เครื่องโฮสต์:" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:97 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Edit Host" +msgstr "เครื่องโฮสต์:" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:315 +#, fuzzy, kde-format +#| msgid "Host:" +msgid "&Add Host..." +msgstr "เครื่องโฮสต์:" + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "ผู้ใช้:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "DN เพื่อเข้าใช้งาน LDAP:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "ขอบเขตของ LDAP:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "รหัสผ่าน:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "เครื่องโฮสต์:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "หมายเลขพอร์ต:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "รุ่นของ LDAP:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "ค่าปริยาย" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "ขนาดจำกัดของ LDAP:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " วินาที" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "ค่าปริยาย" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "เวลาจำกัดของ LDAP:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "ไม่ทำเพจ" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "ขนาดเพจ:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "สืบค้นเซิร์ฟเวอร์" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "ตัวกรอง:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "ไม่ใช้" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "ใช้การเข้ารหัสแบบ้ TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "ใช้การเข้ารหัสแบบ SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, fuzzy, kde-format +#| msgid "Security" +msgid "Security:" +msgstr "ความปลอดภัย" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "ผู้ใช้นิรนาม" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "พื้นฐาน" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "ผ่านทาง SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, fuzzy, kde-format +#| msgid "Authentication" +msgid "Authentication:" +msgstr "การตรวจสอบสิทธิ์" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "กลไกตรวจสอบสิทธิ์ของ SASL:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:309 +#, fuzzy, kde-format +#| msgid "LDAP Query" +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "สืบค้น LDAP" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Servers" +#~ msgstr "รุ่นของ LDAP:" + +#~ msgid "Attribute" +#~ msgstr "แอตทริบิวต์" + +#~ msgid "Value" +#~ msgstr "ค่า" + +#~ msgid "Distinguished Name" +#~ msgstr "ชื่อจำแนก (DN)" + +#, fuzzy +#~| msgid "" +#~| "SASL support is not available...Please recompile libkldap with the Cyrus-" +#~| "SASL (or compatible) client libraries, or complain to your distribution " +#~| "packagers." +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "ไม่รองรับการทำงานกับ SASL โปรดทำการคอมไพล์ไลบรารี libkldap ร่วมกับ Cyrus-SASL " +#~ "(หรือเทียบเท่ากัน) ก่อน หรือไม่ก็แจ้งไปยังผู้สร้างแพ็กเกจของคุณ" + +#~ msgid "LDAP Operations error" +#~ msgstr "ปฏิบัติการของ LDAP ผิดพลาด" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Server Settings" +#~ msgstr "รุ่นของ LDAP:" + +#, fuzzy +#~| msgid "User:" +#~ msgid "User ID" +#~ msgstr "ผู้ใช้:" diff --git a/po/tr/kio_ldap.po b/po/tr/kio_ldap.po new file mode 100644 index 0000000..1894514 --- /dev/null +++ b/po/tr/kio_ldap.po @@ -0,0 +1,72 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Cemil MUTLU , 2005. +# Görkem Çetin , 2004. +# Görkem Çetin , 2004. +# obsoleteman , 2008. +# Kaan Ozdincer , 2014. +msgid "" +msgstr "" +"Project-Id-Version: kdepimlibs-kde4\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2014-11-12 01:06+0200\n" +"Last-Translator: Kaan Ozdincer \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Lokalize 1.4\n" +"(http: //www.transifex.com/projects/p/kdepimlibs-k-tr/language/tr/)\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Ek bilgiler: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP sunucusu hatası döndürdü :%1 %2\n" +"LDAP Adresi şöyleydi: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP Giriş" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "site:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Geçersiz kimlik doğrulama bilgisi." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "LDAP bağlantısı iptal edildi." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Ldif ayrıştırıcı başarısız oldu." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "%1 satırında geçersiz Ldif dosyası." diff --git a/po/tr/libkldap5.po b/po/tr/libkldap5.po new file mode 100644 index 0000000..fd68989 --- /dev/null +++ b/po/tr/libkldap5.po @@ -0,0 +1,346 @@ +# translation of libkldap.po to Turkish +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Serdar Soytetir , 2008, 2009. +# Volkan Gezer , 2013, 2014. +# Kaan Ozdincer , 2014. +# Emir SARI , 2022. +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2022-11-21 22:07+0300\n" +"Last-Translator: Emir SARI \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Lokalize 22.08.3\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "LDAP Desteği Yok..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Bağlantı başlatılma evresinde bir hata oluştu." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Protokol sürümü %1 olarak ayarlanamadı." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Zaman aşımı %1 saniye olarak ayarlanamadı." +msgstr[1] "Zaman aşımı %1 saniye olarak ayarlanamadı." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "CA sertifika dosyası ayarlanamadı." + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "Geçersiz TLS sertifika gerektir kipi." + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "TLS sertifika gerektir kipi ayarlanamardı." + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "Yeni TLS bağlamı başlatılamadı." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "LDAP istemci kitaplıklarında TLS desteği kullanılabilir durumda değil." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Boyut sınırı ayarlanamadı." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Süre sınırı ayarlanamadı." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "SASL istemcisi başlatılamadı." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"LDAP desteği derlenmemiş. Lütfen libkldap uygulamasını OpenLDAP (ya da " +"uyumlu bir uygulama) istemci kitaplıkları ile yeniden derleyin ya da " +"kullandığınız dağıtımın paketçilerine başvurun." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "Sunucuya erişilemedi. Lütfen yeniden yapılandırın." + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "Makine Ekle" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" +"LDAP parolası düz metin olarak depolanıyor, KWallet'ta depolamak ister " +"misiniz?" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "Düz metin parolayı KWallet'ta depola" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "Makineyi Düzenle" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "\"%1\" makinesi için ayarı kaldırmak istiyor musunuz?" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "Makineyi Kaldır" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "Kullanılması gereken tüm sunucuları denetle:" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "Makine &Ekle..." + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "Makineyi Dü&zenle..." + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "Maki&neyi Kaldır" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Kullanıcı:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "Bind DN:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Gerçeklik:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Parola:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Makine:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Kapı:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "LDAP sürümü:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Öntanımlı" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Boyut sınırı:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr "sn" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Öntanımlı" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Zaman sınırı:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Sayfalama yok" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Sayfa boyutu:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Sorgu Sunucusu" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Süz:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Hayır" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "Güvenlik:" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Anonim" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Basit" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "Kimlik Doğrulama:" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "SASL mekanizması:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "Sunucuyu denetle" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "LDAP Sorgusu" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "%1'e bağlanırken bilinmeyen hata" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Servers" +#~ msgstr "LDAP sürümü:" + +#~ msgid "Attribute" +#~ msgstr "Özellik" + +#~ msgid "Value" +#~ msgstr "Değer" + +#~ msgid "Distinguished Name" +#~ msgstr "Eşsiz İsim" + +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "SASL desteği kullanılabilir değil. Lütfen libkldap uygulamasını Cyrus-" +#~ "SASL (ya da uyumlu bir uygulama) istemci kitaplıkları ile yeniden " +#~ "derleyin ya da kullandığınız dağıtımın paketçilerine başvurun." + +#~ msgid "LDAP Operations error" +#~ msgstr "LDAP İşlem hatası" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Server Settings" +#~ msgstr "LDAP sürümü:" + +#, fuzzy +#~| msgid "User:" +#~ msgid "User ID" +#~ msgstr "Kullanıcı:" diff --git a/po/ug/kio_ldap.po b/po/ug/kio_ldap.po new file mode 100644 index 0000000..a484a59 --- /dev/null +++ b/po/ug/kio_ldap.po @@ -0,0 +1,64 @@ +# Uyghur translation for kio_ldap. +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# Sahran , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2013-09-08 07:05+0900\n" +"Last-Translator: Gheyret Kenji \n" +"Language-Team: Uyghur Computer Science Association \n" +"Language: ug\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Additional info: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "تورتۇرا:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "" + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "" + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "" + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "" diff --git a/po/ug/libkldap5.po b/po/ug/libkldap5.po new file mode 100644 index 0000000..dbe65d9 --- /dev/null +++ b/po/ug/libkldap5.po @@ -0,0 +1,309 @@ +# Uyghur translation for libkldap. +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# Sahran , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2013-09-08 07:05+0900\n" +"Last-Translator: Gheyret Kenji \n" +"Language-Team: Uyghur Computer Science Association \n" +"Language: ug\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "" + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "" + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "" + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "" + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "" + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "" + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "" + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "" + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "" + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "" + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "" + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "" + +#: widgets/addhostdialog.cpp:64 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Add Host" +msgstr "كومپيۇتېر:" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "ئىشلەتكۈچى:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "دائىرە:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "ئىم:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "كومپيۇتېر:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "ئېغىز:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "كۆڭۈلدىكى" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " سېكۇنت" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "كۆڭۈلدىكى" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "ۋاقىت چەكلىمىسى:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "قەغەز چوڭلۇقى:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "سۈزگۈچ:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "ياق" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, fuzzy, kde-format +#| msgid "Security" +msgid "Security:" +msgstr "بىخەتەرلىك" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "ئاتسىز" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "ئاددىي" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:241 +#, fuzzy, kde-format +#| msgid "Authentication" +msgid "Authentication:" +msgstr "كىملىك دەلىللەش" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "" + +#~ msgid "Attribute" +#~ msgstr "خاسلىق" + +#~ msgid "Value" +#~ msgstr "قىممەت" diff --git a/po/uk/docs/kioslave5/ldap/index.docbook b/po/uk/docs/kioslave5/ldap/index.docbook new file mode 100644 index 0000000..02a0181 --- /dev/null +++ b/po/uk/docs/kioslave5/ldap/index.docbook @@ -0,0 +1,54 @@ + + + +]> + +
    +ldap + + +&Lauri.Watts; &Lauri.Watts.mail; +ЮрійЧорноіван
    yurchor@ukr.net
    Переклад українською
    +
    +
    + +ldap — це абревіатура від lightweight directory access protocol (полегшений протокол доступу до каталогів). Цей протокол надає доступ до каталогу X.500 або до окремого сервера LDAP. + +Використовувати kioslave ldap можна так: + +ldap://host:port/ou=People,o=where,c=de??sub для запиту у піддереві + +або ldap://вузол:порт/cn=MM,ou=People,o=where,c=de??base для всієї гілки. + +
    diff --git a/po/uk/kio_ldap.po b/po/uk/kio_ldap.po new file mode 100644 index 0000000..23a28f1 --- /dev/null +++ b/po/uk/kio_ldap.po @@ -0,0 +1,69 @@ +# Translation of kio_ldap.po to Ukrainian +# Copyright (C) 2016 This_file_is_part_of_KDE +# This file is distributed under the license LGPL version 2.1 or +# version 3 or later versions approved by the membership of KDE e.V. +# +# Yuri Chornoivan , 2016. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2016-04-04 17:41+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Lokalize 1.5\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Додаткова інформація: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"Сервер LDAP повернув наступну помилку: %1 %2\n" +"Адреса LDAP: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "Вхід LDAP" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "сайт:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Неправильна інформація для авторизації." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "З’єднання з LDAP скасовано." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Помилка аналізатора Ldif." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Неправильний файл Ldif в рядку %1." diff --git a/po/uk/libkldap5.po b/po/uk/libkldap5.po new file mode 100644 index 0000000..50c48bb --- /dev/null +++ b/po/uk/libkldap5.po @@ -0,0 +1,506 @@ +# Translation of libkldap5.po to Ukrainian +# Copyright (C) 2018-2020 This_file_is_part_of_KDE +# This file is distributed under the license LGPL version 2.1 or +# version 3 or later versions approved by the membership of KDE e.V. +# +# Ivan Petrouchtchak , 2007, 2008. +# Yuri Chornoivan , 2008, 2009, 2010, 2014, 2017, 2018, 2019, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: libkldap5\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2021-07-28 10:12+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 20.12.0\n" +"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "Немає підтримки LDAP..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "Під час фази ініціалізації з’єднання сталася помилка." + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "Неможливо встановити версію протоколу до %1." + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "Не вдається встановити тайм-аут у %1 секунду." +msgstr[1] "Не вдається встановити тайм-аут у %1 секунди." +msgstr[2] "Не вдається встановити тайм-аут у %1 секунд." +msgstr[3] "Не вдається встановити тайм-аут у %1 секунду." + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "Не вдалося встановити файл сертифіката CA." + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "Некоректна вимога TLS щодо режиму сертифікації." + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "Не вдалося встановити запитаний TLS режим сертифікації." + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "Не вдалося ініціалізувати новий контекст TLS." + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "Немає підтримки TLS в бібліотеках клієнта LDAP." + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "Не вдається встановити обмеження на розмір." + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "Не вдається встановити обмеження на час." + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "Неможливо започаткувати клієнт SASL." + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"Бібліотеку зібрано без підтримки LDAP. Будь ласка, зберіть libkldap ще раз з " +"клієнтськими бібліотеками OpenLDAP (або сумісними з ними), або надішліть " +"скаргу особі, що готувала пакунок вашого дистрибутива." + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "" +"Не вдалося отримати доступ до сервера. Будь ласка, виконайте повторне " +"налаштування." + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "Додавання вузла" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" +"Пароль до LDAP зберігається у незашифрованому форматі, хочете зберегти його " +"у kwallet?" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "Зберегти незашифрований пароль у торбинці" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "Зміна вузла" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "Хочете вилучити запис для вузла «%1»?" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "Вилучення вузла" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "Позначте всі сервери, які слід використовувати:" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "&Додати вузол…" + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "&Змінити вузол…" + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "&Вилучити вузол" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "Користувач:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "DN для прив'язки:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "Область:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "Пароль:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "Вузол:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "Порт:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "Версія LDAP:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "Типовий" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "Обмеження розміру:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " с" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "Типовий" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "Обмеження часу:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "Без розбиття на сторінки" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "Розмір сторінки:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "Опитати сервер" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "Фільтр:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "Немає" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "Захист:" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "Анонімна" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "Проста" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "Розпізнавання:" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "Механізм SASL:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "Перевірити сервер" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "Опитування LDAP" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "Невідома помилка під час спроби встановлення зв’язку із %1" + +#~ msgid "LDAP Servers" +#~ msgstr "Сервери LDAP" + +#~ msgid "Attribute" +#~ msgstr "Атрибут" + +#~ msgid "Value" +#~ msgstr "Значення" + +#~ msgid "Distinguished Name" +#~ msgstr "Титул" + +#~ msgid "" +#~ "SASL support is not available. Please recompile libkldap with the Cyrus-" +#~ "SASL (or compatible) client libraries, or complain to your distribution " +#~ "packagers." +#~ msgstr "" +#~ "Немає підтримки SASL... Будь ласка, ще раз зберіть libkldap з " +#~ "клієнтськими бібліотеками Cyrus-SASL (або сумісними з ними), або " +#~ "надішліть скаргу особі, що готувала пакунок вашого дистрибутива." + +#~ msgid "LDAP Operations error" +#~ msgstr "Помилка дій LDAP" + +#~ msgid "kcmldap" +#~ msgstr "kcmldap" + +#~ msgid "LDAP Server Settings" +#~ msgstr "Параметри серверів LDAP" + +#~ msgid "(c) 2009 - 2010 Tobias Koenig" +#~ msgstr "© Tobias Koenig, 2009–2010" + +#~ msgid "Tobias Koenig" +#~ msgstr "Tobias Koenig" + +#~ msgctxt "@item LDAP search key" +#~ msgid "Title" +#~ msgstr "Звертання" + +#~ msgid "Full Name" +#~ msgstr "Повне ім'я" + +#~ msgctxt "@item LDAP search key" +#~ msgid "Email" +#~ msgstr "Електронна пошта" + +#~ msgid "Home Number" +#~ msgstr "Домашній телефон" + +#~ msgid "Work Number" +#~ msgstr "Робочий телефон" + +#~ msgid "Mobile Number" +#~ msgstr "Мобільний телефон" + +#~ msgid "Fax Number" +#~ msgstr "Номер факсу" + +#~ msgid "Pager" +#~ msgstr "Пейджер" + +#~ msgid "Street" +#~ msgstr "Вулиця" + +#~ msgctxt "@item LDAP search key" +#~ msgid "State" +#~ msgstr "Область" + +#~ msgid "Country" +#~ msgstr "Країна" + +#~ msgid "City" +#~ msgstr "Місто" + +#~ msgid "Organization" +#~ msgstr "Установа" + +#~ msgid "Company" +#~ msgstr "Компанія" + +#~ msgid "Department" +#~ msgstr "Відділ" + +#~ msgid "Zip Code" +#~ msgstr "Поштовий код" + +#~ msgid "Postal Address" +#~ msgstr "Поштова адреса" + +#~ msgid "Description" +#~ msgstr "Опис" + +#~ msgid "User ID" +#~ msgstr "ІД користувача:" + +#~ msgctxt "Search attribute: Name of contact" +#~ msgid "Name" +#~ msgstr "Ім'я" + +#~ msgctxt "Search attribute: Email of the contact" +#~ msgid "Email" +#~ msgstr "Електронна пошта" + +#~ msgctxt "@title:column Column containing email addresses" +#~ msgid "Email" +#~ msgstr "Електронна пошта" + +#~ msgctxt "" +#~ "@title:column Column containing the residential state of the address" +#~ msgid "State" +#~ msgstr "Область" + +#~ msgctxt "@title:column Column containing title of the person" +#~ msgid "Title" +#~ msgstr "Звертання" + +#~ msgid "Import Contacts from LDAP" +#~ msgstr "Імпортувати контакти з LDAP" + +#~ msgid "Search for Addresses in Directory" +#~ msgstr "Шукати на адреси у каталозі" + +#~ msgid "Search for:" +#~ msgstr "Шукати за:" + +#~ msgctxt "In LDAP attribute" +#~ msgid "in" +#~ msgstr "у" + +#~ msgctxt "@item:inlistbox Name of the contact" +#~ msgid "Name" +#~ msgstr "Ім’я" + +#~ msgctxt "@item:inlistbox email address of the contact" +#~ msgid "Email" +#~ msgstr "Електронна пошта" + +#~ msgctxt "@item:inlistbox" +#~ msgid "Home Number" +#~ msgstr "Домашній телефон" + +#~ msgctxt "@item:inlistbox" +#~ msgid "Work Number" +#~ msgstr "Робочий телефон" + +#~ msgid "Stop" +#~ msgstr "Зупинити" + +#~ msgctxt "@action:button Start searching" +#~ msgid "&Search" +#~ msgstr "&Шукати" + +#~ msgid "Recursive search" +#~ msgstr "Рекурсивний пошук" + +#~ msgid "Contains" +#~ msgstr "містить" + +#~ msgid "Starts With" +#~ msgstr "починається з" + +#~ msgid "Select All" +#~ msgstr "Позначити все" + +#~ msgid "Unselect All" +#~ msgstr "Скасувати позначення" + +#~ msgid "Add Selected" +#~ msgstr "Додати позначені" + +#~ msgid "Configure LDAP Servers..." +#~ msgstr "Налаштувати сервери LDAP…" + +#~ msgid "You must select an LDAP server before searching." +#~ msgstr "Перед виконанням пошуку вам слід обрати сервер LDAP." + +#~ msgctxt "arguments are host name, datetime" +#~ msgid "Imported from LDAP directory %1 on %2" +#~ msgstr "Імпортовано з каталогу LDAP %1 на %2" + +#~ msgid "Configure the Address Book LDAP Settings" +#~ msgstr "Налаштування параметрів LDAP адресної книги" + +#~ msgctxt "NAME OF TRANSLATORS" +#~ msgid "Your names" +#~ msgstr "Юрій Чорноіван" + +#~ msgctxt "EMAIL OF TRANSLATORS" +#~ msgid "Your emails" +#~ msgstr "yurchor@ukr.net" diff --git a/po/uz/kio_ldap.po b/po/uz/kio_ldap.po new file mode 100644 index 0000000..31cca0f --- /dev/null +++ b/po/uz/kio_ldap.po @@ -0,0 +1,64 @@ +# translation of kio_ldap.po to Uzbek +# Mashrab Kuvatov , 2004, 2005. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2005-10-11 21:37+0200\n" +"Last-Translator: Mashrab Kuvatov \n" +"Language-Team: Uzbek \n" +"Language: uz\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.10.2\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Qoʻshimcha maʼlumot: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP serveri quyidagi xatoni qaytardi: %1 %2\n" +"LDAP URL: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP serveriga ulanish" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "sayt:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Tasdiqlash uchun maʼlumot notoʻgʻri." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "" + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "" + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "" diff --git a/po/uz@cyrillic/kio_ldap.po b/po/uz@cyrillic/kio_ldap.po new file mode 100644 index 0000000..ae5ee65 --- /dev/null +++ b/po/uz@cyrillic/kio_ldap.po @@ -0,0 +1,64 @@ +# translation of kio_ldap.po to Uzbek +# Mashrab Kuvatov , 2004, 2005. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2005-10-11 21:37+0200\n" +"Last-Translator: Mashrab Kuvatov \n" +"Language-Team: Uzbek \n" +"Language: uz@cyrillic\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.10.2\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Қўшимча маълумот: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP сервери қуйидаги хатони қайтарди: %1 %2\n" +"LDAP URL: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP серверига уланиш" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "сайт:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Тасдиқлаш учун маълумот нотўғри." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "" + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "" + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "" diff --git a/po/vi/kio_ldap.po b/po/vi/kio_ldap.po new file mode 100644 index 0000000..3330ef1 --- /dev/null +++ b/po/vi/kio_ldap.po @@ -0,0 +1,66 @@ +# Vietnamese translation for kio_ldap. +# Copyright © 2007 KDE i18n Project for Vietnamese. +# Phan Vĩnh Thịnh , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2007-06-23 21:48+0930\n" +"Last-Translator: Phan Vĩnh Thịnh \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: KBabel 1.10\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"Thông tin phụ: " + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"Máy chủ LDAP trả lại lỗi: %1 %2\n" +"Địa chỉ URL của LDAP là: %3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "Đăng nhập LDAP" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "nơi:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "Thông tin xác thực sai." + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "Kết nối LDAP bị thôi." + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "Lỗi phân tách LDIF." + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "Tệp LDIF không hợp lệ trên dòng %1." diff --git a/po/zh_CN/kio_ldap.po b/po/zh_CN/kio_ldap.po new file mode 100644 index 0000000..09055e2 --- /dev/null +++ b/po/zh_CN/kio_ldap.po @@ -0,0 +1,66 @@ +msgid "" +msgstr "" +"Project-Id-Version: kdeorg\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2022-11-19 14:51\n" +"Last-Translator: \n" +"Language-Team: Chinese Simplified\n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Crowdin-Project: kdeorg\n" +"X-Crowdin-Project-ID: 269464\n" +"X-Crowdin-Language: zh-CN\n" +"X-Crowdin-File: /kf5-stable/messages/kldap/kio_ldap.pot\n" +"X-Crowdin-File-ID: 3141\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"额外信息:" + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP 服务器返回了以下错误:%1 %2\n" +"LDAP URL 为:%3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP 登录" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "站点:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "无效的身份验证信息。" + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "LDAP 连接已取消。" + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "LDIF 分析器失败。" + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "LDIF 文件在第 %1 行存在错误。" diff --git a/po/zh_CN/libkldap5.po b/po/zh_CN/libkldap5.po new file mode 100644 index 0000000..9f1bf21 --- /dev/null +++ b/po/zh_CN/libkldap5.po @@ -0,0 +1,302 @@ +msgid "" +msgstr "" +"Project-Id-Version: kdeorg\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2022-11-19 14:51\n" +"Last-Translator: \n" +"Language-Team: Chinese Simplified\n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Crowdin-Project: kdeorg\n" +"X-Crowdin-Project-ID: 269464\n" +"X-Crowdin-Language: zh-CN\n" +"X-Crowdin-File: /kf5-stable/messages/kldap/libkldap5.pot\n" +"X-Crowdin-File-ID: 3201\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "无 LDAP 支持..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "在连接初始化阶段发生错误。" + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "无法将协议版本设为 %1。" + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "无法将超时值设置为 %1 秒。" + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "无法设置 CA 证书文件。" + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "无效 TLS 需要证书模式。" + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "无法设置 TLS 需要证书模式。" + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "无法初始化新 TLS 上下文。" + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "LDAP 客户端库没有 TLS 支持。" + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "无法设置大小限制。" + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "无法设置时间限制。" + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "无法初始化 SASL 客户端。" + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"未编译 LDAP 支持。请在 OpenLDAP 客户端库或兼容环境下重新编译 libkldap,或向您" +"所用发行版的打包人员申诉。" + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "无法访问服务器,请重新配置。" + +#: widgets/addhostdialog.cpp:64 +#, kde-format +msgctxt "@title:window" +msgid "Add Host" +msgstr "添加主机" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "已使用明文方式存储 LDAP 密码,您要将其存储至 KWallet 中吗?" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "在 KWallet 中保存明文密码" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "编辑主机" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "您要删除主机“%1”的设置吗?" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "删除主机" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "勾选要使用的所有服务器:" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "添加主机(&A)..." + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "编辑主机(&E)..." + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "删除主机(&R)" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "用户:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "基准 DN:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "域:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "密码:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "主机:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "端口:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "LDAP 版本:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "默认" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "大小限制:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " 秒" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "默认" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "时间限制:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "不分页" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "页面大小:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "查询服务器" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "DN:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "过滤器:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "否" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, kde-format +msgid "Security:" +msgstr "安全:" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "匿名" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "简单" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, kde-format +msgid "Authentication:" +msgstr "身份验证:" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "SASL 算法:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "检查服务器" + +#: widgets/ldapconfigwidget.cpp:309 +#, kde-format +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "LDAP 查询" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "连接 %1 时发生未知错误" diff --git a/po/zh_TW/kio_ldap.po b/po/zh_TW/kio_ldap.po new file mode 100644 index 0000000..02adb8b --- /dev/null +++ b/po/zh_TW/kio_ldap.po @@ -0,0 +1,67 @@ +# translation of kio_ldap.po to Chinese Traditional +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Franklin Weng , 2007. +msgid "" +msgstr "" +"Project-Id-Version: kio_ldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-07-29 00:47+0000\n" +"PO-Revision-Date: 2007-09-12 18:44+0800\n" +"Last-Translator: Franklin Weng \n" +"Language-Team: Chinese Traditional \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: kio_ldap.cpp:86 +#, kde-format +msgid "" +"\n" +"Additional info: " +msgstr "" +"\n" +"額外資訊:" + +#: kio_ldap.cpp:167 +#, kde-format +msgid "" +"LDAP server returned the error: %1 %2\n" +"The LDAP URL was: %3" +msgstr "" +"LDAP 伺服器回應錯誤:%1 %2\n" +"LDAP URL 為:%3" + +#: kio_ldap.cpp:298 +#, kde-format +msgid "LDAP Login" +msgstr "LDAP 登入" + +#: kio_ldap.cpp:300 +#, kde-format +msgid "site:" +msgstr "站台:" + +#: kio_ldap.cpp:327 +#, kde-format +msgid "Invalid authorization information." +msgstr "不合法的認證資訊。" + +#: kio_ldap.cpp:334 +#, kde-format +msgid "LDAP connection canceled." +msgstr "LDAP 連線取消。" + +#: kio_ldap.cpp:600 kio_ldap.cpp:668 +#, kde-format +msgid "The Ldif parser failed." +msgstr "LDIF 解析器失敗。" + +#: kio_ldap.cpp:680 +#, kde-format +msgid "Invalid Ldif file in line %1." +msgstr "LDIF 檔案內容第 %1 行語法錯誤。" diff --git a/po/zh_TW/libkldap5.po b/po/zh_TW/libkldap5.po new file mode 100644 index 0000000..26eb13f --- /dev/null +++ b/po/zh_TW/libkldap5.po @@ -0,0 +1,323 @@ +# translation of libkldap.po to Chinese Traditional +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Franklin Weng , 2007, 2008, 2015. +# Frank Weng (a.k.a. Franklin) , 2009. +# pan93412 , 2019. +msgid "" +msgstr "" +"Project-Id-Version: libkldap\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-10-16 00:47+0000\n" +"PO-Revision-Date: 2019-03-22 00:44+0800\n" +"Last-Translator: pan93412 \n" +"Language-Team: Chinese \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 18.12.3\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: core/ldapconnection.cpp:124 +#, kde-format +msgid "No LDAP Support..." +msgstr "不支援 LDAP..." + +#: core/ldapconnection.cpp:239 +#, kde-format +msgid "An error occurred during the connection initialization phase." +msgstr "連線初始化時發生錯誤。" + +#: core/ldapconnection.cpp:246 +#, kde-format +msgid "Cannot set protocol version to %1." +msgstr "無法送出協定版本給 %1。" + +#: core/ldapconnection.cpp:257 +#, kde-format +msgid "Cannot set timeout to %1 second." +msgid_plural "Cannot set timeout to %1 seconds." +msgstr[0] "無法設定時間限制為 %1 秒。" + +#: core/ldapconnection.cpp:269 +#, kde-format +msgid "Could not set CA certificate file." +msgstr "無法設定 CA 憑證檔。" + +#: core/ldapconnection.cpp:294 +#, kde-format +msgid "Invalid TLS require certificate mode." +msgstr "無效的 TLS 必須憑證模式 (TLS require certificate mode)。" + +#: core/ldapconnection.cpp:299 +#, kde-format +msgid "Could not set TLS require certificate mode." +msgstr "無法設定 TLS 必須憑證模式 (TLS require certificate mode)。" + +#: core/ldapconnection.cpp:308 +#, kde-format +msgid "Could not initialize new TLS context." +msgstr "無法初始化新 TLS 內文。" + +#: core/ldapconnection.cpp:325 +#, kde-format +msgid "TLS support not available in the LDAP client libraries." +msgstr "LDAP 用戶端函式庫不支援 TLS。" + +#: core/ldapconnection.cpp:335 +#, kde-format +msgid "Cannot set size limit." +msgstr "無法設定大小限制。" + +#: core/ldapconnection.cpp:345 +#, kde-format +msgid "Cannot set time limit." +msgstr "無法設定時間限制。" + +#: core/ldapconnection.cpp:353 +#, kde-format +msgid "Cannot initialize the SASL client." +msgstr "無法初始化 SASL 用戶端。" + +#: core/ldapconnection.cpp:430 +#, kde-format +msgid "" +"LDAP support not compiled in. Please recompile libkldap with the OpenLDAP " +"(or compatible) client libraries, or complain to your distribution packagers." +msgstr "" +"未將 LDAP 支援編譯進來。請重新編譯 libkldap,加入 OpenLDAP 或相容的用戶端函式" +"庫,或是向您的散布版打包者反應。" + +#: core/ldapsearch.cpp:222 +#, kde-format +msgid "Cannot access to server. Please reconfigure it." +msgstr "無法存取伺服器。請重新設定。" + +#: widgets/addhostdialog.cpp:64 +#, fuzzy, kde-format +#| msgid "Host:" +msgctxt "@title:window" +msgid "Add Host" +msgstr "主機:" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:112 +#, kde-format +msgid "" +"LDAP password is stored as clear text, do you want to store it in kwallet?" +msgstr "" + +#: widgets/ldapclientsearchconfigreadconfigjob.cpp:113 +#, kde-format +msgid "Store clear text password in Wallet" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:97 +#, kde-format +msgctxt "@title:window" +msgid "Edit Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:118 +#, kde-format +msgid "Do you want to remove setting for host \"%1\"?" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:119 +#, kde-format +msgid "Remove Host" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:281 +#, kde-format +msgid "Check all servers that should be used:" +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:315 +#, kde-format +msgid "&Add Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:317 +#, kde-format +msgid "&Edit Host..." +msgstr "" + +#: widgets/ldapconfigurewidget.cpp:320 +#, kde-format +msgid "&Remove Host" +msgstr "" + +#: widgets/ldapconfigwidget.cpp:90 +#, kde-format +msgid "User:" +msgstr "使用者:" + +#: widgets/ldapconfigwidget.cpp:97 +#, kde-format +msgid "Bind DN:" +msgstr "域名:" + +#: widgets/ldapconfigwidget.cpp:104 +#, kde-format +msgid "Realm:" +msgstr "領域:" + +#: widgets/ldapconfigwidget.cpp:112 +#, kde-format +msgid "Password:" +msgstr "密碼:" + +#: widgets/ldapconfigwidget.cpp:119 +#, kde-format +msgid "Host:" +msgstr "主機:" + +#: widgets/ldapconfigwidget.cpp:128 +#, kde-format +msgid "Port:" +msgstr "埠號:" + +#: widgets/ldapconfigwidget.cpp:136 +#, kde-format +msgid "LDAP version:" +msgstr "LDAP 版本:" + +#: widgets/ldapconfigwidget.cpp:144 +#, kde-format +msgctxt "default ldap size limit" +msgid "Default" +msgstr "預設" + +#: widgets/ldapconfigwidget.cpp:145 +#, kde-format +msgid "Size limit:" +msgstr "大小限制:" + +#: widgets/ldapconfigwidget.cpp:153 +#, kde-format +msgid " sec" +msgstr " 秒" + +#: widgets/ldapconfigwidget.cpp:154 +#, kde-format +msgctxt "default ldap time limit" +msgid "Default" +msgstr "預設" + +#: widgets/ldapconfigwidget.cpp:155 +#, kde-format +msgid "Time limit:" +msgstr "時間限制:" + +#: widgets/ldapconfigwidget.cpp:163 +#, kde-format +msgid "No paging" +msgstr "不分頁" + +#: widgets/ldapconfigwidget.cpp:164 +#, kde-format +msgid "Page size:" +msgstr "頁面大小:" + +#: widgets/ldapconfigwidget.cpp:175 widgets/ldapconfigwidget.cpp:253 +#, kde-format +msgid "Query Server" +msgstr "查詢伺服器" + +#: widgets/ldapconfigwidget.cpp:185 +#, kde-format +msgctxt "Distinguished Name" +msgid "DN:" +msgstr "區別名稱:" + +#: widgets/ldapconfigwidget.cpp:192 +#, kde-format +msgid "Filter:" +msgstr "過濾器:" + +#: widgets/ldapconfigwidget.cpp:201 +#, kde-format +msgctxt "@option:radio set no security" +msgid "No" +msgstr "無" + +#: widgets/ldapconfigwidget.cpp:204 +#, kde-format +msgctxt "@option:radio use TLS security" +msgid "TLS" +msgstr "TLS" + +#: widgets/ldapconfigwidget.cpp:207 +#, kde-format +msgctxt "@option:radio use SSL security" +msgid "SSL" +msgstr "SSL" + +#: widgets/ldapconfigwidget.cpp:222 +#, fuzzy, kde-format +#| msgid "Security" +msgid "Security:" +msgstr "安全性" + +#: widgets/ldapconfigwidget.cpp:232 +#, kde-format +msgctxt "@option:radio anonymous authentication" +msgid "Anonymous" +msgstr "匿名" + +#: widgets/ldapconfigwidget.cpp:235 +#, kde-format +msgctxt "@option:radio simple authentication" +msgid "Simple" +msgstr "簡單" + +#: widgets/ldapconfigwidget.cpp:238 +#, kde-format +msgctxt "@option:radio SASL authentication" +msgid "SASL" +msgstr "SASL" + +#: widgets/ldapconfigwidget.cpp:241 +#, fuzzy, kde-format +#| msgid "Authentication" +msgid "Authentication:" +msgstr "認證" + +#: widgets/ldapconfigwidget.cpp:259 +#, kde-format +msgid "SASL mechanism:" +msgstr "SASL 機制:" + +#: widgets/ldapconfigwidget.cpp:303 +#, kde-format +msgid "Check server" +msgstr "檢查伺服器" + +#: widgets/ldapconfigwidget.cpp:309 +#, fuzzy, kde-format +#| msgid "LDAP Query" +msgctxt "@title:window" +msgid "LDAP Query" +msgstr "LDAP 查詢" + +#: widgets/ldapconfigwidget.cpp:323 +#, kde-format +msgctxt "%1 is a url to ldap server" +msgid "Unknown error connecting %1" +msgstr "連線到 %1 時發生未知的錯誤" + +#, fuzzy +#~| msgid "LDAP version:" +#~ msgid "LDAP Servers" +#~ msgstr "LDAP 版本:" + +#~ msgid "Attribute" +#~ msgstr "屬性" + +#~ msgid "Value" +#~ msgstr "值" + +#~ msgid "Distinguished Name" +#~ msgstr "辨別名稱(DN)" diff --git a/sanitizers.supp b/sanitizers.supp new file mode 100644 index 0000000..3e5b41a --- /dev/null +++ b/sanitizers.supp @@ -0,0 +1,16 @@ +# SPDX-FileCopyrightText: 2021-2022 Laurent Montel +# SPDX-License-Identifier: CC0-1.0 +# Suppression file for ASAN/LSAN + +leak:libspeechd +leak:getdelim +leak:g_malloc +leak:libfontconfig +leak:libdbus +leak:QEasingCurve:: +leak:QtSharedPointer::ExternalRefCountData::getAndRef +leak:QArrayData::allocate +leak:QObject::QObject +leak:QObjectPrivate::addConnection +leak:QObjectPrivate::connectImpl +leak:QPropertyAnimation::QPropertyAnimation diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..f36469d --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,208 @@ +# SPDX-FileCopyrightText: none +# SPDX-License-Identifier: BSD-3-Clause +include(CheckFunctionExists) +include(CheckIncludeFiles) +include(CheckSymbolExists) + +check_include_files(sys/time.h HAVE_SYS_TIME_H) + +set(kldap_EXTRA_LIBS) + +if(Ldap_FOUND) + set(kldap_EXTRA_LIBS Ldap::Ldap) + if(WIN32) + set(kldap_EXTRA_LIBS ${kldap_EXTRA_LIBS} ws2_32) + endif() + set(CMAKE_REQUIRED_INCLUDES lber.h ldap.h) + set(CMAKE_REQUIRED_LIBRARIES Ldap::Ldap) + check_function_exists(ldap_start_tls_s HAVE_LDAP_START_TLS_S) + check_function_exists(ldap_initialize HAVE_LDAP_INITIALIZE) + check_function_exists(ber_memfree HAVE_BER_MEMFREE) + check_function_exists(ldap_unbind_ext HAVE_LDAP_UNBIND_EXT) + check_function_exists(ldap_extended_operation HAVE_LDAP_EXTENDED_OPERATION) + check_function_exists(ldap_extended_operation_s HAVE_LDAP_EXTENDED_OPERATION_S) +endif() + +set(kldap_EXTRA_LIBS ${kldap_EXTRA_LIBS} Sasl2::Sasl2) + +configure_file(kldap_config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/kldap_config.h) + +########### next target ############### + +add_library(KF5Ldap) +add_library(KF5::Ldap ALIAS KF5Ldap) + +target_sources(KF5Ldap PRIVATE + core/ber.cpp + core/ldif.cpp + core/ldapurl.cpp + core/ldapserver.cpp + core/ldapobject.cpp + core/ldapconnection.cpp + core/ldapoperation.cpp + core/ldapcontrol.cpp + core/ldapsearch.cpp + core/ldapdn.cpp + core/ldif.h + core/ldapsearch.h + core/w32-ldap-help.h + core/ldapurl.h + core/ldapcontrol.h + core/ber.h + core/ldapdefs.h + core/ldapconnection.h + core/ldapdn.h + core/ldapoperation.h + core/ldapserver.h + core/ldapobject.h + + + widgets/ldapconfigwidget.cpp + widgets/addhostdialog.cpp + widgets/ldapclient.cpp + widgets/ldapclientsearch.cpp + widgets/ldapclientsearchconfig.cpp + widgets/ldapconfigurewidget.cpp + widgets/ldapclientsearchconfigreadconfigjob.cpp + widgets/ldapclientsearchconfigwriteconfigjob.cpp + widgets/ldapwidgetitem_p.cpp + widgets/ldapwidgetitemreadconfigserverjob.cpp + widgets/ldapsearchclientreadconfigserverjob.cpp + + widgets/ldapclientsearchconfig.h + widgets/ldapclientsearchconfigreadconfigjob.h + widgets/ldapclient.h + widgets/addhostdialog.h + widgets/ldapwidgetitem_p.h + widgets/ldapconfigwidget.h + widgets/ldapclientsearch.h + widgets/ldapclientsearchconfigwriteconfigjob.h + widgets/ldapconfigurewidget.h + widgets/ldapsearchclientreadconfigserverjob.h + widgets/ldapwidgetitemreadconfigserverjob.h + ) + +ecm_qt_declare_logging_category(KF5Ldap HEADER ldap_debug.h IDENTIFIER LDAP_LOG CATEGORY_NAME org.kde.pim.ldap + DESCRIPTION "kldaplib (kldap)" + OLD_CATEGORY_NAMES log_ldap + EXPORT KLDAP + ) + +ecm_qt_declare_logging_category(KF5Ldap HEADER ldapclient_debug.h IDENTIFIER LDAPCLIENT_LOG CATEGORY_NAME org.kde.pim.ldapclient + DESCRIPTION "ldapclient (libkdepim)" + OLD_CATEGORY_NAMES log_ldapclient + EXPORT KLDAP + ) + +if (COMPILE_WITH_UNITY_CMAKE_SUPPORT) + set_target_properties(KF5Ldap PROPERTIES UNITY_BUILD ON) +endif() +generate_export_header(KF5Ldap BASE_NAME kldap) + + + +target_link_libraries(KF5Ldap +PRIVATE + Qt::Widgets + KF5::I18n + KF5::WidgetsAddons + KF5::ConfigCore + KF5::CoreAddons + KF5::KIOCore + ${kldap_EXTRA_LIBS} +) + +target_link_libraries(KF5Ldap PRIVATE qt${QT_MAJOR_VERSION}keychain) + +target_include_directories(KF5Ldap INTERFACE "$") +target_include_directories(KF5Ldap PUBLIC "$") + +set_target_properties(KF5Ldap PROPERTIES + VERSION ${KLDAP_VERSION} + SOVERSION ${KLDAP_SOVERSION} + EXPORT_NAME Ldap +) + +install(TARGETS KF5Ldap EXPORT KF5LdapTargets ${KF_INSTALL_TARGETS_DEFAULT_ARGS}) + +########### install files ############### + +ecm_generate_headers(KLdapCore_CamelCase_HEADERS + HEADER_NAMES + Ber + LdapConnection + LdapControl + LdapDN + LdapObject + LdapOperation + LdapSearch + LdapServer + LdapDefs + LdapUrl + Ldif + RELATIVE core + PREFIX KLDAP + REQUIRED_HEADERS KLdapCore_HEADERS +) + +ecm_generate_headers(KLdapWidgets_CamelCase_HEADERS + HEADER_NAMES + LdapConfigWidget + LdapClientSearchConfig + LdapClientSearch + AddHostDialog + LdapClient + LdapConfigureWidget + LdapClientSearchConfigWriteConfigJob + LdapClientSearchConfigReadConfigJob + LdapSearchClientReadConfigServerJob + RELATIVE widgets + PREFIX KLDAP + REQUIRED_HEADERS KLdapWidgets_HEADERS +) + +install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/kldap_export.h + ${KLdapCore_HEADERS} + ${KLdapWidgets_HEADERS} + DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KLDAP/kldap + COMPONENT Devel +) + +install(FILES + ${KLdapCore_CamelCase_HEADERS} + ${KLdapWidgets_CamelCase_HEADERS} + DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KLDAP/KLDAP/ + COMPONENT Devel +) + +if (BUILD_QCH) + ecm_add_qch( + KF5LDap_QCH + NAME KLDap + BASE_NAME KF5LDap + VERSION ${PIM_VERSION} + ORG_DOMAIN org.kde + + SOURCES # using only public headers, to cover only public API + ${KLdapCore_HEADERS} + ${KLdapWidgets_HEADERS} + MD_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md" + #IMAGE_DIRS "${CMAKE_SOURCE_DIR}/docs/pics" + LINK_QCHS + Qt5Core_QCH + Qt5Gui_QCH + Qt5Widgets_QCH + INCLUDE_DIRS + ${CMAKE_CURRENT_BINARY_DIR} + BLANK_MACROS + KLDAP_EXPORT + TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR} + QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR} + COMPONENT Devel + ) +endif() + +ecm_generate_pri_file(BASE_NAME Ldap LIB_NAME KF5Ldap FILENAME_VAR PRI_FILENAME INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR_KF}/KLDAP/) +install(FILES ${PRI_FILENAME} DESTINATION ${ECM_MKSPECS_INSTALL_DIR}) + diff --git a/src/Messages.sh b/src/Messages.sh new file mode 100644 index 0000000..8ed0ce6 --- /dev/null +++ b/src/Messages.sh @@ -0,0 +1,5 @@ +#! /bin/sh +# SPDX-License-Identifier: CC0-1.0 +# SPDX-FileCopyrightText: none +$XGETTEXT core/*.cpp widgets/*.cpp -o $podir/libkldap5.pot + diff --git a/src/core/ber.cpp b/src/core/ber.cpp new file mode 100644 index 0000000..37107ad --- /dev/null +++ b/src/core/ber.cpp @@ -0,0 +1,436 @@ +/* + This file is part of libkldap. + SPDX-FileCopyrightText: 2004-2006 Szombathelyi György + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "ber.h" +#include "kldap_config.h" + +#include "ldap_debug.h" + +#include +#include + +#include + +#if LDAP_FOUND + +#ifdef Q_OS_SOLARIS // krazy:exclude=cpp +#define BC31 1 +#endif + +#if !HAVE_WINLDAP_H +#include +#include +#else +#include +#endif + +#ifndef LBER_USE_DER +#define LBER_USE_DER 1 +#endif + +#if !HAVE_BER_MEMFREE +#if !HAVE_WINLDAP_H +#define ber_memfree(x) ldap_memfree(x) +#else +#define ber_memfree(x) win_ldap_memfree(x) +#endif +#endif + +#endif + +using namespace KLDAP; + +class Q_DECL_HIDDEN Ber::BerPrivate +{ +public: +#if LDAP_FOUND + BerElement *mBer = nullptr; +#endif +}; + +#if LDAP_FOUND +Ber::Ber() + : d(new BerPrivate) +{ + d->mBer = ber_alloc_t(LBER_USE_DER); + Q_ASSERT(d->mBer); +} + +Ber::Ber(const QByteArray &value) + : d(new BerPrivate) +{ + struct berval bv; + bv.bv_val = (char *)value.data(); + bv.bv_len = value.size(); + d->mBer = ber_init(&bv); + Q_ASSERT(d->mBer); +} + +Ber::~Ber() +{ + ber_free(d->mBer, 1); +} + +Ber::Ber(const Ber &that) + : d(new BerPrivate) +{ + struct berval *bv; + if (ber_flatten(that.d->mBer, &bv) == 0) { + d->mBer = ber_init(bv); + ber_bvfree(bv); + } +} + +Ber &Ber::operator=(const Ber &that) +{ + if (this == &that) { + return *this; + } + + struct berval *bv; + if (ber_flatten(that.d->mBer, &bv) == 0) { + d->mBer = ber_init(bv); + ber_bvfree(bv); + } + return *this; +} + +QByteArray Ber::flatten() const +{ + QByteArray ret; + struct berval *bv; + if (ber_flatten(d->mBer, &bv) == 0) { + ret = QByteArray(bv->bv_val, bv->bv_len); + ber_bvfree(bv); + } + return ret; +} + +int Ber::printf(QString format, ...) +{ + char fmt[2]; + va_list args; + va_start(args, format); + fmt[1] = '\0'; + + int i = 0; + int ret = 0; + while (i < format.length()) { + fmt[0] = format[i].toLatin1(); + i++; + switch (fmt[0]) { + case 'b': + case 'e': + case 'i': { + ber_int_t v = va_arg(args, int); + ret = ber_printf(d->mBer, fmt, v); + break; + } + case 'B': { + // FIXME: QBitArray would be logical, but how to access the bits? + QByteArray *B = va_arg(args, QByteArray *); + int Bc = va_arg(args, int); + ret = ber_printf(d->mBer, fmt, B->data(), Bc); + break; + } + case 'o': { + QByteArray *o = va_arg(args, QByteArray *); + ret = ber_printf(d->mBer, fmt, o->data(), o->size()); + break; + } + case 'O': { + QByteArray *O = va_arg(args, QByteArray *); + struct berval bv; + bv.bv_val = (char *)O->data(); + bv.bv_len = O->size(); + ret = ber_printf(d->mBer, fmt, &bv); + break; + } + case 's': { + QByteArray *s = va_arg(args, QByteArray *); + ret = ber_printf(d->mBer, fmt, s->data()); + break; + break; + } + case 't': { + unsigned int t = va_arg(args, unsigned int); + ret = ber_printf(d->mBer, fmt, t); + break; + } + case 'v': { + QList *v = va_arg(args, QList *); + QVarLengthArray l(v->count() + 1); + int j; + for (j = 0; j < v->count(); j++) { + l[j] = v->at(j).data(); + } + l[j] = nullptr; + ret = ber_printf(d->mBer, fmt, l.data()); + break; + } + case 'V': { + QList *V = va_arg(args, QList *); + QVarLengthArray bv(V->count() + 1); + QVarLengthArray bvs(V->count()); + int j; + for (j = 0; j < V->count(); j++) { + bvs[j].bv_val = (char *)V->at(j).data(); + bvs[j].bv_len = V->at(j).size(); + bv[j] = &bvs[j]; + } + bv[V->count()] = nullptr; + ret = ber_printf(d->mBer, fmt, bv.data()); + break; + } + case 'n': + case '{': + case '}': + case '[': + case ']': + ret = ber_printf(d->mBer, fmt); + break; + default: + qCWarning(LDAP_LOG) << "Invalid BER format parameter: '" << fmt << "'"; + ret = -1; + } + qCDebug(LDAP_LOG) << "ber_printf format:" << fmt << "ret:" << ret; + if (ret == -1) { + break; + } + } + va_end(args); + return ret; +} + +int Ber::scanf(QString format, ...) +{ + char fmt[2]; + va_list args; + va_start(args, format); + fmt[1] = '\0'; + + int i = 0; + int ret = 0; + while (i < format.length()) { + fmt[0] = format[i].toLatin1(); + i++; + switch (fmt[0]) { + case 'l': + case 'b': + case 'e': + case 'i': { + int *v = va_arg(args, int *); + ret = ber_scanf(d->mBer, fmt, v); + break; + } + case 'B': { + // FIXME: QBitArray would be logical, but how to access the bits? + QByteArray *B = va_arg(args, QByteArray *); + int *Bc = va_arg(args, int *); + char *c; + ret = ber_scanf(d->mBer, fmt, &c, Bc); + if (ret != -1) { + *B = QByteArray(c, (*Bc + 7) / 8); + ber_memfree(c); + } + break; + } + case 'o': { + QByteArray *o = va_arg(args, QByteArray *); + struct berval bv; + ret = ber_scanf(d->mBer, fmt, &bv); + if (ret != -1) { + *o = QByteArray(bv.bv_val, bv.bv_len); + ber_memfree(bv.bv_val); + } + break; + } + case 'O': { + QByteArray *O = va_arg(args, QByteArray *); + struct berval *bv; + ret = ber_scanf(d->mBer, fmt, &bv); + if (ret != -1) { + *O = QByteArray(bv->bv_val, bv->bv_len); + ber_bvfree(bv); + } + break; + } + case 'm': { // the same as 'O', just *bv should not be freed. + QByteArray *m = va_arg(args, QByteArray *); + struct berval *bv; + ret = ber_scanf(d->mBer, fmt, &bv); + if (ret != -1) { + *m = QByteArray(bv->bv_val, bv->bv_len); + } + break; + } + case 'a': { + QByteArray *a = va_arg(args, QByteArray *); + char *c; + ret = ber_scanf(d->mBer, fmt, &c); + if (ret != -1) { + *a = QByteArray(c); + ber_memfree(c); + } + break; + } + + case 's': { + QByteArray *s = va_arg(args, QByteArray *); + char buf[255]; + ber_len_t l = sizeof(buf); + ret = ber_scanf(d->mBer, fmt, &buf, &l); + if (ret != -1) { + *s = QByteArray(buf, l); + } + break; + } + case 't': + case 'T': { + unsigned int *t = va_arg(args, unsigned int *); + ret = ber_scanf(d->mBer, fmt, t); + break; + } + case 'v': { + QList *v = va_arg(args, QList *); + char **c; + char **c2; + ret = ber_scanf(d->mBer, fmt, &c); + if (ret != -1 && c) { + c2 = c; + while (*c) { + v->append(QByteArray(*c)); + ber_memfree(*c); + c++; + } + ber_memfree((char *)c2); + } + break; + } + case 'V': { + QList *v = va_arg(args, QList *); + struct berval **bv; + struct berval **bv2; + ret = ber_scanf(d->mBer, fmt, &bv); + if (ret != -1 && bv) { + bv2 = bv; + while (*bv) { + v->append(QByteArray((*bv)->bv_val, (*bv)->bv_len)); + bv++; + } + ber_bvecfree(bv2); + } + break; + } + case 'x': + case 'n': + case '{': + case '}': + case '[': + case ']': + ret = ber_scanf(d->mBer, fmt); + break; + default: + qCWarning(LDAP_LOG) << "Invalid BER format parameter: '" << fmt << "'"; + ret = -1; + } + + qCDebug(LDAP_LOG) << "ber_scanf format:" << fmt << "ret:" << ret; + if (ret == -1) { + break; + } + } + va_end(args); + return ret; +} + +unsigned int Ber::peekTag(int &size) +{ + unsigned int ret; + ber_len_t len; + ret = ber_peek_tag(d->mBer, &len); + size = len; + return ret; +} + +unsigned int Ber::skipTag(int &size) +{ + unsigned int ret; + ber_len_t len; + ret = ber_skip_tag(d->mBer, &len); + size = len; + return ret; +} + +#else + +Ber::Ber() + : d(new BerPrivate) +{ + qCritical() << "LDAP support not compiled"; +} + +Ber::Ber(const QByteArray &) + : d(new BerPrivate) +{ + qCritical() << "LDAP support not compiled"; +} + +Ber::~Ber() +{ +} + +Ber::Ber(const Ber &) + : d(new BerPrivate) +{ + qCritical() << "LDAP support not compiled"; +} + +Ber &Ber::operator=(const Ber &that) +{ + if (this == &that) { + return *this; + } + qCritical() << "LDAP support not compiled"; + return *this; +} + +QByteArray Ber::flatten() const +{ + qCritical() << "LDAP support not compiled"; + return QByteArray(); +} + +int Ber::printf(QString format, ...) +{ + Q_UNUSED(format) + qCritical() << "LDAP support not compiled"; + return -1; +} + +int Ber::scanf(QString format, ...) +{ + Q_UNUSED(format) + qCritical() << "LDAP support not compiled"; + return -1; +} + +unsigned int Ber::peekTag(int &size) +{ + Q_UNUSED(size) + qCritical() << "LDAP support not compiled"; + return 0; +} + +unsigned int Ber::skipTag(int &size) +{ + Q_UNUSED(size) + qCritical() << "LDAP support not compiled"; + return 0; +} + +#endif diff --git a/src/core/ber.h b/src/core/ber.h new file mode 100644 index 0000000..e6fabc2 --- /dev/null +++ b/src/core/ber.h @@ -0,0 +1,114 @@ +/* + This file is part of libkldap. + SPDX-FileCopyrightText: 2004-2006 Szombathelyi György + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#pragma once + +#include + +#include "kldap_export.h" +#include +// clazy:excludeall=copyable-polymorphic + +namespace KLDAP +{ +/** + * This class allows encoding and decoding Qt structures using Basic + * Encoding Rules. + */ +class KLDAP_EXPORT Ber +{ +public: + /** + * Constructs a Ber object. + */ + Ber(); + /** + * Constructs a Ber object from the value. + */ + explicit Ber(const QByteArray &value); + /** + * Destroys the Ber object. + */ + ~Ber(); + + Ber(const Ber &that); + Ber &operator=(const Ber &that); + + /** + * Returns the Ber object as a flat QByteArray. + */ + Q_REQUIRED_RESULT QByteArray flatten() const; + + /** + * Appends the data with the specified format to the Ber object. + * This function works like printf, except that it's appending the + * parameters, not replacing them. The allowed format characters and + * the expected parameter types are: + *
      + *
    • + * b Boolean. An int parameter should be supplied. + * A boolean element is output. + *
    • + *
    • + * e Enumeration. An int parameter should be supplied. + * An enumeration element is output. + *
    • + *
    • + * i Integer. An int parameter should be supplied. + * An integer element is output. + *
    • + *
    • + * B Bitstring. A pointer to a QByteArray which contains the + * bitstring is supplied, followed by the number of bits in the + * bitstring. A bitstring element is output. + *
    • + *
    • + * n Null. No parameter is required. A null element is output. + *
    • + *
    • + * O,o,s Octet string. A QByteArray * is supplied. + * An octet string element is output. + * Due to versatility of Qt's QByteArray, these three format + * strings are all accepts the same parameter, but using the 's' + * format the string will be encoded only to the first zero + * character (a null terminated string)! + *
    • + *
    • + * t Tag. An int specifying the tag to give the next element + * is provided. This works across calls. + *
    • + *
    • + * v,V Several octet strings. A QList* is supplied. + * Note that a construct like ’{v}’ is required to get an actual + * SEQUENCE OF octet strings. Also note that the 'v' format recognizes + * the QByteArray only to the first zero character, so it's not + * appropriate for binary data, just only for null terminated strings! + *
    • + *
    • + * { Begin sequence. No parameter is required. + *
    • + *
    • + * } End sequence. No parameter is required. + *
    • + *
    • + * [ Begin set. No parameter is required. + *
    • + *
    • + * ] End set. No parameter is required. + *
    • + *
    + */ + int printf(QString format, ...); // Passing by-value since it's used by va_start + int scanf(QString format, ...); + unsigned int peekTag(int &size); + unsigned int skipTag(int &size); + +private: + class BerPrivate; + std::unique_ptr const d; +}; +} diff --git a/src/core/ldapconnection.cpp b/src/core/ldapconnection.cpp new file mode 100644 index 0000000..4cecd0a --- /dev/null +++ b/src/core/ldapconnection.cpp @@ -0,0 +1,442 @@ +/* + This file is part of libkldap. + SPDX-FileCopyrightText: 2004-2006 Szombathelyi György + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "ldapconnection.h" +#include "kldap_config.h" // LDAP_FOUND +#include "ldapdefs.h" + +#include "ldap_debug.h" +#include +#include + +#include +static const sasl_callback_t callbacks[] = {{SASL_CB_ECHOPROMPT, nullptr, nullptr}, + {SASL_CB_NOECHOPROMPT, nullptr, nullptr}, + {SASL_CB_GETREALM, nullptr, nullptr}, + {SASL_CB_USER, nullptr, nullptr}, + {SASL_CB_AUTHNAME, nullptr, nullptr}, + {SASL_CB_PASS, nullptr, nullptr}, + {SASL_CB_CANON_USER, nullptr, nullptr}, + {SASL_CB_LIST_END, nullptr, nullptr}}; + +static bool ldapoperation_sasl_initialized = false; + +#if LDAP_FOUND +#if !HAVE_WINLDAP_H +#include +#include +#else +#include +#endif // HAVE_WINLDAP_H + +#ifndef LDAP_OPT_SUCCESS +#define LDAP_OPT_SUCCESS 0 +#endif + +#endif + +using namespace KLDAP; + +class Q_DECL_HIDDEN LdapConnection::LdapConnectionPrivate +{ +public: + LdapConnectionPrivate(); + LdapServer mServer; + QString mConnectionError; + +#if LDAP_FOUND + LDAP *mLDAP; +#else + void *mLDAP; +#endif + sasl_conn_t *mSASLconn; +}; + +LdapConnection::LdapConnectionPrivate::LdapConnectionPrivate() +{ + mSASLconn = nullptr; + if (!ldapoperation_sasl_initialized) { + sasl_client_init(nullptr); + ldapoperation_sasl_initialized = true; + } +} + +LdapConnection::LdapConnection() + : d(new LdapConnectionPrivate) +{ + d->mLDAP = nullptr; +} + +LdapConnection::LdapConnection(const LdapUrl &url) + : d(new LdapConnectionPrivate) +{ + d->mLDAP = nullptr; + setUrl(url); +} + +LdapConnection::LdapConnection(const LdapServer &server) + : d(new LdapConnectionPrivate) +{ + d->mLDAP = nullptr; + setServer(server); +} + +LdapConnection::~LdapConnection() +{ + close(); +} + +void LdapConnection::setUrl(const LdapUrl &url) +{ + d->mServer.setUrl(url); +} + +void LdapConnection::setServer(const LdapServer &server) +{ + d->mServer = server; +} + +const LdapServer &LdapConnection::server() const +{ + return d->mServer; +} + +void *LdapConnection::handle() const +{ + return (void *)d->mLDAP; +} + +void *LdapConnection::saslHandle() const +{ + return (void *)d->mSASLconn; +} + +QString LdapConnection::errorString(int code) +{ + // No translated error messages yet +#if LDAP_FOUND + return QString::fromUtf8(ldap_err2string(code)); +#else + return i18n("No LDAP Support..."); +#endif +} + +QString LdapConnection::saslErrorString() const +{ + const char *str; + str = sasl_errdetail(d->mSASLconn); + return QString::fromLocal8Bit(str); +} + +QString LdapConnection::connectionError() const +{ + return d->mConnectionError; +} + +#if LDAP_FOUND +int LdapConnection::getOption(int option, void *value) const +{ + Q_ASSERT(d->mLDAP); + return ldap_get_option(d->mLDAP, option, value); +} + +int LdapConnection::setOption(int option, void *value) +{ + Q_ASSERT(d->mLDAP); + return ldap_set_option(d->mLDAP, option, value); +} + +int LdapConnection::ldapErrorCode() const +{ + Q_ASSERT(d->mLDAP); + int err; + ldap_get_option(d->mLDAP, LDAP_OPT_ERROR_NUMBER, &err); + return err; +} + +QString LdapConnection::ldapErrorString() const +{ + Q_ASSERT(d->mLDAP); + char *errmsg; + ldap_get_option(d->mLDAP, LDAP_OPT_ERROR_STRING, &errmsg); + QString msg = QString::fromLocal8Bit(errmsg); + free(errmsg); + return msg; +} + +bool LdapConnection::setSizeLimit(int sizelimit) +{ + Q_ASSERT(d->mLDAP); + qCDebug(LDAP_LOG) << "sizelimit:" << sizelimit; + if (setOption(LDAP_OPT_SIZELIMIT, &sizelimit) != LDAP_OPT_SUCCESS) { + return false; + } + return true; +} + +int LdapConnection::sizeLimit() const +{ + Q_ASSERT(d->mLDAP); + int sizelimit; + if (getOption(LDAP_OPT_SIZELIMIT, &sizelimit) != LDAP_OPT_SUCCESS) { + return -1; + } + return sizelimit; +} + +bool LdapConnection::setTimeLimit(int timelimit) +{ + Q_ASSERT(d->mLDAP); + qCDebug(LDAP_LOG) << "timelimit:" << timelimit; + if (setOption(LDAP_OPT_TIMELIMIT, &timelimit) != LDAP_OPT_SUCCESS) { + return false; + } + return true; +} + +int LdapConnection::timeLimit() const +{ + Q_ASSERT(d->mLDAP); + int timelimit; + if (getOption(LDAP_OPT_TIMELIMIT, &timelimit) != LDAP_OPT_SUCCESS) { + return -1; + } + return timelimit; +} + +int LdapConnection::connect() +{ + int ret; + QString url; + if (d->mLDAP) { + close(); + } + + int version = d->mServer.version(); + int timeout = d->mServer.timeout(); + + url = d->mServer.security() == LdapServer::SSL ? QStringLiteral("ldaps") : QStringLiteral("ldap"); + url += QLatin1String("://"); + url += d->mServer.host(); + url += QLatin1Char(':'); + url += QString::number(d->mServer.port()); + qCDebug(LDAP_LOG) << "ldap url:" << url; +#if HAVE_LDAP_INITIALIZE + ret = ldap_initialize(&d->mLDAP, url.toLatin1().constData()); +#else + d->mLDAP = ldap_init(d->mServer.host().toLatin1().data(), d->mServer.port()); + if (d->mLDAP == 0) { + ret = -1; + } else { + ret = LDAP_SUCCESS; + } +#endif + if (ret != LDAP_SUCCESS) { + d->mConnectionError = i18n("An error occurred during the connection initialization phase."); + return ret; + } + + qCDebug(LDAP_LOG) << "setting version to:" << version; + if (setOption(LDAP_OPT_PROTOCOL_VERSION, &version) != LDAP_OPT_SUCCESS) { + ret = ldapErrorCode(); + d->mConnectionError = i18n("Cannot set protocol version to %1.", version); + close(); + return ret; + } + +#if defined(LDAP_OPT_TIMEOUT) + qCDebug(LDAP_LOG) << "setting timeout to:" << timeout; + + if (timeout) { + if (setOption(LDAP_OPT_TIMEOUT, &timeout) != LDAP_OPT_SUCCESS) { + ret = ldapErrorCode(); + d->mConnectionError = i18np("Cannot set timeout to %1 second.", "Cannot set timeout to %1 seconds.", timeout); + close(); + return ret; + } + } +#endif + + qCDebug(LDAP_LOG) << "setting security to:" << d->mServer.security(); + if (d->mServer.security() != LdapServer::None) { + bool initContext = false; + if (d->mServer.tlsCACertFile().isEmpty() == false) { + if (setOption(LDAP_OPT_X_TLS_CACERTFILE, d->mServer.tlsCACertFile().toUtf8().data()) != LDAP_OPT_SUCCESS) { + d->mConnectionError = i18n("Could not set CA certificate file."); + return -1; + } + initContext = true; + } + + if (d->mServer.tlsRequireCertificate() != LdapServer::TLSReqCertDefault) { + int reqcert; + switch (d->mServer.tlsRequireCertificate()) { + case LdapServer::TLSReqCertAllow: + reqcert = LDAP_OPT_X_TLS_ALLOW; + break; + case LdapServer::TLSReqCertDemand: + reqcert = LDAP_OPT_X_TLS_DEMAND; + break; + case LdapServer::TLSReqCertHard: + reqcert = LDAP_OPT_X_TLS_HARD; + break; + case LdapServer::TLSReqCertNever: + reqcert = LDAP_OPT_X_TLS_NEVER; + break; + case LdapServer::TLSReqCertTry: + reqcert = LDAP_OPT_X_TLS_TRY; + break; + default: + d->mConnectionError = i18n("Invalid TLS require certificate mode."); + return -1; + } + + if (setOption(LDAP_OPT_X_TLS_REQUIRE_CERT, &reqcert) != LDAP_OPT_SUCCESS) { + d->mConnectionError = i18n("Could not set TLS require certificate mode."); + return -1; + } + initContext = true; + } + + if (initContext) { + int isServer = 0; + if (setOption(LDAP_OPT_X_TLS_NEWCTX, &isServer) != LDAP_OPT_SUCCESS) { + d->mConnectionError = i18n("Could not initialize new TLS context."); + return -1; + } + } + } + + if (d->mServer.security() == LdapServer::TLS) { + qCDebug(LDAP_LOG) << "start TLS"; + +#if HAVE_LDAP_START_TLS_S + if ((ret = ldap_start_tls_s(d->mLDAP, nullptr, nullptr)) != LDAP_SUCCESS) { + d->mConnectionError = ldapErrorString(); + close(); + return ret; + } +#else + close(); + d->mConnectionError = i18n("TLS support not available in the LDAP client libraries."); + return -1; +#endif + } + + qCDebug(LDAP_LOG) << "setting sizelimit to:" << d->mServer.sizeLimit(); + if (d->mServer.sizeLimit()) { + if (!setSizeLimit(d->mServer.sizeLimit())) { + ret = ldapErrorCode(); + close(); + d->mConnectionError = i18n("Cannot set size limit."); + return ret; + } + } + + qCDebug(LDAP_LOG) << "setting timelimit to:" << d->mServer.timeLimit(); + if (d->mServer.timeLimit()) { + if (!setTimeLimit(d->mServer.timeLimit())) { + ret = ldapErrorCode(); + close(); + d->mConnectionError = i18n("Cannot set time limit."); + return ret; + } + } + + qCDebug(LDAP_LOG) << "initializing SASL client"; + const int saslresult = sasl_client_new("ldap", d->mServer.host().toLatin1().constData(), nullptr, nullptr, callbacks, 0, &d->mSASLconn); + if (saslresult != SASL_OK) { + d->mConnectionError = i18n("Cannot initialize the SASL client."); + return KLDAP_SASL_ERROR; + } + + return 0; +} + +void LdapConnection::close() +{ + if (d->mLDAP) { +#if HAVE_LDAP_UNBIND_EXT + ldap_unbind_ext(d->mLDAP, nullptr, nullptr); +#else + ldap_unbind(d->mLDAP); +#endif + } + d->mLDAP = nullptr; + if (d->mSASLconn) { + sasl_dispose(&d->mSASLconn); + d->mSASLconn = nullptr; + } + qCDebug(LDAP_LOG) << "connection closed!"; +} + +#else // LDAP_FOUND + +int LdapConnection::getOption(int option, void *value) const +{ + qCritical() << "No LDAP support..."; + return -1; +} + +int LdapConnection::setOption(int option, void *value) +{ + qCritical() << "No LDAP support..."; + return -1; +} + +int LdapConnection::ldapErrorCode() const +{ + qCritical() << "No LDAP support..."; + return -1; +} + +QString LdapConnection::ldapErrorString() const +{ + qCritical() << "No LDAP support..."; + return QString(); +} + +bool LdapConnection::setSizeLimit(int sizelimit) +{ + qCritical() << "No LDAP support..."; + return false; +} + +int LdapConnection::sizeLimit() const +{ + qCritical() << "No LDAP support..."; + return -1; +} + +bool LdapConnection::setTimeLimit(int timelimit) +{ + qCritical() << "No LDAP support..."; + return false; +} + +int LdapConnection::timeLimit() const +{ + qCritical() << "No LDAP support..."; + return -1; +} + +int LdapConnection::connect() +{ + d->mConnectionError = i18n( + "LDAP support not compiled in. Please recompile libkldap with the " + "OpenLDAP (or compatible) client libraries, or complain to your " + "distribution packagers."); + qCritical() << "No LDAP support..."; + return -1; +} + +void LdapConnection::close() +{ + qCritical() << "No LDAP support..."; +} + +#endif diff --git a/src/core/ldapconnection.h b/src/core/ldapconnection.h new file mode 100644 index 0000000..aff5a7a --- /dev/null +++ b/src/core/ldapconnection.h @@ -0,0 +1,123 @@ +/* + This file is part of libkldap. + SPDX-FileCopyrightText: 2004-2006 Szombathelyi György + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#pragma once + +#include +#include + +#include "kldap_export.h" +#include "ldapserver.h" +#include "ldapurl.h" + +namespace KLDAP +{ +/** + * @brief + * This class represents a connection to an LDAP server. + */ +class KLDAP_EXPORT LdapConnection +{ +public: + enum SASL_Fields { SASL_Authname = 0x1, SASL_Authzid = 0x2, SASL_Realm = 0x4, SASL_Password = 0x8 }; + + /** Constructs an LdapConnection object */ + LdapConnection(); + /** Constructs an LdapConnection with the parameters given in url */ + explicit LdapConnection(const LdapUrl &url); + /** Constructs an LdapConnection with the parameters given in server */ + explicit LdapConnection(const LdapServer &server); + + ~LdapConnection(); + + /** + * Sets the connection parameters via the specified url. After this, + * you need to call connect() to connect with the new parameters. + * @param url the URL containing the connection parameters + */ + void setUrl(const LdapUrl &url); + /** + * Returns the connection parameters which was specified with an LDAP Url + * or a LdapServer structure. + */ + const LdapServer &server() const; + /** + * Sets the connection parameters via the specified server structure. After + * this, you need to call connect() to connect with the new parameters. + * @param server the server object containing the connection parameters + */ + void setServer(const LdapServer &server); + + /** + * Sets up the connection parameters with creating a handle to the LDAP server. + * Also sets sizelimit and timelimit and starts TLS if it is requested. + * Returns 0 if successful, else returns an LDAP error code, and an error + * string which is available via connectionError(). + */ + int connect(); + /** + * Returns a translated error string if connect() failed. + */ + Q_REQUIRED_RESULT QString connectionError() const; + /** + * Closes the LDAP connection. + */ + void close(); + + /** Sets the size limit for the connection. + * @param sizelimit the connection size limit to set + */ + Q_REQUIRED_RESULT bool setSizeLimit(int sizelimit); + /** Returns the current size limit. */ + Q_REQUIRED_RESULT int sizeLimit() const; + + /** Sets the time limit for the connection. + * @param timelimit the connection time limit to set + */ + Q_REQUIRED_RESULT bool setTimeLimit(int timelimit); + /** Returns the current time limit. */ + Q_REQUIRED_RESULT int timeLimit() const; + + /** Gets an option from the connection. The option value can be client + * library specific, so avoid this function if possible + * @param option the connection option to return + * @param value the value of option to get + */ + int getOption(int option, void *value) const; + /** Sets an option in the connection. The option value can be client + * library specific, so avoid this function if possible */ + int setOption(int option, void *value); + + /** Returns the LDAP error code from the last operation */ + Q_REQUIRED_RESULT int ldapErrorCode() const; + /** Returns the LDAP error string from the last operation */ + Q_REQUIRED_RESULT QString ldapErrorString() const; + /** Returns a translated error message from the specified LDAP error code */ + Q_REQUIRED_RESULT static QString errorString(int code); + + /** Returns the SASL error string from the last SASL operation */ + Q_REQUIRED_RESULT QString saslErrorString() const; + + /** + * Returns the opaqe client-library specific LDAP object. + * Avoid its usage if you can. + */ + void *handle() const; + + /** + * Returns the opaqe sasl-library specific SASL object. + * Avoid its usage if you can. + */ + void *saslHandle() const; + +private: + class LdapConnectionPrivate; + std::unique_ptr const d; + + Q_DISABLE_COPY(LdapConnection) +}; +} diff --git a/src/core/ldapcontrol.cpp b/src/core/ldapcontrol.cpp new file mode 100644 index 0000000..7bdbaee --- /dev/null +++ b/src/core/ldapcontrol.cpp @@ -0,0 +1,136 @@ +/* + This file is part of libkldap. + SPDX-FileCopyrightText: 2004-2006 Szombathelyi György + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "ldapcontrol.h" +#include "ber.h" + +#include + +using namespace KLDAP; + +class LdapControlPrivate : public QSharedData +{ +public: + LdapControlPrivate() = default; + + LdapControlPrivate(const LdapControlPrivate &other) + + = default; + + QString mOid; + QByteArray mValue; + bool mCritical = false; +}; + +LdapControl::LdapControl() + : d(new LdapControlPrivate) +{ + setControl(QString(), QByteArray(), false); +} + +LdapControl::LdapControl(const QString &oid, const QByteArray &value, bool critical) + : d(new LdapControlPrivate) +{ + setControl(oid, value, critical); +} + +LdapControl::LdapControl(const LdapControl &that) + : d(that.d) +{ + setControl(that.d->mOid, that.d->mValue, that.d->mCritical); +} + +LdapControl &LdapControl::operator=(const LdapControl &that) +{ + if (this != &that) { + d = that.d; + } + + setControl(that.d->mOid, that.d->mValue, that.d->mCritical); + + return *this; +} + +LdapControl::~LdapControl() = default; + +void LdapControl::setControl(const QString &oid, const QByteArray &value, bool critical) +{ + d->mOid = oid; + d->mValue = value; + d->mCritical = critical; +} + +QString LdapControl::oid() const +{ + return d->mOid; +} + +QByteArray LdapControl::value() const +{ + return d->mValue; +} + +bool LdapControl::critical() const +{ + return d->mCritical; +} + +void LdapControl::setOid(const QString &oid) +{ + d->mOid = oid; +} + +void LdapControl::setValue(const QByteArray &value) +{ + d->mValue = value; +} + +void LdapControl::setCritical(bool critical) +{ + d->mCritical = critical; +} + +int LdapControl::parsePageControl(QByteArray &cookie) const +{ + if (d->mOid != QLatin1String("1.2.840.113556.1.4.319")) { + return -1; + } + + Ber ber(d->mValue); + int size; + if (ber.scanf(QStringLiteral("{iO}"), &size, &cookie) == -1) { + return -1; + } else { + return size; + } +} + +LdapControl LdapControl::createPageControl(int pagesize, const QByteArray &cookie) +{ + LdapControl control; + Ber ber; + + ber.printf(QStringLiteral("{iO}"), pagesize, &cookie); + control.setOid(QStringLiteral("1.2.840.113556.1.4.319")); + control.setValue(ber.flatten()); + return control; +} + +void LdapControl::insert(LdapControls &list, const LdapControl &ctrl) +{ + LdapControls::iterator it; + LdapControls::iterator endit = list.end(); + const QString oid = ctrl.oid(); + + for (it = list.begin(); it != endit; ++it) { + if (it->oid() == oid) { + *it = ctrl; + return; + } + } + list.append(ctrl); +} diff --git a/src/core/ldapcontrol.h b/src/core/ldapcontrol.h new file mode 100644 index 0000000..849a0c7 --- /dev/null +++ b/src/core/ldapcontrol.h @@ -0,0 +1,101 @@ +/* + This file is part of libkldap. + SPDX-FileCopyrightText: 2004-2006 Szombathelyi György + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#pragma once + +#include +#include +#include +class LdapControlPrivate; + +#include "kldap_export.h" + +// clazy:excludeall=copyable-polymorphic + +namespace KLDAP +{ +class LdapControl; +using LdapControls = QVector; + +/** + @brief + This class represents an LDAP Control +*/ +class KLDAP_EXPORT LdapControl +{ +public: + /** + * Creates an empty control. + */ + LdapControl(); + /** + * Creates a control with the given OID, value and criticality. + */ + LdapControl(const QString &oid, const QByteArray &value, bool critical = false); + + LdapControl(const LdapControl &that); + LdapControl &operator=(const LdapControl &that); + /** + * Destroys the control object. + */ + ~LdapControl(); + /** + * Sets the control's OID, value and criticality. + */ + void setControl(const QString &oid, const QByteArray &value, bool critical = false); + /** + * Sets the control's OID. + */ + void setOid(const QString &oid); + /** + * Sets the control's value. + */ + void setValue(const QByteArray &value); + /** + * Sets the control's criticality. + */ + void setCritical(bool critical); + /** + * Returns the control's OID. + */ + Q_REQUIRED_RESULT QString oid() const; + /** + * Returns the control's value. + */ + Q_REQUIRED_RESULT QByteArray value() const; + /** + * Returns the control's criticality. + */ + Q_REQUIRED_RESULT bool critical() const; + + /** + * Parses a paging results control, which the server returned. + * Puts the server's cookie into @p cookie, and returns the estimated + * result set size. If the OID is not the page control's OID, or the + * value cannot be decoded, returns -1. + * @param cookie the cookie to hold server's cookie + */ + Q_REQUIRED_RESULT int parsePageControl(QByteArray &cookie) const; + /** + * Creates a paging search control. + */ + Q_REQUIRED_RESULT static LdapControl createPageControl(int pagesize, const QByteArray &cookie = QByteArray()); + + /** + * Inserts a unique control against a list of controls. + * If the control already exists in the list is is updated, otherwise + * it is appended to the list. + * @param list the current list of controls + * @param ctrl the control to insert + * @since 4.4 + */ + static void insert(LdapControls &list, const LdapControl &ctrl); + +private: + QSharedDataPointer d; +}; +} diff --git a/src/core/ldapdefs.h b/src/core/ldapdefs.h new file mode 100644 index 0000000..edffdc6 --- /dev/null +++ b/src/core/ldapdefs.h @@ -0,0 +1,145 @@ +/* + This file is part of libkldap. + SPDX-FileCopyrightText: 2004-2006 Szombathelyi György + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#pragma once + +/** + * LDAP Error codes. + * These codes taken from openldap's ldap.h, and prefixed with KLDAP_ + * instead of LDAP_, just for applications which uses the kldap library + * doesn't need to include openldap headers + */ + +#define KLDAP_SUCCESS 0x00 + +#define KLDAP_RANGE(n, x, y) (((x) <= (n)) && ((n) <= (y))) + +#define KLDAP_OPERATIONS_ERROR 0x01 +#define KLDAP_PROTOCOL_ERROR 0x02 +#define KLDAP_TIMELIMIT_EXCEEDED 0x03 +#define KLDAP_SIZELIMIT_EXCEEDED 0x04 +#define KLDAP_COMPARE_FALSE 0x05 +#define KLDAP_COMPARE_TRUE 0x06 +#define KLDAP_AUTH_METHOD_NOT_SUPPORTED 0x07 +#define KLDAP_STRONG_AUTH_NOT_SUPPORTED KLDAP_AUTH_METHOD_NOT_SUPPORTED +#define KLDAP_STRONG_AUTH_REQUIRED 0x08 +#define KLDAP_STRONGER_AUTH_REQUIRED KLDAP_STRONG_AUTH_REQUIRED +#define KLDAP_PARTIAL_RESULTS 0x09 /* LDAPv2+ (not LDAPv3) */ + +#define KLDAP_REFERRAL 0x0a /* LDAPv3 */ +#define KLDAP_ADMINLIMIT_EXCEEDED 0x0b /* LDAPv3 */ +#define KLDAP_UNAVAILABLE_CRITICAL_EXTENSION 0x0c /* LDAPv3 */ +#define KLDAP_CONFIDENTIALITY_REQUIRED 0x0d /* LDAPv3 */ +#define KLDAP_SASL_BIND_IN_PROGRESS 0x0e /* LDAPv3 */ + +#define KLDAP_ATTR_ERROR(n) KLDAP_RANGE((n), 0x10, 0x15) /* 16-21 */ + +#define KLDAP_NO_SUCH_ATTRIBUTE 0x10 +#define KLDAP_UNDEFINED_TYPE 0x11 +#define KLDAP_INAPPROPRIATE_MATCHING 0x12 +#define KLDAP_CONSTRAINT_VIOLATION 0x13 +#define KLDAP_TYPE_OR_VALUE_EXISTS 0x14 +#define KLDAP_INVALID_SYNTAX 0x15 + +#define KLDAP_NAME_ERROR(n) KLDAP_RANGE((n), 0x20, 0x24) /* 32-34,36 */ + +#define KLDAP_NO_SUCH_OBJECT 0x20 +#define KLDAP_ALIAS_PROBLEM 0x21 +#define KLDAP_INVALID_DN_SYNTAX 0x22 +#define KLDAP_IS_LEAF 0x23 /* not LDAPv3 */ +#define KLDAP_ALIAS_DEREF_PROBLEM 0x24 + +#define KLDAP_SECURITY_ERROR(n) KLDAP_RANGE((n), 0x2F, 0x32) /* 47-50 */ + +#define KLDAP_PROXY_AUTHZ_FAILURE 0x2F /* LDAPv3 proxy authorization */ +#define KLDAP_INAPPROPRIATE_AUTH 0x30 +#define KLDAP_INVALID_CREDENTIALS 0x31 +#define KLDAP_INSUFFICIENT_ACCESS 0x32 + +#define KLDAP_SERVICE_ERROR(n) KLDAP_RANGE((n), 0x33, 0x36) /* 51-54 */ + +#define KLDAP_BUSY 0x33 +#define KLDAP_UNAVAILABLE 0x34 +#define KLDAP_UNWILLING_TO_PERFORM 0x35 +#define KLDAP_LOOP_DETECT 0x36 + +#define KLDAP_UPDATE_ERROR(n) KLDAP_RANGE((n), 0x40, 0x47) /* 64-69,71 */ + +#define KLDAP_NAMING_VIOLATION 0x40 +#define KLDAP_OBJECT_CLASS_VIOLATION 0x41 +#define KLDAP_NOT_ALLOWED_ON_NONLEAF 0x42 +#define KLDAP_NOT_ALLOWED_ON_RDN 0x43 +#define KLDAP_ALREADY_EXISTS 0x44 +#define KLDAP_NO_OBJECT_CLASS_MODS 0x45 +#define KLDAP_RESULTS_TOO_LARGE 0x46 /* CLDAP */ +#define KLDAP_AFFECTS_MULTIPLE_DSAS 0x47 + +#define KLDAP_OTHER 0x50 + +/* LCUP operation codes (113-117) - not implemented */ +#define KLDAP_CUP_RESOURCES_EXHAUSTED 0x71 +#define KLDAP_CUP_SECURITY_VIOLATION 0x72 +#define KLDAP_CUP_INVALID_DATA 0x73 +#define KLDAP_CUP_UNSUPPORTED_SCHEME 0x74 +#define KLDAP_CUP_RELOAD_REQUIRED 0x75 + +/* Cancel operation codes (118-121) */ +#define KLDAP_CANCELLED 0x76 +#define KLDAP_NO_SUCH_OPERATION 0x77 +#define KLDAP_TOO_LATE 0x78 + +#define KLDAP_CANNOT_CANCEL 0x79 + +/* Assertion control (122) */ +#define KLDAP_ASSERTION_FAILED 0x7A + +/* Experimental result codes */ +#define KLDAP_E_ERROR(n) KLDAP_RANGE((n), 0x1000, 0x3FFF) + +/* LDAP Sync (4096) */ +#define KLDAP_SYNC_REFRESH_REQUIRED 0x1000 + +/* Private Use result codes */ +#define KLDAP_X_ERROR(n) KLDAP_RANGE((n), 0x4000, 0xFFFF) + +#define KLDAP_X_SYNC_REFRESH_REQUIRED 0x4100 /* defunct */ +#define KLDAP_X_ASSERTION_FAILED 0x410f /* defunct */ + +/* for the LDAP No-Op control */ +#define KLDAP_X_NO_OPERATION 0x410e + +/** API Error Codes + * + * Based on draft-ietf-ldap-c-api-xx + * but with new negative code values + */ +#define KLDAP_API_ERROR(n) ((n) < 0) +#define KLDAP_API_RESULT(n) ((n) <= 0) + +#define KLDAP_SERVER_DOWN (-1) +#define KLDAP_LOCAL_ERROR (-2) +#define KLDAP_ENCODING_ERROR (-3) +#define KLDAP_DECODING_ERROR (-4) +#define KLDAP_TIMEOUT (-5) +#define KLDAP_AUTH_UNKNOWN (-6) +#define KLDAP_FILTER_ERROR (-7) +#define KLDAP_USER_CANCELLED (-8) +#define KLDAP_PARAM_ERROR (-9) +#define KLDAP_NO_MEMORY (-10) +#define KLDAP_CONNECT_ERROR (-11) +#define KLDAP_NOT_SUPPORTED (-12) +#define KLDAP_CONTROL_NOT_FOUND (-13) +#define KLDAP_NO_RESULTS_RETURNED (-14) +#define KLDAP_MORE_RESULTS_TO_RETURN (-15) /* Obsolete */ +#define KLDAP_CLIENT_LOOP (-16) +#define KLDAP_REFERRAL_LIMIT_EXCEEDED (-17) + +/* + * KLDAP Specific + */ + +#define KLDAP_SASL_ERROR -0xff diff --git a/src/core/ldapdn.cpp b/src/core/ldapdn.cpp new file mode 100644 index 0000000..7cfd023 --- /dev/null +++ b/src/core/ldapdn.cpp @@ -0,0 +1,191 @@ +/* + This file is part of libkldap. + SPDX-FileCopyrightText: 2006 Sean Harmer + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "ldapdn.h" + +#include "ldap_debug.h" +#include + +using namespace KLDAP; + +class Q_DECL_HIDDEN LdapDN::LdapDNPrivate +{ +public: + LdapDNPrivate() = default; + + ~LdapDNPrivate() = default; + + Q_REQUIRED_RESULT bool isValidRDNString(const QString &rdn) const; + Q_REQUIRED_RESULT QStringList splitOnNonEscapedChar(const QString &rdn, QChar ch) const; + + QString m_dn; +}; + +bool LdapDN::LdapDNPrivate::isValidRDNString(const QString &rdn) const +{ + qCDebug(LDAP_LOG) << "Testing rdn:" << rdn; + + // If it is a muli-valued rdn, split it into its constituent parts + const QStringList rdnParts = splitOnNonEscapedChar(rdn, QLatin1Char('+')); + const int rdnPartsSize(rdnParts.size()); + if (rdnPartsSize > 1) { + for (int i = 0; i < rdnPartsSize; i++) { + if (!isValidRDNString(rdnParts.at(i))) { + return false; + } + } + return true; + } + // Split the rdn into the attribute name and value parts + const auto components = QStringView(rdn).split(QLatin1Char('=')); + // We should have exactly two parts + if (components.size() != 2) { + return false; + } + + return true; +} + +QStringList LdapDN::LdapDNPrivate::splitOnNonEscapedChar(const QString &str, QChar ch) const +{ + QStringList strParts; + int index = 0; + int searchFrom = 0; + int strPartStartIndex = 0; + while ((index = str.indexOf(ch, searchFrom)) != -1) { + const QChar prev = str[std::max(0, index - 1)]; + if (prev != QLatin1Char('\\')) { + // Found a component of a multi-valued RDN + // qCDebug(LDAP_LOG) << "Found" << ch << "at index" << index; + QString tmp = str.mid(strPartStartIndex, index - strPartStartIndex); + // qCDebug(LDAP_LOG) << "Adding part:" << tmp; + strParts.append(tmp); + strPartStartIndex = index + 1; + } + + searchFrom = index + 1; + } + + // Add on the part after the last found delimiter + QString tmp = str.mid(strPartStartIndex); + // qCDebug(LDAP_LOG) << "Adding part:" << tmp; + strParts.append(tmp); + + return strParts; +} + +LdapDN::LdapDN() + : d(new LdapDNPrivate) +{ +} + +LdapDN::LdapDN(const QString &dn) + : d(new LdapDNPrivate) +{ + d->m_dn = dn; +} + +LdapDN::LdapDN(const LdapDN &that) + : d(new LdapDNPrivate) +{ + *d = *that.d; +} + +LdapDN &LdapDN::operator=(const LdapDN &that) +{ + if (this == &that) { + return *this; + } + + *d = *that.d; + return *this; +} + +LdapDN::~LdapDN() = default; + +void LdapDN::clear() +{ + d->m_dn.clear(); +} + +bool LdapDN::isEmpty() const +{ + return d->m_dn.isEmpty(); +} + +QString LdapDN::toString() const +{ + return d->m_dn; +} + +QString LdapDN::toString(int depth) const +{ + const QStringList rdns = d->splitOnNonEscapedChar(d->m_dn, QLatin1Char(',')); + if (depth >= rdns.size()) { + return {}; + } + + // Construct a DN down to the requested depth + QString dn; + for (int i = depth; i >= 0; i--) { + dn += rdns.at(rdns.size() - 1 - i) + QLatin1Char(','); + qCDebug(LDAP_LOG) << "dn =" << dn; + } + dn.chop(1); // Strip off the extraneous comma + + return dn; +} + +QString LdapDN::rdnString() const +{ + /** \TODO We should move this into the d pointer as we calculate rdns quite a lot */ + const QStringList rdns = d->splitOnNonEscapedChar(d->m_dn, QLatin1Char(',')); + return rdns.at(0); +} + +QString LdapDN::rdnString(int depth) const +{ + const QStringList rdns = d->splitOnNonEscapedChar(d->m_dn, QLatin1Char(',')); + if (depth >= rdns.size()) { + return {}; + } + return rdns.at(rdns.size() - 1 - depth); +} + +bool LdapDN::isValid() const +{ + qCDebug(LDAP_LOG) << "Testing dn:" << d->m_dn; + + // Break the string into rdn's + const QStringList rdns = d->splitOnNonEscapedChar(d->m_dn, QLatin1Char(',')); + + // Test to see if each rdn is valid + const int rdnsSize(rdns.size()); + for (int i = 0; i < rdnsSize; i++) { + if (!d->isValidRDNString(rdns.at(i))) { + return false; + } + } + + return true; +} + +int LdapDN::depth() const +{ + const QStringList rdns = d->splitOnNonEscapedChar(d->m_dn, QLatin1Char(',')); + return rdns.size(); +} + +bool LdapDN::operator==(const LdapDN &rhs) const +{ + return d->m_dn == rhs.d->m_dn; +} + +bool LdapDN::operator!=(const LdapDN &rhs) const +{ + return d->m_dn != rhs.d->m_dn; +} diff --git a/src/core/ldapdn.h b/src/core/ldapdn.h new file mode 100644 index 0000000..f8762c2 --- /dev/null +++ b/src/core/ldapdn.h @@ -0,0 +1,70 @@ +/* + This file is part of libkldap. + SPDX-FileCopyrightText: 2006 Sean Harmer + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#pragma once + +#include "kldap_export.h" +#include +#include +namespace KLDAP +{ +class KLDAP_EXPORT LdapDN +{ +public: + explicit LdapDN(); + explicit LdapDN(const QString &dn); + + LdapDN(const LdapDN &that); + LdapDN &operator=(const LdapDN &that); + + ~LdapDN(); + + void clear(); + + bool isEmpty() const; + + /** + * \returns A QString representing the DN. + */ + Q_REQUIRED_RESULT QString toString() const; + + /** + * \param depth The depth of the DN to return using a zero-based index. + * \returns A QString representing the DN levels deep in the directory. + */ + Q_REQUIRED_RESULT QString toString(int depth) const; + + /** + * \returns A QString representing the RDN of this DN. + */ + Q_REQUIRED_RESULT QString rdnString() const; + + /** + * \param depth The depth of the RDN to return using a zero-based index. + * \returns A QString representing the RDN levels deep in the directory. + */ + Q_REQUIRED_RESULT QString rdnString(int depth) const; + + /** + * \returns True if this is a valid DN, false otherwise. + */ + Q_REQUIRED_RESULT bool isValid() const; + + /** + * \returns The depth of this DN in the directory. + */ + Q_REQUIRED_RESULT int depth() const; + + Q_REQUIRED_RESULT bool operator==(const LdapDN &rhs) const; + + Q_REQUIRED_RESULT bool operator!=(const LdapDN &rhs) const; + +private: + class LdapDNPrivate; + std::unique_ptr const d; +}; +} diff --git a/src/core/ldapobject.cpp b/src/core/ldapobject.cpp new file mode 100644 index 0000000..72db539 --- /dev/null +++ b/src/core/ldapobject.cpp @@ -0,0 +1,133 @@ +/* + This file is part of libkldap. + SPDX-FileCopyrightText: 2004-2006 Szombathelyi György + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "ldapobject.h" +#include "ldif.h" + +#include + +using namespace KLDAP; + +class LdapObjectPrivate : public QSharedData +{ +public: + LdapObjectPrivate() = default; + + LdapObjectPrivate(const LdapObjectPrivate &other) + : QSharedData(other) + { + mDn = other.mDn; + mAttrs = other.mAttrs; + } + + LdapDN mDn; + LdapAttrMap mAttrs; +}; + +LdapObject::LdapObject() + : d(new LdapObjectPrivate) +{ +} + +LdapObject::LdapObject(const QString &dn) + : d(new LdapObjectPrivate) +{ + d->mDn = LdapDN(dn); +} + +LdapObject::~LdapObject() = default; + +LdapObject::LdapObject(const LdapObject &that) + + = default; + +LdapObject &LdapObject::operator=(const LdapObject &that) +{ + if (this != &that) { + d = that.d; + } + + return *this; +} + +void LdapObject::setDn(const LdapDN &dn) +{ + d->mDn = dn; +} + +void LdapObject::setDn(const QString &dn) +{ + d->mDn = LdapDN(dn); +} + +void LdapObject::setAttributes(const LdapAttrMap &attrs) +{ + d->mAttrs = attrs; +} + +LdapDN LdapObject::dn() const +{ + return d->mDn; +} + +const LdapAttrMap &LdapObject::attributes() const +{ + return d->mAttrs; +} + +QString LdapObject::toString() const +{ + QString result = QStringLiteral("dn: %1\n").arg(d->mDn.toString()); + LdapAttrMap::ConstIterator end(d->mAttrs.constEnd()); + for (LdapAttrMap::ConstIterator it = d->mAttrs.constBegin(); it != end; ++it) { + const QString attr = it.key(); + LdapAttrValue::ConstIterator end2((*it).constEnd()); + for (LdapAttrValue::ConstIterator it2 = (*it).constBegin(); it2 != end2; ++it2) { + result += QString::fromUtf8(Ldif::assembleLine(attr, *it2, 76)) + QLatin1Char('\n'); + } + } + return result; +} + +void LdapObject::clear() +{ + d->mDn.clear(); + d->mAttrs.clear(); +} + +void LdapObject::setValues(const QString &attributeName, const LdapAttrValue &values) +{ + d->mAttrs[attributeName] = values; +} + +void LdapObject::addValue(const QString &attributeName, const QByteArray &value) +{ + d->mAttrs[attributeName].append(value); +} + +LdapAttrValue LdapObject::values(const QString &attributeName) const +{ + if (hasAttribute(attributeName)) { + return d->mAttrs.value(attributeName); + } else { + return {}; + } +} + +QByteArray LdapObject::value(const QString &attributeName) const +{ + if (hasAttribute(attributeName)) { + return d->mAttrs.value(attributeName).first(); + } else { + return {}; + } +} + +bool LdapObject::hasAttribute(const QString &attributeName) const +{ + return d->mAttrs.contains(attributeName); +} diff --git a/src/core/ldapobject.h b/src/core/ldapobject.h new file mode 100644 index 0000000..add8c0b --- /dev/null +++ b/src/core/ldapobject.h @@ -0,0 +1,102 @@ +/* + This file is part of libkldap. + SPDX-FileCopyrightText: 2004-2006 Szombathelyi György + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#pragma once + +#include +#include +#include +#include +class LdapObjectPrivate; + +#include "kldap_export.h" +#include "ldapdn.h" + +// clazy:excludeall=copyable-polymorphic + +namespace KLDAP +{ +using LdapAttrValue = QList; +using LdapAttrMap = QMap; + +/** + * @brief + * This class represents an LDAP Object + */ +class KLDAP_EXPORT LdapObject +{ +public: + LdapObject(); + explicit LdapObject(const QString &dn); + ~LdapObject(); + + LdapObject(const LdapObject &that); + LdapObject &operator=(const LdapObject &that); + + /** + * Returns the text presentation (LDIF format) of the object. + */ + Q_REQUIRED_RESULT QString toString() const; + + /** + * Clears the name and attributes of the object. + */ + void clear(); + /** + * Sets the Distinguished Name of the object. + */ + void setDn(const LdapDN &dn); + /** + * Sets the Distinguished Name of the object. + */ + void setDn(const QString &dn); + /** + * Sets the attributes and attribute values of the object. + */ + void setAttributes(const LdapAttrMap &attrs); + /** + * Sets the given attribute values. If the given attribute not exists, + * then it's created, if exists, it's overwritten. + * @param attributeName the attribute name for which to set values + * @param values the values of attribute to set + */ + void setValues(const QString &attributeName, const LdapAttrValue &values); + /** + * Adds the given value to the specified attribute. If the given attribute + * not exists, then it's created. + * @param attributeName the attribute for which to add a value + * @param value the attribute value to add + */ + void addValue(const QString &attributeName, const QByteArray &value); + /** + * Return the Distinguished Name of the object. + */ + Q_REQUIRED_RESULT LdapDN dn() const; + /** + * Returns the attributes and their values. + */ + const LdapAttrMap &attributes() const; + /** + * Returns all values of the attribute with the given name. + */ + Q_REQUIRED_RESULT LdapAttrValue values(const QString &attributeName) const; + /** + * Returns the first value of the attribute with the given name + * or an empty byte array if the attribute does not exists. + */ + Q_REQUIRED_RESULT QByteArray value(const QString &attributeName) const; + /** + * Returns true if the given attributethe exists, false otherwise. + */ + Q_REQUIRED_RESULT bool hasAttribute(const QString &attributeName) const; + +private: + QSharedDataPointer d; +}; + +using LdapObjects = QVector; +} diff --git a/src/core/ldapoperation.cpp b/src/core/ldapoperation.cpp new file mode 100644 index 0000000..3d99226 --- /dev/null +++ b/src/core/ldapoperation.cpp @@ -0,0 +1,1279 @@ +/* + This file is part of libkldap. + SPDX-FileCopyrightText: 2004-2006 Szombathelyi György + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "ldapoperation.h" +#include "kldap_config.h" + +#include "ldap_debug.h" + +#include + +#include + +// for struct timeval +#if HAVE_SYS_TIME_H +#include +#elif defined(_WIN32) +#include +#endif + +#include + +#if LDAP_FOUND +#if !HAVE_WINLDAP_H +#include +#include +#else +#include +#endif // HAVE_WINLDAP_H +#endif // LDAP_FOUND + +#include "ldapdefs.h" + +using namespace KLDAP; + +#if LDAP_FOUND +static void extractControls(LdapControls &ctrls, LDAPControl **pctrls); +#endif // LDAP_FOUND + +/* + Returns the difference between msecs and elapsed. If msecs is -1, + however, -1 is returned. +*/ +static int kldap_timeout_value(int msecs, int elapsed) +{ + if (msecs == -1) { + return -1; + } + + int timeout = msecs - elapsed; + return timeout < 0 ? 0 : timeout; +} + +class Q_DECL_HIDDEN LdapOperation::LdapOperationPrivate +{ +public: + LdapOperationPrivate(); + ~LdapOperationPrivate(); +#if LDAP_FOUND + int processResult(int rescode, LDAPMessage *msg); + int bind(const QByteArray &creds, SASL_Callback_Proc *saslproc, void *data, bool async); +#endif + LdapControls mClientCtrls, mServerCtrls, mControls; + LdapObject mObject; + QByteArray mExtOid, mExtData; + QByteArray mServerCred; + QString mMatchedDn; + QList mReferrals; + + LdapConnection *mConnection = nullptr; +}; + +LdapOperation::LdapOperation() + : d(new LdapOperationPrivate) +{ + d->mConnection = nullptr; +} + +LdapOperation::LdapOperation(LdapConnection &conn) + : d(new LdapOperationPrivate) +{ + setConnection(conn); +} + +LdapOperation::~LdapOperation() = default; + +void LdapOperation::setConnection(LdapConnection &conn) +{ + d->mConnection = &conn; +} + +LdapConnection &LdapOperation::connection() +{ + return *d->mConnection; +} + +void LdapOperation::setClientControls(const LdapControls &ctrls) +{ + d->mClientCtrls = ctrls; +} + +void LdapOperation::setServerControls(const LdapControls &ctrls) +{ + d->mServerCtrls = ctrls; +} + +LdapControls LdapOperation::clientControls() const +{ + return d->mClientCtrls; +} + +LdapControls LdapOperation::serverControls() const +{ + return d->mServerCtrls; +} + +LdapObject LdapOperation::object() const +{ + return d->mObject; +} + +LdapControls LdapOperation::controls() const +{ + return d->mControls; +} + +QByteArray LdapOperation::extendedOid() const +{ + return d->mExtOid; +} + +QByteArray LdapOperation::extendedData() const +{ + return d->mExtData; +} + +QString LdapOperation::matchedDn() const +{ + return d->mMatchedDn; +} + +QList LdapOperation::referrals() const +{ + return d->mReferrals; +} + +QByteArray LdapOperation::serverCred() const +{ + return d->mServerCred; +} + +LdapOperation::LdapOperationPrivate::LdapOperationPrivate() = default; + +LdapOperation::LdapOperationPrivate::~LdapOperationPrivate() = default; + +#if LDAP_FOUND + +static int kldap_sasl_interact(sasl_interact_t *interact, LdapOperation::SASL_Data *data) +{ + if (data->proc) { + for (; interact->id != SASL_CB_LIST_END; interact++) { + switch (interact->id) { + case SASL_CB_GETREALM: + data->creds.fields |= LdapOperation::SASL_Realm; + break; + case SASL_CB_AUTHNAME: + data->creds.fields |= LdapOperation::SASL_Authname; + break; + case SASL_CB_PASS: + data->creds.fields |= LdapOperation::SASL_Password; + break; + case SASL_CB_USER: + data->creds.fields |= LdapOperation::SASL_Authzid; + break; + } + } + int retval; + if ((retval = data->proc(data->creds, data->data))) { + return retval; + } + } + + QString value; + + while (interact->id != SASL_CB_LIST_END) { + value.clear(); + switch (interact->id) { + case SASL_CB_GETREALM: + value = data->creds.realm; + qCDebug(LDAP_LOG) << "SASL_REALM=" << value; + break; + case SASL_CB_AUTHNAME: + value = data->creds.authname; + qCDebug(LDAP_LOG) << "SASL_AUTHNAME=" << value; + break; + case SASL_CB_PASS: + value = data->creds.password; + qCDebug(LDAP_LOG) << "SASL_PASSWD=[hidden]"; + break; + case SASL_CB_USER: + value = data->creds.authzid; + qCDebug(LDAP_LOG) << "SASL_AUTHZID=" << value; + break; + } + if (value.isEmpty()) { + interact->result = nullptr; + interact->len = 0; + } else { + interact->result = strdup(value.toUtf8().constData()); + interact->len = strlen((const char *)interact->result); + } + interact++; + } + return KLDAP_SUCCESS; +} + +int LdapOperation::LdapOperationPrivate::bind(const QByteArray &creds, SASL_Callback_Proc *saslproc, void *data, bool async) +{ + Q_ASSERT(mConnection); + LDAP *ld = (LDAP *)mConnection->handle(); + LdapServer server; + server = mConnection->server(); + + int ret; + + if (server.auth() == LdapServer::SASL) { +#if !defined(HAVE_WINLDAP_H) + auto saslconn = (sasl_conn_t *)mConnection->saslHandle(); + sasl_interact_t *client_interact = nullptr; + const char *out = nullptr; + uint outlen; + const char *mechusing = nullptr; + struct berval ccred; + struct berval *scred; + int saslresult; + QByteArray sdata = creds; + + QString mech = server.mech(); + if (mech.isEmpty()) { + mech = QStringLiteral("DIGEST-MD5"); + } + + SASL_Data sasldata; + sasldata.proc = saslproc; + sasldata.data = data; + sasldata.creds.fields = 0; + sasldata.creds.realm = server.realm(); + sasldata.creds.authname = server.user(); + sasldata.creds.authzid = server.bindDn(); + sasldata.creds.password = server.password(); + + do { + if (sdata.isEmpty()) { + do { + saslresult = sasl_client_start(saslconn, mech.toLatin1().constData(), &client_interact, &out, &outlen, &mechusing); + + if (saslresult == SASL_INTERACT) { + if (kldap_sasl_interact(client_interact, &sasldata) != KLDAP_SUCCESS) { + return KLDAP_SASL_ERROR; + } + } + qCDebug(LDAP_LOG) << "sasl_client_start mech: " << mechusing << " outlen " << outlen << " result: " << saslresult; + } while (saslresult == SASL_INTERACT); + if (saslresult != SASL_CONTINUE && saslresult != SASL_OK) { + return KLDAP_SASL_ERROR; + } + } else { + qCDebug(LDAP_LOG) << "sasl_client_step"; + do { + saslresult = sasl_client_step(saslconn, sdata.data(), sdata.size(), &client_interact, &out, &outlen); + if (saslresult == SASL_INTERACT) { + if (kldap_sasl_interact(client_interact, &sasldata) != KLDAP_SUCCESS) { + return KLDAP_SASL_ERROR; + } + } + } while (saslresult == SASL_INTERACT); + qCDebug(LDAP_LOG) << "sasl_client_step result" << saslresult; + if (saslresult != SASL_CONTINUE && saslresult != SASL_OK) { + return KLDAP_SASL_ERROR; + } + } + + ccred.bv_val = (char *)out; + ccred.bv_len = outlen; + + if (async) { + qCDebug(LDAP_LOG) << "ldap_sasl_bind"; + int msgid; + ret = ldap_sasl_bind(ld, server.bindDn().toUtf8().constData(), mech.toLatin1().constData(), &ccred, nullptr, nullptr, &msgid); + if (ret == 0) { + ret = msgid; + } + qCDebug(LDAP_LOG) << "ldap_sasl_bind msgid" << ret; + } else { + qCDebug(LDAP_LOG) << "ldap_sasl_bind_s"; + ret = ldap_sasl_bind_s(ld, server.bindDn().toUtf8().constData(), mech.toLatin1().constData(), &ccred, nullptr, nullptr, &scred); + qCDebug(LDAP_LOG) << "ldap_sasl_bind_s ret" << ret; + if (scred) { + sdata = QByteArray(scred->bv_val, scred->bv_len); + } else { + sdata = QByteArray(); + } + } + } while (!async && ret == KLDAP_SASL_BIND_IN_PROGRESS); +#else + qCritical() << "SASL authentication is not available " + << "(re-compile kldap with cyrus-sasl and OpenLDAP development)."; + return KLDAP_SASL_ERROR; +#endif + } else { // simple auth + QByteArray bindname; + QByteArray pass; + struct berval ccred; + if (server.auth() == LdapServer::Simple) { + bindname = server.bindDn().toUtf8(); + pass = server.password().toUtf8(); + } + ccred.bv_val = pass.data(); + ccred.bv_len = pass.size(); + qCDebug(LDAP_LOG) << "binding to server, bindname: " << bindname << " password: *****"; + + if (async) { + qCDebug(LDAP_LOG) << "ldap_sasl_bind (simple)"; +#if !HAVE_WINLDAP_H + int msgid = 0; + ret = ldap_sasl_bind(ld, bindname.data(), nullptr, &ccred, nullptr, nullptr, &msgid); + if (ret == 0) { + ret = msgid; + } +#else + ret = ldap_simple_bind(ld, bindname.data(), pass.data()); +#endif + } else { + qCDebug(LDAP_LOG) << "ldap_sasl_bind_s (simple)"; +#if !HAVE_WINLDAP_H + ret = ldap_sasl_bind_s(ld, bindname.data(), nullptr, &ccred, nullptr, nullptr, nullptr); +#else + ret = ldap_simple_bind_s(ld, bindname.data(), pass.data()); +#endif + } + } + return ret; +} + +int LdapOperation::LdapOperationPrivate::processResult(int rescode, LDAPMessage *msg) +{ + // qCDebug(LDAP_LOG); + int retval; + LDAP *ld = (LDAP *)mConnection->handle(); + + qCDebug(LDAP_LOG) << "rescode: " << rescode; + switch (rescode) { + case RES_SEARCH_ENTRY: { + // qCDebug(LDAP_LOG) << "Found search entry"; + mObject.clear(); + LdapAttrMap attrs; + char *name; + struct berval **bvals; + BerElement *entry; + LdapAttrValue values; + + char *dn = ldap_get_dn(ld, msg); + mObject.setDn(QString::fromUtf8(dn)); + ldap_memfree(dn); + + // iterate over the attributes + name = ldap_first_attribute(ld, msg, &entry); + while (name != nullptr) { + // print the values + bvals = ldap_get_values_len(ld, msg, name); + if (bvals) { + for (int i = 0; bvals[i] != nullptr; i++) { + char *val = bvals[i]->bv_val; + unsigned long len = bvals[i]->bv_len; + values.append(QByteArray(val, len)); + } + ldap_value_free_len(bvals); + } + attrs[QString::fromLatin1(name)] = values; + values.clear(); + ldap_memfree(name); + + // next attribute + name = ldap_next_attribute(ld, msg, entry); + } + ber_free(entry, 0); + mObject.setAttributes(attrs); + break; + } + case RES_SEARCH_REFERENCE: + // Will only get this if following references is disabled. ignore it + rescode = 0; + break; + case RES_EXTENDED: { + char *retoid; + struct berval *retdata; + retval = ldap_parse_extended_result(ld, msg, &retoid, &retdata, 0); + if (retval != KLDAP_SUCCESS) { + ldap_msgfree(msg); + return -1; + } + mExtOid = retoid ? QByteArray(retoid) : QByteArray(); + mExtData = retdata ? QByteArray(retdata->bv_val, retdata->bv_len) : QByteArray(); + ldap_memfree(retoid); + ber_bvfree(retdata); + break; + } + case RES_BIND: { + struct berval *servercred = nullptr; +#if !HAVE_WINLDAP_H + // FIXME: Error handling Winldap does not have ldap_parse_sasl_bind_result + retval = ldap_parse_sasl_bind_result(ld, msg, &servercred, 0); +#else + retval = KLDAP_SUCCESS; +#endif + if (retval != KLDAP_SUCCESS && retval != KLDAP_SASL_BIND_IN_PROGRESS) { + qCDebug(LDAP_LOG) << "RES_BIND error: " << retval; + ldap_msgfree(msg); + return -1; + } + qCDebug(LDAP_LOG) << "RES_BIND rescode" << rescode << "retval:" << retval; + if (servercred) { + mServerCred = QByteArray(servercred->bv_val, servercred->bv_len); + ber_bvfree(servercred); + } else { + mServerCred = QByteArray(); + } + break; + } + default: { + LDAPControl **serverctrls = nullptr; + char *matcheddn = nullptr; + char *errmsg = nullptr; + char **referralsp; + int errcodep; + retval = ldap_parse_result(ld, msg, &errcodep, &matcheddn, &errmsg, &referralsp, &serverctrls, 0); + qCDebug(LDAP_LOG) << "rescode" << rescode << "retval:" << retval << "matcheddn:" << matcheddn << "errcode:" << errcodep << "errmsg:" << errmsg; + if (retval != KLDAP_SUCCESS) { + ldap_msgfree(msg); + return -1; + } + mControls.clear(); + if (serverctrls) { + extractControls(mControls, serverctrls); + ldap_controls_free(serverctrls); + } + mReferrals.clear(); + if (referralsp) { + char **tmp = referralsp; + while (*tmp) { + mReferrals.append(QByteArray(*tmp)); + ldap_memfree(*tmp); + tmp++; + } + ldap_memfree((char *)referralsp); + } + mMatchedDn.clear(); + if (matcheddn) { + mMatchedDn = QString::fromUtf8(matcheddn); + ldap_memfree(matcheddn); + } + if (errmsg) { + ldap_memfree(errmsg); + } + } + } + + ldap_msgfree(msg); + + return rescode; +} + +static void addModOp(LDAPMod ***pmods, int mod_type, const QString &attr, const QByteArray *value = nullptr) +{ + // qCDebug(LDAP_LOG) << "type:" << mod_type << "attr:" << attr << + // "value:" << QString::fromUtf8(value,value.size()) << + // "size:" << value.size(); + LDAPMod **mods; + + mods = *pmods; + + uint i = 0; + + if (mods == nullptr) { + mods = (LDAPMod **)malloc(2 * sizeof(LDAPMod *)); + mods[0] = (LDAPMod *)malloc(sizeof(LDAPMod)); + mods[1] = nullptr; + memset(mods[0], 0, sizeof(LDAPMod)); + } else { + while (mods[i] != nullptr && (strcmp(attr.toUtf8().constData(), mods[i]->mod_type) != 0 || (mods[i]->mod_op & ~LDAP_MOD_BVALUES) != mod_type)) { + i++; + } + + if (mods[i] == nullptr) { + mods = (LDAPMod **)realloc(mods, (i + 2) * sizeof(LDAPMod *)); + if (mods == nullptr) { + qCritical() << "addModOp: realloc"; + return; + } + mods[i + 1] = nullptr; + mods[i] = (LDAPMod *)malloc(sizeof(LDAPMod)); + memset(mods[i], 0, sizeof(LDAPMod)); + } + } + + mods[i]->mod_op = mod_type | LDAP_MOD_BVALUES; + if (mods[i]->mod_type == nullptr) { + mods[i]->mod_type = strdup(attr.toUtf8().constData()); + } + + *pmods = mods; + + if (value == nullptr) { + return; + } + + int vallen = value->size(); + BerValue *berval; + berval = (BerValue *)malloc(sizeof(BerValue)); + berval->bv_len = vallen; + if (vallen > 0) { + berval->bv_val = (char *)malloc(vallen); + memcpy(berval->bv_val, value->data(), vallen); + } else { + berval->bv_val = nullptr; + } + + if (mods[i]->mod_vals.modv_bvals == nullptr) { + mods[i]->mod_vals.modv_bvals = (BerValue **)malloc(sizeof(BerValue *) * 2); + mods[i]->mod_vals.modv_bvals[0] = berval; + mods[i]->mod_vals.modv_bvals[1] = nullptr; + // qCDebug(LDAP_LOG) << "new bervalue struct" << attr << value; + } else { + uint j = 0; + while (mods[i]->mod_vals.modv_bvals[j] != nullptr) { + j++; + } + mods[i]->mod_vals.modv_bvals = (BerValue **)realloc(mods[i]->mod_vals.modv_bvals, (j + 2) * sizeof(BerValue *)); + if (mods[i]->mod_vals.modv_bvals == nullptr) { + qCritical() << "addModOp: realloc"; + free(berval); + return; + } + mods[i]->mod_vals.modv_bvals[j] = berval; + mods[i]->mod_vals.modv_bvals[j + 1] = nullptr; + qCDebug(LDAP_LOG) << j << ". new bervalue"; + } +} + +static void addControlOp(LDAPControl ***pctrls, const QString &oid, const QByteArray &value, bool critical) +{ + LDAPControl **ctrls; + auto ctrl = (LDAPControl *)malloc(sizeof(LDAPControl)); + + ctrls = *pctrls; + + qCDebug(LDAP_LOG) << "oid:'" << oid << "' val: '" << value << "'"; + int vallen = value.size(); + ctrl->ldctl_value.bv_len = vallen; + if (vallen) { + ctrl->ldctl_value.bv_val = (char *)malloc(vallen); + memcpy(ctrl->ldctl_value.bv_val, value.data(), vallen); + } else { + ctrl->ldctl_value.bv_val = nullptr; + } + ctrl->ldctl_iscritical = critical; + ctrl->ldctl_oid = strdup(oid.toUtf8().constData()); + + uint i = 0; + + if (ctrls == nullptr) { + ctrls = (LDAPControl **)malloc(2 * sizeof(LDAPControl *)); + ctrls[0] = nullptr; + ctrls[1] = nullptr; + } else { + while (ctrls[i] != nullptr) { + i++; + } + ctrls[i + 1] = nullptr; + ctrls = (LDAPControl **)realloc(ctrls, (i + 2) * sizeof(LDAPControl *)); + } + ctrls[i] = ctrl; + *pctrls = ctrls; +} + +static void createControls(LDAPControl ***pctrls, const LdapControls &ctrls) +{ + for (int i = 0; i < ctrls.count(); ++i) { + addControlOp(pctrls, ctrls[i].oid(), ctrls[i].value(), ctrls[i].critical()); + } +} + +static void extractControls(LdapControls &ctrls, LDAPControl **pctrls) +{ + LdapControl control; + int i = 0; + + while (pctrls[i]) { + LDAPControl *ctrl = pctrls[i]; + control.setOid(QString::fromUtf8(ctrl->ldctl_oid)); + control.setValue(QByteArray(ctrl->ldctl_value.bv_val, ctrl->ldctl_value.bv_len)); + control.setCritical(ctrl->ldctl_iscritical); + ctrls.append(control); + i++; + } +} + +int LdapOperation::bind(const QByteArray &creds, SASL_Callback_Proc *saslproc, void *data) +{ + return d->bind(creds, saslproc, data, true); +} + +int LdapOperation::bind_s(SASL_Callback_Proc *saslproc, void *data) +{ + return d->bind(QByteArray(), saslproc, data, false); +} + +int LdapOperation::search(const LdapDN &base, LdapUrl::Scope scope, const QString &filter, const QStringList &attributes) +{ + Q_ASSERT(d->mConnection); + LDAP *ld = (LDAP *)d->mConnection->handle(); + + char **attrs = nullptr; + int msgid; + + LDAPControl **serverctrls = nullptr; + LDAPControl **clientctrls = nullptr; + createControls(&serverctrls, d->mServerCtrls); + createControls(&serverctrls, d->mClientCtrls); + + int count = attributes.count(); + if (count > 0) { + attrs = static_cast(malloc((count + 1) * sizeof(char *))); + for (int i = 0; i < count; i++) { + attrs[i] = strdup(attributes.at(i).toUtf8().constData()); + } + attrs[count] = nullptr; + } + + int lscope = LDAP_SCOPE_BASE; + switch (scope) { + case LdapUrl::Base: + lscope = LDAP_SCOPE_BASE; + break; + case LdapUrl::One: + lscope = LDAP_SCOPE_ONELEVEL; + break; + case LdapUrl::Sub: + lscope = LDAP_SCOPE_SUBTREE; + break; + } + + qCDebug(LDAP_LOG) << "asyncSearch() base=\"" << base.toString() << "\" scope=" << (int)scope << "filter=\"" << filter << "\" attrs=" << attributes; + int retval = ldap_search_ext(ld, + base.toString().toUtf8().data(), + lscope, + filter.isEmpty() ? QByteArray("objectClass=*").data() : filter.toUtf8().data(), + attrs, + 0, + serverctrls, + clientctrls, + nullptr, + d->mConnection->sizeLimit(), + &msgid); + + ldap_controls_free(serverctrls); + ldap_controls_free(clientctrls); + + // free the attributes list again + if (count > 0) { + for (int i = 0; i < count; i++) { + free(attrs[i]); + } + free(attrs); + } + + if (retval == 0) { + retval = msgid; + } + return retval; +} + +int LdapOperation::add(const LdapObject &object) +{ + Q_ASSERT(d->mConnection); + LDAP *ld = (LDAP *)d->mConnection->handle(); + + int msgid; + LDAPMod **lmod = nullptr; + + LDAPControl **serverctrls = nullptr; + LDAPControl **clientctrls = nullptr; + createControls(&serverctrls, d->mServerCtrls); + createControls(&serverctrls, d->mClientCtrls); + + for (LdapAttrMap::ConstIterator it = object.attributes().begin(); it != object.attributes().end(); ++it) { + QString attr = it.key(); + for (LdapAttrValue::ConstIterator it2 = (*it).begin(); it2 != (*it).end(); ++it2) { + addModOp(&lmod, 0, attr, &(*it2)); + } + } + + int retval = ldap_add_ext(ld, object.dn().toString().toUtf8().data(), lmod, serverctrls, clientctrls, &msgid); + + ldap_controls_free(serverctrls); + ldap_controls_free(clientctrls); + ldap_mods_free(lmod, 1); + if (retval == 0) { + retval = msgid; + } + return retval; +} + +int LdapOperation::add_s(const LdapObject &object) +{ + Q_ASSERT(d->mConnection); + LDAP *ld = (LDAP *)d->mConnection->handle(); + + LDAPMod **lmod = nullptr; + + LDAPControl **serverctrls = nullptr; + LDAPControl **clientctrls = nullptr; + createControls(&serverctrls, d->mServerCtrls); + createControls(&serverctrls, d->mClientCtrls); + + for (LdapAttrMap::ConstIterator it = object.attributes().begin(); it != object.attributes().end(); ++it) { + QString attr = it.key(); + for (LdapAttrValue::ConstIterator it2 = (*it).begin(); it2 != (*it).end(); ++it2) { + addModOp(&lmod, 0, attr, &(*it2)); + } + } + + int retval = ldap_add_ext_s(ld, object.dn().toString().toUtf8().data(), lmod, serverctrls, clientctrls); + + ldap_controls_free(serverctrls); + ldap_controls_free(clientctrls); + ldap_mods_free(lmod, 1); + return retval; +} + +int LdapOperation::add(const LdapDN &dn, const ModOps &ops) +{ + Q_ASSERT(d->mConnection); + LDAP *ld = (LDAP *)d->mConnection->handle(); + + int msgid; + LDAPMod **lmod = nullptr; + + LDAPControl **serverctrls = nullptr; + LDAPControl **clientctrls = nullptr; + createControls(&serverctrls, d->mServerCtrls); + createControls(&serverctrls, d->mClientCtrls); + + for (int i = 0; i < ops.count(); ++i) { + for (int j = 0; j < ops[i].values.count(); ++j) { + addModOp(&lmod, 0, ops[i].attr, &ops[i].values[j]); + } + } + + int retval = ldap_add_ext(ld, dn.toString().toUtf8().data(), lmod, serverctrls, clientctrls, &msgid); + + ldap_controls_free(serverctrls); + ldap_controls_free(clientctrls); + ldap_mods_free(lmod, 1); + if (retval == 0) { + retval = msgid; + } + return retval; +} + +int LdapOperation::add_s(const LdapDN &dn, const ModOps &ops) +{ + Q_ASSERT(d->mConnection); + LDAP *ld = (LDAP *)d->mConnection->handle(); + + LDAPMod **lmod = nullptr; + + LDAPControl **serverctrls = nullptr; + LDAPControl **clientctrls = nullptr; + createControls(&serverctrls, d->mServerCtrls); + createControls(&serverctrls, d->mClientCtrls); + + for (int i = 0; i < ops.count(); ++i) { + for (int j = 0; j < ops[i].values.count(); ++j) { + addModOp(&lmod, 0, ops[i].attr, &ops[i].values[j]); + } + } + qCDebug(LDAP_LOG) << dn.toString(); + int retval = ldap_add_ext_s(ld, dn.toString().toUtf8().data(), lmod, serverctrls, clientctrls); + + ldap_controls_free(serverctrls); + ldap_controls_free(clientctrls); + ldap_mods_free(lmod, 1); + return retval; +} + +int LdapOperation::rename(const LdapDN &dn, const QString &newRdn, const QString &newSuperior, bool deleteold) +{ + Q_ASSERT(d->mConnection); + LDAP *ld = (LDAP *)d->mConnection->handle(); + + int msgid; + + LDAPControl **serverctrls = nullptr; + LDAPControl **clientctrls = nullptr; + createControls(&serverctrls, d->mServerCtrls); + createControls(&serverctrls, d->mClientCtrls); + + int retval = ldap_rename(ld, + dn.toString().toUtf8().data(), + newRdn.toUtf8().data(), + newSuperior.isEmpty() ? (char *)nullptr : newSuperior.toUtf8().data(), + deleteold, + serverctrls, + clientctrls, + &msgid); + + ldap_controls_free(serverctrls); + ldap_controls_free(clientctrls); + + if (retval == 0) { + retval = msgid; + } + return retval; +} + +int LdapOperation::rename_s(const LdapDN &dn, const QString &newRdn, const QString &newSuperior, bool deleteold) +{ + Q_ASSERT(d->mConnection); + LDAP *ld = (LDAP *)d->mConnection->handle(); + + LDAPControl **serverctrls = nullptr; + LDAPControl **clientctrls = nullptr; + createControls(&serverctrls, d->mServerCtrls); + createControls(&serverctrls, d->mClientCtrls); + + int retval = ldap_rename_s(ld, + dn.toString().toUtf8().data(), + newRdn.toUtf8().data(), + newSuperior.isEmpty() ? (char *)nullptr : newSuperior.toUtf8().data(), + deleteold, + serverctrls, + clientctrls); + + ldap_controls_free(serverctrls); + ldap_controls_free(clientctrls); + + return retval; +} + +int LdapOperation::del(const LdapDN &dn) +{ + Q_ASSERT(d->mConnection); + LDAP *ld = (LDAP *)d->mConnection->handle(); + + int msgid; + + LDAPControl **serverctrls = nullptr; + LDAPControl **clientctrls = nullptr; + createControls(&serverctrls, d->mServerCtrls); + createControls(&serverctrls, d->mClientCtrls); + + int retval = ldap_delete_ext(ld, dn.toString().toUtf8().data(), serverctrls, clientctrls, &msgid); + + ldap_controls_free(serverctrls); + ldap_controls_free(clientctrls); + + if (retval == 0) { + retval = msgid; + } + return retval; +} + +int LdapOperation::del_s(const LdapDN &dn) +{ + Q_ASSERT(d->mConnection); + LDAP *ld = (LDAP *)d->mConnection->handle(); + + LDAPControl **serverctrls = nullptr; + LDAPControl **clientctrls = nullptr; + createControls(&serverctrls, d->mServerCtrls); + createControls(&serverctrls, d->mClientCtrls); + + int retval = ldap_delete_ext_s(ld, dn.toString().toUtf8().data(), serverctrls, clientctrls); + + ldap_controls_free(serverctrls); + ldap_controls_free(clientctrls); + + return retval; +} + +int LdapOperation::modify(const LdapDN &dn, const ModOps &ops) +{ + Q_ASSERT(d->mConnection); + LDAP *ld = (LDAP *)d->mConnection->handle(); + + int msgid; + LDAPMod **lmod = nullptr; + + LDAPControl **serverctrls = nullptr; + LDAPControl **clientctrls = nullptr; + createControls(&serverctrls, d->mServerCtrls); + createControls(&serverctrls, d->mClientCtrls); + + for (int i = 0; i < ops.count(); ++i) { + int mtype = 0; + switch (ops[i].type) { + case Mod_None: + mtype = 0; + break; + case Mod_Add: + mtype = LDAP_MOD_ADD; + break; + case Mod_Replace: + mtype = LDAP_MOD_REPLACE; + break; + case Mod_Del: + mtype = LDAP_MOD_DELETE; + break; + } + addModOp(&lmod, mtype, ops[i].attr, nullptr); + for (int j = 0; j < ops[i].values.count(); ++j) { + addModOp(&lmod, mtype, ops[i].attr, &ops[i].values[j]); + } + } + + int retval = ldap_modify_ext(ld, dn.toString().toUtf8().data(), lmod, serverctrls, clientctrls, &msgid); + + ldap_controls_free(serverctrls); + ldap_controls_free(clientctrls); + ldap_mods_free(lmod, 1); + if (retval == 0) { + retval = msgid; + } + return retval; +} + +int LdapOperation::modify_s(const LdapDN &dn, const ModOps &ops) +{ + Q_ASSERT(d->mConnection); + LDAP *ld = (LDAP *)d->mConnection->handle(); + + LDAPMod **lmod = nullptr; + + LDAPControl **serverctrls = nullptr; + LDAPControl **clientctrls = nullptr; + createControls(&serverctrls, d->mServerCtrls); + createControls(&serverctrls, d->mClientCtrls); + + for (int i = 0; i < ops.count(); ++i) { + int mtype = 0; + switch (ops[i].type) { + case Mod_None: + mtype = 0; + break; + case Mod_Add: + mtype = LDAP_MOD_ADD; + break; + case Mod_Replace: + mtype = LDAP_MOD_REPLACE; + break; + case Mod_Del: + mtype = LDAP_MOD_DELETE; + break; + } + addModOp(&lmod, mtype, ops[i].attr, nullptr); + for (int j = 0; j < ops[i].values.count(); ++j) { + addModOp(&lmod, mtype, ops[i].attr, &ops[i].values[j]); + } + } + + int retval = ldap_modify_ext_s(ld, dn.toString().toUtf8().data(), lmod, serverctrls, clientctrls); + + ldap_controls_free(serverctrls); + ldap_controls_free(clientctrls); + ldap_mods_free(lmod, 1); + return retval; +} + +int LdapOperation::compare(const LdapDN &dn, const QString &attr, const QByteArray &value) +{ + Q_ASSERT(d->mConnection); + LDAP *ld = (LDAP *)d->mConnection->handle(); + int msgid; + + LDAPControl **serverctrls = nullptr; + LDAPControl **clientctrls = nullptr; + createControls(&serverctrls, d->mServerCtrls); + createControls(&serverctrls, d->mClientCtrls); + + int vallen = value.size(); + BerValue *berval; + berval = (BerValue *)malloc(sizeof(BerValue)); + berval->bv_val = (char *)malloc(vallen); + berval->bv_len = vallen; + memcpy(berval->bv_val, value.data(), vallen); + + int retval = ldap_compare_ext(ld, dn.toString().toUtf8().data(), attr.toUtf8().data(), berval, serverctrls, clientctrls, &msgid); + + ber_bvfree(berval); + ldap_controls_free(serverctrls); + ldap_controls_free(clientctrls); + + if (retval == 0) { + retval = msgid; + } + return retval; +} + +int LdapOperation::compare_s(const LdapDN &dn, const QString &attr, const QByteArray &value) +{ + Q_ASSERT(d->mConnection); + LDAP *ld = (LDAP *)d->mConnection->handle(); + + LDAPControl **serverctrls = nullptr; + LDAPControl **clientctrls = nullptr; + createControls(&serverctrls, d->mServerCtrls); + createControls(&serverctrls, d->mClientCtrls); + + int vallen = value.size(); + BerValue *berval; + berval = (BerValue *)malloc(sizeof(BerValue)); + berval->bv_val = (char *)malloc(vallen); + berval->bv_len = vallen; + memcpy(berval->bv_val, value.data(), vallen); + + int retval = ldap_compare_ext_s(ld, dn.toString().toUtf8().data(), attr.toUtf8().data(), berval, serverctrls, clientctrls); + + ber_bvfree(berval); + ldap_controls_free(serverctrls); + ldap_controls_free(clientctrls); + + return retval; +} + +int LdapOperation::exop(const QString &oid, const QByteArray &data) +{ + Q_ASSERT(d->mConnection); +#if HAVE_LDAP_EXTENDED_OPERATION + LDAP *ld = (LDAP *)d->mConnection->handle(); + int msgid; + + LDAPControl **serverctrls = nullptr; + LDAPControl **clientctrls = nullptr; + createControls(&serverctrls, d->mServerCtrls); + createControls(&serverctrls, d->mClientCtrls); + + int vallen = data.size(); + BerValue *berval; + berval = (BerValue *)malloc(sizeof(BerValue)); + berval->bv_val = (char *)malloc(vallen); + berval->bv_len = vallen; + memcpy(berval->bv_val, data.data(), vallen); + + int retval = ldap_extended_operation(ld, oid.toUtf8().data(), berval, serverctrls, clientctrls, &msgid); + + ber_bvfree(berval); + ldap_controls_free(serverctrls); + ldap_controls_free(clientctrls); + + if (retval == 0) { + retval = msgid; + } + return retval; +#else + qCritical() << "Your LDAP client libraries don't support extended operations."; + return -1; +#endif +} + +int LdapOperation::exop_s(const QString &oid, const QByteArray &data) +{ +#if HAVE_LDAP_EXTENDED_OPERATION_S + Q_ASSERT(d->mConnection); + LDAP *ld = (LDAP *)d->mConnection->handle(); + BerValue *retdata; + char *retoid; + + LDAPControl **serverctrls = nullptr; + LDAPControl **clientctrls = nullptr; + createControls(&serverctrls, d->mServerCtrls); + createControls(&serverctrls, d->mClientCtrls); + + int vallen = data.size(); + BerValue *berval; + berval = (BerValue *)malloc(sizeof(BerValue)); + berval->bv_val = (char *)malloc(vallen); + berval->bv_len = vallen; + memcpy(berval->bv_val, data.data(), vallen); + + int retval = ldap_extended_operation_s(ld, oid.toUtf8().data(), berval, serverctrls, clientctrls, &retoid, &retdata); + + ber_bvfree(berval); + ber_bvfree(retdata); + free(retoid); + ldap_controls_free(serverctrls); + ldap_controls_free(clientctrls); + + return retval; +#else + qCritical() << "Your LDAP client libraries don't support extended operations."; + return -1; +#endif +} + +int LdapOperation::abandon(int id) +{ + Q_ASSERT(d->mConnection); + LDAP *ld = (LDAP *)d->mConnection->handle(); + + LDAPControl **serverctrls = nullptr; + LDAPControl **clientctrls = nullptr; + createControls(&serverctrls, d->mServerCtrls); + createControls(&serverctrls, d->mClientCtrls); + + int retval = ldap_abandon_ext(ld, id, serverctrls, clientctrls); + + ldap_controls_free(serverctrls); + ldap_controls_free(clientctrls); + + return retval; +} + +int LdapOperation::waitForResult(int id, int msecs) +{ + Q_ASSERT(d->mConnection); + LDAP *ld = (LDAP *)d->mConnection->handle(); + + LDAPMessage *msg; + + QElapsedTimer stopWatch; + stopWatch.start(); + int attempt(1); + int timeout(0); + + do { + // Calculate the timeout value to use and assign it to a timeval structure + // see man select (2) for details + timeout = kldap_timeout_value(msecs, stopWatch.elapsed()); + qCDebug(LDAP_LOG) << "(" << id << "," << msecs << "): Waiting" << timeout << "msecs for result. Attempt #" << attempt++; + struct timeval tv; + tv.tv_sec = timeout / 1000; + tv.tv_usec = (timeout % 1000) * 1000; + + // Wait for a result + int rescode = ldap_result(ld, id, 0, timeout < 0 ? nullptr : &tv, &msg); + if (rescode == -1) { + return -1; + } + // Act on the return code + if (rescode != 0) { + // Some kind of result is available for processing + return d->processResult(rescode, msg); + } + } while (msecs == -1 || stopWatch.elapsed() < msecs); + + return 0; // timeout +} + +#else + +int LdapOperation::bind(const QByteArray &creds, SASL_Callback_Proc *saslproc, void *data) +{ + qCritical() << "LDAP support not compiled"; + return -1; +} + +int LdapOperation::bind_s(SASL_Callback_Proc *saslproc, void *data) +{ + qCritical() << "LDAP support not compiled"; + return -1; +} + +int LdapOperation::search(const LdapDN &base, LdapUrl::Scope scope, const QString &filter, const QStringList &attributes) +{ + qCritical() << "LDAP support not compiled"; + return -1; +} + +int LdapOperation::add(const LdapObject &object) +{ + qCritical() << "LDAP support not compiled"; + return -1; +} + +int LdapOperation::add_s(const LdapObject &object) +{ + qCritical() << "LDAP support not compiled"; + return -1; +} + +int LdapOperation::add(const LdapDN &dn, const ModOps &ops) +{ + qCritical() << "LDAP support not compiled"; + return -1; +} + +int LdapOperation::add_s(const LdapDN &dn, const ModOps &ops) +{ + qCritical() << "LDAP support not compiled"; + return -1; +} + +int LdapOperation::rename(const LdapDN &dn, const QString &newRdn, const QString &newSuperior, bool deleteold) +{ + qCritical() << "LDAP support not compiled"; + return -1; +} + +int LdapOperation::rename_s(const LdapDN &dn, const QString &newRdn, const QString &newSuperior, bool deleteold) +{ + qCritical() << "LDAP support not compiled"; + return -1; +} + +int LdapOperation::del(const LdapDN &dn) +{ + qCritical() << "LDAP support not compiled"; + return -1; +} + +int LdapOperation::del_s(const LdapDN &dn) +{ + qCritical() << "LDAP support not compiled"; + return -1; +} + +int LdapOperation::modify(const LdapDN &dn, const ModOps &ops) +{ + qCritical() << "LDAP support not compiled"; + return -1; +} + +int LdapOperation::modify_s(const LdapDN &dn, const ModOps &ops) +{ + qCritical() << "LDAP support not compiled"; + return -1; +} + +int LdapOperation::compare(const LdapDN &dn, const QString &attr, const QByteArray &value) +{ + qCritical() << "LDAP support not compiled"; + return -1; +} + +int LdapOperation::exop(const QString &oid, const QByteArray &data) +{ + qCritical() << "LDAP support not compiled"; + return -1; +} + +int LdapOperation::compare_s(const LdapDN &dn, const QString &attr, const QByteArray &value) +{ + qCritical() << "LDAP support not compiled"; + return -1; +} + +int LdapOperation::exop_s(const QString &oid, const QByteArray &data) +{ + qCritical() << "LDAP support not compiled"; + return -1; +} + +int LdapOperation::waitForResult(int id, int msecs) +{ + qCritical() << "LDAP support not compiled"; + return -1; +} + +int LdapOperation::abandon(int id) +{ + qCritical() << "LDAP support not compiled"; + return -1; +} + +#endif diff --git a/src/core/ldapoperation.h b/src/core/ldapoperation.h new file mode 100644 index 0000000..c9beb26 --- /dev/null +++ b/src/core/ldapoperation.h @@ -0,0 +1,273 @@ +/* + This file is part of libkldap. + SPDX-FileCopyrightText: 2004-2006 Szombathelyi György + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#pragma once + +#include "kldap_export.h" +#include "ldapconnection.h" +#include "ldapcontrol.h" +#include "ldapdn.h" +#include "ldapobject.h" +#include "ldapserver.h" +#include "ldapurl.h" + +#include +#include +#include + +#include + +namespace KLDAP +{ +/** + * @brief + * This class allows sending an ldap operation + * (search, rename, modify, delete, compare, exop) to an LDAP server. + */ +class KLDAP_EXPORT LdapOperation +{ +public: + using ModType = enum { Mod_None, Mod_Add, Mod_Replace, Mod_Del }; + + using ResultType = enum { + RES_BIND = 0x61, + RES_SEARCH_ENTRY = 0x64, + RES_SEARCH_REFERENCE = 0x73, + RES_SEARCH_RESULT = 0x65, + RES_MODIFY = 0x67, + RES_ADD = 0x69, + RES_DELETE = 0x69, + RES_MODDN = 0x6d, + RES_COMPARE = 0x6f, + RES_EXTENDED = 0x78, + RES_EXTENDED_PARTIAL = 0x79 + }; + + using ModOp = struct { + ModType type; + QString attr; + QList values; + }; + + using ModOps = QVector; + + enum SASL_Fields { SASL_Authname = 0x1, SASL_Authzid = 0x2, SASL_Realm = 0x4, SASL_Password = 0x8 }; + + struct SASL_Credentials { + int fields; + QString authname; + QString authzid; + QString realm; + QString password; + }; + + using SASL_Callback_Proc = int(SASL_Credentials &, void *); + + struct SASL_Data { + SASL_Callback_Proc *proc; + void *data; + SASL_Credentials creds; + }; + + LdapOperation(); + LdapOperation(LdapConnection &conn); + ~LdapOperation(); + + /** + * Sets the connection object. Without living connection object, + * LDAP operations are not possible. + * @param the connection object to set + */ + void setConnection(LdapConnection &conn); + /** + * Returns the connection object. + */ + LdapConnection &connection(); + /** + * Sets the client controls which will sent with each operation. + */ + void setClientControls(const LdapControls &ctrls); + /** + * Sets the server controls which will sent with each operation. + */ + void setServerControls(const LdapControls &ctrls); + /** + * Returns the client controls (which set by setClientControls()). + */ + Q_REQUIRED_RESULT LdapControls clientControls() const; + /** + * Returns the server controls (which set by setServerControls()). + */ + Q_REQUIRED_RESULT LdapControls serverControls() const; + + /** + * Binds to the server which specified in the connection object. + * Can do simple or SASL bind. Returns a message id if successful, negative value if not. + */ + Q_REQUIRED_RESULT int bind(const QByteArray &creds = QByteArray(), SASL_Callback_Proc *saslproc = nullptr, void *data = nullptr); + + /** + * Binds to the server which specified in the connection object. + * Can do simple or SASL bind. This is the synchronous version. + * Returns KLDAP_SUCCESS id if successful, else an LDAP error code. + */ + Q_REQUIRED_RESULT int bind_s(SASL_Callback_Proc *saslproc = nullptr, void *data = nullptr); + + /** + * Starts a search operation with the given base DN, scope, filter and + * result attributes. Returns a message id if successful, -1 if not. + */ + Q_REQUIRED_RESULT int search(const LdapDN &base, LdapUrl::Scope scope, const QString &filter, const QStringList &attrs); + /** + * Starts an addition operation. + * Returns a message id if successful, -1 if not. + * @param object the additional operation to start + */ + Q_REQUIRED_RESULT int add(const LdapObject &object); + /** + * Adds the specified object to the LDAP database. + * Returns KLDAP_SUCCESS id if successful, else an LDAP error code. + * @param object the object to add to LDAP database + */ + Q_REQUIRED_RESULT int add_s(const LdapObject &object); + /** + * Starts an addition operation. This version accepts ModOps not LdapObject. + * Returns a message id if successful, -1 if not. + * @param dn the LdapDN operation to start + * @param ops the ModOps operation to start + */ + Q_REQUIRED_RESULT int add(const LdapDN &dn, const ModOps &ops); + /** + * Adds the specified object to the LDAP database. This version accepts ModOps not LdapObject. + * This is the synchronous version. + * Returns KLDAP_SUCCESS id if successful, else an LDAP error code. + * @param dn the LdapDN object to add + * @param ops the ModOps object to add + */ + Q_REQUIRED_RESULT int add_s(const LdapDN &dn, const ModOps &ops); + /** + * Starts a modrdn operation on given DN, changing its RDN to newRdn, + * changing its parent to newSuperior (if it's not empty), and deletes + * the old dn if deleteold is true. + * Returns a message id if successful, -1 if not. + */ + Q_REQUIRED_RESULT int rename(const LdapDN &dn, const QString &newRdn, const QString &newSuperior, bool deleteold = true); + /** + * Performs a modrdn operation on given DN, changing its RDN to newRdn, + * changing its parent to newSuperior (if it's not empty), and deletes + * the old dn if deleteold is true. This is the synchronous version. + * Returns KLDAP_SUCCESS id if successful, else an LDAP error code. + */ + Q_REQUIRED_RESULT int rename_s(const LdapDN &dn, const QString &newRdn, const QString &newSuperior, bool deleteold = true); + /** + * Starts a delete operation on the given DN. + * Returns a message id if successful, -1 if not. + */ + Q_REQUIRED_RESULT int del(const LdapDN &dn); + /** + * Deletes the given DN. This is the synchronous version. + * Returns KLDAP_SUCCESS id if successful, else an LDAP error code. + * @param dn the dn to delete + */ + Q_REQUIRED_RESULT int del_s(const LdapDN &dn); + /** + * Starts a modify operation on the given DN. + * Returns a message id if successful, -1 if not. + * @param dn the DN to start modify operation on + */ + Q_REQUIRED_RESULT int modify(const LdapDN &dn, const ModOps &ops); + /** + * Performs a modify operation on the given DN. + * This is the synchronous version. + * Returns KLDAP_SUCCESS id if successful, else an LDAP error code. + */ + Q_REQUIRED_RESULT int modify_s(const LdapDN &dn, const ModOps &ops); + /** + * Starts a compare operation on the given DN, compares the specified + * attribute with the given value. + * Returns a message id if successful, -1 if not. + */ + Q_REQUIRED_RESULT int compare(const LdapDN &dn, const QString &attr, const QByteArray &value); + /** + * Performs a compare operation on the given DN, compares the specified + * attribute with the given value. This is the synchronous version. + * Returns KLDAP_COMPARE_TRUE if the entry contains the attribute value + * and KLDAP_COMPARE_FALSE if it does not. Otherwise, some error code + * is returned. + */ + Q_REQUIRED_RESULT int compare_s(const LdapDN &dn, const QString &attr, const QByteArray &value); + /** + * Starts an extended operation specified with oid and data. + * Returns a message id if successful, -1 if not. + */ + Q_REQUIRED_RESULT int exop(const QString &oid, const QByteArray &data); + /** + * Performs an extended operation specified with oid and data. + * This is the synchronous version. + * Returns KLDAP_SUCCESS id if successful, else an LDAP error code. + */ + Q_REQUIRED_RESULT int exop_s(const QString &oid, const QByteArray &data); + /** + * Abandons a long-running operation. Requires the message id. + */ + Q_REQUIRED_RESULT int abandon(int id); + /** + * Waits for up to \p msecs milliseconds for a result message from the LDAP + * server. If \p msecs is -1, then this function will block indefinitely. + * If \p msecs is 0, then this function will return immediately, that is it + * will perform a poll for a result message. + * + * Returns the type of the result LDAP message (RES_XXX constants). + * -1 if error occurred, 0 if the timeout value elapsed. Note! + * Return code -1 means that fetching the message resulted in error, + * not the LDAP operation error. Call connection().ldapErrorCode() to + * determine if the operation succeeded. + */ + Q_REQUIRED_RESULT int waitForResult(int id, int msecs = -1); + /** + * Returns the result object if result() returned RES_SEARCH_ENTRY. + */ + Q_REQUIRED_RESULT LdapObject object() const; + /** + * Returns the server controls from the returned ldap message (grabbed + * by result()). + */ + Q_REQUIRED_RESULT LdapControls controls() const; + /** + * Returns the OID of the extended operation response (result + * returned RES_EXTENDED). + */ + Q_REQUIRED_RESULT QByteArray extendedOid() const; + /** + * Returns the data from the extended operation response (result + * returned RES_EXTENDED). + */ + Q_REQUIRED_RESULT QByteArray extendedData() const; + /** + * The server might supply a matched DN string in the message indicating + * how much of a name in a request was recognized. This can be grabbed by + * matchedDn(). + */ + Q_REQUIRED_RESULT QString matchedDn() const; + /** + * This function returns the referral strings from the parsed message + * (if any). + */ + Q_REQUIRED_RESULT QList referrals() const; + /** + * Returns the server response for a bind request (result + * returned RES_BIND). + */ + Q_REQUIRED_RESULT QByteArray serverCred() const; + +private: + class LdapOperationPrivate; + std::unique_ptr const d; + + Q_DISABLE_COPY(LdapOperation) +}; +} diff --git a/src/core/ldapsearch.cpp b/src/core/ldapsearch.cpp new file mode 100644 index 0000000..ac09168 --- /dev/null +++ b/src/core/ldapsearch.cpp @@ -0,0 +1,336 @@ +/* + This file is part of libkldap. + SPDX-FileCopyrightText: 2004-2006 Szombathelyi György + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "ldapsearch.h" +#include "ldapdefs.h" +#include "ldapdn.h" + +#include + +#include "ldap_debug.h" +#include +using namespace KLDAP; + +// blocking the GUI for xxx milliseconds +#define LDAPSEARCH_BLOCKING_TIMEOUT 10 + +class LdapSearchPrivate +{ +public: + LdapSearchPrivate(LdapSearch *parent) + : mParent(parent) + { + } + + void result(); + bool connect(); + void closeConnection(); + bool startSearch(const LdapDN &base, LdapUrl::Scope scope, const QString &filter, const QStringList &attributes, int pagesize, int count); + + LdapSearch *const mParent; + LdapConnection *mConn = nullptr; + LdapOperation mOp; + bool mOwnConnection = false; + bool mAbandoned = false; + int mId; + int mPageSize; + LdapDN mBase; + QString mFilter; + QStringList mAttributes; + LdapUrl::Scope mScope; + + QString mErrorString; + int mError; + int mCount; + int mMaxCount; + bool mFinished = false; +}; + +void LdapSearchPrivate::result() +{ + if (mAbandoned) { + mOp.abandon(mId); + return; + } + const int res = mOp.waitForResult(mId, LDAPSEARCH_BLOCKING_TIMEOUT); + + qCDebug(LDAP_LOG) << "LDAP result:" << res; + + if (res != 0 && (res == -1 || (mConn->ldapErrorCode() != KLDAP_SUCCESS && mConn->ldapErrorCode() != KLDAP_SASL_BIND_IN_PROGRESS))) { + // error happened, but no timeout + mError = mConn->ldapErrorCode(); + mErrorString = mConn->ldapErrorString(); + Q_EMIT mParent->result(mParent); + return; + } + + // binding + if (res == LdapOperation::RES_BIND) { + const QByteArray servercc = mOp.serverCred(); + + qCDebug(LDAP_LOG) << "LdapSearch RES_BIND"; + if (mConn->ldapErrorCode() == KLDAP_SUCCESS) { // bind succeeded + qCDebug(LDAP_LOG) << "bind succeeded"; + LdapControls savedctrls = mOp.serverControls(); + if (mPageSize) { + LdapControls ctrls = savedctrls; + LdapControl::insert(ctrls, LdapControl::createPageControl(mPageSize)); + mOp.setServerControls(ctrls); + } + + mId = mOp.search(mBase, mScope, mFilter, mAttributes); + mOp.setServerControls(savedctrls); + } else { // next bind step + qCDebug(LDAP_LOG) << "bind next step"; + mId = mOp.bind(servercc); + } + if (mId < 0) { + if (mId == KLDAP_SASL_ERROR) { + mError = mId; + mErrorString = mConn->saslErrorString(); + } else { + mError = mConn->ldapErrorCode(); + mErrorString = mConn->ldapErrorString(); + } + Q_EMIT mParent->result(mParent); + return; + } + QTimer::singleShot(0, mParent, [this]() { + result(); + }); + return; + } + + // End of entries + if (res == LdapOperation::RES_SEARCH_RESULT) { + if (mPageSize) { + QByteArray cookie; + int estsize = -1; + const int numberOfControls(mOp.controls().count()); + for (int i = 0; i < numberOfControls; ++i) { + estsize = mOp.controls().at(i).parsePageControl(cookie); + if (estsize != -1) { + break; + } + } + qCDebug(LDAP_LOG) << " estimated size:" << estsize; + if (estsize != -1 && !cookie.isEmpty()) { + LdapControls ctrls; + LdapControls savedctrls; + savedctrls = mOp.serverControls(); + ctrls = savedctrls; + LdapControl::insert(ctrls, LdapControl::createPageControl(mPageSize, cookie)); + mOp.setServerControls(ctrls); + mId = mOp.search(mBase, mScope, mFilter, mAttributes); + mOp.setServerControls(savedctrls); + if (mId == -1) { + mError = mConn->ldapErrorCode(); + mErrorString = mConn->ldapErrorString(); + Q_EMIT mParent->result(mParent); + return; + } + // continue with the next page + QTimer::singleShot(0, mParent, [this]() { + result(); + }); + return; + } + } + mFinished = true; + Q_EMIT mParent->result(mParent); + return; + } + + // Found an entry + if (res == LdapOperation::RES_SEARCH_ENTRY) { + Q_EMIT mParent->data(mParent, mOp.object()); + mCount++; + } + + // If not reached the requested entries, continue + if (mMaxCount <= 0 || mCount < mMaxCount) { + QTimer::singleShot(0, mParent, [this]() { + result(); + }); + } + // If reached the requested entries, indicate it + if (mMaxCount > 0 && mCount == mMaxCount) { + qCDebug(LDAP_LOG) << mCount << " entries reached"; + Q_EMIT mParent->result(mParent); + } +} + +bool LdapSearchPrivate::connect() +{ + const int ret = mConn->connect(); + if (ret != KLDAP_SUCCESS) { + mError = ret; + mErrorString = mConn->connectionError(); + closeConnection(); + return false; + } + return true; +} + +void LdapSearchPrivate::closeConnection() +{ + if (mOwnConnection && mConn) { + delete mConn; + mConn = nullptr; + } +} + +// This starts the real job +bool LdapSearchPrivate::startSearch(const LdapDN &base, LdapUrl::Scope scope, const QString &filter, const QStringList &attributes, int pagesize, int count) +{ + qCDebug(LDAP_LOG) << "search: base=" << base.toString() << "scope=" << static_cast(scope) << "filter=" << filter << "attributes=" << attributes + << "pagesize=" << pagesize; + mAbandoned = false; + mError = 0; + mErrorString.clear(); + mOp.setConnection(*mConn); + mPageSize = pagesize; + mBase = base; + mScope = scope; + mFilter = filter; + mAttributes = attributes; + mMaxCount = count; + mCount = 0; + mFinished = false; + + LdapControls savedctrls = mOp.serverControls(); + if (pagesize) { + LdapControls ctrls = savedctrls; + mConn->setOption(0x0008, nullptr); // Disable referals or paging won't work + LdapControl::insert(ctrls, LdapControl::createPageControl(pagesize)); + mOp.setServerControls(ctrls); + } + + mId = mOp.bind(); + if (mId < 0) { + if (mId == KLDAP_SASL_ERROR) { + mError = mId; + mErrorString = mConn->saslErrorString(); + } else { + mError = mConn->ldapErrorCode(); + mErrorString = mConn->ldapErrorString(); + if (mError == -1 && mErrorString.isEmpty()) { + mErrorString = i18n("Cannot access to server. Please reconfigure it."); + } + } + return false; + } + qCDebug(LDAP_LOG) << "startSearch msg id=" << mId; + + // maybe do this with threads?- need thread-safe client libs!!! + QTimer::singleShot(0, mParent, [this]() { + result(); + }); + + return true; +} + +/////////////////////////////////////////////// + +LdapSearch::LdapSearch() + : d(new LdapSearchPrivate(this)) +{ + d->mOwnConnection = true; + d->mConn = nullptr; +} + +LdapSearch::LdapSearch(LdapConnection &connection) + : d(new LdapSearchPrivate(this)) +{ + d->mOwnConnection = false; + d->mConn = &connection; +} + +LdapSearch::~LdapSearch() +{ + d->closeConnection(); +} + +void LdapSearch::setConnection(LdapConnection &connection) +{ + d->closeConnection(); + d->mOwnConnection = false; + d->mConn = &connection; +} + +void LdapSearch::setClientControls(const LdapControls &ctrls) +{ + d->mOp.setClientControls(ctrls); +} + +void LdapSearch::setServerControls(const LdapControls &ctrls) +{ + d->mOp.setServerControls(ctrls); +} + +bool LdapSearch::search(const LdapServer &server, const QStringList &attributes, int count) +{ + if (d->mOwnConnection) { + d->closeConnection(); + d->mConn = new LdapConnection(server); + if (!d->connect()) { + return false; + } + } + return d->startSearch(server.baseDn(), server.scope(), server.filter(), attributes, server.pageSize(), count); +} + +bool LdapSearch::search(const LdapUrl &url, int count) +{ + if (d->mOwnConnection) { + d->closeConnection(); + d->mConn = new LdapConnection(url); + if (!d->connect()) { + return false; + } + } + bool critical = true; + const int pagesize = url.extension(QStringLiteral("x-pagesize"), critical).toInt(); + return d->startSearch(url.dn(), url.scope(), url.filter(), url.attributes(), pagesize, count); +} + +bool LdapSearch::search(const LdapDN &base, LdapUrl::Scope scope, const QString &filter, const QStringList &attributes, int pagesize, int count) +{ + Q_ASSERT(!d->mOwnConnection); + return d->startSearch(base, scope, filter, attributes, pagesize, count); +} + +void LdapSearch::continueSearch() +{ + Q_ASSERT(!d->mFinished); + d->mCount = 0; + QTimer::singleShot(0, this, [this]() { + d->result(); + }); +} + +bool LdapSearch::isFinished() +{ + return d->mFinished; +} + +void LdapSearch::abandon() +{ + d->mAbandoned = true; +} + +int LdapSearch::error() const +{ + return d->mError; +} + +QString LdapSearch::errorString() const +{ + return d->mErrorString; +} + +#include "moc_ldapsearch.cpp" diff --git a/src/core/ldapsearch.h b/src/core/ldapsearch.h new file mode 100644 index 0000000..9a90970 --- /dev/null +++ b/src/core/ldapsearch.h @@ -0,0 +1,132 @@ +/* + This file is part of libkldap. + SPDX-FileCopyrightText: 2004-2006 Szombathelyi György + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#pragma once + +#include +#include +class LdapSearchPrivate; + +#include "kldap_export.h" + +#include "ldapconnection.h" +#include "ldapcontrol.h" +#include "ldapobject.h" +#include "ldapoperation.h" +#include "ldapserver.h" +#include "ldapurl.h" + +// clazy:excludeall=ctor-missing-parent-argument + +namespace KLDAP +{ +/** + * @brief + * This class starts a search operation on a LDAP server and returns the + * search values via a Qt signal. + */ +class KLDAP_EXPORT LdapSearch : public QObject +{ + Q_OBJECT + +public: + /** + * Constructs an LdapSearch object + */ + LdapSearch(); + + /** + * Constructs an LdapConnection object with the given connection. If this + * form of constructor used, then always this connection will be used + * regardless of the LDAP Url or LdapServer object passed to search(). + * @param connection the connection used to construct LdapConnection object + */ + explicit LdapSearch(LdapConnection &connection); + + ~LdapSearch() override; + + /** + * Sets the connection for this object to use for searches from now + * onwards, regardless of the LDAP Url or LdapServer object passed to + * search(). + */ + void setConnection(LdapConnection &connection); + + /** + * Sets the client controls which will sent with each operation. + */ + void setClientControls(const LdapControls &ctrls); + + /** + * Sets the server controls which will sent with each operation. + */ + void setServerControls(const LdapControls &ctrls); + + /** + * Starts a search operation on the LDAP server @param server, + * returning the attributes specified with @param attributes. + * @param count means how many entries to list. If it's >0, then result() + * will be emitted when the number of entries is reached, but with + * isFinished() set to false. + */ + Q_REQUIRED_RESULT bool search(const LdapServer &server, const QStringList &attributes = QStringList(), int count = 0); + + /** + * Starts a search operation on the given LDAP URL. + */ + Q_REQUIRED_RESULT bool search(const LdapUrl &url, int count = 0); + + /** + * Starts a search operation if the LdapConnection object already set + * in the constructor. + */ + Q_REQUIRED_RESULT bool search(const LdapDN &base, + LdapUrl::Scope scope = LdapUrl::Sub, + const QString &filter = QString(), + const QStringList &attributes = QStringList(), + int pagesize = 0, + int count = 0); + + /** + * Continues the search (if you set count to non-zero in search(), and isFinished() is false) + */ + void continueSearch(); + /** + * Returns true if the search is finished else returns false. + */ + Q_REQUIRED_RESULT bool isFinished(); + /** + * Tries to abandon the search. + */ + void abandon(); + + /** + * Returns the error code of the search operation (0 if no error). + */ + Q_REQUIRED_RESULT int error() const; + + /** + * Returns the error description of the search operation. + */ + Q_REQUIRED_RESULT QString errorString() const; + +Q_SIGNALS: + /** + * Emitted for each result object. + */ + void data(KLDAP::LdapSearch *search, const KLDAP::LdapObject &obj); + + /** + * Emitted when the searching finished. + */ + void result(KLDAP::LdapSearch *search); + +private: + std::unique_ptr const d; + Q_DISABLE_COPY(LdapSearch) +}; +} diff --git a/src/core/ldapserver.cpp b/src/core/ldapserver.cpp new file mode 100644 index 0000000..0055e8c --- /dev/null +++ b/src/core/ldapserver.cpp @@ -0,0 +1,426 @@ +/* + This file is part of libkldap. + SPDX-FileCopyrightText: 2004-2006 Szombathelyi György + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "ldapserver.h" + +#include "ldap_debug.h" + +using namespace KLDAP; + +class Q_DECL_HIDDEN LdapServer::LdapServerPrivate +{ +public: + QString mHost; + int mPort; + LdapDN mBaseDn; + QString mUser; + QString mBindDn; + QString mRealm; + QString mPassword; + QString mMech; + QString mFilter; + int mTimeLimit; + int mSizeLimit; + int mVersion; + int mPageSize; + int mTimeout; + Security mSecurity; + Auth mAuth; + QString mTLSCACertFile; + TLSRequireCertificate mTLSRequireCertificate; + LdapUrl::Scope mScope; + int mCompletionWeight = -1; +}; + +LdapServer::LdapServer() + : d(new LdapServerPrivate) +{ + clear(); +} + +LdapServer::LdapServer(const LdapUrl &url) + : d(new LdapServerPrivate) +{ + clear(); + + setUrl(url); +} + +LdapServer::LdapServer(const LdapServer &that) + : d(new LdapServerPrivate) +{ + *d = *that.d; +} + +LdapServer &LdapServer::operator=(const LdapServer &that) +{ + if (this == &that) { + return *this; + } + + *d = *that.d; + + return *this; +} + +LdapServer::~LdapServer() = default; + +void LdapServer::clear() +{ + d->mPort = 389; + d->mHost.clear(); + d->mUser.clear(); + d->mBindDn.clear(); + d->mMech.clear(); + d->mPassword.clear(); + d->mSecurity = None; + d->mAuth = Anonymous; + d->mTLSRequireCertificate = TLSReqCertDefault; + d->mTLSCACertFile.clear(); + d->mVersion = 3; + d->mTimeout = 0; + d->mSizeLimit = d->mTimeLimit = d->mPageSize = 0; + d->mCompletionWeight = -1; +} + +QString LdapServer::host() const +{ + return d->mHost; +} + +int LdapServer::port() const +{ + return d->mPort; +} + +LdapDN LdapServer::baseDn() const +{ + return d->mBaseDn; +} + +QString LdapServer::user() const +{ + return d->mUser; +} + +QString LdapServer::bindDn() const +{ + return d->mBindDn; +} + +QString LdapServer::realm() const +{ + return d->mRealm; +} + +QString LdapServer::password() const +{ + return d->mPassword; +} + +QString LdapServer::filter() const +{ + return d->mFilter; +} + +LdapUrl::Scope LdapServer::scope() const +{ + return d->mScope; +} + +int LdapServer::timeLimit() const +{ + return d->mTimeLimit; +} + +int LdapServer::sizeLimit() const +{ + return d->mSizeLimit; +} + +int LdapServer::pageSize() const +{ + return d->mPageSize; +} + +int LdapServer::version() const +{ + return d->mVersion; +} + +LdapServer::Security LdapServer::security() const +{ + return d->mSecurity; +} + +LdapServer::Auth LdapServer::auth() const +{ + return d->mAuth; +} + +LdapServer::TLSRequireCertificate LdapServer::tlsRequireCertificate() const +{ + return d->mTLSRequireCertificate; +} + +QString LdapServer::tlsCACertFile() const +{ + return d->mTLSCACertFile; +} + +QString LdapServer::mech() const +{ + return d->mMech; +} + +int LdapServer::timeout() const +{ + return d->mTimeout; +} + +void LdapServer::setHost(const QString &host) +{ + d->mHost = host; +} + +void LdapServer::setPort(int port) +{ + d->mPort = port; +} + +void LdapServer::setBaseDn(const LdapDN &baseDn) +{ + d->mBaseDn = baseDn; +} + +void LdapServer::setUser(const QString &user) +{ + d->mUser = user; +} + +void LdapServer::setBindDn(const QString &bindDn) +{ + d->mBindDn = bindDn; +} + +void LdapServer::setRealm(const QString &realm) +{ + d->mRealm = realm; +} + +void LdapServer::setPassword(const QString &password) +{ + d->mPassword = password; +} + +void LdapServer::setTimeLimit(int timelimit) +{ + d->mTimeLimit = timelimit; +} + +void LdapServer::setSizeLimit(int sizelimit) +{ + d->mSizeLimit = sizelimit; +} + +void LdapServer::setPageSize(int pagesize) +{ + d->mPageSize = pagesize; +} + +void LdapServer::setFilter(const QString &filter) +{ + d->mFilter = filter; +} + +void LdapServer::setScope(LdapUrl::Scope scope) +{ + d->mScope = scope; +} + +void LdapServer::setVersion(int version) +{ + d->mVersion = version; +} + +void LdapServer::setSecurity(Security security) +{ + d->mSecurity = security; +} + +void LdapServer::setAuth(Auth auth) +{ + d->mAuth = auth; +} + +void LdapServer::setTLSRequireCertificate(LdapServer::TLSRequireCertificate reqCert) +{ + d->mTLSRequireCertificate = reqCert; +} + +void LdapServer::setTLSCACertFile(const QString &caCertFile) +{ + d->mTLSCACertFile = caCertFile; +} + +void LdapServer::setMech(const QString &mech) +{ + d->mMech = mech; +} + +void LdapServer::setTimeout(int timeout) +{ + d->mTimeout = timeout; +} + +void LdapServer::setUrl(const LdapUrl &url) +{ + bool critical = true; + + d->mHost = url.host(); + const int port = url.port(); + if (port <= 0) { + d->mPort = 389; + } else { + d->mPort = port; + } + d->mBaseDn = url.dn(); + d->mScope = url.scope(); + + d->mFilter = url.filter(); + + d->mSecurity = None; + if (url.scheme() == QLatin1String("ldaps")) { + d->mSecurity = SSL; + } else if (url.hasExtension(QStringLiteral("x-tls"))) { + d->mSecurity = TLS; + } + qCDebug(LDAP_LOG) << "security:" << d->mSecurity; + + d->mMech.clear(); + d->mUser.clear(); + d->mBindDn.clear(); + if (url.hasExtension(QStringLiteral("x-sasl"))) { + d->mAuth = SASL; + if (url.hasExtension(QStringLiteral("x-mech"))) { + d->mMech = url.extension(QStringLiteral("x-mech"), critical); + } + if (url.hasExtension(QStringLiteral("x-realm"))) { + d->mRealm = url.extension(QStringLiteral("x-realm"), critical); + } + if (url.hasExtension(QStringLiteral("bindname"))) { + d->mBindDn = url.extension(QStringLiteral("bindname"), critical); + } + d->mUser = url.userName(); + } else if (url.hasExtension(QStringLiteral("bindname"))) { + d->mAuth = Simple; + d->mBindDn = url.extension(QStringLiteral("bindname"), critical); + } else { + const QString user = url.userName(); + if (user.isEmpty()) { + d->mAuth = Anonymous; + } else { + d->mAuth = Simple; + d->mBindDn = user; + } + } + d->mPassword = url.password(); + if (url.hasExtension(QStringLiteral("x-version"))) { + d->mVersion = url.extension(QStringLiteral("x-version"), critical).toInt(); + } else { + d->mVersion = 3; + } + + if (url.hasExtension(QStringLiteral("x-timeout"))) { + d->mTimeout = url.extension(QStringLiteral("x-timeout"), critical).toInt(); + } else { + d->mTimeout = 0; + } + + if (url.hasExtension(QStringLiteral("x-timelimit"))) { + d->mTimeLimit = url.extension(QStringLiteral("x-timelimit"), critical).toInt(); + } else { + d->mTimeLimit = 0; + } + + if (url.hasExtension(QStringLiteral("x-sizelimit"))) { + d->mSizeLimit = url.extension(QStringLiteral("x-sizelimit"), critical).toInt(); + } else { + d->mSizeLimit = 0; + } + + if (url.hasExtension(QStringLiteral("x-pagesize"))) { + d->mPageSize = url.extension(QStringLiteral("x-pagesize"), critical).toInt(); + } else { + d->mPageSize = 0; + } +} + +LdapUrl LdapServer::url() const +{ + LdapUrl url; + url.setScheme(d->mSecurity == SSL ? QStringLiteral("ldaps") : QStringLiteral("ldap")); + url.setPort(d->mPort); + url.setHost(d->mHost); + url.setDn(d->mBaseDn); + url.setFilter(d->mFilter); + url.setScope(d->mScope); + if (d->mAuth == SASL) { + url.setUserName(d->mUser); + url.setPassword(d->mPassword); + url.setExtension(QStringLiteral("bindname"), d->mBindDn, true); + url.setExtension(QStringLiteral("x-sasl"), QString()); + if (!d->mMech.isEmpty()) { + url.setExtension(QStringLiteral("x-mech"), d->mMech); + } + if (!d->mRealm.isEmpty()) { + url.setExtension(QStringLiteral("x-realm"), d->mRealm); + } + } else if (d->mAuth == Simple) { + url.setUserName(d->mBindDn); + url.setPassword(d->mPassword); + } + if (d->mVersion == 2) { + url.setExtension(QStringLiteral("x-version"), d->mVersion); + } + if (d->mTimeout) { + url.setExtension(QStringLiteral("x-timeout"), d->mTimeout); + } + if (d->mTimeLimit != 0) { + url.setExtension(QStringLiteral("x-timelimit"), d->mTimeLimit); + } + if (d->mSizeLimit != 0) { + url.setExtension(QStringLiteral("x-sizelimit"), d->mSizeLimit); + } + if (d->mPageSize != 0) { + url.setExtension(QStringLiteral("x-pagesize"), d->mPageSize); + } + if (d->mSecurity == TLS) { + url.setExtension(QStringLiteral("x-tls"), 1, true); + } + return url; +} + +void LdapServer::setCompletionWeight(int value) +{ + d->mCompletionWeight = value; +} + +int LdapServer::completionWeight() const +{ + return d->mCompletionWeight; +} + +QDebug operator<<(QDebug d, const KLDAP::LdapServer &t) +{ + d << "completionWeight " << t.completionWeight(); + d << "timeout " << t.timeout(); + d << "timeLimit " << t.timeLimit(); + d << "sizeLimit " << t.sizeLimit(); + // TODO + return d; +} diff --git a/src/core/ldapserver.h b/src/core/ldapserver.h new file mode 100644 index 0000000..228f4af --- /dev/null +++ b/src/core/ldapserver.h @@ -0,0 +1,315 @@ +/* + This file is part of libkldap. + SPDX-FileCopyrightText: 2004-2006 Szombathelyi György + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#pragma once + +#include + +#include "kldap_export.h" +#include "ldapdn.h" +#include "ldapurl.h" + +// clazy:excludeall=copyable-polymorphic + +namespace KLDAP +{ +/** + * @short A class that contains LDAP server connection settings. + * + * This class holds various parameters that are needed to connect + * to an LDAP server. + */ +class KLDAP_EXPORT LdapServer +{ +public: + /** + * Creates an empty LDAP server object. + */ + LdapServer(); + + /** + * Creates a new LDAP server object. + * + * @param url The LDAP url of the server. + */ + LdapServer(const LdapUrl &url); + + /** + * Creates a new LDAP server object from an @p other object. + */ + LdapServer(const LdapServer &other); + + /** + * Overwrites the values of the LDAP server object with + * the values from an @p other object. + */ + LdapServer &operator=(const LdapServer &other); + + /** + * Destroys the LDAP server object. + */ + ~LdapServer(); + + /** + * Describes the encryption settings that can be used + * for the LDAP connection. + */ + using Security = enum { + None, ///< Do not use any encryption. + TLS, ///< Use TLS encryption. + SSL ///< Use SSL encryption. + }; + + /** + * Describes the authentication method that can be used + * for the LDAP connection. + */ + using Auth = enum { + Anonymous, ///< Do no authentication. + Simple, ///< Authenticate via login and password. + SASL ///< Azthenticate with the SASL framework. + }; + + /** + * Describes the certificate request and check behaviour + * for TLS/SSL connections. + */ + using TLSRequireCertificate = enum { + TLSReqCertDefault, ///< Use system defaults + TLSReqCertNever, ///< Do not require any certificates. + TLSReqCertDemand, ///< Use LDAP_OPT_X_TLS_DEMAND. + TLSReqCertAllow, ///< Use LDAP_OPT_X_TLS_ALLOW. + TLSReqCertTry, ///< Use LDAP_OPT_X_TLS_TRY. + TLSReqCertHard, ///< Use LDAP_OPT_X_TLS_HARD. + }; + + /** + * Clears all server settings. + */ + void clear(); + + /** + * Sets the host of the LDAP connection. + */ + void setHost(const QString &host); + + /** + * Returns the host of the LDAP connection. + */ + Q_REQUIRED_RESULT QString host() const; + + /** + * Sets the port of the LDAP connection. + * If not port is set, 389 is used as default. + * @param port the LDAP port connection to set + */ + void setPort(int port); + + /** + * Returns the port of the LDAP connection. + */ + Q_REQUIRED_RESULT int port() const; + + /** + * Sets the @p baseDn of the LDAP connection. + */ + void setBaseDn(const LdapDN &baseDn); + + /** + * Returns the baseDn of the LDAP connection. + */ + Q_REQUIRED_RESULT LdapDN baseDn() const; + + /** + * Sets the @p user of the LDAP connection. + */ + void setUser(const QString &user); + + /** + * Returns the user of the LDAP connection. + */ + Q_REQUIRED_RESULT QString user() const; + + /** + * Sets the @p bindDn of the LDAP connection. + */ + void setBindDn(const QString &bindDn); + + /** + * Returns the bindDn of the LDAP connection. + */ + Q_REQUIRED_RESULT QString bindDn() const; + + /** + * Sets the @p realm of the LDAP connection. + */ + void setRealm(const QString &realm); + + /** + * Returns the realm of the LDAP connection. + */ + Q_REQUIRED_RESULT QString realm() const; + + /** + * Sets the @p password of the LDAP connection. + */ + void setPassword(const QString &password); + + /** + * Returns the password of the LDAP connection. + */ + QString password() const; + + /** + * Sets the protocol @p version of the LDAP connection. + * If no version is set, 3 is used as default. + * @param version the protocol version to set + */ + void setVersion(int version); + + /** + * Returns the protocol version of the LDAP connection. + */ + Q_REQUIRED_RESULT int version() const; + + /** + * Sets the security @p mode of the LDAP connection. + * If no security is set, None is used as default. + * @param mode the security mode to set + */ + void setSecurity(Security mode); + + /** + * Returns the security mode of the LDAP connection. + */ + Q_REQUIRED_RESULT Security security() const; + + /** + * Sets the @p authentication method of the LDAP connection. + * If no authentication method is set, Anonymous is used as default. + * @param authentication the authentication method to set + */ + void setAuth(Auth authentication); + + /** + * Returns the authentication method of the LDAP connection. + */ + Q_REQUIRED_RESULT Auth auth() const; + + /** + * Sets the certificate require mode for TLS/SSL connections + */ + void setTLSRequireCertificate(TLSRequireCertificate reqCert); + + /** + * Returns the certificate require mode for TLS/SSL connections + */ + Q_REQUIRED_RESULT TLSRequireCertificate tlsRequireCertificate() const; + + /** + * Sets the CA certificate file for TLS/SSL connections + */ + void setTLSCACertFile(const QString &caCertFile); + + /** + * Returns the CA certificate file used for TLS/SSL connections. + */ + Q_REQUIRED_RESULT QString tlsCACertFile() const; + + /** + * Sets the @p mech of the LDAP connection. + */ + void setMech(const QString &mech); + + /** + * Returns the mech of the LDAP connection. + */ + Q_REQUIRED_RESULT QString mech() const; + + /** + * Sets the @p timeout of the LDAP connection. + */ + void setTimeout(int timeout); + + /** + * Returns the timeout of the LDAP connection. + */ + Q_REQUIRED_RESULT int timeout() const; + + /** + * Sets the search @p scope of the LDAP connection. + */ + void setScope(LdapUrl::Scope scope); + + /** + * Returns the search scope of the LDAP connection. + */ + Q_REQUIRED_RESULT LdapUrl::Scope scope() const; + + /** + * Sets the time @p limit of the LDAP connection. + */ + void setTimeLimit(int limit); + + /** + * Returns the time limit of the LDAP connection. + */ + Q_REQUIRED_RESULT int timeLimit() const; + + /** + * Sets the size @p limit of the LDAP connection. + */ + void setSizeLimit(int sizelimit); + + /** + * Returns the size limit of the LDAP connection. + */ + Q_REQUIRED_RESULT int sizeLimit() const; + + /** + * Sets the page @p size of the LDAP connection. + */ + void setPageSize(int size); + + /** + * Returns the page size of the LDAP connection. + */ + Q_REQUIRED_RESULT int pageSize() const; + + /** + * Sets the @p filter string of the LDAP connection. + */ + void setFilter(const QString &filter); + + /** + * Returns the filter string of the LDAP connection. + */ + Q_REQUIRED_RESULT QString filter() const; + + /** + * Sets the server parameters from an RFC2255 compliant LDAP @p url. + */ + void setUrl(const LdapUrl &url); + + /** + * Returns the server parameters as an RFC2255 compliant LDAP Url. + * The URL extensions which are supported: + * Standard: bindname + * KLDAP extensions: x-tls, x-version, x-sasl, x-mech, x-realm, + * x-sizelimit, x-timelimit, x-pagesize, x-timeout + */ + Q_REQUIRED_RESULT LdapUrl url() const; + + void setCompletionWeight(int value); + Q_REQUIRED_RESULT int completionWeight() const; + +private: + class LdapServerPrivate; + std::unique_ptr const d; +}; +} +KLDAP_EXPORT QDebug operator<<(QDebug d, const KLDAP::LdapServer &t); diff --git a/src/core/ldapurl.cpp b/src/core/ldapurl.cpp new file mode 100644 index 0000000..5d345f1 --- /dev/null +++ b/src/core/ldapurl.cpp @@ -0,0 +1,275 @@ +/* + This file is part of libkldap. + SPDX-FileCopyrightText: 2004-2006 Szombathelyi György + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "ldapurl.h" + +#include "ldap_debug.h" + +using namespace KLDAP; + +class Q_DECL_HIDDEN LdapUrl::LdapUrlPrivate +{ +public: + LdapUrlPrivate() + : m_scope(Base) + { + } + + QMap m_extensions; + QStringList m_attributes; + Scope m_scope; + QString m_filter; +}; + +LdapUrl::LdapUrl() + : d(new LdapUrlPrivate) +{ +} + +LdapUrl::LdapUrl(const QUrl &_url) + : QUrl(_url) + , d(new LdapUrlPrivate) +{ + parseQuery(); +} + +LdapUrl::LdapUrl(const LdapUrl &that) + : QUrl(that) + , d(new LdapUrlPrivate) +{ + *d = *that.d; +} + +LdapUrl &LdapUrl::operator=(const LdapUrl &that) +{ + if (this == &that) { + return *this; + } + + QUrl::operator=(that); + *d = *that.d; + + return *this; +} + +LdapUrl::~LdapUrl() = default; + +void LdapUrl::setDn(const LdapDN &dn) +{ + const QString tmp = dn.toString(); + if (tmp.startsWith(QLatin1Char('/'))) { + setPath(tmp); + } else { + setPath(QLatin1Char('/') + tmp); + } +} + +LdapDN LdapUrl::dn() const +{ + QString tmp = path(); + if (tmp.startsWith(QLatin1Char('/'))) { + tmp = tmp.mid(1); + } + LdapDN tmpDN(tmp); + return tmpDN; +} + +QStringList LdapUrl::attributes() const +{ + return d->m_attributes; +} + +void LdapUrl::setAttributes(const QStringList &attributes) +{ + d->m_attributes = attributes; + updateQuery(); +} + +LdapUrl::Scope LdapUrl::scope() const +{ + return d->m_scope; +} + +void LdapUrl::setScope(Scope scope) +{ + d->m_scope = scope; + updateQuery(); +} + +QString LdapUrl::filter() const +{ + return d->m_filter; +} + +void LdapUrl::setFilter(const QString &filter) +{ + d->m_filter = filter; + updateQuery(); +} + +bool LdapUrl::hasExtension(const QString &key) const +{ + return d->m_extensions.contains(key); +} + +LdapUrl::Extension LdapUrl::extension(const QString &key) const +{ + QMap::const_iterator it; + + it = d->m_extensions.constFind(key); + if (it != d->m_extensions.constEnd()) { + return *it; + } else { + Extension ext; + ext.value = QLatin1String(""); + ext.critical = false; + return ext; + } +} + +QString LdapUrl::extension(const QString &key, bool &critical) const +{ + const Extension ext = extension(key); + critical = ext.critical; + return ext.value; +} + +void LdapUrl::setExtension(const QString &key, const LdapUrl::Extension &ext) +{ + d->m_extensions[key] = ext; + updateQuery(); +} + +void LdapUrl::setExtension(const QString &key, const QString &value, bool critical) +{ + Extension ext; + ext.value = value; + ext.critical = critical; + setExtension(key, ext); +} + +void LdapUrl::setExtension(const QString &key, int value, bool critical) +{ + Extension ext; + ext.value = QString::number(value); + ext.critical = critical; + setExtension(key, ext); +} + +void LdapUrl::removeExtension(const QString &key) +{ + d->m_extensions.remove(key); + updateQuery(); +} + +void LdapUrl::updateQuery() +{ + QMap::const_iterator it; + QString q(QLatin1Char('?')); + + // set the attributes to query + if (!d->m_attributes.isEmpty()) { + q += d->m_attributes.join(QLatin1Char(',')); + } + + // set the scope + q += QLatin1Char('?'); + switch (d->m_scope) { + case Sub: + q += QStringLiteral("sub"); + break; + case One: + q += QStringLiteral("one"); + break; + case Base: + q += QStringLiteral("base"); + break; + } + + // set the filter + q += QLatin1Char('?'); + if (d->m_filter != QLatin1String("(objectClass=*)") && !d->m_filter.isEmpty()) { + q += QLatin1String(toPercentEncoding(d->m_filter)); + } + + // set the extensions + q += QLatin1Char('?'); + for (it = d->m_extensions.constBegin(); it != d->m_extensions.constEnd(); ++it) { + if (it.value().critical) { + q += QLatin1Char('!'); + } + q += it.key(); + if (!it.value().value.isEmpty()) { + q += QLatin1Char('=') + QLatin1String(toPercentEncoding(it.value().value)); + } + q += QLatin1Char(','); + } + while (q.endsWith(QLatin1Char('?')) || q.endsWith(QLatin1Char(','))) { + q.remove(q.length() - 1, 1); + } + + setQuery(q); + qCDebug(LDAP_LOG) << "LDAP URL updateQuery():" << toDisplayString(); +} + +void LdapUrl::parseQuery() +{ + Extension ext; + QStringList extensions; + QString q = query(QUrl::FullyEncoded); + // remove first ? + if (q.startsWith(QLatin1Char('?'))) { + q.remove(0, 1); + } + + // split into a list + const QStringList url_items = q.split(QLatin1Char('?')); + + d->m_attributes.clear(); + d->m_scope = Base; + d->m_filter = QStringLiteral("(objectClass=*)"); + d->m_extensions.clear(); + + int i = 0; + QStringList::const_iterator end(url_items.constEnd()); + for (QStringList::const_iterator it = url_items.constBegin(); it != end; ++it, i++) { + switch (i) { + case 0: + d->m_attributes = (*it).split(QLatin1Char(','), Qt::SkipEmptyParts); + break; + case 1: + if ((*it) == QLatin1String("sub")) { + d->m_scope = Sub; + } else if ((*it) == QLatin1String("one")) { + d->m_scope = One; + } + break; + case 2: + d->m_filter = fromPercentEncoding((*it).toLatin1()); + break; + case 3: + extensions = (*it).split(QLatin1Char(','), Qt::SkipEmptyParts); + break; + } + } + + QString name; + QString value; + QStringList::const_iterator end2(extensions.constEnd()); + for (QStringList::const_iterator it = extensions.constBegin(); it != end2; ++it) { + ext.critical = false; + name = fromPercentEncoding((*it).section(QLatin1Char('='), 0, 0).toLatin1()).toLower(); + value = fromPercentEncoding((*it).section(QLatin1Char('='), 1).toLatin1()); + if (name.startsWith(QLatin1Char('!'))) { + ext.critical = true; + name.remove(0, 1); + } + qCDebug(LDAP_LOG) << "LdapUrl extensions name=" << name << "value:" << value; + ext.value = value.replace(QLatin1String("%2"), QLatin1String(",")); + setExtension(name, ext); + } +} diff --git a/src/core/ldapurl.h b/src/core/ldapurl.h new file mode 100644 index 0000000..553b720 --- /dev/null +++ b/src/core/ldapurl.h @@ -0,0 +1,167 @@ +/* + This file is part of libkldap. + SPDX-FileCopyrightText: 2004-2006 Szombathelyi György + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#pragma once + +#include + +#include + +#include "kldap_export.h" +#include "ldapdn.h" + +// clazy:excludeall=copyable-polymorphic + +namespace KLDAP +{ +/** + * @short A special url class for LDAP. + * + * LdapUrl implements an RFC 2255 compliant LDAP Url parser, with minimal + * differences. LDAP Urls implemented by this class has the following format: + * ldap[s]://[user[:password]@]hostname[:port]["/" [dn ["?" [attributes] + * ["?" [scope] ["?" [filter] ["?" extensions]]]]]] + */ +class KLDAP_EXPORT LdapUrl : public QUrl +{ +public: + /** + * A class holding the extension name and state whether + * the extension is critical. + */ + using Extension = struct { + QString value; + bool critical; + }; + + /** + * Describes the scope of the LDAP url. + */ + using Scope = enum { + Base, ///< Only the same level as the url. + One, ///< The level of the url and the one below. + Sub ///< All levels below the url's level. + }; + + /** + * Constructs an empty LDAP url. + */ + LdapUrl(); + + /** + * Constructs a LDAP url from a KUrl @p url. + */ + explicit LdapUrl(const QUrl &url); + + /** + * Constructs a LDAP url from an other url. + */ + LdapUrl(const LdapUrl &other); + + /** + * Overwrites the values of the LDAP url with values + * from an @p other url. + */ + LdapUrl &operator=(const LdapUrl &other); + + /** + * Destroys the LDAP url. + */ + ~LdapUrl(); + + /** + * Sets the @p dn part of the LDAP url. + */ + void setDn(const LdapDN &dn); + + /** + * Returns the dn part of the LDAP url. + * This is equal to path() with the slash removed from the beginning. + */ + Q_REQUIRED_RESULT LdapDN dn() const; + + /** + * Sets the @p attributes part of the LDAP url. + */ + void setAttributes(const QStringList &attributes); + + /** + * Returns the attributes part of the LDAP url. + */ + Q_REQUIRED_RESULT QStringList attributes() const; + + /** + * Sets the scope part of the LDAP url. + */ + void setScope(Scope scope); + + /** + * Returns the scope part of the LDAP url. + */ + Q_REQUIRED_RESULT Scope scope() const; + + /** + * Sets the filter part of the LDAP url. + */ + void setFilter(const QString &filter); + + /** + * Returns the filter part of the LDAP url. + */ + Q_REQUIRED_RESULT QString filter() const; + + /** + * Returns whether the specified @p extension exists in the LDAP url. + */ + Q_REQUIRED_RESULT bool hasExtension(const QString &extension) const; + + /** + * Returns the specified @p extension. + */ + Q_REQUIRED_RESULT Extension extension(const QString &extension) const; + + /** + * Returns the specified @p extension. + */ + Q_REQUIRED_RESULT QString extension(const QString &extension, bool &critical) const; + + /** + * Sets the specified extension @p key with the value and criticality in @p extension. + */ + void setExtension(const QString &key, const Extension &extension); + + /** + * Sets the specified extension @p key with the @p value and criticality specified. + */ + void setExtension(const QString &key, const QString &value, bool critical = false); + + /** + * Sets the specified extension @p key with the @p value and criticality specified. + */ + void setExtension(const QString &key, int value, bool critical = false); + + /** + * Removes the specified @p extension. + */ + void removeExtension(const QString &extension); + + /** + * Updates the query component from the attributes, scope, filter and extensions. + */ + void updateQuery(); + + /** + * Parses the query argument of the URL and makes it available via the + * attributes(), extension(), filter() and scope() methods + */ + void parseQuery(); + +private: + class LdapUrlPrivate; + std::unique_ptr const d; +}; +} diff --git a/src/core/ldif.cpp b/src/core/ldif.cpp new file mode 100644 index 0000000..846eed0 --- /dev/null +++ b/src/core/ldif.cpp @@ -0,0 +1,429 @@ +/* + This file is part of libkldap. + SPDX-FileCopyrightText: 2004-2006 Szombathelyi György + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "ldif.h" + +#include "ldap_debug.h" + +using namespace KLDAP; + +class Q_DECL_HIDDEN Ldif::LdifPrivate +{ +public: + int mModType; + bool mDelOldRdn, mUrl; + LdapDN mDn; + QString mAttr, mNewRdn, mNewSuperior, mOid; + QByteArray mLdif, mValue; + EntryType mEntryType; + + bool mIsNewLine, mIsComment, mCritical; + ParseValue mLastParseValue; + uint mPos, mLineNumber; + QByteArray mLine; +}; + +Ldif::Ldif() + : d(new LdifPrivate) +{ + startParsing(); +} + +Ldif::Ldif(const Ldif &that) + : d(new LdifPrivate) +{ + *d = *that.d; + + startParsing(); +} + +Ldif &Ldif::operator=(const Ldif &that) +{ + if (this == &that) { + return *this; + } + + *d = *that.d; + + return *this; +} + +Ldif::~Ldif() = default; + +QByteArray Ldif::assembleLine(const QString &fieldname, const QByteArray &value, uint linelen, bool url) +{ + QByteArray result; + + if (url) { + result = fieldname.toUtf8() + ":< " + value; + } else { + bool safe = false; + bool isDn = fieldname.toLower() == QLatin1String("dn"); + // SAFE-INIT-CHAR + if (!value.isEmpty() && value[0] > 0 && value[0] != '\n' && value[0] != '\r' && value[0] != ':' && value[0] != '<') { + safe = true; + } + + // SAFE-CHAR + if (safe) { + for (int i = 1; i < value.size(); i++) { + // allow utf-8 in Distinguished Names + if ((isDn && value[i] == 0) || (!isDn && value[i] <= 0) || value[i] == '\r' || value[i] == '\n') { + safe = false; + break; + } + } + } + + if (value.isEmpty()) { + safe = true; + } + + if (safe) { + result = fieldname.toUtf8() + ": " + value; + } else { + result = fieldname.toUtf8() + ":: " + value.toBase64(); + } + + if (linelen > 0) { + int i = (uint)(fieldname.length() + 2) > linelen ? fieldname.length() + 2 : linelen; + while (i < result.length()) { + result.insert(i, "\n "); + i += linelen + 2; + } + } + } + return result; +} + +QByteArray Ldif::assembleLine(const QString &fieldname, const QString &value, uint linelen, bool url) +{ + return assembleLine(fieldname, value.toUtf8(), linelen, url); +} + +bool Ldif::splitLine(const QByteArray &line, QString &fieldname, QByteArray &value) +{ + int position; + int linelen; + + // qCDebug(LDAP_LOG) << "line:" << QString::fromUtf8(line); + + position = line.indexOf(":"); + if (position == -1) { + // strange: we did not find a fieldname + fieldname = QLatin1String(""); + value = line.trimmed(); + // qCDebug(LDAP_LOG) << "value :" << value[0]; + return false; + } + + linelen = line.size(); + fieldname = QString::fromUtf8(line.left(position).trimmed()); + + if (linelen > (position + 1) && line[position + 1] == ':') { + // String is BASE64 encoded -> decode it now. + if (linelen <= (position + 3)) { + value.resize(0); + return false; + } + value = QByteArray::fromBase64(line.mid(position + 3)); + return false; + } + + if (linelen > (position + 1) && line[position + 1] == '<') { + // String is an URL. + if (linelen <= (position + 3)) { + value.resize(0); + return false; + } + value = QByteArray::fromBase64(line.mid(position + 3)); + return true; + } + + if (linelen <= (position + 2)) { + value.resize(0); + return false; + } + value = line.mid(position + 2); + return false; +} + +bool Ldif::splitControl(const QByteArray &line, QString &oid, bool &critical, QByteArray &value) +{ + QString tmp; + critical = false; + bool url = splitLine(line, tmp, value); + + qCDebug(LDAP_LOG) << "value:" << QString::fromUtf8(value); + if (tmp.isEmpty()) { + tmp = QString::fromUtf8(value); + value.resize(0); + } + if (tmp.endsWith(QLatin1String("true"))) { + critical = true; + tmp.chop(5); + } else if (tmp.endsWith(QLatin1String("false"))) { + critical = false; + tmp.chop(6); + } + oid = tmp; + return url; +} + +Ldif::ParseValue Ldif::processLine() +{ + if (d->mIsComment) { + return None; + } + + ParseValue retval = None; + if (d->mLastParseValue == EndEntry) { + d->mEntryType = Entry_None; + } + + d->mUrl = splitLine(d->mLine, d->mAttr, d->mValue); + + const QString attrLower = d->mAttr.toLower(); + + switch (d->mEntryType) { + case Entry_None: + if (attrLower == QLatin1String("version")) { + if (!d->mDn.isEmpty()) { + retval = Err; + } + } else if (attrLower == QLatin1String("dn")) { + qCDebug(LDAP_LOG) << "ldapentry dn:" << QString::fromUtf8(d->mValue); + d->mDn = LdapDN(QString::fromUtf8(d->mValue)); + d->mModType = Mod_None; + retval = NewEntry; + } else if (attrLower == QLatin1String("changetype")) { + if (d->mDn.isEmpty()) { + retval = Err; + } else { + QString tmpval = QString::fromUtf8(d->mValue); + qCDebug(LDAP_LOG) << "changetype:" << tmpval; + if (tmpval == QLatin1String("add")) { + d->mEntryType = Entry_Add; + } else if (tmpval == QLatin1String("delete")) { + d->mEntryType = Entry_Del; + } else if (tmpval == QLatin1String("modrdn") || tmpval == QLatin1String("moddn")) { + d->mNewRdn.clear(); + d->mNewSuperior.clear(); + d->mDelOldRdn = true; + d->mEntryType = Entry_Modrdn; + } else if (tmpval == QLatin1String("modify")) { + d->mEntryType = Entry_Mod; + } else { + retval = Err; + } + } + } else if (attrLower == QLatin1String("control")) { + d->mUrl = splitControl(d->mValue, d->mOid, d->mCritical, d->mValue); + retval = Control; + } else if (!d->mAttr.isEmpty() && !d->mValue.isEmpty()) { + d->mEntryType = Entry_Add; + retval = Item; + } + break; + case Entry_Add: + if (d->mAttr.isEmpty() && d->mValue.isEmpty()) { + retval = EndEntry; + } else { + retval = Item; + } + break; + case Entry_Del: + if (d->mAttr.isEmpty() && d->mValue.isEmpty()) { + retval = EndEntry; + } else { + retval = Err; + } + break; + case Entry_Mod: + if (d->mModType == Mod_None) { + qCDebug(LDAP_LOG) << "new modtype" << d->mAttr; + if (d->mAttr.isEmpty() && d->mValue.isEmpty()) { + retval = EndEntry; + } else if (attrLower == QLatin1String("add")) { + d->mModType = Mod_Add; + } else if (attrLower == QLatin1String("replace")) { + d->mModType = Mod_Replace; + d->mAttr = QString::fromUtf8(d->mValue); + d->mValue = QByteArray(); + retval = Item; + } else if (attrLower == QLatin1String("delete")) { + d->mModType = Mod_Del; + d->mAttr = QString::fromUtf8(d->mValue); + d->mValue = QByteArray(); + retval = Item; + } else { + retval = Err; + } + } else { + if (d->mAttr.isEmpty()) { + if (QString::fromUtf8(d->mValue) == QLatin1String("-")) { + d->mModType = Mod_None; + } else if (d->mValue.isEmpty()) { + retval = EndEntry; + } else { + retval = Err; + } + } else { + retval = Item; + } + } + break; + case Entry_Modrdn: + if (d->mAttr.isEmpty() && d->mValue.isEmpty()) { + retval = EndEntry; + } else if (attrLower == QLatin1String("newrdn")) { + d->mNewRdn = QString::fromUtf8(d->mValue); + } else if (attrLower == QLatin1String("newsuperior")) { + d->mNewSuperior = QString::fromUtf8(d->mValue); + } else if (attrLower == QLatin1String("deleteoldrdn")) { + if (d->mValue.size() > 0 && d->mValue[0] == '0') { + d->mDelOldRdn = false; + } else if (d->mValue.size() > 0 && d->mValue[0] == '1') { + d->mDelOldRdn = true; + } else { + retval = Err; + } + } else { + retval = Err; + } + break; + } + return retval; +} + +Ldif::ParseValue Ldif::nextItem() +{ + ParseValue retval = None; + char c = 0; + + while (retval == None) { + if (d->mPos < (uint)d->mLdif.size()) { + c = d->mLdif.at(d->mPos); + d->mPos++; + if (d->mIsNewLine && c == '\r') { + continue; // handle \n\r line end + } + if (d->mIsNewLine && (c == ' ' || c == '\t')) { // line folding + d->mIsNewLine = false; + continue; + } + if (d->mIsNewLine) { + d->mIsNewLine = false; + retval = processLine(); + d->mLastParseValue = retval; + d->mLine.resize(0); + d->mIsComment = (c == '#'); + } + if (c == '\n' || c == '\r') { + d->mLineNumber++; + d->mIsNewLine = true; + continue; + } + } else { + retval = MoreData; + break; + } + + if (!d->mIsComment) { + d->mLine += c; + } + } + return retval; +} + +void Ldif::endLdif() +{ + QByteArray tmp(3, '\n'); + d->mLdif = tmp; + d->mPos = 0; +} + +void Ldif::startParsing() +{ + d->mPos = d->mLineNumber = 0; + d->mDelOldRdn = false; + d->mEntryType = Entry_None; + d->mModType = Mod_None; + d->mDn = LdapDN(); + d->mNewRdn.clear(); + d->mNewSuperior.clear(); + d->mLine = QByteArray(); + d->mIsNewLine = false; + d->mIsComment = false; + d->mLastParseValue = None; +} + +void Ldif::setLdif(const QByteArray &ldif) +{ + d->mLdif = ldif; + d->mPos = 0; +} + +Ldif::EntryType Ldif::entryType() const +{ + return d->mEntryType; +} + +int Ldif::modType() const +{ + return d->mModType; +} + +LdapDN Ldif::dn() const +{ + return d->mDn; +} + +QString Ldif::newRdn() const +{ + return d->mNewRdn; +} + +QString Ldif::newSuperior() const +{ + return d->mNewSuperior; +} + +bool Ldif::delOldRdn() const +{ + return d->mDelOldRdn; +} + +QString Ldif::attr() const +{ + return d->mAttr; +} + +QByteArray Ldif::value() const +{ + return d->mValue; +} + +bool Ldif::isUrl() const +{ + return d->mUrl; +} + +bool Ldif::isCritical() const +{ + return d->mCritical; +} + +QString Ldif::oid() const +{ + return d->mOid; +} + +uint Ldif::lineNumber() const +{ + return d->mLineNumber; +} diff --git a/src/core/ldif.h b/src/core/ldif.h new file mode 100644 index 0000000..ad207f8 --- /dev/null +++ b/src/core/ldif.h @@ -0,0 +1,174 @@ +/* + This file is part of libkldap. + SPDX-FileCopyrightText: 2004-2006 Szombathelyi György + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#pragma once + +#include +#include + +#include "kldap_export.h" +#include "ldapdn.h" + +// clazy:excludeall=copyable-polymorphic + +namespace KLDAP +{ +/** + * Ldif + * + * Ldif implements an RFC 2849 compliant Ldif parser. Ldif files are used to + * represent directory information on LDAP-based servers, or to describe a set + * of changes which are to be applied to a directory. + */ + +class KLDAP_EXPORT Ldif +{ +public: + using ParseValue = enum { None, NewEntry, EndEntry, Item, Control, Err, MoreData }; + + using EntryType = enum { Entry_None, Entry_Add, Entry_Del, Entry_Mod, Entry_Modrdn }; + + using ModType = enum { Mod_None, Mod_Add, Mod_Replace, Mod_Del }; + + Ldif(); + + Ldif(const Ldif &that); + Ldif &operator=(const Ldif &that); + + ~Ldif(); + + /** + * Assembles fieldname and value into a valid Ldif line, BASE64 encodes the + * value if necessary and optionally splits into more lines. + * @param fieldname The name of the entry. + * @param value The value of the entry. + * @param linelen Maximum length of the lines in the result. + * @param url If true, encode value as url ( use :< ). + */ + Q_REQUIRED_RESULT static QByteArray assembleLine(const QString &fieldname, const QByteArray &value, uint linelen = 0, bool url = false); + /** + * This is the same as the above function, the only difference that + * this accepts QString as the value. + */ + Q_REQUIRED_RESULT static QByteArray assembleLine(const QString &fieldname, const QString &value, uint linelen = 0, bool url = false); + + /** + * Splits one line from an Ldif file to attribute and value components. + * @return true if value is an URL, false otherwise + */ + Q_REQUIRED_RESULT static bool splitLine(const QByteArray &line, QString &fieldname, QByteArray &value); + + /** + * Splits a control specification (without the "control:" directive) + * @param line is the control directive + * @param oid will contain the OID + * @param critical will contain the criticality of control + * @param value is the control value + */ + Q_REQUIRED_RESULT static bool splitControl(const QByteArray &line, QString &oid, bool &critical, QByteArray &value); + + /** + * Starts the parsing of a new Ldif + */ + void startParsing(); + + /** + * Process one Ldif line + */ + Q_REQUIRED_RESULT ParseValue processLine(); + + /** + * Process the Ldif until a complete item can be returned + * @return NewEntry if a new DN encountered, Item if a new item returned, + * Err if the Ldif contains error, EndEntry if the parser reached the end + * of the current entry and MoreData if the parser encountered the end of + * the current chunk of the Ldif. + * + * If you want to finish the parsing after receiving MoreData, then call + * endLdif(), so the parser can safely flush the current entry. + */ + Q_REQUIRED_RESULT ParseValue nextItem(); + + /** + * Sets a chunk of Ldif. Call before startParsing(), or if nextItem() + * returned MoreData. + * @param ldif the Ldif chunk to set + */ + void setLdif(const QByteArray &ldif); + + /** + * Indicates the end of the Ldif file/stream. Call if nextItem() returned + * MoreData, but actually you don't have more data. + */ + void endLdif(); + + /** + * Returns the requested LDAP operation extracted from the current entry. + */ + Q_REQUIRED_RESULT EntryType entryType() const; + + /** + * Returns the LDAP modify request type if entryType() returned Entry_Mod. + */ + Q_REQUIRED_RESULT int modType() const; + + /** + * Returns the Distinguished Name of the current entry. + */ + Q_REQUIRED_RESULT LdapDN dn() const; + + /** + * Returns the new Relative Distinguished Name if modType() returned + * Entry_Modrdn. + */ + Q_REQUIRED_RESULT QString newRdn() const; + + /** + * Returns the new parent of the entry if modType() returned Entry_Modrdn. + */ + QString newSuperior() const; + + /** + * Returns if the delete of the old RDN is required. + */ + Q_REQUIRED_RESULT bool delOldRdn() const; + + /** + * Returns the attribute name. + */ + Q_REQUIRED_RESULT QString attr() const; + + /** + * Returns the attribute value. + */ + Q_REQUIRED_RESULT QByteArray value() const; + + /** + * Returns if val() is an url + */ + Q_REQUIRED_RESULT bool isUrl() const; + + /** + * Returns the criticality level when modType() returned Control. + */ + Q_REQUIRED_RESULT bool isCritical() const; + + /** + * Returns the OID when modType() returned Control. + */ + Q_REQUIRED_RESULT QString oid() const; + + /** + * Returns the line number which the parser processes. + */ + Q_REQUIRED_RESULT uint lineNumber() const; + +private: + class LdifPrivate; + std::unique_ptr const d; +}; +} diff --git a/src/core/w32-ldap-help.h b/src/core/w32-ldap-help.h new file mode 100644 index 0000000..50afe24 --- /dev/null +++ b/src/core/w32-ldap-help.h @@ -0,0 +1,88 @@ +// krazy:excludeall=style +/* w32-ldap-help.h - Map utf8 based API into a wchar_t API. + + SPDX-FileCopyrightText: 2010 Andre Heinecke + + SPDX-License-Identifier: LGPL-2.0-or-later + */ + +#pragma once + +#include +#ifdef UNICODE +#undef UNICODE +#include +#include +#define UNICODE +#else +#include +#include +#endif // UNICODE + +/* + * From the openldap manpage: + * ber_len_t is an unsigned integer of at least 32 bits used to represent + * a length. It is commonly equivalent to a size_t. ber_slen_t is the + * signed variant to ber_len_t. + */ +typedef ULONG ber_len_t; + +#ifndef timeval +#define timeval l_timeval +#endif + +/* Redirect used ldap functions to functions with win_ prefix + * to further redirect those depending on the Windows Flavour */ +//#define ldap_err2string(a) win_ldap_err2string(a) +#define ldap_init(a, b) win_ldap_init(a, b) +#define ldap_sasl_bind(a, b, c, d, e, f, g) win_ldap_sasl_bind(a, b, c, d, e, f, g) +#define ldap_sasl_bind_s(a, b, c, d, e, f, g) win_ldap_sasl_bind_s(a, b, c, d, e, f, g) +#define ldap_parse_sasl_bind_result (a, b, c, d, e) win_ldap_parse_sasl_bind_result((a), (b), (c), (d), (e)) +#define ldap_get_dn(a, b) win_ldap_get_dn(a, b) +#define ldap_memfree(a) win_ldap_memfree(a) +#define ldap_mods_free(a, b) win_ldap_mods_free(a, b) +#define ldap_first_attribute(a, b, c) win_ldap_first_attribute(a, b, c) +#define ldap_get_values_len(a, b, c) win_ldap_get_values_len(a, b, c) +#define ldap_next_attribute(a, b, c) win_ldap_next_attribute(a, b, c) +#define ldap_parse_result(a, b, c, d, e, f, g, h) win_ldap_parse_result(a, b, c, d, e, f, g, h) +#define ldap_parse_extended_result(a, b, c, d, e) win_ldap_parse_extended_result(a, b, c, d, e) +#define ldap_add_ext(a, b, c, d, e, f) win_ldap_add_ext((a), (b), (c), (d), (e), (f)) +#define ldap_add_ext_s(a, b, c, d, e) win_ldap_add_ext_s((a), (b), (c), (d), (e)) +#define ldap_compare_ext_s(a, b, c, d, e, f) win_ldap_compare_ext_s((a), (b), (c), (d), (e), (f)) +#define ldap_compare_ext(a, b, c, d, e, f, g) win_ldap_compare_ext((a), (b), (c), (d), (e), (f), (g)) +#define ldap_modify_ext_s(a, b, c, d, e) win_ldap_modify_ext_s((a), (b), (c), (d), (e)) +#define ldap_search_ext(a, b, c, d, e, f, g, h, i, j, k) win_ldap_search_ext((a), (b), (c), (d), (e), (f), (g), (h), (i), (j), (k)) +#define ldap_rename_ext(a, b, c, d, e, f, g, h) win_ldap_rename_ext((a), (b), (c), (d), (e), (f), (g), (h)) +#define ldap_rename(a, b, c, d, e, f, g, h) ldap_rename_ext((a), (b), (c), (d), (e), (f), (g), (h)) +#define ldap_delete_ext(a, b, c, d, e) win_ldap_delete_ext((a), (b), (c), (d), (e)) +#define ldap_modify_ext(a, b, c, d, e, f) win_ldap_modify_ext((a), (b), (c), (d), (e), (f)) +#define ldap_abandon_ext(a, b, c, d) win_ldap_abandon_ext((a), (b), (c), (d)) +#define ldap_controls_free(a) win_ldap_controls_free(a) + +// Use the functions that are available on the platform +// or redirect to wrapper functions + +/* Windows offers ASCII variants of most LDAP functions + * we only have to ensure that those are used */ +#define LDAPControl LDAPControlA +#define LDAPMod LDAPModA +#define win_ldap_init(a, b) ldap_initA((a), (b)) +#define win_ldap_simple_bind_s(a, b, c) ldap_simple_bind_sA((a), (b), (c)) +#define win_ldap_sasl_bind(a, b, c, d, e, f, g) ldap_sasl_bindA(a, b, c, d, e, f, g) +#define win_ldap_sasl_bind_s(a, b, c, d, e, f, g) ldap_sasl_bind_sA(a, b, c, d, e, f, g) +#define win_ldap_search_st(a, b, c, d, e, f, g, h) ldap_search_stA((a), (b), (c), (d), (e), (f), (g), (h)) +#define win_ldap_search_ext(a, b, c, d, e, f, g, h, i, j, k) my_win_ldap_search_ext((a), (b), (c), (d), (e), (f), (g), (h), (i), (j), (k)) +#define win_ldap_get_dn(a, b) ldap_get_dnA((a), (b)) +#define win_ldap_first_attribute(a, b, c) ldap_first_attributeA((a), (b), (c)) +#define win_ldap_next_attribute(a, b, c) ldap_next_attributeA((a), (b), (c)) +#define win_ldap_get_values_len(a, b, c) ldap_get_values_lenA((a), (b), (c)) +#define win_ldap_memfree(a) ldap_memfreeA((a)) +#define win_ldap_err2string(a) ldap_err2stringA((a)) +#define win_ldap_controls_free(a) ldap_controls_freeA((a)) +#define win_ldap_mods_free(a, b) ldap_mods_freeA((a), (b)) +#define win_ldap_add_ext(a, b, c, d, e, f) ldap_add_extA((a), (b), (c), (d), (e), ((ulong *)f)) +#define win_ldap_add_ext_s(a, b, c, d, e) ldap_add_ext_sA((a), (b), (c), (d), (e)) +#define win_ldap_parse_extended_result(a, b, c, d, e) ldap_parse_extended_resultA((*a), (b), (c), (d), (e)) +#define win_ldap_parse_result(a, b, c, d, e, f, g, h) ldap_parse_resultA((a), (b), ((ulong *)c), (d), (e), (f), (g), (h)) +#define win_ldap_modify_ext_s(a, b, c, d, e) ldap_modify_ext_sW((a), (b), (c), (d), (e)) +#define win_ldap_compare_ext_s(a, b, c, d, e, f) ldap_compare_ext_sA((a), (b), (c), (d), (e), (f)) diff --git a/src/kldap_config.h.cmake b/src/kldap_config.h.cmake new file mode 100644 index 0000000..d981d42 --- /dev/null +++ b/src/kldap_config.h.cmake @@ -0,0 +1,9 @@ +#cmakedefine01 HAVE_LDAP_EXTENDED_OPERATION +#cmakedefine01 HAVE_LDAP_EXTENDED_OPERATION_S +#cmakedefine01 LDAP_FOUND +#cmakedefine01 HAVE_WINLDAP_H +#cmakedefine01 HAVE_SYS_TIME_H +#cmakedefine01 HAVE_LDAP_START_TLS_S +#cmakedefine01 HAVE_LDAP_INITIALIZE +#cmakedefine01 HAVE_BER_MEMFREE +#cmakedefine01 HAVE_LDAP_UNBIND_EXT diff --git a/src/widgets/addhostdialog.cpp b/src/widgets/addhostdialog.cpp new file mode 100644 index 0000000..d9f3bca --- /dev/null +++ b/src/widgets/addhostdialog.cpp @@ -0,0 +1,179 @@ +/* + This file is part of libkldap. + + SPDX-FileCopyrightText: 2002-2010 Tobias Koenig + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "addhostdialog.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace KLDAP; +class KLDAP::AddHostDialogPrivate +{ +public: + AddHostDialogPrivate(AddHostDialog *qq) + : q(qq) + { + } + + ~AddHostDialogPrivate() + { + writeConfig(); + } + + void readConfig(); + void writeConfig(); + KLDAP::LdapConfigWidget *mCfg = nullptr; + KLDAP::LdapServer *mServer = nullptr; + QPushButton *mOkButton = nullptr; + AddHostDialog *const q; +}; + +void AddHostDialogPrivate::readConfig() +{ + KConfigGroup group(KSharedConfig::openStateConfig(), "AddHostDialog"); + const QSize size = group.readEntry("Size", QSize(600, 400)); + if (size.isValid()) { + q->resize(size); + } +} + +void AddHostDialogPrivate::writeConfig() +{ + KConfigGroup group(KSharedConfig::openStateConfig(), "AddHostDialog"); + group.writeEntry("Size", q->size()); + group.sync(); +} + +AddHostDialog::AddHostDialog(KLDAP::LdapServer *server, QWidget *parent) + : QDialog(parent) + , d(new KLDAP::AddHostDialogPrivate(this)) +{ + setWindowTitle(i18nc("@title:window", "Add Host")); + auto mainLayout = new QVBoxLayout(this); + auto buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this); + d->mOkButton = buttonBox->button(QDialogButtonBox::Ok); + d->mOkButton->setDefault(true); +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) + d->mOkButton->setShortcut(Qt::CTRL | Qt::Key_Return); +#else + d->mOkButton->setShortcut({Qt::CTRL, Qt::Key_Return}); +#endif + connect(buttonBox, &QDialogButtonBox::rejected, this, &AddHostDialog::reject); + + setModal(true); + + d->mServer = server; + + auto page = new QWidget(this); + mainLayout->addWidget(page); + mainLayout->addWidget(buttonBox); + auto layout = new QHBoxLayout(page); + layout->setContentsMargins(0, 0, 0, 0); + + d->mCfg = new KLDAP::LdapConfigWidget(KLDAP::LdapConfigWidget::W_USER | KLDAP::LdapConfigWidget::W_PASS | KLDAP::LdapConfigWidget::W_BINDDN + | KLDAP::LdapConfigWidget::W_REALM | KLDAP::LdapConfigWidget::W_HOST | KLDAP::LdapConfigWidget::W_PORT + | KLDAP::LdapConfigWidget::W_VER | KLDAP::LdapConfigWidget::W_TIMELIMIT | KLDAP::LdapConfigWidget::W_SIZELIMIT + | KLDAP::LdapConfigWidget::W_PAGESIZE | KLDAP::LdapConfigWidget::W_DN | KLDAP::LdapConfigWidget::W_FILTER + | KLDAP::LdapConfigWidget::W_SECBOX | KLDAP::LdapConfigWidget::W_AUTHBOX, + page); + + layout->addWidget(d->mCfg); + d->mCfg->setHost(d->mServer->host()); + d->mCfg->setPort(d->mServer->port()); + d->mCfg->setDn(d->mServer->baseDn()); + d->mCfg->setUser(d->mServer->user()); + d->mCfg->setBindDn(d->mServer->bindDn()); + d->mCfg->setPassword(d->mServer->password()); + d->mCfg->setTimeLimit(d->mServer->timeLimit()); + d->mCfg->setSizeLimit(d->mServer->sizeLimit()); + d->mCfg->setPageSize(d->mServer->pageSize()); + d->mCfg->setVersion(d->mServer->version()); + d->mCfg->setFilter(d->mServer->filter()); + switch (d->mServer->security()) { + case KLDAP::LdapServer::TLS: + d->mCfg->setSecurity(KLDAP::LdapConfigWidget::TLS); + break; + case KLDAP::LdapServer::SSL: + d->mCfg->setSecurity(KLDAP::LdapConfigWidget::SSL); + break; + default: + d->mCfg->setSecurity(KLDAP::LdapConfigWidget::None); + } + + switch (d->mServer->auth()) { + case KLDAP::LdapServer::Simple: + d->mCfg->setAuth(KLDAP::LdapConfigWidget::Simple); + break; + case KLDAP::LdapServer::SASL: + d->mCfg->setAuth(KLDAP::LdapConfigWidget::SASL); + break; + default: + d->mCfg->setAuth(KLDAP::LdapConfigWidget::Anonymous); + } + d->mCfg->setMech(d->mServer->mech()); + + KAcceleratorManager::manage(this); + connect(d->mCfg, &KLDAP::LdapConfigWidget::hostNameChanged, this, &AddHostDialog::slotHostEditChanged); + connect(d->mOkButton, &QPushButton::clicked, this, &AddHostDialog::slotOk); + d->mOkButton->setEnabled(!d->mServer->host().isEmpty()); + d->readConfig(); +} + +AddHostDialog::~AddHostDialog() = default; + +void AddHostDialog::slotHostEditChanged(const QString &text) +{ + d->mOkButton->setEnabled(!text.isEmpty()); +} + +void AddHostDialog::slotOk() +{ + d->mServer->setHost(d->mCfg->host()); + d->mServer->setPort(d->mCfg->port()); + d->mServer->setBaseDn(d->mCfg->dn()); + d->mServer->setUser(d->mCfg->user()); + d->mServer->setBindDn(d->mCfg->bindDn()); + d->mServer->setPassword(d->mCfg->password()); + d->mServer->setTimeLimit(d->mCfg->timeLimit()); + d->mServer->setSizeLimit(d->mCfg->sizeLimit()); + d->mServer->setPageSize(d->mCfg->pageSize()); + d->mServer->setVersion(d->mCfg->version()); + d->mServer->setFilter(d->mCfg->filter()); + switch (d->mCfg->security()) { + case KLDAP::LdapConfigWidget::TLS: + d->mServer->setSecurity(KLDAP::LdapServer::TLS); + break; + case KLDAP::LdapConfigWidget::SSL: + d->mServer->setSecurity(KLDAP::LdapServer::SSL); + break; + default: + d->mServer->setSecurity(KLDAP::LdapServer::None); + } + switch (d->mCfg->auth()) { + case KLDAP::LdapConfigWidget::Simple: + d->mServer->setAuth(KLDAP::LdapServer::Simple); + break; + case KLDAP::LdapConfigWidget::SASL: + d->mServer->setAuth(KLDAP::LdapServer::SASL); + break; + default: + d->mServer->setAuth(KLDAP::LdapServer::Anonymous); + } + d->mServer->setMech(d->mCfg->mech()); + QDialog::accept(); +} + +#include "moc_addhostdialog.cpp" diff --git a/src/widgets/addhostdialog.h b/src/widgets/addhostdialog.h new file mode 100644 index 0000000..3fe5bd2 --- /dev/null +++ b/src/widgets/addhostdialog.h @@ -0,0 +1,40 @@ +/* + This file is part of libkldap. + + SPDX-FileCopyrightText: 2002-2010 Tobias Koenig + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#pragma once + +#include "kldap_export.h" +#include + +namespace KLDAP +{ +class LdapServer; +class AddHostDialogPrivate; +/** + * @brief The AddHostDialog class + * @author Laurent Montel + */ +class KLDAP_EXPORT AddHostDialog : public QDialog +{ + Q_OBJECT + +public: + explicit AddHostDialog(KLDAP::LdapServer *server, QWidget *parent = nullptr); + ~AddHostDialog() override; + +Q_SIGNALS: + void changed(bool); + +private Q_SLOTS: + void slotHostEditChanged(const QString &); + void slotOk(); + +private: + std::unique_ptr const d; +}; +} diff --git a/src/widgets/ldapclient.cpp b/src/widgets/ldapclient.cpp new file mode 100644 index 0000000..a419458 --- /dev/null +++ b/src/widgets/ldapclient.cpp @@ -0,0 +1,278 @@ +/* kldapclient.cpp - LDAP access + * SPDX-FileCopyrightText: 2002 Klarälvdalens Datakonsult AB + * SPDX-FileContributor: Steffen Hansen + * + * Ported to KABC by Daniel Molkentin + * + * SPDX-License-Identifier: LGPL-2.0-or-later + */ + +#include "ldapclient.h" +#include "ldapclient_debug.h" + +#include +#include +#include +#include + +#include + +#include + +using namespace KLDAP; + +class Q_DECL_HIDDEN LdapClient::LdapClientPrivate +{ +public: + LdapClientPrivate(LdapClient *qq) + : q(qq) + { + } + + ~LdapClientPrivate() + { + cancelQuery(); + } + + void cancelQuery(); + + void startParseLDIF(); + void parseLDIF(const QByteArray &data); + void endParseLDIF(); + void finishCurrentObject(); + + void slotData(KIO::Job *, const QByteArray &data); + void slotInfoMessage(KJob *, const QString &info, const QString &); + void slotDone(); + + LdapClient *const q; + + KLDAP::LdapServer mServer; + QString mScope; + QStringList mAttrs; + + QPointer mJob = nullptr; + bool mActive = false; + + KLDAP::LdapObject mCurrentObject; + KLDAP::Ldif mLdif; + int mClientNumber = 0; + int mCompletionWeight = 0; +}; + +LdapClient::LdapClient(int clientNumber, QObject *parent) + : QObject(parent) + , d(new LdapClientPrivate(this)) +{ + d->mClientNumber = clientNumber; + d->mCompletionWeight = 50 - d->mClientNumber; +} + +LdapClient::~LdapClient() = default; + +bool LdapClient::isActive() const +{ + return d->mActive; +} + +void LdapClient::setServer(const KLDAP::LdapServer &server) +{ + d->mServer = server; +} + +const KLDAP::LdapServer LdapClient::server() const +{ + return d->mServer; +} + +void LdapClient::setAttributes(const QStringList &attrs) +{ + d->mAttrs = attrs; + d->mAttrs << QStringLiteral("objectClass"); // via objectClass we detect distribution lists +} + +QStringList LdapClient::attributes() const +{ + return d->mAttrs; +} + +void LdapClient::setScope(const QString &scope) +{ + d->mScope = scope; +} + +void LdapClient::startQuery(const QString &filter) +{ + cancelQuery(); + KLDAP::LdapUrl url{d->mServer.url()}; + + url.setAttributes(d->mAttrs); + url.setScope(d->mScope == QLatin1String("one") ? KLDAP::LdapUrl::One : KLDAP::LdapUrl::Sub); + const QString userFilter = url.filter(); + QString finalFilter = filter; + // combine the filter set by the user in the config dialog (url.filter()) and the filter from this query + if (!userFilter.isEmpty()) { + finalFilter = QLatin1String("&(") + finalFilter + QLatin1String(")(") + userFilter + QLatin1Char(')'); + } + url.setFilter(QLatin1Char('(') + finalFilter + QLatin1Char(')')); + + qCDebug(LDAPCLIENT_LOG) << "LdapClient: Doing query:" << url.toDisplayString(); + + d->startParseLDIF(); + d->mActive = true; + KIO::TransferJob *transfertJob = KIO::get(url, KIO::NoReload, KIO::HideProgressInfo); + d->mJob = transfertJob; + connect(transfertJob, &KIO::TransferJob::data, this, [this](KIO::Job *job, const QByteArray &data) { + d->slotData(job, data); + }); + connect(d->mJob.data(), &KIO::TransferJob::infoMessage, this, [this](KJob *job, const QString &str, const QString &val) { + d->slotInfoMessage(job, str, val); + }); + connect(d->mJob.data(), &KIO::TransferJob::result, this, [this]() { + d->slotDone(); + }); +} + +void LdapClient::cancelQuery() +{ + d->cancelQuery(); +} + +void LdapClient::LdapClientPrivate::cancelQuery() +{ + if (mJob) { + mJob->kill(); + mJob = nullptr; + } + + mActive = false; +} + +void LdapClient::LdapClientPrivate::slotData(KIO::Job *, const QByteArray &data) +{ + parseLDIF(data); +} + +void LdapClient::LdapClientPrivate::slotInfoMessage(KJob *, const QString &info, const QString &) +{ + qCDebug(LDAPCLIENT_LOG) << "Job said :" << info; +} + +void LdapClient::LdapClientPrivate::slotDone() +{ + endParseLDIF(); + mActive = false; + if (!mJob) { + return; + } + int err = mJob->error(); + if (err && err != KIO::ERR_USER_CANCELED) { + Q_EMIT q->error(mJob->errorString()); + } + Q_EMIT q->done(); +} + +void LdapClient::LdapClientPrivate::startParseLDIF() +{ + mCurrentObject.clear(); + mLdif.startParsing(); +} + +void LdapClient::LdapClientPrivate::endParseLDIF() +{ +} + +void LdapClient::LdapClientPrivate::finishCurrentObject() +{ + mCurrentObject.setDn(mLdif.dn()); + KLDAP::LdapAttrValue objectclasses; + const KLDAP::LdapAttrMap::ConstIterator end = mCurrentObject.attributes().constEnd(); + for (KLDAP::LdapAttrMap::ConstIterator it = mCurrentObject.attributes().constBegin(); it != end; ++it) { + if (it.key().toLower() == QLatin1String("objectclass")) { + objectclasses = it.value(); + break; + } + } + + bool groupofnames = false; + const KLDAP::LdapAttrValue::ConstIterator endValue(objectclasses.constEnd()); + for (KLDAP::LdapAttrValue::ConstIterator it = objectclasses.constBegin(); it != endValue; ++it) { + const QByteArray sClass = (*it).toLower(); + if (sClass == "groupofnames" || sClass == "kolabgroupofnames") { + groupofnames = true; + } + } + + if (groupofnames) { + KLDAP::LdapAttrMap::ConstIterator it = mCurrentObject.attributes().find(QStringLiteral("mail")); + if (it == mCurrentObject.attributes().end()) { + // No explicit mail address found so far? + // Fine, then we use the address stored in the DN. + QString sMail; + const QStringList lMail = mCurrentObject.dn().toString().split(QStringLiteral(",dc="), Qt::SkipEmptyParts); + const int n = lMail.count(); + if (n) { + if (lMail.first().startsWith(QLatin1String("cn="), Qt::CaseInsensitive)) { + sMail = lMail.first().simplified().mid(3); + if (1 < n) { + sMail.append(QLatin1Char('@')); + } + for (int i = 1; i < n; ++i) { + sMail.append(lMail.at(i)); + if (i < n - 1) { + sMail.append(QLatin1Char('.')); + } + } + mCurrentObject.addValue(QStringLiteral("mail"), sMail.toUtf8()); + } + } + } + } + Q_EMIT q->result(*q, mCurrentObject); + mCurrentObject.clear(); +} + +void LdapClient::LdapClientPrivate::parseLDIF(const QByteArray &data) +{ + // qCDebug(LDAPCLIENT_LOG) <<"LdapClient::parseLDIF(" << QCString(data.data(), data.size()+1) <<" )"; + if (!data.isEmpty()) { + mLdif.setLdif(data); + } else { + mLdif.endLdif(); + } + KLDAP::Ldif::ParseValue ret; + QString name; + do { + ret = mLdif.nextItem(); + switch (ret) { + case KLDAP::Ldif::Item: { + name = mLdif.attr(); + const QByteArray value = mLdif.value(); + mCurrentObject.addValue(name, value); + break; + } + case KLDAP::Ldif::EndEntry: + finishCurrentObject(); + break; + default: + break; + } + } while (ret != KLDAP::Ldif::MoreData); +} + +int LdapClient::clientNumber() const +{ + return d->mClientNumber; +} + +int LdapClient::completionWeight() const +{ + return d->mCompletionWeight; +} + +void LdapClient::setCompletionWeight(int weight) +{ + d->mCompletionWeight = weight; +} + +#include "moc_ldapclient.cpp" diff --git a/src/widgets/ldapclient.h b/src/widgets/ldapclient.h new file mode 100644 index 0000000..a0840e3 --- /dev/null +++ b/src/widgets/ldapclient.h @@ -0,0 +1,139 @@ +/* kldapclient.h - LDAP access + * SPDX-FileCopyrightText: 2002 Klarälvdalens Datakonsult AB + * SPDX-FileContributor: Steffen Hansen + * + * SPDX-License-Identifier: LGPL-2.0-or-later + */ + +#pragma once + +#include "kldap_export.h" +#include +#include +#include + +namespace KLDAP +{ +class LdapObject; +class LdapServer; + +/** + * @short An object that represents a configured LDAP server. + * + * This class represents a client that to an LDAP server that + * can be used for LDAP lookups. Every client is identified by + * a unique numeric id. + * + * @since 4.5 + */ +class KLDAP_EXPORT LdapClient : public QObject +{ + Q_OBJECT + +public: + /** + * Creates a new ldap client. + * + * @param clientNumber The unique number of this client. + * @param parent The parent object. + */ + explicit LdapClient(int clientNumber, QObject *parent = nullptr); + + /** + * Destroys the ldap client. + */ + ~LdapClient() override; + + /** + * Returns the number of this client. + */ + int clientNumber() const; + + /** + * Returns whether this client is currently running + * a search query. + */ + bool isActive() const; + + /** + * Sets the completion @p weight of this client. + * + * This value will be used to sort the results of this + * client when used for auto completion. + */ + void setCompletionWeight(int weight); + + /** + * Returns the completion weight of this client. + */ + int completionWeight() const; + + /** + * Sets the LDAP @p server information that shall be + * used by this client. + */ + void setServer(const KLDAP::LdapServer &server); + + /** + * Returns the ldap server information that are used + * by this client. + */ + const KLDAP::LdapServer server() const; + + /** + * Sets the LDAP @p attributes that should be returned + * in the query result. + * + * Pass an empty list to include all available attributes. + */ + void setAttributes(const QStringList &attributes); + + /** + * Returns the LDAP attributes that should be returned + * in the query result. + */ + QStringList attributes() const; + + /** + * Sets the @p scope of the LDAP query. + * + * Valid values are 'one' or 'sub'. + */ + void setScope(const QString &scope); + + /** + * Starts the query with the given @p filter. + */ + void startQuery(const QString &filter); + + /** + * Cancels a running query. + */ + void cancelQuery(); + +Q_SIGNALS: + /** + * This signal is emitted when the query has finished. + */ + void done(); + + /** + * This signal is emitted in case of an error. + * + * @param message A message that describes the error. + */ + void error(const QString &message); + + /** + * This signal is emitted once for each object that is + * returned from the query + */ + void result(const KLDAP::LdapClient &client, const KLDAP::LdapObject &); + +private: + //@cond PRIVATE + class LdapClientPrivate; + std::unique_ptr const d; + //@endcond +}; +} diff --git a/src/widgets/ldapclientsearch.cpp b/src/widgets/ldapclientsearch.cpp new file mode 100644 index 0000000..b8a3ec4 --- /dev/null +++ b/src/widgets/ldapclientsearch.cpp @@ -0,0 +1,426 @@ +/* kldapclient.cpp - LDAP access + * SPDX-FileCopyrightText: 2002 Klarälvdalens Datakonsult AB + * SPDX-FileContributor: Steffen Hansen + * + * Ported to KABC by Daniel Molkentin + * + * SPDX-FileCopyrightText: 2013-2022 Laurent Montel + * + * SPDX-License-Identifier: LGPL-2.0-or-later + */ + +#include "ldapclientsearch.h" +#include "ldapclient_debug.h" +#include "ldapclientsearchconfig.h" +#include "ldapsearchclientreadconfigserverjob.h" + +#include "ldapclient.h" + +#include +#include +#include + +#include +#include +#include +#include +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) +#include +#endif + +#include + +#include +#include + +using namespace KLDAP; + +class Q_DECL_HIDDEN LdapClientSearch::LdapClientSearchPrivate +{ +public: + LdapClientSearchPrivate(LdapClientSearch *qq) + : q(qq) + { + } + + ~LdapClientSearchPrivate() = default; + + void readWeighForClient(LdapClient *client, const KConfigGroup &config, int clientNumber); + void readConfig(); + void finish(); + void makeSearchData(QStringList &ret, LdapResult::List &resList); + + void slotLDAPResult(const KLDAP::LdapClient &client, const KLDAP::LdapObject &); + void slotLDAPError(const QString &); + void slotLDAPDone(); + void slotDataTimer(); + void slotFileChanged(const QString &); + void init(const QStringList &attributes); + + LdapClientSearch *const q; + QList mClients; + QStringList mAttributes; + QString mSearchText; + QString mFilter; + QTimer mDataTimer; + int mActiveClients = 0; + bool mNoLDAPLookup = false; + LdapResultObject::List mResults; + QString mConfigFile; +}; + +LdapClientSearch::LdapClientSearch(QObject *parent) + : QObject(parent) + , d(new LdapClientSearchPrivate(this)) +{ + d->init(LdapClientSearch::defaultAttributes()); +} + +LdapClientSearch::LdapClientSearch(const QStringList &attr, QObject *parent) + : QObject(parent) + , d(new LdapClientSearchPrivate(this)) +{ + d->init(attr); +} + +LdapClientSearch::~LdapClientSearch() = default; + +void LdapClientSearch::LdapClientSearchPrivate::init(const QStringList &attributes) +{ +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) + Kdelibs4ConfigMigrator migrate(QStringLiteral("ldapsettings")); + migrate.setConfigFiles(QStringList() << QStringLiteral("kabldaprc")); + migrate.migrate(); +#endif + + if (!KProtocolInfo::isKnownProtocol(QUrl(QStringLiteral("ldap://localhost")))) { + mNoLDAPLookup = true; + return; + } + + mAttributes = attributes; + + // Set the filter, to make sure old usage (before 4.14) of this object still works. + mFilter = QStringLiteral( + "&(|(objectclass=person)(objectclass=groupOfNames)(mail=*))" + "(|(cn=%1*)(mail=%1*)(givenName=%1*)(sn=%1*))"); + + readConfig(); + q->connect(KDirWatch::self(), &KDirWatch::dirty, q, [this](const QString &filename) { + slotFileChanged(filename); + }); +} + +void LdapClientSearch::LdapClientSearchPrivate::readWeighForClient(LdapClient *client, const KConfigGroup &config, int clientNumber) +{ + const int completionWeight = config.readEntry(QStringLiteral("SelectedCompletionWeight%1").arg(clientNumber), -1); + if (completionWeight != -1) { + client->setCompletionWeight(completionWeight); + } +} + +void LdapClientSearch::updateCompletionWeights() +{ + KConfigGroup config(KLDAP::LdapClientSearchConfig::config(), "LDAP"); + for (int i = 0, total = d->mClients.size(); i < total; ++i) { + d->readWeighForClient(d->mClients[i], config, i); + } +} + +QList LdapClientSearch::clients() const +{ + return d->mClients; +} + +QString LdapClientSearch::filter() const +{ + return d->mFilter; +} + +void LdapClientSearch::setFilter(const QString &filter) +{ + d->mFilter = filter; +} + +QStringList LdapClientSearch::attributes() const +{ + return d->mAttributes; +} + +void LdapClientSearch::setAttributes(const QStringList &attrs) +{ + if (attrs != d->mAttributes) { + d->mAttributes = attrs; + d->readConfig(); + } +} + +QStringList LdapClientSearch::defaultAttributes() +{ + const QStringList attr{QStringLiteral("cn"), QStringLiteral("mail"), QStringLiteral("givenname"), QStringLiteral("sn")}; + return attr; +} + +void LdapClientSearch::LdapClientSearchPrivate::readConfig() +{ + q->cancelSearch(); + qDeleteAll(mClients); + mClients.clear(); + + // stolen from KAddressBook + KConfigGroup config(KLDAP::LdapClientSearchConfig::config(), "LDAP"); + const int numHosts = config.readEntry("NumSelectedHosts", 0); + if (!numHosts) { + mNoLDAPLookup = true; + } else { + for (int j = 0; j < numHosts; ++j) { + auto ldapClient = new LdapClient(j, q); + auto job = new LdapSearchClientReadConfigServerJob; + job->setCurrentIndex(j); + job->setActive(true); + job->setConfig(config); + job->setLdapClient(ldapClient); + job->start(); + + mNoLDAPLookup = false; + readWeighForClient(ldapClient, config, j); + + ldapClient->setAttributes(mAttributes); + + q->connect(ldapClient, &LdapClient::result, q, [this](const LdapClient &client, const KLDAP::LdapObject &obj) { + slotLDAPResult(client, obj); + }); + q->connect(ldapClient, &LdapClient::done, q, [this]() { + slotLDAPDone(); + }); + q->connect(ldapClient, qOverload(&LdapClient::error), q, [this](const QString &str) { + slotLDAPError(str); + }); + + mClients.append(ldapClient); + } + + q->connect(&mDataTimer, &QTimer::timeout, q, [this]() { + slotDataTimer(); + }); + } + mConfigFile = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) + QStringLiteral("/kabldaprc"); + KDirWatch::self()->addFile(mConfigFile); +} + +void LdapClientSearch::LdapClientSearchPrivate::slotFileChanged(const QString &file) +{ + if (file == mConfigFile) { + readConfig(); + } +} + +void LdapClientSearch::startSearch(const QString &txt) +{ + if (d->mNoLDAPLookup) { + QMetaObject::invokeMethod(this, &LdapClientSearch::searchDone, Qt::QueuedConnection); + return; + } + + cancelSearch(); + + int pos = txt.indexOf(QLatin1Char('\"')); + if (pos >= 0) { + ++pos; + const int pos2 = txt.indexOf(QLatin1Char('\"'), pos); + if (pos2 >= 0) { + d->mSearchText = txt.mid(pos, pos2 - pos); + } else { + d->mSearchText = txt.mid(pos); + } + } else { + d->mSearchText = txt; + } + + const QString filter = d->mFilter.arg(d->mSearchText); + + QList::Iterator it(d->mClients.begin()); + const QList::Iterator end(d->mClients.end()); + for (; it != end; ++it) { + (*it)->startQuery(filter); + qCDebug(LDAPCLIENT_LOG) << "LdapClientSearch::startSearch()" << filter; + ++d->mActiveClients; + } +} + +void LdapClientSearch::cancelSearch() +{ + QList::Iterator it(d->mClients.begin()); + const QList::Iterator end(d->mClients.end()); + for (; it != end; ++it) { + (*it)->cancelQuery(); + } + + d->mActiveClients = 0; + d->mResults.clear(); +} + +void LdapClientSearch::LdapClientSearchPrivate::slotLDAPResult(const LdapClient &client, const KLDAP::LdapObject &obj) +{ + LdapResultObject result; + result.client = &client; + result.object = obj; + + mResults.append(result); + if (!mDataTimer.isActive()) { + mDataTimer.setSingleShot(true); + mDataTimer.start(500); + } +} + +void LdapClientSearch::LdapClientSearchPrivate::slotLDAPError(const QString &) +{ + slotLDAPDone(); +} + +void LdapClientSearch::LdapClientSearchPrivate::slotLDAPDone() +{ + if (--mActiveClients > 0) { + return; + } + + finish(); +} + +void LdapClientSearch::LdapClientSearchPrivate::slotDataTimer() +{ + QStringList lst; + LdapResult::List reslist; + + Q_EMIT q->searchData(mResults); + + makeSearchData(lst, reslist); + if (!lst.isEmpty()) { + Q_EMIT q->searchData(lst); + } + if (!reslist.isEmpty()) { + Q_EMIT q->searchData(reslist); + } +} + +void LdapClientSearch::LdapClientSearchPrivate::finish() +{ + mDataTimer.stop(); + + slotDataTimer(); // Q_EMIT final bunch of data + Q_EMIT q->searchDone(); +} + +void LdapClientSearch::LdapClientSearchPrivate::makeSearchData(QStringList &ret, LdapResult::List &resList) +{ + LdapResultObject::List::ConstIterator it1(mResults.constBegin()); + const LdapResultObject::List::ConstIterator end1(mResults.constEnd()); + for (; it1 != end1; ++it1) { + QString name; + QString mail; + QString givenname; + QString sn; + QStringList mails; + bool isDistributionList = false; + bool wasCN = false; + bool wasDC = false; + + // qCDebug(LDAPCLIENT_LOG) <<"\n\nLdapClientSearch::makeSearchData()"; + + KLDAP::LdapAttrMap::ConstIterator it2; + for (it2 = (*it1).object.attributes().constBegin(); it2 != (*it1).object.attributes().constEnd(); ++it2) { + QByteArray val = (*it2).first(); + int len = val.size(); + if (len > 0 && '\0' == val[len - 1]) { + --len; + } + const QString tmp = QString::fromUtf8(val.constData(), len); + // qCDebug(LDAPCLIENT_LOG) <<" key: \"" << it2.key() <<"\" value: \"" << tmp <<"\""; + if (it2.key() == QLatin1String("cn")) { + name = tmp; + if (mail.isEmpty()) { + mail = tmp; + } else { + if (wasCN) { + mail.prepend(QLatin1Char('.')); + } else { + mail.prepend(QLatin1Char('@')); + } + mail.prepend(tmp); + } + wasCN = true; + } else if (it2.key() == QLatin1String("dc")) { + if (mail.isEmpty()) { + mail = tmp; + } else { + if (wasDC) { + mail.append(QLatin1Char('.')); + } else { + mail.append(QLatin1Char('@')); + } + mail.append(tmp); + } + wasDC = true; + } else if (it2.key() == QLatin1String("mail")) { + mail = tmp; + KLDAP::LdapAttrValue::ConstIterator it3 = it2.value().constBegin(); + for (; it3 != it2.value().constEnd(); ++it3) { + mails.append(QString::fromUtf8((*it3).data(), (*it3).size())); + } + } else if (it2.key() == QLatin1String("givenName")) { + givenname = tmp; + } else if (it2.key() == QLatin1String("sn")) { + sn = tmp; + } else if (it2.key() == QLatin1String("objectClass") && (tmp == QLatin1String("groupOfNames") || tmp == QLatin1String("kolabGroupOfNames"))) { + isDistributionList = true; + } + } + + if (mails.isEmpty()) { + if (!mail.isEmpty()) { + mails.append(mail); + } + if (isDistributionList) { + // qCDebug(LDAPCLIENT_LOG) <<"\n\nLdapClientSearch::makeSearchData() found a list:" << name; + ret.append(name); + // following lines commented out for bugfixing kolab issue #177: + // + // Unlike we thought previously we may NOT append the server name here. + // + // The right server is found by the SMTP server instead: Kolab users + // must use the correct SMTP server, by definition. + // + // mail = (*it1).client->base().simplified(); + // mail.replace( ",dc=", ".", false ); + // if( mail.startsWith("dc=", false) ) + // mail.remove(0, 3); + // mail.prepend( '@' ); + // mail.prepend( name ); + // mail = name; + } else { + continue; // nothing, bad entry + } + } else if (name.isEmpty()) { + ret.append(mail); + } else { + ret.append(QStringLiteral("%1 <%2>").arg(name, mail)); + } + + LdapResult sr; + sr.dn = (*it1).object.dn(); + sr.clientNumber = (*it1).client->clientNumber(); + sr.completionWeight = (*it1).client->completionWeight(); + sr.name = name; + sr.email = mails; + resList.append(sr); + } + + mResults.clear(); +} + +bool LdapClientSearch::isAvailable() const +{ + return !d->mNoLDAPLookup; +} + +#include "moc_ldapclientsearch.cpp" diff --git a/src/widgets/ldapclientsearch.h b/src/widgets/ldapclientsearch.h new file mode 100644 index 0000000..dcd9ef8 --- /dev/null +++ b/src/widgets/ldapclientsearch.h @@ -0,0 +1,175 @@ +/* kldapclient.h - LDAP access + * SPDX-FileCopyrightText: 2002 Klarälvdalens Datakonsult AB + * SPDX-FileContributor: Steffen Hansen + * + * SPDX-License-Identifier: LGPL-2.0-or-later + */ + +#pragma once + +#include "kldap_export.h" + +#include +#include +#include + +namespace KLDAP +{ +class LdapClient; + +/** + * Describes the result returned by an LdapClientSearch query. + * + * @since 4.14 + */ +struct LdapResultObject { + using List = QVector; + const LdapClient *client = nullptr; + KLDAP::LdapObject object; +}; + +/** + * Describes the result returned by an LdapClientSearch query. + * + * @since 4.5 + */ +struct LdapResult { + /** + * A list of LdapResult objects. + */ + using List = QVector; + + LdapDN dn; + QString name; ///< The full name of the contact. + QStringList email; ///< The list of emails of the contact. + int clientNumber; ///< The client the contact comes from (used for sorting in a ldap-only lookup). + int completionWeight; ///< The weight of the contact (used for sorting in a completion list). +}; + +/** + * @since 4.5 + */ +class KLDAP_EXPORT LdapClientSearch : public QObject +{ + Q_OBJECT + +public: + /** + * Creates a new ldap client search object. + * + * @param parent The parent object. + */ + explicit LdapClientSearch(QObject *parent = nullptr); + + /** + * Creates a new ldap client search object. + * + * @param attr The attributes. + * @param parent The parent object. + */ + explicit LdapClientSearch(const QStringList &attr, QObject *parent = nullptr); + + /** + * Destroys the ldap client search object. + */ + ~LdapClientSearch() override; + + /** + * Starts the LDAP search on all configured LDAP clients with the given search @p query. + */ + void startSearch(const QString &query); + + /** + * Cancels the currently running search query. + */ + void cancelSearch(); + + /** + * Returns whether LDAP search is possible at all. + * + * @note This method can return @c false if either no LDAP is configured + * or the system does not support the KIO LDAP protocol. + */ + bool isAvailable() const; + + /** + * Updates the completion weights for the configured LDAP clients from + * the configuration file. + */ + void updateCompletionWeights(); + + /** + * Returns the list of configured LDAP clients. + */ + QList clients() const; + + /** + * Returns the filter for the Query + * + * @since 4.14 + */ + QString filter() const; + + /** + * Sets the filter for the Query + * + * @since 4.14 + */ + void setFilter(const QString &); + + /** + * Returns the attributes, that are queried the LDAP Server. + * + * @since 4.14 + */ + QStringList attributes() const; + + /** + * Sets the attributes, that are queried the LDAP Server. + * + * @since 4.14 + */ + void setAttributes(const QStringList &); + + Q_REQUIRED_RESULT static QStringList defaultAttributes(); + +Q_SIGNALS: + /** + * This signal is emitted whenever new contacts have been found + * during the lookup. + * + * @param results The contacts in the form "Full Name " + */ + void searchData(const QStringList &results); + + /** + * This signal is emitted whenever new contacts have been found + * during the lookup. + * + * @param results The list of found contacts. + */ + void searchData(const KLDAP::LdapResult::List &results); + + /** + * This signal is emitted whenever new contacts have been found + * during the lookup. + * + * @param results The list of found contacts. + */ + void searchData(const KLDAP::LdapResultObject::List &results); + + /** + * This signal is emitted whenever the lookup is complete or the + * user has canceled the query. + */ + void searchDone(); + +private: + //@cond PRIVATE + class LdapClientSearchPrivate; + std::unique_ptr const d; + //@endcond +}; +} +Q_DECLARE_TYPEINFO(KLDAP::LdapResult, Q_MOVABLE_TYPE); +Q_DECLARE_TYPEINFO(KLDAP::LdapResultObject, Q_MOVABLE_TYPE); diff --git a/src/widgets/ldapclientsearchconfig.cpp b/src/widgets/ldapclientsearchconfig.cpp new file mode 100644 index 0000000..6d2c9a2 --- /dev/null +++ b/src/widgets/ldapclientsearchconfig.cpp @@ -0,0 +1,59 @@ +/* + * SPDX-FileCopyrightText: 2013-2022 Laurent Montel + * + * SPDX-License-Identifier: LGPL-2.0-or-later + */ + +#include "ldapclientsearchconfig.h" +#include "ldapclient_debug.h" +#include + +#include +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) +#include +#else +#include +#endif +using namespace QKeychain; +using namespace KLDAP; + +class Q_DECL_HIDDEN LdapClientSearchConfig::LdapClientSearchConfigPrivate +{ +public: + LdapClientSearchConfigPrivate() = default; + + ~LdapClientSearchConfigPrivate() = default; +}; + +Q_GLOBAL_STATIC_WITH_ARGS(KConfig, s_config, (QLatin1String("kabldaprc"), KConfig::NoGlobals)) + +KConfig *LdapClientSearchConfig::config() +{ + return s_config; +} + +LdapClientSearchConfig::LdapClientSearchConfig(QObject *parent) + : QObject(parent) + , d(new LdapClientSearchConfig::LdapClientSearchConfigPrivate()) +{ +} + +LdapClientSearchConfig::~LdapClientSearchConfig() = default; + +#if 0 // Port it +void LdapClientSearchConfig::clearWalletPassword() +{ + if (!d->wallet) { + d->wallet = KWallet::Wallet::openWallet(KWallet::Wallet::LocalWallet(), 0); + } + if (d->wallet) { + d->useWallet = true; + if (d->wallet->hasFolder(QStringLiteral("ldapclient"))) { + //Recreate it. + d->wallet->removeFolder(QStringLiteral("ldapclient")); + d->wallet->createFolder(QStringLiteral("ldapclient")); + d->wallet->setFolder(QStringLiteral("ldapclient")); + } + } +} +#endif diff --git a/src/widgets/ldapclientsearchconfig.h b/src/widgets/ldapclientsearchconfig.h new file mode 100644 index 0000000..c546340 --- /dev/null +++ b/src/widgets/ldapclientsearchconfig.h @@ -0,0 +1,39 @@ +/* + * SPDX-FileCopyrightText: 2013-2022 Laurent Montel + * + * SPDX-License-Identifier: LGPL-2.0-or-later + */ + +#pragma once + +#include "kldap_export.h" + +#include +#include +class KConfig; + +namespace KLDAP +{ +class LdapClient; +/** + * @brief The LdapClientSearchConfig class + * @author Laurent Montel + */ +class KLDAP_EXPORT LdapClientSearchConfig : public QObject +{ + Q_OBJECT +public: + explicit LdapClientSearchConfig(QObject *parent = nullptr); + ~LdapClientSearchConfig() override; + + /** + * Returns the global config object, which stores the LdapClient configurations. + */ + static KConfig *config(); + +private: + //@cond PRIVATE + class LdapClientSearchConfigPrivate; + std::unique_ptr const d; +}; +} diff --git a/src/widgets/ldapclientsearchconfigreadconfigjob.cpp b/src/widgets/ldapclientsearchconfigreadconfigjob.cpp new file mode 100644 index 0000000..9a3ffac --- /dev/null +++ b/src/widgets/ldapclientsearchconfigreadconfigjob.cpp @@ -0,0 +1,192 @@ +/* + * SPDX-FileCopyrightText: 2020-2022 Laurent Montel + * + * SPDX-License-Identifier: LGPL-2.0-or-later + */ + +#include "ldapclientsearchconfigreadconfigjob.h" +#include "ldapclient_debug.h" + +#include +#include +#include +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) +#include +#else +#include +#endif +using namespace QKeychain; + +using namespace KLDAP; +LdapClientSearchConfigReadConfigJob::LdapClientSearchConfigReadConfigJob(QObject *parent) + : QObject(parent) +{ +} + +LdapClientSearchConfigReadConfigJob::~LdapClientSearchConfigReadConfigJob() = default; + +bool LdapClientSearchConfigReadConfigJob::canStart() const +{ + return mServerIndex != -1 && mConfig.isValid(); +} + +void LdapClientSearchConfigReadConfigJob::readLdapClientConfigFinished() +{ + Q_EMIT configLoaded(mServer); + deleteLater(); +} + +void LdapClientSearchConfigReadConfigJob::start() +{ + if (!canStart()) { + // Failed ! + readLdapClientConfigFinished(); + return; + } + readConfig(); +} + +bool LdapClientSearchConfigReadConfigJob::active() const +{ + return mActive; +} + +void LdapClientSearchConfigReadConfigJob::setActive(bool newActive) +{ + mActive = newActive; +} + +int LdapClientSearchConfigReadConfigJob::serverIndex() const +{ + return mServerIndex; +} + +void LdapClientSearchConfigReadConfigJob::setServerIndex(int newServerIndex) +{ + mServerIndex = newServerIndex; +} + +KConfigGroup LdapClientSearchConfigReadConfigJob::config() const +{ + return mConfig; +} + +void LdapClientSearchConfigReadConfigJob::setConfig(const KConfigGroup &newConfig) +{ + mConfig = newConfig; +} + +void LdapClientSearchConfigReadConfigJob::readConfig() +{ + QString prefix; + if (mActive) { + prefix = QStringLiteral("Selected"); + } + + const QString host = mConfig.readEntry(prefix + QStringLiteral("Host%1").arg(mServerIndex), QString()).trimmed(); + if (!host.isEmpty()) { + mServer.setHost(host); + } + + const int port = mConfig.readEntry(prefix + QStringLiteral("Port%1").arg(mServerIndex), 389); + mServer.setPort(port); + + const QString base = mConfig.readEntry(prefix + QStringLiteral("Base%1").arg(mServerIndex), QString()).trimmed(); + if (!base.isEmpty()) { + mServer.setBaseDn(KLDAP::LdapDN(base)); + } + + const QString user = mConfig.readEntry(prefix + QStringLiteral("User%1").arg(mServerIndex), QString()).trimmed(); + if (!user.isEmpty()) { + mServer.setUser(user); + } + + const QString bindDN = mConfig.readEntry(prefix + QStringLiteral("Bind%1").arg(mServerIndex), QString()).trimmed(); + if (!bindDN.isEmpty()) { + mServer.setBindDn(bindDN); + } +#if 0 // Port + const QString pwdBindBNEntry = prefix + QStringLiteral("PwdBind%1").arg(mServerIndex); + QString pwdBindDN = mConfig.readEntry(pwdBindBNEntry, QString()); + if (!pwdBindDN.isEmpty()) { + if (d->askWallet && KMessageBox::Yes == KMessageBox::questionYesNo(nullptr, i18n("LDAP password is stored as clear text, do you want to store it in kwallet?"), + i18n("Store clear text password in Wallet"), + KStandardGuiItem::yes(), + KStandardGuiItem::no(), + QStringLiteral("DoAskToStoreToWallet"))) { + d->wallet = KWallet::Wallet::openWallet(KWallet::Wallet::LocalWallet(), 0); + if (d->wallet) { + connect(d->wallet, &KWallet::Wallet::walletClosed, this, &LdapClientSearchConfig::slotWalletClosed); + d->useWallet = true; + if (!d->wallet->hasFolder(QStringLiteral("ldapclient"))) { + d->wallet->createFolder(QStringLiteral("ldapclient")); + } + d->wallet->setFolder(QStringLiteral("ldapclient")); + d->wallet->writePassword(pwdBindBNEntry, pwdBindDN); + mConfig.deleteEntry(pwdBindBNEntry); + mConfig.sync(); + } + } + mServer.setPassword(pwdBindDN); + } else if (d->askWallet) { //Look at in Wallet + //Move as async here. + d->wallet = KWallet::Wallet::openWallet(KWallet::Wallet::LocalWallet(), 0); + if (d->wallet) { + d->useWallet = true; + if (!d->wallet->setFolder(QStringLiteral("ldapclient"))) { + d->wallet->createFolder(QStringLiteral("ldapclient")); + d->wallet->setFolder(QStringLiteral("ldapclient")); + } + d->wallet->readPassword(pwdBindBNEntry, pwdBindDN); + if (!pwdBindDN.isEmpty()) { + mServer.setPassword(pwdBindDN); + } + } else { + d->useWallet = false; + } + } +#endif + mServer.setTimeLimit(mConfig.readEntry(prefix + QStringLiteral("TimeLimit%1").arg(mServerIndex), 0)); + mServer.setSizeLimit(mConfig.readEntry(prefix + QStringLiteral("SizeLimit%1").arg(mServerIndex), 0)); + mServer.setPageSize(mConfig.readEntry(prefix + QStringLiteral("PageSize%1").arg(mServerIndex), 0)); + mServer.setVersion(mConfig.readEntry(prefix + QStringLiteral("Version%1").arg(mServerIndex), 3)); + + QString tmp = mConfig.readEntry(prefix + QStringLiteral("Security%1").arg(mServerIndex), QStringLiteral("None")); + mServer.setSecurity(KLDAP::LdapServer::None); + if (tmp == QLatin1String("SSL")) { + mServer.setSecurity(KLDAP::LdapServer::SSL); + } else if (tmp == QLatin1String("TLS")) { + mServer.setSecurity(KLDAP::LdapServer::TLS); + } + + tmp = mConfig.readEntry(prefix + QStringLiteral("Auth%1").arg(mServerIndex), QStringLiteral("Anonymous")); + mServer.setAuth(KLDAP::LdapServer::Anonymous); + if (tmp == QLatin1String("Simple")) { + mServer.setAuth(KLDAP::LdapServer::Simple); + } else if (tmp == QLatin1String("SASL")) { + mServer.setAuth(KLDAP::LdapServer::SASL); + } + + mServer.setMech(mConfig.readEntry(prefix + QStringLiteral("Mech%1").arg(mServerIndex), QString())); + mServer.setFilter(mConfig.readEntry(prefix + QStringLiteral("UserFilter%1").arg(mServerIndex), QString())); + mServer.setCompletionWeight(mConfig.readEntry(prefix + QStringLiteral("CompletionWeight%1").arg(mServerIndex), -1)); + + const QString pwdBindBNEntry = prefix + QStringLiteral("PwdBind%1").arg(mServerIndex); + + auto readJob = new ReadPasswordJob(QStringLiteral("ldapclient"), this); + connect(readJob, &Job::finished, this, &LdapClientSearchConfigReadConfigJob::readLdapPasswordFinished); + readJob->setKey(pwdBindBNEntry); + readJob->start(); +} + +void LdapClientSearchConfigReadConfigJob::readLdapPasswordFinished(QKeychain::Job *baseJob) +{ + auto job = qobject_cast(baseJob); + Q_ASSERT(job); + if (!job->error()) { + mServer.setPassword(job->textData()); + } else { + qCWarning(LDAPCLIENT_LOG) << "We have an error during reading password " << job->errorString(); + } + readLdapClientConfigFinished(); +} diff --git a/src/widgets/ldapclientsearchconfigreadconfigjob.h b/src/widgets/ldapclientsearchconfigreadconfigjob.h new file mode 100644 index 0000000..3deaf76 --- /dev/null +++ b/src/widgets/ldapclientsearchconfigreadconfigjob.h @@ -0,0 +1,50 @@ +/* + * SPDX-FileCopyrightText: 2020-2022 Laurent Montel + * + * SPDX-License-Identifier: LGPL-2.0-or-later + */ + +#pragma once +#include "kldap_export.h" +#include +#include +#include +namespace QKeychain +{ +class Job; +} +namespace KLDAP +{ +class KLDAP_EXPORT LdapClientSearchConfigReadConfigJob : public QObject +{ + Q_OBJECT +public: + explicit LdapClientSearchConfigReadConfigJob(QObject *parent = nullptr); + ~LdapClientSearchConfigReadConfigJob() override; + + Q_REQUIRED_RESULT bool canStart() const; + void start(); + + Q_REQUIRED_RESULT bool active() const; + void setActive(bool newActive); + + Q_REQUIRED_RESULT int serverIndex() const; + void setServerIndex(int newServerIndex); + + Q_REQUIRED_RESULT KConfigGroup config() const; + void setConfig(const KConfigGroup &newConfig); + +Q_SIGNALS: + void configLoaded(const KLDAP::LdapServer &server); + +private: + void readLdapPasswordFinished(QKeychain::Job *baseJob); + void readLdapClientConfigFinished(); + void readConfig(); + int mServerIndex = -1; + KConfigGroup mConfig; + bool mActive = false; + KLDAP::LdapServer mServer; +}; + +} diff --git a/src/widgets/ldapclientsearchconfigwriteconfigjob.cpp b/src/widgets/ldapclientsearchconfigwriteconfigjob.cpp new file mode 100644 index 0000000..85982ce --- /dev/null +++ b/src/widgets/ldapclientsearchconfigwriteconfigjob.cpp @@ -0,0 +1,147 @@ +/* + * SPDX-FileCopyrightText: 2020-2022 Laurent Montel + * + * SPDX-License-Identifier: LGPL-2.0-or-later + */ + +#include "ldapclientsearchconfigwriteconfigjob.h" +#include "ldapclient_debug.h" + +#include +#include +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) +#include +#else +#include +#endif +using namespace QKeychain; + +using namespace KLDAP; +LdapClientSearchConfigWriteConfigJob::LdapClientSearchConfigWriteConfigJob(QObject *parent) + : QObject(parent) +{ +} + +LdapClientSearchConfigWriteConfigJob::~LdapClientSearchConfigWriteConfigJob() = default; + +bool LdapClientSearchConfigWriteConfigJob::canStart() const +{ + return mServerIndex != -1 && mConfig.isValid(); +} + +void LdapClientSearchConfigWriteConfigJob::writeLdapClientConfigFinished() +{ + Q_EMIT configSaved(); + deleteLater(); +} + +void LdapClientSearchConfigWriteConfigJob::start() +{ + if (!canStart()) { + // Failed ! + writeLdapClientConfigFinished(); + return; + } + writeConfig(); +} + +bool LdapClientSearchConfigWriteConfigJob::active() const +{ + return mActive; +} + +void LdapClientSearchConfigWriteConfigJob::setActive(bool newActive) +{ + mActive = newActive; +} + +int LdapClientSearchConfigWriteConfigJob::serverIndex() const +{ + return mServerIndex; +} + +void LdapClientSearchConfigWriteConfigJob::setServerIndex(int newServerIndex) +{ + mServerIndex = newServerIndex; +} + +KConfigGroup LdapClientSearchConfigWriteConfigJob::config() const +{ + return mConfig; +} + +void LdapClientSearchConfigWriteConfigJob::setConfig(const KConfigGroup &newConfig) +{ + mConfig = newConfig; +} + +void LdapClientSearchConfigWriteConfigJob::writeConfig() +{ + QString prefix; + if (mActive) { + prefix = QStringLiteral("Selected"); + } + + mConfig.writeEntry(prefix + QStringLiteral("Host%1").arg(mServerIndex), mServer.host()); + mConfig.writeEntry(prefix + QStringLiteral("Port%1").arg(mServerIndex), mServer.port()); + mConfig.writeEntry(prefix + QStringLiteral("Base%1").arg(mServerIndex), mServer.baseDn().toString()); + mConfig.writeEntry(prefix + QStringLiteral("User%1").arg(mServerIndex), mServer.user()); + mConfig.writeEntry(prefix + QStringLiteral("Bind%1").arg(mServerIndex), mServer.bindDn()); + + const QString passwordEntry = prefix + QStringLiteral("PwdBind%1").arg(mServerIndex); + const QString password = mServer.password(); + if (!password.isEmpty()) { + auto writeJob = new WritePasswordJob(QStringLiteral("ldapclient"), this); + connect(writeJob, &Job::finished, this, [](QKeychain::Job *baseJob) { + if (baseJob->error()) { + qCWarning(LDAPCLIENT_LOG) << "Error writing password using QKeychain:" << baseJob->errorString(); + } + }); + writeJob->setKey(passwordEntry); + writeJob->setTextData(password); + writeJob->start(); + } + + mConfig.writeEntry(prefix + QStringLiteral("TimeLimit%1").arg(mServerIndex), mServer.timeLimit()); + mConfig.writeEntry(prefix + QStringLiteral("SizeLimit%1").arg(mServerIndex), mServer.sizeLimit()); + mConfig.writeEntry(prefix + QStringLiteral("PageSize%1").arg(mServerIndex), mServer.pageSize()); + mConfig.writeEntry(prefix + QStringLiteral("Version%1").arg(mServerIndex), mServer.version()); + QString tmp; + switch (mServer.security()) { + case KLDAP::LdapServer::TLS: + tmp = QStringLiteral("TLS"); + break; + case KLDAP::LdapServer::SSL: + tmp = QStringLiteral("SSL"); + break; + default: + tmp = QStringLiteral("None"); + } + mConfig.writeEntry(prefix + QStringLiteral("Security%1").arg(mServerIndex), tmp); + switch (mServer.auth()) { + case KLDAP::LdapServer::Simple: + tmp = QStringLiteral("Simple"); + break; + case KLDAP::LdapServer::SASL: + tmp = QStringLiteral("SASL"); + break; + default: + tmp = QStringLiteral("Anonymous"); + } + mConfig.writeEntry(prefix + QStringLiteral("Auth%1").arg(mServerIndex), tmp); + mConfig.writeEntry(prefix + QStringLiteral("Mech%1").arg(mServerIndex), mServer.mech()); + mConfig.writeEntry(prefix + QStringLiteral("UserFilter%1").arg(mServerIndex), mServer.filter().trimmed()); + if (mServer.completionWeight() > -1) { + mConfig.writeEntry(prefix + QStringLiteral("CompletionWeight%1").arg(mServerIndex), mServer.completionWeight()); + } +} + +KLDAP::LdapServer LdapClientSearchConfigWriteConfigJob::server() const +{ + return mServer; +} + +void LdapClientSearchConfigWriteConfigJob::setServer(const KLDAP::LdapServer &server) +{ + mServer = server; +} diff --git a/src/widgets/ldapclientsearchconfigwriteconfigjob.h b/src/widgets/ldapclientsearchconfigwriteconfigjob.h new file mode 100644 index 0000000..cd79633 --- /dev/null +++ b/src/widgets/ldapclientsearchconfigwriteconfigjob.h @@ -0,0 +1,52 @@ +/* + * SPDX-FileCopyrightText: 2020-2022 Laurent Montel + * + * SPDX-License-Identifier: LGPL-2.0-or-later + */ + +#pragma once +#include "kldap_export.h" +#include +#include +#include +namespace QKeychain +{ +class Job; +} +namespace KLDAP +{ +class KLDAP_EXPORT LdapClientSearchConfigWriteConfigJob : public QObject +{ + Q_OBJECT +public: + explicit LdapClientSearchConfigWriteConfigJob(QObject *parent = nullptr); + ~LdapClientSearchConfigWriteConfigJob() override; + + Q_REQUIRED_RESULT bool canStart() const; + void start(); + + Q_REQUIRED_RESULT bool active() const; + void setActive(bool newActive); + + Q_REQUIRED_RESULT int serverIndex() const; + void setServerIndex(int newServerIndex); + + Q_REQUIRED_RESULT KConfigGroup config() const; + void setConfig(const KConfigGroup &newConfig); + + Q_REQUIRED_RESULT KLDAP::LdapServer server() const; + void setServer(const KLDAP::LdapServer &server); + +Q_SIGNALS: + void configSaved(); + +private: + void writeLdapClientConfigFinished(); + void writeConfig(); + int mServerIndex = -1; + KConfigGroup mConfig; + bool mActive = false; + KLDAP::LdapServer mServer; +}; + +} diff --git a/src/widgets/ldapconfigurewidget.cpp b/src/widgets/ldapconfigurewidget.cpp new file mode 100644 index 0000000..f738038 --- /dev/null +++ b/src/widgets/ldapconfigurewidget.cpp @@ -0,0 +1,325 @@ +/* + * SPDX-FileCopyrightText: 2019-2022 Laurent Montel + * + * SPDX-License-Identifier: LGPL-2.0-or-later + */ + +#include "ldapconfigurewidget.h" +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "ldapclientsearch.h" +#include "ldapclientsearchconfig.h" +#include "ldapclientsearchconfigwriteconfigjob.h" +#include "ldapwidgetitem_p.h" +#include "ldapwidgetitemreadconfigserverjob.h" +#include + +#include "addhostdialog.h" + +using namespace KLDAP; + +LdapConfigureWidget::LdapConfigureWidget(QWidget *parent) + : QWidget(parent) + , mClientSearchConfig(new KLDAP::LdapClientSearchConfig) +{ + initGUI(); + + connect(mHostListView, &QListWidget::currentItemChanged, this, &LdapConfigureWidget::slotSelectionChanged); + connect(mHostListView, &QListWidget::itemDoubleClicked, this, &LdapConfigureWidget::slotEditHost); + connect(mHostListView, &QListWidget::itemClicked, this, &LdapConfigureWidget::slotItemClicked); + + connect(mUpButton, &QToolButton::clicked, this, &LdapConfigureWidget::slotMoveUp); + connect(mDownButton, &QToolButton::clicked, this, &LdapConfigureWidget::slotMoveDown); +} + +LdapConfigureWidget::~LdapConfigureWidget() +{ + delete mClientSearchConfig; +} + +void LdapConfigureWidget::slotSelectionChanged(QListWidgetItem *item) +{ + bool state = (item != nullptr); + mEditButton->setEnabled(state); + mRemoveButton->setEnabled(state); + mDownButton->setEnabled(item && (mHostListView->row(item) != (mHostListView->count() - 1))); + mUpButton->setEnabled(item && (mHostListView->row(item) != 0)); +} + +void LdapConfigureWidget::slotItemClicked(QListWidgetItem *item) +{ + auto ldapItem = dynamic_cast(item); + if (!ldapItem) { + return; + } + + if ((ldapItem->checkState() == Qt::Checked) != ldapItem->isActive()) { + Q_EMIT changed(true); + ldapItem->setIsActive(ldapItem->checkState() == Qt::Checked); + } +} + +void LdapConfigureWidget::slotAddHost() +{ + KLDAP::LdapServer server; + KLDAP::AddHostDialog dlg(&server, this); + + if (dlg.exec() && !server.host().trimmed().isEmpty()) { // krazy:exclude=crashy + auto item = new LdapWidgetItem(mHostListView); + item->setServer(server); + + Q_EMIT changed(true); + } +} + +void LdapConfigureWidget::slotEditHost() +{ + auto item = dynamic_cast(mHostListView->currentItem()); + if (!item) { + return; + } + + KLDAP::LdapServer server = item->server(); + KLDAP::AddHostDialog dlg(&server, this); + dlg.setWindowTitle(i18nc("@title:window", "Edit Host")); + + if (dlg.exec() && !server.host().isEmpty()) { // krazy:exclude=crashy + item->setServer(server); + + Q_EMIT changed(true); + } +} + +void LdapConfigureWidget::slotRemoveHost() +{ + QListWidgetItem *item = mHostListView->currentItem(); + if (!item) { + return; + } + auto ldapItem = dynamic_cast(item); +#if KWIDGETSADDONS_VERSION >= QT_VERSION_CHECK(5, 100, 0) + const int answer = KMessageBox::questionTwoActions(this, +#else + const int answer = KMessageBox::questionYesNo(this, +#endif + i18n("Do you want to remove setting for host \"%1\"?", ldapItem->server().host()), + i18n("Remove Host"), + KStandardGuiItem::remove(), + KStandardGuiItem::cancel()); +#if KWIDGETSADDONS_VERSION >= QT_VERSION_CHECK(5, 100, 0) + if (answer == KMessageBox::SecondaryAction) { +#else + if (answer == KMessageBox::No) { +#endif + return; + } + + delete mHostListView->takeItem(mHostListView->currentRow()); + + slotSelectionChanged(mHostListView->currentItem()); + + Q_EMIT changed(true); +} + +static void swapItems(LdapWidgetItem *item, LdapWidgetItem *other) +{ + KLDAP::LdapServer server = item->server(); + bool isActive = item->isActive(); + item->setServer(other->server()); + item->setIsActive(other->isActive()); + item->setCheckState(other->isActive() ? Qt::Checked : Qt::Unchecked); + other->setServer(server); + other->setIsActive(isActive); + other->setCheckState(isActive ? Qt::Checked : Qt::Unchecked); +} + +void LdapConfigureWidget::slotMoveUp() +{ + const QList selectedItems = mHostListView->selectedItems(); + if (selectedItems.isEmpty()) { + return; + } + + LdapWidgetItem *item = static_cast(mHostListView->selectedItems().first()); + if (!item) { + return; + } + + auto above = static_cast(mHostListView->item(mHostListView->row(item) - 1)); + if (!above) { + return; + } + + swapItems(item, above); + + mHostListView->setCurrentItem(above); + above->setSelected(true); + + Q_EMIT changed(true); +} + +void LdapConfigureWidget::slotMoveDown() +{ + const QList selectedItems = mHostListView->selectedItems(); + if (selectedItems.isEmpty()) { + return; + } + + LdapWidgetItem *item = static_cast(mHostListView->selectedItems().first()); + if (!item) { + return; + } + + auto below = static_cast(mHostListView->item(mHostListView->row(item) + 1)); + if (!below) { + return; + } + + swapItems(item, below); + + mHostListView->setCurrentItem(below); + below->setSelected(true); + + Q_EMIT changed(true); +} + +void LdapConfigureWidget::load() +{ + mHostListView->clear(); + KConfig *config = KLDAP::LdapClientSearchConfig::config(); + KConfigGroup group(config, "LDAP"); + + int count = group.readEntry("NumSelectedHosts", 0); + for (int i = 0; i < count; ++i) { + auto item = new LdapWidgetItem(mHostListView, true); + item->setCheckState(Qt::Checked); + auto job = new LdapWidgetItemReadConfigServerJob(this); + job->setCurrentIndex(i); + job->setActive(true); + job->setConfig(group); + job->setLdapWidgetItem(item); + job->start(); + } + + count = group.readEntry("NumHosts", 0); + for (int i = 0; i < count; ++i) { + auto item = new LdapWidgetItem(mHostListView); + auto job = new LdapWidgetItemReadConfigServerJob(this); + job->setCurrentIndex(i); + job->setActive(false); + job->setConfig(group); + job->setLdapWidgetItem(item); + job->start(); + } + + Q_EMIT changed(false); +} + +void LdapConfigureWidget::save() +{ + // mClientSearchConfig->clearWalletPassword(); + KConfig *config = KLDAP::LdapClientSearchConfig::config(); + config->deleteGroup("LDAP"); + + KConfigGroup group(config, "LDAP"); + + int selected = 0; + int unselected = 0; + for (int i = 0; i < mHostListView->count(); ++i) { + auto item = dynamic_cast(mHostListView->item(i)); + if (!item) { + continue; + } + + KLDAP::LdapServer server = item->server(); + if (item->checkState() == Qt::Checked) { + auto job = new LdapClientSearchConfigWriteConfigJob; + job->setActive(true); + job->setConfig(group); + job->setServerIndex(selected); + job->setServer(server); + job->start(); + selected++; + } else { + auto job = new LdapClientSearchConfigWriteConfigJob; + job->setActive(false); + job->setConfig(group); + job->setServerIndex(unselected); + job->setServer(server); + job->start(); + unselected++; + } + } + + group.writeEntry("NumSelectedHosts", selected); + group.writeEntry("NumHosts", unselected); + config->sync(); + + Q_EMIT changed(false); +} + +void LdapConfigureWidget::initGUI() +{ + auto mainLayout = new QVBoxLayout(this); + mainLayout->setObjectName(QStringLiteral("layout")); + mainLayout->setContentsMargins(5, 5, 5, 5); + + // Contents of the QVGroupBox: label and hbox + auto label = new QLabel(i18n("Check all servers that should be used:")); + mainLayout->addWidget(label); + + auto hBox = new QWidget(this); + mainLayout->addWidget(hBox); + + auto hBoxHBoxLayout = new QHBoxLayout(hBox); + hBoxHBoxLayout->setContentsMargins(0, 0, 0, 0); + hBoxHBoxLayout->setSpacing(6); + // Contents of the hbox: listview and up/down buttons on the right (vbox) + mHostListView = new QListWidget(hBox); + hBoxHBoxLayout->addWidget(mHostListView); + mHostListView->setSortingEnabled(false); + + auto upDownBox = new QWidget(hBox); + auto upDownBoxVBoxLayout = new QVBoxLayout(upDownBox); + upDownBoxVBoxLayout->setContentsMargins(0, 0, 0, 0); + hBoxHBoxLayout->addWidget(upDownBox); + upDownBoxVBoxLayout->setSpacing(6); + mUpButton = new QToolButton(upDownBox); + upDownBoxVBoxLayout->addWidget(mUpButton); + mUpButton->setIcon(QIcon::fromTheme(QStringLiteral("go-up"))); + mUpButton->setEnabled(false); // b/c no item is selected yet + + mDownButton = new QToolButton(upDownBox); + upDownBoxVBoxLayout->addWidget(mDownButton); + mDownButton->setIcon(QIcon::fromTheme(QStringLiteral("go-down"))); + mDownButton->setEnabled(false); // b/c no item is selected yet + + auto spacer = new QWidget(upDownBox); + upDownBoxVBoxLayout->addWidget(spacer); + upDownBoxVBoxLayout->setStretchFactor(spacer, 100); + + auto buttons = new QDialogButtonBox(this); + QPushButton *add = buttons->addButton(i18n("&Add Host..."), QDialogButtonBox::ActionRole); + connect(add, &QPushButton::clicked, this, &LdapConfigureWidget::slotAddHost); + mEditButton = buttons->addButton(i18n("&Edit Host..."), QDialogButtonBox::ActionRole); + connect(mEditButton, &QPushButton::clicked, this, &LdapConfigureWidget::slotEditHost); + mEditButton->setEnabled(false); + mRemoveButton = buttons->addButton(i18n("&Remove Host"), QDialogButtonBox::ActionRole); + connect(mRemoveButton, &QPushButton::clicked, this, &LdapConfigureWidget::slotRemoveHost); + mRemoveButton->setEnabled(false); + + mainLayout->addWidget(buttons); +} diff --git a/src/widgets/ldapconfigurewidget.h b/src/widgets/ldapconfigurewidget.h new file mode 100644 index 0000000..9284696 --- /dev/null +++ b/src/widgets/ldapconfigurewidget.h @@ -0,0 +1,60 @@ +/* + * SPDX-FileCopyrightText: 2019-2022 Laurent Montel + * + * SPDX-License-Identifier: LGPL-2.0-or-later + */ + +#pragma once + +#include "kldap_export.h" + +#include + +class QListWidget; +class QPushButton; +class QToolButton; +class QListWidgetItem; + +namespace KLDAP +{ +class LdapClientSearchConfig; +/** + * @brief The LdapConfigureWidget class + * @author Laurent Montel + */ +class KLDAP_EXPORT LdapConfigureWidget : public QWidget +{ + Q_OBJECT +public: + explicit LdapConfigureWidget(QWidget *parent = nullptr); + ~LdapConfigureWidget() override; + + void load(); + void save(); + +private Q_SLOTS: + void slotAddHost(); + void slotEditHost(); + void slotRemoveHost(); + void slotSelectionChanged(QListWidgetItem *); + void slotItemClicked(QListWidgetItem *); + void slotMoveUp(); + void slotMoveDown(); + +Q_SIGNALS: + void changed(bool); + +private: + void initGUI(); + + QListWidget *mHostListView = nullptr; + + QPushButton *mAddButton = nullptr; + QPushButton *mEditButton = nullptr; + QPushButton *mRemoveButton = nullptr; + + QToolButton *mUpButton = nullptr; + QToolButton *mDownButton = nullptr; + KLDAP::LdapClientSearchConfig *const mClientSearchConfig; +}; +} diff --git a/src/widgets/ldapconfigwidget.cpp b/src/widgets/ldapconfigwidget.cpp new file mode 100644 index 0000000..1b34677 --- /dev/null +++ b/src/widgets/ldapconfigwidget.cpp @@ -0,0 +1,845 @@ +/* + This file is part of libkldap. + SPDX-FileCopyrightText: 2004-2006 Szombathelyi György + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "ldapconfigwidget.h" +#include "ldapsearch.h" + +#include "ldap_debug.h" +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +using namespace KLDAP; + +class Q_DECL_HIDDEN LdapConfigWidget::LdapConfigWidgetPrivate +{ +public: + LdapConfigWidgetPrivate(LdapConfigWidget *parent) + : mParent(parent) + { + mainLayout = new QFormLayout(mParent); + mainLayout->setContentsMargins(10, 0, 10, 0); + } + + void setLDAPPort(); + void setLDAPSPort(); + void setAnonymous(bool on); + void setSimple(bool on); + void setSASL(bool on); + void queryDNClicked(); + void queryMechClicked(); + void loadData(LdapSearch *search, const LdapObject &object); + void loadResult(LdapSearch *search); + void sendQuery(); + void initWidget(); + + LdapConfigWidget *const mParent; + QStringList mQResult; + QString mAttr; + + QLineEdit *mUser = nullptr; + KPasswordLineEdit *mPassword = nullptr; + QLineEdit *mHost = nullptr; + QSpinBox *mPort = nullptr; + QSpinBox *mVersion = nullptr; + QSpinBox *mSizeLimit = nullptr; + QSpinBox *mTimeLimit = nullptr; + QSpinBox *mPageSize = nullptr; + QLineEdit *mDn = nullptr; + QLineEdit *mBindDn = nullptr; + QLineEdit *mRealm = nullptr; + QLineEdit *mFilter = nullptr; + QRadioButton *mAnonymous = nullptr; + QRadioButton *mSimple = nullptr; + QRadioButton *mSASL = nullptr; + QCheckBox *mSubTree = nullptr; + QPushButton *mEditButton = nullptr; + QPushButton *mQueryMech = nullptr; + QRadioButton *mSecNo = nullptr; + QRadioButton *mSecTLS = nullptr; + QRadioButton *mSecSSL = nullptr; + QComboBox *mMech = nullptr; + + QProgressDialog *mProg = nullptr; + + QFormLayout *mainLayout = nullptr; + WinFlags mFeatures = W_ALL; + bool mCancelled = false; +}; + +void LdapConfigWidget::LdapConfigWidgetPrivate::initWidget() +{ + if (mFeatures & W_USER) { + mUser = new QLineEdit(mParent); + mUser->setObjectName(QStringLiteral("kcfg_ldapuser")); + + mainLayout->addRow(i18n("User:"), mUser); + } + + if (mFeatures & W_BINDDN) { + mBindDn = new QLineEdit(mParent); + mBindDn->setObjectName(QStringLiteral("kcfg_ldapbinddn")); + + mainLayout->addRow(i18n("Bind DN:"), mBindDn); + } + + if (mFeatures & W_REALM) { + mRealm = new QLineEdit(mParent); + mRealm->setObjectName(QStringLiteral("kcfg_ldaprealm")); + + mainLayout->addRow(i18n("Realm:"), mRealm); + } + + if (mFeatures & W_PASS) { + mPassword = new KPasswordLineEdit(mParent); + mPassword->setObjectName(QStringLiteral("kcfg_ldappassword")); + mPassword->setRevealPasswordAvailable(KAuthorized::authorize(QStringLiteral("lineedit_reveal_password"))); + + mainLayout->addRow(i18n("Password:"), mPassword); + } + + if (mFeatures & W_HOST) { + mHost = new QLineEdit(mParent); + mHost->setObjectName(QStringLiteral("kcfg_ldaphost")); + mParent->connect(mHost, &QLineEdit::textChanged, mParent, &LdapConfigWidget::hostNameChanged); + mainLayout->addRow(i18n("Host:"), mHost); + } + + if (mFeatures & W_PORT) { + mPort = new QSpinBox(mParent); + mPort->setRange(0, 65535); + mPort->setObjectName(QStringLiteral("kcfg_ldapport")); + mPort->setValue(389); + + mainLayout->addRow(i18n("Port:"), mPort); + } + + if (mFeatures & W_VER) { + mVersion = new QSpinBox(mParent); + mVersion->setRange(2, 3); + mVersion->setObjectName(QStringLiteral("kcfg_ldapver")); + mVersion->setValue(3); + mainLayout->addRow(i18n("LDAP version:"), mVersion); + } + + if (mFeatures & W_SIZELIMIT) { + mSizeLimit = new QSpinBox(mParent); + mSizeLimit->setRange(0, 9999999); + mSizeLimit->setObjectName(QStringLiteral("kcfg_ldapsizelimit")); + mSizeLimit->setValue(0); + mSizeLimit->setSpecialValueText(i18nc("default ldap size limit", "Default")); + mainLayout->addRow(i18n("Size limit:"), mSizeLimit); + } + + if (mFeatures & W_TIMELIMIT) { + mTimeLimit = new QSpinBox(mParent); + mTimeLimit->setRange(0, 9999999); + mTimeLimit->setObjectName(QStringLiteral("kcfg_ldaptimelimit")); + mTimeLimit->setValue(0); + mTimeLimit->setSuffix(i18n(" sec")); + mTimeLimit->setSpecialValueText(i18nc("default ldap time limit", "Default")); + mainLayout->addRow(i18n("Time limit:"), mTimeLimit); + } + + if (mFeatures & W_PAGESIZE) { + mPageSize = new QSpinBox(mParent); + mPageSize->setRange(0, 9999999); + mPageSize->setObjectName(QStringLiteral("kcfg_ldappagesize")); + mPageSize->setValue(0); + mPageSize->setSpecialValueText(i18n("No paging")); + mainLayout->addRow(i18n("Page size:"), mPageSize); + } + + if (mFeatures & W_DN) { + auto horizontalLayout = new QHBoxLayout; + mDn = new QLineEdit(mParent); + mDn->setObjectName(QStringLiteral("kcfg_ldapdn")); + horizontalLayout->addWidget(mDn); + + // without host query doesn't make sense + if (mHost) { + auto dnquery = new QPushButton(i18n("Query Server"), mParent); + dnquery->setEnabled(false); + connect(dnquery, &QPushButton::clicked, mParent, [this]() { + queryDNClicked(); + }); + connect(mDn, &QLineEdit::textChanged, mParent, [dnquery](const QString &text) { + dnquery->setEnabled(!text.trimmed().isEmpty()); + }); + horizontalLayout->addWidget(dnquery); + } + mainLayout->addRow(i18nc("Distinguished Name", "DN:"), horizontalLayout); + } + + if (mFeatures & W_FILTER) { + mFilter = new QLineEdit(mParent); + mFilter->setObjectName(QStringLiteral("kcfg_ldapfilter")); + + mainLayout->addRow(i18n("Filter:"), mFilter); + } + + if (mFeatures & W_SECBOX) { + auto btgroup = new QWidget(mParent); + btgroup->setContentsMargins({0, 0, 0, 0}); + + auto hbox = new QHBoxLayout(btgroup); + + mSecNo = new QRadioButton(i18nc("@option:radio set no security", "No"), btgroup); + mSecNo->setObjectName(QStringLiteral("kcfg_ldapnosec")); + hbox->addWidget(mSecNo); + mSecTLS = new QRadioButton(i18nc("@option:radio use TLS security", "TLS"), btgroup); + mSecTLS->setObjectName(QStringLiteral("kcfg_ldaptls")); + hbox->addWidget(mSecTLS); + mSecSSL = new QRadioButton(i18nc("@option:radio use SSL security", "SSL"), btgroup); + mSecSSL->setObjectName(QStringLiteral("kcfg_ldapssl")); + hbox->addWidget(mSecSSL); + + connect(mSecNo, &QRadioButton::clicked, mParent, [this]() { + setLDAPPort(); + }); + connect(mSecTLS, &QRadioButton::clicked, mParent, [this]() { + setLDAPPort(); + }); + connect(mSecSSL, &QRadioButton::clicked, mParent, [this]() { + setLDAPSPort(); + }); + + mSecNo->setChecked(true); + mainLayout->addRow(i18n("Security:"), btgroup); + } + + if (mFeatures & W_AUTHBOX) { + // invisible QWidget for auto-exclusive radiobutton + auto authbox = new QWidget(mParent); + authbox->setContentsMargins({0, 0, 0, 0}); + + auto hbox = new QHBoxLayout(authbox); + + mAnonymous = new QRadioButton(i18nc("@option:radio anonymous authentication", "Anonymous"), authbox); + mAnonymous->setObjectName(QStringLiteral("kcfg_ldapanon")); + hbox->addWidget(mAnonymous); + mSimple = new QRadioButton(i18nc("@option:radio simple authentication", "Simple"), authbox); + mSimple->setObjectName(QStringLiteral("kcfg_ldapsimple")); + hbox->addWidget(mSimple); + mSASL = new QRadioButton(i18nc("@option:radio SASL authentication", "SASL"), authbox); + mSASL->setObjectName(QStringLiteral("kcfg_ldapsasl")); + hbox->addWidget(mSASL); + mainLayout->addRow(i18n("Authentication:"), authbox); + + hbox = new QHBoxLayout; + mMech = new QComboBox(mParent); + mMech->setObjectName(QStringLiteral("kcfg_ldapsaslmech")); + mMech->addItem(QStringLiteral("DIGEST-MD5")); + mMech->addItem(QStringLiteral("GSSAPI")); + mMech->addItem(QStringLiteral("PLAIN")); + hbox->addWidget(mMech); + + // without host query doesn't make sense + if (mHost) { + mQueryMech = new QPushButton(i18n("Query Server"), authbox); + hbox->addWidget(mQueryMech); + connect(mQueryMech, &QPushButton::clicked, mParent, [this]() { + queryMechClicked(); + }); + } + mainLayout->addRow(i18n("SASL mechanism:"), hbox); + + connect(mAnonymous, &QRadioButton::toggled, mParent, [this](bool b) { + setAnonymous(b); + }); + connect(mSimple, &QRadioButton::toggled, mParent, [this](bool b) { + setSimple(b); + }); + connect(mSASL, &QRadioButton::toggled, mParent, [this](bool b) { + setSASL(b); + }); + + mAnonymous->setChecked(true); + } +} + +void LdapConfigWidget::LdapConfigWidgetPrivate::sendQuery() +{ + LdapServer _server(mParent->server()); + + mQResult.clear(); + mCancelled = true; + + if (mAttr == QLatin1String("supportedsaslmechanisms")) { + _server.setAuth(LdapServer::Anonymous); + } + + LdapUrl _url(_server.url()); + + _url.setDn(LdapDN(QLatin1String(""))); + _url.setAttributes(QStringList(mAttr)); + _url.setScope(LdapUrl::Base); + + qCDebug(LDAP_LOG) << "sendQuery url:" << _url.toDisplayString(); + + LdapSearch search; + connect(&search, &LdapSearch::data, mParent, [this](KLDAP::LdapSearch *s, const KLDAP::LdapObject &obj) { + loadData(s, obj); + }); + connect(&search, &LdapSearch::result, mParent, [this](KLDAP::LdapSearch *s) { + loadResult(s); + }); + + if (!search.search(_url)) { + KMessageBox::error(mParent, search.errorString(), i18n("Check server")); + return; + } + + if (!mProg) { + mProg = new QProgressDialog(mParent); + mProg->setWindowTitle(i18nc("@title:window", "LDAP Query")); + mProg->setModal(true); + } + mProg->setLabelText(_url.toDisplayString()); + mProg->setMaximum(1); + mProg->setMinimum(0); + mProg->setValue(0); + mProg->exec(); + if (mCancelled) { + qCDebug(LDAP_LOG) << "query canceled!"; + search.abandon(); + } else { + if (search.error()) { + if (search.errorString().isEmpty()) { + KMessageBox::error(mParent, i18nc("%1 is a url to ldap server", "Unknown error connecting %1", _url.toDisplayString())); + } else { + KMessageBox::error(mParent, search.errorString()); + } + } + } +} + +void LdapConfigWidget::LdapConfigWidgetPrivate::queryMechClicked() +{ + mAttr = QStringLiteral("supportedsaslmechanisms"); + sendQuery(); + if (!mQResult.isEmpty()) { + mQResult.sort(); + mMech->clear(); + mMech->addItems(mQResult); + } +} + +void LdapConfigWidget::LdapConfigWidgetPrivate::queryDNClicked() +{ + mAttr = QStringLiteral("namingcontexts"); + sendQuery(); + if (!mQResult.isEmpty()) { + mDn->setText(mQResult.constFirst()); + } +} + +void LdapConfigWidget::LdapConfigWidgetPrivate::loadData(LdapSearch *, const LdapObject &object) +{ + qCDebug(LDAP_LOG) << "object:" << object.toString(); + mProg->setValue(mProg->value() + 1); + LdapAttrMap::ConstIterator end(object.attributes().constEnd()); + for (LdapAttrMap::ConstIterator it = object.attributes().constBegin(); it != end; ++it) { + LdapAttrValue::ConstIterator end2((*it).constEnd()); + for (LdapAttrValue::ConstIterator it2 = (*it).constBegin(); it2 != end2; ++it2) { + mQResult.push_back(QString::fromUtf8(*it2)); + } + } +} + +void LdapConfigWidget::LdapConfigWidgetPrivate::loadResult(LdapSearch *search) +{ + Q_UNUSED(search) + mCancelled = false; + mProg->close(); +} + +void LdapConfigWidget::LdapConfigWidgetPrivate::setAnonymous(bool on) +{ + if (!on) { + return; + } + if (mUser) { + mUser->setEnabled(false); + } + if (mPassword) { + mPassword->setEnabled(false); + } + if (mBindDn) { + mBindDn->setEnabled(false); + } + if (mRealm) { + mRealm->setEnabled(false); + } + if (mMech) { + mMech->setEnabled(false); + } + if (mQueryMech) { + mQueryMech->setEnabled(false); + } +} + +void LdapConfigWidget::LdapConfigWidgetPrivate::setSimple(bool on) +{ + if (!on) { + return; + } + if (mUser) { + mUser->setEnabled(false); + } + if (mPassword) { + mPassword->setEnabled(true); + } + if (mBindDn) { + mBindDn->setEnabled(true); + } + if (mRealm) { + mRealm->setEnabled(false); + } + if (mMech) { + mMech->setEnabled(false); + } + if (mQueryMech) { + mQueryMech->setEnabled(false); + } +} + +void LdapConfigWidget::LdapConfigWidgetPrivate::setSASL(bool on) +{ + if (!on) { + return; + } + if (mUser) { + mUser->setEnabled(true); + } + if (mPassword) { + mPassword->setEnabled(true); + } + if (mBindDn) { + mBindDn->setEnabled(true); + } + if (mRealm) { + mRealm->setEnabled(true); + } + if (mMech) { + mMech->setEnabled(true); + } + if (mQueryMech) { + mQueryMech->setEnabled(true); + } +} + +void LdapConfigWidget::LdapConfigWidgetPrivate::setLDAPPort() +{ + if (mPort) { + mPort->setValue(389); + } +} + +void LdapConfigWidget::LdapConfigWidgetPrivate::setLDAPSPort() +{ + if (mPort) { + mPort->setValue(636); + } +} + +LdapConfigWidget::LdapConfigWidget(QWidget *parent, Qt::WindowFlags fl) + : QWidget(parent, fl) + , d(new LdapConfigWidgetPrivate(this)) +{ +} + +LdapConfigWidget::LdapConfigWidget(LdapConfigWidget::WinFlags flags, QWidget *parent, Qt::WindowFlags fl) + : QWidget(parent, fl) + , d(new LdapConfigWidgetPrivate(this)) +{ + d->mFeatures = flags; + + d->initWidget(); +} + +LdapConfigWidget::~LdapConfigWidget() = default; + +LdapUrl LdapConfigWidget::url() const +{ + return server().url(); +} + +void LdapConfigWidget::setUrl(const LdapUrl &url) +{ + LdapServer _server; + _server.setUrl(url); + setServer(_server); +} + +LdapServer LdapConfigWidget::server() const +{ + LdapServer _server; + if (d->mSecSSL && d->mSecSSL->isChecked()) { + _server.setSecurity(LdapServer::SSL); + } else if (d->mSecTLS && d->mSecTLS->isChecked()) { + _server.setSecurity(LdapServer::TLS); + } else { + _server.setSecurity(LdapServer::None); + } + + if (d->mUser) { + _server.setUser(d->mUser->text()); + } + if (d->mBindDn) { + _server.setBindDn(d->mBindDn->text()); + } + if (d->mPassword) { + _server.setPassword(d->mPassword->password()); + } + if (d->mRealm) { + _server.setRealm(d->mRealm->text()); + } + if (d->mHost) { + _server.setHost(d->mHost->text()); + } + if (d->mPort) { + _server.setPort(d->mPort->value()); + } + if (d->mDn) { + _server.setBaseDn(LdapDN(d->mDn->text())); + } + if (d->mFilter) { + _server.setFilter(d->mFilter->text()); + } + if (d->mVersion) { + _server.setVersion(d->mVersion->value()); + } + if (d->mSizeLimit && d->mSizeLimit->value() != 0) { + _server.setSizeLimit(d->mSizeLimit->value()); + } + if (d->mTimeLimit && d->mTimeLimit->value() != 0) { + _server.setTimeLimit(d->mTimeLimit->value()); + } + if (d->mPageSize && d->mPageSize->value() != 0) { + _server.setPageSize(d->mPageSize->value()); + } + if (d->mAnonymous && d->mAnonymous->isChecked()) { + _server.setAuth(LdapServer::Anonymous); + } else if (d->mSimple && d->mSimple->isChecked()) { + _server.setAuth(LdapServer::Simple); + } else if (d->mSASL && d->mSASL->isChecked()) { + _server.setAuth(LdapServer::SASL); + _server.setMech(d->mMech->currentText()); + } + return _server; +} + +void LdapConfigWidget::setServer(const LdapServer &server) +{ + switch (server.security()) { + case LdapServer::SSL: + if (d->mSecSSL) { + d->mSecSSL->setChecked(true); + } + break; + case LdapServer::TLS: + if (d->mSecTLS) { + d->mSecTLS->setChecked(true); + } + break; + case LdapServer::None: + if (d->mSecNo) { + d->mSecNo->setChecked(true); + } + break; + } + + switch (server.auth()) { + case LdapServer::Anonymous: + if (d->mAnonymous) { + d->mAnonymous->setChecked(true); + } + break; + case LdapServer::Simple: + if (d->mSimple) { + d->mSimple->setChecked(true); + } + break; + case LdapServer::SASL: + if (d->mSASL) { + d->mSASL->setChecked(true); + } + break; + } + + setUser(server.user()); + setBindDn(server.bindDn()); + setPassword(server.password()); + setRealm(server.realm()); + setHost(server.host()); + setPort(server.port()); + setFilter(server.filter()); + setDn(server.baseDn()); + setVersion(server.version()); + setSizeLimit(server.sizeLimit()); + setTimeLimit(server.timeLimit()); + setPageSize(server.pageSize()); + setMech(server.mech()); +} + +void LdapConfigWidget::setUser(const QString &user) +{ + if (d->mUser) { + d->mUser->setText(user); + } +} + +QString LdapConfigWidget::user() const +{ + return d->mUser ? d->mUser->text() : QString(); +} + +void LdapConfigWidget::setPassword(const QString &password) +{ + if (d->mPassword) { + d->mPassword->setPassword(password); + } +} + +QString LdapConfigWidget::password() const +{ + return d->mPassword ? d->mPassword->password() : QString(); +} + +void LdapConfigWidget::setBindDn(const QString &binddn) +{ + if (d->mBindDn) { + d->mBindDn->setText(binddn); + } +} + +QString LdapConfigWidget::bindDn() const +{ + return d->mBindDn ? d->mBindDn->text() : QString(); +} + +void LdapConfigWidget::setRealm(const QString &realm) +{ + if (d->mRealm) { + d->mRealm->setText(realm); + } +} + +QString LdapConfigWidget::realm() const +{ + return d->mRealm ? d->mRealm->text() : QString(); +} + +void LdapConfigWidget::setHost(const QString &host) +{ + if (d->mHost) { + d->mHost->setText(host); + } +} + +QString LdapConfigWidget::host() const +{ + return d->mHost ? d->mHost->text() : QString(); +} + +void LdapConfigWidget::setPort(int port) +{ + if (d->mPort) { + d->mPort->setValue(port); + } +} + +int LdapConfigWidget::port() const +{ + return d->mPort ? d->mPort->value() : 389; +} + +void LdapConfigWidget::setVersion(int version) +{ + if (d->mVersion) { + d->mVersion->setValue(version); + } +} + +int LdapConfigWidget::version() const +{ + return d->mVersion ? d->mVersion->value() : 3; +} + +void LdapConfigWidget::setDn(const LdapDN &dn) +{ + if (d->mDn) { + d->mDn->setText(dn.toString()); + } +} + +LdapDN LdapConfigWidget::dn() const +{ + return d->mDn ? LdapDN(d->mDn->text()) : LdapDN(); +} + +void LdapConfigWidget::setFilter(const QString &filter) +{ + if (d->mFilter) { + d->mFilter->setText(filter); + } +} + +QString LdapConfigWidget::filter() const +{ + return d->mFilter ? d->mFilter->text() : QString(); +} + +void LdapConfigWidget::setMech(const QString &mech) +{ + if (d->mMech == nullptr) { + return; + } + if (!mech.isEmpty()) { + int i = 0; + while (i < d->mMech->count()) { + if (d->mMech->itemText(i) == mech) { + break; + } + i++; + } + if (i == d->mMech->count()) { + d->mMech->addItem(mech); + } + d->mMech->setCurrentIndex(i); + } +} + +QString LdapConfigWidget::mech() const +{ + return d->mMech ? d->mMech->currentText() : QString(); +} + +void LdapConfigWidget::setSecurity(Security security) +{ + switch (security) { + case None: + d->mSecNo->setChecked(true); + break; + case SSL: + d->mSecSSL->setChecked(true); + break; + case TLS: + d->mSecTLS->setChecked(true); + break; + } +} + +LdapConfigWidget::Security LdapConfigWidget::security() const +{ + if (d->mSecTLS->isChecked()) { + return TLS; + } + if (d->mSecSSL->isChecked()) { + return SSL; + } + return None; +} + +void LdapConfigWidget::setAuth(Auth auth) +{ + switch (auth) { + case Anonymous: + d->mAnonymous->setChecked(true); + break; + case Simple: + d->mSimple->setChecked(true); + break; + case SASL: + d->mSASL->setChecked(true); + break; + } +} + +LdapConfigWidget::Auth LdapConfigWidget::auth() const +{ + if (d->mSimple->isChecked()) { + return Simple; + } + if (d->mSASL->isChecked()) { + return SASL; + } + return Anonymous; +} + +void LdapConfigWidget::setSizeLimit(int sizelimit) +{ + if (d->mSizeLimit) { + d->mSizeLimit->setValue(sizelimit); + } +} + +int LdapConfigWidget::sizeLimit() const +{ + return d->mSizeLimit ? d->mSizeLimit->value() : 0; +} + +void LdapConfigWidget::setTimeLimit(int timelimit) +{ + if (d->mTimeLimit) { + d->mTimeLimit->setValue(timelimit); + } +} + +int LdapConfigWidget::timeLimit() const +{ + return d->mTimeLimit ? d->mTimeLimit->value() : 0; +} + +void LdapConfigWidget::setPageSize(int pagesize) +{ + if (d->mPageSize) { + d->mPageSize->setValue(pagesize); + } +} + +int LdapConfigWidget::pageSize() const +{ + return d->mPageSize ? d->mPageSize->value() : 0; +} + +LdapConfigWidget::WinFlags LdapConfigWidget::features() const +{ + return d->mFeatures; +} + +void LdapConfigWidget::setFeatures(LdapConfigWidget::WinFlags features) +{ + d->mFeatures = features; + + // First delete all the child widgets. + // FIXME: I hope it's correct + QList ch = children(); + const int numberOfChild(ch.count()); + for (int i = 0; i < numberOfChild; ++i) { + QWidget *widget = qobject_cast(ch[i]); + if (widget && widget->parent() == this) { + delete (widget); + } + } + + // Re-create child widgets according to the new flags + d->initWidget(); +} + +#include "moc_ldapconfigwidget.cpp" diff --git a/src/widgets/ldapconfigwidget.h b/src/widgets/ldapconfigwidget.h new file mode 100644 index 0000000..e6744d9 --- /dev/null +++ b/src/widgets/ldapconfigwidget.h @@ -0,0 +1,256 @@ +/* + This file is part of libkldap. + SPDX-FileCopyrightText: 2004-2006 Szombathelyi György + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#pragma once + +#include +#include + +#include "kldap_export.h" +#include "ldapdn.h" +#include "ldapobject.h" +#include "ldapserver.h" +#include "ldapurl.h" + +namespace KLDAP +{ +/** + @brief LDAP Configuration widget + + This class can be used to query the user for LDAP connection parameters. + It's KConfigXT compatible, using widget names starting with kcfg_ +*/ + +class KLDAP_EXPORT LdapConfigWidget : public QWidget +{ + Q_OBJECT + Q_FLAGS(WinFlags) + Q_PROPERTY(WinFlags features READ features WRITE setFeatures) + Q_PROPERTY(QString user READ user WRITE setUser) + Q_PROPERTY(QString bindDn READ bindDn WRITE setBindDn) + Q_PROPERTY(QString realm READ realm WRITE setRealm) + Q_PROPERTY(QString password READ password WRITE setPassword) + Q_PROPERTY(QString host READ host WRITE setHost) + Q_PROPERTY(int port READ port WRITE setPort) + Q_PROPERTY(int version READ version WRITE setVersion) + Q_PROPERTY(LdapDN dn READ dn WRITE setDn) + Q_PROPERTY(QString filter READ filter WRITE setFilter) + Q_PROPERTY(QString mech READ mech WRITE setMech) + Q_PROPERTY(Security security READ security WRITE setSecurity) + Q_PROPERTY(Auth auth READ auth WRITE setAuth) + Q_PROPERTY(int sizeLimit READ sizeLimit WRITE setSizeLimit) + Q_PROPERTY(int timeLimit READ timeLimit WRITE setTimeLimit) + Q_PROPERTY(int pageSize READ pageSize WRITE setPageSize) + +public: + enum WinFlag { + W_USER = 0x1, + W_BINDDN = 0x2, + W_REALM = 0x4, + W_PASS = 0x8, + W_HOST = 0x10, + W_PORT = 0x20, + W_VER = 0x40, + W_DN = 0x80, + W_FILTER = 0x100, + W_SECBOX = 0x200, + W_AUTHBOX = 0x400, + W_TIMELIMIT = 0x800, + W_SIZELIMIT = 0x1000, + W_PAGESIZE = 0x2000, + W_ALL = 0x2fff + }; + Q_DECLARE_FLAGS(WinFlags, WinFlag) + + enum Security { None, SSL, TLS }; + Q_ENUM(Security) + + enum Auth { Anonymous, Simple, SASL }; + Q_ENUM(Auth) + + /** Constructs an empty configuration widget. + * You need to call setFlags() after this. + * @param parent the QWidget parent + * @param fl the window flags to set + */ + explicit LdapConfigWidget(QWidget *parent = nullptr, Qt::WindowFlags fl = {}); + /** Constructs a configuration widget */ + explicit LdapConfigWidget(WinFlags flags, QWidget *parent = nullptr, Qt::WindowFlags fl = {}); + /** Destructs a configuration widget */ + ~LdapConfigWidget() override; + + /** Sets the user name. Kconfig widget name: kcfg_ldapuser + * @param user the user name to set + */ + void setUser(const QString &user); + /** Gets the user name. Kconfig widget name: kcfg_ldapuser */ + Q_REQUIRED_RESULT QString user() const; + + /** Sets the password. Kconfig widget name: kcfg_ldappassword + * @param password the password to set + */ + void setPassword(const QString &password); + /** Gets the password. Kconfig widget name: kcfg_ldappassword */ + Q_REQUIRED_RESULT QString password() const; + + /** + * Sets the bind dn. + * Kconfig widget name: kcfg_ldapbinddn + * @param binddn the LDAP Bind DN to set + */ + void setBindDn(const QString &binddn); + /** Gets the bind dn. Kconfig widget name: kcfg_ldapbinddn*/ + Q_REQUIRED_RESULT QString bindDn() const; + + /** Sets the SASL realm. Kconfig widget name: kcfg_ldaprealm + * @param realm the SASL realm to set + */ + void setRealm(const QString &realm); + /** Gets the SASL realm. Kconfig widget name: kcfg_ldaprealm */ + Q_REQUIRED_RESULT QString realm() const; + + /** Sets the host name. Kconfig widget name: kcfg_ldaphost + * @param host the LDAP host to set + */ + void setHost(const QString &host); + /** Gets the host name. Kconfig widget name: kcfg_ldaphost */ + Q_REQUIRED_RESULT QString host() const; + + /** Sets the LDAP port. Kconfig widget name: kcfg_ldapport + * @param port the LDAP port to set + */ + void setPort(int port); + /** Gets the LDAP port. Kconfig widget name: kcfg_ldapport */ + Q_REQUIRED_RESULT int port() const; + + /** Sets the LDAP protocol version. Kconfig widget name: kcfg_ldapver + * @param version the LDAP protocol version to set + */ + void setVersion(int version); + /** Gets the LDAP protocol version. Kconfig widget name: kcfg_ldapver */ + Q_REQUIRED_RESULT int version() const; + + /** Sets the LDAP Base DN. Kconfig widget name: kcfg_ldapdn + * @param dn the LDAP Base DN to set + */ + void setDn(const LdapDN &dn); + /** Gets the LDAP Base DN. Kconfig widget name: kcfg_ldapdn */ + Q_REQUIRED_RESULT LdapDN dn() const; + + /** Sets the LDAP Filter. Kconfig widget name: kcfg_ldapfilter + * @param filter the LDAP Filter to set + */ + void setFilter(const QString &filter); + /** Gets the LDAP Filter. Kconfig widget name: kcfg_ldapfilter */ + Q_REQUIRED_RESULT QString filter() const; + + /** Sets the SASL Mechanism. Kconfig widget name: kcfg_ldapsaslmech + * @param mech the SASL Mechanism to set + */ + void setMech(const QString &mech); + /** Gets the SASL Mechanism. Kconfig widget name: kcfg_ldapsaslmech */ + Q_REQUIRED_RESULT QString mech() const; + + /** + * Sets the security type (None, SSL, TLS). + * Kconfig widget names: kcfg_ldapnosec, kcfg_ldaptls, kcfg_ldapssl + * @param security the security type to set + */ + void setSecurity(Security security); + /** + * Returns the security type. + * Kconfig widget names: kcfg_ldapnosec, kcfg_ldaptls, kcfg_ldapssl + * @param security the security type to set + */ + Q_REQUIRED_RESULT Security security() const; + + /** + * Sets the authentication type (Anonymous, Simple, SASL). + * Kconfig widget names: kcfg_ldapanon, kcfg_ldapsimple, kcfg_ldapsasl + * @param auth the authentication type to set + */ + void setAuth(Auth auth); + /** + * Returns the authentication type. + * Kconfig widget names: kcfg_ldapanon, kcfg_ldapsimple, kcfg_ldapsasl + * @param auth the authentication type to set + */ + Q_REQUIRED_RESULT Auth auth() const; + + /** + * Sets the size limit. + * KConfig widget name: kcfg_ldapsizelimit + * @param sizelimit the size limit to set + */ + void setSizeLimit(int sizelimit); + /** + * Returns the size limit. + * KConfig widget name: kcfg_ldapsizelimit + */ + Q_REQUIRED_RESULT int sizeLimit() const; + + /** + * Sets the time limit. + * KConfig widget name: kcfg_ldaptimelimit + * @param timelimit the time limit to set + */ + void setTimeLimit(int timelimit); + /** + * Returns the time limit. + * KConfig widget name: kcfg_ldaptimelimit + */ + Q_REQUIRED_RESULT int timeLimit() const; + + /** + * Sets the page size. + * KConfig widget name: kcfg_ldappagesize + * @param pagesize the page size to set + */ + void setPageSize(int pagesize); + /** + * Returns the page size. + * KConfig widget name: kcfg_ldappagesize + */ + Q_REQUIRED_RESULT int pageSize() const; + + Q_REQUIRED_RESULT WinFlags features() const; + void setFeatures(WinFlags features); + + /** + * Returns a LDAP Url constructed from the settings given. + * Extensions are filled for use in the LDAP ioslave + */ + Q_REQUIRED_RESULT LdapUrl url() const; + /** + * Set up the widget via an LDAP Url. + * @param url the LDAP Url to set + */ + void setUrl(const LdapUrl &url); + + /** + * Returns an LdapServer object constructed from the settings given. + */ + Q_REQUIRED_RESULT LdapServer server() const; + /** + * Set up the widget via an LdapServer object. + * @param server the LdapServer object to set + */ + void setServer(const LdapServer &server); + +Q_SIGNALS: + /** + * @since 4.13 + */ + void hostNameChanged(const QString &); + +private: + class LdapConfigWidgetPrivate; + std::unique_ptr const d; +}; + +Q_DECLARE_OPERATORS_FOR_FLAGS(LdapConfigWidget::WinFlags) +} diff --git a/src/widgets/ldapsearchclientreadconfigserverjob.cpp b/src/widgets/ldapsearchclientreadconfigserverjob.cpp new file mode 100644 index 0000000..69a4248 --- /dev/null +++ b/src/widgets/ldapsearchclientreadconfigserverjob.cpp @@ -0,0 +1,83 @@ +/* + * SPDX-FileCopyrightText: 2020-2022 Laurent Montel + * + * SPDX-License-Identifier: LGPL-2.0-or-later + */ + +#include "ldapsearchclientreadconfigserverjob.h" +#include "ldapclient.h" +#include "ldapclient_debug.h" +#include "ldapclientsearchconfigreadconfigjob.h" +using namespace KLDAP; +LdapSearchClientReadConfigServerJob::LdapSearchClientReadConfigServerJob(QObject *parent) + : QObject(parent) +{ +} + +LdapSearchClientReadConfigServerJob::~LdapSearchClientReadConfigServerJob() = default; + +void LdapSearchClientReadConfigServerJob::start() +{ + if (!canStart()) { + qCWarning(LDAPCLIENT_LOG) << " Impossible to start LdapSearchClientReadConfigServerJob"; + deleteLater(); + return; + } + auto job = new LdapClientSearchConfigReadConfigJob(this); + connect(job, &LdapClientSearchConfigReadConfigJob::configLoaded, this, &LdapSearchClientReadConfigServerJob::slotConfigLoaded); + job->setActive(mActive); + job->setConfig(mConfig); + job->setServerIndex(mCurrentIndex); + job->start(); +} + +bool LdapSearchClientReadConfigServerJob::canStart() const +{ + return mCurrentIndex != -1 && mConfig.isValid(); +} + +void LdapSearchClientReadConfigServerJob::slotConfigLoaded(const KLDAP::LdapServer &server) +{ + mLdapClient->setServer(server); + deleteLater(); +} + +LdapClient *LdapSearchClientReadConfigServerJob::ldapClient() const +{ + return mLdapClient; +} + +void LdapSearchClientReadConfigServerJob::setLdapClient(LdapClient *ldapClient) +{ + mLdapClient = ldapClient; +} + +int LdapSearchClientReadConfigServerJob::currentIndex() const +{ + return mCurrentIndex; +} + +void LdapSearchClientReadConfigServerJob::setCurrentIndex(int currentIndex) +{ + mCurrentIndex = currentIndex; +} + +bool LdapSearchClientReadConfigServerJob::active() const +{ + return mActive; +} + +void LdapSearchClientReadConfigServerJob::setActive(bool active) +{ + mActive = active; +} + +KConfigGroup LdapSearchClientReadConfigServerJob::config() const +{ + return mConfig; +} + +void LdapSearchClientReadConfigServerJob::setConfig(const KConfigGroup &config) +{ + mConfig = config; +} diff --git a/src/widgets/ldapsearchclientreadconfigserverjob.h b/src/widgets/ldapsearchclientreadconfigserverjob.h new file mode 100644 index 0000000..3c9b3e7 --- /dev/null +++ b/src/widgets/ldapsearchclientreadconfigserverjob.h @@ -0,0 +1,45 @@ +/* + * SPDX-FileCopyrightText: 2020-2022 Laurent Montel + * + * SPDX-License-Identifier: LGPL-2.0-or-later + */ + +#pragma once + +#include "kldap_export.h" +#include +#include +namespace KLDAP +{ +class LdapClient; +class LdapServer; +class KLDAP_EXPORT LdapSearchClientReadConfigServerJob : public QObject +{ + Q_OBJECT +public: + explicit LdapSearchClientReadConfigServerJob(QObject *parent = nullptr); + ~LdapSearchClientReadConfigServerJob() override; + + void start(); + Q_REQUIRED_RESULT bool canStart() const; + + Q_REQUIRED_RESULT int currentIndex() const; + void setCurrentIndex(int currentIndex); + + Q_REQUIRED_RESULT bool active() const; + void setActive(bool active); + + Q_REQUIRED_RESULT KConfigGroup config() const; + void setConfig(const KConfigGroup &config); + + LdapClient *ldapClient() const; + void setLdapClient(LdapClient *ldapClient); + +private: + void slotConfigLoaded(const KLDAP::LdapServer &server); + LdapClient *mLdapClient = nullptr; + KConfigGroup mConfig; + int mCurrentIndex = -1; + bool mActive = false; +}; +} diff --git a/src/widgets/ldapwidgetitem_p.cpp b/src/widgets/ldapwidgetitem_p.cpp new file mode 100644 index 0000000..6604d6b --- /dev/null +++ b/src/widgets/ldapwidgetitem_p.cpp @@ -0,0 +1,37 @@ +/* + * SPDX-FileCopyrightText: 2020-2022 Laurent Montel + * + * SPDX-License-Identifier: LGPL-2.0-or-later + */ + +#include "ldapwidgetitem_p.h" +using namespace KLDAP; + +LdapWidgetItem::LdapWidgetItem(QListWidget *parent, bool isActive) + : QListWidgetItem(parent, QListWidgetItem::UserType) + , mIsActive(isActive) +{ + setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable); + setCheckState(isActive ? Qt::Checked : Qt::Unchecked); +} + +void LdapWidgetItem::setServer(const KLDAP::LdapServer &server) +{ + mServer = server; + setText(mServer.host()); +} + +const KLDAP::LdapServer &LdapWidgetItem::server() const +{ + return mServer; +} + +void LdapWidgetItem::setIsActive(bool isActive) +{ + mIsActive = isActive; +} + +bool LdapWidgetItem::isActive() const +{ + return mIsActive; +} diff --git a/src/widgets/ldapwidgetitem_p.h b/src/widgets/ldapwidgetitem_p.h new file mode 100644 index 0000000..44d5915 --- /dev/null +++ b/src/widgets/ldapwidgetitem_p.h @@ -0,0 +1,30 @@ +/* + * SPDX-FileCopyrightText: 2020-2022 Laurent Montel + * + * SPDX-License-Identifier: LGPL-2.0-or-later + */ + +#pragma once + +#include +#include +namespace KLDAP +{ +class LdapWidgetItem : public QListWidgetItem +{ +public: + explicit LdapWidgetItem(QListWidget *parent, bool isActive = false); + + void setServer(const KLDAP::LdapServer &server); + + const KLDAP::LdapServer &server() const; + + void setIsActive(bool isActive); + + Q_REQUIRED_RESULT bool isActive() const; + +private: + KLDAP::LdapServer mServer; + bool mIsActive = false; +}; +} diff --git a/src/widgets/ldapwidgetitemreadconfigserverjob.cpp b/src/widgets/ldapwidgetitemreadconfigserverjob.cpp new file mode 100644 index 0000000..de788bf --- /dev/null +++ b/src/widgets/ldapwidgetitemreadconfigserverjob.cpp @@ -0,0 +1,72 @@ +/* + * SPDX-FileCopyrightText: 2020-2022 Laurent Montel + * + * SPDX-License-Identifier: LGPL-2.0-or-later + */ + +#include "ldapwidgetitemreadconfigserverjob.h" +#include "ldapclientsearchconfigreadconfigjob.h" +#include "ldapwidgetitem_p.h" +using namespace KLDAP; +LdapWidgetItemReadConfigServerJob::LdapWidgetItemReadConfigServerJob(QObject *parent) + : QObject(parent) +{ +} + +LdapWidgetItemReadConfigServerJob::~LdapWidgetItemReadConfigServerJob() = default; + +void LdapWidgetItemReadConfigServerJob::start() +{ + auto job = new LdapClientSearchConfigReadConfigJob(this); + connect(job, &LdapClientSearchConfigReadConfigJob::configLoaded, this, &LdapWidgetItemReadConfigServerJob::slotConfigLoaded); + job->setActive(mActive); + job->setConfig(mConfig); + job->setServerIndex(mCurrentIndex); + job->start(); +} + +void LdapWidgetItemReadConfigServerJob::slotConfigLoaded(const KLDAP::LdapServer &server) +{ + mLdapWidgetItem->setServer(server); + deleteLater(); +} + +LdapWidgetItem *LdapWidgetItemReadConfigServerJob::ldapWidgetItem() const +{ + return mLdapWidgetItem; +} + +void LdapWidgetItemReadConfigServerJob::setLdapWidgetItem(LdapWidgetItem *ldapWidgetItem) +{ + mLdapWidgetItem = ldapWidgetItem; +} + +int LdapWidgetItemReadConfigServerJob::currentIndex() const +{ + return mCurrentIndex; +} + +void LdapWidgetItemReadConfigServerJob::setCurrentIndex(int currentIndex) +{ + mCurrentIndex = currentIndex; +} + +bool LdapWidgetItemReadConfigServerJob::active() const +{ + return mActive; +} + +void LdapWidgetItemReadConfigServerJob::setActive(bool active) +{ + mActive = active; +} + +KConfigGroup LdapWidgetItemReadConfigServerJob::config() const +{ + return mConfig; +} + +void LdapWidgetItemReadConfigServerJob::setConfig(const KConfigGroup &config) +{ + mConfig = config; +} diff --git a/src/widgets/ldapwidgetitemreadconfigserverjob.h b/src/widgets/ldapwidgetitemreadconfigserverjob.h new file mode 100644 index 0000000..e8eac4f --- /dev/null +++ b/src/widgets/ldapwidgetitemreadconfigserverjob.h @@ -0,0 +1,43 @@ +/* + * SPDX-FileCopyrightText: 2020-2022 Laurent Montel + * + * SPDX-License-Identifier: LGPL-2.0-or-later + */ + +#pragma once + +#include +#include +namespace KLDAP +{ +class LdapWidgetItem; +class LdapServer; +class LdapWidgetItemReadConfigServerJob : public QObject +{ + Q_OBJECT +public: + explicit LdapWidgetItemReadConfigServerJob(QObject *parent = nullptr); + ~LdapWidgetItemReadConfigServerJob() override; + + void start(); + + LdapWidgetItem *ldapWidgetItem() const; + void setLdapWidgetItem(LdapWidgetItem *ldapWidgetItem); + + Q_REQUIRED_RESULT int currentIndex() const; + void setCurrentIndex(int currentIndex); + + Q_REQUIRED_RESULT bool active() const; + void setActive(bool active); + + Q_REQUIRED_RESULT KConfigGroup config() const; + void setConfig(const KConfigGroup &config); + +private: + void slotConfigLoaded(const KLDAP::LdapServer &server); + LdapWidgetItem *mLdapWidgetItem = nullptr; + KConfigGroup mConfig; + int mCurrentIndex = -1; + bool mActive = false; +}; +} diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 0000000..4bc13ed --- /dev/null +++ b/tests/CMakeLists.txt @@ -0,0 +1,8 @@ +# SPDX-FileCopyrightText: none +# SPDX-License-Identifier: BSD-3-Clause +########## next target ############### +add_executable(testldapclient testldapclient.cpp) + +target_link_libraries(testldapclient KF5::I18n KF5::Completion KF5::Ldap KF5::CoreAddons) + +#ldapclientsearchconfigreadconfigjobtest.cpp diff --git a/tests/testldapclient.cpp b/tests/testldapclient.cpp new file mode 100644 index 0000000..a9dc564 --- /dev/null +++ b/tests/testldapclient.cpp @@ -0,0 +1,178 @@ +/* This file is part of the KDE project + SPDX-FileCopyrightText: 2005 David Faure + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#include "testldapclient.h" + +#include + +#include + +#include + +#include +#include +#include +#include + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + QStandardPaths::setTestModeEnabled(true); + QCommandLineParser parser; + parser.addVersionOption(); + parser.addHelpOption(); + parser.process(app); + + TestLDAPClient test; + test.setup(); + test.runAll(); + test.cleanup(); + qDebug() << "All tests OK."; + return 0; +} + +TestLDAPClient::TestLDAPClient() = default; + +void TestLDAPClient::setup() +{ +} + +void TestLDAPClient::runAll() +{ + testIntevation(); +} + +bool TestLDAPClient::check(const QString &txt, QString a, QString b) +{ + if (a.isEmpty()) { + a.clear(); + } + + if (b.isEmpty()) { + b.clear(); + } + + if (a == b) { + qDebug() << txt << " : checking '" << a << "' against expected value '" << b << "'..." + << "ok"; + } else { + qDebug() << txt << " : checking '" << a << "' against expected value '" << b << "'..." + << "KO !"; + cleanup(); + exit(1); + } + + return true; +} + +void TestLDAPClient::cleanup() +{ + mClient = nullptr; +} + +void TestLDAPClient::testIntevation() +{ + qDebug(); + mClient = new KLDAP::LdapClient(0, this); + +#if 0 + mClient->setHost("ca.intevation.de"); + mClient->setPort("389"); + mClient->setBase("o=Intevation GmbH,c=de"); +#endif + + // Same list as in kaddressbook's ldapsearchdialog + QStringList attrs; + attrs << QStringLiteral("l") << QStringLiteral("Company") << QStringLiteral("co") << QStringLiteral("department") << QStringLiteral("description") + << QStringLiteral("mail") << QStringLiteral("facsimileTelephoneNumber") << QStringLiteral("cn") << QStringLiteral("homePhone") + << QStringLiteral("mobile") << QStringLiteral("o") << QStringLiteral("pager") << QStringLiteral("postalAddress") << QStringLiteral("st") + << QStringLiteral("street") << QStringLiteral("title") << QStringLiteral("uid") << QStringLiteral("telephoneNumber") << QStringLiteral("postalCode") + << QStringLiteral("objectClass"); + // the list from ldapclient.cpp + // attrs << "cn" << "mail" << "givenname" << "sn" << "objectClass"; + mClient->setAttributes(attrs); + + // Taken from LdapSearch + /* + QString mSearchText = QString::fromUtf8( "Till" ); + QString filter = QString( "&(|(objectclass=person)(objectclass=groupOfNames)(mail=*))" + "(|(cn=%1*)(mail=%2*)(givenName=%3*)(sn=%4*))" ) + .arg( mSearchText ).arg( mSearchText ).arg( mSearchText ).arg( mSearchText ); + */ + + // For some reason a fromUtf8 broke the search for me (no results). + // But this certainly looks fishy, it might break on non-utf8 systems. + QString filter = QStringLiteral( + "&(|(objectclass=person)(objectclass=groupofnames)(mail=*))" + "(|(cn=*Ägypten MDK*)(sn=*Ägypten MDK*))"); + + connect(mClient, &KLDAP::LdapClient::result, this, &TestLDAPClient::slotLDAPResult); + connect(mClient, &KLDAP::LdapClient::done, this, &TestLDAPClient::slotLDAPDone); + connect(mClient, &KLDAP::LdapClient::error, this, &TestLDAPClient::slotLDAPError); + mClient->startQuery(filter); + + QEventLoop eventLoop; + connect(this, &TestLDAPClient::leaveModality, &eventLoop, &QEventLoop::quit); + eventLoop.exec(QEventLoop::ExcludeUserInputEvents); + + delete mClient; + mClient = nullptr; +} + +// from kaddressbook... ugly though... +static QString asUtf8(const QByteArray &val) +{ + if (val.isEmpty()) { + return {}; + } + + const char *data = val.data(); + + // QString::fromUtf8() bug workaround + if (data[val.size() - 1] == '\0') { + return QString::fromUtf8(data, val.size() - 1); + } else { + return QString::fromUtf8(data, val.size()); + } +} + +static QString join(const KLDAP::LdapAttrValue &lst, const QString &sep) +{ + QString res; + bool already = false; + for (KLDAP::LdapAttrValue::ConstIterator it = lst.begin(); it != lst.end(); ++it) { + if (already) { + res += sep; + } + + already = true; + res += asUtf8(*it); + } + + return res; +} + +void TestLDAPClient::slotLDAPResult(const KLDAP::LdapClient &, const KLDAP::LdapObject &obj) +{ + QString cn = join(obj.attributes()[QStringLiteral("cn")], QStringLiteral(", ")); + qDebug() << " cn:" << cn; + Q_ASSERT(!obj.attributes()[QStringLiteral("mail")].isEmpty()); + QString mail = join(obj.attributes()[QStringLiteral("mail")], QStringLiteral(", ")); + qDebug() << " mail:" << mail; + Q_ASSERT(mail.contains(QLatin1Char('@'))); +} + +void TestLDAPClient::slotLDAPError(const QString &err) +{ + qDebug() << err; + ::exit(1); +} + +void TestLDAPClient::slotLDAPDone() +{ + qDebug(); + Q_EMIT leaveModality(); +} diff --git a/tests/testldapclient.h b/tests/testldapclient.h new file mode 100644 index 0000000..5cac4fe --- /dev/null +++ b/tests/testldapclient.h @@ -0,0 +1,44 @@ +/* This file is part of the KDE project + SPDX-FileCopyrightText: 2005 David Faure + + SPDX-License-Identifier: LGPL-2.0-or-later +*/ + +#pragma once + +#include + +#include "widgets/ldapclient.h" + +namespace KLDAP +{ +class LdapClient; +class LdapObject; +} + +class TestLDAPClient : public QObject +{ + Q_OBJECT + +public: + TestLDAPClient(); + void setup(); + void runAll(); + void cleanup(); + + // tests + void testIntevation(); + +Q_SIGNALS: + void leaveModality(); + +private Q_SLOTS: + void slotLDAPResult(const KLDAP::LdapClient &, const KLDAP::LdapObject &); + void slotLDAPError(const QString &); + void slotLDAPDone(); + +private: + bool check(const QString &, QString, QString); + + KLDAP::LdapClient *mClient = nullptr; +}; -- 2.30.2